qcacld-3.0: Refactor CFG_JOIN_FAILURE_TIMEOUT cfg

Refactor CFG_JOIN_FAILURE_TIMEOUT cfg item.

Change-Id: If1b00e47500a354e80ed7dfbf547a4ac2be73a50
CRs-Fixed: 2313427
This commit is contained in:
Arif Hussain
2018-09-10 18:32:25 -07:00
committed by nshrivas
parent 3fb0016526
commit 9f93a64d62
12 changed files with 101 additions and 80 deletions

View File

@@ -318,6 +318,13 @@ static void mlme_init_edca_params(struct wlan_mlme_edca_params *edca_params)
mlme_init_edca_etsi_cfg(edca_params);
}
static void mlme_init_timeout_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_timeout *timeouts)
{
timeouts->join_failure_timeout = cfg_get(psoc,
CFG_JOIN_FAILURE_TIMEOUT);
}
static void mlme_init_ht_cap_in_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_ht_caps *ht_caps)
{
@@ -985,6 +992,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
mlme_cfg = &mlme_obj->cfg;
mlme_init_generic_cfg(psoc, &mlme_cfg->gen);
mlme_init_edca_params(&mlme_cfg->edca_params);
mlme_init_timeout_cfg(psoc, &mlme_cfg->timeouts);
mlme_init_ht_cap_in_cfg(psoc, &mlme_cfg->ht_caps);
mlme_init_mbo_cfg(psoc, &mlme_cfg->mbo_cfg);
mlme_init_qos_cfg(psoc, &mlme_cfg->qos_mlme_params);

View File

@@ -34,6 +34,7 @@
#include "cfg_mlme_mbo.h"
#include "cfg_mlme_vht_caps.h"
#include "cfg_qos.h"
#include "cfg_mlme_timeout.h"
#include "cfg_mlme_rates.h"
#include "wlan_mlme_product_details_cfg.h"
#include "cfg_mlme_sta.h"
@@ -66,6 +67,7 @@
CFG_SCORING_ALL \
CFG_STA_ALL \
CFG_THRESHOLD_ALL \
CFG_TIMEOUT_ALL \
CFG_VHT_CAPS_ALL \
CFG_VHT_CAPS_ALL \
CFG_WEP_PARAMS_ALL

View File

@@ -0,0 +1,50 @@
/*
* Copyright (c) 2011-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 centralized definitions of converged configuration.
*/
#ifndef __CFG_MLME_TIMEOUT_H
#define __CFG_MLME_TIMEOUT_H
/*
* <ini>
* join_failure_timeout - Join failure timeout value
* @Min: 0
* @Max: 65535
* @Default: 3000
*
* This cfg is used to configure the join failure timeout.
*
* Usage: Internal
*
* </ini>
*/
#define CFG_JOIN_FAILURE_TIMEOUT CFG_INI_UINT( \
"join_failure_timeout", \
0, \
65535, \
3000, \
CFG_VALUE_OR_DEFAULT, \
"Join failure timeout")
#define CFG_TIMEOUT_ALL \
CFG(CFG_JOIN_FAILURE_TIMEOUT)
#endif /* __CFG_MLME_TIMEOUT_H */

View File

