[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