Just curious why nobody cares the roaming? Does anyone meet this problem before?<br><br><div class="gmail_quote">On Fri, Jan 14, 2011 at 9:08 PM, Lin Ma <span dir="ltr"><<a href="mailto:linmaonly@gmail.com">linmaonly@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div link="blue" vlink="purple" lang="EN-US">
<div>
<p class="MsoNormal">Hello Jouni and All,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Current kernel cfg80211 framework seems to have a problem
handling 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 __cfg80211_connect check current status and returns -EALREADY if
it is already connected</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">In compat-linux/net/wireless/sme.c</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">int __cfg80211_connect(struct cfg80211_registered_device
*rdev,</p>
<p class="MsoNormal">
struct net_device *dev,</p>
<p class="MsoNormal">
struct cfg80211_connect_params *connect,</p>
<p class="MsoNormal">
struct cfg80211_cached_keys *connkeys,</p>
<p class="MsoNormal">
const u8 *prev_bssid)</p>
<p class="MsoNormal">{</p>
<p class="MsoNormal">
… </p>
<p class="MsoNormal">
if (wdev->sme_state != CFG80211_SME_IDLE)</p>
<p class="MsoNormal">
return –EALREADY;</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">The wpa_supplicant then goes into a loop in retrying
association. 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..</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Anyone has a solution for this? </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Thanks,</p>
<p class="MsoNormal">Lin</p>
</div>
</div>
</blockquote></div><br>