Return-path: Received: from moutng.kundenserver.de ([212.227.17.8]:58072 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751638AbZGVIUN (ORCPT ); Wed, 22 Jul 2009 04:20:13 -0400 Message-ID: <890C8AC9A4484DBEB4F7EFC5A3A05B5C@yklamPC> From: "Lam Yoke Khei" To: "Lars Ericsson" Cc: , References: <1B3FCF72EBBC44A39F5A80B8FFBF6402@gotws1589> In-Reply-To: <1B3FCF72EBBC44A39F5A80B8FFBF6402@gotws1589> Subject: Re: Slow roaming in mac80211 (2.6.30). Date: Wed, 22 Jul 2009 16:18:21 +0800 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Sender: linux-wireless-owner@vger.kernel.org List-ID: Hi Lars, Would you mind to share your idea or patches on 2.6.26 kernel to improve roaming? As I am investigating the solution for short handoff/reassociation time (~50ms) via linux wireless stack. Thanks in advance. Best regards, Lam ----- Original Message ----- From: "Lars Ericsson" To: "'Johannes Berg'" Cc: ; Sent: Wednesday, July 22, 2009 5:21 AM Subject: Slow roaming in mac80211 (2.6.30). > > 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 > > ----- > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" > in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html