[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