wpa_supplicant roaming not working if nl80211 driver is used

Lin Ma linmaonly at gmail.com
Thu Jan 20 02:00:39 EST 2011


Hello Jouni,

 

Sorry to resend this message again, but I believe this is indeed a
wpa_supplicant roaming problem. I appreciate if you help take a look.

 

Current wpa_supplicant nl80211 driver seems to have a problem in roaming.
Upon scan event, wpa_supplicant will roam if a BSSID with better signal
strength is found (in wpa_supplicant_need_to_roam). It calls
wpa_supplicant_connect and eventually to kernel's __cfg80211_connect.
However  the kernel compat-wireless __cfg80211_connect checks current status
and returns -EALREADY if it is already connected

 

 In compat-linux/net/wireless/sme.c

 

 int __cfg80211_connect(struct cfg80211_registered_device *rdev,

                               struct net_device *dev,

                               struct cfg80211_connect_params *connect,

                               struct cfg80211_cached_keys *connkeys,

                               const u8 *prev_bssid)

 

{

            .

            if (wdev->sme_state != CFG80211_SME_IDLE)

                        return -EALREADY;

 

 The wpa_supplicant always failed to roam. NL80211 has a NL80211_CMD_ROAM
command but it is implemented yet. We can work around this by dissociating
from previous AP but it not roaming..

 

 Do you have any idea?

 

Thanks

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.shmoo.com/pipermail/hostap/attachments/20110119/a93bf701/attachment.htm 


More information about the HostAP mailing list