developer | 66e89bc | 2024-04-23 14:50:01 +0800 | [diff] [blame] | 1 | From b463e82d0eec8674e430a7e837c569be4c9fe2c2 Mon Sep 17 00:00:00 2001 |
| 2 | From: mtk25255 <rohit.kamat@mediatek.com> |
| 3 | Date: Thu, 12 Oct 2023 14:29:23 +0800 |
| 4 | Subject: [PATCH 066/104] mtk: hostapd: Fix RSNXE Interop issue with STA |
| 5 | |
| 6 | --- |
| 7 | src/ap/ieee802_11.c | 13 ++++++++++++- |
| 8 | 1 file changed, 12 insertions(+), 1 deletion(-) |
| 9 | |
| 10 | diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c |
| 11 | index 923cbebcc..ce3874901 100644 |
| 12 | --- a/src/ap/ieee802_11.c |
| 13 | +++ b/src/ap/ieee802_11.c |
| 14 | @@ -5294,6 +5294,7 @@ static void handle_assoc(struct hostapd_data *hapd, |
| 15 | int omit_rsnxe = 0; |
| 16 | bool set_beacon = false; |
| 17 | bool mld_addrs_not_translated = false; |
| 18 | + bool sae_pk = false; |
| 19 | |
| 20 | if (len < IEEE80211_HDRLEN + (reassoc ? sizeof(mgmt->u.reassoc_req) : |
| 21 | sizeof(mgmt->u.assoc_req))) { |
| 22 | @@ -5539,7 +5540,17 @@ static void handle_assoc(struct hostapd_data *hapd, |
| 23 | if (resp != WLAN_STATUS_SUCCESS) |
| 24 | goto fail; |
| 25 | omit_rsnxe = !get_ie(pos, left, WLAN_EID_RSNX); |
| 26 | - |
| 27 | +#ifdef CONFIG_SAE_PK |
| 28 | + sae_pk = hostapd_sae_pk_in_use(hapd->conf); |
| 29 | +#endif /* CONFIG_SAE_PK */ |
| 30 | + if (omit_rsnxe) { |
| 31 | + if (!reassoc && wpa_key_mgmt_sae(hapd->conf->wpa_key_mgmt) && |
| 32 | + (hapd->conf->sae_pwe == SAE_PWE_HASH_TO_ELEMENT || |
| 33 | + hapd->conf->sae_pwe == SAE_PWE_BOTH || sae_pk || |
| 34 | + wpa_key_mgmt_sae_ext_key(hapd->conf->wpa_key_mgmt))) { |
| 35 | + omit_rsnxe = 0; |
| 36 | + } |
| 37 | + } |
| 38 | if (hostapd_get_aid(hapd, sta) < 0) { |
| 39 | hostapd_logger(hapd, mgmt->sa, HOSTAPD_MODULE_IEEE80211, |
| 40 | HOSTAPD_LEVEL_INFO, "No room for more AIDs"); |
| 41 | -- |
| 42 | 2.39.2 |
| 43 | |