Red Hat Bugzilla – Bug 241281
iwl3945 breaks IPv6 autoconfiguration
Last modified: 2008-03-31 09:58:23 EDT
Description of problem:
Before an IPv6 address is assigned to an interface after receiving a router
advertisement packet, a broadcast is sent to the network to check if the address
is in use already. When this happens the iwl3945 driver reports
"wlan0:duplicate address detected!"
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Enable IPv6
2. Plug into a network which has an IPv6 router doing advertisments
Global scope IPv6 address is never assigned and dmesg logs dupe address warnings.
Global IPv6 address should be assigned on receipt of a router advertisement
Could be a reoccurrance of:
There are network dumps of the problem in action:
The set up I have is:
(===== is 100Mbps ethernet, ----- is 802.11g)
The router is doing IPv6 router advertisements, the notebook is supposed to
be using them to configure the IPv6 address on it's wlan0 interface (an
iwl3945). The access point is a LinkSys WRT54GL running OpenWRT
WhiteRussian and is just bridging the wired network to the wireless network.
So, ap.pcap is a dump from the 802.11 interface on the access point.
wlan0.pcap is a dump from the 802.11 interface on the notebook.
The sequence of events is basically:
1. Router sends advertisement
2. Notebook receives advertisement
3. Notebook picks an IP address and sends a neighbor solicitation to see if
anyone else is already using that address.
(these 3 steps happen twice in these network dumps).
The dump taken on the access point clearly shows that the notebook sends
just one neighbor solicitation for each router advertisement it receives.
However, the dump taken on the notebook shows two neighbor solicitation
messages for each router advertisement.
Seems reasonably conclusive - it looks like the notebook is sending a
neighbor solicitation and is then receiving it's own data again.
This bug is also being tracked at: http://bughost.org/bugzilla/show_bug.cgi?id=1283
A patch has been provided in the upstream Bugzilla which fixes the problem:
This should be long resolved -- let me know if it isn't...