mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 16:16:15 -04:00
qcacld-3.0: Add monitor time for PER based roam
Curretly FW considers minimum time of hysteresis for PER based roam as constant value which is 25 seconds. Add changes to make this configurable using ini. Change-Id: I1a985594d515f42d1aaca8e4ef174fb29b51586a CRs-Fixed: 2005849
This commit is contained in:
parent
6e6c26b06e
commit
957827b875
3 changed files with 63 additions and 2 deletions
|
|
@ -8345,6 +8345,37 @@ enum hdd_wext_control {
|
|||
#define CFG_PRIVATE_WEXT_CONTROL_MAX (hdd_wext_enabled)
|
||||
#define CFG_PRIVATE_WEXT_CONTROL_DEFAULT (hdd_wext_deprecated)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gper_roam_mon_time - Minimum time required in seconds to
|
||||
* be considered as valid scenario for PER based roam
|
||||
* @Min: 5
|
||||
* @Max: 25
|
||||
* @Default: 25
|
||||
*
|
||||
* This ini is used to define minimum time in seconds for which DUT has
|
||||
* collected the PER stats before it can consider the stats hysteresis to be
|
||||
* valid for PER based scan.
|
||||
* DUT collects following information during this period:
|
||||
* 1. % of packets below gper_roam_low_rate_th
|
||||
* 2. # packets above gper_roam_high_rate_th
|
||||
* if DUT gets (1) greater than gper_roam_th_percent and (2) is zero during
|
||||
* this period, it triggers PER based roam scan.
|
||||
*
|
||||
* 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_MONITOR_TIME "gper_roam_mon_time"
|
||||
#define CFG_PER_ROAM_MONITOR_TIME_MIN (5)
|
||||
#define CFG_PER_ROAM_MONITOR_TIME_MAX (25)
|
||||
#define CFG_PER_ROAM_MONTIOR_TIME_DEFAULT (25)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gPowerUsage - Preferred Power Usage
|
||||
|
|
@ -9731,6 +9762,7 @@ struct hdd_config {
|
|||
uint32_t per_roam_low_rate_threshold;
|
||||
uint32_t per_roam_th_percent;
|
||||
uint32_t per_roam_rest_time;
|
||||
uint32_t per_roam_mon_time;
|
||||
};
|
||||
|
||||
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))
|
||||
|
|
|
|||
|
|
@ -4243,6 +4243,14 @@ REG_TABLE_ENTRY g_registry_table[] = {
|
|||
CFG_PER_ROAM_REST_TIME_DEFAULT,
|
||||
CFG_PER_ROAM_REST_TIME_MIN,
|
||||
CFG_PER_ROAM_REST_TIME_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_PER_ROAM_MONITOR_TIME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, per_roam_mon_time,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_PER_ROAM_MONTIOR_TIME_DEFAULT,
|
||||
CFG_PER_ROAM_MONITOR_TIME_MIN,
|
||||
CFG_PER_ROAM_MONITOR_TIME_MAX),
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -5040,6 +5048,10 @@ static void hdd_per_roam_print_ini_config(hdd_context_t *hdd_ctx)
|
|||
hdd_info("Name = [%s] Value = [%u]",
|
||||
CFG_PER_ROAM_REST_TIME_NAME,
|
||||
hdd_ctx->config->per_roam_rest_time);
|
||||
hdd_info("Name = [%s] Value = [%u]",
|
||||
CFG_PER_ROAM_MONITOR_TIME,
|
||||
hdd_ctx->config->per_roam_mon_time);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -6908,6 +6920,10 @@ static void hdd_update_per_config_to_sme(hdd_context_t *hdd_ctx,
|
|||
|
||||
sme_config->csrConfig.per_roam_config.per_rest_time =
|
||||
hdd_ctx->config->per_roam_rest_time;
|
||||
sme_config->csrConfig.per_roam_config.tx_per_mon_time =
|
||||
hdd_ctx->config->per_roam_mon_time;
|
||||
sme_config->csrConfig.per_roam_config.rx_per_mon_time =
|
||||
hdd_ctx->config->per_roam_mon_time;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2532,6 +2532,10 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
|
|||
pParam->per_roam_config.rx_rate_thresh_percnt;
|
||||
pMac->roam.configParam.per_roam_config.per_rest_time =
|
||||
pParam->per_roam_config.per_rest_time;
|
||||
pMac->roam.configParam.per_roam_config.tx_per_mon_time =
|
||||
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;
|
||||
|
||||
/* update p2p offload status */
|
||||
pMac->pnoOffload = pParam->pnoOffload;
|
||||
|
|
@ -2755,6 +2759,10 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
|
|||
cfg_params->per_roam_config.rx_rate_thresh_percnt;
|
||||
pParam->per_roam_config.per_rest_time =
|
||||
cfg_params->per_roam_config.per_rest_time;
|
||||
pParam->per_roam_config.tx_per_mon_time =
|
||||
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->conc_custom_rule1 = cfg_params->conc_custom_rule1;
|
||||
pParam->conc_custom_rule2 = cfg_params->conc_custom_rule2;
|
||||
|
|
@ -17615,18 +17623,23 @@ csr_create_per_roam_request(tpAniSirGlobal mac_ctx, uint8_t session_id)
|
|||
mac_ctx->roam.configParam.per_roam_config.rx_low_rate_thresh;
|
||||
req_buf->per_config.per_rest_time =
|
||||
mac_ctx->roam.configParam.per_roam_config.per_rest_time;
|
||||
req_buf->per_config.tx_per_mon_time =
|
||||
mac_ctx->roam.configParam.per_roam_config.tx_per_mon_time;
|
||||
req_buf->per_config.rx_per_mon_time =
|
||||
mac_ctx->roam.configParam.per_roam_config.rx_per_mon_time;
|
||||
req_buf->per_config.tx_rate_thresh_percnt =
|
||||
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;
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
FL("PER based roaming configuaration enable=%d vdev=%d high_rate_thresh=%d low_rate_thresh=%d rate_thresh_percnt=%d per_rest_time=%d"),
|
||||
FL("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"),
|
||||
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.per_rest_time,
|
||||
req_buf->per_config.tx_per_mon_time);
|
||||
return req_buf;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue