Date: Sat, 01 Mar 2014 19:02:01 -0500 From: Curtis Villamizar <curtis@ipv6.occnc.com> To: Adrian Chadd <adrian@freebsd.org> Cc: "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org>, curtis@ipv6.occnc.com Subject: Re: iwn rtsol on stable/10 with merge from head Message-ID: <201403020002.s22021xF031216@maildrop2.v6ds.occnc.com> In-Reply-To: Your message of "Sat, 01 Mar 2014 09:37:57 -0800." <CAJ-VmokW4qXOP__JKOhC68AGvc1fxk6ihhUqGHFCj67NPsj80Q@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <CAJ-VmokW4qXOP__JKOhC68AGvc1fxk6ihhUqGHFCj67NPsj80Q@mail.gmail.com> Adrian Chadd writes: > Hi, > > Please grab and try 'iwnstats' from head - tools/tools/iwn/iwnstats - > it'll be interesting to see what stats are logged when you're in busy > air. Typical WG sessions have 50-200 people. The technical plenary (Monday evening) and the administrative plenary (Thursday evening) typically have around 1,000. That's mostly geeks with wifi in their phones plus their laptops. I'll try to get stats in WG sessions and both plenaries. > I have no idea about rtsold, sorry. :( I'm not sure the cause but the cure has something to do with this: A little RTFC on rtsold/if.c reveals that ND6_IFF_ACCEPT_RTADV is not set in nd.ndi.flags which comes from the lines: if (ioctl(s, SIOCGIFINFO_IN6, (caddr_t)&nd) < 0) { [...] } if (!(nd.ndi.flags & ND6_IFF_ACCEPT_RTADV)) { A man ifconfig reveals: accept_rtadv Set a flag to enable accepting ICMPv6 Router Advertisement messages. The sysctl(8) variable net.inet6.ip6.accept_rtadv controls whether this flag is set by default or not. So the workaround is to add net.inet6.ip6.accept_rtadv=1 to /etc/sysctl.conf. A one time test using "ifconfig wlan0 inet6 accept_rtadv" and restarting rtsold also confirms this is the problem. The mystery is really why this doesn't affect em0 and run0 on the same machine. I'll have to check and make sure they don't all behave the same with the same kernel. None of these driveres have the string rtadv. In sys/dev "grep -il rtadv */*.[hc]" yields nothing. The string ND6_IFF_ACCEPT_RTADV only appears in sys files in the netinet6 directory. Reading the code, iwn seems to do what is right with net.inet6.ip6.accept_rtadv clear and the others (em0, run0, plus msk0 on another machine, em0 on other machines) have ND6_IFF_ACCEPT_RTADV set even though net.inet6.ip6.accept_rtadv is not set. The entire src/sys tree is from head but the rest of src is stable/10. > -a I'll try to get the stats next week but it looks like I'll need to build the src distribution from head to get that done, pulling just iwnstats from head. Merging tools/tools/iwn/iwnstats into the stable/10 tree didn't compile. Not a big deal but pressed for time between now and then. Curtis > On 1 March 2014 09:11, Curtis Villamizar <curtis@ipv6.occnc.com> wrote: > > > > rtsol is not working for my kernel build with iwn but everything else > > works. > > > > I'm running a very recent stable/10 (kernel is 262621) upgraded to > > pick up iwn stuff from head: > > > > svn merge \ > > https://svn0.us-east.freebsd.org/base/head/sys/dev/iwn \ > > dev/iwn > > svn merge \ > > https://svn0.us-east.freebsd.org/base/head/sys/modules/iwnfw \ > > modules/iwnfw > > svn merge > > https://svn0.us-east.freebsd.org/base/head/sys/contrib/dev/iwn \ > > contrib/dev/iwn > > > > That was to get the Centrino 2000 support from the head branch. > > > > That works. > > > > iwn0: <Intel(R) Centrino(R) Wireless-N 2200 BGN> > > mem 0xf1c00000-0xf1c01fff irq 17 at device 0.0 on pci3 > > > > Everything works as far as I can tell except rtsol. > > > > # rtsold -f -d -D wlan0 > > checking if wlan0 is ready... > > wlan0 does not accept Router Advertisement. > > set timer for wlan0 to 1s > > New timer is 1s > > timer expiration on wlan0, state = 3 > > checking if wlan0 is ready... > > wlan0 does not accept Router Advertisement. > > set timer for wlan0 to 1s > > New timer is 1s > > timer expiration on wlan0, state = 3 > > checking if wlan0 is ready... > > wlan0 does not accept Router Advertisement. > > set timer for wlan0 to 1s > > New timer is 1s > > [ ... etc ... ] > > > > If I use rtsold -a it sees wlan0 as not ready and doesn't try to use > > it but then it receives occasional RA anyway but ignores them because > > it sees wlan0 as not ready. > > > > If I ifconfig inet6 ... alias I get an IPv6 address configured and > > manually add a default route, then everything is fine. This > > workaround is OK for home but is not practical for roaming about (like > > going to IETF) if I want IPv6 to work. > > > > Does anyone know why rtsold isn't seeing wlan0 as ready? Is there any > > info I could provide? How likely is it that will a kernel built from > > head this would just go away and rtsold would just work. > > > > btw- headed for IETF so I'll have a chance to test iwn in a very busy > > environment and would be willing to help if anyone wants to do that > > sort of debugging. [I have a usb wlan (run0) as a fallback] > > > > Curtis
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403020002.s22021xF031216>