Date: Sat, 1 Mar 2014 16:35:35 -0800 From: Adrian Chadd <adrian@freebsd.org> To: curtis@ipv6.occnc.com Cc: "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org> Subject: Re: iwn rtsol on stable/10 with merge from head Message-ID: <CAJ-Vmo=7RP7DaFQ5JJgm8OjJyBjTY6u2vp-uhQremhAMGTFYtg@mail.gmail.com> In-Reply-To: <201403020002.s22021xF031216@maildrop2.v6ds.occnc.com> References: <CAJ-VmokW4qXOP__JKOhC68AGvc1fxk6ihhUqGHFCj67NPsj80Q@mail.gmail.com> <201403020002.s22021xF031216@maildrop2.v6ds.occnc.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Maybe the whole cloned interfaces path isn't setting up the ipv6 flags correctly? -a On 1 March 2014 16:02, Curtis Villamizar <curtis@ipv6.occnc.com> wrote: > > 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?CAJ-Vmo=7RP7DaFQ5JJgm8OjJyBjTY6u2vp-uhQremhAMGTFYtg>