Roaming problems
Lars Ericsson
Lars_Ericsson
Wed Apr 23 01:39:32 PDT 2008
Hi,
I think I have found the problem.
When the wpa_supplicant configure the device it issues a number of ioctls.
Some of them, ieee80211_ioctl_siwgenie()
ieee80211_ioctl_siwessid() and ieee80211_ioctl_siwap() initiates a
ieee80211_sta_req_auth().
If there is a valid BSSID, ieee80211_sta_req_auth() will post a authenticate
work.
First roaming attempt, no problem since we do not have any valid BSSID.
All following roaming will have the old BSSID when the wpa_supplicant start
preparing for next AP.
So any of the ieee80211_ioctl_siwgenie() or ieee80211_ioctl_siwessid() will
force the mac80211 to start associate with the old BSSID. First when the
ieee80211_ioctl_siwap() arrives, mac80211 knows which AP to use.
If, by timing, the erroneous first association success before the real AP
arrives, the real one may fail, with an infinite 'timed out' as a result.
The below patch makes sure that we drop the BSSID when we disassociate.
/Lars
============================================================================
====
--- a/ieee80211_sta.c Wed Apr 23 10:14:30 2008
+++ b/ieee80211_sta.c Wed Apr 23 08:41:23 2008
@@ -479,6 +479,9 @@ static void ieee80211_set_associated(str
netif_carrier_off(dev);
ieee80211_reset_erp_info(dev);
memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
+
+ // make sure no association start before we got a new BSSID
+ ifsta->flags &= ~IEEE80211_STA_BSSID_SET;
}
wrqu.ap_addr.sa_family = ARPHRD_ETHER;
wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
============================================================================
====
-----Original Message-----
From: linux-wireless-owner at vger.kernel.org
[mailto:linux-wireless-owner at vger.kernel.org] On Behalf Of Lars Ericsson
Sent: den 22 april 2008 17:09
To: linux-wireless at vger.kernel.org; hostap at lists.shmoo.com
Subject: Roaming problems
Hi,
I'm currently running a number of sites using the RT61 WLAN chipset.
More information about the Hostap
mailing list