Linux Bridging, Wireless AP, IPv6 multicast and autoconfiguration.

Well I cannot be too certain of the setup, since it's a stock firmware, but I have a cheap Belkin wireless-n router and wanted to get some ideas of what may be going on while I've a few moments to ramble on about my problems... I requested the GPL source so I've just been pondering while waiting to see whats really going on.

Firstly, the setup is "Use as access point," which "disables all routing and firewall functions." Belkin support says it also makes all the ports on the router act as LAN ports.

So one would imagine WLAN, LAN, WAN, to all be apart of a bridge. Seems almost right. Wired PCs connected to LAN ports get IPv4 DHCP and connectivity from the real router connected to WAN port. They also get IPv6 autoconfigured from the announcements from another wired client on the LAN switch (switched before bridged..?)

The problem: Wireless clients do not receive the IPv6 multicast from the acting IPv6 router... tcpdump from that router shows nothing as well running ping ff02::1 from a wireless client. Though *oddly* after doing that for awhile Linux once obtained an IP (but didn't setup a route).. Also often IPv4 DHCP will take a prolonged amount of time.

Soo I go through the trouble of compiling tcpdump for the mipsel main router (remember, on WAN port) and saw multicast packets from a wireless client ping6 ... seemingly reliably ! Traceroute doesn't show this Belkin AP (So it most likely is actually bridged not routed)...

Back in the old days drivers had to support changing the source address on the wireless interface for bridging to work, but I thought that was usually a client issue, this is an AP, and a tcpdump with the Ethernet headers show different sources.

Would one point their finger at the integrated switch having problems learning or dealing with IPv6 multicast? Probably not. They're on lower level.

One thing I do know is it is Linux 2.6.30 and Realtek has a habit of not fitting their code into Linux, so probably their wireless driver is a bloody mess using their own stacks on stacks on stacks. :frowning:

Any ideas? Other tests to try -- maybe utility that includes server/client to test bridges/switches?