]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
MLO: Link reconfiguration message definitions
authorPooventhiran G <quic_pooventh@quicinc.com>
Fri, 9 May 2025 15:50:19 +0000 (21:20 +0530)
committerJouni Malinen <j@w1.fi>
Mon, 2 Jun 2025 14:02:27 +0000 (17:02 +0300)
Define identifiers and structures for link reconfiguration.

Reviewed-by: Rohan Dutta <quic_drohan@quicinc.com>
Signed-off-by: Pooventhiran G <quic_pooventh@quicinc.com>
src/common/ieee802_11_defs.h

index d029cf90573ea3f4690b0d99e0f278d24cedbc7b..6cf8b146d6e1d7c44ed381c15349fd5a37732b5e 100644 (file)
@@ -1183,6 +1183,23 @@ struct ieee80211_mgmt {
                                        u8 dialog_token;
                                        u8 variable[];
                                } STRUCT_PACKED rrm;
+                               struct {
+                                       u8 action; /* Protected EHT - 11 */
+                                       u8 dialog_token;
+                                       /* Reconfiguration Multi-Link element,
+                                       * OCI element (optional) */
+                                       u8 variable[];
+                               } STRUCT_PACKED link_reconf_req;
+                               struct {
+                                       u8 action; /* Protected EHT - 12 */
+                                       u8 dialog_token;
+                                       u8 count;
+                                       /* Reconfiguration status list,
+                                        * Group Key Data (optional),
+                                        * OCI element (optional),
+                                        * Basic Multi-Link element (optional) */
+                                       u8 variable[];
+                               } STRUCT_PACKED link_reconf_resp;
                        } u;
                } STRUCT_PACKED action;
        } u;
@@ -2849,6 +2866,7 @@ struct eht_ml_basic_common_info {
 #define EHT_ML_MLD_CAPA_AP_MLD_TYPE_IND_MASK          0x0080
 #define EHT_ML_MLD_CAPA_FREQ_SEP_FOR_STR_MASK         0x0f80
 #define EHT_ML_MLD_CAPA_AAR_SUPP                      0x1000
+#define EHT_ML_MLD_CAPA_LINK_RECONF_OP_SUPPORT        0x2000
 
 #define EHT_PER_STA_CTRL_LINK_ID_MSK                  0x000f
 #define EHT_PER_STA_CTRL_COMPLETE_PROFILE_MSK         0x0010
@@ -2902,6 +2920,8 @@ struct eht_ml_probe_req_common_info {
 #define EHT_PER_STA_RECONF_CTRL_NSTR_BITMAP_SIZE   0x1000
 #define EHT_PER_STA_RECONF_CTRL_NSTR_INDICATION    0x2000
 
+#define EHT_PER_STA_RECONF_CTRL_OP_UPDATE_TYPE_VAL(x) ((x) >> 7)
+
 /* IEEE P802.11be/D7.0, Figure 9-1074ad - Common Info field format of the
  * Reconfiguration Multi-Link element */
 struct eht_ml_reconf_common_info {
@@ -2920,6 +2940,31 @@ struct eht_ml_reconf_common_info {
 } STRUCT_PACKED;
 
 
+/* IEEE P802.11be/D7.0, Table 9-417p - Reconfiguration Operation Type subfield
+ * encoding */
+enum ieee80211_eht_reconf_mle_op_type {
+       EHT_RECONF_TYPE_AP_REMOVAL = 0,
+       EHT_RECONF_TYPE_OP_PARAM_UPDATE = 1,
+       EHT_RECONF_TYPE_ADD_LINK = 2,
+       EHT_RECONF_TYPE_DELETE_LINK = 3,
+       EHT_RECONF_TYPE_NSTR_STATUS_UPDATE = 4,
+};
+
+/* IEEE P802.11be/D7.0, Figure 9-1074ag — STA Info field format for the
+ * Reconfiguration Multi-Link element */
+struct eht_ml_reconf_sta_info {
+       u8 len;
+
+       /* Followed by optional fields based on STA control presence bitmap.
+        *
+        * STA MAC Address: 6 octets
+        * AP Removal Timer: 2 octets
+        * Operation Parameters: 3 octets
+        * NSTR Indication Bitmap: 1 or 2 octets
+        */
+       u8 variable[];
+} STRUCT_PACKED;
+
 /* IEEE P802.11be/D2.0, 9.4.2.312.1 - Multi-Link element / General */
 
 struct ieee80211_eht_ml {