@@ -3885,6 +3885,16 @@ enum ieee80211_protected_eht_actioncode {
3885
3885
WLAN_PROTECTED_EHT_ACTION_TTLM_REQ = 0 ,
3886
3886
WLAN_PROTECTED_EHT_ACTION_TTLM_RES = 1 ,
3887
3887
WLAN_PROTECTED_EHT_ACTION_TTLM_TEARDOWN = 2 ,
3888
+ WLAN_PROTECTED_EHT_ACTION_EPCS_ENABLE_REQ = 3 ,
3889
+ WLAN_PROTECTED_EHT_ACTION_EPCS_ENABLE_RESP = 4 ,
3890
+ WLAN_PROTECTED_EHT_ACTION_EPCS_ENABLE_TEARDOWN = 5 ,
3891
+ WLAN_PROTECTED_EHT_ACTION_EML_OP_MODE_NOTIF = 6 ,
3892
+ WLAN_PROTECTED_EHT_ACTION_LINK_RECOMMEND = 7 ,
3893
+ WLAN_PROTECTED_EHT_ACTION_ML_OP_UPDATE_REQ = 8 ,
3894
+ WLAN_PROTECTED_EHT_ACTION_ML_OP_UPDATE_RESP = 9 ,
3895
+ WLAN_PROTECTED_EHT_ACTION_LINK_RECONFIG_NOTIF = 10 ,
3896
+ WLAN_PROTECTED_EHT_ACTION_LINK_RECONFIG_REQ = 11 ,
3897
+ WLAN_PROTECTED_EHT_ACTION_LINK_RECONFIG_RESP = 12 ,
3888
3898
};
3889
3899
3890
3900
/* Security key length */
@@ -5021,6 +5031,8 @@ struct ieee80211_multi_link_elem {
5021
5031
#define IEEE80211_MLD_CAP_OP_TID_TO_LINK_MAP_NEG_SUPP_DIFF 3
5022
5032
#define IEEE80211_MLD_CAP_OP_FREQ_SEP_TYPE_IND 0x0f80
5023
5033
#define IEEE80211_MLD_CAP_OP_AAR_SUPPORT 0x1000
5034
+ #define IEEE80211_MLD_CAP_OP_LINK_RECONF_SUPPORT 0x2000
5035
+ #define IEEE80211_MLD_CAP_OP_ALIGNED_TWT_SUPPORT 0x4000
5024
5036
5025
5037
struct ieee80211_mle_basic_common_info {
5026
5038
u8 len ;
@@ -5036,6 +5048,9 @@ struct ieee80211_mle_preq_common_info {
5036
5048
} __packed ;
5037
5049
5038
5050
#define IEEE80211_MLC_RECONF_PRES_MLD_MAC_ADDR 0x0010
5051
+ #define IEEE80211_MLC_RECONF_PRES_EML_CAPA 0x0020
5052
+ #define IEEE80211_MLC_RECONF_PRES_MLD_CAPA_OP 0x0040
5053
+ #define IEEE80211_MLC_RECONF_PRES_EXT_MLD_CAPA_OP 0x0080
5039
5054
5040
5055
/* no fixed fields in RECONF */
5041
5056
@@ -5354,6 +5369,12 @@ static inline bool ieee80211_mle_size_ok(const u8 *data, size_t len)
5354
5369
case IEEE80211_ML_CONTROL_TYPE_RECONF :
5355
5370
if (control & IEEE80211_MLC_RECONF_PRES_MLD_MAC_ADDR )
5356
5371
common += ETH_ALEN ;
5372
+ if (control & IEEE80211_MLC_RECONF_PRES_EML_CAPA )
5373
+ common += 2 ;
5374
+ if (control & IEEE80211_MLC_RECONF_PRES_MLD_CAPA_OP )
5375
+ common += 2 ;
5376
+ if (control & IEEE80211_MLC_RECONF_PRES_EXT_MLD_CAPA_OP )
5377
+ common += 2 ;
5357
5378
break ;
5358
5379
case IEEE80211_ML_CONTROL_TYPE_TDLS :
5359
5380
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
5504
5525
#define IEEE80211_MLE_STA_RECONF_CONTROL_COMPLETE_PROFILE 0x0010
5505
5526
#define IEEE80211_MLE_STA_RECONF_CONTROL_STA_MAC_ADDR_PRESENT 0x0020
5506
5527
#define IEEE80211_MLE_STA_RECONF_CONTROL_AP_REM_TIMER_PRESENT 0x0040
5507
- #define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_UPDATE_TYPE 0x0780
5508
- #define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_PARAMS_PRESENT 0x0800
5528
+ #define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE 0x0780
5529
+ #define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_AP_REM 0
5530
+ #define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_OP_PARAM_UPDATE 1
5531
+ #define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_ADD_LINK 2
5532
+ #define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_DEL_LINK 3
5533
+ #define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_TYPE_NSTR_STATUS 4
5534
+ #define IEEE80211_MLE_STA_RECONF_CONTROL_OPERATION_PARAMS_PRESENT 0x0800
5509
5535
5510
5536
/**
5511
5537
* ieee80211_mle_reconf_sta_prof_size_ok - validate reconfiguration multi-link
0 commit comments