Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 382781a7 authored by Shaul Triebitz's avatar Shaul Triebitz Committed by Gerrit - the friendly Code Review server
Browse files

mac80211: update HE operation fields to D3.0



HE Operation element has changed in 11ax D3.0.  Update the fields
accordingly.

Signed-off-by: default avatarShaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Git-commit: daa5b83513a7a85491ffa03e7aabd9d7348e97d5
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git


CRs-Fixed: 2743684
Change-Id: I6794a2391637d2c3dca10609963b018e7bd7b9e7
Signed-off-by: default avatarVinita S. Maloo <vmaloo@codeaurora.org>
parent 69be89a6
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -1616,7 +1616,7 @@ struct ieee80211_he_mcs_nss_supp {
 * struct ieee80211_he_operation - HE capabilities element
 *
 * This structure is the "HE operation element" fields as
 * described in P802.11ax_D2.0 section 9.4.2.238
 * described in P802.11ax_D3.0 section 9.4.2.238
 */
struct ieee80211_he_operation {
	__le32 he_oper_params;
@@ -1986,17 +1986,17 @@ ieee80211_he_ppe_size(u8 ppe_thres_hdr, const u8 *phy_cap_info)
}

/* HE Operation defines */
#define IEEE80211_HE_OPERATION_BSS_COLOR_MASK			0x0000003f
#define IEEE80211_HE_OPERATION_DFLT_PE_DURATION_MASK		0x000001c0
#define IEEE80211_HE_OPERATION_DFLT_PE_DURATION_OFFSET		6
#define IEEE80211_HE_OPERATION_TWT_REQUIRED			0x00000200
#define IEEE80211_HE_OPERATION_RTS_THRESHOLD_MASK		0x000ffc00
#define IEEE80211_HE_OPERATION_RTS_THRESHOLD_OFFSET		10
#define IEEE80211_HE_OPERATION_PARTIAL_BSS_COLOR		0x00100000
#define IEEE80211_HE_OPERATION_VHT_OPER_INFO			0x00200000
#define IEEE80211_HE_OPERATION_MULTI_BSSID_AP			0x10000000
#define IEEE80211_HE_OPERATION_TX_BSSID_INDICATOR		0x20000000
#define IEEE80211_HE_OPERATION_BSS_COLOR_DISABLED		0x40000000
#define IEEE80211_HE_OPERATION_DFLT_PE_DURATION_MASK		0x00000003
#define IEEE80211_HE_OPERATION_TWT_REQUIRED			0x00000008
#define IEEE80211_HE_OPERATION_RTS_THRESHOLD_MASK		0x00003ff0
#define IEEE80211_HE_OPERATION_RTS_THRESHOLD_OFFSET		4
#define IEEE80211_HE_OPERATION_VHT_OPER_INFO			0x00004000
#define IEEE80211_HE_OPERATION_CO_LOCATED_BSS			0x00008000
#define IEEE80211_HE_OPERATION_ER_SU_DISABLE			0x00010000
#define IEEE80211_HE_OPERATION_BSS_COLOR_MASK			0x3f000000
#define IEEE80211_HE_OPERATION_BSS_COLOR_OFFSET		24
#define IEEE80211_HE_OPERATION_PARTIAL_BSS_COLOR		0x40000000
#define IEEE80211_HE_OPERATION_BSS_COLOR_DISABLED		0x80000000

/*
 * ieee80211_he_oper_size - calculate 802.11ax HE Operations IE size
@@ -2021,7 +2021,7 @@ ieee80211_he_oper_size(const u8 *he_oper_ie)
	he_oper_params = le32_to_cpu(he_oper->he_oper_params);
	if (he_oper_params & IEEE80211_HE_OPERATION_VHT_OPER_INFO)
		oper_len += 3;
	if (he_oper_params & IEEE80211_HE_OPERATION_MULTI_BSSID_AP)
	if (he_oper_params & IEEE80211_HE_OPERATION_CO_LOCATED_BSS)
		oper_len++;

	/* Add the first byte (extension ID) to the total length */