blob: 1aa6355b6487dad548049738dad4d9bda918a72c [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
2 * Copyright (c) 2012, Code Aurora Forum. All rights reserved.
3 *
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
22/*
23 * Airgo Networks, Inc proprietary. All rights reserved.
24 * This file limUtils.h contains the utility definitions
25 * LIM uses.
26 * Author: Chandra Modumudi
27 * Date: 02/13/02
28 * History:-
29 * Date Modified by Modification Information
30 * --------------------------------------------------------------------
31 */
32#ifndef __LIM_UTILS_H
33#define __LIM_UTILS_H
34
35#include "sirApi.h"
36#include "sirDebug.h"
37#include "cfgApi.h"
38
39#include "limTypes.h"
40#include "limScanResultUtils.h"
41#include "limTimerUtils.h"
42#include "limTrace.h"
43typedef enum
44{
45 ONE_BYTE = 1,
46 TWO_BYTE = 2
47} eSizeOfLenField;
48
49#define LIM_STA_ID_MASK 0x00FF
50#define LIM_AID_MASK 0xC000
51#define LIM_SPECTRUM_MANAGEMENT_BIT_MASK 0x0100
52
53// classifier ID is coded as 0-3: tsid, 4-5:direction
54#define LIM_MAKE_CLSID(tsid, dir) (((tsid) & 0x0F) | (((dir) & 0x03) << 4))
55
56#define LIM_SET_STA_BA_STATE(pSta, tid, newVal) \
57{\
58 pSta->baState = ((pSta->baState | (0x3 << tid*2)) & ((newVal << tid*2) | ~(0x3 << tid*2)));\
59}
60
61#define LIM_GET_STA_BA_STATE(pSta, tid, pCurVal)\
62{\
63 *pCurVal = (tLimBAState)(((pSta->baState >> tid*2) & 0x3));\
64}
65
66#if defined( FEATURE_WLAN_INTEGRATED_SOC )
67typedef struct sAddBaInfo
68{
69 tANI_U16 fBaEnable : 1;
70 tANI_U16 startingSeqNum: 12;
71 tANI_U16 reserved : 3;
72}tAddBaInfo, *tpAddBaInfo;
73
74typedef struct sAddBaCandidate
75{
76 tSirMacAddr staAddr;
77 tAddBaInfo baInfo[STACFG_MAX_TC];
78}tAddBaCandidate, *tpAddBaCandidate;
79#endif /* FEATURE_WLAN_INTEGRATED_SOC */
80
81// LIM utilility functions
82void limGetBssidFromPkt(tpAniSirGlobal, tANI_U8 *, tANI_U8 *, tANI_U32 *);
83char * limMlmStateStr(tLimMlmStates state);
84char * limSmeStateStr(tLimSmeStates state);
85char * limMsgStr(tANI_U32 msgType);
86char * limResultCodeStr(tSirResultCodes resultCode);
87char* limDot11ModeStr(tpAniSirGlobal pMac, tANI_U8 dot11Mode);
88char* limStaOpRateModeStr(tStaRateMode opRateMode);
89void limPrintMlmState(tpAniSirGlobal pMac, tANI_U16 logLevel, tLimMlmStates state);
90void limPrintSmeState(tpAniSirGlobal pMac, tANI_U16 logLevel, tLimSmeStates state);
91void limPrintMsgName(tpAniSirGlobal pMac, tANI_U16 logLevel, tANI_U32 msgType);
92void limPrintMsgInfo(tpAniSirGlobal pMac, tANI_U16 logLevel, tSirMsgQ *msg);
93char* limBssTypeStr(tSirBssType bssType);
94
95#if defined FEATURE_WLAN_CCX || defined WLAN_FEATURE_VOWIFI
96extern tSirRetStatus limSendSetMaxTxPowerReq ( tpAniSirGlobal pMac,
97 tPowerdBm txPower,
98 tpPESession pSessionEntry );
Jeff Johnson04dd8a82012-06-29 20:41:40 -070099extern tANI_U8 limGetMaxTxPower(tPowerdBm regMax, tPowerdBm apTxPower, tPowerdBm iniTxPower);
Jeff Johnson295189b2012-06-20 16:38:30 -0700100#endif
101
102tANI_U32 limPostMsgApiNoWait(tpAniSirGlobal, tSirMsgQ *);
103tANI_U8 limIsAddrBC(tSirMacAddr);
104tANI_U8 limIsGroupAddr(tSirMacAddr);
105
106// check for type of scan allowed
107tANI_U8 limActiveScanAllowed(tpAniSirGlobal, tANI_U8);
108
109// AID pool management functions
110void limInitAIDpool(tpAniSirGlobal,tpPESession);
111tANI_U16 limAssignAID(tpAniSirGlobal);
112
113void limEnableOverlap11gProtection(tpAniSirGlobal pMac, tpUpdateBeaconParams pBeaconParams, tpSirMacMgmtHdr pMh,tpPESession psessionEntry);
114void limUpdateOverlapStaParam(tpAniSirGlobal pMac, tSirMacAddr bssId, tpLimProtStaParams pStaParams);
115void limUpdateShortPreamble(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tpUpdateBeaconParams pBeaconParams, tpPESession psessionEntry);
116void limUpdateShortSlotTime(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tpUpdateBeaconParams pBeaconParams, tpPESession psessionEntry);
117
118/*
119 * The below 'product' check tobe removed if 'Association' is
120 * allowed in IBSS.
121 */
122void limReleaseAID(tpAniSirGlobal, tANI_U16);
123
124#if (WNI_POLARIS_FW_PRODUCT == AP)
125// LIM informs WSM that radar is detected
126void limDetectRadar(tpAniSirGlobal, tANI_U32 *);
127#endif
128
129#ifdef WLAN_SOFTAP_FEATURE
130void limDecideApProtection(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tpUpdateBeaconParams pBeaconParams,tpPESession);
131void
132limDecideApProtectionOnDelete(tpAniSirGlobal pMac,
133 tpDphHashNode pStaDs, tpUpdateBeaconParams pBeaconParams, tpPESession psessionEntry);
134#else
135void limDecideApProtection(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tpUpdateBeaconParams pBeaconParams);
136#endif
137
138extern tSirRetStatus limEnable11aProtection(tpAniSirGlobal pMac, tANI_U8 enable, tANI_U8 overlap, tpUpdateBeaconParams pBeaconParams,tpPESession);
139extern tSirRetStatus limEnable11gProtection(tpAniSirGlobal pMac, tANI_U8 enable, tANI_U8 overlap, tpUpdateBeaconParams pBeaconParams,tpPESession psessionEntry);
140extern tSirRetStatus limEnableHtProtectionFrom11g(tpAniSirGlobal pMac, tANI_U8 enable, tANI_U8 overlap, tpUpdateBeaconParams pBeaconParams,tpPESession psessionEntry);
141extern tSirRetStatus limEnableHT20Protection(tpAniSirGlobal pMac, tANI_U8 enable, tANI_U8 overlap, tpUpdateBeaconParams pBeaconParams,tpPESession sessionEntry);
142extern tSirRetStatus limEnableHTNonGfProtection(tpAniSirGlobal pMac, tANI_U8 enable, tANI_U8 overlap, tpUpdateBeaconParams pBeaconParams,tpPESession);
143extern tSirRetStatus limEnableHtRifsProtection(tpAniSirGlobal pMac, tANI_U8 enable, tANI_U8 overlap, tpUpdateBeaconParams pBeaconParams,tpPESession psessionEntry);
144extern tSirRetStatus limEnableHTLsigTxopProtection(tpAniSirGlobal pMac, tANI_U8 enable, tANI_U8 overlap, tpUpdateBeaconParams pBeaconParams,tpPESession);
145#ifdef WLAN_SOFTAP_FEATURE
146extern tSirRetStatus limEnableShortPreamble(tpAniSirGlobal pMac, tANI_U8 enable, tpUpdateBeaconParams pBeaconParams, tpPESession psessionEntry);
147#else
148extern tSirRetStatus limEnableShortPreamble(tpAniSirGlobal pMac, tANI_U8 enable, tpUpdateBeaconParams pBeaconParams);
149#endif
150extern tSirRetStatus limEnableHtOBSSProtection (tpAniSirGlobal pMac, tANI_U8 enable, tANI_U8 overlap, tpUpdateBeaconParams pBeaconParams, tpPESession);
151void limDecideStaProtection(tpAniSirGlobal pMac, tpSchBeaconStruct pBeaconStruct, tpUpdateBeaconParams pBeaconParams, tpPESession psessionEntry);
152void limDecideStaProtectionOnAssoc(tpAniSirGlobal pMac, tpSchBeaconStruct pBeaconStruct, tpPESession psessionEntry);
153void limUpdateStaRunTimeHTSwitchChnlParams(tpAniSirGlobal pMac, tDot11fIEHTInfo * pHTInfo, tANI_U8 bssIdx, tpPESession psessionEntry);
154// Print MAC address utility function
155void limPrintMacAddr(tpAniSirGlobal, tSirMacAddr, tANI_U8);
156
157
158
159// Deferred Message Queue read/write
160tANI_U8 limWriteDeferredMsgQ(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
161tSirMsgQ* limReadDeferredMsgQ(tpAniSirGlobal pMac);
162void limHandleDeferMsgError(tpAniSirGlobal pMac, tpSirMsgQ pLimMsg);
163
164// Deferred Message Queue Reset
165void limResetDeferredMsgQ(tpAniSirGlobal pMac);
166
167tSirRetStatus limSysProcessMmhMsgApi(tpAniSirGlobal, tSirMsgQ*, tANI_U8);
168
169#ifdef WLAN_SOFTAP_FEATURE
170void limHandleUpdateOlbcCache(tpAniSirGlobal pMac);
171#endif
172
173tANI_U8 limIsNullSsid( tSirMacSSid *pSsid );
174
175void limProcessAddtsRspTimeout(tpAniSirGlobal pMac, tANI_U32 param);
176
177// 11h Support
178#ifdef ANI_PRODUCT_TYPE_AP
179tANI_U32 computeChannelSwitchCount(tpAniSirGlobal, tANI_U32);
180#endif
181void limStopTxAndSwitchChannel(tpAniSirGlobal pMac, tANI_U8 sessionId);
182void limProcessChannelSwitchTimeout(tpAniSirGlobal);
183tSirRetStatus limStartChannelSwitch(tpAniSirGlobal pMac, tpPESession psessionEntry);
184void limUpdateChannelSwitch(tpAniSirGlobal, tpSirProbeRespBeacon, tpPESession psessionEntry);
185void limProcessQuietTimeout(tpAniSirGlobal);
186void limProcessQuietBssTimeout(tpAniSirGlobal);
187
188#ifdef WLAN_SOFTAP_FEATURE
189#if 0
190void limProcessWPSOverlapTimeout(tpAniSirGlobal pMac);
191#endif
192#endif
193
194void limStartQuietTimer(tpAniSirGlobal pMac, tANI_U8 sessionId);
195void limUpdateQuietIEFromBeacon(tpAniSirGlobal, tDot11fIEQuiet *, tpPESession);
196void limGetHtCbAdminState(tpAniSirGlobal pMac, tDot11fIEHTCaps htCaps, tANI_U8 * titanHtCaps);
197void limGetHtCbOpState(tpAniSirGlobal pMac, tDot11fIEHTInfo htInfo, tANI_U8 * titanHtCaps);
198void limSwitchPrimaryChannel(tpAniSirGlobal, tANI_U8,tpPESession);
199void limSwitchPrimarySecondaryChannel(tpAniSirGlobal, tANI_U8, tAniCBSecondaryMode);
200tAniBool limTriggerBackgroundScanDuringQuietBss(tpAniSirGlobal);
201void limUpdateStaRunTimeHTSwtichChnlParams(tpAniSirGlobal pMac, tDot11fIEHTInfo *pRcvdHTInfo, tANI_U8 bssIdx);
202void limUpdateStaRunTimeHTCapability(tpAniSirGlobal pMac, tDot11fIEHTCaps *pHTCaps);
203void limUpdateStaRunTimeHTInfo(struct sAniSirGlobal *pMac, tDot11fIEHTInfo *pRcvdHTInfo, tpPESession psessionEntry);
204void limCancelDot11hChannelSwitch(tpAniSirGlobal pMac, tpPESession psessionEntry);
205void limCancelDot11hQuiet(tpAniSirGlobal pMac, tpPESession psessionEntry);
206tAniBool limIsChannelValidForChannelSwitch(tpAniSirGlobal pMac, tANI_U8 channel);
207void limFrameTransmissionControl(tpAniSirGlobal pMac, tLimQuietTxMode type, tLimControlTx mode);
208tSirRetStatus limRestorePreChannelSwitchState(tpAniSirGlobal pMac, tpPESession psessionEntry);
209tSirRetStatus limRestorePreQuietState(tpAniSirGlobal pMac);
210
211void limPrepareFor11hChannelSwitch(tpAniSirGlobal pMac, tpPESession psessionEntry);
212void limSwitchChannelCback(tpAniSirGlobal pMac, eHalStatus status,
213 tANI_U32 *data, tpPESession psessionEntry);
214
215static inline tSirRFBand limGetRFBand(tANI_U8 channel)
216{
217 if ((channel >= SIR_11A_CHANNEL_BEGIN) &&
218 (channel <= SIR_11A_CHANNEL_END))
219 return SIR_BAND_5_GHZ;
220
221 if ((channel >= SIR_11B_CHANNEL_BEGIN) &&
222 (channel <= SIR_11B_CHANNEL_END))
223 return SIR_BAND_2_4_GHZ;
224
225 return SIR_BAND_UNKNOWN;
226}
227
228
229static inline tSirRetStatus
230limGetMgmtStaid(tpAniSirGlobal pMac, tANI_U16 *staid, tpPESession psessionEntry)
231{
232 if (psessionEntry->limSystemRole == eLIM_AP_ROLE)
233 *staid = 1;
234 else if (psessionEntry->limSystemRole == eLIM_STA_ROLE)
235 *staid = 0;
236 else
237 return eSIR_FAILURE;
238
239 return eSIR_SUCCESS;
240}
241
242static inline tANI_U8
243limIsSystemInSetMimopsState(tpAniSirGlobal pMac)
244{
245 if (pMac->lim.gLimMlmState == eLIM_MLM_WT_SET_MIMOPS_STATE)
246 return true;
247 return false;
248}
249
250static inline tANI_U8
251 isEnteringMimoPS(tSirMacHTMIMOPowerSaveState curState, tSirMacHTMIMOPowerSaveState newState)
252 {
253 if (curState == eSIR_HT_MIMO_PS_NO_LIMIT &&
254 (newState == eSIR_HT_MIMO_PS_DYNAMIC ||newState == eSIR_HT_MIMO_PS_STATIC))
255 return TRUE;
256 return FALSE;
257}
258
259/// ANI peer station count management and associated actions
260void limUtilCountStaAdd(tpAniSirGlobal pMac, tpDphHashNode pSta, tpPESession psessionEntry);
261void limUtilCountStaDel(tpAniSirGlobal pMac, tpDphHashNode pSta, tpPESession psessionEntry);
262
263#ifdef WLAN_SOFTAP_FEATURE
264tANI_U8 limGetHTCapability( tpAniSirGlobal, tANI_U32, tpPESession);
265#else
266tANI_U8 limGetHTCapability( tpAniSirGlobal, tANI_U32 );
267#endif
268void limTxComplete( tHalHandle hHal, void *pData );
269
270/**********Admit Control***************************************/
271
272//callback function for HAL to issue DelTS request to PE.
273//This function will be registered with HAL for callback when TSPEC inactivity timer fires.
274
275void limProcessDelTsInd(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
276tSirRetStatus limProcessHalIndMessages(tpAniSirGlobal pMac, tANI_U32 mesgId, void *mesgParam );
277tSirRetStatus limValidateDeltsReq(tpAniSirGlobal pMac, tpSirDeltsReq pDeltsReq, tSirMacAddr peerMacAddr,tpPESession psessionEntry);
278/**********************************************************/
279
280//callback function registration to HAL for any indication.
281void limRegisterHalIndCallBack(tpAniSirGlobal pMac);
282void limPktFree (
283 tpAniSirGlobal pMac,
284 eFrameType frmType,
285 tANI_U8 *pBD,
286 void *body);
287
288
289
290void limGetBDfromRxPacket(tpAniSirGlobal pMac, void *body, tANI_U32 **pBD);
291
292/**
293 * \brief Given a base(X) and power(Y), this API will return
294 * the result of base raised to power - (X ^ Y)
295 *
296 * \sa utilsPowerXY
297 *
298 * \param base Base value
299 *
300 * \param power Base raised to this Power value
301 *
302 * \return Result of X^Y
303 *
304 */
305static inline tANI_U32 utilsPowerXY( tANI_U16 base, tANI_U16 power )
306{
307tANI_U32 result = 1, i;
308
309 for( i = 0; i < power; i++ )
310 result *= base;
311
312 return result;
313}
314
315
316
317tSirRetStatus limPostMlmAddBAReq( tpAniSirGlobal pMac,
318 tpDphHashNode pStaDs,
319 tANI_U8 tid, tANI_U16 startingSeqNum,tpPESession psessionEntry);
320tSirRetStatus limPostMlmAddBARsp( tpAniSirGlobal pMac,
321 tSirMacAddr peerMacAddr,
322 tSirMacStatusCodes baStatusCode,
323 tANI_U8 baDialogToken,
324 tANI_U8 baTID,
325 tANI_U8 baPolicy,
326 tANI_U16 baBufferSize,
327 tANI_U16 baTimeout,
328 tpPESession psessionEntry);
329tSirRetStatus limPostMlmDelBAReq( tpAniSirGlobal pMac,
330 tpDphHashNode pSta,
331 tANI_U8 baDirection,
332 tANI_U8 baTID,
333 tSirMacReasonCodes baReasonCode ,
334 tpPESession psessionEntry);
335tSirRetStatus limPostMsgAddBAReq( tpAniSirGlobal pMac,
336 tpDphHashNode pSta,
337 tANI_U8 baDialogToken,
338 tANI_U8 baTID,
339 tANI_U8 baPolicy,
340 tANI_U16 baBufferSize,
341 tANI_U16 baTimeout,
342 tANI_U16 baSSN,
343 tANI_U8 baDirection,
344 tpPESession psessionEntry);
345tSirRetStatus limPostMsgDelBAInd( tpAniSirGlobal pMac,
346 tpDphHashNode pSta,
347 tANI_U8 baTID,
348 tANI_U8 baDirection,
349 tpPESession psessionEntry);
350
351tSirRetStatus limPostSMStateUpdate(tpAniSirGlobal pMac,
352 tANI_U16 StaIdx,
353 tSirMacHTMIMOPowerSaveState MIMOPSState);
354
355void limDeleteStaContext(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
356void limProcessAddBaInd(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
357void limDelAllBASessions(tpAniSirGlobal pMac);
358void limDeleteDialogueTokenList(tpAniSirGlobal pMac);
359tSirRetStatus limSearchAndDeleteDialogueToken(tpAniSirGlobal pMac, tANI_U8 token, tANI_U16 assocId, tANI_U16 tid);
360void limRessetScanChannelInfo(tpAniSirGlobal pMac);
361void limAddScanChannelInfo(tpAniSirGlobal pMac, tANI_U8 channelId);
362
363tANI_U8 limGetChannelFromBeacon(tpAniSirGlobal pMac, tpSchBeaconStruct pBeacon);
364tSirNwType limGetNwType(tpAniSirGlobal pMac, tANI_U8 channelNum, tANI_U32 type, tpSchBeaconStruct pBeacon);
365void limSetTspecUapsdMask(tpAniSirGlobal pMac, tSirMacTSInfo *pTsInfo, tANI_U32 action);
366void limHandleHeartBeatTimeout(tpAniSirGlobal pMac);
367//void limProcessBtampAddBssRsp(tpAniSirGlobal pMac,tpSirMsgQ pMsgQ,tpPESession peSession);
368void limProcessAddStaRsp(tpAniSirGlobal pMac,tpSirMsgQ pMsgQ);
369
370void limUpdateBeacon(tpAniSirGlobal pMac);
371
372void limProcessBtAmpApMlmAddStaRsp(tpAniSirGlobal pMac,tpSirMsgQ limMsgQ, tpPESession psessionEntry);
373void limProcessBtAmpApMlmDelBssRsp( tpAniSirGlobal pMac, tpSirMsgQ limMsgQ,tpPESession psessionEntry);
374
375void limProcessBtAmpApMlmDelStaRsp(tpAniSirGlobal pMac,tpSirMsgQ limMsgQ,tpPESession psessionEntry);
376tpPESession limIsIBSSSessionActive(tpAniSirGlobal pMac);
377tpPESession limIsApSessionActive(tpAniSirGlobal pMac);
378void limHandleHeartBeatFailureTimeout(tpAniSirGlobal pMac);
379
380void limProcessDelStaSelfRsp(tpAniSirGlobal pMac,tpSirMsgQ limMsgQ);
381void limProcessAddStaSelfRsp(tpAniSirGlobal pMac,tpSirMsgQ limMsgQ);
382v_U8_t* limGetIEPtr(tpAniSirGlobal pMac, v_U8_t *pIes, int length, v_U8_t eid,eSizeOfLenField size_of_len_field);
383
384tANI_U8 limUnmapChannel(tANI_U8 mapChannel);
385
386#define limGetWscIEPtr(pMac, ie, ie_len) \
387 limGetVendorIEOuiPtr(pMac, SIR_MAC_WSC_OUI, SIR_MAC_WSC_OUI_SIZE, ie, ie_len)
388
389#ifdef WLAN_FEATURE_P2P
390#define limGetP2pIEPtr(pMac, ie, ie_len) \
391 limGetVendorIEOuiPtr(pMac, SIR_MAC_P2P_OUI, SIR_MAC_P2P_OUI_SIZE, ie, ie_len)
392
393v_U8_t limGetNoaAttrStreamInMultP2pIes(tpAniSirGlobal pMac,v_U8_t* noaStream,v_U8_t noaLen,v_U8_t overFlowLen);
394v_U8_t limGetNoaAttrStream(tpAniSirGlobal pMac, v_U8_t*pNoaStream,tpPESession psessionEntry);
395
396v_U8_t limBuildP2pIe(tpAniSirGlobal pMac, tANI_U8 *ie, tANI_U8 *data, tANI_U8 ie_len);
397#endif
398v_U8_t* limGetVendorIEOuiPtr(tpAniSirGlobal pMac, tANI_U8 *oui, tANI_U8 oui_size, tANI_U8 *ie, tANI_U16 ie_len);
399tANI_BOOLEAN limIsconnectedOnDFSChannel(tANI_U8 currentChannel);
400tANI_U8 limGetCurrentOperatingChannel(tpAniSirGlobal pMac);
401
402#ifdef FEATURE_WLAN_DIAG_SUPPORT
403
404typedef enum
405{
406 WLAN_PE_DIAG_SCAN_REQ_EVENT = 0,
407 WLAN_PE_DIAG_SCAN_ABORT_IND_EVENT,
408 WLAN_PE_DIAG_SCAN_RSP_EVENT,
409 WLAN_PE_DIAG_JOIN_REQ_EVENT,
410 WLAN_PE_DIAG_JOIN_RSP_EVENT,
411 WLAN_PE_DIAG_SETCONTEXT_REQ_EVENT,
412 WLAN_PE_DIAG_SETCONTEXT_RSP_EVENT,
413 WLAN_PE_DIAG_REASSOC_REQ_EVENT,
414 WLAN_PE_DIAG_REASSOC_RSP_EVENT,
415 WLAN_PE_DIAG_AUTH_REQ_EVENT,
416 WLAN_PE_DIAG_AUTH_RSP_EVENT,
417 WLAN_PE_DIAG_DISASSOC_REQ_EVENT,
418 WLAN_PE_DIAG_DISASSOC_RSP_EVENT,
419 WLAN_PE_DIAG_DISASSOC_IND_EVENT,
420 WLAN_PE_DIAG_DISASSOC_CNF_EVENT,
421 WLAN_PE_DIAG_DEAUTH_REQ_EVENT,
422 WLAN_PE_DIAG_DEAUTH_RSP_EVENT,
423 WLAN_PE_DIAG_DEAUTH_IND_EVENT,
424 WLAN_PE_DIAG_START_BSS_REQ_EVENT,
425 WLAN_PE_DIAG_START_BSS_RSP_EVENT,
426 WLAN_PE_DIAG_AUTH_IND_EVENT,
427 WLAN_PE_DIAG_ASSOC_IND_EVENT,
428 WLAN_PE_DIAG_ASSOC_CNF_EVENT,
429 WLAN_PE_DIAG_REASSOC_IND_EVENT,
430 WLAN_PE_DIAG_SWITCH_CHL_REQ_EVENT,
431 WLAN_PE_DIAG_SWITCH_CHL_RSP_EVENT,
432 WLAN_PE_DIAG_STOP_BSS_REQ_EVENT,
433 WLAN_PE_DIAG_STOP_BSS_RSP_EVENT,
434 WLAN_PE_DIAG_DEAUTH_CNF_EVENT,
435 WLAN_PE_DIAG_ADDTS_REQ_EVENT,
436 WLAN_PE_DIAG_ADDTS_RSP_EVENT,
437 WLAN_PE_DIAG_DELTS_REQ_EVENT,
438 WLAN_PE_DIAG_DELTS_RSP_EVENT,
439 WLAN_PE_DIAG_DELTS_IND_EVENT,
440 WLAN_PE_DIAG_ENTER_BMPS_REQ_EVENT,
441 WLAN_PE_DIAG_ENTER_BMPS_RSP_EVENT,
442 WLAN_PE_DIAG_EXIT_BMPS_REQ_EVENT,
443 WLAN_PE_DIAG_EXIT_BMPS_RSP_EVENT,
444 WLAN_PE_DIAG_EXIT_BMPS_IND_EVENT,
445 WLAN_PE_DIAG_ENTER_IMPS_REQ_EVENT,
446 WLAN_PE_DIAG_ENTER_IMPS_RSP_EVENT,
447 WLAN_PE_DIAG_EXIT_IMPS_REQ_EVENT,
448 WLAN_PE_DIAG_EXIT_IMPS_RSP_EVENT,
449 WLAN_PE_DIAG_ENTER_UAPSD_REQ_EVENT,
450 WLAN_PE_DIAG_ENTER_UAPSD_RSP_EVENT,
451 WLAN_PE_DIAG_EXIT_UAPSD_REQ_EVENT,
452 WLAN_PE_DIAG_EXIT_UAPSD_RSP_EVENT,
453 WLAN_PE_DIAG_WOWL_ADD_BCAST_PTRN_EVENT,
454 WLAN_PE_DIAG_WOWL_DEL_BCAST_PTRN_EVENT,
455 WLAN_PE_DIAG_ENTER_WOWL_REQ_EVENT,
456 WLAN_PE_DIAG_ENTER_WOWL_RSP_EVENT,
457 WLAN_PE_DIAG_EXIT_WOWL_REQ_EVENT,
458 WLAN_PE_DIAG_EXIT_WOWL_RSP_EVENT,
459 WLAN_PE_DIAG_HAL_ADDBA_REQ_EVENT,
460 WLAN_PE_DIAG_HAL_ADDBA_RSP_EVENT,
461 WLAN_PE_DIAG_HAL_DELBA_IND_EVENT,
462}WLAN_PE_DIAG_EVENT_TYPE;
463
464void limDiagEventReport(tpAniSirGlobal pMac, tANI_U16 eventType, tpPESession pSessionEntry, tANI_U16 status, tANI_U16 reasonCode);
465#endif /* FEATURE_WLAN_DIAG_SUPPORT */
466
467void peSetResumeChannel(tpAniSirGlobal pMac, tANI_U16 channel, tANI_U8 cbState);
468/*--------------------------------------------------------------------------
469
470 \brief peGetResumeChannel() - Returns the channel number for scanning, from a valid session.
471
472 This function itrates the session Table and returns the channel number from first valid session
473 if no sessions are valid it returns 0
474
475 \param pMac - pointer to global adapter context
476 \return - channel to scan from valid session else zero.
477
478 \sa
479
480 --------------------------------------------------------------------------*/
481tANI_U8 peGetResumeChannel(tpAniSirGlobal pMac);
482
483
484#endif /* __LIM_UTILS_H */