Allow roam to lower signal level if throughput benefit is significant

Do not prevent roam to a different BSS based only on the signal level
with the current BSS being higher than with the selected BSS. If the
estimated throughput is significantly higher (> 20%), allow roaming if
the following conditions are met.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2020-01-01 17:09:18 +02:00
parent 9fafefb9e5
commit 9c8d550b77

View file

@ -1796,7 +1796,8 @@ static int wpa_supplicant_need_to_roam(struct wpa_supplicant *wpa_s,
to_5ghz = selected->freq > 4000 && current_bss->freq < 4000;
if (cur_level < 0 && cur_level > selected->level + to_5ghz * 2) {
if (cur_level < 0 && cur_level > selected->level + to_5ghz * 2 &&
selected->est_throughput < cur_est * 1.2) {
wpa_dbg(wpa_s, MSG_DEBUG, "Skip roam - Current BSS has better "
"signal level");
return 0;