qcacmn: Add UMAC changes for EMA AP

Enhanced Multi-BSSID Advertisement is an enhancement to the
existing Multi-BSSID feature in terms of advertising
non-transmitted bssid profile using the transmitted bssid
beacon. Mandatory inclusion of RNR IE in lower-band AP
beacon to support Out-of-Band Advertisement of colocated
6Ghz AP may impose limitation in the beacon size. EMA AP
provides a standardized way of overcoming such a limitation

Relevant UMAC changes are:
1. Add fw_caps_ext support bit WLAN_SOC_CEXT_EMA_AP
2. Add vdev_control_flag WLAN_VDEV_MLME_FLAGS_EMA_MODE
3. Support of 32-bit ema_params in beacon_tmpl_params.
The 4 octets in this param field will respectively
indicate ema_beacon_profile_periodicity, ema_beacon_tmpl_idx,
ema_first_tmpl and ema_last_tmpl in the order of low to high

CRs-fixed: 2677701
Change-Id: I3d96fd3becd7609abb2529f977362bfa5401d600
This commit is contained in:
Gyanranjan Hazarika
2020-04-27 20:22:27 -07:00
gecommit door nshrivas
bovenliggende bf7b89c52b
commit 333ee0fc2b
4 gewijzigde bestanden met toevoegingen van 11 en 2 verwijderingen

Bestand weergeven

@@ -95,7 +95,8 @@
/* PDEV ext flags */
/* CFR support enabled */
#define WLAN_PDEV_FEXT_CFR_EN 0x00000001
/* EMA AP support enable */
#define WLAN_PDEV_FEXT_EMA_AP_ENABLE 0x00000002
/* PDEV op flags */
/* Enable htrate for wep and tkip */

Bestand weergeven

@@ -138,6 +138,8 @@
#define WLAN_SOC_RESTRICTED_80P80_SUPPORT 0x00100000
/* Indicates Firmware supports sending NSS ratio info to host */
#define WLAN_SOC_NSS_RATIO_TO_HOST_SUPPORT 0x00200000
/* EMA AP Support */
#define WLAN_SOC_CEXT_EMA_AP 0x00400000
/* feature_flags */
/* CONF: ATH FF enabled */

Bestand weergeven

@@ -54,6 +54,7 @@ struct vdev_mlme_obj;
#define WLAN_VDEV_MLME_FLAGS_NON_MBSSID_AP 0x00000001
#define WLAN_VDEV_MLME_FLAGS_TRANSMIT_AP 0x00000002
#define WLAN_VDEV_MLME_FLAGS_NON_TRANSMIT_AP 0x00000004
#define WLAN_VDEV_MLME_FLAGS_EMA_MODE 0x00000008
/**
* struct vdev_mlme_proto_generic - generic mlme proto structure

Bestand weergeven

@@ -204,6 +204,10 @@ struct tbttoffset_params {
* @ext_csa_switch_count_offset: ECSA switch count offset in beacon frame
* @esp_ie_offset: ESP IE offset in beacon frame
* @mu_edca_ie_offset: Mu EDCA IE offset in beacon frame
* @ema_params: The 4 octets in this field respectively indicate
* ema_beacon_profile_periodicity, ema_beacon_tmpl_idx,
* ema_first_tmpl and ema_last_tmpl in the order of low
* to high
* @enable_bigtk: enable bigtk or not
* @frm: beacon template parameter
*/
@@ -217,6 +221,7 @@ struct beacon_tmpl_params {
uint32_t ext_csa_switch_count_offset;
uint32_t esp_ie_offset;
uint32_t mu_edca_ie_offset;
uint32_t ema_params;
bool enable_bigtk;
uint8_t *frm;
};