blob: 45a340d0a1b72f9ad13b78914a4e147f396e83e4 [file] [log] [blame]
From d65c803ab5583dddc6574b09fee47ccfb39cb99b Mon Sep 17 00:00:00 2001
From: mtk20656 <chank.chen@mediatek.com>
Date: Mon, 24 Jul 2023 11:30:27 +0800
Subject: [PATCH] hostapd: mtk: add extension IE list for non-inherit IE in
mbssid
Certain clients do not scan all non tx profiles due to absence of
element ID extension list which is mandatory field in non inheritance
IE. Non inheritance Element ID is followed by extension element ID.
Length is expected to be mentioned. Currently we do not support any
extension element and hence filling length as 0.
Signed-off-by: mtk20656 <chank.chen@mediatek.com>
---
src/ap/ieee802_11.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
old mode 100644
new mode 100755
index 1bf5bea..d36798e
--- a/src/ap/ieee802_11.c
+++ b/src/ap/ieee802_11.c
@@ -7639,7 +7639,7 @@ static size_t hostapd_eid_mbssid_elem_len(struct hostapd_data *hapd,
else if (hapd->conf->xrates_supported)
ie_count++;
if (ie_count)
- nontx_profile_len += 4 + ie_count;
+ nontx_profile_len += 5 + ie_count;
if (len + nontx_profile_len > 255)
break;
@@ -7780,11 +7780,16 @@ static u8 * hostapd_eid_mbssid_elem(struct hostapd_data *hapd, u8 *eid, u8 *end,
non_inherit_ie[ie_count++] = WLAN_EID_EXT_SUPP_RATES;
if (ie_count) {
*eid++ = WLAN_EID_EXTENSION;
- *eid++ = 2 + ie_count;
+ *eid++ = 3 + ie_count;
*eid++ = WLAN_EID_EXT_NON_INHERITANCE;
*eid++ = ie_count;
os_memcpy(eid, non_inherit_ie, ie_count);
eid += ie_count;
+ /* Element ID extension list is mandatory part of non inheritance IE.
+ * It has a length field followed by extension IEs. Currently no
+ * extension IEs are supported so filling length as 0.
+ */
+ *eid++ = 0;
}
*eid_len_pos = (eid - eid_len_pos) - 1;
--
2.18.0