Roaming aggressiveness wpa_supplicant

Dan Williams dcbw at redhat.com
Wed Mar 23 06:40:36 PDT 2016


On Wed, 2016-03-23 at 11:10 +0000, Saskia van Emst wrote:
> Hi, 
> 
> So I have compiled wpa_supplicant v2.5 on a Debian machine running
> 4.3 kernel. I used the CONFIG_BGSCAN_SIMPLE=y flag to include the
> bgscan module.
> 
> In my wpa_supplicant config I have:
> 
> update_config=1
> ctrl_interface=/var/run/wpa_supplicant
> fast_reauth=1
> pmf=1
> okc=1
> 
> network={
>     ssid="LOBECO_SECURE"
>     key_mgmt=WPA-PSK
>     psk="***"
>     bgscan="simple:5:-55:30"
> }
> 
> What I want to achieve is aggressive roaming to the access point with
> the best signal because my station is moving quite fast. It seems
> though that when an access point with a stronger signal is found,
> this does not automatically mean the station will roam to it.
> 
> In wpa_cli I see this:
> ...
> <3>CTRL-EVENT-SIGNAL-CHANGE above=0 signal=-64 noise=-95
> txrate=180000
> <3>CTRL-EVENT-SCAN-STARTED
> <3>CTRL-EVENT-SCAN-RESULTS
> scan_results
> > 
> > bssid / frequency / signal level / flags / ssid
> 00:15:6d:a3:12:3b       2412    -23     [WPA2-PSK-
> CCMP+TKIP][ESS]       RobuLAB10
> 00:12:a9:54:eb:74       2472    -55     [WPA2-PSK-
> CCMP][ESS]    SAMMON
> 22:90:7f:b4:47:54       5500    -53     [WPA2-PSK-
> CCMP][ESS]    Lobeco_Experience
> 02:90:7f:b4:47:54       5500    -52     [WPA2-PSK-
> CCMP][ESS]    LOBECO_RenD
> 12:90:7f:b4:47:54       5500    -52     [WPA2-PSK-CCMP][ESS]    RCS-
> wifi
> 32:90:7f:b4:47:54       5500    -52     [WPA2-PSK-
> CCMP][ESS]    Lobeco_Gasten
> 00:90:7f:b4:47:53       2437    -42     [WPA2-PSK-
> CCMP][ESS]    LOBECO_SECURE
> dc:9f:db:ac:19:d9       2412    -45     [WPA2-PSK-CCMP][ESS]    SAM-
> 02.3
> 00:90:7f:b4:47:54       5500    -54     [WPA2-PSK-
> CCMP][ESS]    LOBECO_SECURE <--------------------------- Accesspoint
> with better signal
> ...
> 
> There are two things I notice:
> -	When the station moves away from the accesspoint, I see
> (watching iw wlan0 link) the signal strength drop below the
> configured -55 dBm for the bgscan module. The message event-signal-
> change however comes much later. Is this not monitored continuously
> but on intervals or is there some other explanation?
> -	When a scan is started, and the results contain an access
> point with a stronger signal, the station does not immediately roam
> to it. Are other factors involved in making the roaming decision?
> 
> Also I have tried ap_scan=0, which should let the driver do ap
> scanning/selection but that did not connect at all.
> 
> What I hope is that someone can point me to a resource explaining, or
> explain themselves, how the roaming decision is made by
> wpa_supplicant. On top of that I would like to know if there is any
> way of making the roaming process more aggressive and what I could
> change to achieve that. I would prefer not to have to change the
> source code but if that is the only option I would love to know where
> to start.

wpa_supplicant_need_to_roam() decides whether to roam to a new AP based
on the difference in signal between the current AP and the best new AP
in the same ESS.  Changing the min_diff to lower values will cause the
roaming decision to be more aggressive.

Also note that a roaming decision is only made when a scan is performed
or when the driver sends a CQM event to indicate the signal strength is
low.  So your background scan parameters control *when* the roaming
decision is started, while wpa_supplicant_need_to_roam() controls
whether or not roaming will be done.

Dan

> The Wi-Fi module I am using is a Sparklan WPEA-127N with Atheros
> AR9380. It uses ath9k.
> 
> Best regards,
> Saskia
> 
> _______________________________________________
> Hostap mailing list
> Hostap at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/hostap



More information about the Hostap mailing list