Browse Source

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
Gyanranjan Hazarika 5 years ago
parent
commit
333ee0fc2b

+ 3 - 2
umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h

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

+ 2 - 0
umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h

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

+ 1 - 0
umac/mlme/include/wlan_vdev_mlme.h

@@ -54,6 +54,7 @@ struct vdev_mlme_obj;
 #define WLAN_VDEV_MLME_FLAGS_NON_MBSSID_AP      0x00000001
 #define WLAN_VDEV_MLME_FLAGS_NON_MBSSID_AP      0x00000001
 #define WLAN_VDEV_MLME_FLAGS_TRANSMIT_AP        0x00000002
 #define WLAN_VDEV_MLME_FLAGS_TRANSMIT_AP        0x00000002
 #define WLAN_VDEV_MLME_FLAGS_NON_TRANSMIT_AP    0x00000004
 #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
  * struct vdev_mlme_proto_generic - generic mlme proto structure

+ 5 - 0
umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h

@@ -204,6 +204,10 @@ struct tbttoffset_params {
  * @ext_csa_switch_count_offset: ECSA switch count offset in beacon frame
  * @ext_csa_switch_count_offset: ECSA switch count offset in beacon frame
  * @esp_ie_offset: ESP IE offset in beacon frame
  * @esp_ie_offset: ESP IE offset in beacon frame
  * @mu_edca_ie_offset: Mu EDCA 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
  * @enable_bigtk: enable bigtk or not
  * @frm: beacon template parameter
  * @frm: beacon template parameter
  */
  */
@@ -217,6 +221,7 @@ struct beacon_tmpl_params {
 	uint32_t ext_csa_switch_count_offset;
 	uint32_t ext_csa_switch_count_offset;
 	uint32_t esp_ie_offset;
 	uint32_t esp_ie_offset;
 	uint32_t mu_edca_ie_offset;
 	uint32_t mu_edca_ie_offset;
+	uint32_t ema_params;
 	bool enable_bigtk;
 	bool enable_bigtk;
 	uint8_t *frm;
 	uint8_t *frm;
 };
 };