@@ -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);