[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