qcacld-3.0: Send roam preauth retry_count and no_ack_timeout ini to FW

Create and send user configurable ini for max number of roam preauth
retries and roam preauth no-ack timeout to the firmware.

Change-Id: I66808b33f421f56cd7c007cdde1db19c8e7ca5f9
CRs-Fixed: 2279049
This commit is contained in:
Sourav Mohapatra 2018-07-16 09:21:15 +05:30 • committed by nshrivas
commit 5ba8da3645
6 changed files with 80 additions and 1 deletions

View file

@ -901,6 +901,10 @@ static void mlme_init_lfr_cfg(struct wlan_objmgr_psoc *psoc,
cfg_get(psoc, CFG_LFR_5G_MAX_RSSI_PENALIZE);
lfr->max_num_pre_auth = (uint32_t)
cfg_default(CFG_LFR_MAX_NUM_PRE_AUTH);
lfr->roam_preauth_no_ack_timeout =
cfg_get(psoc, CFG_LFR3_ROAM_PREAUTH_NO_ACK_TIMEOUT);
lfr->roam_preauth_retry_count =
cfg_get(psoc, CFG_LFR3_ROAM_PREAUTH_RETRY_COUNT);
}
static uint32_t

View file

@ -1086,6 +1086,61 @@
CFG_VALUE_OR_DEFAULT, \
"")
/*
* roam_preauth_retry_count
*
* @Min: 1
* @Max: 10
* @Default: 5
*
* The maximum number of software retries for preauth or
* reassoc made before picking up the next candidate for
* connection during roaming.
*
* Related: N/A
*
* Supported Features: Roaming
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_LFR3_ROAM_PREAUTH_RETRY_COUNT CFG_INI_INT( \
"roam_preauth_retry_count", \
1, \
10, \
5, \
CFG_VALUE_OR_DEFAULT, \
"The maximum number of software retries for preauth")
/*
* <ini>
* roam_preauth_no_ack_timeout
*
* @Min: 5
* @Max: 50
* @Default: 5
*
* Time to wait (in ms) after sending an preauth or reassoc
* request which didn’t have an ack, before considering
* it as a failure and making another software retry.
*
* Related: N/A
*
* Supported Features: Roaming
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_LFR3_ROAM_PREAUTH_NO_ACK_TIMEOUT CFG_INI_INT( \
"roam_preauth_no_ack_timeout", \
5, \
50, \
5, \
CFG_VALUE_OR_DEFAULT, \
"Time to wait after sending an preauth or reassoc")
#define CFG_LFR_ALL \
CFG(CFG_LFR_MAWC_ROAM_ENABLED) \
CFG(CFG_LFR_MAWC_ROAM_TRAFFIC_THRESHOLD) \
@ -1125,6 +1180,8 @@
CFG(CFG_LFR_5G_RSSI_PENALIZE_THRESHOLD) \
CFG(CFG_LFR_5G_RSSI_PENALIZE_FACTOR) \
CFG(CFG_LFR_5G_MAX_RSSI_PENALIZE) \
CFG(CFG_LFR_MAX_NUM_PRE_AUTH)
CFG(CFG_LFR_MAX_NUM_PRE_AUTH) \
CFG(CFG_LFR3_ROAM_PREAUTH_RETRY_COUNT) \
CFG(CFG_LFR3_ROAM_PREAUTH_NO_ACK_TIMEOUT)
#endif /* CFG_MLME_LFR_H__ */

View file

@ -801,6 +801,8 @@ struct wlan_mlme_sta_cfg {
* @rssi_penalize_factor_5g: Factor by which 5GHz RSSI is penalizeed
* @max_rssi_penalize_5g: Max penalty that can be applied to 5G RSSI
* @max_num_pre_auth: Configure max number of pre-auth
* @roam_preauth_retry_count: Configure the max number of preauth retry
* @roam_preauth_no_ack_timeout: Configure the no ack timeout period
*/
struct wlan_mlme_lfr_cfg {
bool mawc_roam_enabled;
@ -842,6 +844,8 @@ struct wlan_mlme_lfr_cfg {
uint32_t rssi_penalize_factor_5g;
uint32_t max_rssi_penalize_5g;
uint32_t max_num_pre_auth;
uint32_t roam_preauth_retry_count;
uint32_t roam_preauth_no_ack_timeout;
};
/**

View file

@ -2796,6 +2796,8 @@ typedef struct sSirRoamOffloadScanReq {
uint32_t btm_sticky_time;
struct wmi_11k_offload_params offload_11k_params;
uint32_t ho_delay_for_rx;
uint32_t roam_preauth_retry_count;
uint32_t roam_preauth_no_ack_timeout;
uint32_t min_delay_btw_roam_scans;
uint32_t roam_trigger_reason_bitmask;
bool roam_force_rssi_trigger;

View file

@ -18214,6 +18214,10 @@ csr_update_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
req_buf->RoamRssiCatGap = mac_ctx->roam.configParam.bCatRssiOffset;
req_buf->Select5GHzMargin = mac_ctx->mlme_cfg->gen.select_5ghz_margin;
req_buf->ho_delay_for_rx = mac_ctx->roam.configParam.ho_delay_for_rx;
req_buf->roam_preauth_retry_count =
mac_ctx->mlme_cfg->lfr.roam_preauth_retry_count;
req_buf->roam_preauth_no_ack_timeout =
mac_ctx->mlme_cfg->lfr.roam_preauth_no_ack_timeout;
req_buf->min_delay_btw_roam_scans =
mac_ctx->roam.configParam.min_delay_btw_roam_scans;
req_buf->roam_trigger_reason_bitmask =

View file

@ -331,6 +331,10 @@ QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
params->roam_offload_enabled = roam_req->RoamOffloadEnabled;
params->roam_offload_params.ho_delay_for_rx =
roam_req->ho_delay_for_rx;
params->roam_offload_params.roam_preauth_retry_count =
roam_req->roam_preauth_retry_count;
params->roam_offload_params.roam_preauth_no_ack_timeout =
roam_req->roam_preauth_no_ack_timeout;
params->prefer_5ghz = roam_req->Prefer5GHz;
params->roam_rssi_cat_gap = roam_req->RoamRssiCatGap;
params->select_5ghz_margin = roam_req->Select5GHzMargin;
@ -375,6 +379,10 @@ QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle,
params->min_delay_btw_roam_scans,
params->roam_trigger_reason_bitmask);
WMA_LOGD(FL("roam_preauth_retry_count: %d, roam_preauth_no_ack_timeout: %d"),
params->roam_offload_params.roam_preauth_retry_count,
params->roam_offload_params.roam_preauth_no_ack_timeout);
status = wmi_unified_roam_scan_offload_mode_cmd(wma_handle->wmi_handle,
scan_cmd_fp, params);
qdf_mem_free(params);