]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
AP MLD: Set WLAN_STA_ASSOC flag before copying STA entry (SME-in-driver)
authorChenming Huang <quic_chenhuan@quicinc.com>
Fri, 14 Feb 2025 06:08:37 +0000 (11:38 +0530)
committerJouni Malinen <j@w1.fi>
Fri, 14 Feb 2025 09:14:38 +0000 (11:14 +0200)
In SME offloaded cases, it was found that WLAN_STA_ASSOC flag is
not set on all STA entries. This is because STA entries are
copied before WLAN_STA_ASSOC flag is set in the assocation link.

To fix that, set WLAN_STA_ASSOC flag properly before calling
hostapd_process_assoc_ml_info() where flags are copied to STA
entries in other links.

Signed-off-by: Chenming Huang <quic_chenhuan@quicinc.com>
src/ap/drv_callbacks.c

index 7234a3b478c98aa21caffe984bdcc263b2304491..d781cca3d9076ce2676a0c7e31c51cfbe010d8b6 100644 (file)
@@ -923,6 +923,12 @@ skip_wpa_check:
        }
 #endif /* CONFIG_IEEE80211R_AP || CONFIG_FILS */
 
+       new_assoc = (sta->flags & WLAN_STA_ASSOC) == 0;
+       sta->flags |= WLAN_STA_AUTH | WLAN_STA_ASSOC;
+       sta->flags &= ~WLAN_STA_WNM_SLEEP_MODE;
+
+       hostapd_set_sta_flags(hapd, sta);
+
 #ifdef CONFIG_IEEE80211BE
        if (hostapd_process_assoc_ml_info(hapd, sta, req_ies, req_ies_len,
                                          !!reassoc, WLAN_STATUS_SUCCESS,
@@ -933,11 +939,6 @@ skip_wpa_check:
        }
 #endif /* CONFIG_IEEE80211BE */
 
-       new_assoc = (sta->flags & WLAN_STA_ASSOC) == 0;
-       sta->flags |= WLAN_STA_AUTH | WLAN_STA_ASSOC;
-       sta->flags &= ~WLAN_STA_WNM_SLEEP_MODE;
-
-       hostapd_set_sta_flags(hapd, sta);
        if (updated)
                ap_sta_set_authorized_event(hapd, sta, 1);