Skip to content

Commit

Permalink
wifi: ieee80211: Add some missing MLO related definitions
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ilan Peer authored and Johannes Berg committed Jan 13, 2025
1 parent 2215914 commit fa2a71a
Showing 1 changed file with 28 additions and 2 deletions.
30 changes: 28 additions & 2 deletions include/linux/ieee80211.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down Expand Up @@ -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;
Expand All @@ -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 */

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit fa2a71a

Please sign in to comment.