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@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/hostap _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap