qcacld-3.0: Reset auth_failure_timeout in pe_delete_session

auth_failure_timeout is updated as part of
lim_check_and_announce_join_success for p2p client with NOA.
And the default value is stored in pe_session->defaultAuthFailureTimeout
After receiving the auth resp or in case of auth failure the
auth_failure_timeout is reset to default value. But there is any other
failure and pe session is deleted then the auth_failure_timeout is
not reset. And p2p cli connection will use the wrong auth timeout.
And can result in connection delay's if GO doesn't send the auth response.

Reset the auth_failure_timeout to defalut as part of pe_delete_session.
And decrease the max value to 5000ms.

Change-Id: I374bf45279f086127ef062b83a06049c895c4675
CRs-Fixed: 2343832
这个提交包含在:
Bala Venkatesh
2018-11-01 18:22:13 +05:30
提交者 nshrivas
父节点 d0592c7926
当前提交 4183779454
修改 3 个文件,包含 16 行新增2 行删除

查看文件

@@ -59,8 +59,8 @@
*/ */
#define CFG_AUTH_FAILURE_TIMEOUT CFG_INI_UINT( \ #define CFG_AUTH_FAILURE_TIMEOUT CFG_INI_UINT( \
"auth_failure_timeout", \ "auth_failure_timeout", \
0, \ 500, \
65535, \ 5000, \
1000, \ 1000, \
CFG_VALUE_OR_DEFAULT, \ CFG_VALUE_OR_DEFAULT, \
"auth failure timeout") "auth failure timeout")

查看文件

@@ -1223,6 +1223,7 @@ static void lim_process_mlm_auth_req(tpAniSirGlobal mac_ctx, uint32_t *msg)
/* Activate Auth failure timer */ /* Activate Auth failure timer */
MTRACE(mac_trace(mac_ctx, TRACE_CODE_TIMER_ACTIVATE, MTRACE(mac_trace(mac_ctx, TRACE_CODE_TIMER_ACTIVATE,
session->peSessionId, eLIM_AUTH_FAIL_TIMER)); session->peSessionId, eLIM_AUTH_FAIL_TIMER));
lim_deactivate_and_change_timer(mac_ctx, eLIM_AUTH_FAIL_TIMER);
if (tx_timer_activate(&mac_ctx->lim.limTimers.gLimAuthFailureTimer) if (tx_timer_activate(&mac_ctx->lim.limTimers.gLimAuthFailureTimer)
!= TX_SUCCESS) { != TX_SUCCESS) {
pe_err("could not start Auth failure timer"); pe_err("could not start Auth failure timer");

查看文件

@@ -37,6 +37,7 @@
#include "sch_api.h" #include "sch_api.h"
#include "lim_send_messages.h" #include "lim_send_messages.h"
#include "cfg_ucfg_api.h"
#ifdef WLAN_ALLOCATE_GLOBAL_BUFFERS_DYNAMICALLY #ifdef WLAN_ALLOCATE_GLOBAL_BUFFERS_DYNAMICALLY
static struct sDphHashNode *g_dph_node_array; static struct sDphHashNode *g_dph_node_array;
@@ -881,6 +882,18 @@ void pe_delete_session(tpAniSirGlobal mac_ctx, tpPESession session)
lim_reset_bcn_probe_filter(mac_ctx, session); lim_reset_bcn_probe_filter(mac_ctx, session);
/* Restore default failure timeout */
if (session->defaultAuthFailureTimeout) {
pe_debug("Restore default failure timeout");
if (cfg_in_range(CFG_AUTH_FAILURE_TIMEOUT,
session->defaultAuthFailureTimeout))
mac_ctx->mlme_cfg->timeouts.auth_failure_timeout =
session->defaultAuthFailureTimeout;
else
mac_ctx->mlme_cfg->timeouts.auth_failure_timeout =
cfg_default(CFG_AUTH_FAILURE_TIMEOUT);
}
for (n = 0; n < (mac_ctx->lim.maxStation + 1); n++) { for (n = 0; n < (mac_ctx->lim.maxStation + 1); n++) {
timer_ptr = &mac_ctx->lim.limTimers.gpLimCnfWaitTimer[n]; timer_ptr = &mac_ctx->lim.limTimers.gpLimCnfWaitTimer[n];
if (session->peSessionId == timer_ptr->sessionId) if (session->peSessionId == timer_ptr->sessionId)