qcacld-3.0: Add INI to configure min rssi for roamable AP in PER Roam

Add INI "gper_min_rssi_threshold_for_roam" to configure the minimum
RSSI required for AP candidate to roam in PER based roaming.

Change-Id: I5549c44d2dffb20e92923d3b62e08b94b7a87c9d
CRs-Fixed: 2048414
This commit is contained in:
Selvaraj, Sridhar 2017-05-17 16:02:00 +05:30 • committed by snandini
commit 0641fabce5
3 changed files with 49 additions and 3 deletions

View file

@ -9139,6 +9139,31 @@ enum hdd_wext_control {
#define CFG_MAX_WOW_FILTERS_MAX (WOW_MAX_BITMAP_FILTERS)
#define CFG_MAX_WOW_FILTERS_DEFAULT (WOW_MAX_BITMAP_FILTERS)
/*
* <ini>
* gper_min_rssi_threshold_for_roam - Minimum roamable AP RSSI for
* candidate selection for PER based roam
* @Min: 0
* @Max: 96
* @Default: 83
*
* Minimum roamable AP RSSI for candidate selection for PER based roam
*
* Related: gper_roam_enabled, gper_roam_high_rate_th, gper_roam_low_rate_th,
* gper_roam_th_percent, gper_roam_rest_time
*
* Supported Feature: LFR-3.0
*
* Usage: Internal
*
* </ini>
*/
#define CFG_PER_ROAM_MIN_CANDIDATE_RSSI "gper_min_rssi_threshold_for_roam"
#define CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN (0)
#define CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX (96)
#define CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT (83)
/*
* <ini>
* gEnableImps - Enable/Disable IMPS
@ -10957,6 +10982,7 @@ struct hdd_config {
uint32_t per_roam_th_percent;
uint32_t per_roam_rest_time;
uint32_t per_roam_mon_time;
uint32_t min_candidate_rssi;
enum active_bpf_mode active_uc_bpf_mode;
enum active_bpf_mode active_mc_bc_bpf_mode;
bool enable_bcast_probe_rsp;

View file

@ -4255,6 +4255,13 @@ struct reg_table_entry g_registry_table[] = {
CFG_PER_ROAM_MONITOR_TIME_MIN,
CFG_PER_ROAM_MONITOR_TIME_MAX),
REG_VARIABLE(CFG_PER_ROAM_MIN_CANDIDATE_RSSI, WLAN_PARAM_Integer,
struct hdd_config, min_candidate_rssi,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT,
CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN,
CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX),
REG_VARIABLE(CFG_ACTIVE_UC_BPF_MODE_NAME, WLAN_PARAM_Integer,
struct hdd_config, active_uc_bpf_mode,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@ -5215,7 +5222,9 @@ static void hdd_per_roam_print_ini_config(hdd_context_t *hdd_ctx)
hdd_debug("Name = [%s] Value = [%u]",
CFG_PER_ROAM_MONITOR_TIME,
hdd_ctx->config->per_roam_mon_time);
hdd_debug("Name = [%s] Value = [%u]",
CFG_PER_ROAM_MIN_CANDIDATE_RSSI,
hdd_ctx->config->min_candidate_rssi);
}
/**
@ -7123,6 +7132,10 @@ static void hdd_update_per_config_to_sme(hdd_context_t *hdd_ctx,
hdd_ctx->config->per_roam_mon_time;
sme_config->csrConfig.per_roam_config.rx_per_mon_time =
hdd_ctx->config->per_roam_mon_time;
/* Assigning minimum roamable AP RSSI for candidate selection */
sme_config->csrConfig.per_roam_config.min_candidate_rssi =
hdd_ctx->config->min_candidate_rssi;
}
/**

View file

@ -2747,6 +2747,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
pParam->per_roam_config.tx_per_mon_time;
pMac->roam.configParam.per_roam_config.rx_per_mon_time =
pParam->per_roam_config.rx_per_mon_time;
pMac->roam.configParam.per_roam_config.min_candidate_rssi =
pParam->per_roam_config.min_candidate_rssi;
pMac->fEnableDebugLog = pParam->fEnableDebugLog;
@ -2975,6 +2977,8 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
cfg_params->per_roam_config.tx_per_mon_time;
pParam->per_roam_config.rx_per_mon_time =
cfg_params->per_roam_config.rx_per_mon_time;
pParam->per_roam_config.min_candidate_rssi =
cfg_params->per_roam_config.min_candidate_rssi;
pParam->conc_custom_rule1 = cfg_params->conc_custom_rule1;
pParam->conc_custom_rule2 = cfg_params->conc_custom_rule2;
@ -17864,15 +17868,18 @@ csr_create_per_roam_request(tpAniSirGlobal mac_ctx, uint8_t session_id)
mac_ctx->roam.configParam.per_roam_config.tx_rate_thresh_percnt;
req_buf->per_config.rx_rate_thresh_percnt =
mac_ctx->roam.configParam.per_roam_config.rx_rate_thresh_percnt;
req_buf->per_config.min_candidate_rssi =
mac_ctx->roam.configParam.per_roam_config.min_candidate_rssi;
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"PER based roaming configuaration enable: %d vdev: %d high_rate_thresh: %d low_rate_thresh: %d rate_thresh_percnt: %d per_rest_time: %d monitor_time: %d",
"PER based roaming configuaration enable: %d vdev: %d high_rate_thresh: %d low_rate_thresh: %d rate_thresh_percnt: %d per_rest_time: %d monitor_time: %d min cand rssi: %d",
req_buf->per_config.enable, session_id,
req_buf->per_config.tx_high_rate_thresh,
req_buf->per_config.tx_low_rate_thresh,
req_buf->per_config.tx_rate_thresh_percnt,
req_buf->per_config.per_rest_time,
req_buf->per_config.tx_per_mon_time);
req_buf->per_config.tx_per_mon_time,
req_buf->per_config.min_candidate_rssi);
return req_buf;
}