WLAN : Extended iwpriv command 'getHostStates'
As part of the 'getHostStates' printing the HDD,CSR,
Lim (SME and MLM) and TL states.
CRs-Fixed: 508110
Change-Id: I8d7169275eeb877736379b0767f6c960147390fe
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index e0f70c3..1cd307a 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -63,6 +63,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/wireless.h>
+#include <macTrace.h>
#include <wlan_hdd_includes.h>
#include <wlan_btc_svc.h>
#include <wlan_nlink_common.h>
@@ -213,6 +214,7 @@
#ifdef WLAN_FEATURE_11W
#define WE_GET_11W_INFO 9
#endif
+#define WE_GET_STATES 10
/* Private ioctls and their sub-ioctls */
#define WLAN_PRIV_SET_NONE_GET_NONE (SIOCIWFIRSTPRIV + 6)
@@ -348,6 +350,9 @@
#define TX_PER_TRACKING_MAX_RATIO 10
#define TX_PER_TRACKING_DEFAULT_WATERMARK 5
+#define WLAN_ADAPTER 0
+#define P2P_ADAPTER 1
+
/*MCC Configuration parameters */
enum {
MCC_SCHEDULE_TIME_SLICE_CFG_PARAM = 1,
@@ -2657,7 +2662,6 @@
{
hdd_adapter_t *call_back_pAdapter = pAdapter;
-
complete(&call_back_pAdapter->change_country_code);
return NULL;
@@ -3974,9 +3978,8 @@
case WE_GET_11D_STATE:
{
tSmeConfigParams smeConfig;
-
sme_GetConfigParam(hHal,&smeConfig);
-
+
*value = smeConfig.csrConfig.Is11dSupportEnabled;
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, ("11D state=%ld!!\n"),*value);
@@ -4215,6 +4218,134 @@
break;
}
+/* The case prints the current state of the HDD, SME, CSR, PE, TL
+ *it can be extended for WDI Global State as well.
+ *And currently it only checks P2P_CLIENT adapter.
+ *P2P_DEVICE and P2P_GO have not been added as of now.
+*/
+ case WE_GET_STATES:
+ {
+ int buf = 0, len = 0;
+ int adapter_num = 0;
+ int count = 0, check = 1;
+
+ tANI_U16 tlState;
+ tHalHandle hHal;
+ tpAniSirGlobal pMac;
+ hdd_station_ctx_t *pHddStaCtx;
+
+ hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX( pAdapter );
+ hdd_adapter_t *useAdapter = NULL;
+
+ /* Print wlan0 or p2p0 states based on the adapter_num
+ *by using the correct adapter
+ */
+ while ( adapter_num < 2 )
+ {
+ if ( WLAN_ADAPTER == adapter_num )
+ {
+ useAdapter = pAdapter;
+ buf = snprintf(extra + len, WE_MAX_STR_LEN - len,
+ "\n\n wlan0 States:-");
+ len += buf;
+ }
+ else if ( P2P_ADAPTER == adapter_num )
+ {
+ buf = snprintf(extra + len, WE_MAX_STR_LEN - len,
+ "\n\n p2p0 States:-");
+ len += buf;
+
+ if( !pHddCtx )
+ {
+ buf = snprintf(extra + len, WE_MAX_STR_LEN - len,
+ "\n pHddCtx is NULL");
+ len += buf;
+ break;
+ }
+
+ /*Printing p2p0 states only in the case when the device is
+ configured as a p2p_client*/
+ useAdapter = hdd_get_adapter(pHddCtx, WLAN_HDD_P2P_CLIENT);
+ if ( !useAdapter )
+ {
+ buf = snprintf(extra + len, WE_MAX_STR_LEN - len,
+ "\n Device not configured as P2P_CLIENT.");
+ len += buf;
+ break;
+ }
+ }
+
+ hHal = WLAN_HDD_GET_HAL_CTX( useAdapter );
+ pMac = PMAC_STRUCT( hHal );
+ pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR( useAdapter );
+ if( !pHddStaCtx )
+ {
+ buf = snprintf(extra + len, WE_MAX_STR_LEN - len,
+ "\n pHddStaCtx is NULL");
+ len += buf;
+ break;
+ }
+
+ tlState = smeGetTLSTAState(hHal, pHddStaCtx->conn_info.staId[0]);
+
+ buf = snprintf(extra + len, WE_MAX_STR_LEN - len,
+ "\n HDD Conn State - %s "
+ "\n \n SME State:"
+ "\n Neighbour Roam State - %s"
+ "\n CSR State - %s"
+ "\n CSR Substate - %s"
+ "\n \n TL STA %d State: %s",
+ macTraceGetHDDWlanConnState(
+ pHddStaCtx->conn_info.connState),
+ macTraceGetNeighbourRoamState(
+ pMac->roam.neighborRoamInfo.neighborRoamState),
+ macTraceGetcsrRoamState(
+ pMac->roam.curState[useAdapter->sessionId]),
+ macTraceGetcsrRoamSubState(
+ pMac->roam.curSubState[useAdapter->sessionId]),
+ pHddStaCtx->conn_info.staId[0],
+ macTraceGetTLState(tlState)
+ );
+ len += buf;
+ adapter_num++;
+ }
+
+ /* Printing Lim State starting with global lim states */
+ buf = snprintf(extra + len, WE_MAX_STR_LEN - len,
+ "\n \n LIM STATES:-"
+ "\n Global Sme State - %s "\
+ "\n Global mlm State - %s "\
+ "\n",
+ macTraceGetLimSmeState(pMac->lim.gLimSmeState),
+ macTraceGetLimMlmState(pMac->lim.gLimMlmState)
+ );
+ len += buf;
+
+ /*printing the PE Sme and Mlm states for valid lim sessions*/
+ while ( check < 3 && count < 255)
+ {
+ if ( pMac->lim.gpSession[count].valid )
+ {
+ buf = snprintf(extra + len, WE_MAX_STR_LEN - len,
+ "\n Lim Valid Session %d:-"
+ "\n PE Sme State - %s "
+ "\n PE Mlm State - %s "
+ "\n",
+ check,
+ macTraceGetLimSmeState(pMac->lim.gpSession[count].limSmeState),
+ macTraceGetLimMlmState(pMac->lim.gpSession[count].limMlmState)
+ );
+
+ len += buf;
+ check++;
+ }
+ count++;
+ }
+
+ wrqu->data.length = strlen(extra)+1;
+ break;
+ }
+
case WE_GET_CFG:
{
hdd_cfg_get_config(WLAN_HDD_GET_CTX(pAdapter), extra, WE_MAX_STR_LEN);
@@ -4231,7 +4362,7 @@
break;
}
#endif
-
+
#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR)
case WE_GET_ROAM_RSSI:
{
@@ -4334,7 +4465,7 @@
break;
}
#endif
- default:
+ default:
{
hddLog(LOGE, "Invalid IOCTL command %d \n", sub_cmd );
break;
@@ -4480,7 +4611,7 @@
sme_RoamReassoc(pMac, pAdapter->sessionId, NULL, modProfileFields, &roamId, 1);
return 0;
}
-
+
default:
{
@@ -6419,10 +6550,10 @@
return -EIO;
}
- if ( (band == eCSR_BAND_24 && pHddCtx->cfg_ini->nBandCapability==2) ||
- (band == eCSR_BAND_5G && pHddCtx->cfg_ini->nBandCapability==1) ||
- (band == eCSR_BAND_ALL && pHddCtx->cfg_ini->nBandCapability!=0))
- {
+ if ( (band == eCSR_BAND_24 && pHddCtx->cfg_ini->nBandCapability==2) ||
+ (band == eCSR_BAND_5G && pHddCtx->cfg_ini->nBandCapability==1) ||
+ (band == eCSR_BAND_ALL && pHddCtx->cfg_ini->nBandCapability!=0))
+ {
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
"%s: band value %u violate INI settings %u", __func__,
band, pHddCtx->cfg_ini->nBandCapability);
@@ -6970,6 +7101,10 @@
0,
IW_PRIV_TYPE_CHAR| WE_MAX_STR_LEN,
"getStats" },
+ { WE_GET_STATES,
+ 0,
+ IW_PRIV_TYPE_CHAR| WE_MAX_STR_LEN,
+ "getHostStates" },
{ WE_GET_CFG,
0,
IW_PRIV_TYPE_CHAR| WE_MAX_STR_LEN,
@@ -6992,7 +7127,7 @@
"getWmmStatus" },
{
WE_GET_CHANNEL_LIST,
- 0,
+ 0,
IW_PRIV_TYPE_CHAR| WE_MAX_STR_LEN,
"getChannelList" },
#ifdef FEATURE_WLAN_TDLS
@@ -7218,7 +7353,6 @@
WLAN_GET_LINK_SPEED,
IW_PRIV_TYPE_CHAR | 18,
IW_PRIV_TYPE_CHAR | 5, "getLinkSpeed" },
-
};
diff --git a/CORE/MAC/inc/macTrace.h b/CORE/MAC/inc/macTrace.h
index 2b1d30d..72d9f3c 100644
--- a/CORE/MAC/inc/macTrace.h
+++ b/CORE/MAC/inc/macTrace.h
@@ -124,7 +124,18 @@
eHalStatus pe_AcquireGlobalLock( tAniSirLim *psPe);
eHalStatus pe_ReleaseGlobalLock( tAniSirLim *psPe);
+tANI_U8* macTraceGetHDDWlanConnState(tANI_U16 connState);
+#ifdef WLAN_FEATURE_P2P_DEBUG
+tANI_U8* macTraceGetP2PConnState(tANI_U16 connState);
+#endif
+
+tANI_U8* macTraceGetNeighbourRoamState(tANI_U16 neighbourRoamState);
+tANI_U8* macTraceGetcsrRoamState(tANI_U16 csrRoamState);
+tANI_U8* macTraceGetcsrRoamSubState(tANI_U16 csrRoamSubState);
+tANI_U8* macTraceGetLimSmeState(tANI_U16 limState);
+tANI_U8* macTraceGetLimMlmState(tANI_U16 mlmState);
+tANI_U8* macTraceGetTLState(tANI_U16 tlState);
#endif
diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h
index ef481d1..01efb81 100644
--- a/CORE/SME/inc/csrInternal.h
+++ b/CORE/SME/inc/csrInternal.h
@@ -1207,6 +1207,15 @@
tANI_U32 periodicity, tANI_BOOLEAN cache,
tANI_U8 staId, void *pContext);
+/* ---------------------------------------------------------------------------
+ \fn csrGetTLSTAState
+ \helper function to get the TL STA State whenever the function is called.
+
+ \param staId - The staID to be passed to the TL
+ to get the relevant TL STA State
+ \return the state as tANI_U16
+ ---------------------------------------------------------------------------*/
+tANI_U16 csrGetTLSTAState(tpAniSirGlobal pMac, tANI_U8 staId);
eHalStatus csrGetRssi(tpAniSirGlobal pMac,tCsrRssiCallback callback,tANI_U8 staId,tCsrBssid bssId,void * pContext,void * pVosContext);
#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR)
diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h
index b9f69f9..fc49fae 100644
--- a/CORE/SME/inc/sme_Api.h
+++ b/CORE/SME/inc/sme_Api.h
@@ -778,6 +778,16 @@
tANI_U32 periodicity, tANI_BOOLEAN cache,
tANI_U8 staId, void *pContext);
+/* ---------------------------------------------------------------------------
+ \fn smeGetTLSTAState
+ \helper function to get teh TL STA State whenever the function is called.
+
+ \param staId - The staID to be passed to the TL
+ to get the relevant TL STA State
+ \return the state as tANI_U16
+ ---------------------------------------------------------------------------*/
+tANI_U16 smeGetTLSTAState(tHalHandle hHal, tANI_U8 staId);
+
eHalStatus sme_GetRssi(tHalHandle hHal,
tCsrRssiCallback callback,
tANI_U8 staId, tCsrBssid bssId, void *pContext, void* pVosContext);
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 54c4c4a..1a2125c 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -14431,6 +14431,28 @@
}
#endif
+/* ---------------------------------------------------------------------------
+ \fn csrGetTLSTAState
+ \helper function to get teh TL STA State whenever the function is called.
+
+ \param staId - The staID to be passed to the TL
+ to get the relevant TL STA State
+ \return the state as tANI_U16
+ ---------------------------------------------------------------------------*/
+tANI_U16 csrGetTLSTAState(tpAniSirGlobal pMac, tANI_U8 staId)
+{
+ WLANTL_STAStateType tlSTAState;
+ tlSTAState = WLANTL_STA_INIT;
+
+ //request TL for STA State
+ if ( !VOS_IS_STATUS_SUCCESS(WLANTL_GetSTAState(pMac->roam.gVosContext, staId, &tlSTAState)) )
+ {
+ smsLog(pMac, LOGE, FL("csrGetTLSTAState:couldn't get the STA state from TL"));
+ }
+
+ return tlSTAState;
+}
+
eHalStatus csrGetStatistics(tpAniSirGlobal pMac, eCsrStatsRequesterType requesterId,
tANI_U32 statsMask,
tCsrStatsCallback callback,
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index 23e21f2..fdc2331 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -90,6 +90,7 @@
#include <wlan_qct_pal_api.h>
#define READ_MEMORY_DUMP_CMD 9
+#define TL_INIT_STATE 0
// TxMB Functions
extern eHalStatus pmcPrepareCommand( tpAniSirGlobal pMac, eSmeCommandType cmdType, void *pvParam,
@@ -4029,6 +4030,30 @@
}
/* ---------------------------------------------------------------------------
+ \fn smeGetTLSTAState
+ \helper function to get the TL STA State whenever the function is called.
+
+ \param staId - The staID to be passed to the TL
+ to get the relevant TL STA State
+ \return the state as tANI_U16
+ ---------------------------------------------------------------------------*/
+tANI_U16 smeGetTLSTAState(tHalHandle hHal, tANI_U8 staId)
+{
+ tANI_U16 tlSTAState = TL_INIT_STATE;
+ tpAniSirGlobal pMac = PMAC_STRUCT( hHal );
+ eHalStatus status = eHAL_STATUS_FAILURE;
+
+ status = sme_AcquireGlobalLock( &pMac->sme );
+ if ( HAL_STATUS_SUCCESS( status ) )
+ {
+ tlSTAState = csrGetTLSTAState( pMac, staId);
+ sme_ReleaseGlobalLock( &pMac->sme );
+ }
+
+ return tlSTAState;
+}
+
+/* ---------------------------------------------------------------------------
\fn sme_GetCountryCode
diff --git a/CORE/SYS/legacy/src/utils/src/macTrace.c b/CORE/SYS/legacy/src/utils/src/macTrace.c
index 70efdac..4e4679a 100644
--- a/CORE/SYS/legacy/src/utils/src/macTrace.c
+++ b/CORE/SYS/legacy/src/utils/src/macTrace.c
@@ -63,15 +63,277 @@
#include "macTrace.h"
#include "wlan_qct_wda.h"
+#include "wlan_hdd_assoc.h"
+#include "wlan_hdd_main.h"
+#ifdef CONFIG_CFG80211
+#include "wlan_hdd_p2p.h"
+#endif
+#include "csrNeighborRoam.h"
+#include "csrInternal.h"
+#include "limGlobal.h"
+#include "wlan_qct_tl.h"
#ifdef TRACE_RECORD
static tTraceRecord gTraceTbl[MAX_TRACE_RECORDS];
static tTraceData gTraceData;
static tpTraceCb traceCBTable[VOS_MODULE_ID_MAX];
+/* ---------------------------------------------------------------------------
+ \fn macTraceGetHDDWlanConnState
+ \function to get string equivalent of a value
+ from the enum eConnectionState.
+ \param connState - the value from the enum
+ \return the string equivalent of connState
+ ---------------------------------------------------------------------------*/
+tANI_U8* macTraceGetHDDWlanConnState(tANI_U16 connState)
+{
+ switch(connState)
+ {
+ CASE_RETURN_STRING(eConnectionState_NotConnected);
+ CASE_RETURN_STRING(eConnectionState_Connecting);
+ CASE_RETURN_STRING(eConnectionState_Associated);
+ CASE_RETURN_STRING(eConnectionState_IbssDisconnected);
+ CASE_RETURN_STRING(eConnectionState_IbssConnected);
+ CASE_RETURN_STRING(eConnectionState_Disconnecting);
+ default:
+ return( (tANI_U8*)"UNKNOWN" );
+ break;
+ }
+}
+/* ---------------------------------------------------------------------------
+ \fn macTraceGetP2PConnState
+ \function to get string equivalent of a value
+ from the enum tP2PConnectionStatus.
+
+ \param connState - the value from the enum
+ \return the string equivalent of connState
+ ---------------------------------------------------------------------------*/
+#ifdef WLAN_FEATURE_P2P_DEBUG
+tANI_U8* macTraceGetP2PConnState(tANI_U16 connState)
+{
+ switch(connState)
+ {
+ CASE_RETURN_STRING(P2P_NOT_ACTIVE);
+ CASE_RETURN_STRING(P2P_GO_NEG_PROCESS);
+ CASE_RETURN_STRING(P2P_GO_NEG_COMPLETED);
+ CASE_RETURN_STRING(P2P_CLIENT_CONNECTING_STATE_1);
+ CASE_RETURN_STRING(P2P_GO_COMPLETED_STATE);
+ CASE_RETURN_STRING(P2P_CLIENT_CONNECTED_STATE_1);
+ CASE_RETURN_STRING(P2P_CLIENT_DISCONNECTED_STATE);
+ CASE_RETURN_STRING(P2P_CLIENT_CONNECTING_STATE_2);
+ CASE_RETURN_STRING(P2P_CLIENT_COMPLETED_STATE);
+
+ default:
+ return( (tANI_U8*)"UNKNOWN" );
+ break;
+ }
+}
+#endif
+
+/* ---------------------------------------------------------------------------
+ \fn macTraceGetNeighbourRoamState
+ \function to get string equivalent of a value
+ from the enum eCsrNeighborRoamState.
+
+ \param neighbourRoamState - the value from the enum
+ \return the string equivalent of neighbourRoamState
+ ---------------------------------------------------------------------------*/
+tANI_U8* macTraceGetNeighbourRoamState(tANI_U16 neighbourRoamState)
+{
+ switch(neighbourRoamState)
+ {
+ CASE_RETURN_STRING(eCSR_NEIGHBOR_ROAM_STATE_CLOSED);
+ CASE_RETURN_STRING(eCSR_NEIGHBOR_ROAM_STATE_INIT);
+ CASE_RETURN_STRING(eCSR_NEIGHBOR_ROAM_STATE_CONNECTED);
+ CASE_RETURN_STRING(eCSR_NEIGHBOR_ROAM_STATE_CFG_CHAN_LIST_SCAN);
+ CASE_RETURN_STRING(eCSR_NEIGHBOR_ROAM_STATE_REASSOCIATING);
+ #ifdef WLAN_FEATURE_VOWIFI_11R
+ CASE_RETURN_STRING(eCSR_NEIGHBOR_ROAM_STATE_REPORT_QUERY);
+ CASE_RETURN_STRING(eCSR_NEIGHBOR_ROAM_STATE_REPORT_SCAN);
+ CASE_RETURN_STRING(eCSR_NEIGHBOR_ROAM_STATE_PREAUTHENTICATING);
+ CASE_RETURN_STRING(eCSR_NEIGHBOR_ROAM_STATE_PREAUTH_DONE);
+ #endif /* WLAN_FEATURE_VOWIFI_11R */
+ CASE_RETURN_STRING(eNEIGHBOR_STATE_MAX);
+
+ default:
+ return( (tANI_U8*)"UNKNOWN" );
+ break;
+ }
+}
+
+/* ---------------------------------------------------------------------------
+ \fn macTraceGetcsrRoamState
+ \function to get string equivalent of a value
+ from the enum eCsrRoamState.
+
+ \param csrRoamState - the value from the enum
+ \return the string equivalent of csrRoamState
+ ---------------------------------------------------------------------------*/
+tANI_U8* macTraceGetcsrRoamState(tANI_U16 csrRoamState)
+{
+ switch(csrRoamState)
+ {
+ CASE_RETURN_STRING(eCSR_ROAMING_STATE_STOP);
+ CASE_RETURN_STRING(eCSR_ROAMING_STATE_IDLE);
+ CASE_RETURN_STRING(eCSR_ROAMING_STATE_SCANNING);
+ CASE_RETURN_STRING(eCSR_ROAMING_STATE_JOINING);
+ CASE_RETURN_STRING(eCSR_ROAMING_STATE_JOINED);
+
+ default:
+ return( (tANI_U8*)"UNKNOWN" );
+ break;
+ }
+}
+
+/* ---------------------------------------------------------------------------
+ \fn macTraceGetcsrRoamSubState
+ \function to get string equivalent of a value
+ from the enum eCsrRoamSubState.
+
+ \param csrRoamSubState - the value from the enum
+ \return the string equivalent of csrRoamSubState
+ ---------------------------------------------------------------------------*/
+tANI_U8* macTraceGetcsrRoamSubState(tANI_U16 csrRoamSubState)
+{
+ switch(csrRoamSubState)
+ {
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_NONE);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_START_BSS_REQ);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_JOIN_REQ);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_REASSOC_REQ);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_DISASSOC_REQ);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_STOP_BSS_REQ);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_DISCONNECT_CONTINUE_ROAMING);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_AUTH_REQ);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_CONFIG);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_DEAUTH_REQ);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_DISASSOC_NOTHING_TO_JOIN);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_DISASSOC_REASSOC_FAILURE);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_DISASSOC_FORCED);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_WAIT_FOR_KEY);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_DISASSOC_HANDOFF);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_JOINED_NO_TRAFFIC);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_JOINED_NON_REALTIME_TRAFFIC);
+ CASE_RETURN_STRING(eCSR_ROAM_SUBSTATE_JOINED_REALTIME_TRAFFIC);
+
+ default:
+ return( (tANI_U8*)"UNKNOWN" );
+ break;
+ }
+}
+
+/* ---------------------------------------------------------------------------
+ \fn macTraceGetLimSmeState
+ \function to get string equivalent of a value
+ from the enum tLimSmeStates.
+
+ \param limState - the value from the enum
+ \return the string equivalent of limState
+ ---------------------------------------------------------------------------*/
+tANI_U8* macTraceGetLimSmeState(tANI_U16 limState)
+{
+ switch(limState)
+ {
+ CASE_RETURN_STRING(eLIM_SME_OFFLINE_STATE);
+ CASE_RETURN_STRING(eLIM_SME_IDLE_STATE);
+ CASE_RETURN_STRING(eLIM_SME_SUSPEND_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_SCAN_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_JOIN_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_AUTH_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_ASSOC_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_REASSOC_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_REASSOC_LINK_FAIL_STATE);
+ CASE_RETURN_STRING(eLIM_SME_JOIN_FAILURE_STATE);
+ CASE_RETURN_STRING(eLIM_SME_ASSOCIATED_STATE);
+ CASE_RETURN_STRING(eLIM_SME_REASSOCIATED_STATE);
+ CASE_RETURN_STRING(eLIM_SME_LINK_EST_STATE);
+ CASE_RETURN_STRING(eLIM_SME_LINK_EST_WT_SCAN_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_PRE_AUTH_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_DISASSOC_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_DEAUTH_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_START_BSS_STATE);
+ CASE_RETURN_STRING(eLIM_SME_WT_STOP_BSS_STATE);
+ CASE_RETURN_STRING(eLIM_SME_NORMAL_STATE);
+ CASE_RETURN_STRING(eLIM_SME_CHANNEL_SCAN_STATE);
+ CASE_RETURN_STRING(eLIM_SME_NORMAL_CHANNEL_SCAN_STATE);
+
+ default:
+ return( (tANI_U8*)"UNKNOWN" );
+ break;
+ }
+}
+
+/* ---------------------------------------------------------------------------
+ \fn macTraceGetLimMlmState
+ \function to get string equivalent of a value
+ from the enum tLimMlmStates.
+
+ \param mlmState - the value from the enum
+ \return the string equivalent of mlmState
+ ---------------------------------------------------------------------------*/
+tANI_U8* macTraceGetLimMlmState(tANI_U16 mlmState)
+{
+ switch(mlmState)
+ {
+ CASE_RETURN_STRING(eLIM_MLM_OFFLINE_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_IDLE_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_PROBE_RESP_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_PASSIVE_SCAN_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_JOIN_BEACON_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_JOINED_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_BSS_STARTED_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_AUTH_FRAME2_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_AUTH_FRAME3_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_AUTH_FRAME4_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_AUTH_RSP_TIMEOUT_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_AUTHENTICATED_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_ASSOC_RSP_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_REASSOC_RSP_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_ASSOCIATED_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_REASSOCIATED_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_LINK_ESTABLISHED_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_ASSOC_CNF_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_LEARN_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_ADD_BSS_RSP_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_DEL_BSS_RSP_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_ADD_BSS_RSP_ASSOC_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_ADD_BSS_RSP_REASSOC_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_ADD_BSS_RSP_PREASSOC_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_ADD_STA_RSP_STATE);
+ CASE_RETURN_STRING(eLIM_MLM_WT_DEL_STA_RSP_STATE);
+
+ default:
+ return( (tANI_U8*)"UNKNOWN" );
+ break;
+ }
+}
+
+/* ---------------------------------------------------------------------------
+ \fn macTraceGetTLState
+ \function to get string equivalent of a value
+ from the enum WLANTL_STAStateType.
+
+ \param tlState - the value from the enum
+ \return the string equivalent of tlState
+ ---------------------------------------------------------------------------*/
+tANI_U8* macTraceGetTLState(tANI_U16 tlState)
+{
+ switch(tlState)
+ {
+ CASE_RETURN_STRING(WLANTL_STA_INIT);
+ CASE_RETURN_STRING(WLANTL_STA_CONNECTED);
+ CASE_RETURN_STRING(WLANTL_STA_AUTHENTICATED);
+ CASE_RETURN_STRING(WLANTL_STA_DISCONNECTED);
+ CASE_RETURN_STRING(WLANTL_STA_MAX_STATE);
+
+ default:
+ return( (tANI_U8*)"UNKNOWN" );
+ break;
+ }
+}
tANI_U8* macTraceGetSmeMsgString( tANI_U16 smeMsg )
{