From owner-freebsd-wireless@FreeBSD.ORG Tue Mar 11 17:54:48 2014 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2F56D2F4 for ; Tue, 11 Mar 2014 17:54:48 +0000 (UTC) Received: from mail-qc0-x236.google.com (mail-qc0-x236.google.com [IPv6:2607:f8b0:400d:c01::236]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E08C2628 for ; Tue, 11 Mar 2014 17:54:47 +0000 (UTC) Received: by mail-qc0-f182.google.com with SMTP id e16so10062293qcx.13 for ; Tue, 11 Mar 2014 10:54:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:content-type; bh=Pgmgp5fLUem0c1fC3N57/B/ZwrwPNW4/anPhEjdVKbs=; b=TlzvUjgdfkXfMD4AEZgfUNEnSWnPuDDrgftj9J2r5gxms3u53NDkMD//9eB/hGBkVL Vx3GPjATC5nqpy04K0HIbH7/0BU+CVSeoZP1V+6ZRLj7BzxuNa5NWE8ZBI6ieooNnJkb svxRrFeMAnC/RrPQV0iMHGLVLVTMkWkfl+GIXJ3c2JpwIzj8zgvcbaxHQB1sbsoJ/n6a j7AWVEM2ohTrwJD4Ft+iuKff7qTkpK/iQVk1gvyCOYs+I5IPiQIYQ2mwEwJSREOXQ2kO RNWraAufg5Socii3nQrhxizay3tY6QLW+pcQZQw748yK3Ye+bYArFIpx7Vx/z6PCNpa3 /uOA== MIME-Version: 1.0 X-Received: by 10.140.42.21 with SMTP id b21mr4121527qga.87.1394560486989; Tue, 11 Mar 2014 10:54:46 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.8.137 with HTTP; Tue, 11 Mar 2014 10:54:46 -0700 (PDT) In-Reply-To: <201403111653.s2BGrN13026531@maildrop2.v6ds.occnc.com> References: <201403111653.s2BGrN13026531@maildrop2.v6ds.occnc.com> Date: Tue, 11 Mar 2014 10:54:46 -0700 X-Google-Sender-Auth: UJvkDJgxbdOFSeAxWhuzi-RAZ6g Message-ID: Subject: Re: iwn rtsol on stable/10 with merge from head From: Adrian Chadd To: curtis@ipv6.occnc.com, "freebsd-wireless@freebsd.org" Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Mar 2014 17:54:48 -0000 Hm. If the noise values start fluctuating wildly before it starts missing beacons, this could tell me that the receiver is getting confused. I should finish the "retune by doing a single channel scan" hack that iwlwifi does; maybe it'll help quieten things down a bit. Thanks, -a On 11 March 2014 09:53, Curtis Villamizar wrote: > > In message > Adrian Chadd writes: > >> Hi! >> >> Thanks, >> >> Is it switching APs in the same BSS (ie, same SSID, different AP) or >> different BSS (different SSID) ? >> >> -a > > > I didn't check but it should be same SSID since my wpa_supplicant.conf > prefered the "ietf" SSID in part of the week and the "ietf-v6ONLY" > SSID later in the week. There were plenty of APs with the "ietf" SSID > and "ietf-v6ONLY" SSID. If jumping to a new AP it might have been due > to congestion, not signal strength. > > I also found that when using the "ietf-v6ONLY" SSID that no DNS server > or default route were provided in the IPv6 RA but the M bit was set. > IPv6 only would only work if the client saw the M bit and ran DHCPv6 > (or edited /etc/resolv.conf and added a default route by hand). > > Note that in http://www.occnc.com/iwn/iwn.scan.0306-13:59.plenary > there is a jump from bssid 00:17:df:aa:57:51 to status: no carrier > (despite many viable APs) at 13:54:53 then at 13:55:03 associated with > bssid 00:17:df:a9:c5:e1 . The scan entries are: > > ietf 00:17:df:aa:57:51 6 54M -76:-95 102 ES HTCAP WME > ietf 00:17:df:a9:c5:e1 1 54M -79:-95 102 ES HTCAP WME > > Both channel 1 and channel 6 are very crowded with 16 APs (2 with ietf > SSID) and 12 APs (1 with ietf SSID). There may be a hint in > http://www.occnc.com/iwn/iwnstats.0306-13:59.plenary as to why the > change in SSID but without timestamps it may be hard (for me) to find. > A hint might be that missed+beacons=0 up to a point where it starts > rising, then goes to zero, then rises and goes to zero a few times. > At the first transition to non-zero, there is also a big jump in > moise. Not much else I see in there. > > Perhaps useful things to add to the iwnstats would be timestamp, > channel, ssid, bssid and record a reason for most recent AP change. > Maybe the place to look for this is in the wpa_supplicant debug output > which I did not collect. btw- wpa_supplicant -f file doesn't work. > > On some related topics: > > Is there any detectable change that devd might notice associated > to/from no-carrier transitions or on switch to another AP? If so that > would help a lot in that we could put dhclient and rtsold entries in > devd.conf in case the AP changed and the subnet, dns, and default > route also chnage with the new AP. If not a hook in wpa_supplicant > would be needed to handle this. > > It would also help if rtsold had a hook that could be used to run > dhclient -6 when the M bit was set in the RA (and dhclient -6 -x > when/if M gets cleared, though it might kill both the -4 and -6 > instances or the wrong one). > > Curtis > > >> On 6 March 2014 06:10, Curtis Villamizar wrote: >> > >> > Adrian, >> > >> > I compiled all of src from head and the problems went away except that >> > occasionally I get a long (or semi-permanent) lack of connectivity >> > after a switch in APs. Often restarting dhclient fixes this, even >> > though I'm using IPv6. Its possible that something is missing from >> > the RA messages, like DNS or default route. >> > >> > I put a set of iwstats output on http://www.occnc.com/iwn/ . >> > The last plenary session dump may be the best. I have ifconfig iwn0 >> > and ifconfig iwn0 scan data to go along with it. Everything worked >> > fine for most of the time, then a switch of AP happenned. >> > >> > Curtis >> > >> > >> > In message >> > Adrian Chadd writes: >> >> >> >> Maybe the whole cloned interfaces path isn't setting up the ipv6 flags >> >> correctly? >> >> >> >> >> >> -a >> >> >> >> >> >> On 1 March 2014 16:02, Curtis Villamizar wrote: >> >> > >> >> > In message >> >> > 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 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: >> >> >> > 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