Skip site navigation (1)Skip section navigation (2)
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>