====================
Standard Roam Criteria (both select and current frequences are either
2.4 or 5 GHz)
-----------------------------------------------------------------------------------------------------------------
Current Level < -85 selected - current >= 1 min_diff = 1
-85 < Current Level < -80 selected - current >= 2 min_diff = 2
-80 < Current Level < -75 selected - current >= 3 min_diff = 3
-75 < Current Level < -70 selected - current >= 4 min_diff = 4
-70 < Current Level < 0 selected - current >= 5 min_diff = 5
Current Level > 0 selected - current >= 2 min_diff = 2
( Roams at delta < -2, > 2 , gap at delta -1 0 1 )
Preferred 5GHz ( current channel frequency 2.4 and select frequency is 5.0 GHz)
-------------------------------------------------------------------------------------------------------------
Current Level < -85 selected - current >= -2 min_diff = 0
-85 < Current Level < -80 selected - current >= -2 min_diff = 0
-80 < Current Level < -75 selected - current >= 1 min_diff = 1
( roams at delta -2, -1 and > 1, does not roam at delta 0 )
-75 < Current Level < -70 selected - current >= 2 min_diff = 2
( roams at delta -2 and > 2, does not roam at delta -1 0 1 )
-70 < Current Level < 0 selected - current >= 3 min_diff = 3
Current Level > 0 selected - current >= any min_diff = 0
The proposed fix in the attached patch eliminates incorrect roams.
The following data was collected from the revised algorithm
implementation.
Proposed Fix
============
Standard Roam Criteria (both select and current frequences are either
2.4 or 5 GHz)
------------------------------------------------------------------------------------
Current Level < -85 selected - current >= 1 min_diff = 1
-85 < Current Level < -80 selected - current >= 2 min_diff = 2
-80 < Current Level < -75 selected - current >= 3 min_diff = 3
-75 < Current Level < -70 selected - current >= 4 min_diff = 4
Current Level > -70 selected - current >= 5 min_diff = 5
Preferred 5GHz ( current channel frequency 2.4 and select frequency is 5.0 GHz)
------------------------------------------------------------------------------------
Current Level < -85 selected - current >= -2 min_diff = -2
-85 < Current Level < -80 selected - current >= -2 min_diff = -2
-80 < Current Level < -75 selected - current >= 1 min_diff = 1
-75 < Current Level < -70 selected - current >= 2 min_diff = 2
Current Level > -70 selected - current >= 3 min_diff = 3
Signed-off-by: Iyad Qumei <iyad.qumei@verizon.com>
---
wpa_supplicant/events.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
@@ -1700,7 +1700,7 @@ static int wpa_supplicant_need_to_roam(struct
wpa_supplicant *wpa_s,
cur_est = current_bss->est_throughput;
sel_est = selected->est_throughput;
min_diff = 2;
- if (current_bss->level < 0) {
+ {
if (current_bss->level < -85)
min_diff = 1;