From e297a5bfdadf37dbcea50c44d550fccca3225d45 Mon Sep 17 00:00:00 2001 From: Rajkumar Manoharan Date: Fri, 24 Apr 2020 15:45:34 -0700 Subject: [PATCH] HE: Define 6 GHz band capability elements Defines IEEE P802.11ax/D6.0, 9.4.2.261 HE 6 GHz Band Capabilities element and 6 GHz Operation Information field of HE Operation element (IEEE P802.11ax/D6.0, Figure 9-787k). Signed-off-by: Rajkumar Manoharan --- src/common/ieee802_11_defs.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h index 7f31e09a1..49266ada9 100644 --- a/src/common/ieee802_11_defs.h +++ b/src/common/ieee802_11_defs.h @@ -473,6 +473,7 @@ #define WLAN_EID_EXT_SPATIAL_REUSE 39 #define WLAN_EID_EXT_OCV_OCI 54 #define WLAN_EID_EXT_SHORT_SSID_LIST 58 +#define WLAN_EID_EXT_HE_6GHZ_BAND_CAP 59 #define WLAN_EID_EXT_EDMG_CAPABILITIES 61 #define WLAN_EID_EXT_EDMG_OPERATION 62 #define WLAN_EID_EXT_REJECTED_GROUPS 92 @@ -2151,6 +2152,41 @@ struct ieee80211_he_operation { /* Followed by conditional MaxBSSID Indicator subfield (u8) */ } STRUCT_PACKED; +/* IEEE P802.11ax/D6.0, Figure 9-787k - 6 GHz Operation Information field */ +struct ieee80211_he_6ghz_oper_info { + u8 primary_chan; + u8 control; + u8 chan_center_freq_seg0; + u8 chan_center_freq_seg1; + u8 min_rate; +} STRUCT_PACKED; + +#define HE_6GHZ_OPER_INFO_CTRL_CHAN_WIDTH_MASK (BIT(0) | BIT(1)) +#define HE_6GHZ_OPER_INFO_CTRL_DUP_BEACON BIT(2) + +/* IEEE P802.11ax/D6.0, 9.4.2.261 HE 6 GHz Band Capabilities element */ +struct ieee80211_he_6ghz_band_cap { + /* Minimum MPDU Start Spacing B0..B2 + * Maximum A-MPDU Length Exponent B3..B5 + * Maximum MPDU Length B6..B7 */ + u8 a_mpdu_params; /* B0..B7 */ + u8 info; /* B8..B15 */ +} STRUCT_PACKED; + +#define HE_6GHZ_BAND_CAP_MIN_MPDU_START_SPACE_MASK 0x7 +#define HE_6GHZ_BAND_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK 0x7 +#define HE_6GHZ_BAND_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT 3 +#define HE_6GHZ_BAND_CAP_MAX_MPDU_LENGTH_MASK 0x3 +#define HE_6GHZ_BAND_CAP_MAX_MPDU_LENGTH_SHIFT 6 + +#define HE_6GHZ_BAND_CAP_SMPS_MASK (BIT(1) | BIT(2)) +#define HE_6GHZ_BAND_CAP_SMPS_STATIC 0 +#define HE_6GHZ_BAND_CAP_SMPS_DYNAMIC BIT(1) +#define HE_6GHZ_BAND_CAP_SMPS_DISABLED (BIT(1) | BIT(2)) +#define HE_6GHZ_BAND_CAP_RD_RESPONDER BIT(3) +#define HE_6GHZ_BAND_CAP_RX_ANTENNA_PATTERN BIT(4) +#define HE_6GHZ_BAND_CAP_TX_ANTENNA_PATTERN BIT(5) + /* * IEEE P802.11ax/D4.0, 9.4.2.246 Spatial Reuse Parameter Set element */