[PATCH 2/2] wpa_supplicant: Add ieee80211ax status indication
Chung-Hsien Hsu
chung-hsien.hsu at infineon.com
Tue May 12 06:26:50 PDT 2026
The STATUS output has a legacy ieee80211ac=1 indication for VHT
associations, but there is no corresponding indication for HE/IEEE
802.11ax associations.
Add ieee80211ax=1 to STATUS output based on the parsed connection_he
state. Keep the indication limited to HE associations by excluding EHT
associations so that an IEEE 802.11be connection is not reported as an
IEEE 802.11ax connection.
Signed-off-by: Chung-Hsien Hsu <chung-hsien.hsu at infineon.com>
Signed-off-by: Adesh Kumar Singh <adeshkumar.singh at infineon.com>
---
wpa_supplicant/ctrl_iface.c | 9 +++++++++
wpa_supplicant/events.c | 10 ++++++++++
wpa_supplicant/wpa_supplicant_i.h | 3 +++
3 files changed, 22 insertions(+)
diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c
index 1096fa228d06..42c792b7fe39 100644
--- a/wpa_supplicant/ctrl_iface.c
+++ b/wpa_supplicant/ctrl_iface.c
@@ -2600,6 +2600,15 @@ static int wpa_supplicant_ctrl_iface_status(struct wpa_supplicant *wpa_s,
}
#endif /* CONFIG_WPS */
+#ifdef CONFIG_IEEE80211AX
+ if (wpa_s->ieee80211ax) {
+ ret = os_snprintf(pos, end - pos, "ieee80211ax=1\n");
+ if (os_snprintf_error(end - pos, ret))
+ return pos - buf;
+ pos += ret;
+ }
+#endif /* CONFIG_IEEE80211AX */
+
if (wpa_s->ieee80211ac) {
ret = os_snprintf(pos, end - pos, "ieee80211ac=1\n");
if (os_snprintf_error(end - pos, ret))
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 9afbd4617dd5..40f682803c8e 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -439,6 +439,9 @@ void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s)
os_memset(wpa_s->last_tk, 0, sizeof(wpa_s->last_tk));
#endif /* CONFIG_TESTING_OPTIONS */
wpa_s->ieee80211ac = 0;
+#ifdef CONFIG_IEEE80211AX
+ wpa_s->ieee80211ax = 0;
+#endif /* CONFIG_IEEE80211AX */
if (wpa_s->enabled_4addr_mode && wpa_drv_set_4addr_mode(wpa_s, 0) == 0)
wpa_s->enabled_4addr_mode = 0;
@@ -3534,6 +3537,9 @@ static void wpas_parse_connection_info(struct wpa_supplicant *wpa_s,
wpa_s->connection_set = 0;
wpa_s->ieee80211ac = 0;
+#ifdef CONFIG_IEEE80211AX
+ wpa_s->ieee80211ax = 0;
+#endif /* CONFIG_IEEE80211AX */
if (!req_ies || !resp_ies ||
ieee802_11_parse_elems(req_ies, req_ies_len, &req_elems, 0) ==
@@ -3560,6 +3566,10 @@ static void wpas_parse_connection_info(struct wpa_supplicant *wpa_s,
* actual VHT/IEEE 802.11ac associations. */
wpa_s->ieee80211ac = wpa_s->connection_vht &&
!wpa_s->connection_he && !wpa_s->connection_eht;
+#ifdef CONFIG_IEEE80211AX
+ wpa_s->ieee80211ax = wpa_s->connection_he &&
+ !wpa_s->connection_eht;
+#endif /* CONFIG_IEEE80211AX */
if (req_elems.rrm_enabled)
wpa_s->rrm.rrm_used = 1;
diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h
index d68dd582fb75..23739aa17ce0 100644
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
@@ -1634,6 +1634,9 @@ struct wpa_supplicant {
#ifdef CONFIG_FILS
unsigned int disable_fils:1;
#endif /* CONFIG_FILS */
+#ifdef CONFIG_IEEE80211AX
+ unsigned int ieee80211ax:1;
+#endif /* CONFIG_IEEE80211AX */
unsigned int ieee80211ac:1;
unsigned int enabled_4addr_mode:1;
unsigned int multi_bss_support:1;
--
2.25.1
More information about the Hostap
mailing list