Slow roaming in mac80211 (2.6.30).

Lars Ericsson Lars_Ericsson at telia.com
Tue Jul 21 17:21:23 EDT 2009


Johannes,

I'm currently using the 2.6.26 kernel and have started evaluating the
2.6.30.  

For .26 I have made a few patches to fix minor issues related to
roaming.  

The trace below shows a typical roaming:
87.632965	AP 1 drops STA
87.733979	wpa_supplicant trigs a scan
88.629931	mac80211 probes for the old AP	
90.670305	SCAN result to wpa_supplicant
90.702325	wpa_supplicant ready with new AP
92.158037	mac80211 executes the wpa_supplicant decisions
92.164776	we are on line again

Total roaming time is 4,5 seconds, where mac80211 had added 2*2
seconds delay.

A first analysis gives that the two delays are the ieee80211_sta_work()
timeout.  There are many events trigging ieee80211_sta_work(), but
since only the timer sets IEEE80211_STA_REQ_RUN, nothing will happen.

Questions; 
- Why does mac80211 tells the wpa_supplicant that the AP
is gone (87.632965), and then blocks/delays the actions taken by the
wpa_supplicant?  
- Why are some wpa_supplicant actions (90.702325)
not event driven?

It looks to me as if we have to decision makers here. For me the
wpa_supplicant is the one that make the decision. Once the mac80211
gives up and feedback that the AP is gone, it should just sit 
and wait for next decision from the wpa_supplicant.

I had a few patches for this for .26, but since the code is changed
they do not apply. Before I create new patches I would like to get
your opinion on this.

Regards
/Lars
  
-----
[   87.632965] wlan0: deauthenticated (Reason: 1)
[   87.733979] [B] LaE: SCANRQUEST: SSID=AGV
[   88.629931] wlan0: direct probe to AP 00:40:96:a0:e7:e7 try 1
[   88.829932] wlan0: direct probe to AP 00:40:96:a0:e7:e7 try 2
[   89.029944] wlan0: direct probe to AP 00:40:96:a0:e7:e7 try 3
[   89.230016] wlan0: direct probe to AP 00:40:96:a0:e7:e7 timed out
[   90.670305] [B] LaE: SCANRESULT: BSSID=00:40:96:a0:e7:e7, SSID=
, ch= 1, , q=  0, l=  0(-30dBm), n=  0
[   90.670384] [B] LaE: SCANRESULT: BSSID=00:08:21:31:53:87, SSID=
, ch=11, , q=  0, l=  0(-62dBm), n=  0
[   90.670455] [B] LaE: SCANRESULT: BSSID=00:08:21:31:53:87, SSID=AGV
, ch=11, , q=  0, l=  0(-60dBm), n=  0
[   90.670705] ieee80211_ioctl_siwauth: enter
[   90.670777] ieee80211_ioctl_siwencodeext: enter
[   90.670807] ieee80211_set_encryption: enter
[   90.671128] ieee80211_ioctl_siwencodeext: enter
[   90.671165] ieee80211_set_encryption: enter
[   90.671219] ieee80211_ioctl_siwencodeext: enter
[   90.671247] ieee80211_set_encryption: enter
[   90.671297] ieee80211_ioctl_siwencodeext: enter
[   90.671325] ieee80211_set_encryption: enter
[   90.671375] ieee80211_ioctl_siwencodeext: enter
[   90.671404] ieee80211_set_encryption: enter
[   90.671623] ieee80211_ioctl_siwencodeext: enter
[   90.671659] ieee80211_set_encryption: enter
[   90.672062] ieee80211_ioctl_siwauth: enter
[   90.672295] ieee80211_ioctl_siwgenie: enter
[   90.672332] ieee80211_sta_req_auth: queue auth
[   90.672380] ieee80211_ioctl_siwauth: enter
[   90.672420] ieee80211_ioctl_siwauth: enter
[   90.672458] ieee80211_ioctl_siwauth: enter
[   90.672495] ieee80211_ioctl_siwauth: enter
[   90.672532] ieee80211_ioctl_siwauth: enter
[   90.672569] ieee80211_ioctl_siwauth: enter
[   90.672612] ieee80211_ioctl_siwfreq: enter freq=246200000
[   90.702175] ieee80211_ioctl_siwessid: enter ssid=AGV
[   90.702217] ieee80211_sta_req_auth: queue auth
[   90.702325] ieee80211_ioctl_siwap: enter AP=00:08:21:31:53:87
[   90.702372] ieee80211_sta_req_auth: queue auth
[   92.158037] wlan0: authenticate with AP 00:08:21:31:53:87
[   92.159965] wlan0: authenticated
[   92.160002] wlan0: associate with AP 00:08:21:31:53:87
[   92.164733] wlan0: RX ReassocResp from 00:08:21:31:53:87 (capab=0x431
status=0 aid=140)
[   92.164776] wlan0: associated
[   92.166984] ieee80211_ioctl_giwap: enter

-----



More information about the HostAP mailing list