wifi: iwlwifi: mvm: avoid always prefering single-link
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Sun, 5 May 2024 06:19:53 +0000 (09:19 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 6 May 2024 14:33:24 +0000 (16:33 +0200)
The new link selection algorithm uses defaults values for BSS load if
the BSS Load element was not published by the AP.
For 6 GHz, that value is 0. So if the best link is 6 GHz, the EMLSR
grade to always be equal to the grade of the best link,
and then the best link grade is getting a bonus of 10 percent, meaning
that we will never activate EMLSR.
Change the logic to not give a bonus for the best link.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240505091420.4614e6891dbd.Ie40eae0dd99d82ba60dea5b6dbcd42dcdf16b90d@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/link.c

index 79f048f..9d7f9e5 100644 (file)
@@ -727,8 +727,8 @@ void iwl_mvm_select_links(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
        if (hweight16(new_active_links) <= 1)
                goto set_active;
 
-       /* prefer single link over marginal eSR improvement */
-       if (best_link->grade * 110 / 100 >= max_esr_grade) {
+       /* For equal grade - prefer EMLSR */
+       if (best_link->grade > max_esr_grade) {
                primary_link = best_link->link_id;
                new_active_links = BIT(best_link->link_id);
        }