qcacld-3.0: Refine mlme btm configurations

Refine mlme btm configurations based on converged cfg component.
Remove related legacy codes.

Change-Id: I0a90eceea5636e268048ed6bf1532150dc1f6b24
CRs-Fixed: 2355353
This commit is contained in:
lifeng
2018-11-23 18:04:23 +08:00
committed by nshrivas
parent 38cdbdb849
commit 6d19c25d31
9 changed files with 178 additions and 171 deletions

View File

@@ -1835,6 +1835,14 @@ static void mlme_init_wps_params_cfg(struct wlan_objmgr_psoc *psoc,
wps_params->wps_version = cfg_default(CFG_WPS_VERSION);
}
static void mlme_init_btm_cfg(struct wlan_mlme_btm *btm)
{
btm->btm_offload_config = cfg_default(CFG_BTM_ENABLE);
btm->btm_solicited_timeout = cfg_default(CFG_BTM_SOLICITED_TIMEOUT);
btm->btm_max_attempt_cnt = cfg_default(CFG_BTM_MAX_ATTEMPT_CNT);
btm->btm_sticky_time = cfg_default(CFG_BTM_STICKY_TIME);
}
QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
{
struct wlan_mlme_psoc_obj *mlme_obj;
@@ -1877,6 +1885,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
mlme_init_wep_cfg(&mlme_cfg->wep_params);
mlme_init_wifi_pos_cfg(psoc, &mlme_cfg->wifi_pos_cfg);
mlme_init_wps_params_cfg(psoc, &mlme_cfg->wps_params);
mlme_init_btm_cfg(&mlme_cfg->btm);
return status;
}

View File

@@ -51,10 +51,12 @@
#include "cfg_mlme_feature_flag.h"
#include "cfg_mlme_wep_params.h"
#include "cfg_mlme_wifi_pos.h"
#include "cfg_mlme_btm.h"
/* Please Maintain Alphabetic Order here */
#define CFG_MLME_ALL \
CFG_ACS_ALL \
CFG_BTM_ALL \
CFG_CHAINMASK_ALL \
CFG_DFS_ALL \
CFG_EDCA_PARAMS_ALL \

View File

@@ -0,0 +1,147 @@
/*
* 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
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC: This file contains MLME BTM related CFG/INI Items.
*/
#ifndef CFG_MLME_BTM_H_
#define CFG_MLME_BTM_H_
/*
* <ini>
* btm_offload_config - Configure BTM
* @Min: 0x00000000
* @Max: 0xFFFFFFFF
* @Default: 0x00000001
*
* This ini is used to configure BTM
*
* Bit 0: Enable/Disable the BTM offload. Set this to 1 will
* enable and 0 will disable BTM offload.
*
* BIT 2, 1: Action on non matching candidate with cache. If a BTM request
* is received from AP then the candidate AP's may/may-not be present in
* the firmware scan cache . Based on below config firmware will decide
* whether to forward BTM frame to host or consume with firmware and proceed
* with Roaming to candidate AP.
* 00 scan and consume
* 01 no scan and forward to host
* 10, 11 reserved
*
* BIT 5, 4, 3: Roaming handoff decisions on multiple candidates match
* 000 match if exact BSSIDs are found
* 001 match if at least one top priority BSSID only
* 010, 011, 100, 101, 110, 111 reserved
*
* BIT 6: Set this to 1 will send BTM query frame and 0 not sent.
*
* BIT 7-31: Reserved
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_BTM_ENABLE CFG_INI_UINT( \
"btm_offload_config", \
0x00000000, \
0xffffffff, \
0x00000001, \
CFG_VALUE_OR_DEFAULT, \
"configure btm offload")
/*
* <ini>
* btm_solicited_timeout - timeout value for waiting BTM request
* @Min: 1
* @Max: 10000
* @Default: 100
*
* This ini is used to configure timeout value for waiting BTM request.
* Unit: millionsecond
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_BTM_SOLICITED_TIMEOUT CFG_INI_UINT( \
"btm_solicited_timeout", \
1, \
10000, \
100, \
CFG_VALUE_OR_DEFAULT, \
"configure timeout value for waiting BTM request")
/*
* <ini>
* btm_max_attempt_cnt - Maximum attempt for sending BTM query to ESS
* @Min: 1
* @Max: 0xFFFFFFFF
* @Default: 3
*
* This ini is used to configure maximum attempt for sending BTM query to ESS.
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_BTM_MAX_ATTEMPT_CNT CFG_INI_UINT( \
"btm_max_attempt_cnt", \
1, \
0xFFFFFFFF, \
3, \
CFG_VALUE_OR_DEFAULT, \
"configure maximum attempt for sending BTM query to ESS")
/*
* <ini>
* btm_sticky_time - Stick time after roaming to new AP by BTM
* @Min: 0
* @Max: 0x0000FFFF
* @Default: 300
*
* This ini is used to configure Stick time after roaming to new AP by BTM.
* Unit: seconds
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_BTM_STICKY_TIME CFG_INI_UINT( \
"btm_sticky_time", \
0, \
0x0000FFFF, \
300, \
CFG_VALUE_OR_DEFAULT, \
"configure Stick time after roaming to new AP by BTM")
#define CFG_BTM_ALL \
CFG(CFG_BTM_ENABLE) \
CFG(CFG_BTM_SOLICITED_TIMEOUT) \
CFG(CFG_BTM_MAX_ATTEMPT_CNT) \
CFG(CFG_BTM_STICKY_TIME)
#endif /* CFG_MLME_BTM_H_ */

