blob: 1cd94d07de4623c3a03924ad138c3dc6dacc3f31 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. 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/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
Jeff Johnson295189b2012-06-20 16:38:30 -070041/*
42 * Airgo Networks, Inc proprietary. All rights reserved
43 * aniGlobal.h: MAC Modules Adapter Definitions.
44 * Author: V. K. Kandarpa
45 * Date: 10/25/2002
46 *
47 * History:-
48 * Date: 04/08/2008 Modified by: Santosh Mandiganal
49 * Modification Information: Added the logDump.h header file and defined the
50 * dumpTablecurrentId, dumpTableEntry.
51 * --------------------------------------------------------------------------
52 *
53 */
54
55#ifndef _ANIGLOBAL_H
56#define _ANIGLOBAL_H
57
58// Take care to avoid redefinition of this type, if it is
59// already defined in "halWmmApi.h"
60#if !defined(_HALMAC_WMM_API_H)
61typedef struct sAniSirGlobal *tpAniSirGlobal;
62#endif
63
64#include "halTypes.h"
65#include "sirCommon.h"
66#include "aniSystemDefs.h"
67#ifndef ANI_OS_TYPE_OSX
68#include "sysDef.h"
69#endif
70#include "dphGlobal.h"
71#include "limGlobal.h"
72#include "pmmGlobal.h"
73#include "schGlobal.h"
74#include "sysGlobal.h"
75#include "cfgGlobal.h"
76#include "utilsGlobal.h"
77#include "sirApi.h"
78
79#ifdef FEATURE_WLAN_NON_INTEGRATED_SOC
80#include "halGlobal.h"
81#include "halDataStruct.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070082#include "pttModule.h"
83#endif
84
85#ifdef FEATURE_WLAN_INTEGRATED_SOC
86#include "wlan_qct_hal.h"
87#endif
88
89#ifdef ANI_PRODUCT_TYPE_CLIENT
90#include "pmc.h"
91#endif
92
93#include "csrApi.h"
94#ifdef WLAN_FEATURE_VOWIFI_11R
95#include "sme_FTApi.h"
96#endif
97#include "csrSupport.h"
98#include "smeInternal.h"
99#include "ccmApi.h"
100#include "btcApi.h"
101#include "csrInternal.h"
102
Jeff Johnsone7245742012-09-05 17:12:55 -0700103#ifdef FEATURE_OEM_DATA_SUPPORT
104#include "oemDataInternal.h"
105#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700106
107#if defined WLAN_FEATURE_VOWIFI
108#include "smeRrmInternal.h"
109#include "rrmGlobal.h"
110#endif
111#if defined FEATURE_WLAN_CCX
112#include "ccxApi.h"
113#include "ccxGlobal.h"
114#endif
115#ifdef WLAN_FEATURE_P2P
116#include "p2p_Api.h"
117#endif
118
119#if defined WLAN_FEATURE_VOWIFI_11R
120#include <limFTDefs.h>
121#endif
122
123
124#ifdef ANI_DVT_DEBUG
125#include "dvtModule.h"
126#endif
127
128// New HAL API interface defs.
129#include "logDump.h"
130
131#ifdef FEATURE_WLAN_INTEGRATED_SOC
132//Check if this definition can actually move here from halInternal.h even for Volans. In that case
133//this featurization can be removed.
134#define PMAC_STRUCT( _hHal ) ( (tpAniSirGlobal)_hHal )
135#endif
136
137#define ANI_DRIVER_TYPE(pMac) (((tpAniSirGlobal)(pMac))->gDriverType)
138// -------------------------------------------------------------------
139// Bss Qos Caps bit map definition
140#define LIM_BSS_CAPS_OFFSET_HCF 0
141#define LIM_BSS_CAPS_OFFSET_WME 1
142#define LIM_BSS_CAPS_OFFSET_WSM 2
143
144#define LIM_BSS_CAPS_HCF (1 << LIM_BSS_CAPS_OFFSET_HCF)
145#define LIM_BSS_CAPS_WME (1 << LIM_BSS_CAPS_OFFSET_WME)
146#define LIM_BSS_CAPS_WSM (1 << LIM_BSS_CAPS_OFFSET_WSM)
147
148// cap should be one of HCF/WME/WSM
149#define LIM_BSS_CAPS_GET(cap, val) (((val) & (LIM_BSS_CAPS_ ## cap)) >> LIM_BSS_CAPS_OFFSET_ ## cap)
Madan Mohan Koyyalamudia53c4dc2012-11-13 10:35:42 -0800150#define LIM_BSS_CAPS_SET(cap, val) ((val) |= (LIM_BSS_CAPS_ ## cap ))
151#define LIM_BSS_CAPS_CLR(cap, val) ((val) &= (~ (LIM_BSS_CAPS_ ## cap)))
Jeff Johnson295189b2012-06-20 16:38:30 -0700152
153// 40 beacons per heart beat interval is the default + 1 to count the rest
154#define MAX_NO_BEACONS_PER_HEART_BEAT_INTERVAL 41
155
156/* max number of legacy bssid we can store during scan on one channel */
157#define MAX_NUM_LEGACY_BSSID_PER_CHANNEL 10
158
159#if defined WLAN_FEATURE_P2P
160#define P2P_WILDCARD_SSID "DIRECT-" //TODO Put it in proper place;
161#define P2P_WILDCARD_SSID_LEN 7
162
163#ifdef WLAN_FEATURE_CONCURRENT_P2P
164#define MAX_NO_OF_P2P_SESSIONS 5
165#endif //WLAN_FEATURE_CONCURRENT_P2P
166#endif //WLAN_FEATURE_P2P
167
Srinivas Girigowdade697412013-02-14 16:31:48 -0800168#define SPACE_ASCII_VALUE 32
169
Jeff Johnson295189b2012-06-20 16:38:30 -0700170// -------------------------------------------------------------------
171// Change channel generic scheme
172typedef void (*CHANGE_CHANNEL_CALLBACK)(tpAniSirGlobal pMac, eHalStatus status, tANI_U32 *data,
173 tpPESession psessionEntry);
174
175/// LIM global definitions
176typedef struct sAniSirLimIbss
177{
178 void *pHdr;
179 void *pBeacon;
180} tAniSirLimIbss;
181
182typedef struct sDialogueToken
183{
184 //bytes 0-3
185 tANI_U16 assocId;
186 tANI_U8 token;
187 tANI_U8 rsvd1;
188 //Bytes 4-7
189 tANI_U16 tid;
190 tANI_U8 rsvd2[2];
191
192 struct sDialogueToken* next;
193}tDialogueToken, *tpDialogueToken;
194
195typedef struct sLimTimers
196{
197 //TIMERS IN LIM ARE NOT SUPPOSED TO BE ZEROED OUT DURING RESET.
198 //DURING limInitialize DONOT ZERO THEM OUT.
199
200//STA SPECIFIC TIMERS
201#if defined(ANI_PRODUCT_TYPE_CLIENT) || defined(ANI_AP_CLIENT_SDK)
202 // Periodic background scan timer
203 TX_TIMER gLimBackgroundScanTimer;
204#endif
205
206 TX_TIMER gLimPreAuthClnupTimer;
207 //TX_TIMER gLimAuthResponseTimer[HAL_NUM_STA];
208
209 // Association related timers
210 TX_TIMER gLimAssocFailureTimer;
211 TX_TIMER gLimReassocFailureTimer;
212
213
214 /// Heartbeat timer on STA
215 TX_TIMER gLimHeartBeatTimer;
216
217 /// Wait for Probe after Heartbeat failure timer on STA
218 TX_TIMER gLimProbeAfterHBTimer;
219
220
221 // Authentication related timers
222 TX_TIMER gLimAuthFailureTimer;
223
224 // Join Failure timeout on STA
225 TX_TIMER gLimJoinFailureTimer;
226
227 // Keepalive timer
228 TX_TIMER gLimKeepaliveTimer;
229
230 // Scan related timers
231 TX_TIMER gLimMinChannelTimer;
232 TX_TIMER gLimMaxChannelTimer;
233 TX_TIMER gLimPeriodicProbeReqTimer;
234
235 // CNF_WAIT timer
236 TX_TIMER *gpLimCnfWaitTimer;
237
238 // Send Disassociate frame threshold parameters
239 TX_TIMER gLimSendDisassocFrameThresholdTimer;
240
241 TX_TIMER gLimAddtsRspTimer; // max wait for a response
242
243 // Update OLBC Cache Timer
244 TX_TIMER gLimUpdateOlbcCacheTimer;
245
246 TX_TIMER gLimChannelSwitchTimer;
247 // This TIMER is started on the STA, as indicated by the
248 // AP in its Quiet BSS IE, for the specified interval
249 TX_TIMER gLimQuietTimer;
250 // This TIMER is started on the AP, prior to the AP going
251 // into LEARN mode
252 // This TIMER is started on the STA, for the specified
253 // quiet duration
254 TX_TIMER gLimQuietBssTimer;
255
256#ifdef WLAN_FEATURE_VOWIFI_11R
257 TX_TIMER gLimFTPreAuthRspTimer;
258#endif
259
260#ifdef FEATURE_WLAN_CCX
261 TX_TIMER gLimCcxTsmTimer;
262#endif
263#ifdef WLAN_FEATURE_P2P
264 TX_TIMER gLimRemainOnChannelTimer;
265#endif
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800266#ifdef FEATURE_WLAN_TDLS_INTERNAL
267 TX_TIMER gLimTdlsDisRspWaitTimer;
268 TX_TIMER gLimTdlsLinkSetupRspTimeouTimer;
269 TX_TIMER gLimTdlsLinkSetupCnfTimeoutTimer;
270#endif
271
Madan Mohan Koyyalamudi9aff9ff2012-11-29 11:27:25 -0800272 TX_TIMER gLimPeriodicJoinProbeReqTimer;
Madan Mohan Koyyalamudi521ff192012-11-15 17:13:08 -0800273 TX_TIMER gLimDisassocAckTimer;
274 TX_TIMER gLimDeauthAckTimer;
Viral Modid86bde22012-12-10 13:09:21 -0800275#ifdef WLAN_FEATURE_P2P
276 // This timer is started when single shot NOA insert msg is sent to FW for scan in P2P GO mode
277 TX_TIMER gLimP2pSingleShotNoaInsertTimer;
278#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700279//********************TIMER SECTION ENDS**************************************************
280// ALL THE FIELDS BELOW THIS CAN BE ZEROED OUT in limInitialize
281//****************************************************************************************
282
283}tLimTimers;
284
Madan Mohan Koyyalamudi521ff192012-11-15 17:13:08 -0800285typedef struct {
286 void *pMlmDisassocReq;
287 void *pMlmDeauthReq;
288}tLimDisassocDeauthCnfReq;
Jeff Johnson295189b2012-06-20 16:38:30 -0700289
290typedef struct sAniSirLim
291{
292 ////////////////////////////////////// TIMER RELATED START ///////////////////////////////////////////
293
294 tLimTimers limTimers;
295 /// Flag to track if LIM timers are created or not
296 tANI_U32 gLimTimersCreated;
297
298
299 ////////////////////////////////////// TIMER RELATED END ///////////////////////////////////////////
300
301 ////////////////////////////////////// SCAN/LEARN RELATED START ///////////////////////////////////////////
302 /**
303 * This flag when set, will use scan mode instead of
304 * Learn mode on BP/AP. By default this flag is set
305 * to true until HIF getting stuck in 0x800 state is
306 * debugged.
307 */
308 tANI_U32 gLimUseScanModeForLearnMode;
309
310 /**
311 * This is useful for modules other than LIM
312 * to see if system is in scan/learn mode or not
313 */
314 tANI_U32 gLimSystemInScanLearnMode;
315
316 // Scan related globals on STA
317 tANI_U8 gLimReturnAfterFirstMatch;
318 tANI_U8 gLim24Band11dScanDone;
319 tANI_U8 gLim50Band11dScanDone;
320 tANI_U8 gLimReturnUniqueResults;
321
322 // Background Scan related globals on STA
323 tANI_U32 gLimNumOfBackgroundScanSuccess;
324 tANI_U32 gLimNumOfConsecutiveBkgndScanFailure;
325 tANI_U32 gLimNumOfForcedBkgndScan;
326 tANI_U8 gLimBackgroundScanDisable; //based on BG timer
327 tANI_U8 gLimForceBackgroundScanDisable; //debug control flag
328 tANI_U8 gLimBackgroundScanTerminate; //controlled by SME
329 tANI_U8 gLimReportBackgroundScanResults;//controlled by SME
330
331 /// Place holder for current channel ID
332 /// being scanned
333 tANI_U32 gLimCurrentScanChannelId;
334
335 // Hold onto SCAN criteria
Viral Modid86bde22012-12-10 13:09:21 -0800336#ifdef WLAN_FEATURE_P2P
337 tSirSmeScanReq *gpLimSmeScanReq; // this one is used in P2P GO case when scan needs to be actually done a few BIs later after publishing NOA
338#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700339 tLimMlmScanReq *gpLimMlmScanReq;
340
341 /// This indicates total length of 'matched' scan results
342 tANI_U16 gLimMlmScanResultLength;
343
344 /// This indicates total length of 'cached' scan results
345 tANI_U16 gLimSmeScanResultLength;
346
347 /**
348 * Hash table definition for storing SCAN results
349 * This is the placed holder for 'cached' scan results
350 */
351 tLimScanResultNode
352 *gLimCachedScanHashTable[LIM_MAX_NUM_OF_SCAN_RESULTS];
353
354#if defined(ANI_PRODUCT_TYPE_CLIENT) || defined(ANI_AP_CLIENT_SDK)
355 /// Place holder for current channel ID
356 /// being scanned during background scanning
357 tANI_U32 gLimBackgroundScanChannelId;
358 /// flag to indicate that bacground scan timer has been started
359 tANI_U8 gLimBackgroundScanStarted;
360
361 /* Used to store the list of legacy bss sta detected during scan on one channel */
362 tANI_U16 gLimRestoreCBNumScanInterval;
363 tANI_U16 gLimRestoreCBCount;
364 tSirMacAddr gLimLegacyBssidList[MAX_NUM_LEGACY_BSSID_PER_CHANNEL];
365#endif
366
367 //
368 // If this flag is 1,
369 // then, LIM will "try and trigger" a background
370 // scan whenever it receives a Quiet BSS IE
371 //
372 // If this flag is 0,
373 // then, LIM will simply shut-off Tx/Rx whenever it
374 // receives a Quiet BSS IE.
375 // This is the default behavior when a Quiet BSS IE
376 // is received and 11H is enabled
377 //
378 tANI_U32 gLimTriggerBackgroundScanDuringQuietBss;
379
380#ifdef ANI_AP_SDK
381 tLimScanDurationConvert gLimScanDurationConvert; /* Used to store converted scan duration values in TU and TICKS */
382#endif /* ANI_AP_SDK */
383
384#ifdef WLAN_FEATURE_P2P
385 // This variable store the total duration to do scan
386 tANI_U32 gTotalScanDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -0700387 tANI_U32 p2pRemOnChanTimeStamp;
Jeff Johnson295189b2012-06-20 16:38:30 -0700388#endif
389
390 // abort scan is used to abort an on-going scan
391 tANI_U8 abortScan;
392 tLimScanChnInfo scanChnInfo;
393
394 ////////////////////////////////////// SCAN/LEARN RELATED START ///////////////////////////////////////////
395 tSirMacAddr gSelfMacAddr; //added for BT-AMP Support
396
397 ////////////////////////////////////////// BSS RELATED END ///////////////////////////////////////////
398 // Place holder for StartBssReq message
399 // received by SME state machine
400
401#if defined(ANI_PRODUCT_TYPE_AP)
402 // Place holder for Neighbor BSS list received in
403 // SME_JOIN/REASSOC_REQ messages
404 tSirMultipleNeighborBssInfo gLimNeighborBssList;
405#endif
406 tANI_U8 gLimCurrentBssUapsd;
407
408
409/* These global varibales are now moved to session Table in order to support BT-AMP oct 9th review */
410#if 0
411 // Place holder for BSS description that we're
412 // currently joined with
413 tSirMacAddr gLimCurrentBssId;
414 tSirMacChanNum gLimCurrentChannelId;
415 tSirMacSSid gLimCurrentSSID;
416 tANI_U16 gLimCurrentBssCaps;
417
418 // QosCaps is a bit map of various qos capabilities - see defn above
419 tANI_U8 gLimCurrentBssQosCaps;
420 tANI_U16 gLimCurrentBssPropCap;
421 tANI_U8 gLimSentCapsChangeNtf;
422 tANI_U32 gLimCurrentTitanHtCaps;
423
424 // Place holder for BSS description that
425 // we're currently Reassociating
426 tSirMacAddr gLimReassocBssId;
427 tSirMacChanNum gLimReassocChannelId;
428 tSirMacSSid gLimReassocSSID;
429 tANI_U16 gLimReassocBssCaps;
430 tANI_U8 gLimReassocBssQosCaps;
431 tANI_U16 gLimReassocBssPropCap;
432 tANI_U32 gLimReassocTitanHtCaps;
433
434 tANI_U8 gLimBssIdx; // BSSIdx is made session speicific
435#endif
436
437 tANI_U8 gLimForceNoPropIE; /* This is used for testing sta legacy bss detect feature */
438
439 //
440 // Store the BSS Index returned by HAL during
441 // WDA_ADD_BSS_RSP here.
442 //
443 // For now:
444 // This will be used during WDA_SET_BSSKEY_REQ in
445 // order to set the GTK
446 // Later:
447 // There could be other interfaces needing this info
448 //
449
450 //
451 // Due to the asynchronous nature of the interface
452 // between PE <-> HAL, some transient information
453 // like this needs to be cached.
454 // This is cached upon receipt of eWNI_SME_SETCONTEXT_REQ.
455 // This is released while posting LIM_MLM_SETKEYS_CNF
456 //
457 void* gpLimMlmSetKeysReq;
458 void* gpLimMlmRemoveKeyReq;
459
460 //On STA: staid for self generated by HAL and sent as response to 'ADD STA' msg.
461 //On AP: staid corresponding to BSS generated by HAL and sent as response to 'ADD BSS' msg.
462 // tANI_U16 gLimStaid; // TO SUPPORT BT-AMP
463
464 ////////////////////////////////////////// BSS RELATED END ///////////////////////////////////////////
465
466 ////////////////////////////////////////// IBSS RELATED START ///////////////////////////////////////////
467 // This indicates whether we've a partner
468 // that is also transmitting Beacon frame
469 // in IBSS
470 //tANI_U8 gLimIbssActive; oct1 review
471
472 //This indicates whether this STA coalesced and adapter to peer's capabilities or not.
473 tANI_U8 gLimIbssCoalescingHappened;
474
475 /// Definition for storing IBSS peers BSS description
476 tLimIbssPeerNode *gLimIbssPeerList;
477 tANI_U32 gLimNumIbssPeers;
478
479 // ibss info - params for which ibss to join while coalescing
480 tAniSirLimIbss ibssInfo;
481
482 ////////////////////////////////////////// IBSS RELATED END ///////////////////////////////////////////
483
484 ////////////////////////////////////////// STATS/COUNTER RELATED START ///////////////////////////////////////////
485
486 tANI_U16 maxStation;
487 tANI_U16 maxBssId;
488
489 tANI_U32 gLimNumBeaconsRcvd;
490 tANI_U32 gLimNumBeaconsIgnored;
491
492 tANI_U32 gLimNumDeferredMsgs;
493
494 /// Variable to keep track of number of currently associated STAs
Jeff Johnson295189b2012-06-20 16:38:30 -0700495 tANI_U16 gLimNumOfAniSTAs; // count of ANI peers
496 tANI_U16 gLimAssocStaLimit;
497
498 /// This indicates number of RXed Beacons during HB period
499 // tANI_U8 gLimRxedBeaconCntDuringHB;
500
501 // Heart-Beat interval value
502 tANI_U32 gLimHeartBeatCount;
503
504 // Statistics to keep track of no. beacons rcvd in heart beat interval
505 tANI_U16 gLimHeartBeatBeaconStats[MAX_NO_BEACONS_PER_HEART_BEAT_INTERVAL];
506
507#ifdef WLAN_DEBUG
508 // Debug counters
509 tANI_U32 numTot, numBbt, numProtErr, numLearn, numLearnIgnore;
510 tANI_U32 numSme, numMAC[4][16];
511
512 // Debug counter to track number of Assoc Req frame drops
513 // when received in pStaDs->mlmState other than LINK_ESTABLISED
514 tANI_U32 gLimNumAssocReqDropInvldState;
515 // counters to track rejection of Assoc Req due to Admission Control
516 tANI_U32 gLimNumAssocReqDropACRejectTS;
517 tANI_U32 gLimNumAssocReqDropACRejectSta;
518 // Debug counter to track number of Reassoc Req frame drops
519 // when received in pStaDs->mlmState other than LINK_ESTABLISED
520 tANI_U32 gLimNumReassocReqDropInvldState;
521 // Debug counter to track number of Hash Miss event that
522 // will not cause a sending of de-auth/de-associate frame
523 tANI_U32 gLimNumHashMissIgnored;
524
525 // Debug counter to track number of Beacon frames
526 // received in unexpected state
527 tANI_U32 gLimUnexpBcnCnt;
528
529 // Debug counter to track number of Beacon frames
530 // received in wt-join-state that do have SSID mismatch
531 tANI_U32 gLimBcnSSIDMismatchCnt;
532
533 // Debug counter to track number of Link establishments on STA/BP
534 tANI_U32 gLimNumLinkEsts;
535
536 // Debug counter to track number of Rx cleanup
537 tANI_U32 gLimNumRxCleanup;
538
539 // Debug counter to track different parse problem
540 tANI_U32 gLim11bStaAssocRejectCount;
541
542#endif
543
544 //Time stamp of the last beacon received from the BSS to which STA is connected.
545 tANI_U64 gLastBeaconTimeStamp;
546 //RX Beacon count for the current BSS to which STA is connected.
547 tANI_U32 gCurrentBssBeaconCnt;
548 tANI_U8 gLastBeaconDtimCount;
549 tANI_U8 gLastBeaconDtimPeriod;
550
551
552 ////////////////////////////////////////// STATS/COUNTER RELATED END ///////////////////////////////////////////
553
554
555 ////////////////////////////////////////// STATES RELATED START ///////////////////////////////////////////
556 // Counts Heartbeat failures
557 tANI_U8 gLimHBfailureCntInLinkEstState;
558 tANI_U8 gLimProbeFailureAfterHBfailedCnt;
559 tANI_U8 gLimHBfailureCntInOtherStates;
560
561 /**
562 * This variable indicates whether LIM module need to
563 * send response to host. Used to identify whether a request
564 * is generated internally within LIM module or by host
565 */
566 tANI_U8 gLimRspReqd;
567
568 /// Previous SME State
569 tLimSmeStates gLimPrevSmeState;
570
571 /// MLM State visible across all Sirius modules
572 tLimMlmStates gLimMlmState;
573
574 /// Previous MLM State
575 tLimMlmStates gLimPrevMlmState;
576
577#ifdef GEN4_SCAN
578 // LIM to HAL SCAN Management Message Interface states
579 tLimLimHalScanState gLimHalScanState;
580//WLAN_SUSPEND_LINK Related
581 SUSPEND_RESUME_LINK_CALLBACK gpLimSuspendCallback;
582 tANI_U32 *gpLimSuspendData;
583 SUSPEND_RESUME_LINK_CALLBACK gpLimResumeCallback;
584 tANI_U32 *gpLimResumeData;
585//end WLAN_SUSPEND_LINK Related
586 tANI_U8 fScanDisabled;
587 //Can be set to invalid channel. If it is invalid, HAL
588 //should move to previous valid channel or stay in the
Jeff Johnsone7245742012-09-05 17:12:55 -0700589 //current channel. CB state goes along with channel to resume to
590 tANI_U16 gResumeChannel;
591 ePhyChanBondState gResumePhyCbState;
Jeff Johnson295189b2012-06-20 16:38:30 -0700592#endif // GEN4_SCAN
593
594 // Change channel generic scheme
595 CHANGE_CHANNEL_CALLBACK gpchangeChannelCallback;
596 tANI_U32 *gpchangeChannelData;
597
598 /// SME State visible across all Sirius modules
599 tLimSmeStates gLimSmeState;
600 /// This indicates whether we're an AP, STA in BSS/IBSS
601 tLimSystemRole gLimSystemRole;
602
603 // Number of STAs that do not support short preamble
604 tLimNoShortParams gLimNoShortParams;
605
606 // Number of STAs that do not support short slot time
607 tLimNoShortSlotParams gLimNoShortSlotParams;
608
609
610 // OLBC parameters
611 tLimProtStaParams gLimOverlap11gParams;
612
613 tLimProtStaParams gLimOverlap11aParams;
614 tLimProtStaParams gLimOverlapHt20Params;
615 tLimProtStaParams gLimOverlapNonGfParams;
616
617 //
618 // ---------------- DPH -----------------------
619 // these used to live in DPH but are now moved here (where they belong)
620 tANI_U32 gLimPhyMode;
621 tANI_U32 propRateAdjustPeriod;
622 tANI_U32 scanStartTime; // used to measure scan time
623
Jeff Johnsone7245742012-09-05 17:12:55 -0700624 //tANI_U8 gLimBssid[6];
Jeff Johnson295189b2012-06-20 16:38:30 -0700625 tANI_U8 gLimMyMacAddr[6];
626 tANI_U8 ackPolicy;
627
628 tANI_U8 gLimQosEnabled:1; //11E
629 tANI_U8 gLimWmeEnabled:1; //WME
630 tANI_U8 gLimWsmEnabled:1; //WSM
631 tANI_U8 gLimHcfEnabled:1;
632 tANI_U8 gLim11dEnabled:1;
633 tANI_U8 gLimProbeRespDisableFlag:1; // control over probe response
634 // ---------------- DPH -----------------------
635
636 ////////////////////////////////////////// STATES RELATED END ///////////////////////////////////////////
637
638 ////////////////////////////////////////// MISC RELATED START ///////////////////////////////////////////
639#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
640 // Place holder for alternate radio list
641 tSirMultipleAlternateRadioInfo gLimAlternateRadioList;
642#endif
643
644 // Place holder for Measurement Req/Rsp/Ind related info
645#if (WNI_POLARIS_FW_PACKAGE == ADVANCED) && defined(ANI_PRODUCT_TYPE_AP)
646 tpSirSmeMeasurementReq gpLimMeasReq;
647 tLimMeasParams gLimMeasParams;
648 tpLimMeasData gpLimMeasData;
649#endif
650
651 // WDS info
652 tANI_U32 gLimNumWdsInfoInd;
653 tANI_U32 gLimNumWdsInfoSet;
654 tSirWdsInfo gLimWdsInfo;
655
656 // Deferred Queue Paramters
657 tLimDeferredMsgQParams gLimDeferredMsgQ;
658
659 // addts request if any - only one can be outstanding at any time
660 tSirAddtsReq gLimAddtsReq;
661 tANI_U8 gLimAddtsSent;
662 tANI_U8 gLimAddtsRspTimerCount;
663
664 //protection related config cache
665 tCfgProtection cfgProtection;
666
667 tANI_U8 gLimProtectionControl;
668 //RF band to determibe 2.4/5 GHZ
669
670 // alternate radio info used by STA
671 tSirAlternateRadioInfo gLimAlternateRadio;
672
673 //This flag will remain to be set except while LIM is waiting for specific response messages
674 //from HAL. e.g when LIM issues ADD_STA req it will clear this flag and when it will receive
675 //the response the flag will be set.
676 tANI_U8 gLimProcessDefdMsgs;
677
678 // UAPSD flag used on AP
679 tANI_U8 gUapsdEnable;
680
681 /* Used on STA, this is a static UAPSD mask setting
682 * derived from SME_JOIN_REQ and SME_REASSOC_REQ. If a
683 * particular AC bit is set, it means the AC is both
684 * trigger enabled and delivery enabled.
685 */
686 tANI_U8 gUapsdPerAcBitmask;
687
688 /* Used on STA, this is a dynamic UPASD mask setting
689 * derived from AddTS Rsp and DelTS frame. If a
690 * particular AC bit is set, it means AC is trigger
691 * enabled.
692 */
693 tANI_U8 gUapsdPerAcTriggerEnableMask;
694
695 /* Used on STA, dynamic UPASD mask setting
696 * derived from AddTS Rsp and DelTs frame. If
697 * a particular AC bit is set, it means AC is
698 * delivery enabled.
699 */
700 tANI_U8 gUapsdPerAcDeliveryEnableMask;
701
702 /* Used on STA for AC downgrade. This is a dynamic mask
703 * setting which keep tracks of ACs being admitted.
704 * If bit is set to 0: That partiular AC is not admitted
705 * If bit is set to 1: That particular AC is admitted
706 */
707 tANI_U8 gAcAdmitMask[SIR_MAC_DIRECTION_DIRECT];
708
709 //dialogue token List head/tail for Action frames request sent.
710 tpDialogueToken pDialogueTokenHead;
711 tpDialogueToken pDialogueTokenTail;
712
713 tLimTspecInfo tspecInfo[LIM_NUM_TSPEC_MAX];
714
715 // admission control policy information
716 tLimAdmitPolicyInfo admitPolicyInfo;
Leela V Kiran Kumar Reddy Chiralac3b9d382013-01-31 20:49:53 -0800717 vos_lock_t lkPeGlobalLock;
Leela V Kiran Kumar Reddy Chiralab1f7d342013-02-11 00:27:02 -0800718 tANI_U8 disableLDPCWithTxbfAP;
Jeff Johnson295189b2012-06-20 16:38:30 -0700719
720
721
722 ////////////////////////////////////////// MISC RELATED END ///////////////////////////////////////////
723
724 ////////////////////////////////////////// ASSOC RELATED START ///////////////////////////////////////////
725 // Place holder for JoinReq message
726 // received by SME state machine
727 // tpSirSmeJoinReq gpLimJoinReq;
728
729 // Place holder for ReassocReq message
730 // received by SME state machine
731 //tpSirSmeReassocReq gpLimReassocReq; sep23 review
732
Jeff Johnson295189b2012-06-20 16:38:30 -0700733 // Current Authentication type used at STA
734 //tAniAuthType gLimCurrentAuthType;
735
736 // Place holder for current authentication request
737 // being handled
738 tLimMlmAuthReq *gpLimMlmAuthReq;
739
740 // Place holder for Join request that we're
741 // currently attempting
Jeff Johnsone7245742012-09-05 17:12:55 -0700742 //tLimMlmJoinReq *gpLimMlmJoinReq;
Jeff Johnson295189b2012-06-20 16:38:30 -0700743
744 // Reason code to determine the channel change context while sending
745 // WDA_CHNL_SWITCH_REQ message to HAL
746 tANI_U32 channelChangeReasonCode;
747
748 /// MAC level Pre-authentication related globals
749 tSirMacChanNum gLimPreAuthChannelNumber;
750 tAniAuthType gLimPreAuthType;
751 tSirMacAddr gLimPreAuthPeerAddr;
752 tANI_U32 gLimNumPreAuthContexts;
753 tLimPreAuthTable gLimPreAuthTimerTable;
754
755 // Placed holder to deauth reason
756 tANI_U16 gLimDeauthReasonCode;
757
758 // Place holder for Pre-authentication node list
759 struct tLimPreAuthNode * pLimPreAuthList;
760
761 // Send Disassociate frame threshold parameters
762 tANI_U16 gLimDisassocFrameThreshold;
763 tANI_U16 gLimDisassocFrameCredit;
764
765 // Assoc or ReAssoc Response Data/Frame
766 void *gLimAssocResponseData;
767
768 //One cache for each overlap and associated case.
769 tCacheParams protStaOverlapCache[LIM_PROT_STA_OVERLAP_CACHE_SIZE];
770 tCacheParams protStaCache[LIM_PROT_STA_CACHE_SIZE];
771
772 ////////////////////////////////////////// ASSOC RELATED END ///////////////////////////////////////////
773
774
Jeff Johnson295189b2012-06-20 16:38:30 -0700775
776 //
777 // For DEBUG purposes
778 // Primarily for - TITAN BEACON workaround
779 // Symptom - TFP/PHY gets stuck
780 //
781 tANI_U32 gLimScanOverride;
782 // Holds the desired tSirScanType, as requested by SME
783 tSirScanType gLimScanOverrideSaved;
784
Jeff Johnson295189b2012-06-20 16:38:30 -0700785 //
786 // CB State protection, operated upon as follows:
787 // 1 - CB is enabled in the hardware ONLY WHEN a Titan
788 // STA associates with the AP
789 // 0 - CB is enabled/disabled based on the configuration
790 // received as per eWNI_SME_START_BSS_REQ
791 //
792 tANI_U32 gLimCBStateProtection;
793
794 // Count of TITAN STA's currently associated
795 tANI_U16 gLimTitanStaCount;
796
797 //
798 // For DEBUG purposes
799 // Primarily for - TITAN workaround
800 // Symptom - Avoid NULL data frames
801 // Applies to AP only
802 //
803 tANI_U32 gLimBlockNonTitanSta;
804 /////////////////////////// TITAN related globals //////////////////////////////////////////
805
806
807 //////////////////////////////// HT RELATED //////////////////////////////////////////
808 //
809 // The following global LIM variables maintain/manage
810 // the runtime configurations related to 802.11n
811
812 // 802.11n Station detected HT capability in Beacon Frame
813 tANI_U8 htCapabilityPresentInBeacon;
814
815 // 802.11 HT capability: Enabled or Disabled
816 tANI_U8 htCapability;
817
818
819 tANI_U8 gHTGreenfield;
820
Jeff Johnson295189b2012-06-20 16:38:30 -0700821 tANI_U8 gHTShortGI40Mhz;
822 tANI_U8 gHTShortGI20Mhz;
823
824 //Set to 0 for 3839 octets
825 //Set to 1 for 7935 octets
826 tANI_U8 gHTMaxAmsduLength;
827
828
829 // DSSS/CCK at 40 MHz: Enabled 1 or Disabled
830 tANI_U8 gHTDsssCckRate40MHzSupport;
831
832 // PSMP Support: Enabled 1 or Disabled 0
833 tANI_U8 gHTPSMPSupport;
834
835 // L-SIG TXOP Protection used only if peer support available
836 tANI_U8 gHTLsigTXOPProtection;
837
838 // MIMO Power Save
839 tSirMacHTMIMOPowerSaveState gHTMIMOPSState;
840
841 // Scan In Power Save
842 tANI_U8 gScanInPowersave;
843
844 //
845 // A-MPDU Density
846 // 000 - No restriction
847 // 001 - 1/8 usec
848 // 010 - 1/4 usec
849 // 011 - 1/2 usec
850 // 100 - 1 usec
851 // 101 - 2 usec
852 // 110 - 4 usec
853 // 111 - 8 usec
854 //
855 tANI_U8 gHTAMpduDensity;
856
857 tANI_BOOLEAN gMaxAmsduSizeEnabled;
858 // Maximum Tx/Rx A-MPDU factor
859 tANI_U8 gHTMaxRxAMpduFactor;
860
861 //
862 // Scheduled PSMP related - Service Interval Granularity
863 // 000 - 5 ms
864 // 001 - 10 ms
865 // 010 - 15 ms
866 // 011 - 20 ms
867 // 100 - 25 ms
868 // 101 - 30 ms
869 // 110 - 35 ms
870 // 111 - 40 ms
871 //
872 tANI_U8 gHTServiceIntervalGranularity;
873
874 // Indicates whether an AP wants to associate PSMP enabled Stations
875 tANI_U8 gHTControlledAccessOnly;
876
877 // RIFS Mode. Set if no APSD legacy devices associated
878 tANI_U8 gHTRifsMode;
879 // OBss Mode . set when we have Non HT STA is associated or with in overlap bss
880 tANI_U8 gHTObssMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700881
882 // Identifies the current Operating Mode
883 tSirMacHTOperatingMode gHTOperMode;
884
885 // Indicates if PCO is activated in the BSS
886 tANI_U8 gHTPCOActive;
887
888 //
889 // If PCO is active, indicates which PCO phase to use
890 // 0 - switch to 20 MHz phase
891 // 1 - switch to 40 MHz phase
892 //
893 tANI_U8 gHTPCOPhase;
894
895 //
896 // Used only in beacons. For PR, this is set to 0
897 // 0 - Primary beacon
898 // 1 - Secondary beacon
899 //
900 tANI_U8 gHTSecondaryBeacon;
901
902 //
903 // Dual CTS Protection
904 // 0 - Use RTS/CTS
905 // 1 - Dual CTS Protection is used
906 //
907 tANI_U8 gHTDualCTSProtection;
908
909 //
910 // Identifies a single STBC MCS that shall ne used for
911 // STBC control frames and STBC beacons
912 //
913 tANI_U8 gHTSTBCBasicMCS;
914
915 tANI_U8 gHTNonGFDevicesPresent;
916
917 tANI_U8 gAddBA_Declined; // Flag to Decline the BAR if the particular bit (0-7) is being set
918
919 //////////////////////////////// HT RELATED //////////////////////////////////////////
920
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800921#ifdef FEATURE_WLAN_TDLS_INTERNAL
922 //////////////////////////////// TDLS RELATED //////////////////////////////////////////
923
924 tSirTdlsDisReq gLimTdlsDisReq ;
925 //tLimDisResultList *gTdlsDisResultList ;
926 tLimDisResultList *gLimTdlsDisResultList ;
927 tANI_U8 gLimTdlsDisStaCount ;
928 tANI_U8 gAddStaDisRspWait ;
929
930 tLimTdlsLinkSetupInfo gLimTdlsLinkSetupInfo;
931
932 /* to track if direct link is b/g/n, this can be independent of AP link */
933#ifdef FEATURE_WLAN_TDLS_NEGATIVE
934 tANI_U32 gLimTdlsNegativeBehavior;
935#endif
936#endif
937#ifdef FEATURE_WLAN_TDLS
938 tANI_U8 gLimAddStaTdls ;
939 tANI_U8 gLimTdlsLinkMode ;
940 //////////////////////////////// TDLS RELATED //////////////////////////////////////////
941#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700942
943 // wsc info required to form the wsc IE
944 tLimWscIeInfo wscIeInfo;
945 tpPESession gpSession ; //Pointer to session table
946 /*
947 * sessionID and transactionID from SME is stored here for those messages, for which
948 * there is no session context in PE, e.g. Scan related messages.
949 **/
950 tANI_U8 gSmeSessionId;
951 tANI_U16 gTransactionId;
952
Jeff Johnsone7245742012-09-05 17:12:55 -0700953#ifdef FEATURE_OEM_DATA_SUPPORT
954tLimMlmOemDataReq *gpLimMlmOemDataReq;
955tLimMlmOemDataRsp *gpLimMlmOemDataRsp;
956#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700957
958#ifdef WLAN_FEATURE_P2P
959 tSirRemainOnChnReq *gpLimRemainOnChanReq; //hold remain on chan request in this buf
960 vos_list_t gLimMgmtFrameRegistratinQueue;
961 tANI_U32 actionFrameSessionId;
962#endif
Madan Mohan Koyyalamudi70bb4cb2012-10-18 19:31:25 -0700963 tSirBackgroundScanMode gLimBackgroundScanMode;
Madan Mohan Koyyalamudi61bc5662012-11-02 14:33:10 -0700964
965#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
966 tpPESession pSessionEntry;
967 tANI_U8 reAssocRetryAttempt;
968#endif
Madan Mohan Koyyalamudi521ff192012-11-15 17:13:08 -0800969 tLimDisassocDeauthCnfReq limDisassocDeauthCnfReq;
Jeff Johnson295189b2012-06-20 16:38:30 -0700970} tAniSirLim, *tpAniSirLim;
971
972#ifdef WLAN_FEATURE_P2P
973typedef struct sLimMgmtFrameRegistration
974{
975 vos_list_node_t node; // MUST be first element
976 tANI_U16 frameType;
977 tANI_U16 matchLen;
978 tANI_U16 sessionId;
979 tANI_U8 matchData[1];
980} tLimMgmtFrameRegistration, *tpLimMgmtFrameRegistration;
981#endif
982
983#if defined WLAN_FEATURE_VOWIFI
984typedef struct sRrmContext
985{
986 tRrmSMEContext rrmSmeContext;
987 tRrmPEContext rrmPEContext;
988}tRrmContext, *tpRrmContext;
989#endif
990
991#if defined WLAN_FEATURE_VOWIFI_11R
992typedef struct sFTContext
993{
994 tftSMEContext ftSmeContext;
995 tftPEContext ftPEContext;
996} tftContext, *tpFTContext;
997#endif
998
999#ifdef FEATURE_WLAN_INTEGRATED_SOC
1000//Check if this definition can actually move here even for Volans. In that case
1001//this featurization can be removed.
1002/** ------------------------------------------------------------------------- *
1003
1004 \typedef tDriverType
1005
1006 \brief Indicate the driver type to the mac, and based on this do
1007 appropriate initialization.
1008
1009 -------------------------------------------------------------------------- */
1010
1011typedef enum
1012{
1013 eDRIVER_TYPE_PRODUCTION = 0,
1014 eDRIVER_TYPE_MFG = 1,
1015 eDRIVER_TYPE_DVT = 2
1016} tDriverType;
1017
1018/** ------------------------------------------------------------------------- *
1019
1020 \typedef tMacOpenParameters
1021
1022 \brief Parameters needed for Enumeration of all status codes returned by the higher level
1023 interface functions.
1024
1025 -------------------------------------------------------------------------- */
1026
1027typedef struct sMacOpenParameters
1028{
1029 tANI_U16 maxStation;
1030 tANI_U16 maxBssId;
1031 tANI_U32 frameTransRequired;
1032 tDriverType driverType;
1033} tMacOpenParameters;
1034
1035typedef enum
1036{
1037 HAL_STOP_TYPE_SYS_RESET,
1038 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
1039 HAL_STOP_TYPE_RF_KILL
1040}tHalStopType;
1041
1042typedef struct sHalMacStartParameters
1043{
1044 // parametes for the Firmware
1045 //tHalFirmwareParameters FW;
1046 tDriverType driverType;
1047
1048} tHalMacStartParameters;
1049#endif
1050
1051// -------------------------------------------------------------------
1052/// MAC Sirius parameter structure
1053typedef struct sAniSirGlobal
1054
1055{
1056 tDriverType gDriverType;
1057#if defined(ANI_OS_TYPE_RTAI_LINUX)
1058 struct rtLibApp * rt;
1059#endif
1060
1061 // we should be able to save this hddHandle in here and deprecate
1062 // the pAdapter. For now, compiles are a problem because there
1063 // are dependencides on the header files that are not handling the
1064 // compiler very gracefully.
1065// tHddHandle hHdd; // Handle to the HDD.
1066 //void *hHdd;
1067 void *pAdapter; // deprecate this pAdapter pointer eventually...
1068 // all interfaces to the HDD should pass hHdd, which
1069 // is stored in this struct above.....
1070 tSirMbMsg* pResetMsg;
1071 tAniSirCfg cfg;
1072 tAniSirLim lim;
Jeff Johnson295189b2012-06-20 16:38:30 -07001073 tAniSirPmm pmm;
1074 tAniSirSch sch;
1075 tAniSirSys sys;
1076 tAniSirUtils utils;
Jeff Johnson295189b2012-06-20 16:38:30 -07001077
1078#ifndef WLAN_FTM_STUB
1079#ifdef FEATURE_WLAN_NON_INTEGRATED_SOC
1080 tPttModuleVariables ptt;
1081#endif
1082#endif
1083
1084 tAniSirTxWrapper txWrapper;
1085 // PAL/HDD handle
1086 tHddHandle hHdd;
1087
1088#ifdef ANI_DVT_DEBUG
1089 tAniSirDvt dvt;
1090#endif
1091
1092 tSmeStruct sme;
1093 tCsrScanStruct scan;
1094 tCsrRoamStruct roam;
1095
Jeff Johnsone7245742012-09-05 17:12:55 -07001096#ifdef FEATURE_OEM_DATA_SUPPORT
1097 tOemDataStruct oemData;
1098#endif
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001099#ifdef FEATURE_WLAN_TDLS
1100 tCsrTdlsCtxStruct tdlsCtx ;
1101#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001102#ifdef ANI_PRODUCT_TYPE_CLIENT
1103 tPmcInfo pmc;
1104 tSmeBtcInfo btc;
1105#endif
1106
1107 tCcm ccm;
1108
1109#if defined WLAN_FEATURE_VOWIFI
1110 tRrmContext rrm;
1111#endif
1112#ifdef WLAN_FEATURE_P2P
1113#ifdef WLAN_FEATURE_CONCURRENT_P2P
1114 tp2pContext p2pContext[MAX_NO_OF_P2P_SESSIONS];
1115#else
1116 tp2pContext p2pContext;
1117#endif
1118#endif
1119
1120#if defined WLAN_FEATURE_VOWIFI_11R
1121 tftContext ft;
1122#endif
1123
1124 tANI_U32 gCurrentLogSize;
1125 tANI_U32 menuCurrent;
1126 /* logDump specific */
1127 tANI_U32 dumpTablecurrentId;
1128 /* Instead of static allocation I will dyanamically allocate memory for dumpTableEntry
1129 Thinking of using linkedlist */
1130 tDumpModuleEntry *dumpTableEntry[MAX_DUMP_TABLE_ENTRY];
1131
1132} tAniSirGlobal;
1133
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001134#ifdef FEATURE_WLAN_TDLS
Jeff Johnson295189b2012-06-20 16:38:30 -07001135
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001136#define RFC1042_HDR_LENGTH (6)
1137#define GET_BE16(x) ((tANI_U16) (((x)[0] << 8) | (x)[1]))
1138#define ETH_TYPE_89_0d (0x890d)
1139#define ETH_TYPE_LEN (2)
1140#define PAYLOAD_TYPE_TDLS_SIZE (1)
1141#define PAYLOAD_TYPE_TDLS (2)
1142
1143#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001144
1145#endif /* _ANIGLOBAL_H */
1146