blob: c8dd8bd6f38f6306167ce79b9c7850b1c08ad01d [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);
Jeff Johnson295189b2012-06-20 16:38:30 -0700196void limSwitchPrimaryChannel(tpAniSirGlobal, tANI_U8,tpPESession);
Jeff Johnsone7245742012-09-05 17:12:55 -0700197void limSwitchPrimarySecondaryChannel(tpAniSirGlobal, tpPESession, tANI_U8, ePhyChanBondState);
Jeff Johnson295189b2012-06-20 16:38:30 -0700198tAniBool limTriggerBackgroundScanDuringQuietBss(tpAniSirGlobal);
199void limUpdateStaRunTimeHTSwtichChnlParams(tpAniSirGlobal pMac, tDot11fIEHTInfo *pRcvdHTInfo, tANI_U8 bssIdx);
200void limUpdateStaRunTimeHTCapability(tpAniSirGlobal pMac, tDot11fIEHTCaps *pHTCaps);
201void limUpdateStaRunTimeHTInfo(struct sAniSirGlobal *pMac, tDot11fIEHTInfo *pRcvdHTInfo, tpPESession psessionEntry);
202void limCancelDot11hChannelSwitch(tpAniSirGlobal pMac, tpPESession psessionEntry);
203void limCancelDot11hQuiet(tpAniSirGlobal pMac, tpPESession psessionEntry);
204tAniBool limIsChannelValidForChannelSwitch(tpAniSirGlobal pMac, tANI_U8 channel);
205void limFrameTransmissionControl(tpAniSirGlobal pMac, tLimQuietTxMode type, tLimControlTx mode);
206tSirRetStatus limRestorePreChannelSwitchState(tpAniSirGlobal pMac, tpPESession psessionEntry);
Jeff Johnsone7245742012-09-05 17:12:55 -0700207tSirRetStatus limRestorePreQuietState(tpAniSirGlobal pMac, tpPESession psessionEntry);
Jeff Johnson295189b2012-06-20 16:38:30 -0700208
209void limPrepareFor11hChannelSwitch(tpAniSirGlobal pMac, tpPESession psessionEntry);
210void limSwitchChannelCback(tpAniSirGlobal pMac, eHalStatus status,
211 tANI_U32 *data, tpPESession psessionEntry);
212
213static inline tSirRFBand limGetRFBand(tANI_U8 channel)
214{
215 if ((channel >= SIR_11A_CHANNEL_BEGIN) &&
216 (channel <= SIR_11A_CHANNEL_END))
217 return SIR_BAND_5_GHZ;
218
219 if ((channel >= SIR_11B_CHANNEL_BEGIN) &&
220 (channel <= SIR_11B_CHANNEL_END))
221 return SIR_BAND_2_4_GHZ;
222
223 return SIR_BAND_UNKNOWN;
224}
225
226
227static inline tSirRetStatus
228limGetMgmtStaid(tpAniSirGlobal pMac, tANI_U16 *staid, tpPESession psessionEntry)
229{
230 if (psessionEntry->limSystemRole == eLIM_AP_ROLE)
231 *staid = 1;
232 else if (psessionEntry->limSystemRole == eLIM_STA_ROLE)
233 *staid = 0;
234 else
235 return eSIR_FAILURE;
236
237 return eSIR_SUCCESS;
238}
239
240static inline tANI_U8
241limIsSystemInSetMimopsState(tpAniSirGlobal pMac)
242{
243 if (pMac->lim.gLimMlmState == eLIM_MLM_WT_SET_MIMOPS_STATE)
244 return true;
245 return false;
246}
247
248static inline tANI_U8
249 isEnteringMimoPS(tSirMacHTMIMOPowerSaveState curState, tSirMacHTMIMOPowerSaveState newState)
250 {
251 if (curState == eSIR_HT_MIMO_PS_NO_LIMIT &&
252 (newState == eSIR_HT_MIMO_PS_DYNAMIC ||newState == eSIR_HT_MIMO_PS_STATIC))
253 return TRUE;
254 return FALSE;
255}
256
257/// ANI peer station count management and associated actions
258void limUtilCountStaAdd(tpAniSirGlobal pMac, tpDphHashNode pSta, tpPESession psessionEntry);
259void limUtilCountStaDel(tpAniSirGlobal pMac, tpDphHashNode pSta, tpPESession psessionEntry);
260
261#ifdef WLAN_SOFTAP_FEATURE
262tANI_U8 limGetHTCapability( tpAniSirGlobal, tANI_U32, tpPESession);
263#else
264tANI_U8 limGetHTCapability( tpAniSirGlobal, tANI_U32 );
265#endif
266void limTxComplete( tHalHandle hHal, void *pData );
267
268/**********Admit Control***************************************/
269
270//callback function for HAL to issue DelTS request to PE.
271//This function will be registered with HAL for callback when TSPEC inactivity timer fires.
272
273void limProcessDelTsInd(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
274tSirRetStatus limProcessHalIndMessages(tpAniSirGlobal pMac, tANI_U32 mesgId, void *mesgParam );
275tSirRetStatus limValidateDeltsReq(tpAniSirGlobal pMac, tpSirDeltsReq pDeltsReq, tSirMacAddr peerMacAddr,tpPESession psessionEntry);
276/**********************************************************/
277
278//callback function registration to HAL for any indication.
279void limRegisterHalIndCallBack(tpAniSirGlobal pMac);
280void limPktFree (
281 tpAniSirGlobal pMac,
282 eFrameType frmType,
283 tANI_U8 *pBD,
284 void *body);
285
286
287
288void limGetBDfromRxPacket(tpAniSirGlobal pMac, void *body, tANI_U32 **pBD);
289
290/**
291 * \brief Given a base(X) and power(Y), this API will return
292 * the result of base raised to power - (X ^ Y)
293 *
294 * \sa utilsPowerXY
295 *
296 * \param base Base value
297 *
298 * \param power Base raised to this Power value
299 *
300 * \return Result of X^Y
301 *
302 */
303static inline tANI_U32 utilsPowerXY( tANI_U16 base, tANI_U16 power )
304{
305tANI_U32 result = 1, i;
306
307 for( i = 0; i < power; i++ )
308 result *= base;
309
310 return result;
311}
312
313
314
315tSirRetStatus limPostMlmAddBAReq( tpAniSirGlobal pMac,
316 tpDphHashNode pStaDs,
317 tANI_U8 tid, tANI_U16 startingSeqNum,tpPESession psessionEntry);
318tSirRetStatus limPostMlmAddBARsp( tpAniSirGlobal pMac,
319 tSirMacAddr peerMacAddr,
320 tSirMacStatusCodes baStatusCode,
321 tANI_U8 baDialogToken,
322 tANI_U8 baTID,
323 tANI_U8 baPolicy,
324 tANI_U16 baBufferSize,
325 tANI_U16 baTimeout,
326 tpPESession psessionEntry);
327tSirRetStatus limPostMlmDelBAReq( tpAniSirGlobal pMac,
328 tpDphHashNode pSta,
329 tANI_U8 baDirection,
330 tANI_U8 baTID,
331 tSirMacReasonCodes baReasonCode ,
332 tpPESession psessionEntry);
333tSirRetStatus limPostMsgAddBAReq( tpAniSirGlobal pMac,
334 tpDphHashNode pSta,
335 tANI_U8 baDialogToken,
336 tANI_U8 baTID,
337 tANI_U8 baPolicy,
338 tANI_U16 baBufferSize,
339 tANI_U16 baTimeout,
340 tANI_U16 baSSN,
341 tANI_U8 baDirection,
342 tpPESession psessionEntry);
343tSirRetStatus limPostMsgDelBAInd( tpAniSirGlobal pMac,
344 tpDphHashNode pSta,
345 tANI_U8 baTID,
346 tANI_U8 baDirection,
347 tpPESession psessionEntry);
348
349tSirRetStatus limPostSMStateUpdate(tpAniSirGlobal pMac,
350 tANI_U16 StaIdx,
351 tSirMacHTMIMOPowerSaveState MIMOPSState);
352
353void limDeleteStaContext(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
354void limProcessAddBaInd(tpAniSirGlobal pMac, tpSirMsgQ limMsg);
355void limDelAllBASessions(tpAniSirGlobal pMac);
356void limDeleteDialogueTokenList(tpAniSirGlobal pMac);
357tSirRetStatus limSearchAndDeleteDialogueToken(tpAniSirGlobal pMac, tANI_U8 token, tANI_U16 assocId, tANI_U16 tid);
358void limRessetScanChannelInfo(tpAniSirGlobal pMac);
359void limAddScanChannelInfo(tpAniSirGlobal pMac, tANI_U8 channelId);
360
361tANI_U8 limGetChannelFromBeacon(tpAniSirGlobal pMac, tpSchBeaconStruct pBeacon);
362tSirNwType limGetNwType(tpAniSirGlobal pMac, tANI_U8 channelNum, tANI_U32 type, tpSchBeaconStruct pBeacon);
363void limSetTspecUapsdMask(tpAniSirGlobal pMac, tSirMacTSInfo *pTsInfo, tANI_U32 action);
364void limHandleHeartBeatTimeout(tpAniSirGlobal pMac);
365//void limProcessBtampAddBssRsp(tpAniSirGlobal pMac,tpSirMsgQ pMsgQ,tpPESession peSession);
366void limProcessAddStaRsp(tpAniSirGlobal pMac,tpSirMsgQ pMsgQ);
367
368void limUpdateBeacon(tpAniSirGlobal pMac);
369
370void limProcessBtAmpApMlmAddStaRsp(tpAniSirGlobal pMac,tpSirMsgQ limMsgQ, tpPESession psessionEntry);
371void limProcessBtAmpApMlmDelBssRsp( tpAniSirGlobal pMac, tpSirMsgQ limMsgQ,tpPESession psessionEntry);
372
373void limProcessBtAmpApMlmDelStaRsp(tpAniSirGlobal pMac,tpSirMsgQ limMsgQ,tpPESession psessionEntry);
374tpPESession limIsIBSSSessionActive(tpAniSirGlobal pMac);
375tpPESession limIsApSessionActive(tpAniSirGlobal pMac);
376void limHandleHeartBeatFailureTimeout(tpAniSirGlobal pMac);
377
378void limProcessDelStaSelfRsp(tpAniSirGlobal pMac,tpSirMsgQ limMsgQ);
379void limProcessAddStaSelfRsp(tpAniSirGlobal pMac,tpSirMsgQ limMsgQ);
380v_U8_t* limGetIEPtr(tpAniSirGlobal pMac, v_U8_t *pIes, int length, v_U8_t eid,eSizeOfLenField size_of_len_field);
381
382tANI_U8 limUnmapChannel(tANI_U8 mapChannel);
383
384#define limGetWscIEPtr(pMac, ie, ie_len) \
385 limGetVendorIEOuiPtr(pMac, SIR_MAC_WSC_OUI, SIR_MAC_WSC_OUI_SIZE, ie, ie_len)
386
387#ifdef WLAN_FEATURE_P2P
388#define limGetP2pIEPtr(pMac, ie, ie_len) \
389 limGetVendorIEOuiPtr(pMac, SIR_MAC_P2P_OUI, SIR_MAC_P2P_OUI_SIZE, ie, ie_len)
390
391v_U8_t limGetNoaAttrStreamInMultP2pIes(tpAniSirGlobal pMac,v_U8_t* noaStream,v_U8_t noaLen,v_U8_t overFlowLen);
392v_U8_t limGetNoaAttrStream(tpAniSirGlobal pMac, v_U8_t*pNoaStream,tpPESession psessionEntry);
393
394v_U8_t limBuildP2pIe(tpAniSirGlobal pMac, tANI_U8 *ie, tANI_U8 *data, tANI_U8 ie_len);
395#endif
396v_U8_t* limGetVendorIEOuiPtr(tpAniSirGlobal pMac, tANI_U8 *oui, tANI_U8 oui_size, tANI_U8 *ie, tANI_U16 ie_len);
397tANI_BOOLEAN limIsconnectedOnDFSChannel(tANI_U8 currentChannel);
398tANI_U8 limGetCurrentOperatingChannel(tpAniSirGlobal pMac);
399
400#ifdef FEATURE_WLAN_DIAG_SUPPORT
401
402typedef enum
403{
404 WLAN_PE_DIAG_SCAN_REQ_EVENT = 0,
405 WLAN_PE_DIAG_SCAN_ABORT_IND_EVENT,
406 WLAN_PE_DIAG_SCAN_RSP_EVENT,
407 WLAN_PE_DIAG_JOIN_REQ_EVENT,
408 WLAN_PE_DIAG_JOIN_RSP_EVENT,
409 WLAN_PE_DIAG_SETCONTEXT_REQ_EVENT,
410 WLAN_PE_DIAG_SETCONTEXT_RSP_EVENT,
411 WLAN_PE_DIAG_REASSOC_REQ_EVENT,
412 WLAN_PE_DIAG_REASSOC_RSP_EVENT,
413 WLAN_PE_DIAG_AUTH_REQ_EVENT,
414 WLAN_PE_DIAG_AUTH_RSP_EVENT,
415 WLAN_PE_DIAG_DISASSOC_REQ_EVENT,
416 WLAN_PE_DIAG_DISASSOC_RSP_EVENT,
417 WLAN_PE_DIAG_DISASSOC_IND_EVENT,
418 WLAN_PE_DIAG_DISASSOC_CNF_EVENT,
419 WLAN_PE_DIAG_DEAUTH_REQ_EVENT,
420 WLAN_PE_DIAG_DEAUTH_RSP_EVENT,
421 WLAN_PE_DIAG_DEAUTH_IND_EVENT,
422 WLAN_PE_DIAG_START_BSS_REQ_EVENT,
423 WLAN_PE_DIAG_START_BSS_RSP_EVENT,
424 WLAN_PE_DIAG_AUTH_IND_EVENT,
425 WLAN_PE_DIAG_ASSOC_IND_EVENT,
426 WLAN_PE_DIAG_ASSOC_CNF_EVENT,
427 WLAN_PE_DIAG_REASSOC_IND_EVENT,
428 WLAN_PE_DIAG_SWITCH_CHL_REQ_EVENT,
429 WLAN_PE_DIAG_SWITCH_CHL_RSP_EVENT,
430 WLAN_PE_DIAG_STOP_BSS_REQ_EVENT,
431 WLAN_PE_DIAG_STOP_BSS_RSP_EVENT,
432 WLAN_PE_DIAG_DEAUTH_CNF_EVENT,
433 WLAN_PE_DIAG_ADDTS_REQ_EVENT,
434 WLAN_PE_DIAG_ADDTS_RSP_EVENT,
435 WLAN_PE_DIAG_DELTS_REQ_EVENT,
436 WLAN_PE_DIAG_DELTS_RSP_EVENT,
437 WLAN_PE_DIAG_DELTS_IND_EVENT,
438 WLAN_PE_DIAG_ENTER_BMPS_REQ_EVENT,
439 WLAN_PE_DIAG_ENTER_BMPS_RSP_EVENT,
440 WLAN_PE_DIAG_EXIT_BMPS_REQ_EVENT,
441 WLAN_PE_DIAG_EXIT_BMPS_RSP_EVENT,
442 WLAN_PE_DIAG_EXIT_BMPS_IND_EVENT,
443 WLAN_PE_DIAG_ENTER_IMPS_REQ_EVENT,
444 WLAN_PE_DIAG_ENTER_IMPS_RSP_EVENT,
445 WLAN_PE_DIAG_EXIT_IMPS_REQ_EVENT,
446 WLAN_PE_DIAG_EXIT_IMPS_RSP_EVENT,
447 WLAN_PE_DIAG_ENTER_UAPSD_REQ_EVENT,
448 WLAN_PE_DIAG_ENTER_UAPSD_RSP_EVENT,
449 WLAN_PE_DIAG_EXIT_UAPSD_REQ_EVENT,
450 WLAN_PE_DIAG_EXIT_UAPSD_RSP_EVENT,
451 WLAN_PE_DIAG_WOWL_ADD_BCAST_PTRN_EVENT,
452 WLAN_PE_DIAG_WOWL_DEL_BCAST_PTRN_EVENT,
453 WLAN_PE_DIAG_ENTER_WOWL_REQ_EVENT,
454 WLAN_PE_DIAG_ENTER_WOWL_RSP_EVENT,
455 WLAN_PE_DIAG_EXIT_WOWL_REQ_EVENT,
456 WLAN_PE_DIAG_EXIT_WOWL_RSP_EVENT,
457 WLAN_PE_DIAG_HAL_ADDBA_REQ_EVENT,
458 WLAN_PE_DIAG_HAL_ADDBA_RSP_EVENT,
459 WLAN_PE_DIAG_HAL_DELBA_IND_EVENT,
460}WLAN_PE_DIAG_EVENT_TYPE;
461
462void limDiagEventReport(tpAniSirGlobal pMac, tANI_U16 eventType, tpPESession pSessionEntry, tANI_U16 status, tANI_U16 reasonCode);
463#endif /* FEATURE_WLAN_DIAG_SUPPORT */
464
Jeff Johnsone7245742012-09-05 17:12:55 -0700465void peSetResumeChannel(tpAniSirGlobal pMac, tANI_U16 channel, ePhyChanBondState cbState);
Jeff Johnson295189b2012-06-20 16:38:30 -0700466/*--------------------------------------------------------------------------
467
468 \brief peGetResumeChannel() - Returns the channel number for scanning, from a valid session.
469
Jeff Johnsone7245742012-09-05 17:12:55 -0700470 This function returns the channel to resume to during link resume. channel id of 0 means HAL will
471 resume to previous channel before link suspend
Jeff Johnson295189b2012-06-20 16:38:30 -0700472
473 \param pMac - pointer to global adapter context
474 \return - channel to scan from valid session else zero.
475
476 \sa
477
478 --------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -0700479void peGetResumeChannel(tpAniSirGlobal pMac, tANI_U8* resumeChannel, ePhyChanBondState* resumePhyCbState);
Jeff Johnson295189b2012-06-20 16:38:30 -0700480
481#endif /* __LIM_UTILS_H */