diff --git a/mlme/core/src/wlan_mlme_main.c b/mlme/core/src/wlan_mlme_main.c index c9b7ae0a72..ce4db76dd6 100644 --- a/mlme/core/src/wlan_mlme_main.c +++ b/mlme/core/src/wlan_mlme_main.c @@ -409,6 +409,85 @@ static void mlme_init_mbo_cfg(struct wlan_objmgr_psoc *psoc, cfg_get(psoc, CFG_MBO_CAND_RSSI_BTC_THRESHOLD); } +static void mlme_init_vht_cap_cfg(struct wlan_objmgr_psoc *psoc, + struct mlme_vht_capabilities_info + *vht_cap_info) +{ + vht_cap_info->supp_chan_width = + cfg_default(CFG_VHT_SUPP_CHAN_WIDTH); + vht_cap_info->tx_bfee_ant_supp = + cfg_default(CFG_VHT_BEAMFORMEE_ANT_SUPP); + vht_cap_info->num_soundingdim = + cfg_default(CFG_VHT_NUM_SOUNDING_DIMENSIONS); + vht_cap_info->htc_vhtc = + cfg_default(CFG_VHT_HTC_VHTC); + vht_cap_info->link_adap_cap = + cfg_default(CFG_VHT_LINK_ADAPTATION_CAP); + vht_cap_info->rx_antpattern = + cfg_default(CFG_VHT_RX_ANT_PATTERN); + vht_cap_info->tx_antpattern = + cfg_default(CFG_VHT_TX_ANT_PATTERN); + vht_cap_info->rx_supp_data_rate = + cfg_default(CFG_VHT_RX_SUPP_DATA_RATE); + vht_cap_info->tx_supp_data_rate = + cfg_default(CFG_VHT_TX_SUPP_DATA_RATE); + vht_cap_info->enable_txbf_20mhz = + cfg_default(CFG_VHT_ENABLE_TXBF_20MHZ); + + vht_cap_info->ampdu_len = + cfg_get(psoc, CFG_VHT_MPDU_LEN); + vht_cap_info->ldpc_coding_cap = + cfg_get(psoc, CFG_VHT_LDPC_CODING_CAP); + vht_cap_info->short_gi_80mhz = + cfg_get(psoc, CFG_VHT_SHORT_GI_80MHZ); + vht_cap_info->short_gi_160mhz = + cfg_get(psoc, CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ); + vht_cap_info->tx_stbc = + cfg_get(psoc, CFG_VHT_TXSTBC); + vht_cap_info->rx_stbc = + cfg_get(psoc, CFG_VHT_RXSTBC); + vht_cap_info->su_bformer = + cfg_get(psoc, CFG_VHT_SU_BEAMFORMER_CAP); + vht_cap_info->su_bformee = + cfg_get(psoc, CFG_VHT_SU_BEAMFORMEE_CAP); + vht_cap_info->mu_bformer = + cfg_get(psoc, CFG_VHT_MU_BEAMFORMER_CAP); + vht_cap_info->enable_mu_bformee = + cfg_get(psoc, CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE); + vht_cap_info->txop_ps = + cfg_get(psoc, CFG_VHT_TXOP_PS); + vht_cap_info->ampdu_len_exponent = + cfg_get(psoc, CFG_VHT_AMPDU_LEN_EXPONENT); + vht_cap_info->rx_mcs_map = + cfg_get(psoc, CFG_VHT_RX_MCS_MAP); + vht_cap_info->tx_mcs_map = + cfg_get(psoc, CFG_VHT_TX_MCS_MAP); + vht_cap_info->basic_mcs_set = + cfg_get(psoc, CFG_VHT_BASIC_MCS_SET); + vht_cap_info->channel_width = + cfg_get(psoc, CFG_VHT_CHANNEL_WIDTH); + vht_cap_info->rx_mcs = + cfg_get(psoc, CFG_VHT_ENABLE_RX_MCS_8_9); + vht_cap_info->tx_mcs = + cfg_get(psoc, CFG_VHT_ENABLE_TX_MCS_8_9); + vht_cap_info->rx_mcs2x2 = + cfg_get(psoc, CFG_VHT_ENABLE_RX_MCS2x2_8_9); + vht_cap_info->tx_mcs2x2 = + cfg_get(psoc, CFG_VHT_ENABLE_TX_MCS2x2_8_9); + vht_cap_info->enable_vht20_mcs9 = + cfg_get(psoc, CFG_ENABLE_VHT20_MCS9); + vht_cap_info->enable2x2 = + cfg_get(psoc, CFG_VHT_ENABLE_2x2_CAP_FEATURE); + vht_cap_info->enable_paid = + cfg_get(psoc, CFG_VHT_ENABLE_PAID_FEATURE); + vht_cap_info->enable_gid = + cfg_get(psoc, CFG_VHT_ENABLE_GID_FEATURE); + vht_cap_info->b24ghz_band = + cfg_get(psoc, CFG_ENABLE_VHT_FOR_24GHZ); + vht_cap_info->vendor_24ghz_band = + cfg_get(psoc, CFG_ENABLE_VENDOR_VHT_FOR_24GHZ); +} + static void mlme_init_rates_in_cfg(struct wlan_objmgr_psoc *psoc, struct wlan_mlme_rates *rates) { @@ -1020,6 +1099,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) mlme_init_qos_cfg(psoc, &mlme_cfg->qos_mlme_params); mlme_init_rates_in_cfg(psoc, &mlme_cfg->rates); mlme_init_sap_protection_cfg(psoc, &mlme_cfg->sap_protection_cfg); + mlme_init_vht_cap_cfg(psoc, &mlme_cfg->vht_caps.vht_cap_info); mlme_init_chainmask_cfg(psoc, &mlme_cfg->chainmask_cfg); mlme_init_sap_cfg(psoc, &mlme_cfg->sap_cfg); mlme_init_he_cap_in_cfg(psoc, &mlme_cfg->he_caps); diff --git a/mlme/dispatcher/inc/cfg_mlme.h b/mlme/dispatcher/inc/cfg_mlme.h index 176072f4b4..8b6cf37f2d 100644 --- a/mlme/dispatcher/inc/cfg_mlme.h +++ b/mlme/dispatcher/inc/cfg_mlme.h @@ -69,7 +69,6 @@ CFG_THRESHOLD_ALL \ CFG_TIMEOUT_ALL \ CFG_VHT_CAPS_ALL \ - CFG_VHT_CAPS_ALL \ CFG_WEP_PARAMS_ALL #endif /* __CFG_MLME_H */ diff --git a/mlme/dispatcher/inc/cfg_mlme_vht_caps.h b/mlme/dispatcher/inc/cfg_mlme_vht_caps.h index b61d3a8d58..bb953ca9eb 100644 --- a/mlme/dispatcher/inc/cfg_mlme_vht_caps.h +++ b/mlme/dispatcher/inc/cfg_mlme_vht_caps.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -23,6 +23,446 @@ #ifndef __CFG_MLME_VHT_CAPS_H #define __CFG_MLME_VHT_CAPS_H -#define CFG_VHT_CAPS_ALL +#define CFG_VHT_SUPP_CHAN_WIDTH CFG_UINT( \ + "supp_chan_width", \ + 0, \ + 2, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT SUPPORTED CHAN WIDTH SET") -#endif /* __CFG_MLME_HT_CAPS_H */ +#define CFG_VHT_BEAMFORMEE_ANT_SUPP CFG_UINT( \ + "tx_bfee_ant_supp", \ + 0, \ + 8, \ + 8, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT BEAMFORMEE ANTENNA SUPPORTED CAP") + +#define CFG_VHT_NUM_SOUNDING_DIMENSIONS CFG_UINT( \ + "num_soundingdim", \ + 0, \ + 3, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT NUMBER OF SOUNDING DIMENSIONS") + +#define CFG_VHT_HTC_VHTC CFG_BOOL( \ + "htc_vhtc", \ + 0, \ + "VHT HTC VHTC") + +#define CFG_VHT_LINK_ADAPTATION_CAP CFG_UINT( \ + "link_adap_cap", \ + 0, \ + 3, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT LINK ADAPTATION CAP") + +#define CFG_VHT_RX_ANT_PATTERN CFG_BOOL( \ + "rx_antpattern", \ + 1, \ + "VHT RX ANTENNA PATTERN CAP") + +#define CFG_VHT_TX_ANT_PATTERN CFG_BOOL( \ + "tx_antpattern", \ + 1, \ + "VHT TX ANTENNA PATTERN CAP") + +#define CFG_VHT_RX_SUPP_DATA_RATE CFG_UINT( \ + "rx_supp_data_rate", \ + 0, \ + 780, \ + 780, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT RX SUPP DATA RATE") + +#define CFG_VHT_TX_SUPP_DATA_RATE CFG_UINT( \ + "tx_supp_data_rate", \ + 0, \ + 780, \ + 780, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT TX SUPP DATA RATE") + +#define CFG_VHT_ENABLE_TXBF_20MHZ CFG_BOOL( \ + "enable_txbf_20mhz", \ + 0, \ + "VHT ENABLE TXBF 20MHZ") + +#define CFG_VHT_LDPC_CODING_CAP CFG_INI_BOOL( \ + "ldpc_coding_cap", \ + 0, \ + "VHT LDPC CODING CAP") + +#define CFG_VHT_SHORT_GI_80MHZ CFG_INI_BOOL( \ + "short_gi_80mhz", \ + 1, \ + "VHT SHORT GI 80MHZ") + +#define CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ CFG_INI_BOOL( \ + "short_gi_160mhz", \ + 0, \ + "VHT SHORT GI 160 AND 80 PLUS 80MHZ") + +#define CFG_VHT_TXSTBC CFG_INI_BOOL( \ + "tx_stbc", \ + 0, \ + "VHT Tx STBC") + +#define CFG_VHT_RXSTBC CFG_INI_BOOL( \ + "rx_stbc", \ + 1, \ + "VHT Rx STBC") + +#define CFG_VHT_SU_BEAMFORMER_CAP CFG_INI_BOOL( \ + "su_bformer", \ + 0, \ + "VHT SU BEAMFORMER CAP") + +#define CFG_VHT_SU_BEAMFORMEE_CAP CFG_INI_BOOL( \ + "su_bformee", \ + 1, \ + "VHT SU BEAMFORMEE CAP") + +#define CFG_VHT_MU_BEAMFORMER_CAP CFG_INI_BOOL( \ + "mu_bformer", \ + 0, \ + "VHT MU BEAMFORMER CAP") + +#define CFG_VHT_TXOP_PS CFG_INI_BOOL( \ + "txop_ps", \ + 0, \ + "VHT TXOP PS") + +#define CFG_VHT_RX_MCS_MAP CFG_INI_UINT( \ + "rx_mcs_map", \ + 0, \ + 65535, \ + 65534, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT RX MCS MAP") + +#define CFG_VHT_TX_MCS_MAP CFG_INI_UINT( \ + "tx_mcs_map", \ + 0, \ + 65535, \ + 65534, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT TX MCS MAP") + +#define CFG_VHT_BASIC_MCS_SET CFG_INI_UINT( \ + "basic_mcs_set", \ + 0, \ + 65535, \ + 65534, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT BASIC MCS SET") + +/* + * + * gVhtChannelWidth - Channel width capability for 11ac + * @Min: 0 + * @Max: 4 + * @Default: 3 + * + * This ini is used to set channel width capability for 11AC. + * eHT_CHANNEL_WIDTH_20MHZ = 0, + * eHT_CHANNEL_WIDTH_40MHZ = 1, + * eHT_CHANNEL_WIDTH_80MHZ = 2, + * eHT_CHANNEL_WIDTH_160MHZ = 3, + * eHT_CHANNEL_WIDTH_80P80MHZ = 4, + * + * Related: NA + * + * Supported Feature: 11AC + * + * Usage: External + * + * + */ +#define CFG_VHT_CHANNEL_WIDTH CFG_INI_UINT( \ + "gVhtChannelWidth", \ + 0, \ + 4, \ + 2, \ + CFG_VALUE_OR_DEFAULT, \ + "Channel width capability for 11ac") + +/* + * + * gVhtRxMCS - VHT Rx MCS capability for 1x1 mode + * @Min: 0 + * @Max: 2 + * @Default: 0 + * + * This ini is used to set VHT Rx MCS capability for 1x1 mode. + * 0, MCS0-7 + * 1, MCS0-8 + * 2, MCS0-9 + * + * Related: NA + * + * Supported Feature: 11AC + * + * Usage: Internal/External + * + * + */ +#define CFG_VHT_ENABLE_RX_MCS_8_9 CFG_INI_UINT( \ + "gVhtRxMCS", \ + 0, \ + 2, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT Rx MCS") + +/* + * + * gVhtTxMCS - VHT Tx MCS capability for 1x1 mode + * @Min: 0 + * @Max: 2 + * @Default: 0 + * + * This ini is used to set VHT Tx MCS capability for 1x1 mode. + * 0, MCS0-7 + * 1, MCS0-8 + * 2, MCS0-9 + * + * Related: NA + * + * Supported Feature: 11AC + * + * Usage: Internal/External + * + * + */ +#define CFG_VHT_ENABLE_TX_MCS_8_9 CFG_INI_UINT( \ + "gVhtTxMCS", \ + 0, \ + 2, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT Tx MCS") + +/* + * + * gVhtRxMCS2x2 - VHT Rx MCS capability for 2x2 mode + * @Min: 0 + * @Max: 2 + * @Default: 0 + * + * This ini is used to set VHT Rx MCS capability for 2x2 mode. + * 0, MCS0-7 + * 1, MCS0-8 + * 2, MCS0-9 + * + * Related: NA + * + * Supported Feature: 11AC + * + * Usage: External + * + * + */ +#define CFG_VHT_ENABLE_RX_MCS2x2_8_9 CFG_INI_UINT( \ + "gVhtRxMCS2x2", \ + 0, \ + 2, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT Rx MCS 2x2") + +/* + * + * gVhtTxMCS2x2 - VHT Tx MCS capability for 2x2 mode + * @Min: 0 + * @Max: 2 + * @Default: 0 + * + * This ini is used to set VHT Tx MCS capability for 2x2 mode. + * 0, MCS0-7 + * 1, MCS0-8 + * 2, MCS0-9 + * + * Related: NA + * + * Supported Feature: 11AC + * + * Usage: External + * + * + */ +#define CFG_VHT_ENABLE_TX_MCS2x2_8_9 CFG_INI_UINT( \ + "gVhtTxMCS2x2", \ + 0, \ + 2, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT Tx MCS 2x2") + +/* + * + * enable_vht20_mcs9 - Enables VHT MCS9 in 20M BW operation + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * Related: NA + * + * Supported Feature: 11AC + * + * Usage: External + * + * + */ +#define CFG_ENABLE_VHT20_MCS9 CFG_INI_BOOL( \ + "enable_vht20_mcs9", \ + 1, \ + "Enables VHT MCS9 in 20M BW") + +/* + * + * gEnable2x2 - Enables/disables VHT Tx/Rx MCS values for 2x2 + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini disables/enables 2x2 mode. If this is zero then DUT operates as 1x1 + * + * 0, Disable + * 1, Enable + * + * Related: NA + * + * Supported Feature: 11AC + * + * Usage: External + * + * + */ +#define CFG_VHT_ENABLE_2x2_CAP_FEATURE CFG_INI_BOOL( \ + "gEnable2x2", \ + 0, \ + "VHT Enable 2x2") + +/* + * + * gEnableMuBformee - Enables/disables multi-user (MU) beam formee capability + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini enables/disables multi-user (MU) beam formee + * capability + * + * Change MU Bformee only when gTxBFEnable is enabled. + * When gTxBFEnable and gEnableMuBformee are set, MU beam formee capability is + * enabled. + * Related: gTxBFEnable + * + * Supported Feature: 11AC + * + * Usage: External + * + * + */ +#define CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE CFG_INI_BOOL( \ + "gEnableMuBformee", \ + 0, \ + "VHT Enable MU Beamformee") + +#define CFG_VHT_ENABLE_PAID_FEATURE CFG_INI_BOOL( \ + "gEnablePAID", \ + 0, \ + "VHT Enable PAID") + +#define CFG_VHT_ENABLE_GID_FEATURE CFG_INI_BOOL( \ + "gEnableGID", \ + 0, \ + "VHT Enable GID") + +/* Parameter to control VHT support in 2.4 GHz band */ +#define CFG_ENABLE_VHT_FOR_24GHZ CFG_INI_BOOL( \ + "gEnableVhtFor24GHzBand", \ + 0, \ + "VHT Enable for 24GHz") + +/* + * gEnableVendorVhtFor24GHzBand:Parameter to control VHT support + * based on vendor ie in 2.4 GHz band + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This parameter will enable SAP to read VHT capability in vendor ie in Assoc + * Req and send VHT caps in Resp to establish connection in VHT Mode. + * Supported Feature: SAP + * + * + * Usage: Internal/External + * + * + */ +#define CFG_ENABLE_VENDOR_VHT_FOR_24GHZ CFG_INI_BOOL( \ + "gEnableVendorVhtFor24GHzBand", \ + 1, \ + "VHT Enable Vendor for 24GHz") + +/* Macro to handle maximum receive AMPDU size configuration */ +#define CFG_VHT_AMPDU_LEN_EXPONENT CFG_INI_UINT( \ + "gVhtAmpduLenExponent", \ + 0, \ + 7, \ + 3, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT AMPDU Len in Exponent") + +#define CFG_VHT_MPDU_LEN CFG_INI_UINT( \ + "gVhtMpduLen", \ + 0, \ + 2, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "VHT MPDU Length") + +#define CFG_VHT_CAPS_ALL \ + CFG(CFG_VHT_SUPP_CHAN_WIDTH) \ + CFG(CFG_VHT_LDPC_CODING_CAP) \ + CFG(CFG_VHT_SHORT_GI_80MHZ) \ + CFG(CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ) \ + CFG(CFG_VHT_TXSTBC) \ + CFG(CFG_VHT_RXSTBC) \ + CFG(CFG_VHT_SU_BEAMFORMER_CAP) \ + CFG(CFG_VHT_SU_BEAMFORMEE_CAP) \ + CFG(CFG_VHT_BEAMFORMEE_ANT_SUPP) \ + CFG(CFG_VHT_NUM_SOUNDING_DIMENSIONS) \ + CFG(CFG_VHT_MU_BEAMFORMER_CAP) \ + CFG(CFG_VHT_TXOP_PS) \ + CFG(CFG_VHT_HTC_VHTC) \ + CFG(CFG_VHT_LINK_ADAPTATION_CAP) \ + CFG(CFG_VHT_RX_ANT_PATTERN) \ + CFG(CFG_VHT_TX_ANT_PATTERN) \ + CFG(CFG_VHT_RX_MCS_MAP) \ + CFG(CFG_VHT_TX_MCS_MAP) \ + CFG(CFG_VHT_RX_SUPP_DATA_RATE) \ + CFG(CFG_VHT_TX_SUPP_DATA_RATE) \ + CFG(CFG_VHT_BASIC_MCS_SET) \ + CFG(CFG_VHT_ENABLE_TXBF_20MHZ) \ + CFG(CFG_VHT_CHANNEL_WIDTH) \ + CFG(CFG_VHT_ENABLE_RX_MCS_8_9) \ + CFG(CFG_VHT_ENABLE_TX_MCS_8_9) \ + CFG(CFG_VHT_ENABLE_RX_MCS2x2_8_9) \ + CFG(CFG_VHT_ENABLE_TX_MCS2x2_8_9) \ + CFG(CFG_ENABLE_VHT20_MCS9) \ + CFG(CFG_VHT_ENABLE_2x2_CAP_FEATURE) \ + CFG(CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE) \ + CFG(CFG_VHT_ENABLE_PAID_FEATURE) \ + CFG(CFG_VHT_ENABLE_GID_FEATURE) \ + CFG(CFG_ENABLE_VHT_FOR_24GHZ) \ + CFG(CFG_ENABLE_VENDOR_VHT_FOR_24GHZ) \ + CFG(CFG_VHT_AMPDU_LEN_EXPONENT) \ + CFG(CFG_VHT_MPDU_LEN) + +#endif /* __CFG_MLME_VHT_CAPS_H */ diff --git a/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/mlme/dispatcher/inc/wlan_mlme_public_struct.h index e1ca74561b..9e08653140 100644 --- a/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -279,8 +279,92 @@ struct wlan_mlme_mbo { int8_t mbo_candidate_rssi_btc_thres; }; +/** + * struct wlan_mlme_vht_caps - MLME VHT config items + * @supp_chan_width: Supported Channel Width + * @ldpc_coding_cap: LDPC Coding Capability + * @short_gi_80mhz: 80MHz Short Guard Interval + * @short_gi_160mhz: 160MHz Short Guard Interval + * @tx_stbc: Tx STBC cap + * @rx_stbc: Rx STBC cap + * @su_bformer: SU Beamformer cap + * @su_bformee: SU Beamformee cap + * @tx_bfee_ant_supp: Tx beamformee anti supp + * @num_soundingdim: Number of sounding dimensions + * @mu_bformer: MU Beamformer cap + * @txop_ps: Tx OPs in power save + * @htc_vhtc: htc_vht capability + * @link_adap_cap: Link adaptation capability + * @rx_antpattern: Rx Antenna Pattern cap + * @tx_antpattern: Tx Antenna Pattern cap + * @rx_mcs_map: Rx MCS Map + * @tx_mcs_map: Tx MCS Map + * @rx_supp_data_rate: Rx highest supported data rate + * @tx_supp_data_rate: Tx highest supported data rate + * @basic_mcs_set: Basic MCS set + * @enable_txbf_20mhz: enable tx bf for 20mhz + * @channel_width: Channel width capability for 11ac + * @rx_mcs: VHT Rx MCS capability for 1x1 mode + * @tx_mcs: VHT Tx MCS capability for 1x1 mode + * @rx_mcs2x2: VHT Rx MCS capability for 2x2 mode + * @tx_mcs2x2: VHT Tx MCS capability for 2x2 mode + * @enable_vht20_mcs9: Enables VHT MCS9 in 20M BW operation + * @enable2x2: Enables/disables VHT Tx/Rx MCS values for 2x2 + * @enable_mu_bformee: Enables/disables multi-user (MU) + * beam formee capability + * @enable_paid: Enables/disables paid + * @enable_gid: Enables/disables gid + * @b24ghz_band: To control VHT support in 2.4 GHz band + * @vendor_24ghz_band: to control VHT support based on vendor + * ie in 2.4 GHz band + * @ampdu_len_exponent: To handle maximum receive AMPDU ampdu len exponent + * @ampdu_len: To handle maximum receive AMPDU ampdu len + */ +struct mlme_vht_capabilities_info { + uint8_t supp_chan_width; + bool ldpc_coding_cap; + bool short_gi_80mhz; + bool short_gi_160mhz; + bool tx_stbc; + bool rx_stbc; + bool su_bformer; + bool su_bformee; + uint8_t tx_bfee_ant_supp; + uint8_t num_soundingdim; + bool mu_bformer; + bool txop_ps; + bool htc_vhtc; + uint8_t link_adap_cap; + bool rx_antpattern; + bool tx_antpattern; + uint32_t rx_mcs_map; + uint32_t tx_mcs_map; + uint32_t rx_supp_data_rate; + uint32_t tx_supp_data_rate; + uint32_t basic_mcs_set; + bool enable_txbf_20mhz; + uint8_t channel_width; + uint8_t rx_mcs; + uint8_t tx_mcs; + uint8_t rx_mcs2x2; + uint8_t tx_mcs2x2; + bool enable_vht20_mcs9; + bool enable2x2; + bool enable_mu_bformee; + bool enable_paid; + bool enable_gid; + bool b24ghz_band; + bool vendor_24ghz_band; + uint8_t ampdu_len_exponent; + uint8_t ampdu_len; +}; + +/** + * struct wlan_mlme_vht_caps - VHT Capabilities related config items + * @vht_cap_info: VHT capabilities Info Structure + */ struct wlan_mlme_vht_caps { - /* VHT related configs */ + struct mlme_vht_capabilities_info vht_cap_info; }; /**