qcacld-3.0: Add ini for STA + Monitor mode

Add new ini "monitor_mode_concurrency" to support this feature
and introduce policy manager api's for concurrency checks.

Change-Id: I35ee1fece0a6f9ae8fe340b0598c4a3e20b17e82
CRs-Fixed: 2814523
This commit is contained in:
Amruta Kulkarni
2020-11-12 14:54:01 -08:00
committed by snandini
parent 65fe69ff37
commit 3d08c46bea
11 changed files with 200 additions and 3 deletions

View File

@@ -31,6 +31,17 @@
#define CFG_PMF_SA_QUERY_RETRY_INTERVAL_TYPE CFG_UINT
#endif /*WLAN_FEATURE_11W*/
/**
* enum monitor_mode_concurrency - Monitor mode concurrency
* @MONITOR_MODE_CONC_NO_SUPPORT: No concurrency supported with monitor mode
* @MONITOR_MODE_CONC_STA_SCAN_MON: STA + monitor mode concurrency is supported
*/
enum monitor_mode_concurrency {
MONITOR_MODE_CONC_NO_SUPPORT,
MONITOR_MODE_CONC_STA_SCAN_MON,
MONITOR_MODE_CONC_AFTER_LAST,
MONITOR_MODE_CONC_MAX = MONITOR_MODE_CONC_AFTER_LAST - 1,
};
/*
* pmfSaQueryMaxRetries - Control PMF SA query retries for SAP
* @Min: 0
@@ -782,6 +793,34 @@
0, \
"WiFi Location Service(WLS) is 6Ghz capable or not")
/*
* <ini>
*
* monitor_mode_conc - Monitor mode concurrency supported
* @Min: 0
* @Max: 1
* @Default: 0
*
* Related: None
*
* Monitor mode concurrency supported
* 0 - No concurrency supported
* 1 - Allow STA scan + Monitor mode concurrency
*
* Supported Feature: General
*
* Usage: External
*
* </ini>
*/
#define CFG_MONITOR_MODE_CONCURRENCY CFG_INI_UINT( \
"monitor_mode_concurrency", \
MONITOR_MODE_CONC_NO_SUPPORT, \
MONITOR_MODE_CONC_MAX, \
MONITOR_MODE_CONC_NO_SUPPORT, \
CFG_VALUE_OR_DEFAULT, \
"Monitor mode concurrency supported")
#define CFG_GENERIC_ALL \
CFG(CFG_ENABLE_DEBUG_PACKET_LOG) \
CFG(CFG_PMF_SA_QUERY_MAX_RETRIES) \
@@ -814,5 +853,6 @@
CFG(CFG_ENABLE_RING_BUFFER) \
CFG(CFG_DFS_CHAN_AGEOUT_TIME) \
CFG(CFG_SAE_CONNECION_RETRIES) \
CFG(CFG_WLS_6GHZ_CAPABLE)
CFG(CFG_WLS_6GHZ_CAPABLE) \
CFG(CFG_MONITOR_MODE_CONCURRENCY)
#endif /* __CFG_MLME_GENERIC_H */

View File

@@ -3029,4 +3029,12 @@ QDF_STATUS mlme_get_ext_opr_rate(struct wlan_objmgr_vdev *vdev, uint8_t *dst,
QDF_STATUS mlme_set_ext_opr_rate(struct wlan_objmgr_vdev *vdev, uint8_t *src,
qdf_size_t len);
/**
* wlan_mlme_is_sta_mon_conc_supported() - Check if STA + Monitor mode
* concurrency is supported
* @psoc: pointer to psoc object
*
* Return: True if supported
*/
bool wlan_mlme_is_sta_mon_conc_supported(struct wlan_objmgr_psoc *psoc);
#endif /* _WLAN_MLME_API_H_ */

View File

@@ -28,6 +28,7 @@
#include <wmi_unified_param.h>
#include <sir_api.h>
#include "wlan_cm_roam_public_struct.h"
#include "cfg_mlme_generic.h"
#define OWE_TRANSITION_OUI_TYPE "\x50\x6f\x9a\x1c"
#define OWE_TRANSITION_OUI_SIZE 4
@@ -1275,6 +1276,7 @@ struct wlan_mlme_ratemask {
* @dual_sta_roam_fw_support: Firmware support for dual sta roaming feature
* @sae_connect_retries: sae connect retry bitmask
* @wls_6ghz_capable: wifi location service(WLS) is 6ghz capable
* @monitor_mode_concurrency: Monitor mode concurrency supported
*/
struct wlan_mlme_generic {
uint32_t band_capability;
@@ -1317,6 +1319,7 @@ struct wlan_mlme_generic {
bool dual_sta_roam_fw_support;
uint32_t sae_connect_retries;
bool wls_6ghz_capable;
enum monitor_mode_concurrency monitor_mode_concurrency;
};
/*

View File

@@ -4176,4 +4176,18 @@ ucfg_mlme_set_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
}
#endif
/**
* ucfg_mlme_is_sta_mon_conc_supported() - Check if STA + Monitor mode
* concurrency is supported
* @psoc: pointer to psoc object
*
* Return: True if supported, else false.
*/
static inline bool
ucfg_mlme_is_sta_mon_conc_supported(struct wlan_objmgr_psoc *psoc)
{
return wlan_mlme_is_sta_mon_conc_supported(psoc);
}
#endif /* _WLAN_MLME_UCFG_API_H_ */