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