]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: ieee80211: Add some missing MLO related definitions
authorIlan Peer <ilan.peer@intel.com>
Thu, 2 Jan 2025 14:19:53 +0000 (16:19 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 13 Jan 2025 14:34:08 +0000 (15:34 +0100)
As a preparation to support ML reconfiguration request and
response, add additional ML reconfiguration definitions
required to support the flow. See Section 9.4.2.321.4 in
Draft P802.11be_D6.0.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250102161730.4970ca10ebfd.Ibe7f6108cd0e04b8c739a8e35a4f485f664a17e6@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/linux/ieee80211.h

index 745c3b125d976e31771ee657b8a187074eaf272a..ee6bebfd041d3aaa56c22ed38efb7825eca46e38 100644 (file)
@@ -3885,6 +3885,16 @@ enum ieee80211_protected_eht_actioncode {
        WLAN_PROTECTED_EHT_ACTION_TTLM_REQ = 0,
        WLAN_PROTECTED_EHT_ACTION_TTLM_RES = 1,
        WLAN_PROTECTED_EHT_ACTION_TTLM_TEARDOWN = 2,
+       WLAN_PROTECTED_EHT_ACTION_EPCS_ENABLE_REQ = 3,
+       WLAN_PROTECTED_EHT_ACTION_EPCS_ENABLE_RESP = 4,
+       WLAN_PROTECTED_EHT_ACTION_EPCS_ENABLE_TEARDOWN = 5,
+       WLAN_PROTECTED_EHT_ACTION_EML_OP_MODE_NOTIF = 6,
+       WLAN_PROTECTED_EHT_ACTION_LINK_RECOMMEND = 7,
+       WLAN_PROTECTED_EHT_ACTION_ML_OP_UPDATE_REQ = 8,
+       WLAN_PROTECTED_EHT_ACTION_ML_OP_UPDATE_RESP = 9,
+       WLAN_PROTECTED_EHT_ACTION_LINK_RECONFIG_NOTIF = 10,
+       WLAN_PROTECTED_EHT_ACTION_LINK_RECONFIG_REQ = 11,
+       WLAN_PROTECTED_EHT_ACTION_LINK_RECONFIG_RESP = 12,
 };
 
 /* Security key length */
@@ -5021,6 +5031,8 @@ struct ieee80211_multi_link_elem {
 #define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_SUPP_DIFF     3
 #define IEEE80211_MLD_CAP_OP_FREQ_SEP_TYPE_IND         0x0f80
 #define IEEE80211_MLD_CAP_OP_AAR_SUPPORT               0x1000
+#define IEEE80211_MLD_CAP_OP_LINK_RECONF_SUPPORT       0x2000
+#define IEEE80211_MLD_CAP_OP_ALIGNED_TWT_SUPPORT       0x4000
 
 struct ieee80211_mle_basic_common_info {
        u8 len;
@@ -5036,6 +5048,9 @@ struct ieee80211_mle_preq_common_info {
 } __packed;
 
 #define IEEE80211_MLC_RECONF_PRES_MLD_MAC_ADDR         0x0010
+#define IEEE80211_MLC_RECONF_PRES_EML_CAPA             0x0020
+#define IEEE80211_MLC_RECONF_PRES_MLD_CAPA_OP          0x0040
+#define IEEE80211_MLC_RECONF_PRES_EXT_MLD_CAPA_OP      0x0080
 
 /* no fixed fields in RECONF */
 
@@ -5354,6 +5369,12 @@ static inline bool ieee80211_mle_size_ok(const u8 *data, size_t len)
        case IEEE80211_ML_CONTROL_TYPE_RECONF:
                if (control & IEEE80211_MLC_RECONF_PRES_MLD_MAC_ADDR)
                        common += ETH_ALEN;
+               if (control & IEEE80211_MLC_RECONF_PRES_EML_CAPA)
+                       common += 2;
+               if (control & IEEE80211_MLC_RECONF_PRES_MLD_CAPA_OP)
+                       common += 2;
+               if (control & IEEE80211_MLC_RECONF_PRES_EXT_MLD_CAPA_OP)
+                       common += 2;
                break;
        case IEEE80211_ML_CONTROL_TYPE_TDLS:
                common += sizeof(struct ieee80211_mle_tdls_common_info);
@@ -5504,8 +5525,13 @@ ieee80211_mle_basic_sta_prof_bss_param_ch_cnt(const struct ieee80211_mle_per_sta
 #define IEEE80211_MLE_STA_RECONF_CONTROL_COMPLETE_PROFILE              0x0010
 #define IEEE80211_MLE_STA_RECONF_CONTROL_STA_MAC_ADDR_PRESENT          0x0020
 #define IEEE80211_MLE_STA_RECONF_CONTROL_AP_REM_TIMER_PRESENT          0x0040
-#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_UPDATE_TYPE         0x0780
-#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_PARAMS_PRESENT      0x0800
+#define        IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE                 0x0780
+#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_AP_REM          0
+#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_OP_PARAM_UPDATE 1
+#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_ADD_LINK        2
+#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_DEL_LINK        3
+#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_NSTR_STATUS     4
+#define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_PARAMS_PRESENT       0x0800
 
 /**
  * ieee80211_mle_reconf_sta_prof_size_ok - validate reconfiguration multi-link