[RFC 03/30] defs: Add definitions for UHR SMD

Ilan Peer ilan.peer at intel.com
Wed Oct 21 06:43:21 PDT 2026


Add definitions for UHR Link Reconfiguration frames, Reconfiguration
Multi-Link element extensions and the SMD RSNXE capability, as defined
in Draft IEEE P802.11bn D2.0.

Signed-off-by: Ilan Peer <ilan.peer at intel.com>
---
 src/common/ieee802_11_defs.h | 72 ++++++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)

diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h
index 54db1d60cdf7..41f6e54ae509 100644
--- a/src/common/ieee802_11_defs.h
+++ b/src/common/ieee802_11_defs.h
@@ -667,6 +667,8 @@
 #define WLAN_RSNX_CAPAB_PMKSA_CACHING_PRIVACY 29
 #define WLAN_RSNX_CAPAB_SAE_PW_ID_CHANGE 34
 #define WLAN_RSNX_CAPAB_UNAUTH_EPPKE 36
+/* IEEE P802.11bn/D2.0, 9.4.2.240, Table 9-408 */
+#define WLAN_RSNX_CAPAB_SMD 37
 
 /* Security Profile element fields (IEEE P802.11bn/D2.0, 9.4.2.369) */
 /* Reduced RSN Capabilities field bits (Figure 9-aa75) */
@@ -1302,6 +1304,12 @@ struct ieee80211_mgmt {
 					u8 subtype;
 					u8 variable[0];
 				} STRUCT_PACKED naf;
+				struct {
+					u8 action;
+					u8 dialog_token;
+					u8 message_type;
+					u8 variable[];
+				} STRUCT_PACKED uhr_link_conf;
 			} u;
 		} STRUCT_PACKED action;
 	} u;
@@ -3065,6 +3073,9 @@ struct eht_ml_probe_req_common_info {
 #define RECONF_MULTI_LINK_CTRL_PRES_MLD_CAPA       0x0004
 #define RECONF_MULTI_LINK_CTRL_PRES_EXT_MLD_CAP    0x0008
 
+/* IEEE P802.11bn/D2.0, 9.4.2.323.4, Figure 9-1180 (Presence Bitmap) */
+#define RECONF_MULTI_LINK_CTRL_PRES_TARGET_AP_MLD_ADDR 0x0010
+
 #define EHT_PER_STA_RECONF_CTRL_LINK_ID_MSK        0x000f
 #define EHT_PER_STA_RECONF_CTRL_COMPLETE_PROFILE   0x0010
 #define EHT_PER_STA_RECONF_CTRL_MAC_ADDR           0x0020
@@ -3089,6 +3100,7 @@ struct eht_ml_reconf_common_info {
 	 * EML Capabilities: 2 octets
 	 * MLD Capabilities and Operations: 2 octets
 	 * Extended MLD Capabilities and Operations: 2 octets
+	 * Target AP MLD MAC Address: 6 octets
 	 */
 	u8 variable[];
 } STRUCT_PACKED;
@@ -3102,6 +3114,9 @@ enum ieee80211_eht_reconf_mle_op_type {
 	EHT_RECONF_TYPE_ADD_LINK = 2,
 	EHT_RECONF_TYPE_DELETE_LINK = 3,
 	EHT_RECONF_TYPE_NSTR_STATUS_UPDATE = 4,
+	EHT_RECONF_TYPE_UHR_OP_MODE_PARAMS_UPDATE = 5,
+	EHT_RECONF_TYPE_DELETE_ST_PREP = 6,
+	EHT_RECONF_TYPE_LINK_DISABLE_AT_TARGET_AP_MLD = 7,
 };
 
 /* IEEE Std 802.11be-2024, Figure 9-1074ag — STA Info field format for the
@@ -3520,6 +3535,63 @@ struct ieee80211_st_exec_resp_st_info {
 	u8 variable[];
 } STRUCT_PACKED;
 
+/*
+ * IEEE P802.11bn/D2.0, 9.6.43.1, Table 9-658ba (Protected UHR Action field
+ * values)
+ */
+enum uhr_protected_action {
+	UHR_PROT_ACTION_LINK_RECONF_REQ     = 0,
+	UHR_PROT_ACTION_LINK_RECONF_RESP    = 1,
+	UHR_PROT_ACTION_LINK_RECONF_NOTIFY  = 2,
+	UHR_PROT_ACTION_NEIGH_AP_PROBE_REQ  = 3,
+	UHR_PROT_ACTION_NEIGH_AP_PROBE_RESP = 4,
+};
+
+/*
+ * IEEE P802.11bn/D2.0, 9.6.43.2, Table 9-658bc (Message Type field encoding
+ * for UHR Link Reconfiguration Request frame)
+ */
+enum uhr_link_reconf_req_type {
+	UHR_LINK_RECONF_REQ_TYPE_ST_PREP = 0,
+	UHR_LINK_RECONF_REQ_TYPE_ST_EXEC = 1,
+	/* The value 2 is reserved */
+	UHR_LINK_RECONF_REQ_TYPE_OMP_REQ = 3,
+};
+
+/*
+ * IEEE P802.11bn/D2.0, 9.6.43.3, Table 9-658be (Message Type field encoding
+ * for UHR Link Reconfiguration Response frame)
+ */
+enum uhr_link_reconf_resp_type {
+	UHR_LINK_RECONF_RESP_TYPE_ST_PREP = 0,
+	UHR_LINK_RECONF_RESP_TYPE_ST_EXEC = 1,
+};
+
+/*
+ * IEEE P802.11bn/D2.0, 9.6.43.4, Table 9-658bg (Message Type field encoding
+ * for UHR Link Reconfiguration Notify frame)
+ */
+enum uhr_link_reconf_notif_type {
+	UHR_LINK_RECONF_NOTIF_TYPE_EARLY_TERM_DL_DRAIN = 2,
+	UHR_LINK_RECONF_NOTIF_TYPE_OMP_RESP            = 3,
+	UHR_LINK_RECONF_NOTIF_TYPE_OMP_CONFIRM         = 4,
+	UHR_LINK_RECONF_NOTIF_TYPE_ST_UPDATE           = 5,
+	UHR_LINK_RECONF_NOTIF_TYPE_ST_PREP_RECOMMEND   = 6,
+};
+
+/*
+ * IEEE P802.11bn/D2.0, 9.6.43.4, Figures 9-1562b and 9-1562c (DL Data Drain
+ * Info field format)
+ */
+#define UHR_LINK_RECONF_NOTIF_DL_DRAINING_COMPLETED  0x1
+#define UHR_LINK_RECONF_NOTIF_PER_TID_DL_BITMAP_PRES 0x2
+struct ieee80211_uhr_link_reconf_dl_data_drain_notif {
+	u8 all_tids_info;
+
+	/* Followed by optional Per-TID DL Bitmap: 1 octet */
+	u8 variable[];
+} STRUCT_PACKED;
+
 #ifdef _MSC_VER
 #pragma pack(pop)
 #endif /* _MSC_VER */
-- 
2.55.0




More information about the Hostap mailing list