mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 00:00:00 -04:00
qcacld-3.0: Add ini to configure different OCE features
Add ini support to configure different OCE features which is sent as bitmap to firmware via vdev_set_param command. Change-Id: I2c679a6fe902e1b41ba984ed2255eee02ed29549 CRs-Fixed: 2121585
This commit is contained in:
parent
58f40085c8
commit
2ba6fe9132
8 changed files with 266 additions and 3 deletions
|
|
@ -10996,7 +10996,10 @@ enum hdd_wext_control {
|
|||
* @Max: 1
|
||||
* @Default: 1
|
||||
*
|
||||
* This ini is used to enable/disable broadcast probe response
|
||||
* This ini is used to enable/disable broadcast probe response.
|
||||
* This is set only if g_is_fils_enabled is set to 1
|
||||
* If this is disabled then OCE ini oce_sta_enable will also be
|
||||
* disabled and OCE IE will not be sent in frames.
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
|
|
@ -13232,7 +13235,6 @@ enum hdd_external_acs_freq_band {
|
|||
#define CFG_MBO_CAND_RSSI_BTC_THRESHOLD_MIN (-120)
|
||||
#define CFG_MBO_CAND_RSSI_BTC_THRESHOLD_MAX (0)
|
||||
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* g_enable_packet_filter_bitmap - Enable Packet filters before going into
|
||||
|
|
@ -13316,6 +13318,166 @@ enum hdd_external_acs_freq_band {
|
|||
#define CFG_REDUCED_BEACON_INTERVAL_MAX (100)
|
||||
#define CFG_REDUCED_BEACON_INTERVAL_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* oce_enable_rssi_assoc_reject - Enable/disable rssi based assoc rejection
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 1
|
||||
*
|
||||
* This ini is used to enable/disable rssi based assoc rejection. If this is
|
||||
* disabled then OCE ini oce_sta_enable will also be disabled and OCE IE will
|
||||
* not be sent in frames.
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: OCE
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_NAME \
|
||||
"oce_enable_rssi_assoc_reject"
|
||||
#define CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MIN (0)
|
||||
#define CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MAX (1)
|
||||
#define CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_DEFAULT (1)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* oce_enable_probe_req_rate - Set probe request rate
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to set probe request rate to 5.5Mbps as per OCE requirement
|
||||
* in 2.4G band
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: OCE
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OCE_PROBE_REQ_RATE_NAME "oce_enable_probe_req_rate"
|
||||
#define CFG_OCE_PROBE_REQ_RATE_MIN (0)
|
||||
#define CFG_OCE_PROBE_REQ_RATE_MAX (1)
|
||||
#define CFG_OCE_PROBE_REQ_RATE_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* oce_enable_probe_resp_rate - Set probe response rate
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to set probe response rate to 5.5Mbps as per OCE requirement
|
||||
* in 2.4G band
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: OCE
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OCE_PROBE_RSP_RATE_NAME "oce_enable_probe_resp_rate"
|
||||
#define CFG_OCE_PROBE_RSP_RATE_MIN (0)
|
||||
#define CFG_OCE_PROBE_RSP_RATE_MAX (1)
|
||||
#define CFG_OCE_PROBE_RSP_RATE_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* oce_enable_beacon_rate - Set beacon rate
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to set beacon rate to 5.5Mbps as per OCE requirement in
|
||||
* 2.4G band
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: OCE
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_OCE_BEACON_RATE_NAME "oce_enable_beacon_rate"
|
||||
#define CFG_OCE_BEACON_RATE_MIN (0)
|
||||
#define CFG_OCE_BEACON_RATE_MAX (1)
|
||||
#define CFG_OCE_BEACON_RATE_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* oce_enable_probe_req_deferral - Enable/disable probe request deferral
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable probe request deferral as per OCE spec
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: OCE
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_ENABLE_PROBE_REQ_DEFERRAL_NAME "oce_enable_probe_req_deferral"
|
||||
#define CFG_ENABLE_PROBE_REQ_DEFERRAL_MIN (0)
|
||||
#define CFG_ENABLE_PROBE_REQ_DEFERRAL_MAX (1)
|
||||
#define CFG_ENABLE_PROBE_REQ_DEFERRAL_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* oce_enable_fils_discovery_sap - Enable/disable fils discovery in sap mode
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable fils discovery in sap mode
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: FILS
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_ENABLE_FILS_DISCOVERY_SAP_NAME "oce_enable_fils_discovery_sap"
|
||||
#define CFG_ENABLE_FILS_DISCOVERY_SAP_MIN (0)
|
||||
#define CFG_ENABLE_FILS_DISCOVERY_SAP_MAX (1)
|
||||
#define CFG_ENABLE_FILS_DISCOVERY_SAP_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* enable_esp_for_roam - Enable/disable esp feature
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to enable/disable ESP(Estimated service parameters) IE
|
||||
* parsing and decides whether firmware will include this in its scoring algo.
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: STA
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_ENABLE_ESP_FEATURE_NAME "enable_esp_for_roam"
|
||||
#define CFG_ENABLE_ESP_FEATURE_MIN (0)
|
||||
#define CFG_ENABLE_ESP_FEATURE_MAX (1)
|
||||
#define CFG_ENABLE_ESP_FEATURE_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* Type declarations
|
||||
*/
|
||||
|
|
@ -14182,6 +14344,13 @@ struct hdd_config {
|
|||
uint8_t enable_phy_reg_retention;
|
||||
uint8_t dfs_beacon_tx_enhanced;
|
||||
uint16_t reduced_beacon_interval;
|
||||
bool rssi_assoc_reject_enabled;
|
||||
bool oce_probe_req_rate_enabled;
|
||||
bool oce_probe_resp_rate_enabled;
|
||||
bool oce_beacon_rate_enabled;
|
||||
bool probe_req_deferral_enabled;
|
||||
bool fils_discovery_sap_enabled;
|
||||
bool esp_for_roam_enabled;
|
||||
};
|
||||
|
||||
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))
|
||||
|
|
|
|||
|
|
@ -5229,6 +5229,57 @@ struct reg_table_entry g_registry_table[] = {
|
|||
CFG_REDUCED_BEACON_INTERVAL_DEFAULT,
|
||||
CFG_REDUCED_BEACON_INTERVAL_MIN,
|
||||
CFG_REDUCED_BEACON_INTERVAL_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_NAME,
|
||||
WLAN_PARAM_Integer, struct hdd_config,
|
||||
rssi_assoc_reject_enabled,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_DEFAULT,
|
||||
CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MIN,
|
||||
CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_OCE_PROBE_REQ_RATE_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, oce_probe_req_rate_enabled,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_OCE_PROBE_REQ_RATE_DEFAULT,
|
||||
CFG_OCE_PROBE_REQ_RATE_MIN,
|
||||
CFG_OCE_PROBE_REQ_RATE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_OCE_PROBE_RSP_RATE_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, oce_probe_resp_rate_enabled,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_OCE_PROBE_RSP_RATE_DEFAULT,
|
||||
CFG_OCE_PROBE_RSP_RATE_MIN,
|
||||
CFG_OCE_PROBE_RSP_RATE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_OCE_BEACON_RATE_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, oce_beacon_rate_enabled,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_OCE_BEACON_RATE_DEFAULT,
|
||||
CFG_OCE_BEACON_RATE_MIN,
|
||||
CFG_OCE_BEACON_RATE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_ENABLE_PROBE_REQ_DEFERRAL_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, probe_req_deferral_enabled,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_ENABLE_PROBE_REQ_DEFERRAL_DEFAULT,
|
||||
CFG_ENABLE_PROBE_REQ_DEFERRAL_MIN,
|
||||
CFG_ENABLE_PROBE_REQ_DEFERRAL_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_ENABLE_FILS_DISCOVERY_SAP_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, fils_discovery_sap_enabled,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_ENABLE_FILS_DISCOVERY_SAP_DEFAULT,
|
||||
CFG_ENABLE_FILS_DISCOVERY_SAP_MIN,
|
||||
CFG_ENABLE_FILS_DISCOVERY_SAP_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_ENABLE_ESP_FEATURE_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, esp_for_roam_enabled,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_ENABLE_ESP_FEATURE_DEFAULT,
|
||||
CFG_ENABLE_ESP_FEATURE_MIN,
|
||||
CFG_ENABLE_ESP_FEATURE_MAX),
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -8432,7 +8483,7 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
|
|||
{
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
tSmeConfigParams *smeConfig;
|
||||
uint8_t rrm_capab_len;
|
||||
uint8_t rrm_capab_len, val;
|
||||
|
||||
struct hdd_config *pConfig = hdd_ctx->config;
|
||||
|
||||
|
|
@ -8828,6 +8879,21 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
|
|||
hdd_ctx->config->num_11b_tx_chains;
|
||||
smeConfig->csrConfig.num_11ag_tx_chains =
|
||||
hdd_ctx->config->num_11ag_tx_chains;
|
||||
val = (pConfig->oce_probe_req_rate_enabled *
|
||||
WMI_VDEV_OCE_PROBE_REQUEST_RATE_FEATURE_BITMAP) +
|
||||
(pConfig->oce_probe_resp_rate_enabled *
|
||||
WMI_VDEV_OCE_PROBE_RESPONSE_RATE_FEATURE_BITMAP) +
|
||||
(pConfig->oce_beacon_rate_enabled *
|
||||
WMI_VDEV_OCE_BEACON_RATE_FEATURE_BITMAP) +
|
||||
(pConfig->probe_req_deferral_enabled *
|
||||
WMI_VDEV_OCE_PROBE_REQUEST_DEFERRAL_FEATURE_BITMAP) +
|
||||
(pConfig->fils_discovery_sap_enabled *
|
||||
WMI_VDEV_OCE_FILS_DISCOVERY_FRAME_FEATURE_BITMAP) +
|
||||
(pConfig->esp_for_roam_enabled *
|
||||
WMI_VDEV_OCE_ESP_FEATURE_BITMAP) +
|
||||
(pConfig->rssi_assoc_reject_enabled *
|
||||
WMI_VDEV_OCE_REASSOC_REJECT_FEATURE_BITMAP);
|
||||
smeConfig->csrConfig.oce_feature_bitmap = val;
|
||||
|
||||
hdd_update_bss_score_params(hdd_ctx->config,
|
||||
&smeConfig->csrConfig.bss_score_params);
|
||||
|
|
|
|||
|
|
@ -7631,6 +7631,14 @@ static void hdd_override_ini_config(struct hdd_context *hdd_ctx)
|
|||
|
||||
if (!hdd_ipa_is_present(hdd_ctx))
|
||||
hdd_ctx->config->IpaConfig = 0;
|
||||
|
||||
if (!hdd_ctx->config->rssi_assoc_reject_enabled ||
|
||||
!hdd_ctx->config->enable_bcast_probe_rsp) {
|
||||
hdd_debug("OCE disabled, rssi_assoc_reject_enabled: %d enable_bcast_probe_rsp: %d",
|
||||
hdd_ctx->config->rssi_assoc_reject_enabled,
|
||||
hdd_ctx->config->enable_bcast_probe_rsp);
|
||||
hdd_ctx->config->oce_sta_enabled = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1354,6 +1354,7 @@ typedef struct tagCsrConfigParam {
|
|||
uint32_t rssi_channel_penalization;
|
||||
uint32_t num_disallowed_aps;
|
||||
struct sir_score_config bss_score_params;
|
||||
uint8_t oce_feature_bitmap;
|
||||
} tCsrConfigParam;
|
||||
|
||||
/* Tush */
|
||||
|
|
|
|||
|
|
@ -631,6 +631,7 @@ struct csr_config {
|
|||
uint32_t rssi_channel_penalization;
|
||||
uint32_t num_disallowed_aps;
|
||||
struct sir_score_config bss_score_params;
|
||||
uint8_t oce_feature_bitmap;
|
||||
};
|
||||
|
||||
struct csr_channel_powerinfo {
|
||||
|
|
|
|||
|
|
@ -2938,6 +2938,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
|
|||
pParam->rssi_channel_penalization;
|
||||
pMac->roam.configParam.num_disallowed_aps =
|
||||
pParam->num_disallowed_aps;
|
||||
pMac->roam.configParam.oce_feature_bitmap =
|
||||
pParam->oce_feature_bitmap;
|
||||
|
||||
qdf_mem_copy(&pMac->roam.configParam.bss_score_params,
|
||||
&pParam->bss_score_params,
|
||||
|
|
@ -3197,6 +3199,8 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
|
|||
pMac->roam.configParam.rssi_channel_penalization;
|
||||
pParam->num_disallowed_aps =
|
||||
pMac->roam.configParam.num_disallowed_aps;
|
||||
pParam->oce_feature_bitmap =
|
||||
pMac->roam.configParam.oce_feature_bitmap;
|
||||
qdf_mem_copy(&pParam->csr_mawc_config,
|
||||
&pMac->roam.configParam.csr_mawc_config,
|
||||
sizeof(pParam->csr_mawc_config));
|
||||
|
|
@ -16270,6 +16274,8 @@ QDF_STATUS csr_issue_add_sta_for_session_req(tpAniSirGlobal pMac,
|
|||
pMac->roam.configParam.fils_max_chan_guard_time;
|
||||
add_sta_self_req->pkt_err_disconn_th =
|
||||
pMac->roam.configParam.pkt_err_disconn_th;
|
||||
add_sta_self_req->oce_feature_bitmap =
|
||||
pMac->roam.configParam.oce_feature_bitmap;
|
||||
msg.type = WMA_ADD_STA_SELF_REQ;
|
||||
msg.reserved = 0;
|
||||
msg.bodyptr = add_sta_self_req;
|
||||
|
|
|
|||
|
|
@ -1192,6 +1192,7 @@ struct add_sta_self_params {
|
|||
bool enable_bcast_probe_rsp;
|
||||
uint8_t fils_max_chan_guard_time;
|
||||
uint16_t pkt_err_disconn_th;
|
||||
uint8_t oce_feature_bitmap;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2220,6 +2220,17 @@ struct cdp_vdev *wma_vdev_attach(tp_wma_handle wma_handle,
|
|||
WMA_LOGE("Failed to set WMI_VDEV_PARAM_REPEAT_PROBE_TIME");
|
||||
}
|
||||
|
||||
if ((self_sta_req->type == WMI_VDEV_TYPE_STA ||
|
||||
self_sta_req->type == WMI_VDEV_TYPE_AP) &&
|
||||
self_sta_req->sub_type == 0) {
|
||||
ret = wma_vdev_set_param(wma_handle->wmi_handle,
|
||||
self_sta_req->session_id,
|
||||
WMI_VDEV_PARAM_ENABLE_DISABLE_OCE_FEATURES,
|
||||
self_sta_req->oce_feature_bitmap);
|
||||
if (QDF_IS_STATUS_ERROR(ret))
|
||||
WMA_LOGE("Failed to set WMI_VDEV_PARAM_ENABLE_DISABLE_OCE_FEATURES");
|
||||
}
|
||||
|
||||
/* Initialize BMISS parameters */
|
||||
if ((self_sta_req->type == WMI_VDEV_TYPE_STA) &&
|
||||
(self_sta_req->sub_type == 0))
|
||||
|
|
|
|||
Loading…
Reference in a new issue