[RFC 01/30] defs: Add definitions for SMD Information Element
Ilan Peer
ilan.peer at intel.com
Wed Oct 21 06:43:19 PDT 2026
Add definitions for SMD Information Element as defined in
Draft IEEE P802.11bn D2.0, and support parsing it.
Signed-off-by: Ilan Peer <ilan.peer at intel.com>
---
src/common/ieee802_11_common.c | 5 +++++
src/common/ieee802_11_common.h | 1 +
src/common/ieee802_11_defs.h | 17 +++++++++++++++++
3 files changed, 23 insertions(+)
diff --git a/src/common/ieee802_11_common.c b/src/common/ieee802_11_common.c
index 0a1e9a67ba81..635c7fac7d95 100644
--- a/src/common/ieee802_11_common.c
+++ b/src/common/ieee802_11_common.c
@@ -440,6 +440,11 @@ static int ieee802_11_parse_extension(const u8 *pos, size_t elen,
elems->pasn_encrypted_data = pos;
elems->pasn_encrypted_data_len = elen;
break;
+ case WLAN_EID_EXT_SMD_INFO:
+ if (elen != sizeof(struct ieee80211_smd_info))
+ break;
+ elems->smd_information = pos;
+ break;
case WLAN_EID_EXT_AKM_SUITE_SELECTOR:
if (elen < RSN_SELECTOR_LEN)
break;
diff --git a/src/common/ieee802_11_common.h b/src/common/ieee802_11_common.h
index 8dc38e21515f..b9d8380b600f 100644
--- a/src/common/ieee802_11_common.h
+++ b/src/common/ieee802_11_common.h
@@ -170,6 +170,7 @@ struct ieee802_11_elems {
const u8 *uhr_operation;
const u8 *security_profile;
const u8 *pqc_parameter;
+ const u8 *smd_information;
u8 ssid_len;
u8 supp_rates_len;
diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h
index 20edcae0b8d9..7ded1d727533 100644
--- a/src/common/ieee802_11_defs.h
+++ b/src/common/ieee802_11_defs.h
@@ -3444,6 +3444,23 @@ enum ieee80211_pqc_content_presence {
PQC_CONTENT_VENDOR_SPECIFIC = 221,
};
+/* IEEE P802.11bn/D2.0, 9.4.2.363, Figure 9-aa44 (SMD Capabilities field) */
+#define SMD_CAPA_DL_DATA_FORWARDING_ENA 0x0001
+#define SMD_CAPA_MAX_PREP_TARGET_AP_MLDS_POS 1
+#define SMD_CAPA_MAX_PREP_TARGET_AP_MLDS_MASK 0x000E
+#define SMD_CAPA_SMD_TYPE_MASK 0x0010
+#define SMD_CAPA_PER_AP_MLD_PTK_MODE 0x0020
+#define SMD_CAPA_NEIGHBOR_AP_PROBING_SUPP 0x0040
+
+/* IEEE P802.11bn/D2.0, 9.4.2.363, Figure 9-aa43 (SMD Information element) */
+struct ieee80211_smd_info {
+ u8 smd_id[ETH_ALEN];
+ u8 smd_capabilities;
+
+ /* In units of 64 TUs. Values 0 and 1 are reserved */
+ u8 prep_timeout;
+} STRUCT_PACKED;
+
#ifdef _MSC_VER
#pragma pack(pop)
#endif /* _MSC_VER */
--
2.55.0
More information about the Hostap
mailing list