View File

@@ -1662,6 +1662,20 @@ struct wlan_mlme_wifi_pos_cfg {
uint32_t fine_time_meas_cap;
};
/*
* struct wlan_mlme_btm - BTM related configs
* @btm_offload_config: configure btm offload
* @btm_solicited_timeout: configure timeout value for waiting BTM request
* @btm_max_attempt_cnt: configure maximum attempt for sending BTM query to ESS
* @btm_sticky_time: configure Stick time after roaming to new AP by BTM
*/
struct wlan_mlme_btm {
uint32_t btm_offload_config;
uint32_t btm_solicited_timeout;
uint32_t btm_max_attempt_cnt;
uint32_t btm_sticky_time;
};
/**
* struct wlan_mlme_cfg - MLME config items
* @chainmask_cfg: VHT chainmask related cfg items
@@ -1693,6 +1707,7 @@ struct wlan_mlme_wifi_pos_cfg {
* @wifi_pos_cfg: WIFI POS config
* @wmm_params: WMM related CFG & INI Items
* @wps_params: WPS related CFG itmes
* @btm: BTM related CFG itmes
*/
struct wlan_mlme_cfg {
struct wlan_mlme_chainmask chainmask_cfg;
@@ -1726,6 +1741,7 @@ struct wlan_mlme_cfg {
struct wlan_mlme_wifi_pos_cfg wifi_pos_cfg;
struct wlan_mlme_wmm_params wmm_params;
struct wlan_mlme_wps_params wps_params;
struct wlan_mlme_btm btm;
};
#endif

View File

@@ -4046,109 +4046,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_ENABLE_PACKET_FILTERS_MAX (63)
#endif /* WLAN_FEATURE_PACKET_FILTERING */
/*
* <ini>
* btm_offload_config - Configure BTM
* @Min: 0x00000000
* @Max: 0xFFFFFFFF
* @Default: 0x00000000
*
* This ini is used to configure BTM
*
* Bit 0: Enable/Disable the BTM offload. Set this to 1 will
* enable and 0 will disable BTM offload.
*
* BIT 2, 1: Action on non matching candidate with cache. If a BTM request
* is received from AP then the candidate AP's may/may-not be present in
* the firmware scan cache . Based on below config firmware will decide
* whether to forward BTM frame to host or consume with firmware and proceed
* with Roaming to candidate AP.
* 00 scan and consume
* 01 no scan and forward to host
* 10, 11 reserved
*
* BIT 5, 4, 3: Roaming handoff decisions on multiple candidates match
* 000 match if exact BSSIDs are found
* 001 match if at least one top priority BSSID only
* 010, 011, 100, 101, 110, 111 reserved
*
* BIT 6: Set this to 1 will send BTM query frame and 0 not sent.
*
* BIT 7-31: Reserved
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_BTM_ENABLE_NAME "btm_offload_config"
#define CFG_BTM_ENABLE_MIN (0x00000000)
#define CFG_BTM_ENABLE_MAX (0xffffffff)
#define CFG_BTM_ENABLE_DEFAULT (0x00000001)
/*
* <ini>
* btm_solicited_timeout - timeout value for waiting BTM request
* @Min: 1
* @Max: 10000
* @Default: 100
*
* This ini is used to configure timeout value for waiting BTM request.
* Unit: millionsecond
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_BTM_SOLICITED_TIMEOUT "btm_solicited_timeout"
#define CFG_BTM_SOLICITED_TIMEOUT_MIN (1)
#define CFG_BTM_SOLICITED_TIMEOUT_MAX (10000)
#define CFG_BTM_SOLICITED_TIMEOUT_DEFAULT (100)
/*
* <ini>
* btm_max_attempt_cnt - Maximum attempt for sending BTM query to ESS
* @Min: 1
* @Max: 0xFFFFFFFF
* @Default: 3
*
* This ini is used to configure maximum attempt for sending BTM query to ESS.
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_BTM_MAX_ATTEMPT_CNT "btm_max_attempt_cnt"
#define CFG_BTM_MAX_ATTEMPT_CNT_MIN (0x00000001)
#define CFG_BTM_MAX_ATTEMPT_CNT_MAX (0xFFFFFFFF)
#define CFG_BTM_MAX_ATTEMPT_CNT_DEFAULT (0x00000003)
/*
* <ini>
* btm_sticky_time - Stick time after roaming to new AP by BTM
* @Min: 0
* @Max: 0x0000FFFF
* @Default: 300
*
* This ini is used to configure Stick time after roaming to new AP by BTM.
* Unit: seconds
*
* Supported Feature: STA
*
* Usage: External
*
* </ini>
*/
#define CFG_BTM_STICKY_TIME "btm_sticky_time"
#define CFG_BTM_STICKY_TIME_MIN (0x00000000)
#define CFG_BTM_STICKY_TIME_MAX (0x0000FFFF)
#define CFG_BTM_STICKY_TIME_DEFAULT (300)
/*
* <ini>
* gcmp_enabled - ini to enable/disable GCMP
@@ -5127,16 +5024,12 @@ struct hdd_config {
#ifdef WLAN_FEATURE_PACKET_FILTERING
uint8_t packet_filters_bitmap;
#endif
uint32_t btm_offload_config;
#ifdef WLAN_FEATURE_SAE
bool is_sae_enabled;
#endif
bool enable_dtim_selection_diversity;
bool gcmp_enabled;
bool is_11k_offload_supported;
uint32_t btm_solicited_timeout;
uint32_t btm_max_attempt_cnt;
uint32_t btm_sticky_time;
uint32_t offload_11k_enable_bitmask;
uint32_t neighbor_report_offload_params_bitmask;
uint32_t neighbor_report_offload_time_offset;

View File

@@ -1133,13 +1133,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_LATENCY_FLAGS_ULTRALOW_MIN,
CFG_LATENCY_FLAGS_ULTRALOW_MAX),
REG_VARIABLE(CFG_BTM_ENABLE_NAME, WLAN_PARAM_HexInteger,
struct hdd_config, btm_offload_config,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_BTM_ENABLE_DEFAULT,
CFG_BTM_ENABLE_MIN,
CFG_BTM_ENABLE_MAX),
#ifdef WLAN_FEATURE_SAE
REG_VARIABLE(CFG_IS_SAE_ENABLED_NAME, WLAN_PARAM_Integer,
struct hdd_config, is_sae_enabled,
@@ -1149,27 +1142,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_IS_SAE_ENABLED_MAX),
#endif
REG_VARIABLE(CFG_BTM_SOLICITED_TIMEOUT, WLAN_PARAM_Integer,
struct hdd_config, btm_solicited_timeout,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_BTM_SOLICITED_TIMEOUT_DEFAULT,
CFG_BTM_SOLICITED_TIMEOUT_MIN,
CFG_BTM_SOLICITED_TIMEOUT_MAX),
REG_VARIABLE(CFG_BTM_MAX_ATTEMPT_CNT, WLAN_PARAM_Integer,
struct hdd_config, btm_max_attempt_cnt,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_BTM_MAX_ATTEMPT_CNT_DEFAULT,
CFG_BTM_MAX_ATTEMPT_CNT_MIN,
CFG_BTM_MAX_ATTEMPT_CNT_MAX),
REG_VARIABLE(CFG_BTM_STICKY_TIME, WLAN_PARAM_Integer,
struct hdd_config, btm_sticky_time,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_BTM_STICKY_TIME_DEFAULT,
CFG_BTM_STICKY_TIME_MIN,
CFG_BTM_STICKY_TIME_MAX),
REG_VARIABLE(CFG_ENABLE_GCMP_NAME, WLAN_PARAM_Integer,
struct hdd_config, gcmp_enabled,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2952,15 +2924,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
smeConfig->csrConfig.is_force_1x1 =
hdd_ctx->config->is_force_1x1;
smeConfig->csrConfig.btm_offload_config =
hdd_ctx->config->btm_offload_config;
smeConfig->csrConfig.btm_solicited_timeout =
hdd_ctx->config->btm_solicited_timeout;
smeConfig->csrConfig.btm_max_attempt_cnt =
hdd_ctx->config->btm_max_attempt_cnt;
smeConfig->csrConfig.btm_sticky_time =
hdd_ctx->config->btm_sticky_time;
hdd_set_sme_cfgs_related_to_plcy_mgr(hdd_ctx, smeConfig);
hdd_update_11k_offload_params(hdd_ctx->config,
&smeConfig->csrConfig);

View File

@@ -1139,10 +1139,6 @@ typedef struct tagCsrConfigParam {
uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];
bool is_force_1x1;
uint8_t oce_feature_bitmap;
uint32_t btm_offload_config;
uint32_t btm_solicited_timeout;
uint32_t btm_max_attempt_cnt;
uint32_t btm_sticky_time;
uint32_t offload_11k_enable_bitmask;
bool wep_tkip_in_he;
struct csr_neighbor_report_offload_params neighbor_report_offload;

View File

@@ -466,10 +466,6 @@ struct csr_config {
uint16_t wlm_latency_level;
uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL];
uint8_t oce_feature_bitmap;
uint32_t btm_offload_config;
uint32_t btm_solicited_timeout;
uint32_t btm_max_attempt_cnt;
uint32_t btm_sticky_time;
uint32_t offload_11k_enable_bitmask;
bool wep_tkip_in_he;
struct csr_neighbor_report_offload_params neighbor_report_offload;

View File

@@ -2739,15 +2739,6 @@ QDF_STATUS csr_change_default_config_param(struct mac_context *mac,
mac->roam.configParam.roam_force_rssi_trigger =
pParam->roam_force_rssi_trigger;
mac->roam.configParam.btm_offload_config =
pParam->btm_offload_config;
mac->roam.configParam.btm_solicited_timeout =
pParam->btm_solicited_timeout;
mac->roam.configParam.btm_max_attempt_cnt =
pParam->btm_max_attempt_cnt;
mac->roam.configParam.btm_sticky_time =
pParam->btm_sticky_time;
csr_update_he_config_param(mac, pParam);
csr_set_11k_offload_config_param(&mac->roam.configParam,
pParam);
@@ -2890,12 +2881,6 @@ QDF_STATUS csr_get_config_param(struct mac_context *mac, tCsrConfigParam *pParam
pParam->oce_feature_bitmap =
mac->roam.configParam.oce_feature_bitmap;
pParam->roam_force_rssi_trigger = cfg_params->roam_force_rssi_trigger;
pParam->btm_offload_config = mac->roam.configParam.btm_offload_config;
pParam->btm_solicited_timeout =
mac->roam.configParam.btm_solicited_timeout;
pParam->btm_max_attempt_cnt =
mac->roam.configParam.btm_max_attempt_cnt;
pParam->btm_sticky_time = mac->roam.configParam.btm_sticky_time;
csr_get_he_config_param(pParam, mac);
@@ -18252,14 +18237,14 @@ csr_create_roam_scan_offload_request(struct mac_context *mac_ctx,
req_buf->btm_offload_config = 0;
else
req_buf->btm_offload_config =
mac_ctx->roam.configParam.btm_offload_config;
mac_ctx->mlme_cfg->btm.btm_offload_config;
req_buf->btm_solicited_timeout =
mac_ctx->roam.configParam.btm_solicited_timeout;
mac_ctx->mlme_cfg->btm.btm_solicited_timeout;
req_buf->btm_max_attempt_cnt =
mac_ctx->roam.configParam.btm_max_attempt_cnt;
mac_ctx->mlme_cfg->btm.btm_max_attempt_cnt;
req_buf->btm_sticky_time =
mac_ctx->roam.configParam.btm_sticky_time;
mac_ctx->mlme_cfg->btm.btm_sticky_time;
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,