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

Commit 6d3d8a2c authored by Liad Kaufman's avatar Liad Kaufman Committed by Gerrit - the friendly Code Review server
Browse files

ieee80211: update HE IEs to D4.0 spec



Update the out-dated comments as well, and have them point to
the correct sections in the D4.0 spec.

Signed-off-by: default avatarLiad Kaufman <liad.kaufman@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Git-commit: abaea61c79ea7a03fde7db5b48414143546b07c4
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git


CRs-Fixed: 2743684
Change-Id: I1bc76e6c282312ed46ec977f8de56dc8e100bd3b
Signed-off-by: default avatarVinita S. Maloo <vmaloo@codeaurora.org>
parent 71c10958
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -1554,7 +1554,7 @@ struct ieee80211_vht_operation {
 * struct ieee80211_he_cap_elem - HE capabilities element
 *
 * This structure is the "HE capabilities element" fixed fields as
 * described in P802.11ax_D3.0 section 9.4.2.237.2 and 9.4.2.237.3
 * described in P802.11ax_D4.0 section 9.4.2.242.2 and 9.4.2.242.3
 */
struct ieee80211_he_cap_elem {
	u8 mac_cap_info[6];
@@ -1616,12 +1616,12 @@ 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_D3.0 section 9.4.2.238
 * described in P802.11ax_D4.0 section 9.4.2.243
 */
struct ieee80211_he_operation {
	__le32 he_oper_params;
	__le16 he_mcs_nss_set;
	/* Optional 0,1,3 or 4 bytes: depends on @he_oper_params */
	/* Optional 0,1,3,4,5,7 or 8 bytes: depends on @he_oper_params */
	u8 optional[0];
} __packed;

@@ -1629,7 +1629,7 @@ struct ieee80211_he_operation {
 * struct ieee80211_he_mu_edca_param_ac_rec - MU AC Parameter Record field
 *
 * This structure is the "MU AC Parameter Record" fields as
 * described in P802.11ax_D2.0 section 9.4.2.240
 * described in P802.11ax_D4.0 section 9.4.2.245
 */
struct ieee80211_he_mu_edca_param_ac_rec {
	u8 aifsn;
@@ -1641,7 +1641,7 @@ struct ieee80211_he_mu_edca_param_ac_rec {
 * struct ieee80211_mu_edca_param_set - MU EDCA Parameter Set element
 *
 * This structure is the "MU EDCA Parameter Set element" fields as
 * described in P802.11ax_D2.0 section 9.4.2.240
 * described in P802.11ax_D4.0 section 9.4.2.245
 */
struct ieee80211_mu_edca_param_set {
	u8 mu_qos_info;
@@ -2001,6 +2001,7 @@ ieee80211_he_ppe_size(u8 ppe_thres_hdr, const u8 *phy_cap_info)
#define IEEE80211_HE_OPERATION_VHT_OPER_INFO			0x00004000
#define IEEE80211_HE_OPERATION_CO_HOSTED_BSS			0x00008000
#define IEEE80211_HE_OPERATION_ER_SU_DISABLE			0x00010000
#define IEEE80211_HE_OPERATION_6GHZ_OP_INFO			0x00020000
#define IEEE80211_HE_OPERATION_BSS_COLOR_MASK			0x3f000000
#define IEEE80211_HE_OPERATION_BSS_COLOR_OFFSET		24
#define IEEE80211_HE_OPERATION_PARTIAL_BSS_COLOR		0x40000000
@@ -2031,6 +2032,8 @@ ieee80211_he_oper_size(const u8 *he_oper_ie)
		oper_len += 3;
	if (he_oper_params & IEEE80211_HE_OPERATION_CO_HOSTED_BSS)
		oper_len++;
	if (he_oper_params & IEEE80211_HE_OPERATION_6GHZ_OP_INFO)
		oper_len += 4;

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