blob: fb8f77fbb1671b2e2eff4deb6f78ebbb05ef14ae [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07002 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -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
22/** ------------------------------------------------------------------------- *
23 ------------------------------------------------------------------------- *
24
25
26 \file csrInternal.h
27
28 Define internal data structure for MAC.
29
30 Copyright (C) 2006 Airgo Networks, Incorporated
31 ========================================================================== */
32#ifndef CSRINTERNAL_H__
33#define CSRINTERNAL_H__
34
35#if defined(VOSS_ENABLED)
36#include "vos_status.h"
37#include "vos_lock.h"
38#endif //#if defined(VOSS_ENABLED)
39
40#include "palTimer.h"
41#include "csrSupport.h"
42#include "vos_nvitem.h"
43#include "wlan_qct_tl.h"
44
45#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
46#include "csrNeighborRoam.h"
47#endif
48
49#define CSR_MAX_STA (HAL_NUM_STA)
50
51#define CSR_SME_SCAN_FLAGS_DELETE_CACHE 0x80
52
53#define CSR_TITAN_MAX_RATE_MIMO_CB 240
54#define CSR_TITAN_MAX_RATE_MIMO 126
55
56//define scan return criteria. LIM should use these define as well
57#define CSR_SCAN_RETURN_AFTER_ALL_CHANNELS ( 0 )
58#define CSR_SCAN_RETURN_AFTER_FIRST_MATCH ( 0x01 )
59#define CSR_SCAN_RETURN_AFTER_5_BAND_11d_FOUND ( 0x80 )
60#define CSR_SCAN_RETURN_AFTER_24_BAND_11d_FOUND ( 0x40 )
61#define CSR_SCAN_RETURN_AFTER_EITHER_BAND_11d_FOUND ( CSR_SCAN_RETURN_AFTER_5_BAND_11d_FOUND | CSR_SCAN_RETURN_AFTER_24_BAND_11d_FOUND )
Madan Mohan Koyyalamudi4c8c6352012-10-15 16:40:16 -070062#define CSR_NUM_RSSI_CAT 15
Jeff Johnson295189b2012-06-20 16:38:30 -070063#define CSR_MAX_STATISTICS_REQ 10
64
65//Support for multiple session
66#define CSR_SESSION_ID_INVALID 0xFF // session ID invalid
67#define CSR_ROAM_SESSION_MAX 5 // No of sessions to be supported, and a
68 // session is for Infra, IBSS or BT-AMP
69
70#define CSR_IS_SESSION_VALID( pMac, sessionId ) ( ( (sessionId) < CSR_ROAM_SESSION_MAX ) \
71 && ( (pMac)->roam.roamSession[(sessionId)].sessionActive ) )
72#define CSR_GET_SESSION( pMac, sessionId ) \
73( \
74 (sessionId < CSR_ROAM_SESSION_MAX) ? \
75 (&(pMac)->roam.roamSession[(sessionId)]) :\
76 NULL \
77)
78
Madan Mohan Koyyalamudi470d2cf2012-09-28 14:43:44 -070079//Support for "Fast roaming" (i.e., CCX, LFR, or 802.11r.)
80#define CSR_BG_SCAN_OCCUPIED_CHANNEL_LIST_LEN 15
81#define CSR_BG_SCAN_VALID_CHANNEL_LIST_CHUNK_SIZE 3
82#define CSR_BG_SCAN_CHANNEL_LIST_LEN (CSR_BG_SCAN_OCCUPIED_CHANNEL_LIST_LEN + CSR_BG_SCAN_VALID_CHANNEL_LIST_CHUNK_SIZE)
83
Jeff Johnson295189b2012-06-20 16:38:30 -070084
85
86typedef enum
87{
88 //eCSR_CFG_DOT11_MODE_BEST = 0,
89 eCSR_CFG_DOT11_MODE_TAURUS = 0,
90 eCSR_CFG_DOT11_MODE_ABG,
91 eCSR_CFG_DOT11_MODE_11A,
92 eCSR_CFG_DOT11_MODE_11B,
93 eCSR_CFG_DOT11_MODE_11G,
94 eCSR_CFG_DOT11_MODE_11N,
95 eCSR_CFG_DOT11_MODE_POLARIS,
96 eCSR_CFG_DOT11_MODE_TITAN,
Jeff Johnsone7245742012-09-05 17:12:55 -070097#ifdef WLAN_FEATURE_11AC
98 eCSR_CFG_DOT11_MODE_11AC,
99#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700100#ifdef WLAN_SOFTAP_FEATURE
101 eCSR_CFG_DOT11_MODE_11G_ONLY,
102 eCSR_CFG_DOT11_MODE_11N_ONLY,
103#endif
Jeff Johnsone7245742012-09-05 17:12:55 -0700104#ifdef WLAN_FEATURE_11AC
105 eCSR_CFG_DOT11_MODE_11AC_ONLY,
106#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700107 //This value can never set to CFG. It is for CSR's internal use
108 eCSR_CFG_DOT11_MODE_AUTO,
109}eCsrCfgDot11Mode; //Used to determine what to set to the WNI_CFG_DOT11_MODE
110
111typedef enum etCsrRoamCommands
112{
113 eCsrRoamNoCommand,
114 eCsrRoamCommandScan,
115 eCsrRoamCommandRoam,
116 eCsrRoamCommandWmStatusChange,
117 eCsrRoamCommandSetKey,
118 eCsrRoamCommandRemoveKey,
119
120} eCsrRoamCommands;
121
122typedef enum
123{
124 eCsrScanOther = 1,
125 eCsrScanLostLink1,
126 eCsrScanLostLink2,
127 eCsrScanLostLink3,
128 eCsrScanLostLink4,
129 eCsrScan11d1, //First 11d scan
130 eCsrScan11d2, //First 11d scan has failed
131 eCsrScan11dDone, //11d scan succeeded, try the rest of the channel
132 eCsrScanUserRequest,
133 eCsrScanGetResult,
134 eCsrScanSetBGScanParam, //used for HO too - bg scan request in NT Handoff sub-state
135 eCsrScanForSsid,
136 eCsrScanForCapsChange,
137 eCsrScanBGScanAbort,
138 eCsrScanBGScanEnable,
139 eCsrScanIdleScan,
140 eCsrScanGetScanChnInfo, //To get the list of channels scanned
141
142 eCsrScanBgScan, // bg scan request in NRT & RT Handoff sub-states
143 eCsrScanProbeBss, // directed probe on an entry from the candidate list - HO
144 eCsrScanAbortBgScan, //aborting a BG scan (meaning the scan is triggered by LIM timer)
145 eCsrScanAbortNormalScan, //aborting a normal scan (the scan is trigger by eWNI_SME_SCAN_REQ)
146 eCsrScanP2PFindPeer
147}eCsrScanReason;
148
149typedef enum
150{
151 eCsrNoConnection, // Roaming because we have not established the initial connection.
152 eCsrCapsChange, // roaming because LIM reported a Capability change in the associated AP.
153 eCsrForcedDisassoc, // roaming becuase someone asked us to Disassoc and stay disassociated.
154 eCsrHddIssued, // roaming because an 802.11 request was issued to the driver.
155 eCsrLostLink1, // roaming because we lost link to an associated AP
156 eCsrLostLink2,
157 eCsrLostLink3,
158 eCsrForcedDisassocMICFailure, // roaming because we need to force a Disassoc due to MIC failure
159 eCsrHddIssuedReassocToSameAP,
160 eCsrSmeIssuedReassocToSameAP,
161 eCsrSmeIssuedReassocToDiffAP,
162 eCsrForcedDeauth, // roaming becuase someone asked us to deauth and stay disassociated.
163 eCsrSmeIssuedDisassocForHandoff, // will be issued by Handoff logic to disconect from current AP
164 eCsrSmeIssuedAssocToSimilarAP, // will be issued by Handoff logic to join a new AP with same profile
165 eCsrSmeIssuedIbssJoinFailure, // ibss join timer fired before any perr showed up, so shut down the network
166 eCsrForcedIbssLeave,
167 eCsrStopBss,
168 eCsrSmeIssuedFTReassoc,
169 eCsrForcedDisassocSta,
170 eCsrForcedDeauthSta,
Madan Mohan Koyyalamudi286b60e2012-10-11 12:59:07 -0700171 eCsrPerformPreauth,
Jeff Johnson295189b2012-06-20 16:38:30 -0700172
173}eCsrRoamReason;
174
175typedef enum
176{
177 eCSR_ROAM_SUBSTATE_NONE = 0,
178 eCSR_ROAM_SUBSTATE_START_BSS_REQ,
179 eCSR_ROAM_SUBSTATE_JOIN_REQ,
180 eCSR_ROAM_SUBSTATE_REASSOC_REQ,
181 eCSR_ROAM_SUBSTATE_DISASSOC_REQ,
182 eCSR_ROAM_SUBSTATE_STOP_BSS_REQ,
183 eCSR_ROAM_SUBSTATE_DISCONNECT_CONTINUE_ROAMING, //Continue the current roam command after disconnect
184 eCSR_ROAM_SUBSTATE_AUTH_REQ,
185 eCSR_ROAM_SUBSTATE_CONFIG,
186 eCSR_ROAM_SUBSTATE_DEAUTH_REQ,
187 eCSR_ROAM_SUBSTATE_DISASSOC_NOTHING_TO_JOIN,
188 eCSR_ROAM_SUBSTATE_DISASSOC_REASSOC_FAILURE,
189 eCSR_ROAM_SUBSTATE_DISASSOC_FORCED,
190 eCSR_ROAM_SUBSTATE_WAIT_FOR_KEY,
191 eCSR_ROAM_SUBSTATE_DISASSOC_HANDOFF,
192 eCSR_ROAM_SUBSTATE_JOINED_NO_TRAFFIC,
193 eCSR_ROAM_SUBSTATE_JOINED_NON_REALTIME_TRAFFIC,
194 eCSR_ROAM_SUBSTATE_JOINED_REALTIME_TRAFFIC,
195// max is 15 unless the bitfield is expanded...
196} eCsrRoamSubState;
197
198
199typedef enum
200{
201 eCSR_ROAMING_STATE_STOP = 0,
202 eCSR_ROAMING_STATE_IDLE,
203 eCSR_ROAMING_STATE_SCANNING,
204 eCSR_ROAMING_STATE_JOINING,
205 eCSR_ROAMING_STATE_JOINED,
206}eCsrRoamState;
207
208
209typedef enum
210{
211 eCsrContinueRoaming,
212 eCsrStopRoaming,
213 eCsrStartIbss,
214 eCsrStartIbssSameIbss,
215 eCsrReassocToSelfNoCapChange,
Jeff Johnsone7245742012-09-05 17:12:55 -0700216 eCsrStopRoamingDueToConcurrency,
Jeff Johnson295189b2012-06-20 16:38:30 -0700217
218}eCsrJoinState;
219
220typedef enum
221{
222 eCsrNotRoaming,
223 eCsrLostlinkRoamingDisassoc,
224 eCsrLostlinkRoamingDeauth,
225 eCsrDynamicRoaming,
226 eCsrReassocRoaming,
227}eCsrRoamingReason;
228
229typedef enum
230{
231 eCsrDisassociated,
232 eCsrDeauthenticated
233
234}eCsrRoamWmStatusChangeTypes;
235
236typedef enum
237{
238 eCsrSummaryStats = 0,
239 eCsrGlobalClassAStats,
240 eCsrGlobalClassBStats,
241 eCsrGlobalClassCStats,
242 eCsrGlobalClassDStats,
243 eCsrPerStaStats,
244 eCsrMaxStats
245}eCsrRoamStatsClassTypes;
246
247#ifdef FEATURE_WLAN_DIAG_SUPPORT
248typedef enum
249{
250 eCSR_WLAN_STATUS_CONNECT =0,
251 eCSR_WLAN_STATUS_DISCONNECT
252
253}eCsrDiagWlanStatusEventSubtype;
254
255typedef enum
256{
257 eCSR_REASON_UNSPECIFIED = 0,
258 eCSR_REASON_USER_REQUESTED,
259 eCSR_REASON_MIC_ERROR,
260 eCSR_REASON_DISASSOC,
261 eCSR_REASON_DEAUTH,
262 eCSR_REASON_HANDOFF,
263
264}eCsrDiagWlanStatusEventReason;
265
266typedef enum
267{
268 eCSR_WLAN_HANDOFF_EVENT =0,
269
270}eCsrDiagWlanHandoffEventSubtype;
271
272typedef enum
273{
274 eCSR_WLAN_VCC_EVENT =0,
275
276}eCsrDiagWlanVccEventSubtype;
277
278#endif //FEATURE_WLAN_DIAG_SUPPORT
279
280typedef struct tagCsrChannel
281{
282 tANI_U8 numChannels;
283 tANI_U8 channelList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
284}tCsrChannel;
285
286typedef struct tagScanProfile
287{
288 tANI_U32 minChnTime;
289 tANI_U32 maxChnTime;
290 tANI_U32 restTime; //This is ignored if not associated
291 tANI_U32 numOfChannels;
292 tANI_U8 *pChannelList;
293 tSirScanType scanType; //active or passive
294 eCsrRoamBssType bssType; //BSS or IBSS
295 tANI_U8 ssid[WNI_CFG_SSID_LEN];
296 tANI_U8 bReturnAfter1stMatch;
297 tANI_U8 fUniqueResult;
298 tANI_U8 freshScan;
299 tCsrBssid bssid;
300}tScanProfile;
301
302typedef struct tagBssConfigParam
303{
304 eCsrMediaAccessType qosType;
305 tSirMacSSid SSID;
306 tANI_U32 uRTSThresh;
307 tANI_U32 uDeferThresh; //
308 eCsrCfgDot11Mode uCfgDot11Mode;
309 eCsrBand eBand;
310 tANI_U8 standardRate[CSR_DOT11_SUPPORTED_RATES_MAX];
311 tANI_U8 extendedRate[CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX];
312 eCsrExposedTxRate txRate;
313 tAniAuthType authType;
314 eCsrEncryptionType encType;
315 tANI_U32 uShortSlotTime;
316 tANI_U32 uHTSupport; //High throughput
317 tANI_U32 uPowerLimit;
318 tANI_U32 uHeartBeatThresh;
319 tANI_U32 uJoinTimeOut;
320 tSirMacCapabilityInfo BssCap;
321 tANI_BOOLEAN f11hSupport;
Jeff Johnsone7245742012-09-05 17:12:55 -0700322 ePhyChanBondState cbMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700323}tBssConfigParam;
324
325
326typedef struct tagCsrRoamStartBssParams
327{
328 tSirMacSSid ssId;
329 tCsrBssid bssid; //this is the BSSID for the party we want to join (only use for IBSS or WDS)
330 tSirNwType sirNwType;
Jeff Johnsone7245742012-09-05 17:12:55 -0700331 ePhyChanBondState cbMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700332 tSirMacRateSet operationalRateSet;
333 tSirMacRateSet extendedRateSet;
334 tANI_U8 operationChn;
335 eCsrCfgDot11Mode uCfgDot11Mode;
336#ifdef WLAN_SOFTAP_FEATURE
337 tANI_U8 privacy;
338 tANI_BOOLEAN fwdWPSPBCProbeReq;
339 tANI_BOOLEAN protEnabled;
340 tANI_BOOLEAN obssProtEnabled;
341 tAniAuthType authType;
342 tANI_U16 beaconInterval; //If this is 0, SME will fill in for caller.
343 tANI_U16 ht_protection;
344 tANI_U32 dtimPeriod;
345 tANI_U8 ApUapsdEnable;
346 tANI_U8 ssidHidden;
347 tANI_U8 wps_state;
348#endif
349 tVOS_CON_MODE bssPersona;
350 tANI_U16 nRSNIELength; //The byte count in the pRSNIE, if 0, pRSNIE is ignored.
351 tANI_U8 *pRSNIE; //If not null, it has the IE byte stream for RSN
352}tCsrRoamStartBssParams;
353
354
355typedef struct tagScanCmd
356{
357 tANI_U32 scanID;
358 csrScanCompleteCallback callback;
359 void *pContext;
360 eCsrScanReason reason;
361 eCsrRoamState lastRoamState[CSR_ROAM_SESSION_MAX];
362 tCsrRoamProfile *pToRoamProfile;
363 tANI_U32 roamId; //this is the ID related to the pToRoamProfile
364 union
365 {
366 tCsrScanRequest scanRequest;
367 tCsrBGScanRequest bgScanRequest;
368 }u;
369}tScanCmd;
370
371typedef struct tagRoamCmd
372{
373 tANI_U32 roamId;
374 eCsrRoamReason roamReason;
375 tCsrRoamProfile roamProfile;
376 tScanResultHandle hBSSList; //BSS list fits the profile
377 tListElem *pRoamBssEntry; //point to the current BSS in the list that is roaming. It starts from head to tail
378 tSirBssDescription *pLastRoamBss; //the last BSS we try and failed
379 tANI_BOOLEAN fReleaseBssList; //whether to free hBSSList
380 tANI_BOOLEAN fReleaseProfile; //whether to free roamProfile
381 tANI_BOOLEAN fReassoc; //whether this command is for reassociation
382 tANI_BOOLEAN fUpdateCurRoamProfile; //whether pMac->roam.pCurRoamProfile needs to be updated
383 //this is for CSR internal used only. And it should not be assigned when creating the command
384 //This causes the roam command not to do anything.
385 tANI_BOOLEAN fReassocToSelfNoCapChange;
386
387 tANI_BOOLEAN fStopWds;
388 tSirMacAddr peerMac;
389 tSirMacReasonCodes reason;
390}tRoamCmd;
391
392typedef struct tagSetKeyCmd
393{
394 tANI_U32 roamId;
395 eCsrEncryptionType encType;
396 eCsrAuthType authType;
397 tAniKeyDirection keyDirection; //Tx, Rx or Tx-and-Rx
398 tSirMacAddr peerMac; //Peer's MAC address. ALL 1's for group key
399 tANI_U8 paeRole; //0 for supplicant
400 tANI_U8 keyId; // Kye index
401 tANI_U8 keyLength; //Number of bytes containing the key in pKey
402 tANI_U8 Key[CSR_MAX_KEY_LEN];
403 tANI_U8 keyRsc[CSR_MAX_RSC_LEN];
404} tSetKeyCmd;
405
406typedef struct tahRemoveKeyCmd
407{
408 tANI_U32 roamId;
409 eCsrEncryptionType encType;
410 eCsrAuthType authType;
411 tSirMacAddr peerMac; //Peer's MAC address. ALL 1's for group key
412 tANI_U8 keyId; //key index
413} tRemoveKeyCmd;
414
415typedef struct tagWmStatusChangeCmd
416{
417 eCsrRoamWmStatusChangeTypes Type;
418 union
419 {
420 tSirSmeDeauthInd DeauthIndMsg;
421 tSirSmeDisassocInd DisassocIndMsg;
422 }u;
423
424}tWmStatusChangeCmd;
425
426typedef struct tagAddStaForSessionCmd
427{
428 //Session self mac addr
429 tSirMacAddr selfMacAddr;
430}tAddStaForSessionCmd;
431
432typedef struct tagDelStaForSessionCmd
433{
434 //Session self mac addr
435 tSirMacAddr selfMacAddr;
436 csrRoamSessionCloseCallback callback;
437 void *pContext;
438}tDelStaForSessionCmd;
439
440//This structure represents one scan request
441typedef struct tagCsrCmd
442{
443 tListElem Link;
444 eCsrRoamCommands command;
445 tANI_U8 sessionId; // Session ID for this command
446 union
447 {
448 tScanCmd scanCmd;
449 tRoamCmd roamCmd;
450 tWmStatusChangeCmd wmStatusChangeCmd;
451 tSetKeyCmd setKeyCmd;
452 tRemoveKeyCmd removeKeyCmd;
453 tAddStaForSessionCmd addStaSessionCmd;
454 tDelStaForSessionCmd delStaSessionCmd;
455 }u;
456}tCsrCmd;
457
458#ifdef WLAN_FEATURE_VOWIFI_11R
459typedef struct tagCsr11rConfig
460{
461 tANI_BOOLEAN IsFTResourceReqSupported;
462} tCsr11rConfig;
463#endif
464
465#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
466typedef struct tagCsrNeighborRoamConfig
467{
468 tANI_U32 nNeighborScanTimerPeriod;
469 tANI_U8 nNeighborLookupRssiThreshold;
470 tANI_U8 nNeighborReassocRssiThreshold;
471 tANI_U16 nNeighborScanMinChanTime;
472 tANI_U16 nNeighborScanMaxChanTime;
473 sCsrChannel neighborScanChanList;
474 tANI_U8 nMaxNeighborRetries;
475 tANI_U16 nNeighborResultsRefreshPeriod;
476}tCsrNeighborRoamConfig;
477#endif
478
479typedef struct tagCsrConfig
480{
481 tANI_U32 agingCount;
482 tANI_U32 FragmentationThreshold;
483 tANI_U32 channelBondingMode24GHz;
484 tANI_U32 channelBondingMode5GHz;
485 tANI_U32 RTSThreshold;
486 eCsrPhyMode phyMode;
487 eCsrCfgDot11Mode uCfgDot11Mode;
488 eCsrBand eBand;
489 tANI_U32 HeartbeatThresh50;
490 tANI_U32 HeartbeatThresh24;
491 tANI_U32 bgScanInterval;
492 eCsrCBChoice cbChoice;
493 eCsrBand bandCapability; //indicate hw capability
494 eCsrRoamWmmUserModeType WMMSupportMode;
495 tANI_BOOLEAN Is11eSupportEnabled;
496 tANI_BOOLEAN Is11dSupportEnabled;
497 tANI_BOOLEAN Is11dSupportEnabledOriginal;
498 tANI_BOOLEAN Is11hSupportEnabled;
499 tANI_BOOLEAN shortSlotTime;
500 tANI_BOOLEAN ProprietaryRatesEnabled;
501 tANI_BOOLEAN fenableMCCMode;
Mohit Khanna7ed53f02012-09-11 17:52:10 -0700502 tANI_BOOLEAN fAllowMCCGODiffBI;
Jeff Johnson295189b2012-06-20 16:38:30 -0700503 tANI_U16 TxRate;
504 tANI_U8 AdHocChannel24;
505 tANI_U8 AdHocChannel5G;
506 tANI_U32 impsSleepTime; //in units of microseconds
507 tANI_U32 scanAgeTimeNCNPS; //scan result aging time threshold when Not-Connect-No-Power-Save, in seconds
508 tANI_U32 scanAgeTimeNCPS; //scan result aging time threshold when Not-Connect-Power-Save, in seconds
509 tANI_U32 scanAgeTimeCNPS; //scan result aging time threshold when Connect-No-Power-Save, in seconds,
510 tANI_U32 scanAgeTimeCPS; //scan result aging time threshold when Connect-Power-Savein seconds
511 tANI_U32 BssPreferValue[CSR_NUM_RSSI_CAT]; //each RSSI category has one value
512 int RSSICat[CSR_NUM_RSSI_CAT];
513 tANI_U8 bCatRssiOffset; //to set the RSSI difference for each category
514 tANI_U32 nRoamingTime; //In seconds, CSR will try this long before gives up, 0 means no roaming
515 //Whether to limit the channels to the ones set in Csr11dInfo. If true, the opertaional
516 //channels are limited to the default channel list. It is an "AND" operation between the
517 //default channels and the channels in the 802.11d IE.
518 tANI_BOOLEAN fEnforce11dChannels;
519 //Country Code Priority
520 //0 = 802.11D > Configured Country > NV
521 //1 = Configured Country > 802.11D > NV
522 tANI_BOOLEAN fSupplicantCountryCodeHasPriority;
523 //When true, AP with unknown country code won't be see.
524 //"Unknown country code" means either Ap doesn't have 11d IE or we cannot
525 //find a domain for the country code in its 11d IE.
526 tANI_BOOLEAN fEnforceCountryCodeMatch;
527 //When true, only APs in the default domain can be seen. If the Ap has "unknown country
528 //code", or the doamin of the country code doesn't match the default domain, the Ap is
529 //not acceptable.
530 tANI_BOOLEAN fEnforceDefaultDomain;
531
532 tANI_U16 vccRssiThreshold;
533 tANI_U32 vccUlMacLossThreshold;
534
535 tANI_U32 nPassiveMinChnTime; //in units of milliseconds
536 tANI_U32 nPassiveMaxChnTime; //in units of milliseconds
537 tANI_U32 nActiveMinChnTime; //in units of milliseconds
538 tANI_U32 nActiveMaxChnTime; //in units of milliseconds
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -0700539#ifdef WLAN_AP_STA_CONCURRENCY
540 tANI_U32 nPassiveMinChnTimeConc; //in units of milliseconds
541 tANI_U32 nPassiveMaxChnTimeConc; //in units of milliseconds
542 tANI_U32 nActiveMinChnTimeConc; //in units of milliseconds
543 tANI_U32 nActiveMaxChnTimeConc; //in units of milliseconds
544 tANI_U32 nRestTimeConc; //in units of milliseconds
545#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700546
547 tANI_BOOLEAN IsIdleScanEnabled;
548 //in dBm, the maximum TX power
549 //The actual TX power is the lesser of this value and 11d.
550 //If 11d is disable, the lesser of this and default setting.
551 tANI_U8 nTxPowerCap;
552 tANI_U32 statsReqPeriodicity; //stats request frequency from PE while in full power
553 tANI_U32 statsReqPeriodicityInPS;//stats request frequency from PE while in power save
554#ifdef WLAN_SOFTAP_FEATURE
555 tANI_U32 dtimPeriod;
556 tANI_BOOLEAN ssidHidden;
557#endif
558
559#ifdef WLAN_FEATURE_VOWIFI_11R
560 tCsr11rConfig csr11rConfig;
561#endif
562
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700563#ifdef FEATURE_WLAN_LFR
564 tANI_U8 isFastRoamIniFeatureEnabled;
565#endif
566
Jeff Johnson295189b2012-06-20 16:38:30 -0700567#ifdef FEATURE_WLAN_CCX
568 tANI_U8 isCcxIniFeatureEnabled;
569#endif
570
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700571#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -0700572 tANI_U8 isFastTransitionEnabled;
Jeff Johnson43971f52012-07-17 12:26:56 -0700573 tANI_U8 RoamRssiDiff;
Jeff Johnson295189b2012-06-20 16:38:30 -0700574#endif
575
576#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
577 tCsrNeighborRoamConfig neighborRoamConfig;
578#endif
579
580 /* Instead of Reassoc, send ADDTS/DELTS even when ACM is off for that AC
581 * This is mandated by WMM-AC certification */
582 tANI_BOOLEAN addTSWhenACMIsOff;
583
584 tANI_BOOLEAN fValidateList;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -0700585 //Remove this code once SLM_Sessionization is supported
586 //BMPS_WORKAROUND_NOT_NEEDED
Jeff Johnsone7245742012-09-05 17:12:55 -0700587 tANI_BOOLEAN doBMPSWorkaround;
Jeff Johnson295189b2012-06-20 16:38:30 -0700588
589 //To enable/disable scanning 2.4Ghz channels twice on a single scan request from HDD
590 tANI_BOOLEAN fScanTwice;
Jeff Johnsone7245742012-09-05 17:12:55 -0700591#ifdef WLAN_FEATURE_11AC
592 tANI_U32 nVhtChannelWidth;
593#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700594
595}tCsrConfig;
596
597typedef struct tagCsrChannelPowerInfo
598{
599 tListElem link;
600 tANI_U8 firstChannel;
601 tANI_U8 numChannels;
602 tANI_U8 txPower;
603 tANI_U8 interChannelOffset;
604}tCsrChannelPowerInfo;
605
606typedef struct tagRoamJoinStatus
607{
608 tSirResultCodes statusCode;
609 //this is set to unspecified if statusCode indicates timeout. Or it is the failed reason from the other BSS(per 802.11 spec)
610 tANI_U32 reasonCode;
611}tCsrRoamJoinStatus;
612
613typedef struct tagCsrOsChannelMask
614{
615 tANI_U8 numChannels;
616 tANI_BOOLEAN scanEnabled[WNI_CFG_VALID_CHANNEL_LIST_LEN];
617 tANI_U8 channelList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
618}tCsrOsChannelMask;
619
620
621typedef struct tagCsrScanStruct
622{
623 tScanProfile scanProfile;
624 tANI_U32 nextScanID;
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700625 tDblLinkList scanResultList;
Jeff Johnson295189b2012-06-20 16:38:30 -0700626 tDblLinkList tempScanResults;
627 tANI_BOOLEAN fScanEnable;
628 tANI_BOOLEAN fFullScanIssued;
629 tPalTimerHandle hTimerGetResult;
630#ifdef WLAN_AP_STA_CONCURRENCY
631 tPalTimerHandle hTimerStaApConcTimer;
632#endif
633 tPalTimerHandle hTimerIdleScan;
634 tPalTimerHandle hTimerResultAging;
635 tPalTimerHandle hTimerBgScan;
636 //changes on every scan, it is used as a flag for whether 11d info is found on every scan
637 tANI_U8 channelOf11dInfo;
638 //changes on every scan, a flag to tell whether conflict 11d info found on each BSS
639 tANI_BOOLEAN fAmbiguous11dInfoFound;
640 //Tush: changes on every scan, a flag to tell whether the applied 11d info present in one of the scan results
641 tANI_BOOLEAN fCurrent11dInfoMatch;
642 tANI_BOOLEAN f11dInfoReset; //to indicate whether the 11d info in CFG is reset to default
643 tSirScanType curScanType;
644 tCsrChannel baseChannels; //This are all the supported channels AND(&) to the current eBand
645 tCsrChannel channels11d;
646 tChannelListWithPower defaultPowerTable[WNI_CFG_VALID_CHANNEL_LIST_LEN]; //From NV
647 tChannelListWithPower defaultPowerTable40MHz[WNI_CFG_VALID_CHANNEL_LIST_LEN]; //From NV
648 tANI_U32 numChannelsDefault; //total channels of NV
649 tCsrChannel base20MHzChannels; //The channel base to work on
650 tCsrChannel base40MHzChannels; //center channels for 40MHz channels
651 tDblLinkList channelPowerInfoList24;
652 tDblLinkList channelPowerInfoList5G;
653 tANI_U32 nLastAgeTimeOut;
654 tANI_U32 nAgingCountDown;
655 tANI_U8 countryCodeDefault[WNI_CFG_COUNTRY_CODE_LEN+1]; //The country code from NV
656 tANI_U8 countryCodeCurrent[WNI_CFG_COUNTRY_CODE_LEN+1];
657 tANI_U8 countryCode11d[WNI_CFG_COUNTRY_CODE_LEN+1];
658 v_REGDOMAIN_t domainIdDefault; //default regulatory domain
659 v_REGDOMAIN_t domainIdCurrent; //current regulatory domain
660 tANI_BOOLEAN f11dInfoApplied;
661 tANI_BOOLEAN fCancelIdleScan;
662#ifdef FEATURE_WLAN_WAPI
663// tANI_U16 NumBkidCandidate;
664// tBkidCandidateInfo BkidCandidateInfo[CSR_MAX_BKID_ALLOWED]; /* Move this as part of SessionEntry */
665#endif /* FEATURE_WLAN_WAPI */
666 tANI_U8 numBGScanChannel; //number of valid channels in the bgScanChannelList
667 tANI_U8 bgScanChannelList[WNI_CFG_BG_SCAN_CHANNEL_LIST_LEN];
668 //the ChannelInfo member is not used in this structure.
669 //numBGScanChannel and bgScanChannelList are used for the BG scan channel info
670 tCsrBGScanRequest bgScanParams;
671 tANI_BOOLEAN fRestartIdleScan;
672 tANI_U32 nIdleScanTimeGap; //the time since last trying to trigger idle scan
673 tCsrOsChannelMask osScanChannelMask;//keep a track of channels to be scnned while in traffic condition
674 tANI_U16 nBssLimit; //the maximum number of BSS in scan cache
675 /*channelPowerInfoList24 has been seen corrupted. Set this flag to true trying to
676 * detect when it happens. Adding this into code because we can't reproduce it easily.
677 * We don't know when it happens. */
678 tANI_BOOLEAN fValidateList;
679 /*Customer wants to start with an active scan based on the default country code.
680 * This optimization will minimize the driver load to association time.
681 * Based on this flag we will bypass the initial passive scan needed for 11d
682 * to determine the country code & domain */
683 tANI_BOOLEAN fEnableBypass11d;
684
685 /*Customer wants to optimize the scan time. Avoiding scans(passive) on DFS
686 * channels while swipping through both bands can save some time
687 * (apprx 1.3 sec) */
688 tANI_BOOLEAN fEnableDFSChnlScan;
689
Jeff Johnsone7245742012-09-05 17:12:55 -0700690 /*
691 * To enable/disable scanning only 2.4Ghz channels on first scan
692 */
693 tANI_BOOLEAN fFirstScanOnly2GChnl;
694
Jeff Johnson295189b2012-06-20 16:38:30 -0700695 tANI_BOOLEAN fDropScanCmd; //true means we don't accept scan commands
696
697#ifdef WLAN_AP_STA_CONCURRENCY
698 tDblLinkList scanCmdPendingList;
699#endif
Madan Mohan Koyyalamudi470d2cf2012-09-28 14:43:44 -0700700 tCsrChannel occupiedChannels; //This includes all channels on which candidate APs are found
Madan Mohan Koyyalamudi3f65e312012-11-06 15:31:12 -0800701
702 tANI_BOOLEAN fIgnore_chan165;
Jeff Johnson295189b2012-06-20 16:38:30 -0700703}tCsrScanStruct;
704
705
706//Save the connected information. This structure + connectedProfile
707//should contain all information about the connection
708typedef struct tagRoamCsrConnectedInfo
709{
710 tANI_U32 nBeaconLength; //the length, in bytes, of the beacon frame, can be 0
711 tANI_U32 nAssocReqLength; //the length, in bytes, of the assoc req frame, can be 0
712 tANI_U32 nAssocRspLength; //The length, in bytes, of the assoc rsp frame, can be 0
713#ifdef WLAN_FEATURE_VOWIFI_11R
714 tANI_U32 nRICRspLength; //Length of the parsed RIC response IEs received in reassoc response
715#endif
716#ifdef FEATURE_WLAN_CCX
717 tANI_U32 nTspecIeLength;
718#endif
719 tANI_U8 *pbFrames; //Point to a buffer contain the beacon, assoc req, assoc rsp frame, in that order
720 //user needs to use nBeaconLength, nAssocReqLength, nAssocRspLength to desice where
721 //each frame starts and ends.
722 tANI_U8 staId;
723}tCsrRoamConnectedInfo;
724
725
726typedef struct tagCsrLinkQualityIndInfo
727{
728 csrRoamLinkQualityIndCallback callback;
729 void *context;
730}tCsrLinkQualityIndInfo;
731
732typedef struct tagCsrPeStatsReqInfo
733{
734 tListElem link; /* list links */
735 tANI_U32 statsMask;
736 tANI_U32 periodicity;
737 tANI_BOOLEAN rspPending;
738 vos_timer_t hPeStatsTimer;
739 tANI_BOOLEAN timerRunning;
740 tANI_U8 staId;
741 tANI_U8 numClient;
742 tpAniSirGlobal pMac;
743 /* To remember if the peStats timer is stopped successfully or not */
744 tANI_BOOLEAN timerStopFailed;
745
746}tCsrPeStatsReqInfo;
747
748typedef struct tagCsrStatsClientReqInfo
749{
750 tListElem link; /* list links */
751 eCsrStatsRequesterType requesterId;
752 tCsrStatsCallback callback;
753 tANI_U32 periodicity;
754 void *pContext;
755 tANI_U32 statsMask;
756 tCsrPeStatsReqInfo *pPeStaEntry;
757 tANI_U8 staId;
758 vos_timer_t timer;
759 tANI_BOOLEAN timerExpired;
760 tpAniSirGlobal pMac; // TODO: Confirm this change BTAMP
761}tCsrStatsClientReqInfo;
762
763typedef struct tagCsrTlStatsReqInfo
764{
765 tANI_U32 periodicity;
766 tANI_BOOLEAN timerRunning;
767 tPalTimerHandle hTlStatsTimer;
768 tANI_U8 numClient;
769}tCsrTlStatsReqInfo;
770
771typedef struct tagCsrRoamSession
772{
773 tANI_U8 sessionId; // Session ID
774 tANI_BOOLEAN sessionActive; // TRUE if it is used
775 tCsrBssid selfMacAddr; // For BT-AMP station, this serve as BSSID for self-BSS.
776 csrRoamCompleteCallback callback;
777 void *pContext;
778 eCsrConnectState connectState;
779 tCsrRoamConnectedProfile connectedProfile;
780 tCsrRoamConnectedInfo connectedInfo;
781 tCsrRoamProfile *pCurRoamProfile;
782 tSirBssDescription *pConnectBssDesc;
783 tANI_U16 NumPmkidCache;
784 tPmkidCacheInfo PmkidCacheInfo[CSR_MAX_PMKID_ALLOWED];
785 tANI_U8 cJoinAttemps;
786 //This may or may not have the up-to-date valid channel list
787 //It is used to get WNI_CFG_VALID_CHANNEL_LIST and not allocate memory all the time
788 tSirMacChanNum validChannelList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
789 tANI_S32 sPendingCommands; //0 means CSR is ok to low power
790#ifdef FEATURE_WLAN_WAPI
791 tANI_U16 NumBkidCache;
792 tBkidCacheInfo BkidCacheInfo[CSR_MAX_BKID_ALLOWED];
793#endif /* FEATURE_WLAN_WAPI */
794 tANI_BOOLEAN fRoaming; //indicate whether CSR is roaming (either via lostlink or dynamic roaming)
795 //to remember some parameters needed for START_BSS.
796 //All member must be set every time we try to join or start an IBSS or BT-AMP
797 tCsrRoamStartBssParams bssParams;
798 tANI_U32 nWpaRsnReqIeLength; //the byte count of pWpaRsnIE;
799 tANI_U8 *pWpaRsnReqIE; //this contain the WPA/RSN IE in assoc request or the one sent in beacon (IBSS)
800 tANI_U32 nWpaRsnRspIeLength; //the byte count for pWpaRsnRspIE
801 tANI_U8 *pWpaRsnRspIE; //this contain the WPA/RSN IE in beacon/probe rsp
802#ifdef FEATURE_WLAN_WAPI
803 tANI_U32 nWapiReqIeLength; //the byte count of pWapiReqIE;
804 tANI_U8 *pWapiReqIE; //this contain the WAPI IE in assoc request or the one sent in beacon (IBSS)
805 tANI_U32 nWapiRspIeLength; //the byte count for pWapiRspIE
806 tANI_U8 *pWapiRspIE; //this contain the WAPI IE in beacon/probe rsp
807#endif /* FEATURE_WLAN_WAPI */
808 tANI_U32 nAddIEScanLength; //the byte count of pAddIeScanIE;
809 tANI_U8 *pAddIEScan; //this contains the additional IE in (unicast) probe request at the time of join
810 tANI_U32 nAddIEAssocLength; //the byte count for pAddIeAssocIE
811 tANI_U8 *pAddIEAssoc; //this contains the additional IE in (re) assoc request
812
813 tANI_TIMESTAMP roamingStartTime; //in units of 10ms
814 tCsrTimerInfo roamingTimerInfo;
815 eCsrRoamingReason roamingReason;
816 tANI_BOOLEAN fCancelRoaming;
817 tPalTimerHandle hTimerRoaming;
818 tPalTimerHandle hTimerIbssJoining;
819 tCsrTimerInfo ibssJoinTimerInfo;
820 tANI_BOOLEAN ibss_join_pending;
821 eCsrRoamResult roamResult; //the roamResult that is used when the roaming timer fires
822 tCsrRoamJoinStatus joinFailStatusCode; //This is the reason code for join(assoc) failure
823 //The status code returned from PE for deauth or disassoc (in case of lostlink), or our own dynamic roaming
824 tANI_U32 roamingStatusCode;
825 tANI_U16 NumPmkidCandidate;
826 tPmkidCandidateInfo PmkidCandidateInfo[CSR_MAX_PMKID_ALLOWED];
827 #ifdef FEATURE_WLAN_WAPI
828 tANI_U16 NumBkidCandidate;
829 tBkidCandidateInfo BkidCandidateInfo[CSR_MAX_BKID_ALLOWED];
830#endif
831 tANI_BOOLEAN fWMMConnection;
832#ifdef FEATURE_WLAN_BTAMP_UT_RF
833 //To retry a join later when it fails if so desired
834 tPalTimerHandle hTimerJoinRetry;
835 tCsrTimerInfo joinRetryTimerInfo;
836 tANI_U32 maxRetryCount;
837#endif
838#ifdef FEATURE_WLAN_CCX
839 tCsrCcxCckmInfo ccxCckmInfo;
840 tANI_BOOLEAN isPrevApInfoValid;
841 tSirMacSSid prevApSSID;
842 tCsrBssid prevApBssid;
843 tANI_U8 prevOpChannel;
844 tANI_U16 clientDissSecs;
845 tANI_U32 roamTS1;
846#endif
847 tANI_U8 bRefAssocStartCnt; //Tracking assoc start indication
Madan Mohan Koyyalamudiea22cdc2012-10-18 21:02:23 -0700848 /* to force the AP initiate fresh 802.1x authentication after re-association need to clear
849 * the PMKID cache. To clear the cache in this particular case this is added
850 * it is needed by the HS 2.0 passpoint certification 5.2.a and b testcases */
851 tANI_BOOLEAN fIgnorePMKIDCache;
Jeff Johnson295189b2012-06-20 16:38:30 -0700852} tCsrRoamSession;
853
854typedef struct tagCsrRoamStruct
855{
856 tANI_U32 nextRoamId;
857 tDblLinkList roamCmdPendingList;
858 tDblLinkList channelList5G;
859 tDblLinkList channelList24;
860 tCsrConfig configParam;
861 tANI_U32 numChannelsEeprom; //total channels of eeprom
862 tCsrChannel base20MHzChannels; //The channel base to work on
863 tCsrChannel base40MHzChannels; //center channels for 40MHz channels
864 eCsrRoamState curState[CSR_ROAM_SESSION_MAX];
865 eCsrRoamSubState curSubState[CSR_ROAM_SESSION_MAX];
866 //This may or may not have the up-to-date valid channel list
867 //It is used to get WNI_CFG_VALID_CHANNEL_LIST and not allocate memory all the time
868 tSirMacChanNum validChannelList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
869 tANI_U32 numValidChannels; //total number of channels in CFG
870
871 tANI_S32 sPendingCommands;
872 tChannelListWithPower *powerTableFromEeprom;
873 tChannelListWithPower *powerTableFromEeprom40MHz;
874 tPalTimerHandle hTimerWaitForKey; //To support timeout for WaitForKey state
875 tCsrSummaryStatsInfo summaryStatsInfo;
876 tCsrGlobalClassAStatsInfo classAStatsInfo;
877 tCsrGlobalClassBStatsInfo classBStatsInfo;
878 tCsrGlobalClassCStatsInfo classCStatsInfo;
879 tCsrGlobalClassDStatsInfo classDStatsInfo;
880 tCsrPerStaStatsInfo perStaStatsInfo[CSR_MAX_STA];
881 tDblLinkList statsClientReqList;
882 tDblLinkList peStatsReqList;
883 tCsrTlStatsReqInfo tlStatsReqInfo;
884 eCsrRoamLinkQualityInd vccLinkQuality;
885 tCsrLinkQualityIndInfo linkQualityIndInfo;
886 v_CONTEXT_t gVosContext; //used for interaction with TL
887 //To specify whether an association or a IBSS is WMM enabled
888 //This parameter is only valid during a join or start BSS command is being executed
889 //tANI_BOOLEAN fWMMConnection; /* Moving it to be part of roamsession */
890 v_U8_t ucACWeights[WLANTL_MAX_AC];
891 /* TODO : Upto here */
892 tCsrTimerInfo WaitForKeyTimerInfo;
893 tCsrRoamSession *roamSession;
894 tANI_U32 transactionId; // Current transaction ID for internal use.
895#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
896 tCsrNeighborRoamControlInfo neighborRoamInfo;
897#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700898#ifdef FEATURE_WLAN_LFR
899 tANI_U8 isFastRoamIniFeatureEnabled;
900#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700901#ifdef FEATURE_WLAN_CCX
902 tANI_U8 isCcxIniFeatureEnabled;
903#endif
Jeff Johnson43971f52012-07-17 12:26:56 -0700904#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
905 tANI_U8 RoamRssiDiff;
906#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700907}tCsrRoamStruct;
908
909
910#define GET_NEXT_ROAM_ID(pRoamStruct) (((pRoamStruct)->nextRoamId + 1 == 0) ? 1 : (pRoamStruct)->nextRoamId)
911#define CSR_IS_ROAM_STATE(pMac, state, sessionId) ( (state) == (pMac)->roam.curState[sessionId] )
912
913#define CSR_IS_ROAM_STOP(pMac, sessionId) CSR_IS_ROAM_STATE( (pMac), eCSR_ROAMING_STATE_STOP, sessionId )
914#define CSR_IS_ROAM_INIT(pMac, sessionId) CSR_IS_ROAM_STATE( (pMac), eCSR_ROAMING_STATE_INIT, sessionId )
915#define CSR_IS_ROAM_SCANNING(pMac, sessionId) CSR_IS_ROAM_STATE( pMac, eCSR_ROAMING_STATE_SCANNING, sessionId )
916#define CSR_IS_ROAM_JOINING(pMac, sessionId) CSR_IS_ROAM_STATE( pMac, eCSR_ROAMING_STATE_JOINING, sessionId )
917#define CSR_IS_ROAM_IDLE(pMac, sessionId) CSR_IS_ROAM_STATE( pMac, eCSR_ROAMING_STATE_IDLE, sessionId )
918#define CSR_IS_ROAM_JOINED(pMac, sessionId) CSR_IS_ROAM_STATE( pMac, eCSR_ROAMING_STATE_JOINED, sessionId )
919
920#define CSR_IS_ROAM_SUBSTATE(pMac, subState, sessionId) ((subState) == (pMac)->roam.curSubState[sessionId])
921#define CSR_IS_ROAM_SUBSTATE_JOIN_REQ(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_JOIN_REQ, sessionId)
922#define CSR_IS_ROAM_SUBSTATE_AUTH_REQ(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_AUTH_REQ, sessionId)
923#define CSR_IS_ROAM_SUBSTATE_REASSOC_REQ(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_REASSOC_REQ, sessionId)
924#define CSR_IS_ROAM_SUBSTATE_DISASSOC_REQ(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_DISASSOC_REQ, sessionId)
925#define CSR_IS_ROAM_SUBSTATE_DISASSOC_NO_JOIN(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_DISASSOC_NOTHING_TO_JOIN, sessionId)
926#define CSR_IS_ROAM_SUBSTATE_REASSOC_FAIL(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_DISASSOC_REASSOC_FAILURE, sessionId)
927#define CSR_IS_ROAM_SUBSTATE_DISASSOC_FORCED(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_DISASSOC_FORCED, sessionId)
928#define CSR_IS_ROAM_SUBSTATE_DEAUTH_REQ(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_DEAUTH_REQ, sessionId)
929#define CSR_IS_ROAM_SUBSTATE_START_BSS_REQ(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_START_BSS_REQ, sessionId)
930#define CSR_IS_ROAM_SUBSTATE_STOP_BSS_REQ(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_STOP_BSS_REQ, sessionId)
931#define CSR_IS_ROAM_SUBSTATE_DISCONNECT_CONTINUE(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_DISCONNECT_CONTINUE_ROAMING, sessionId)
932#define CSR_IS_ROAM_SUBSTATE_CONFIG(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_CONFIG, sessionId)
933#define CSR_IS_ROAM_SUBSTATE_WAITFORKEY(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_WAIT_FOR_KEY, sessionId)
934#define CSR_IS_ROAM_SUBSTATE_DISASSOC_HO(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_DISASSOC_HANDOFF, sessionId)
935#define CSR_IS_ROAM_SUBSTATE_HO_NT(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_JOINED_NO_TRAFFIC, sessionId)
936#define CSR_IS_ROAM_SUBSTATE_HO_NRT(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_JOINED_NON_REALTIME_TRAFFIC, sessionId)
937#define CSR_IS_ROAM_SUBSTATE_HO_RT(pMac, sessionId) CSR_IS_ROAM_SUBSTATE((pMac), eCSR_ROAM_SUBSTATE_JOINED_REALTIME_TRAFFIC, sessionId)
938
939#define CSR_IS_PHY_MODE_B_ONLY(pMac) \
940 ((eCSR_DOT11_MODE_11b == (pMac)->roam.configParam.phyMode) ||\
941 (eCSR_DOT11_MODE_11b_ONLY == (pMac)->roam.configParam.phyMode))
942
943#define CSR_IS_PHY_MODE_G_ONLY(pMac) \
944 (eCSR_DOT11_MODE_11g == (pMac)->roam.configParam.phyMode || eCSR_DOT11_MODE_11g_ONLY == (pMac)->roam.configParam.phyMode)
945
946#define CSR_IS_PHY_MODE_A_ONLY(pMac) \
947 ((eCSR_DOT11_MODE_11a == (pMac)->roam.configParam.phyMode) ||\
948 (eCSR_DOT11_MODE_11a_ONLY == (pMac)->roam.configParam.phyMode))
949
Jeff Johnsone7245742012-09-05 17:12:55 -0700950#ifdef WLAN_FEATURE_11AC
951#define CSR_IS_PHY_MODE_DUAL_BAND(phyMode) \
952 ((eCSR_DOT11_MODE_abg & (phyMode)) || (eCSR_DOT11_MODE_11n & (phyMode)) || \
953 (eCSR_DOT11_MODE_11ac & (phyMode)) || \
954 (eCSR_DOT11_MODE_TAURUS & (phyMode)) || \
955 (eCSR_DOT11_MODE_AUTO & (phyMode)))
956#else
Jeff Johnson295189b2012-06-20 16:38:30 -0700957#define CSR_IS_PHY_MODE_DUAL_BAND(phyMode) \
958 ((eCSR_DOT11_MODE_abg & (phyMode)) || (eCSR_DOT11_MODE_11n & (phyMode)) || \
959 (eCSR_DOT11_MODE_TAURUS & (phyMode)) || \
960 (eCSR_DOT11_MODE_AUTO & (phyMode)))
Jeff Johnsone7245742012-09-05 17:12:55 -0700961#endif
962
Jeff Johnson295189b2012-06-20 16:38:30 -0700963
964// this function returns TRUE if the NIC is operating exclusively in the 2.4 GHz band, meaning
965// it is NOT operating in the 5.0 GHz band.
966#define CSR_IS_24_BAND_ONLY(pMac) \
967 (eCSR_BAND_24 == (pMac)->roam.configParam.eBand)
968
969#define CSR_IS_5G_BAND_ONLY(pMac) \
970 (eCSR_BAND_5G == (pMac)->roam.configParam.eBand)
971
972#define CSR_IS_RADIO_DUAL_BAND(pMac) \
973 (eCSR_BAND_ALL == (pMac)->roam.configParam.bandCapability)
974
975#define CSR_IS_RADIO_BG_ONLY(pMac) \
976 (eCSR_BAND_24 == (pMac)->roam.configParam.bandCapability)
977
978// this function returns TRUE if the NIC is operating exclusively in the 5.0 GHz band, meaning
979// it is NOT operating in the 2.4 GHz band
980#define CSR_IS_RADIO_A_ONLY(pMac) \
981 (eCSR_BAND_5G == (pMac)->roam.configParam.bandCapability)
982
983// this function returns TRUE if the NIC is operating in both bands.
984#define CSR_IS_OPEARTING_DUAL_BAND(pMac) \
985 ((eCSR_BAND_ALL == (pMac)->roam.configParam.bandCapability) && (eCSR_BAND_ALL == (pMac)->roam.configParam.eBand))
986
987// this function returns TRUE if the NIC can operate in the 5.0 GHz band (could operate in the
988// 2.4 GHz band also).
989#define CSR_IS_OPERATING_A_BAND(pMac) \
990 (CSR_IS_OPEARTING_DUAL_BAND((pMac)) || CSR_IS_RADIO_A_ONLY((pMac)) || CSR_IS_5G_BAND_ONLY((pMac)))
991
992// this function returns TRUE if the NIC can operate in the 2.4 GHz band (could operate in the
993// 5.0 GHz band also).
994#define CSR_IS_OPERATING_BG_BAND(pMac) \
995 (CSR_IS_OPEARTING_DUAL_BAND((pMac)) || CSR_IS_RADIO_BG_ONLY((pMac)) || CSR_IS_24_BAND_ONLY((pMac)))
996
997#define CSR_IS_CHANNEL_5GHZ(chnNum) \
Jeff Johnsone7245742012-09-05 17:12:55 -0700998 (((chnNum) >= CSR_MIN_5GHz_CHANNEL_NUMBER) && ((chnNum) <= CSR_MAX_5GHz_CHANNEL_NUMBER))
Jeff Johnson295189b2012-06-20 16:38:30 -0700999
1000#define CSR_IS_CHANNEL_24GHZ(chnNum) \
1001 (((chnNum) > 0) && ((chnNum) <= CSR_MAX_24GHz_CHANNEL_NUMBER))
1002
1003#define CSR_IS_SAME_BAND_CHANNELS(ch1, ch2) (CSR_IS_CHANNEL_5GHZ(ch1) == CSR_IS_CHANNEL_5GHZ(ch2))
1004
1005
1006#define CSR_IS_11D_INFO_FOUND(pMac) \
1007 (0 != (pMac)->scan.channelOf11dInfo)
1008// DEAUTHIND
1009#define CSR_IS_ROAMING(pSession) ((CSR_IS_LOSTLINK_ROAMING((pSession)->roamingReason)) || \
1010 (eCsrDynamicRoaming == (pSession)->roamingReason) || \
1011 (eCsrReassocRoaming == (pSession)->roamingReason))
1012
1013
1014#define CSR_IS_SET_KEY_COMMAND( pCommand ) ( eSmeCommandSetKey == (pCommand)->command )
1015
1016#define CSR_IS_ADDTS_WHEN_ACMOFF_SUPPORTED(pMac) (pMac->roam.configParam.addTSWhenACMIsOff)
1017// DEAUTHIND
1018#define CSR_IS_LOSTLINK_ROAMING(reason) ((eCsrLostlinkRoamingDisassoc == (reason)) || (eCsrLostlinkRoamingDeauth == (reason)))
1019
1020//Stop CSR from asking for IMPS, This function doesn't disable IMPS from CSR
1021void csrScanSuspendIMPS( tpAniSirGlobal pMac );
1022//Start CSR from asking for IMPS. This function doesn't trigger CSR to request entering IMPS
1023//because IMPS maybe disabled.
1024void csrScanResumeIMPS( tpAniSirGlobal pMac );
1025
1026eHalStatus csrInitGetChannels(tpAniSirGlobal pMac);
1027
1028eHalStatus csrSetModifyProfileFields(tpAniSirGlobal pMac, tANI_U32 sessionId,
1029 tCsrRoamModifyProfileFields *pModifyProfileFields);
1030/* ---------------------------------------------------------------------------
1031 \fn csrGetModifyProfileFields
1032 \brief HDD or SME - QOS calls this function to get the current values of
1033 connected profile fields changing which can cause reassoc.
1034 This function must be called after CFG is downloaded and STA is in connected
1035 state.
1036 \param pModifyProfileFields - pointer to the connected profile fields
1037 changing which can cause reassoc
1038
1039 \return eHalStatus
1040 -------------------------------------------------------------------------------*/
1041eHalStatus csrGetModifyProfileFields(tpAniSirGlobal pMac, tANI_U32 sessionId,
1042 tCsrRoamModifyProfileFields * pModifyProfileFields);
1043void csrSetGlobalCfgs( tpAniSirGlobal pMac );
1044void csrSetDefaultDot11Mode( tpAniSirGlobal pMac );
1045void csrScanSetChannelMask(tpAniSirGlobal pMac, tCsrChannelInfo *pChannelInfo);
1046tANI_BOOLEAN csrIsConnStateDisconnected(tpAniSirGlobal pMac, tANI_U32 sessionId);
1047tANI_BOOLEAN csrIsConnStateConnectedIbss( tpAniSirGlobal pMac, tANI_U32 sessionId );
1048tANI_BOOLEAN csrIsConnStateDisconnectedIbss( tpAniSirGlobal pMac, tANI_U32 sessionId );
1049tANI_BOOLEAN csrIsConnStateConnectedInfra( tpAniSirGlobal pMac, tANI_U32 sessionId );
1050tANI_BOOLEAN csrIsConnStateConnected( tpAniSirGlobal pMac, tANI_U32 sessionId );
1051tANI_BOOLEAN csrIsConnStateInfra( tpAniSirGlobal pMac, tANI_U32 sessionId );
1052tANI_BOOLEAN csrIsConnStateIbss( tpAniSirGlobal pMac, tANI_U32 sessionId );
1053tANI_BOOLEAN csrIsConnStateWds( tpAniSirGlobal pMac, tANI_U32 sessionId );
1054tANI_BOOLEAN csrIsConnStateConnectedWds( tpAniSirGlobal pMac, tANI_U32 sessionId );
1055tANI_BOOLEAN csrIsConnStateDisconnectedWds( tpAniSirGlobal pMac, tANI_U32 sessionId );
1056tANI_BOOLEAN csrIsAnySessionInConnectState( tpAniSirGlobal pMac );
1057tANI_BOOLEAN csrIsAllSessionDisconnected( tpAniSirGlobal pMac );
Madan Mohan Koyyalamudid3d22592012-09-24 14:01:29 -07001058tANI_BOOLEAN csrIsAnySessionConnected( tpAniSirGlobal pMac );
Jeff Johnson295189b2012-06-20 16:38:30 -07001059tANI_BOOLEAN csrIsInfraConnected( tpAniSirGlobal pMac );
1060tANI_BOOLEAN csrIsConcurrentInfraConnected( tpAniSirGlobal pMac );
Jeff Johnsone7245742012-09-05 17:12:55 -07001061tANI_BOOLEAN csrIsConcurrentSessionRunning( tpAniSirGlobal pMac );
Jeff Johnsone7245742012-09-05 17:12:55 -07001062tANI_BOOLEAN csrIsInfraApStarted( tpAniSirGlobal pMac );
Jeff Johnson295189b2012-06-20 16:38:30 -07001063tANI_BOOLEAN csrIsIBSSStarted( tpAniSirGlobal pMac );
1064tANI_BOOLEAN csrIsBTAMPStarted( tpAniSirGlobal pMac );
1065tANI_BOOLEAN csrIsBTAMP( tpAniSirGlobal pMac, tANI_U32 sessionId );
1066eHalStatus csrIsBTAMPAllowed( tpAniSirGlobal pMac, tANI_U32 chnId );
Jeff Johnsone7245742012-09-05 17:12:55 -07001067tANI_BOOLEAN csrIsValidMcConcurrentSession(tpAniSirGlobal pMac, tANI_U32 sessionId,
1068 tSirBssDescription *pBssDesc);
Jeff Johnson295189b2012-06-20 16:38:30 -07001069#ifdef WLAN_SOFTAP_FEATURE
1070tANI_BOOLEAN csrIsConnStateConnectedInfraAp( tpAniSirGlobal pMac, tANI_U32 sessionId );
1071#endif
1072/*----------------------------------------------------------------------------
1073 \fn csrRoamRegisterLinkQualityIndCallback
1074
1075 \brief
1076 a CSR function to allow HDD to register a callback handler with CSR for
1077 link quality indications.
1078
1079 Only one callback may be registered at any time.
1080 In order to deregister the callback, a NULL cback may be provided.
1081
1082 Registration happens in the task context of the caller.
1083
1084 \param callback - Call back being registered
1085 \param pContext - user data
1086
1087 DEPENDENCIES: After CSR open
1088
1089 \return eHalStatus
1090-----------------------------------------------------------------------------*/
1091eHalStatus csrRoamRegisterLinkQualityIndCallback(tpAniSirGlobal pMac,
1092 csrRoamLinkQualityIndCallback callback,
1093 void *pContext);
1094/* ---------------------------------------------------------------------------
1095 \fn csrGetStatistics
1096 \brief csr function that client calls to register a callback to get
1097 different PHY level statistics from CSR.
1098
1099 \param requesterId - different client requesting for statistics, HDD, UMA/GAN etc
1100 \param statsMask - The different category/categories of stats requester is looking for
1101 \param callback - SME sends back the requested stats using the callback
1102 \param periodicity - If requester needs periodic update, 0 means it's an one
1103 time request
1104 \param cache - If requester is happy with cached stats
1105 \param staId - The station ID for which the stats is requested for
1106 \param pContext - user context to be passed back along with the callback
1107
1108 \return eHalStatus
1109 ---------------------------------------------------------------------------*/
1110eHalStatus csrGetStatistics(tpAniSirGlobal pMac, eCsrStatsRequesterType requesterId,
1111 tANI_U32 statsMask,
1112 tCsrStatsCallback callback,
1113 tANI_U32 periodicity, tANI_BOOLEAN cache,
1114 tANI_U8 staId, void *pContext);
1115
1116
1117eHalStatus csrGetRssi(tpAniSirGlobal pMac,tCsrRssiCallback callback,tANI_U8 staId,tCsrBssid bssId,void * pContext,void * pVosContext);
1118eHalStatus csrRoamRegisterCallback(tpAniSirGlobal pMac, csrRoamCompleteCallback callback, void *pContext);
1119/* ---------------------------------------------------------------------------
1120 \fn csrGetConfigParam
1121 \brief HDD calls this function to get the global settings currently maintained by CSR.
1122 \param pParam - caller allocated memory
1123 \return eHalStatus
1124 -------------------------------------------------------------------------------*/
1125eHalStatus csrGetConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pParam);
1126
1127/* ---------------------------------------------------------------------------
1128 \fn csrMsgProcessor
1129 \brief HDD calls this function to change some global settings.
1130 caller must set the all fields or call csrGetConfigParam to prefill the fields.
1131 \param pParam - caller allocated memory
1132 \return eHalStatus
1133 -------------------------------------------------------------------------------*/
1134eHalStatus csrChangeDefaultConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pParam);
1135
1136
1137/* ---------------------------------------------------------------------------
1138 \fn csrMsgProcessor
1139 \brief HDD calls this function for the messages that are handled by CSR.
1140 \param pMsgBuf - a pointer to a buffer that maps to various structures base on the message type.
1141 The beginning of the buffer can always map to tSirSmeRsp.
1142 \return eHalStatus
1143 -------------------------------------------------------------------------------*/
1144eHalStatus csrMsgProcessor( tpAniSirGlobal pMac, void *pMsgBuf );
1145
1146/* ---------------------------------------------------------------------------
1147 \fn csrOpen
1148 \brief This function must be called before any API call to CSR.
1149 \return eHalStatus
1150 -------------------------------------------------------------------------------*/
1151eHalStatus csrOpen(tpAniSirGlobal pMac);
1152/* ---------------------------------------------------------------------------
1153 \fn csrClose
1154 \brief To close down CSR module. There should not be any API call into CSR after calling this function.
1155 \return eHalStatus
1156 -------------------------------------------------------------------------------*/
1157eHalStatus csrClose(tpAniSirGlobal pMac);
1158/* ---------------------------------------------------------------------------
1159 \fn csrStart
1160 \brief To start CSR.
1161 \return eHalStatus
1162 -------------------------------------------------------------------------------*/
1163eHalStatus csrStart(tpAniSirGlobal pMac);
1164/* ---------------------------------------------------------------------------
1165 \fn csrStop
1166 \brief To stop CSR. CSR still keeps its current setting.
1167 \return eHalStatus
1168 -------------------------------------------------------------------------------*/
1169eHalStatus csrStop(tpAniSirGlobal pMac);
1170/* ---------------------------------------------------------------------------
1171 \fn csrReady
1172 \brief To let CSR is ready to operate
1173 \return eHalStatus
1174 -------------------------------------------------------------------------------*/
1175eHalStatus csrReady(tpAniSirGlobal pMac);
1176
1177#ifdef FEATURE_WLAN_WAPI
1178eHalStatus csrRoamGetBKIDCache(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 *pNum,
1179 tBkidCacheInfo *pBkidCache);
1180
1181
1182eHalStatus csrScanGetBKIDCandidateList(tpAniSirGlobal pMac, tANI_U32 sessionId,
1183 tBkidCandidateInfo *pBkidList, tANI_U32 *pNumItems );
1184tANI_U32 csrRoamGetNumBKIDCache(tpAniSirGlobal pMac, tANI_U32 sessionId);
1185eHalStatus csrRoamSetBKIDCache( tpAniSirGlobal pMac, tANI_U32 sessionId, tBkidCacheInfo *pBKIDCache,
1186 tANI_U32 numItems );
1187/* ---------------------------------------------------------------------------
1188 \fn csrRoamGetWapiReqIE
1189 \brief return the WAPI IE CSR passes to PE to JOIN request or START_BSS request
1190 \param pLen - caller allocated memory that has the length of pBuf as input. Upon returned, *pLen has the
1191 needed or IE length in pBuf.
1192 \param pBuf - Caller allocated memory that contain the IE field, if any, upon return
1193 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
1194 -------------------------------------------------------------------------------*/
1195eHalStatus csrRoamGetWapiReqIE(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 *pLen, tANI_U8 *pBuf);
1196
1197/* ---------------------------------------------------------------------------
1198 \fn csrRoamGetWapiRspIE
1199 \brief return the WAPI IE from the beacon or probe rsp if connected
1200 \param pLen - caller allocated memory that has the length of pBuf as input. Upon returned, *pLen has the
1201 needed or IE length in pBuf.
1202 \param pBuf - Caller allocated memory that contain the IE field, if any, upon return
1203 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
1204 -------------------------------------------------------------------------------*/
1205eHalStatus csrRoamGetWapiRspIE(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 *pLen, tANI_U8 *pBuf);
1206tANI_U8 csrConstructWapiIe( tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
1207 tSirBssDescription *pSirBssDesc, tDot11fBeaconIEs *pIes, tCsrWapiIe *pWapiIe );
1208#endif /* FEATURE_WLAN_WAPI */
1209
1210#ifdef WLAN_SOFTAP_FEATURE
1211eHalStatus csrRoamUpdateAPWPSIE( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirAPWPSIEs *pAPWPSIES );
1212eHalStatus csrRoamUpdateWPARSNIEs( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirRSNie * pAPSirRSNie);
1213#endif
1214void csrSetCfgPrivacy( tpAniSirGlobal pMac, tCsrRoamProfile *pProfile, tANI_BOOLEAN fPrivacy );
1215tANI_S8 csrGetInfraSessionId( tpAniSirGlobal pMac );
1216tANI_U8 csrGetInfraOperationChannel( tpAniSirGlobal pMac, tANI_U8 sessionId);
1217tANI_U8 csrGetConcurrentOperationChannel( tpAniSirGlobal pMac );
1218
1219eHalStatus csrRoamCopyConnectProfile(tpAniSirGlobal pMac, tANI_U32 sessionId,
1220 tCsrRoamConnectedProfile *pProfile);
1221tANI_BOOLEAN csrIsSetKeyAllowed(tpAniSirGlobal pMac, tANI_U32 sessionId);
1222
1223void csrSetOppositeBandChannelInfo( tpAniSirGlobal pMac );
1224void csrConstructCurrentValidChannelList( tpAniSirGlobal pMac, tDblLinkList *pChannelSetList,
1225 tANI_U8 *pChannelList, tANI_U8 bSize, tANI_U8 *pNumChannels );
1226
1227#endif
1228
1229#ifdef WLAN_FEATURE_VOWIFI_11R
1230//Returns whether the current association is a 11r assoc or not
1231tANI_BOOLEAN csrRoamIs11rAssoc(tpAniSirGlobal pMac);
1232#endif
1233
1234#ifdef FEATURE_WLAN_CCX
1235//Returns whether the current association is a CCX assoc or not
1236tANI_BOOLEAN csrRoamIsCCXAssoc(tpAniSirGlobal pMac);
1237#endif
1238
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07001239//Remove this code once SLM_Sessionization is supported
1240//BMPS_WORKAROUND_NOT_NEEDED
Jeff Johnson295189b2012-06-20 16:38:30 -07001241void csrDisconnectAllActiveSessions(tpAniSirGlobal pMac);
Mohit Khanna349bc392012-09-11 17:24:52 -07001242
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001243#ifdef FEATURE_WLAN_LFR
1244//Returns whether "Legacy Fast Roaming" is enabled...or not
1245tANI_BOOLEAN csrRoamIsFastRoamEnabled(tpAniSirGlobal pMac);
Madan Mohan Koyyalamudi470d2cf2012-09-28 14:43:44 -07001246tANI_BOOLEAN csrIsChannelPresentInList( tANI_U8 *pChannelList, int numChannels, tANI_U8 channel );
1247VOS_STATUS csrAddToChannelListFront( tANI_U8 *pChannelList, int numChannels, tANI_U8 channel );
1248tANI_BOOLEAN csrNeighborRoamIsSsidCandidateMatch( tpAniSirGlobal pMac, tDot11fBeaconIEs *pIes);
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001249#endif
1250