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