wlan: Save gEnableRoamDelayStats ini in MAC and SME context
Save the value of gEnableRoamDelayStats ini in MAC and
SME context and check the value before capturing the
timestamps at various stages
Change-Id: I8e1423fc6bf4a049159765f06fbf5f49526f0d99
CRs-Fixed: 785761
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 8bc7d09..f28769a 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -5429,6 +5429,9 @@
pConfig->nOBSSScanWidthTriggerInterval;
smeConfig->fDeferIMPSTime = pHddCtx->cfg_ini->deferImpsTime;
smeConfig->fBtcEnableIndTimerVal = pHddCtx->cfg_ini->btcEnableIndTimerVal;
+#ifdef DEBUG_ROAM_DELAY
+ smeConfig->csrConfig.roamDelayStatsEnabled = pHddCtx->cfg_ini->gEnableRoamDelayStats;
+#endif //#ifdef DEBUG_ROAM_DELAY
halStatus = sme_UpdateConfig( pHddCtx->hHal, smeConfig);
if ( !HAL_STATUS_SUCCESS( halStatus ) )
{
diff --git a/CORE/MAC/inc/aniGlobal.h b/CORE/MAC/inc/aniGlobal.h
index f8cf10c..eb8471b 100644
--- a/CORE/MAC/inc/aniGlobal.h
+++ b/CORE/MAC/inc/aniGlobal.h
@@ -1077,6 +1077,9 @@
v_BOOL_t isCoexScoIndSet;
v_U8_t miracast_mode;
v_U8_t fBtcEnableIndTimerVal;
+#ifdef DEBUG_ROAM_DELAY
+ v_U8_t roamDelayStatsEnabled;
+#endif //#ifdef DEBUG_ROAM_DELAY
} tAniSirGlobal;
#ifdef FEATURE_WLAN_TDLS
diff --git a/CORE/MAC/src/pe/lim/limFT.c b/CORE/MAC/src/pe/lim/limFT.c
index 735f04c..70685b5 100644
--- a/CORE/MAC/src/pe/lim/limFT.c
+++ b/CORE/MAC/src/pe/lim/limFT.c
@@ -1336,7 +1336,10 @@
// Dont need this anymore
pMac->ft.ftPEContext.pAddBssReq = NULL;
#ifdef DEBUG_ROAM_DELAY
- vos_record_roam_event(e_LIM_ADD_BS_REQ, NULL, 0);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ vos_record_roam_event(e_LIM_ADD_BS_REQ, NULL, 0);
+ }
#endif
return;
}
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
index 23de8de..1311627 100644
--- a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
@@ -2883,7 +2883,10 @@
goto end;
}
#ifdef DEBUG_ROAM_DELAY
- vos_record_roam_event(e_LIM_ADD_BS_RSP, NULL, 0);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ vos_record_roam_event(e_LIM_ADD_BS_RSP, NULL, 0);
+ }
#endif
// Prepare and send Reassociation request frame
// start reassoc timer.
@@ -2955,7 +2958,10 @@
#endif
limSendReassocReqWithFTIEsMgmtFrame(pMac, psessionEntry->pLimMlmReassocReq, psessionEntry);
#ifdef DEBUG_ROAM_DELAY
- vos_record_roam_event(e_LIM_SEND_REASSOC_REQ, NULL, 0);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ vos_record_roam_event(e_LIM_SEND_REASSOC_REQ, NULL, 0);
+ }
#endif
psessionEntry->limPrevMlmState = psessionEntry->limMlmState;
psessionEntry->limMlmState = eLIM_MLM_WT_FT_REASSOC_RSP_STATE;
diff --git a/CORE/SME/inc/csrApi.h b/CORE/SME/inc/csrApi.h
index 24c5806..b3da4b6 100644
--- a/CORE/SME/inc/csrApi.h
+++ b/CORE/SME/inc/csrApi.h
@@ -1191,6 +1191,9 @@
tANI_U32 channelBondingAPMode24GHz; // Use for SAP/P2P GO 2.4GHz channel Bonding
#endif
tANI_U32 nOBSSScanWidthTriggerInterval;
+#ifdef DEBUG_ROAM_DELAY
+ tANI_U8 roamDelayStatsEnabled;
+#endif //#ifdef DEBUG_ROAM_DELAY
}tCsrConfigParam;
//Tush
diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h
index 23aa079..df52e92 100644
--- a/CORE/SME/inc/csrInternal.h
+++ b/CORE/SME/inc/csrInternal.h
@@ -676,6 +676,9 @@
tANI_U32 channelBondingAPMode24GHz; // Use for SAP/P2P GO 2.4GHz channel Bonding
#endif
tANI_U32 nOBSSScanWidthTriggerInterval;
+#ifdef DEBUG_ROAM_DELAY
+ tANI_U8 roamDelayStatsEnabled;
+#endif //#ifdef DEBUG_ROAM_DELAY
}tCsrConfig;
typedef struct tagCsrChannelPowerInfo
diff --git a/CORE/SME/src/QoS/sme_Qos.c b/CORE/SME/src/QoS/sme_Qos.c
index aee50a8..df171ad 100644
--- a/CORE/SME/src/QoS/sme_Qos.c
+++ b/CORE/SME/src/QoS/sme_Qos.c
@@ -7191,18 +7191,19 @@
}
#ifdef DEBUG_ROAM_DELAY
-
- if (pACInfo->curr_QoSInfo[pACInfo->tspec_pending - 1].ts_info.up == SME_QOS_WMM_UP_VO ||
- pACInfo->curr_QoSInfo[pACInfo->tspec_pending - 1].ts_info.up == SME_QOS_WMM_UP_NC)
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
{
- vos_record_roam_event(e_SME_VO_ADDTS_RSP, NULL, 0);
- }
+ if (pACInfo->curr_QoSInfo[pACInfo->tspec_pending - 1].ts_info.up == SME_QOS_WMM_UP_VO ||
+ pACInfo->curr_QoSInfo[pACInfo->tspec_pending - 1].ts_info.up == SME_QOS_WMM_UP_NC)
+ {
+ vos_record_roam_event(e_SME_VO_ADDTS_RSP, NULL, 0);
+ }
- if (pACInfo->curr_QoSInfo[pACInfo->tspec_pending - 1].ts_info.up == SME_QOS_WMM_UP_VI||
- pACInfo->curr_QoSInfo[pACInfo->tspec_pending - 1].ts_info.up == SME_QOS_WMM_UP_CL)
-
- {
- vos_record_roam_event(e_SME_VI_ADDTS_RSP, NULL, 0);
+ if (pACInfo->curr_QoSInfo[pACInfo->tspec_pending - 1].ts_info.up == SME_QOS_WMM_UP_VI ||
+ pACInfo->curr_QoSInfo[pACInfo->tspec_pending - 1].ts_info.up == SME_QOS_WMM_UP_CL)
+ {
+ vos_record_roam_event(e_SME_VI_ADDTS_RSP, NULL, 0);
+ }
}
#endif
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index d8ef131..88add3a 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -1903,7 +1903,9 @@
#ifdef WLAN_FEATURE_AP_HT40_24G
pMac->roam.configParam.apHT40_24GEnabled = pParam->apHT40_24GEnabled;
#endif
-
+#ifdef DEBUG_ROAM_DELAY
+ pMac->roam.configParam.roamDelayStatsEnabled = pParam->roamDelayStatsEnabled;
+#endif //#ifdef DEBUG_ROAM_DELAY
}
return status;
@@ -7111,7 +7113,10 @@
{
status = csrRoamIssueDisassociate( pMac, sessionId, NewSubstate, fMICFailure );
#ifdef DEBUG_ROAM_DELAY
- vos_record_roam_event(e_SME_DISASSOC_ISSUE, NULL, 0);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ vos_record_roam_event(e_SME_DISASSOC_ISSUE, NULL, 0);
+ }
#endif /* DEBUG_ROAM_DELAY */
}
else
@@ -7569,9 +7574,11 @@
VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO,
FL(" calling csrSendJoinReqMsg (eWNI_SME_REASSOC_REQ)"));
#ifdef DEBUG_ROAM_DELAY
- //HACK usign buff len as Auth type
- vos_record_roam_event(e_SME_ISSUE_REASSOC_REQ, NULL, pProfile->negotiatedAuthType);
- vos_record_roam_event(e_CACHE_ROAM_PEER_MAC, (void *)pSirBssDesc->bssId, 6);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ vos_record_roam_event(e_SME_ISSUE_REASSOC_REQ, NULL, pProfile->negotiatedAuthType);
+ vos_record_roam_event(e_CACHE_ROAM_PEER_MAC, (void *)pSirBssDesc->bssId, 6);
+ }
#endif
// attempt to Join this BSS...
return csrSendJoinReqMsg( pMac, sessionId, pSirBssDesc, pProfile, pIes, eWNI_SME_REASSOC_REQ);
@@ -8482,7 +8489,10 @@
pMac->roam.curSubState[pSmeRsp->sessionId]));
csrRoamRoamingStateDisassocRspProcessor( pMac, (tSirSmeDisassocRsp *)pSmeRsp );
#ifdef DEBUG_ROAM_DELAY
- vos_record_roam_event(e_SME_DISASSOC_COMPLETE, NULL, 0);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ vos_record_roam_event(e_SME_DISASSOC_COMPLETE, NULL, 0);
+ }
#endif
}
break;
@@ -17547,14 +17557,20 @@
sme_QosCsrEventInd(pMac, pMac->ft.ftSmeContext.smeSessionId, SME_QOS_CSR_PREAUTH_SUCCESS_IND, NULL);
}
#ifdef DEBUG_ROAM_DELAY
- vos_record_roam_event(e_CACHE_ROAM_DELAY_DATA, NULL, 0);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ vos_record_roam_event(e_CACHE_ROAM_DELAY_DATA, NULL, 0);
+ }
#endif
/* Start the pre-auth reassoc interval timer with a period of 400ms. When this expires,
* actual transition from the current to handoff AP is triggered */
status = vos_timer_start(&pMac->ft.ftSmeContext.preAuthReassocIntvlTimer,
60);
#ifdef DEBUG_ROAM_DELAY
- vos_record_roam_event(e_SME_PREAUTH_REASSOC_START, NULL, 0);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ vos_record_roam_event(e_SME_PREAUTH_REASSOC_START, NULL, 0);
+ }
#endif
if (eHAL_STATUS_SUCCESS != status)
{
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index 045c79b..9fdcb0b 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -4814,18 +4814,21 @@
sme_ReleaseGlobalLock( &pMac->sme );
}
#ifdef DEBUG_ROAM_DELAY
- //Store sent PTK key time
- if(pSetKey->keyDirection == eSIR_TX_RX)
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
{
- vos_record_roam_event(e_HDD_SET_PTK_REQ, NULL, 0);
- }
- else if(pSetKey->keyDirection == eSIR_RX_ONLY)
- {
- vos_record_roam_event(e_HDD_SET_GTK_REQ, NULL, 0);
- }
- else
- {
- return (status);
+ //Store sent PTK key time
+ if(pSetKey->keyDirection == eSIR_TX_RX)
+ {
+ vos_record_roam_event(e_HDD_SET_PTK_REQ, NULL, 0);
+ }
+ else if(pSetKey->keyDirection == eSIR_RX_ONLY)
+ {
+ vos_record_roam_event(e_HDD_SET_GTK_REQ, NULL, 0);
+ }
+ else
+ {
+ return (status);
+ }
}
#endif
diff --git a/CORE/SME/src/sme_common/sme_FTApi.c b/CORE/SME/src/sme_common/sme_FTApi.c
index 0e67bf2..4e4f68f 100644
--- a/CORE/SME/src/sme_common/sme_FTApi.c
+++ b/CORE/SME/src/sme_common/sme_FTApi.c
@@ -337,10 +337,13 @@
{
case eFT_SET_KEY_WAIT:
#ifdef DEBUG_ROAM_DELAY
- //store the PTK send event
- vos_record_roam_event(e_HDD_SET_PTK_REQ, NULL, 0);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ //store the PTK send event
+ vos_record_roam_event(e_HDD_SET_PTK_REQ, NULL, 0);
+ }
#endif
- if (sme_GetFTPreAuthState (hHal) == TRUE)
+ if (sme_GetFTPreAuthState (hHal) == TRUE)
{
status = sme_FTSendUpdateKeyInd(pMac, pFTKeyInfo);
if (status != 0 )
@@ -478,7 +481,10 @@
csrNeighborRoamRequestHandoff(pMac);
#endif
#ifdef DEBUG_ROAM_DELAY
- vos_record_roam_event(e_SME_PREAUTH_CALLBACK_HIT, NULL, 0);
+ if (pMac->roam.configParam.roamDelayStatsEnabled)
+ {
+ vos_record_roam_event(e_SME_PREAUTH_CALLBACK_HIT, NULL, 0);
+ }
#endif
return;
}