blob: ab2f2bf78b5559f21f3b1fcc85dc66b1442cd136 [file] [log] [blame]
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -07001/*
Konamki, Sreelakshmi5548ff92015-07-29 14:47:54 +05302 * Copyright (c) 2013-2015 The Linux Foundation. All rights reserved.
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -07003 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
Kiet Lamc9a03d22014-02-19 00:32:59 -080022/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -070028/************************************************************************
29 smeTrace.c
30
31 \brief implementation for trace related APIs
32
33 \author Kiran Kumar Reddy CH L V
34
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -070035 ========================================================================*/
36#include "aniGlobal.h" //for tpAniSirGlobal
37#include "smsDebug.h"
38#include "macTrace.h"
39#include "sme_Trace.h"
40#include "smeInternal.h"
Padma, Santhosh Kumar9093b202015-07-21 15:37:38 +053041#include "smeInside.h"
42
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -070043#ifndef SME_TRACE_RECORD
44void smeTraceInit(tpAniSirGlobal pMac)
45{
46 return;
47}
48#endif
49#ifdef SME_TRACE_RECORD
50
51
52static tANI_U8* smeTraceGetRxMsgString( tANI_U32 code )
53{
54 switch(code)
55 {
56 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_SCAN_REQ);
57 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_SCAN_GET_RESULTS);
58 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_CONNECT);
59 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_SET_11DINFO);
60 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_GET_SOFTAP_DOMAIN);
61 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_SET_REGINFO);
62 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_UPDATE_CHANNEL_CONFIG);
63 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_UPDATE_CONFIG);
64 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_HDDREADYIND);
65 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_SCAN_FLUSH_RESULTS);
66 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_SCAN_FLUSH_P2PRESULTS);
67 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_SCAN_RESULT_GETFIRST);
68 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_SCAN_RESULT_GETNEXT);
69 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_SCAN_RESULT_PURGE);
70 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_ROAM_REASSOC);
71 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_ROAM_DISCONNECT);
72 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_ROAM_GET_CONNECTPROFILE);
73 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_ROAM_FREE_CONNECTPROFILE);
74 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_ROAM_SET_PMKIDCACHE);
Konamki, Sreelakshmi7b464be2015-07-14 12:17:01 +053075 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_ROAM_DEL_PMKIDCACHE);
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -070076 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_GET_CONFIGPARAM);
77 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_GET_MODPROFFIELDS);
78 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_CONFIG_PWRSAVE);
79 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_GET_CONFIG_PWRSAVE);
80 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_ENABLE_PWRSAVE);
81 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_DISABLE_PWRSAVE);
82 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_START_AUTO_BMPSTIMER);
83 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_STOP_AUTO_BMPSTIMER);
84 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_IS_PWRSAVE_ENABLED);
85 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_REQUEST_FULLPOWER);
86 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_REQUEST_BMPS);
87 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_DHCP_FLAG);
88 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_REQUEST_STANDBY);
89 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_WOWL_ADDBCAST_PATTERN);
90 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_WOWL_DELBCAST_PATTERN);
91 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_ENTER_WOWL);
92 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_EXIT_WOWL);
93 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_KEY);
94 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_REMOVE_KEY);
95 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_GET_STATS);
96 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_GET_CNTRYCODE);
97 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_CNTRYCODE);
98 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_CHANGE_CNTRYCODE);
99 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_BTC_SIGNALEVENT);
100 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_BTC_SETCONFIG);
101 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_BTC_GETCONFIG);
102 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_CFGPRIVACY);
103 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_NEIGHBOR_REPORTREQ);
104 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_DBG_READREG);
105 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_DBG_WRITEREG);
106 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_DBG_READMEM);
107 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_DBG_WRITEMEM);
108 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_OPEN_SESSION);
109 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_CLOSE_SESSION);
110 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_HOSTOFFLOAD);
111 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_GTKOFFLOAD);
112 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_GET_GTKOFFLOAD);
113 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_POWERPARAMS);
114 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_ABORT_MACSCAN);
115 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_REGISTER_MGMTFR);
116 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_DEREGISTER_MGMTFR);
117 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_REMAIN_ONCHAN);
118 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SEND_ACTION);
119 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_CANCEL_REMAIN_ONCHAN);
120 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_CONFIG_RXPFIL);
121 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_CONFIG_SUSPENDIND);
122 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_CONFIG_RESUMEREQ);
123 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_MAXTXPOW);
124 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_TXPOW);
125 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_TMLEVEL);
126 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_CAPS_EXCH);
127 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_DISABLE_CAP);
128 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_GET_DEFCCNV);
129 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_GET_CURCC);
130 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_RESET_PW5G);
131 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_UPDATE_RP5G);
132 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_ROAMIBAND);
133 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_GET_ROAMIBAND);
134 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_UPDATE_RSSIDIFF);
135 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_UPDATE_IMMRSSIDIFF);
136 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_UPDATE_FTENABLED);
137 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_UPDATE_WESMODE);
138 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_SET_SCANCTRL);
Konamki, Sreelakshmi7b464be2015-07-14 12:17:01 +0530139 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_MSG_DEAUTH_STA);
140#ifdef FEATURE_WLAN_TDLS
141 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_TDLS_LINK_ESTABLISH_PARAM);
142 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_TDLS_CHAN_SWITCH_REQ);
143 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_TDLS_SEND_MGMT_FRAME);
144 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_TDLS_CHANGE_PEER_STA);
145 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_TDLS_ADD_PEER_STA);
146 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_TDLS_DEL_PEER_STA);
147#endif
148 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_PREF_NET_LIST);
149#ifdef FEATURE_WLAN_LPHB
150 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_LPHB_CONFIG_REQ);
151#endif /* FEATURE_WLAN_LPHB */
Konamki, Sreelakshmi824f93e2015-07-31 12:55:48 +0530152 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_EXTSCAN_START);
153 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_EXTSCAN_STOP);
154 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_EXTSCAN_SET_BSS_HOTLIST);
155 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_EXTSCAN_RESET_BSS_HOTLIST);
Konamki, Sreelakshmi824f93e2015-07-31 12:55:48 +0530156 CASE_RETURN_STRING(TRACE_CODE_SME_RX_HDD_EXTSCAN_GET_CACHED_RESULTS);
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -0700157 default:
158 return( "UNKNOWN" );
159 break;
160 }
161}
162static tANI_U8* smeTraceGetCommandString( tANI_U32 command )
163{
164 switch(command)
165 {
166 CASE_RETURN_STRING(eSmeNoCommand);
167 CASE_RETURN_STRING(eSmeDropCommand);
168 CASE_RETURN_STRING(eSmeCsrCommandMask);
169 CASE_RETURN_STRING(eSmeCommandScan);
170 CASE_RETURN_STRING(eSmeCommandRoam);
171 CASE_RETURN_STRING(eSmeCommandWmStatusChange);
172 CASE_RETURN_STRING(eSmeCommandSetKey);
173 CASE_RETURN_STRING(eSmeCommandRemoveKey);
174 CASE_RETURN_STRING(eSmeCommandAddStaSession);
175 CASE_RETURN_STRING(eSmeCommandDelStaSession);
Konamki, Sreelakshmi824f93e2015-07-31 12:55:48 +0530176 CASE_RETURN_STRING(eSmeCommandPnoReq);
177 CASE_RETURN_STRING(eSmeCommandMacSpoofRequest);
178 CASE_RETURN_STRING(eSmeCommandGetFrameLogRequest);
179#ifdef FEATURE_WLAN_TDLS
180 CASE_RETURN_STRING(eSmeCommandTdlsSendMgmt);
181 CASE_RETURN_STRING(eSmeCommandTdlsAddPeer);
182 CASE_RETURN_STRING(eSmeCommandTdlsDelPeer);
183 CASE_RETURN_STRING(eSmeCommandTdlsLinkEstablish);
184 CASE_RETURN_STRING(eSmeCommandTdlsChannelSwitch);
185#endif
186 CASE_RETURN_STRING(eSmeCommandNanReq);
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -0700187 CASE_RETURN_STRING(eSmePmcCommandMask);
188 CASE_RETURN_STRING(eSmeCommandEnterImps);
189 CASE_RETURN_STRING(eSmeCommandExitImps);
190 CASE_RETURN_STRING(eSmeCommandEnterBmps);
191 CASE_RETURN_STRING(eSmeCommandExitBmps);
192 CASE_RETURN_STRING(eSmeCommandEnterUapsd);
193 CASE_RETURN_STRING(eSmeCommandExitUapsd);
194 CASE_RETURN_STRING(eSmeCommandEnterWowl);
195 CASE_RETURN_STRING(eSmeCommandExitWowl);
196 CASE_RETURN_STRING(eSmeCommandEnterStandby);
197 CASE_RETURN_STRING(eSmeQosCommandMask);
198 CASE_RETURN_STRING(eSmeCommandAddTs);
199 CASE_RETURN_STRING(eSmeCommandDelTs);
200#ifdef FEATURE_OEM_DATA_SUPPORT
201 CASE_RETURN_STRING(eSmeCommandOemDataReq);
202#endif
203 CASE_RETURN_STRING(eSmeCommandRemainOnChannel);
204 CASE_RETURN_STRING(eSmeCommandNoAUpdate);
205 default:
206 return( "UNKNOWN" );
207 break;
208 }
209}
Katya Nigam24310bc2013-12-26 14:26:22 +0530210static void smeTraceDump(tpAniSirGlobal pMac, tpvosTraceRecord pRecord,
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -0700211 tANI_U16 recIndex)
212{
Konamki, Sreelakshmi5548ff92015-07-29 14:47:54 +0530213 switch (pRecord->code) {
214 case TRACE_CODE_SME_COMMAND:
Abhishek Singhc7d6fbc2015-10-19 12:14:41 +0530215 smsLog(pMac, LOG1, "%04d %012u S%d %-14s %-30s(0x%x)",
Konamki, Sreelakshmi5548ff92015-07-29 14:47:54 +0530216 recIndex, pRecord->time, pRecord->session, "SME COMMAND:",
217 smeTraceGetCommandString(pRecord->data), pRecord->data);
218 break;
219 case TRACE_CODE_SME_TX_WDA_MSG:
Abhishek Singhc7d6fbc2015-10-19 12:14:41 +0530220 smsLog(pMac, LOG1, "%04d %012u S%d %-14s %-30s(0x%x)",
Konamki, Sreelakshmi5548ff92015-07-29 14:47:54 +0530221 recIndex, pRecord->time, pRecord->session, "TX WDA Msg:",
222 macTraceGetWdaMsgString((tANI_U16)pRecord->data),
223 pRecord->data);
224 break;
225 case TRACE_CODE_SME_RX_WDA_MSG:
Abhishek Singhc7d6fbc2015-10-19 12:14:41 +0530226 smsLog(pMac, LOG1, "%04d %012u S%d %-14s %-30s(0x%x)",
Konamki, Sreelakshmi5548ff92015-07-29 14:47:54 +0530227 recIndex, pRecord->time, pRecord->session, "RX WDA Msg:",
228 macTraceGetSmeMsgString((tANI_U16)pRecord->data),
229 pRecord->data);
230 break;
231 default:
Abhishek Singhc7d6fbc2015-10-19 12:14:41 +0530232 smsLog(pMac, LOG1, "%04d %012u S%d %-14s %-30s(0x%x)",
Konamki, Sreelakshmi5548ff92015-07-29 14:47:54 +0530233 recIndex, pRecord->time, pRecord->session, "RX HDD MSG:",
234 smeTraceGetRxMsgString(pRecord->code), pRecord->data);
235 break;
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -0700236 }
237}
238
239void smeTraceInit(tpAniSirGlobal pMac)
240{
Katya Nigam24310bc2013-12-26 14:26:22 +0530241 vosTraceRegister(VOS_MODULE_ID_SME, (tpvosTraceCb)&smeTraceDump);
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -0700242}
Padma, Santhosh Kumar9093b202015-07-21 15:37:38 +0530243
244/**
245 * sme_state_info_dump() - prints state information of sme layer
246 */
247static void sme_state_info_dump(void)
248{
249 tANI_U32 session_id = 0;
250 tHalHandle hal;
251 tpAniSirGlobal mac;
252 v_CONTEXT_t vos_ctx_ptr;
253
254 /* get the global voss context */
255 vos_ctx_ptr = vos_get_global_context(VOS_MODULE_ID_VOSS, NULL);
256
257 if (NULL == vos_ctx_ptr) {
Padma, Santhosh Kumar9093b202015-07-21 15:37:38 +0530258 VOS_ASSERT(0);
259 return;
260 }
261
262 hal = vos_get_context(VOS_MODULE_ID_SME, vos_ctx_ptr);
263 if (NULL == hal) {
Padma, Santhosh Kumar9093b202015-07-21 15:37:38 +0530264 VOS_ASSERT(0);
265 return;
266 }
267
268 mac = PMAC_STRUCT(hal);
269
270 session_id = sme_get_sessionid_from_activeList(mac);
271 smsLog( mac, LOG1, FL(" SessionId %d for active command"), session_id);
272
273 smsLog(mac, LOG1, FL("NeighborRoamState: %d RoamState: %d"
274 "RoamSubState: %d ConnectState: %d pmcState: %d PmmState: %d"),
275 mac->roam.neighborRoamInfo.neighborRoamState,
276 mac->roam.curState[session_id], mac->roam.curSubState[session_id],
277 mac->roam.roamSession[session_id].connectState, mac->pmc.pmcState,
278 mac->pmm.gPmmState);
279}
280
281/**
282 * sme_register_debug_callback() - registration function sme layer
283 * to print sme state information
284 */
285void sme_register_debug_callback()
286{
287 vos_register_debug_callback(VOS_MODULE_ID_SME, &sme_state_info_dump);
288}
Leela Venkata Kiran Kumar Reddy Chiralabbb980b2013-04-10 22:39:51 -0700289#endif