[rt2x00-users] rt3572 + rt2800usb: wireless roaming functionality and trigger level

Franco Miceli fmiceli at plan.ceibal.edu.uy
Sat Apr 13 04:05:10 AEST 2013


Hi,

I just asked a similar question on the libertas-list.

Apparently the software in charge of the decision to roam is wpa_supplicant.

A recent patch (3/2013) has been developed by Dan Williams in order to
improve the roaming decision. Below is the mail exchange from the
list:

On Wed, 2013-03-27 at 09:37 -0300, Franco Miceli wrote:
> That could be the case, since we are using wpa
> _supplicant-0.6.8-10.fc14.i686.
>
> But from another mal exchange with you I got the impression that wpa_supplicant
> did not take part in roaming on the XO laptop (Libertas-Thick Firmware).

I looked again at the libertas kernel driver and I believe that the
supplicant does actually control the roaming with this firmware.  Some
older hardware (orinioco, airo) does do all the roaming in firmware, but
the libertas lets the supplicant control that.  Most of the rest of it
is thick-firmware style though :)

> Can I expect changes from using wpa_supplicant with version higher than 0.7
> on the XO laptop?

You could try to apply the following patch to the 0.7 supplicant, or you
could try 1.0 or later, but even with later versions, you may need a
patch like the following.

Dan

---
diff -up wpa_supplicant-0.7.3/wpa_supplicant/events.c.foo
wpa_supplicant-0.7.3/wpa_supplicant/events.c
--- wpa_supplicant-0.7.3/wpa_supplicant/events.c.foo    2012-06-12
12:03:36.172962193 -0500
+++ wpa_supplicant-0.7.3/wpa_supplicant/events.c        2012-06-12
12:03:51.388771973 -0500
@@ -871,16 +871,14 @@ static int wpa_supplicant_need_to_roam(s

        min_diff = 2;
        if (current_bss->level < 0) {
-               if (current_bss->level < -85)
-                       min_diff = 1;
-               else if (current_bss->level < -80)
-                       min_diff = 2;
-               else if (current_bss->level < -75)
-                       min_diff = 3;
-               else if (current_bss->level < -70)
+               if (current_bss->level < -75)
                        min_diff = 4;
+               else if (current_bss->level < -70)
+                       min_diff = 6;
+               else if (current_bss->level < -65)
+                       min_diff = 8;
                else
-                       min_diff = 5;
+                       min_diff = 15;
        }
        if (abs(current_bss->level - selected->level) < min_diff) {
                wpa_printf(MSG_DEBUG, "Skip roam - too small difference in "


Hope it helps!

BR

2013/4/12 Johannes Braun <jjo.braun at gmail.com>:
> Dear mailing list,
>
> first some informations about my hard- and software. I want to use a
> rt3572 based wireless usb wlan stick with an ARM 6 Freescale imx35
> board. The board is developed by my company and we`re using a vanilla
> kernel 3.7.10 with the rt2800usb.ko driver. The Device should be used
> in a 5Ghz n mode wireless lan with wpa enterprise encryption. This
> works so far.
>
> The wireless lan contains several access points with the same ssid.
> The idea was that the device switches automatically between the access
> points depending on the signal quality. So for example, when the
> signal in the current connected wlan is bad and another wlan with a
> better signal is available, the device switches to the one with the
> better signal. I think this is called roaming mode. I haven`t found an
> answer if this is possible with the rt3572 chip in combination with
> the rt2800usb driver. Does anyone know if that`s possible?
>
> And if so, is there a parameter which defines the level to switch?
> Maybe it is called "roam trigger". I haven't found such a parameter in
> the driver sources. Perhaps it is realized in the proprietary firmware
> blob and I it can not be influenced by the driver? I hope someone
> could help me with my qestions.
>
> Thanks
>
> ---
> Johannes
>
> _______________________________________________
> users mailing list
> users at rt2x00.serialmonkey.com
> http://rt2x00.serialmonkey.com/mailman/listinfo/users_rt2x00.serialmonkey.com



-- 
Ing. Franco Miceli
CITS - Plan Ceibal - Investigación & Desarrollo
Av. Italia 6201 - Montevideo, Uruguay
CP: 11500
Tel: (598 2) 601 5773 int.: 2227




More information about the users mailing list