@@ -839,6 +839,14 @@ struct wlan_mlme_threshold {
uint32_t frag_threshold;
};
/*
* struct wlan_mlme_timeout - mlme timeout related config items
* @join_failure_timeout: join failure timeout
*/
struct wlan_mlme_timeout {
uint32_t join_failure_timeout;
};
/**
* struct wlan_mlme_oce - OCE related config items
* @enable_bcast_probe_rsp: enable broadcast probe response
@@ -899,20 +907,25 @@ struct wlan_mlme_wep_cfg {
/**
* struct wlan_mlme_cfg - MLME config items
* @chainmask_cfg: VHT chainmask related cfg items
* @ht_cfg: HT related CFG Items
* @edca_params: edca related CFG items
* @gen: Generic CFG items
* @ht_caps: HT related CFG Items
* @he_caps: HE related cfg items
* @lfr: LFR related CFG Items
* @obss_ht40:obss ht40 CFG Items
* @mbo_cfg: Multiband Operation related CFG items
* @vht_caps: VHT related CFG Items
* @qos_mlme_params: QOS CFG Items
* @rates: Rates related cfg items
* @product_details: product details related CFG Items
* @sap_protection_cfg: SAP erp protection related CFG items
* @acs: ACS related CFG items
* @sap_cfg: sap CFG items
* @sta: sta CFG Items
* @scoring: BSS Scoring related CFG Items
* @oce: OCE related CFG items
* @threshold: threshold related cfg items
* @timeouts: mlme timeout related CFG items
* @acs: ACS related CFG items
* @feature_flags: Feature flag config items
* @wep_params: WEP related config items
*/
@@ -935,6 +948,7 @@ struct wlan_mlme_cfg {
struct wlan_mlme_scoring_cfg scoring;
struct wlan_mlme_oce oce;
struct wlan_mlme_threshold threshold;
struct wlan_mlme_timeout timeouts;
struct wlan_mlme_acs acs;
struct wlan_mlme_feature_flag feature_flags;
struct wlan_mlme_wep_cfg wep_params;

View File

@@ -32,7 +32,6 @@ enum {
WNI_CFG_DTIM_PERIOD,
WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME,
WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
WNI_CFG_JOIN_FAILURE_TIMEOUT,
WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT,
WNI_CFG_AUTHENTICATE_RSP_TIMEOUT,
WNI_CFG_ASSOCIATION_FAILURE_TIMEOUT,
@@ -325,10 +324,6 @@ enum {
#define WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STAMAX 65535
#define WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STADEF 110
#define WNI_CFG_JOIN_FAILURE_TIMEOUT_STAMIN 0
#define WNI_CFG_JOIN_FAILURE_TIMEOUT_STAMAX 65535
#define WNI_CFG_JOIN_FAILURE_TIMEOUT_STADEF 3000
#define WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT_STAMIN 0
#define WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT_STAMAX 65535
#define WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT_STADEF 1000

View File

@@ -47,7 +47,6 @@ const char *cfg_get_string(uint16_t cfg_id)
CASE_RETURN_STRING(WNI_CFG_DTIM_PERIOD);
CASE_RETURN_STRING(WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME);
CASE_RETURN_STRING(WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME);
CASE_RETURN_STRING(WNI_CFG_JOIN_FAILURE_TIMEOUT);
CASE_RETURN_STRING(WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT);
CASE_RETURN_STRING(WNI_CFG_AUTHENTICATE_RSP_TIMEOUT);
CASE_RETURN_STRING(WNI_CFG_ASSOCIATION_FAILURE_TIMEOUT);

View File

@@ -63,11 +63,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STAMIN,
WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STAMAX,
WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STADEF},
{WNI_CFG_JOIN_FAILURE_TIMEOUT,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_JOIN_FAILURE_TIMEOUT_STAMIN,
WNI_CFG_JOIN_FAILURE_TIMEOUT_STAMAX,
WNI_CFG_JOIN_FAILURE_TIMEOUT_STADEF},
{WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT_STAMIN,

View File

@@ -203,7 +203,6 @@ typedef struct sLimMlmAuthReq {
} tLimMlmAuthReq, *tpLimMlmAuthReq;
typedef struct sLimMlmJoinReq {
uint32_t joinFailureTimeout;
tSirMacRateSet operationalRateSet;
uint8_t sessionId;
tSirBssDescription bssDescription;

View File

@@ -1582,15 +1582,6 @@ __lim_process_sme_join_req(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
/* PE SessionId is stored as a part of JoinReq */
mlm_join_req->sessionId = session->peSessionId;
if (wlan_cfg_get_int(mac_ctx, WNI_CFG_JOIN_FAILURE_TIMEOUT,
(uint32_t *) &mlm_join_req->joinFailureTimeout) !=
QDF_STATUS_SUCCESS) {
pe_err("couldn't retrieve JoinFailureTimer value"
" setting to default value");
mlm_join_req->joinFailureTimeout =
WNI_CFG_JOIN_FAILURE_TIMEOUT_STADEF;
}
/* copy operational rate from session */
qdf_mem_copy((void *)&session->rateSet,
(void *)&sme_join_req->operationalRateSet,

View File

@@ -30,6 +30,7 @@
#include "lim_utils.h"
#include "lim_assoc_utils.h"
#include "lim_security_utils.h"
#include "wlan_mlme_public_struct.h"
#include <lim_api.h>
/* channel Switch Timer in ticks */
@@ -92,10 +93,8 @@ static bool lim_create_non_ap_timers(tpAniSirGlobal pMac)
return false;
}
if (wlan_cfg_get_int(pMac, WNI_CFG_JOIN_FAILURE_TIMEOUT,
&cfgValue) != QDF_STATUS_SUCCESS)
pe_err("could not retrieve JoinFailureTimeout value");
cfgValue = SYS_MS_TO_TICKS(cfgValue);
cfgValue = SYS_MS_TO_TICKS(
pMac->mlme_cfg->timeouts.join_failure_timeout);
/* Create Join failure timer and activate it later */
if (tx_timer_create(pMac, &pMac->lim.limTimers.gLimJoinFailureTimer,
"JOIN FAILURE TIMEOUT",
@@ -596,15 +595,8 @@ void lim_deactivate_and_change_timer(tpAniSirGlobal pMac, uint32_t timerId)
pe_err("Unable to deactivate Join Failure timer");
}
if (wlan_cfg_get_int(pMac, WNI_CFG_JOIN_FAILURE_TIMEOUT,
&val) != QDF_STATUS_SUCCESS) {
/**
* Could not get JoinFailureTimeout value
* from CFG. Log error.
*/
pe_err("could not retrieve JoinFailureTimeout value");
}
val = SYS_MS_TO_TICKS(val);
val = SYS_MS_TO_TICKS(
pMac->mlme_cfg->timeouts.join_failure_timeout);
if (tx_timer_change(&pMac->lim.limTimers.gLimJoinFailureTimer,
val, 0) != TX_SUCCESS) {

View File

@@ -39,6 +39,7 @@
#include "cds_utils.h"
#include "sir_types.h"
#include "cfg_api.h"
#include "cfg_ucfg_api.h"
#include "sme_power_save_api.h"
#include "wma.h"
#include "wlan_policy_mgr_api.h"
@@ -405,7 +406,7 @@ static ePhyChanBondState csr_get_cb_mode_from_ies(tpAniSirGlobal pMac,
tDot11fBeaconIEs *pIes);
static void csr_roaming_state_config_cnf_processor(tpAniSirGlobal pMac,
tSmeCmd *pCommand, uint32_t result, uint8_t session_id);
tSmeCmd *pCommand, uint8_t session_id);
static QDF_STATUS csr_roam_open(tpAniSirGlobal pMac);
static QDF_STATUS csr_roam_close(tpAniSirGlobal pMac);
static bool csr_roam_is_same_profile_keys(tpAniSirGlobal pMac,
@@ -4533,6 +4534,7 @@ QDF_STATUS csr_roam_prepare_bss_config(tpAniSirGlobal pMac,
tDot11fBeaconIEs *pIes)
{
enum csr_cfgdot11mode cfgDot11Mode;
uint32_t join_timeout;
QDF_ASSERT(pIes != NULL);
if (pIes == NULL)
@@ -4643,18 +4645,15 @@ QDF_STATUS csr_roam_prepare_bss_config(tpAniSirGlobal pMac,
* Join timeout: if we find a BeaconInterval in the BssDescription,
* then set the Join Timeout to be 10 x the BeaconInterval.
*/
pBssConfig->uJoinTimeOut = cfg_default(CFG_JOIN_FAILURE_TIMEOUT);
if (pBssDesc->beaconInterval) {
/* Make sure it is bigger than the minimal */
pBssConfig->uJoinTimeOut =
QDF_MAX(10 * pBssDesc->beaconInterval,
CSR_JOIN_FAILURE_TIMEOUT_MIN);
if (pBssConfig->uJoinTimeOut > CSR_JOIN_FAILURE_TIMEOUT_DEFAULT)
pBssConfig->uJoinTimeOut =
CSR_JOIN_FAILURE_TIMEOUT_DEFAULT;
} else {
pBssConfig->uJoinTimeOut =
CSR_JOIN_FAILURE_TIMEOUT_DEFAULT;
join_timeout = QDF_MAX(10 * pBssDesc->beaconInterval,
cfg_min(CFG_JOIN_FAILURE_TIMEOUT));
if (join_timeout < pBssConfig->uJoinTimeOut)
pBssConfig->uJoinTimeOut = join_timeout;
}
/* validate CB */
if ((pBssConfig->uCfgDot11Mode == eCSR_CFG_DOT11_MODE_11N) ||
(pBssConfig->uCfgDot11Mode == eCSR_CFG_DOT11_MODE_11N_ONLY) ||
@@ -4778,7 +4777,7 @@ QDF_STATUS csr_roam_prepare_bss_config_from_profile(
pMac->roam.configParam.HeartbeatThresh24;
}
/* Join timeout */
pBssConfig->uJoinTimeOut = CSR_JOIN_FAILURE_TIMEOUT_DEFAULT;
pBssConfig->uJoinTimeOut = cfg_default(CFG_JOIN_FAILURE_TIMEOUT);
return status;
}
@@ -5295,7 +5294,7 @@ static void csr_set_cfg_rate_set_from_profile(tpAniSirGlobal pMac,
ExtendedOperationalRatesLength);
}
void csr_roam_ccm_cfg_set_callback(tpAniSirGlobal pMac, int32_t result,
static void csr_roam_ccm_cfg_set_callback(tpAniSirGlobal pMac,
uint8_t session_id)
{
tListElem *pEntry =
@@ -5322,7 +5321,7 @@ void csr_roam_ccm_cfg_set_callback(tpAniSirGlobal pMac, int32_t result,
if (CSR_IS_ROAM_JOINING(pMac, sessionId)
&& CSR_IS_ROAM_SUBSTATE_CONFIG(pMac, sessionId)) {
csr_roaming_state_config_cnf_processor(pMac, pCommand,
(uint32_t) result, session_id);
session_id);
}
}
@@ -5334,7 +5333,6 @@ QDF_STATUS csr_roam_set_bss_config_cfg(tpAniSirGlobal pMac, uint32_t sessionId,
struct sDot11fBeaconIEs *pIes,
bool resetCountry)
{
QDF_STATUS status;
uint32_t cfgCb = WNI_CFG_CHANNEL_BONDING_MODE_DISABLE;
uint8_t channel = 0;
struct csr_roam_session *pSession = CSR_GET_SESSION(pMac, sessionId);
@@ -5397,8 +5395,9 @@ QDF_STATUS csr_roam_set_bss_config_cfg(tpAniSirGlobal pMac, uint32_t sessionId,
pProfile, pBssDesc, pIes);
else
csr_set_cfg_rate_set_from_profile(pMac, pProfile);
status = cfg_set_int(pMac, WNI_CFG_JOIN_FAILURE_TIMEOUT,
pBssConfig->uJoinTimeOut);
pMac->mlme_cfg->timeouts.join_failure_timeout =
pBssConfig->uJoinTimeOut;
/* Any roaming related changes should be above this line */
if (pSession && pSession->roam_synch_in_progress) {
sme_debug("Roam synch is in progress Session_id: %d",
@@ -5410,7 +5409,8 @@ QDF_STATUS csr_roam_set_bss_config_cfg(tpAniSirGlobal pMac, uint32_t sessionId,
*/
csr_roam_substate_change(pMac, eCSR_ROAM_SUBSTATE_CONFIG, sessionId);
csr_roam_ccm_cfg_set_callback(pMac, status, sessionId);
csr_roam_ccm_cfg_set_callback(pMac, sessionId);
return QDF_STATUS_SUCCESS;
}
@@ -9670,7 +9670,8 @@ bool csr_is_roam_command_waiting_for_session(tpAniSirGlobal pMac,
static void
csr_roaming_state_config_cnf_processor(tpAniSirGlobal mac_ctx,
tSmeCmd *cmd, uint32_t result, uint8_t sme_session_id)
tSmeCmd *cmd,
uint8_t sme_session_id)
{
struct tag_csrscan_result *scan_result = NULL;
tSirBssDescription *bss_desc = NULL;
@@ -9700,28 +9701,6 @@ csr_roaming_state_config_cnf_processor(tpAniSirGlobal mac_ctx,
return;
}
if (!QDF_IS_STATUS_SUCCESS(result)) {
/*
* In the event the configuration failed, for infra let the roam
* processor attempt to join something else...
*/
if (cmd->u.roamCmd.pRoamBssEntry
&& CSR_IS_INFRASTRUCTURE(&cmd->u.roamCmd.roamProfile)) {
csr_roam(mac_ctx, cmd);
} else {
/* We need to complete the command */
if (csr_is_bss_type_ibss
(cmd->u.roamCmd.roamProfile.BSSType)) {
csr_roam_complete(mac_ctx, eCsrStartBssFailure,
NULL, sme_session_id);
} else {
csr_roam_complete(mac_ctx, eCsrNothingToJoin,
NULL, sme_session_id);
}
}
return;
}
/* we have active entry */
sme_debug("Cfg sequence complete");
/*

View File

@@ -375,9 +375,6 @@ bool csr_roam_is_channel_valid(tpAniSirGlobal pMac, uint8_t channel);
/* pNumChan is a caller allocated space with the sizeof pChannels */
QDF_STATUS csr_get_cfg_valid_channels(tpAniSirGlobal pMac, uint8_t *pChannels,
uint32_t *pNumChan);
void csr_roam_ccm_cfg_set_callback(tpAniSirGlobal pMac, int32_t result,
uint8_t session_id);
int8_t csr_get_cfg_max_tx_power(tpAniSirGlobal pMac, uint8_t channel);
/* To free the last roaming profile */