[PATCH 1/2] wpa_supplicant: Fix ieee80211ac status indication
Chung-Hsien Hsu
chung-hsien.hsu at infineon.com
Tue May 12 06:26:49 PDT 2026
The legacy ieee80211ac=1 STATUS flag is currently set based only on the
presence of a VHT Capabilities element in the Association Response. This
can report ieee80211ac=1 for HE/EHT associations on non-6 GHz bands
where VHT capabilities are present as well.
wpas_parse_connection_info() already derives the actual connection mode
from both the Association Request and Response IEs and excludes the 2.4
GHz vendor VHT extension from connection_vht. Use that result for the
legacy ieee80211ac STATUS flag instead of parsing the Association
Response separately.
This keeps ieee80211ac=1 limited to VHT/IEEE 802.11ac associations.
Signed-off-by: Chung-Hsien Hsu <chung-hsien.hsu at infineon.com>
Signed-off-by: Yu-Chien Huang <roy.huang at infineon.com>
---
wpa_supplicant/events.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 2a281e4c4b06..9afbd4617dd5 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -3533,6 +3533,7 @@ static void wpas_parse_connection_info(struct wpa_supplicant *wpa_s,
struct wpabuf *req_mlbuf, *resp_mlbuf;
wpa_s->connection_set = 0;
+ wpa_s->ieee80211ac = 0;
if (!req_ies || !resp_ies ||
ieee802_11_parse_elems(req_ies, req_ies_len, &req_elems, 0) ==
@@ -3554,6 +3555,12 @@ static void wpas_parse_connection_info(struct wpa_supplicant *wpa_s,
resp_elems.he_capabilities;
wpa_s->connection_eht = req_elems.eht_capabilities &&
resp_elems.eht_capabilities;
+
+ /* Keep the legacy ieee80211ac status indication limited to
+ * actual VHT/IEEE 802.11ac associations. */
+ wpa_s->ieee80211ac = wpa_s->connection_vht &&
+ !wpa_s->connection_he && !wpa_s->connection_eht;
+
if (req_elems.rrm_enabled)
wpa_s->rrm.rrm_used = 1;
@@ -3750,10 +3757,6 @@ static int wpa_supplicant_event_associnfo(struct wpa_supplicant *wpa_s,
#endif /* CONFIG_WNM */
interworking_process_assoc_resp(wpa_s, data->assoc_info.resp_ies,
data->assoc_info.resp_ies_len);
- if ((wpa_s->hw_capab & BIT(CAPAB_VHT)) &&
- get_ie(data->assoc_info.resp_ies,
- data->assoc_info.resp_ies_len, WLAN_EID_VHT_CAP))
- wpa_s->ieee80211ac = 1;
multi_ap_process_assoc_resp(wpa_s, data->assoc_info.resp_ies,
data->assoc_info.resp_ies_len);
--
2.25.1
More information about the Hostap
mailing list