blob: 8d768453101b6f6ac6fcd2a3142beb5b64051d37 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Abhishek Singh5f693202016-01-06 13:47:33 +05302 * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
Kiet Lam0fb93dd2014-02-19 00:32:59 -08003 *
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.
Gopichand Nakkala92f07d82013-01-08 21:16:34 -080020 */
Kiet Lam0fb93dd2014-02-19 00:32:59 -080021
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
Jeff Johnson295189b2012-06-20 16:38:30 -070028/** ------------------------------------------------------------------------- *
29 ------------------------------------------------------------------------- *
30
31
32 \file csrInsideApi.h
33
34 Define interface only used by CSR.
Jeff Johnson295189b2012-06-20 16:38:30 -070035 ========================================================================== */
36#ifndef CSR_INSIDE_API_H__
37#define CSR_INSIDE_API_H__
38
39
Anand N Sunkadb3ab97d2015-07-29 09:58:13 +053040#include <linux/version.h>
Jeff Johnson295189b2012-06-20 16:38:30 -070041#include "csrSupport.h"
42#include "smeInside.h"
43#include "vos_nvitem.h"
44
45#define CSR_PASSIVE_MAX_CHANNEL_TIME 110
46#define CSR_PASSIVE_MIN_CHANNEL_TIME 60
47
48#define CSR_ACTIVE_MAX_CHANNEL_TIME 40
49#define CSR_ACTIVE_MIN_CHANNEL_TIME 20
50
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -080051#define CSR_ACTIVE_MAX_CHANNEL_TIME_BTC 120
52#define CSR_ACTIVE_MIN_CHANNEL_TIME_BTC 60
53
Jeff Johnson295189b2012-06-20 16:38:30 -070054#ifdef WLAN_AP_STA_CONCURRENCY
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -070055#define CSR_PASSIVE_MAX_CHANNEL_TIME_CONC 110
56#define CSR_PASSIVE_MIN_CHANNEL_TIME_CONC 60
57
Jeff Johnson295189b2012-06-20 16:38:30 -070058#define CSR_ACTIVE_MAX_CHANNEL_TIME_CONC 27
59#define CSR_ACTIVE_MIN_CHANNEL_TIME_CONC 20
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -070060
Madan Mohan Koyyalamudi4805fa82012-11-09 17:53:39 -080061#define CSR_REST_TIME_CONC 100
Vinay Malekal05fdc812012-12-17 13:04:30 -080062
Sudhir Sattayappa Kohallieb97d502013-05-22 23:16:42 -070063#define CSR_NUM_STA_CHAN_COMBINED_CONC 3
64#define CSR_NUM_P2P_CHAN_COMBINED_CONC 1
Jeff Johnson295189b2012-06-20 16:38:30 -070065#endif
66
67#define CSR_MAX_NUM_SUPPORTED_CHANNELS 55
68
Jeff Johnsone7245742012-09-05 17:12:55 -070069#define CSR_MAX_2_4_GHZ_SUPPORTED_CHANNELS 14
70
Deepthi Gowri50e2fa52016-03-17 15:30:53 +053071#define CSR_MAX_BSS_SUPPORT 512
Srinivas Girigowda5cecb202013-10-08 09:13:25 -070072#define SYSTEM_TIME_MSEC_TO_USEC 1000
Jeff Johnson295189b2012-06-20 16:38:30 -070073
74//This number minus 1 means the number of times a channel is scanned before a BSS is remvoed from
75//cache scan result
76#define CSR_AGING_COUNT 3
77//The following defines are used by palTimer
78//This is used for palTimer when request to imps fails
79#define CSR_IDLE_SCAN_WAIT_TIME (1 * PAL_TIMER_TO_SEC_UNIT) //1 second
80//This is used for palTimer when imps ps is disabled
81//This number shall not be smaller than 5-6 seconds in general because a full scan may take 3-4 seconds
82#define CSR_IDLE_SCAN_NO_PS_INTERVAL (10 * PAL_TIMER_TO_SEC_UNIT) //10 second
83#define CSR_IDLE_SCAN_NO_PS_INTERVAL_MIN (5 * PAL_TIMER_TO_SEC_UNIT)
84#define CSR_SCAN_GET_RESULT_INTERVAL (5 * PAL_TIMER_TO_SEC_UNIT) //5 seconds
Jeff Johnson295189b2012-06-20 16:38:30 -070085#define CSR_MIC_ERROR_TIMEOUT (60 * PAL_TIMER_TO_SEC_UNIT) //60 seconds
86#define CSR_TKIP_COUNTER_MEASURE_TIMEOUT (60 * PAL_TIMER_TO_SEC_UNIT) //60 seconds
87#define CSR_SCAN_RESULT_AGING_INTERVAL (5 * PAL_TIMER_TO_SEC_UNIT) //5 seconds
88//the following defines are NOT used by palTimer
89#define CSR_SCAN_AGING_TIME_NOT_CONNECT_NO_PS 50 //50 seconds
90#define CSR_SCAN_AGING_TIME_NOT_CONNECT_W_PS 300 //300 seconds
91#define CSR_SCAN_AGING_TIME_CONNECT_NO_PS 150 //150 seconds
92#define CSR_SCAN_AGING_TIME_CONNECT_W_PS 600 //600 seconds
93#define CSR_JOIN_FAILURE_TIMEOUT_DEFAULT ( 3000 )
Jeff Johnsone7245742012-09-05 17:12:55 -070094#define CSR_JOIN_FAILURE_TIMEOUT_MIN (1000) //minimal value
Jeff Johnson295189b2012-06-20 16:38:30 -070095//These are going against the signed RSSI (tANI_S8) so it is between -+127
96#define CSR_BEST_RSSI_VALUE (-30) //RSSI >= this is in CAT4
97#define CSR_DEFAULT_RSSI_DB_GAP 30 //every 30 dbm for one category
98#define CSR_BSS_CAP_VALUE_NONE 0 //not much value
99#define CSR_BSS_CAP_VALUE_HT 2
100#define CSR_BSS_CAP_VALUE_WMM 1
101#define CSR_BSS_CAP_VALUE_UAPSD 1
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800102#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -0800103#define CSR_BSS_CAP_VALUE_5GHZ 1
104#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700105#define CSR_DEFAULT_ROAMING_TIME 10 //10 seconds
106#define CSR_ROAM_MIN(X, Y) ((X) < (Y) ? (X) : (Y))
107#define CSR_ROAM_MAX(X, Y) ((X) > (Y) ? (X) : (Y))
108
109#ifdef FEATURE_WLAN_BTAMP_UT_RF
110#define CSR_JOIN_MAX_RETRY_COUNT 10
111#define CSR_JOIN_RETRY_TIMEOUT_PERIOD ( 1 * PAL_TIMER_TO_SEC_UNIT ) // 1 second
112#endif
113
114typedef enum
115{
116 eCsrNextScanNothing,
117 eCsrNextLostLinkScan1Success,
118 eCsrNextLostLinkScan1Failed,
119 eCsrNextLostLinkScan2Success,
120 eCsrNextLostLinkScan2Failed,
121 eCsrNextLostLinkScan3Success,
122 eCsrNexteScanForSsidSuccess,
123 eCsrNextLostLinkScan3Failed,
124 eCsrNext11dScan1Failure,
125 eCsrNext11dScan1Success,
126 eCsrNext11dScan2Failure,
127 eCsrNext11dScan2Success,
128 eCsrNext11dScanComplete,
129 eCsrNexteScanForSsidFailure,
130 eCsrNextIdleScanComplete,
131 eCsrNextCapChangeScanComplete,
132
133}eCsrScanCompleteNextCommand;
134
135typedef enum
136{
137 eCsrJoinSuccess,
138 eCsrJoinFailure,
139 eCsrReassocSuccess,
140 eCsrReassocFailure,
141 eCsrNothingToJoin,
142 eCsrStartBssSuccess,
143 eCsrStartBssFailure,
144 eCsrSilentlyStopRoaming,
145 eCsrSilentlyStopRoamingSaveState,
146 eCsrJoinWdsFailure,
Jeff Johnsone7245742012-09-05 17:12:55 -0700147 eCsrJoinFailureDueToConcurrency,
Jeff Johnson295189b2012-06-20 16:38:30 -0700148
149}eCsrRoamCompleteResult;
150
151typedef struct tagScanReqParam
152{
153 tANI_U8 bReturnAfter1stMatch;
154 tANI_U8 fUniqueResult;
155 tANI_U8 freshScan;
156 tANI_U8 hiddenSsid;
157 tANI_U8 reserved;
158}tScanReqParam;
159
160typedef struct tagCsrScanResult
161{
162 tListElem Link;
163 tANI_S32 AgingCount; //This BSS is removed when it reaches 0 or less
164 tANI_U32 preferValue; //The bigger the number, the better the BSS. This value override capValue
165 tANI_U32 capValue; //The biggger the better. This value is in use only if we have equal preferValue
166 //This member must be the last in the structure because the end of tSirBssDescription (inside) is an
167 // array with nonknown size at this time
168
169 eCsrEncryptionType ucEncryptionType; //Preferred Encryption type that matched with profile.
170 eCsrEncryptionType mcEncryptionType;
171 eCsrAuthType authType; //Preferred auth type that matched with the profile.
172
173 tCsrScanResultInfo Result;
174}tCsrScanResult;
175
176typedef struct
177{
178 tDblLinkList List;
179 tListElem *pCurEntry;
180}tScanResultList;
181
182
183
184
185#define CSR_IS_ROAM_REASON( pCmd, reason ) ( (reason) == (pCmd)->roamCmd.roamReason )
186#define CSR_IS_BETTER_PREFER_VALUE(v1, v2) ((v1) > (v2))
187#define CSR_IS_EQUAL_PREFER_VALUE(v1, v2) ((v1) == (v2))
188#define CSR_IS_BETTER_CAP_VALUE(v1, v2) ((v1) > (v2))
189#define CSR_IS_ENC_TYPE_STATIC( encType ) ( ( eCSR_ENCRYPT_TYPE_NONE == (encType) ) || \
190 ( eCSR_ENCRYPT_TYPE_WEP40_STATICKEY == (encType) ) || \
191 ( eCSR_ENCRYPT_TYPE_WEP104_STATICKEY == (encType) ) )
192#define CSR_IS_WAIT_FOR_KEY( pMac, sessionId ) ( CSR_IS_ROAM_JOINED( pMac, sessionId ) && CSR_IS_ROAM_SUBSTATE_WAITFORKEY( pMac, sessionId ) )
193//WIFI has a test case for not using HT rates with TKIP as encryption
194//We may need to add WEP but for now, TKIP only.
195
196#define CSR_IS_11n_ALLOWED( encType ) (( eCSR_ENCRYPT_TYPE_TKIP != (encType) ) && \
197 ( eCSR_ENCRYPT_TYPE_WEP40_STATICKEY != (encType) ) && \
198 ( eCSR_ENCRYPT_TYPE_WEP104_STATICKEY != (encType) ) && \
199 ( eCSR_ENCRYPT_TYPE_WEP40 != (encType) ) && \
200 ( eCSR_ENCRYPT_TYPE_WEP104 != (encType) ) )
201
Abhishek Singhf4669da2014-05-26 15:07:49 +0530202#define CSR_IS_DISCONNECT_COMMAND(pCommand) ( ( eSmeCommandRoam == (pCommand)->command ) &&\
203 ( ( eCsrForcedDisassoc == (pCommand)->u.roamCmd.roamReason ) ||\
204 ( eCsrForcedDeauth == (pCommand)->u.roamCmd.roamReason ) ||\
205 ( eCsrSmeIssuedDisassocForHandoff ==\
206 (pCommand)->u.roamCmd.roamReason ) ||\
207 ( eCsrForcedDisassocMICFailure ==\
208 (pCommand)->u.roamCmd.roamReason ) ) )
209
Jeff Johnson295189b2012-06-20 16:38:30 -0700210eCsrRoamState csrRoamStateChange( tpAniSirGlobal pMac, eCsrRoamState NewRoamState, tANI_U8 sessionId);
211eHalStatus csrScanningStateMsgProcessor( tpAniSirGlobal pMac, void *pMsgBuf );
212void csrRoamingStateMsgProcessor( tpAniSirGlobal pMac, void *pMsgBuf );
213void csrRoamJoinedStateMsgProcessor( tpAniSirGlobal pMac, void *pMsgBuf );
214tANI_BOOLEAN csrScanComplete( tpAniSirGlobal pMac, tSirSmeScanRsp *pScanRsp );
215void csrReleaseCommandRoam(tpAniSirGlobal pMac, tSmeCmd *pCommand);
216void csrReleaseCommandScan(tpAniSirGlobal pMac, tSmeCmd *pCommand);
217void csrReleaseCommandWmStatusChange(tpAniSirGlobal pMac, tSmeCmd *pCommand);
218//pIes2 can be NULL
219tANI_BOOLEAN csrIsDuplicateBssDescription( tpAniSirGlobal pMac, tSirBssDescription *pSirBssDesc1,
Tushnim Bhattacharyya5128d752013-06-26 23:23:18 -0700220 tSirBssDescription *pSirBssDesc2, tDot11fBeaconIEs *pIes2, tANI_BOOLEAN fForced );
Jeff Johnson295189b2012-06-20 16:38:30 -0700221eHalStatus csrRoamSaveConnectedBssDesc( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirBssDescription *pBssDesc );
222tANI_BOOLEAN csrIsNetworkTypeEqual( tSirBssDescription *pSirBssDesc1, tSirBssDescription *pSirBssDesc2 );
223eHalStatus csrScanSmeScanResponse( tpAniSirGlobal pMac, void *pMsgBuf );
224/*
225 Prepare a filter base on a profile for parsing the scan results.
226 Upon successful return, caller MUST call csrFreeScanFilter on
227 pScanFilter when it is done with the filter.
228*/
229eHalStatus csrRoamPrepareFilterFromProfile(tpAniSirGlobal pMac, tCsrRoamProfile *pProfile, tCsrScanResultFilter *pScanFilter);
230eHalStatus csrRoamCopyProfile(tpAniSirGlobal pMac, tCsrRoamProfile *pDstProfile, tCsrRoamProfile *pSrcProfile);
231eHalStatus csrRoamStart(tpAniSirGlobal pMac);
232void csrRoamStop(tpAniSirGlobal pMac, tANI_U32 sessionId);
233void csrRoamStartMICFailureTimer(tpAniSirGlobal pMac);
234void csrRoamStopMICFailureTimer(tpAniSirGlobal pMac);
235void csrRoamStartTKIPCounterMeasureTimer(tpAniSirGlobal pMac);
236void csrRoamStopTKIPCounterMeasureTimer(tpAniSirGlobal pMac);
237
238eHalStatus csrScanOpen(tpAniSirGlobal pMac);
239eHalStatus csrScanClose(tpAniSirGlobal pMac);
240eHalStatus csrScanRequestLostLink1( tpAniSirGlobal pMac, tANI_U32 sessionId );
241eHalStatus csrScanRequestLostLink2( tpAniSirGlobal pMac, tANI_U32 sessionId );
242eHalStatus csrScanRequestLostLink3( tpAniSirGlobal pMac, tANI_U32 sessionId );
243eHalStatus csrScanHandleFailedLostlink1(tpAniSirGlobal pMac, tANI_U32 sessionId);
244eHalStatus csrScanHandleFailedLostlink2(tpAniSirGlobal pMac, tANI_U32 sessionId);
245eHalStatus csrScanHandleFailedLostlink3(tpAniSirGlobal pMac, tANI_U32 sessionId);
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700246tCsrScanResult *csrScanAppendBssDescription( tpAniSirGlobal pMac,
Jeff Johnson295189b2012-06-20 16:38:30 -0700247 tSirBssDescription *pSirBssDescription,
Tushnim Bhattacharyya5128d752013-06-26 23:23:18 -0700248 tDot11fBeaconIEs *pIes, tANI_BOOLEAN fForced);
Jeff Johnson295189b2012-06-20 16:38:30 -0700249void csrScanCallCallback(tpAniSirGlobal pMac, tSmeCmd *pCommand, eCsrScanStatus scanStatus);
250eHalStatus csrScanCopyRequest(tpAniSirGlobal pMac, tCsrScanRequest *pDstReq, tCsrScanRequest *pSrcReq);
251eHalStatus csrScanFreeRequest(tpAniSirGlobal pMac, tCsrScanRequest *pReq);
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700252eHalStatus csrScanCopyResultList(tpAniSirGlobal pMac, tScanResultHandle hIn, tScanResultHandle *phResult);
Jeff Johnson295189b2012-06-20 16:38:30 -0700253void csrInitBGScanChannelList(tpAniSirGlobal pMac);
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -0700254eHalStatus csrScanForSSID(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile, tANI_U32 roamId, tANI_BOOLEAN notify);
Jeff Johnson295189b2012-06-20 16:38:30 -0700255eHalStatus csrScanForCapabilityChange(tpAniSirGlobal pMac, tSirSmeApNewCaps *pNewCaps);
256eHalStatus csrScanStartGetResultTimer(tpAniSirGlobal pMac);
257eHalStatus csrScanStopGetResultTimer(tpAniSirGlobal pMac);
Jeff Johnson295189b2012-06-20 16:38:30 -0700258eHalStatus csrScanBGScanEnable(tpAniSirGlobal pMac);
259eHalStatus csrScanStartIdleScanTimer(tpAniSirGlobal pMac, tANI_U32 interval);
260eHalStatus csrScanStopIdleScanTimer(tpAniSirGlobal pMac);
261eHalStatus csrScanStartIdleScan(tpAniSirGlobal pMac);
262//Param: pTimeInterval -- Caller allocated memory in return, if failed, to specify the nxt time interval for
263//idle scan timer interval
264//Return: Not success -- meaning it cannot start IMPS, caller needs to start a timer for idle scan
265eHalStatus csrScanTriggerIdleScan(tpAniSirGlobal pMac, tANI_U32 *pTimeInterval);
266void csrScanCancelIdleScan(tpAniSirGlobal pMac);
267void csrScanStopTimers(tpAniSirGlobal pMac);
268//This function will remove scan commands that are not related to association or IBSS
269tANI_BOOLEAN csrScanRemoveNotRoamingScanCommand(tpAniSirGlobal pMac);
270//To remove fresh scan commands from the pending queue
271tANI_BOOLEAN csrScanRemoveFreshScanCommand(tpAniSirGlobal pMac, tANI_U8 sessionId);
c_hpothua3d45d52015-01-05 14:11:17 +0530272tSirAbortScanStatus csrScanAbortMacScan(tpAniSirGlobal pMac,
273 tANI_U8 sessionId,
274 eCsrAbortReason reason);
Jeff Johnson295189b2012-06-20 16:38:30 -0700275void csrRemoveCmdFromPendingList(tpAniSirGlobal pMac, tDblLinkList *pList,
276 eSmeCommandType commandType );
Madan Mohan Koyyalamudiff3a7152013-06-13 14:47:55 +0530277void csrRemoveCmdWithSessionIdFromPendingList(tpAniSirGlobal pMac,
278 tANI_U8 sessionId,
279 tDblLinkList *pList,
280 eSmeCommandType commandType);
281eHalStatus csrScanAbortMacScanNotForConnect(tpAniSirGlobal pMac,
282 tANI_U8 sessionId);
Madan Mohan Koyyalamudide1b5bc2013-07-12 00:56:04 +0530283eHalStatus csrScanGetScanChannelInfo(tpAniSirGlobal pMac, tANI_U8 sessionId);
Abhishek Singhdc2bfd42014-06-19 17:59:05 +0530284eHalStatus csrScanAbortScanForSSID(tpAniSirGlobal pMac, tANI_U32 sessionId);
285void csrRemoveScanForSSIDFromPendingList(tpAniSirGlobal pMac, tDblLinkList *pList, tANI_U32 sessionId);
286
Jeff Johnson295189b2012-06-20 16:38:30 -0700287//To age out scan results base. tSmeGetScanChnRsp is a pointer returned by LIM that
288//has the information regarding scanned channels.
289//The logic is that whenever CSR add a BSS to scan result, it set the age count to
290//a value. This function deduct the age count if channelId matches the BSS' channelId
291//The BSS is remove if the count reaches 0.
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700292eHalStatus csrScanAgeResults(tpAniSirGlobal pMac, tSmeGetScanChnRsp *pScanChnInfo);
Jeff Johnson295189b2012-06-20 16:38:30 -0700293
Abhishek Singhc640dbb2015-06-08 10:54:17 +0530294eHalStatus csrIbssAgeBss(tpAniSirGlobal pMac);
295
Jeff Johnson295189b2012-06-20 16:38:30 -0700296//If fForce is TRUE we will save the new String that is learn't.
297//Typically it will be true in case of Join or user initiated ioctl
Chandrasekaran, Manishekar90c49322014-06-24 13:26:14 +0530298tANI_BOOLEAN csrLearnCountryInformation( tpAniSirGlobal pMac, tSirBssDescription *pSirBssDesc,
299 tDot11fBeaconIEs *pIes, tANI_BOOLEAN fForce );
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700300void csrApplyCountryInformation( tpAniSirGlobal pMac, tANI_BOOLEAN fForce );
Jeff Johnson295189b2012-06-20 16:38:30 -0700301void csrSetCfgScanControlList( tpAniSirGlobal pMac, tANI_U8 *countryCode, tCsrChannel *pChannelList );
302void csrReinitScanCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
303void csrFreeScanResultEntry( tpAniSirGlobal pMac, tCsrScanResult *pResult );
304
305eHalStatus csrRoamCallCallback(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamInfo *pRoamInfo,
306 tANI_U32 roamId, eRoamCmdStatus u1, eCsrRoamResult u2);
307eHalStatus csrRoamIssueConnect(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
308 tScanResultHandle hBSSList,
309 eCsrRoamReason reason, tANI_U32 roamId,
310 tANI_BOOLEAN fImediate, tANI_BOOLEAN fClearScan);
311eHalStatus csrRoamIssueReassoc(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
312 tCsrRoamModifyProfileFields *pModProfileFields,
313 eCsrRoamReason reason, tANI_U32 roamId, tANI_BOOLEAN fImediate);
314void csrRoamComplete( tpAniSirGlobal pMac, eCsrRoamCompleteResult Result, void *Context );
315eHalStatus csrRoamIssueSetContextReq( tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrEncryptionType EncryptType,
316 tSirBssDescription *pBssDescription,
317 tSirMacAddr *bssId, tANI_BOOLEAN addKey,
318 tANI_BOOLEAN fUnicast, tAniKeyDirection aniKeyDirection,
319 tANI_U8 keyId, tANI_U16 keyLength,
320 tANI_U8 *pKey, tANI_U8 paeRole );
321eHalStatus csrRoamProcessDisassocDeauth( tpAniSirGlobal pMac, tSmeCmd *pCommand,
322 tANI_BOOLEAN fDisassoc, tANI_BOOLEAN fMICFailure );
323eHalStatus csrRoamSaveConnectedInfomation(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
324 tSirBssDescription *pSirBssDesc, tDot11fBeaconIEs *pIes);
325void csrRoamCheckForLinkStatusChange( tpAniSirGlobal pMac, tSirSmeRsp *pSirMsg );
326void csrRoamStatsRspProcessor(tpAniSirGlobal pMac, tSirSmeRsp *pSirMsg);
327eHalStatus csrRoamIssueStartBss( tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamStartBssParams *pParam,
328 tCsrRoamProfile *pProfile, tSirBssDescription *pBssDesc, tANI_U32 roamId );
329eHalStatus csrRoamIssueStopBss( tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamSubState NewSubstate );
330tANI_BOOLEAN csrIsSameProfile(tpAniSirGlobal pMac, tCsrRoamConnectedProfile *pProfile1, tCsrRoamProfile *pProfile2);
331tANI_BOOLEAN csrIsRoamCommandWaiting(tpAniSirGlobal pMac);
332tANI_BOOLEAN csrIsRoamCommandWaitingForSession(tpAniSirGlobal pMac, tANI_U32 sessionId);
333tANI_BOOLEAN csrIsScanForRoamCommandActive( tpAniSirGlobal pMac );
334eRoamCmdStatus csrGetRoamCompleteStatus(tpAniSirGlobal pMac, tANI_U32 sessionId);
335//pBand can be NULL if caller doesn't need to get it
336//eCsrCfgDot11Mode csrRoamGetPhyModeBandForBss( tpAniSirGlobal pMac, eCsrPhyMode phyModeIn, tANI_U8 operationChn, eCsrBand *pBand );
337eHalStatus csrRoamIssueDisassociateCmd( tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamDisconnectReason reason );
338eHalStatus csrRoamDisconnectInternal(tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamDisconnectReason reason);
339//pCommand may be NULL
340void csrRoamRemoveDuplicateCommand(tpAniSirGlobal pMac, tANI_U32 sessionId, tSmeCmd *pCommand, eCsrRoamReason eRoamReason);
341
342eHalStatus csrSendJoinReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirBssDescription *pBssDescription,
Srinivas Girigowdac16730e2013-01-16 13:39:39 -0800343 tCsrRoamProfile *pProfile, tDot11fBeaconIEs *pIes, tANI_U16 messageType );
Jeff Johnson295189b2012-06-20 16:38:30 -0700344eHalStatus csrSendMBDisassocReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirMacAddr bssId, tANI_U16 reasonCode );
345eHalStatus csrSendMBDeauthReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirMacAddr bssId, tANI_U16 reasonCode );
346eHalStatus csrSendMBDisassocCnfMsg( tpAniSirGlobal pMac, tpSirSmeDisassocInd pDisassocInd );
347eHalStatus csrSendMBDeauthCnfMsg( tpAniSirGlobal pMac, tpSirSmeDeauthInd pDeauthInd );
348eHalStatus csrSendAssocCnfMsg( tpAniSirGlobal pMac, tpSirSmeAssocInd pAssocInd, eHalStatus status );
Jeff Johnson295189b2012-06-20 16:38:30 -0700349eHalStatus csrSendAssocIndToUpperLayerCnfMsg( tpAniSirGlobal pMac, tpSirSmeAssocInd pAssocInd, eHalStatus Halstatus, tANI_U8 sessionId );
Jeff Johnson295189b2012-06-20 16:38:30 -0700350eHalStatus csrSendMBStartBssReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamBssType bssType,
351 tCsrRoamStartBssParams *pParam, tSirBssDescription *pBssDesc );
352eHalStatus csrSendMBStopBssReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId );
Jeff Johnson295189b2012-06-20 16:38:30 -0700353
354tANI_BOOLEAN csrIsMacAddressEqual( tpAniSirGlobal pMac, tCsrBssid *pMacAddr1, tCsrBssid *pMacAddr2 );
355//Caller should put the BSS' ssid to fiedl bssSsid when comparing SSID for a BSS.
356tANI_BOOLEAN csrIsSsidMatch( tpAniSirGlobal pMac, tANI_U8 *ssid1, tANI_U8 ssid1Len, tANI_U8 *bssSsid,
357 tANI_U8 bssSsidLen, tANI_BOOLEAN fSsidRequired );
358tANI_BOOLEAN csrIsPhyModeMatch( tpAniSirGlobal pMac, tANI_U32 phyMode,
359 tSirBssDescription *pSirBssDesc, tCsrRoamProfile *pProfile,
360 eCsrCfgDot11Mode *pReturnCfgDot11Mode,
361 tDot11fBeaconIEs *pIes);
362tANI_BOOLEAN csrRoamIsChannelValid( tpAniSirGlobal pMac, tANI_U8 channel );
363
364//pNumChan is a caller allocated space with the sizeof pChannels
365eHalStatus csrGetCfgValidChannels(tpAniSirGlobal pMac, tANI_U8 *pChannels, tANI_U32 *pNumChan);
366void csrRoamCcmCfgSetCallback(tHalHandle hHal, tANI_S32 result);
367void csrScanCcmCfgSetCallback(tHalHandle hHal, tANI_S32 result);
368
Kiran4a17ebe2013-01-31 10:43:43 -0800369tPowerdBm csrGetCfgMaxTxPower (tpAniSirGlobal pMac, tANI_U8 channel);
370
Jeff Johnson295189b2012-06-20 16:38:30 -0700371//To free the last roaming profile
372void csrFreeRoamProfile(tpAniSirGlobal pMac, tANI_U32 sessionId);
373void csrFreeConnectBssDesc(tpAniSirGlobal pMac, tANI_U32 sessionId);
374eHalStatus csrMoveBssToHeadFromBSSID(tpAniSirGlobal pMac, tCsrBssid *bssid, tScanResultHandle hScanResult);
375tANI_BOOLEAN csrCheckPSReady(void *pv);
376void csrFullPowerCallback(void *pv, eHalStatus status);
377//to free memory allocated inside the profile structure
378void csrReleaseProfile(tpAniSirGlobal pMac, tCsrRoamProfile *pProfile);
379//To free memory allocated inside scanFilter
380void csrFreeScanFilter(tpAniSirGlobal pMac, tCsrScanResultFilter *pScanFilter);
Jeff Johnson295189b2012-06-20 16:38:30 -0700381eCsrCfgDot11Mode csrGetCfgDot11ModeFromCsrPhyMode(tCsrRoamProfile *pProfile, eCsrPhyMode phyMode, tANI_BOOLEAN fProprietary);
Jeff Johnson295189b2012-06-20 16:38:30 -0700382tANI_U32 csrTranslateToWNICfgDot11Mode(tpAniSirGlobal pMac, eCsrCfgDot11Mode csrDot11Mode);
383void csrSaveChannelPowerForBand( tpAniSirGlobal pMac, tANI_BOOLEAN fPopulate5GBand );
Gopichand Nakkalab9185f22012-12-21 08:03:42 -0800384void csrApplyChannelPowerCountryInfo( tpAniSirGlobal pMac, tCsrChannel *pChannelList, tANI_U8 *countryCode, tANI_BOOLEAN updateRiva);
Jeff Johnsone7245742012-09-05 17:12:55 -0700385void csrApplyPower2Current( tpAniSirGlobal pMac );
Srinivas Girigowda41c7c5f2013-10-21 19:01:38 -0700386void csrAssignRssiForCategory(tpAniSirGlobal pMac, tANI_S8 bestApRssi, tANI_U8 catOffset);
Jeff Johnson295189b2012-06-20 16:38:30 -0700387tANI_BOOLEAN csrIsMacAddressZero( tpAniSirGlobal pMac, tCsrBssid *pMacAddr );
388tANI_BOOLEAN csrIsMacAddressBroadcast( tpAniSirGlobal pMac, tCsrBssid *pMacAddr );
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700389eHalStatus csrRoamRemoveConnectedBssFromScanCache(tpAniSirGlobal pMac, tCsrRoamConnectedProfile *pConnProfile);
Jeff Johnson295189b2012-06-20 16:38:30 -0700390eHalStatus csrRoamStartRoaming(tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamingReason roamingReason);
391//return a boolean to indicate whether roaming completed or continue.
392tANI_BOOLEAN csrRoamCompleteRoaming(tpAniSirGlobal pMac, tANI_U32 sessionId,
393 tANI_BOOLEAN fForce, eCsrRoamResult roamResult);
394void csrRoamCompletion(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamInfo *pRoamInfo, tSmeCmd *pCommand, eCsrRoamResult roamResult, tANI_BOOLEAN fSuccess);
395void csrRoamCancelRoaming(tpAniSirGlobal pMac, tANI_U32 sessionId);
Gopichand Nakkalab9185f22012-12-21 08:03:42 -0800396void csrResetCountryInformation( tpAniSirGlobal pMac, tANI_BOOLEAN fForce, tANI_BOOLEAN updateRiva );
Jeff Johnson295189b2012-06-20 16:38:30 -0700397void csrResetPMKIDCandidateList( tpAniSirGlobal pMac, tANI_U32 sessionId );
398#ifdef FEATURE_WLAN_WAPI
399void csrResetBKIDCandidateList( tpAniSirGlobal pMac, tANI_U32 sessionId );
400#endif /* FEATURE_WLAN_WAPI */
Jeff Johnsone7245742012-09-05 17:12:55 -0700401eHalStatus csrSaveToChannelPower2G_5G( tpAniSirGlobal pMac, tANI_U32 tableSize, tSirMacChanInfo *channelTable );
Jeff Johnson295189b2012-06-20 16:38:30 -0700402//Get the list of the base channels to scan for passively 11d info
403eHalStatus csrScanGetSupportedChannels( tpAniSirGlobal pMac );
404//To check whether a country code matches the one in the IE
405//Only check the first two characters, ignoring in/outdoor
406//pCountry -- caller allocated buffer contain the country code that is checking against
407//the one in pIes. It can be NULL.
408//caller must provide pIes, it cannot be NULL
409//This function always return TRUE if 11d support is not turned on.
410//pIes cannot be NULL
411tANI_BOOLEAN csrMatchCountryCode( tpAniSirGlobal pMac, tANI_U8 *pCountry, tDot11fBeaconIEs *pIes );
412eHalStatus csrRoamSetKey( tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamSetKey *pSetKey, tANI_U32 roamId );
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -0700413eHalStatus csrRoamOpenSession(tpAniSirGlobal pMac,
414 csrRoamCompleteCallback callback,
415 void *pContext, tANI_U8 *pSelfMacAddr,
416 tANI_U8 *pbSessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700417//fSync: TRUE means cleanupneeds to handle synchronously.
418eHalStatus csrRoamCloseSession( tpAniSirGlobal pMac, tANI_U32 sessionId,
mukul sharmabab477d2015-06-11 17:14:55 +0530419 tANI_BOOLEAN fSync, tANI_U8 bPurgeList,
Jeff Johnson295189b2012-06-20 16:38:30 -0700420 csrRoamSessionCloseCallback callback,
421 void *pContext );
Abhishek Singhdeb782f2016-04-28 11:44:29 +0530422void csrPurgeSmeCmdList(tpAniSirGlobal pMac, tANI_U32 sessionId,
423 bool flush_all);
Jeff Johnson295189b2012-06-20 16:38:30 -0700424void csrCleanupSession(tpAniSirGlobal pMac, tANI_U32 sessionId);
425eHalStatus csrRoamGetSessionIdFromBSSID( tpAniSirGlobal pMac, tCsrBssid *bssid, tANI_U32 *pSessionId );
426eCsrCfgDot11Mode csrFindBestPhyMode( tpAniSirGlobal pMac, tANI_U32 phyMode );
427
428/* ---------------------------------------------------------------------------
429 \fn csrScanEnable
430 \brief Enable the scanning feature of CSR. It must be called before any scan request can be performed.
431 \param tHalHandle - HAL context handle
432 \return eHalStatus
433 -------------------------------------------------------------------------------*/
434eHalStatus csrScanEnable(tpAniSirGlobal);
435
436/* ---------------------------------------------------------------------------
437 \fn csrScanDisable
438 \brief Disableing the scanning feature of CSR. After this function return success, no scan is performed until
439a successfull to csrScanEnable
440 \param tHalHandle - HAL context handle
441 \return eHalStatus
442 -------------------------------------------------------------------------------*/
443eHalStatus csrScanDisable(tpAniSirGlobal);
444/* ---------------------------------------------------------------------------
445 \fn csrScanRequest
446 \brief Request a 11d or full scan.
447 \param pScanRequestID - pointer to an object to get back the request ID
448 \param callback - a callback function that scan calls upon finish, will not be called if csrScanRequest returns error
449 \param pContext - a pointer passed in for the callback
450 \return eHalStatus
451 -------------------------------------------------------------------------------*/
452eHalStatus csrScanRequest(tpAniSirGlobal, tANI_U16, tCsrScanRequest *,
453 tANI_U32 *pScanRequestID, csrScanCompleteCallback callback,
454 void *pContext);
455
456/* ---------------------------------------------------------------------------
457 \fn csrScanAbort
458 \brief If a scan request is abort, the scan complete callback will be called first before csrScanAbort returns.
459 \param pScanRequestID - The request ID returned from csrScanRequest
460 \return eHalStatus
461 -------------------------------------------------------------------------------*/
462eHalStatus csrScanAbort(tpAniSirGlobal, tANI_U32 scanRequestID);
463
464eHalStatus csrScanSetBGScanparams(tpAniSirGlobal, tCsrBGScanRequest *);
465eHalStatus csrScanBGScanAbort(tpAniSirGlobal);
466
467/* ---------------------------------------------------------------------------
468 \fn csrScanGetResult
469 \brief Return scan results.
470 \param pFilter - If pFilter is NULL, all cached results are returned
471 \param phResult - an object for the result.
472 \return eHalStatus
473 -------------------------------------------------------------------------------*/
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700474eHalStatus csrScanGetResult(tpAniSirGlobal, tCsrScanResultFilter *pFilter, tScanResultHandle *phResult);
Jeff Johnson295189b2012-06-20 16:38:30 -0700475
Mukul Sharma9e4e0f92015-02-13 18:45:20 +0530476#ifdef FEATURE_WLAN_LFR
477/* ---------------------------------------------------------------------------
478 \fn csrAddChannelToOccupiedChannelList
479 \brief Add channel no given by fast reassoc cmd into occ chn list
480 \param channel - channel no passed by fast reassoc cmd
481 \return void
482 -------------------------------------------------------------------------------*/
483void csrAddChannelToOccupiedChannelList(tpAniSirGlobal pMac, tANI_U8 channel);
484#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700485/* ---------------------------------------------------------------------------
486 \fn csrScanFlushResult
487 \brief Clear scan results.
488 \return eHalStatus
489 -------------------------------------------------------------------------------*/
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700490eHalStatus csrScanFlushResult(tpAniSirGlobal);
Srinivas, Dasari42bf7702014-02-07 11:29:53 +0530491/* ---------------------------------------------------------------------------
492 * \fn csrScanFilterResults
493 * \brief Filter scan results based on valid channel list.
494 * \return eHalStatus
495 *-------------------------------------------------------------------------------
496 */
497eHalStatus csrScanFilterResults(tpAniSirGlobal pMac);
498
Padma, Santhosh Kumar778d8382015-03-04 17:41:22 +0530499/* ---------------------------------------------------------------------------
500 * \fn csrScanFilterDFSResults
501 * \brief Filter BSSIDs on DFS channels from the scan results.
502 * \return eHalStatus
503 *-------------------------------------------------------------------------------
504 */
505eHalStatus csrScanFilterDFSResults(tpAniSirGlobal pMac);
506
Madan Mohan Koyyalamudi5850f312012-11-27 19:00:25 +0530507eHalStatus csrScanFlushSelectiveResult(tpAniSirGlobal, v_BOOL_t flushP2P);
Mukul Sharma20aa6582014-08-07 21:36:12 +0530508
509eHalStatus csrScanFlushSelectiveResultForBand(tpAniSirGlobal, v_BOOL_t flushP2P, tSirRFBand band);
510
Jeff Johnson295189b2012-06-20 16:38:30 -0700511/* ---------------------------------------------------------------------------
512 \fn csrScanBGScanGetParam
513 \brief Returns the current background scan settings.
514 \return eHalStatus
515 -------------------------------------------------------------------------------*/
516eHalStatus csrScanBGScanGetParam(tpAniSirGlobal, tCsrBGScanRequest *);
517
518/* ---------------------------------------------------------------------------
519 \fn csrScanResultGetFirst
520 \brief Returns the first element of scan result.
521 \param hScanResult - returned from csrScanGetResult
522 \return tCsrScanResultInfo * - NULL if no result
523 -------------------------------------------------------------------------------*/
524tCsrScanResultInfo *csrScanResultGetFirst(tpAniSirGlobal, tScanResultHandle hScanResult);
525/* ---------------------------------------------------------------------------
526 \fn csrScanResultGetNext
527 \brief Returns the next element of scan result. It can be called without calling csrScanResultGetFirst first
528 \param hScanResult - returned from csrScanGetResult
529 \return Null if no result or reach the end
530 -------------------------------------------------------------------------------*/
531tCsrScanResultInfo *csrScanResultGetNext(tpAniSirGlobal, tScanResultHandle hScanResult);
532
533/* ---------------------------------------------------------------------------
534 \fn csrGetCountryCode
535 \brief this function is to get the country code current being used
536 \param pBuf - Caller allocated buffer with at least 3 bytes, upon success return, this has the country code
537 \param pbLen - Caller allocated, as input, it indicates the length of pBuf. Upon success return,
538 this contains the length of the data in pBuf
539 \return eHalStatus
540 -------------------------------------------------------------------------------*/
541eHalStatus csrGetCountryCode(tpAniSirGlobal pMac, tANI_U8 *pBuf, tANI_U8 *pbLen);
542
543/* ---------------------------------------------------------------------------
544 \fn csrSetCountryCode
545 \brief this function is to set the country code so channel/power setting matches the countrycode and
546 the domain it belongs to.
547 \param pCountry - Caller allocated buffer with at least 3 bytes specifying the country code
548 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
549 a restart is needed to apply the change
550 \return eHalStatus
551 -------------------------------------------------------------------------------*/
552eHalStatus csrSetCountryCode(tpAniSirGlobal pMac, tANI_U8 *pCountry, tANI_BOOLEAN *pfRestartNeeded);
553
554/* ---------------------------------------------------------------------------
555 \fn csrResetCountryCodeInformation
556 \brief this function is to reset the country code current being used back to EEPROM default
557 this includes channel list and power setting.
558 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
559 a restart is needed to apply the change
560 \return eHalStatus
561 -------------------------------------------------------------------------------*/
562eHalStatus csrResetCountryCodeInformation(tpAniSirGlobal pMac, tANI_BOOLEAN *pfRestartNeeded);
563
564/* ---------------------------------------------------------------------------
565 \fn csrGetSupportedCountryCode
566 \brief this function is to get a list of the country code current being supported
567 \param pBuf - Caller allocated buffer with at least 3 bytes, upon success return,
568 this has the country code list. 3 bytes for each country code. This may be NULL if
569 caller wants to know the needed bytes.
570 \param pbLen - Caller allocated, as input, it indicates the length of pBuf. Upon success return,
571 this contains the length of the data in pBuf
572 \return eHalStatus
573 -------------------------------------------------------------------------------*/
574eHalStatus csrGetSupportedCountryCode(tpAniSirGlobal pMac, tANI_U8 *pBuf, tANI_U32 *pbLen);
575
576/* ---------------------------------------------------------------------------
577 \fn csrSetRegulatoryDomain
578 \brief this function is to set the current regulatory domain.
579 This function must be called after CFG is downloaded and all the band/mode setting already passed into
580 CSR.
581 \param domainId - indicate the domain (defined in the driver) needs to set to.
582 See eRegDomainId for definition
583 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
584 a restart is needed to apply the change
585 \return eHalStatus
586 -------------------------------------------------------------------------------*/
587eHalStatus csrSetRegulatoryDomain(tpAniSirGlobal pMac, v_REGDOMAIN_t domainId, tANI_BOOLEAN *pfRestartNeeded);
588
589/* ---------------------------------------------------------------------------
590 \fn csrGetCurrentRegulatoryDomain
591 \brief this function is to get the current regulatory domain.
592 This function must be called after CFG is downloaded and all the band/mode setting already passed into
593 CSR.
594 \return eRegDomainId
595 -------------------------------------------------------------------------------*/
596v_REGDOMAIN_t csrGetCurrentRegulatoryDomain(tpAniSirGlobal pMac);
597
598/* ---------------------------------------------------------------------------
599 \fn csrGetRegulatoryDomainForCountry
600 \brief this function is to get the regulatory domain for a country.
601 This function must be called after CFG is downloaded and all the band/mode setting already passed into
602 CSR.
603 \param pCountry - Caller allocated buffer with at least 3 bytes specifying the country code
604 \param pDomainId - Caller allocated buffer to get the return domain ID upon success return. Can be NULL.
Kiet Lam6c583332013-10-14 05:37:09 +0530605 \param source - the source of country information.
Jeff Johnson295189b2012-06-20 16:38:30 -0700606 \return eHalStatus
607 -------------------------------------------------------------------------------*/
Kiet Lam6c583332013-10-14 05:37:09 +0530608eHalStatus csrGetRegulatoryDomainForCountry(tpAniSirGlobal pMac,
609 tANI_U8 *pCountry,
610 v_REGDOMAIN_t *pDomainId,
611 v_CountryInfoSource_t source);
Jeff Johnson295189b2012-06-20 16:38:30 -0700612
613
614tANI_BOOLEAN csrSave11dCountryString( tpAniSirGlobal pMac, tANI_U8 *pCountryCode, tANI_BOOLEAN fForce );
615
616//some support functions
617tANI_BOOLEAN csrIs11dSupported(tpAniSirGlobal pMac);
618tANI_BOOLEAN csrIs11hSupported(tpAniSirGlobal pMac);
619tANI_BOOLEAN csrIs11eSupported(tpAniSirGlobal pMac);
620tANI_BOOLEAN csrIsWmmSupported(tpAniSirGlobal pMac);
621tANI_BOOLEAN csrIsMCCSupported(tpAniSirGlobal pMac);
622
623//Upper layer to get the list of the base channels to scan for passively 11d info from csr
624eHalStatus csrScanGetBaseChannels( tpAniSirGlobal pMac, tCsrChannelInfo * pChannelInfo );
625//Return SUCCESS is the command is queued, failed
626eHalStatus csrQueueSmeCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand, tANI_BOOLEAN fHighPriority );
627tSmeCmd *csrGetCommandBuffer( tpAniSirGlobal pMac );
628void csrReleaseCommand(tpAniSirGlobal pMac, tSmeCmd *pCommand);
629#ifdef FEATURE_WLAN_WAPI
630tANI_BOOLEAN csrIsProfileWapi( tCsrRoamProfile *pProfile );
631#endif /* FEATURE_WLAN_WAPI */
632
633#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
634
635//Security
636#define WLAN_SECURITY_EVENT_SET_PTK_REQ 1
637#define WLAN_SECURITY_EVENT_SET_PTK_RSP 2
638#define WLAN_SECURITY_EVENT_SET_GTK_REQ 3
639#define WLAN_SECURITY_EVENT_SET_GTK_RSP 4
640#define WLAN_SECURITY_EVENT_REMOVE_KEY_REQ 5
641#define WLAN_SECURITY_EVENT_REMOVE_KEY_RSP 6
642#define WLAN_SECURITY_EVENT_PMKID_CANDIDATE_FOUND 7
643#define WLAN_SECURITY_EVENT_PMKID_UPDATE 8
644#define WLAN_SECURITY_EVENT_MIC_ERROR 9
Abhishek Singh5f693202016-01-06 13:47:33 +0530645#define WLAN_SECURITY_EVENT_SET_UNICAST_REQ 10
646#define WLAN_SECURITY_EVENT_SET_UNICAST_RSP 11
647#define WLAN_SECURITY_EVENT_SET_BCAST_REQ 12
648#define WLAN_SECURITY_EVENT_SET_BCAST_RSP 13
649
Jeff Johnson295189b2012-06-20 16:38:30 -0700650
651#define AUTH_OPEN 0
652#define AUTH_SHARED 1
653#define AUTH_WPA_EAP 2
654#define AUTH_WPA_PSK 3
655#define AUTH_WPA2_EAP 4
656#define AUTH_WPA2_PSK 5
657#ifdef FEATURE_WLAN_WAPI
658#define AUTH_WAPI_CERT 6
659#define AUTH_WAPI_PSK 7
660#endif /* FEATURE_WLAN_WAPI */
661
662#define ENC_MODE_OPEN 0
663#define ENC_MODE_WEP40 1
664#define ENC_MODE_WEP104 2
665#define ENC_MODE_TKIP 3
666#define ENC_MODE_AES 4
667#ifdef FEATURE_WLAN_WAPI
668#define ENC_MODE_SMS4 5 //WAPI
669#endif /* FEATURE_WLAN_WAPI */
670
671#define NO_MATCH 0
672#define MATCH 1
673
674#define WLAN_SECURITY_STATUS_SUCCESS 0
675#define WLAN_SECURITY_STATUS_FAILURE 1
676
677//Scan
678#define WLAN_SCAN_EVENT_ACTIVE_SCAN_REQ 1
679#define WLAN_SCAN_EVENT_ACTIVE_SCAN_RSP 2
680#define WLAN_SCAN_EVENT_PASSIVE_SCAN_REQ 3
681#define WLAN_SCAN_EVENT_PASSIVE_SCAN_RSP 4
682#define WLAN_SCAN_EVENT_HO_SCAN_REQ 5
683#define WLAN_SCAN_EVENT_HO_SCAN_RSP 6
684
685#define WLAN_SCAN_STATUS_SUCCESS 0
686#define WLAN_SCAN_STATUS_FAILURE 1
687#define WLAN_SCAN_STATUS_ABORT 2
688
689//Ibss
690#define WLAN_IBSS_EVENT_START_IBSS_REQ 0
691#define WLAN_IBSS_EVENT_START_IBSS_RSP 1
692#define WLAN_IBSS_EVENT_JOIN_IBSS_REQ 2
693#define WLAN_IBSS_EVENT_JOIN_IBSS_RSP 3
694#define WLAN_IBSS_EVENT_COALESCING 4
695#define WLAN_IBSS_EVENT_PEER_JOIN 5
696#define WLAN_IBSS_EVENT_PEER_LEAVE 6
697#define WLAN_IBSS_EVENT_STOP_REQ 7
698#define WLAN_IBSS_EVENT_STOP_RSP 8
699
700#define AUTO_PICK 0
701#define SPECIFIED 1
702
703#define WLAN_IBSS_STATUS_SUCCESS 0
704#define WLAN_IBSS_STATUS_FAILURE 1
705
706//11d
707#define WLAN_80211D_EVENT_COUNTRY_SET 0
708#define WLAN_80211D_EVENT_RESET 1
709
710#define WLAN_80211D_DISABLED 0
711#define WLAN_80211D_SUPPORT_MULTI_DOMAIN 1
712#define WLAN_80211D_NOT_SUPPORT_MULTI_DOMAIN 2
713
714int diagAuthTypeFromCSRType(eCsrAuthType authType);
715int diagEncTypeFromCSRType(eCsrEncryptionType encType);
716#endif //#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
717/* ---------------------------------------------------------------------------
718 \fn csrScanResultPurge
719 \brief remove all items(tCsrScanResult) in the list and free memory for each item
720 \param hScanResult - returned from csrScanGetResult. hScanResult is considered gone by
721 calling this function and even before this function reutrns.
722 \return eHalStatus
723 -------------------------------------------------------------------------------*/
724eHalStatus csrScanResultPurge(tpAniSirGlobal pMac, tScanResultHandle hScanResult);
725
726
727///////////////////////////////////////////Common Scan ends
728
729/* ---------------------------------------------------------------------------
730 \fn csrRoamConnect
731 \brief To inititiate an association
732 \param pProfile - can be NULL to join to any open ones
733 \param hBssListIn - a list of BSS descriptor to roam to. It is returned from csrScanGetResult
734 \param pRoamId - to get back the request ID
735 \return eHalStatus
736 -------------------------------------------------------------------------------*/
737eHalStatus csrRoamConnect(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
738 tScanResultHandle hBssListIn, tANI_U32 *pRoamId);
739
740/* ---------------------------------------------------------------------------
741 \fn csrRoamReassoc
742 \brief To inititiate a re-association
743 \param pProfile - can be NULL to join the currently connected AP. In that
744 case modProfileFields should carry the modified field(s) which could trigger
745 reassoc
746 \param modProfileFields - fields which are part of tCsrRoamConnectedProfile
747 that might need modification dynamically once STA is up & running and this
748 could trigger a reassoc
749 \param pRoamId - to get back the request ID
750 \return eHalStatus
751 -------------------------------------------------------------------------------*/
752eHalStatus csrRoamReassoc(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
753 tCsrRoamModifyProfileFields modProfileFields,
754 tANI_U32 *pRoamId);
755
756
757/* ---------------------------------------------------------------------------
758 \fn csrRoamReconnect
759 \brief To disconnect and reconnect with the same profile
760 \return eHalStatus. It returns fail if currently not connected
761 -------------------------------------------------------------------------------*/
762eHalStatus csrRoamReconnect(tpAniSirGlobal pMac, tANI_U32 sessionId);
763
764/* ---------------------------------------------------------------------------
765 \fn csrRoamSetPMKIDCache
766 \brief return the PMKID candidate list
767 \param pPMKIDCache - caller allocated buffer point to an array of tPmkidCacheInfo
768 \param numItems - a variable that has the number of tPmkidCacheInfo allocated
769 when retruning, this is either the number needed or number of items put into pPMKIDCache
770 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough and pNumItems
771 has the number of tPmkidCacheInfo.
772 \Note: pNumItems is a number of tPmkidCacheInfo, not sizeof(tPmkidCacheInfo) * something
773 -------------------------------------------------------------------------------*/
Kanchanapally, Vidyullatha2633ace2014-09-25 15:16:50 +0530774eHalStatus csrRoamSetPMKIDCache( tpAniSirGlobal pMac, tANI_U32 sessionId,
775 tPmkidCacheInfo *pPMKIDCache,
776 tANI_U32 numItems,
777 tANI_BOOLEAN update_entire_cache );
Jeff Johnson295189b2012-06-20 16:38:30 -0700778
779/* ---------------------------------------------------------------------------
780 \fn csrRoamGetWpaRsnReqIE
781 \brief return the WPA or RSN IE CSR passes to PE to JOIN request or START_BSS request
782 \param pLen - caller allocated memory that has the length of pBuf as input. Upon returned, *pLen has the
783 needed or IE length in pBuf.
784 \param pBuf - Caller allocated memory that contain the IE field, if any, upon return
785 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
786 -------------------------------------------------------------------------------*/
787eHalStatus csrRoamGetWpaRsnReqIE(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 *pLen, tANI_U8 *pBuf);
788
789/* ---------------------------------------------------------------------------
790 \fn csrRoamGetWpaRsnRspIE
791 \brief return the WPA or RSN IE from the beacon or probe rsp if connected
792 \param pLen - caller allocated memory that has the length of pBuf as input. Upon returned, *pLen has the
793 needed or IE length in pBuf.
794 \param pBuf - Caller allocated memory that contain the IE field, if any, upon return
795 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
796 -------------------------------------------------------------------------------*/
797eHalStatus csrRoamGetWpaRsnRspIE(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 *pLen, tANI_U8 *pBuf);
798
799
800/* ---------------------------------------------------------------------------
801 \fn csrRoamGetNumPMKIDCache
802 \brief return number of PMKID cache entries
803 \return tANI_U32 - the number of PMKID cache entries
804 -------------------------------------------------------------------------------*/
805tANI_U32 csrRoamGetNumPMKIDCache(tpAniSirGlobal pMac, tANI_U32 sessionId);
806
807/* ---------------------------------------------------------------------------
808 \fn csrRoamGetPMKIDCache
809 \brief return PMKID cache from CSR
810 \param pNum - caller allocated memory that has the space of the number of pBuf tPmkidCacheInfo as input. Upon returned, *pNum has the
811 needed or actually number in tPmkidCacheInfo.
812 \param pPmkidCache - Caller allocated memory that contains PMKID cache, if any, upon return
813 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
814 -------------------------------------------------------------------------------*/
815eHalStatus csrRoamGetPMKIDCache(tpAniSirGlobal pMac, tANI_U32 sessionId,
816 tANI_U32 *pNum, tPmkidCacheInfo *pPmkidCache);
817
818/* ---------------------------------------------------------------------------
819 \fn csrRoamGetConnectProfile
820 \brief To return the current connect profile. Caller must call csrRoamFreeConnectProfile
821 after it is done and before reuse for another csrRoamGetConnectProfile call.
822 \param pProfile - pointer to a caller allocated structure tCsrRoamConnectedProfile
823 \return eHalStatus. Failure if not connected
824 -------------------------------------------------------------------------------*/
825eHalStatus csrRoamGetConnectProfile(tpAniSirGlobal pMac, tANI_U32 sessionId,
826 tCsrRoamConnectedProfile *pProfile);
827
828/* ---------------------------------------------------------------------------
829 \fn csrRoamGetConnectState
830 \brief To return the current connect state of Roaming
831 \return eHalStatus
832 -------------------------------------------------------------------------------*/
833eHalStatus csrRoamGetConnectState(tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrConnectState *pState);
834
835/* ---------------------------------------------------------------------------
836 \fn csrRoamFreeConnectProfile
837 \brief To free and reinitialize the profile return previous by csrRoamGetConnectProfile.
838 \param pProfile - pointer to a caller allocated structure tCsrRoamConnectedProfile
839 \return eHalStatus.
840 -------------------------------------------------------------------------------*/
841eHalStatus csrRoamFreeConnectProfile(tpAniSirGlobal pMac, tCsrRoamConnectedProfile *pProfile);
842
843/* ---------------------------------------------------------------------------
844 \fn csrInitChannelList
845 \brief HDD calls this function to set the WNI_CFG_VALID_CHANNEL_LIST base on the band/mode settings.
846 This function must be called after CFG is downloaded and all the band/mode setting already passed into
847 CSR.
848 \return eHalStatus
849 -------------------------------------------------------------------------------*/
850eHalStatus csrInitChannelList( tHalHandle hHal );
851
852/* ---------------------------------------------------------------------------
853 \fn csrChangeConfigParams
854 \brief The CSR API exposed for HDD to provide config params to CSR during
855 SMEs stop -> start sequence.
856 If HDD changed the domain that will cause a reset. This function will
857 provide the new set of 11d information for the new domain. Currrently this
858 API provides info regarding 11d only at reset but we can extend this for
859 other params (PMC, QoS) which needs to be initialized again at reset.
860 \param
861 hHal - Handle to the HAL. The HAL handle is returned by the HAL after it is
862 opened (by calling halOpen).
863 pUpdateConfigParam - a pointer to a structure (tCsrUpdateConfigParam) that
864 currently provides 11d related information like Country code,
865 Regulatory domain, valid channel list, Tx power per channel, a
866 list with active/passive scan allowed per valid channel.
867
868 \return eHalStatus
869 ---------------------------------------------------------------------------*/
870eHalStatus csrChangeConfigParams(tpAniSirGlobal pMac,
871 tCsrUpdateConfigParam *pUpdateConfigParam);
872
873/* ---------------------------------------------------------------------------
874 \fn csrRoamConnectToLastProfile
875 \brief To disconnect and reconnect with the same profile
876 \return eHalStatus. It returns fail if currently connected
877 -------------------------------------------------------------------------------*/
878eHalStatus csrRoamConnectToLastProfile(tpAniSirGlobal pMac, tANI_U32 sessionId);
879
880/* ---------------------------------------------------------------------------
881 \fn csrRoamDisconnect
882 \brief To disconnect from a network
883 \param reason -- To indicate the reason for disconnecting. Currently, only eCSR_DISCONNECT_REASON_MIC_ERROR is meanful.
884 \return eHalStatus
885 -------------------------------------------------------------------------------*/
886eHalStatus csrRoamDisconnect(tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamDisconnectReason reason);
887
888/* ---------------------------------------------------------------------------
Sushant Kaushikb4834d22015-07-15 15:29:05 +0530889 \fn csr_abortConnection
890 \brief To disconnect from a connecting network
891 \retutn void.
892----------------------------------------------------------------------------*/
893
894void csr_abortConnection(tpAniSirGlobal pMac, tANI_U32 sessionId);
895
896/* ---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -0700897 \fn csrScanGetPMKIDCandidateList
898 \brief return the PMKID candidate list
899 \param pPmkidList - caller allocated buffer point to an array of tPmkidCandidateInfo
900 \param pNumItems - pointer to a variable that has the number of tPmkidCandidateInfo allocated
901 when retruning, this is either the number needed or number of items put into pPmkidList
902 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough and pNumItems
903 has the number of tPmkidCandidateInfo.
904 \Note: pNumItems is a number of tPmkidCandidateInfo, not sizeof(tPmkidCandidateInfo) * something
905 -------------------------------------------------------------------------------*/
906eHalStatus csrScanGetPMKIDCandidateList(tpAniSirGlobal pMac, tANI_U32 sessionId,
907 tPmkidCandidateInfo *pPmkidList, tANI_U32 *pNumItems );
908
909//This function is used to stop a BSS. It is similar of csrRoamIssueDisconnect but this function
910//doesn't have any logic other than blindly trying to stop BSS
911eHalStatus csrRoamIssueStopBssCmd( tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_BOOLEAN fHighPriority );
912
913void csrCallRoamingCompletionCallback(tpAniSirGlobal pMac, tCsrRoamSession *pSession,
914 tCsrRoamInfo *pRoamInfo, tANI_U32 roamId, eCsrRoamResult roamResult);
915
Jeff Johnson295189b2012-06-20 16:38:30 -0700916/* ---------------------------------------------------------------------------
917 \fn csrRoamIssueDisassociateStaCmd
918 \brief csr function that HDD calls to disassociate a associated station
919 \param sessionId - session Id for Soft AP
920 \param pPeerMacAddr - MAC of associated station to delete
921 \param reason - reason code, be one of the tSirMacReasonCodes
922 \return eHalStatus
923 ---------------------------------------------------------------------------*/
924eHalStatus csrRoamIssueDisassociateStaCmd( tpAniSirGlobal pMac,
Anand N Sunkadc205d952015-07-30 15:36:03 +0530925 tANI_U32 sessionId,
926#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
927 const tANI_U8 *pPeerMacAddr,
928#else
Jeff Johnson295189b2012-06-20 16:38:30 -0700929 tANI_U8 *pPeerMacAddr,
Anand N Sunkadc205d952015-07-30 15:36:03 +0530930#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700931 tANI_U32 reason);
932
933/* ---------------------------------------------------------------------------
934 \fn csrRoamIssueDeauthSta
935 \brief csr function that HDD calls to delete a associated station
936 \param sessionId - session Id for Soft AP
Hanumantha Reddy Pothulaf57da152014-10-31 13:02:08 +0530937 \param pDelStaParams- Pointer to parameters of the station to deauthenticate
Jeff Johnson295189b2012-06-20 16:38:30 -0700938 \return eHalStatus
939 ---------------------------------------------------------------------------*/
940eHalStatus csrRoamIssueDeauthStaCmd( tpAniSirGlobal pMac,
Hanumantha Reddy Pothulaf57da152014-10-31 13:02:08 +0530941 tANI_U32 sessionId,
942 struct tagCsrDelStaParams *pDelStaParams);
Jeff Johnson295189b2012-06-20 16:38:30 -0700943
944/* ---------------------------------------------------------------------------
945 \fn csrRoamIssueTkipCounterMeasures
946 \brief csr function that HDD calls to start and stop tkip countermeasures
947 \param sessionId - session Id for Soft AP
948 \param bEnable - Flag to start/stop countermeasures
949 \return eHalStatus
950 ---------------------------------------------------------------------------*/
951eHalStatus csrRoamIssueTkipCounterMeasures( tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_BOOLEAN bEnable);
952
953eHalStatus csrSendMBTkipCounterMeasuresReqMsg( tpAniSirGlobal pMac, tANI_U32 sessinId, tANI_BOOLEAN bEnable, tSirMacAddr bssId );
954
955/* ---------------------------------------------------------------------------
956 \fn csrRoamGetAssociatedStas
957 \brief csr function that HDD calls to get list of associated stations based on module ID
958 \param sessionId - session Id for Soft AP
959 \param modId - module ID - PE/HAL/TL
960 \param pUsrContext - Opaque HDD context
961 \param pfnSapEventCallback - Sap event callback in HDD
962 \param pAssocStasBuf - Caller allocated memory to be filled with associatd stations info
963 \return eHalStatus
964 ---------------------------------------------------------------------------*/
965eHalStatus csrRoamGetAssociatedStas( tpAniSirGlobal pMac, tANI_U32 sessionId, VOS_MODULE_ID modId,
966 void *pUsrContext, void *pfnSapEventCallback, tANI_U8 *pAssocStasBuf );
967
968eHalStatus csrSendMBGetAssociatedStasReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, VOS_MODULE_ID modId, tSirMacAddr bssId,
969 void *pUsrContext, void *pfnSapEventCallback, tANI_U8 *pAssocStasBuf );
970
971/* ---------------------------------------------------------------------------
972 \fn csrRoamGetWpsSessionOverlap
973 \brief csr function that HDD calls to get WPS PBC session overlap information
974 \param sessionId - session Id for Soft AP
975 \param pUsrContext - Opaque HDD context
976 \param pfnSapEventCallback - Sap event callback in HDD
977 \param pRemoveMac - pointer to MAC address of session to be removed
978 \return eHalStatus
979 ---------------------------------------------------------------------------*/
980eHalStatus csrRoamGetWpsSessionOverlap( tpAniSirGlobal pMac, tANI_U32 sessionId,
981 void *pUsrContext, void *pfnSapEventCallback,v_MACADDR_t pRemoveMac );
982
983eHalStatus csrSendMBGetWPSPBCSessions( tpAniSirGlobal pMac, tANI_U32 sessionId,
984 tSirMacAddr bssId, void *pUsrContext, void *pfnSapEventCallback,v_MACADDR_t pRemoveMac);
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -0800985
986/* ---------------------------------------------------------------------------
987 \fn csrSendChngMCCBeaconInterval
988 \brief csr function that HDD calls to send Update beacon interval
989 \param sessionId - session Id for Soft AP
990 \return eHalStatus
991 ---------------------------------------------------------------------------*/
992eHalStatus
993csrSendChngMCCBeaconInterval(tpAniSirGlobal pMac, tANI_U32 sessionId);
994
Jeff Johnson295189b2012-06-20 16:38:30 -0700995#ifdef FEATURE_WLAN_BTAMP_UT_RF
996eHalStatus csrRoamStartJoinRetryTimer(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 interval);
997eHalStatus csrRoamStopJoinRetryTimer(tpAniSirGlobal pMac, tANI_U32 sessionId);
998#endif
999#ifdef WLAN_FEATURE_VOWIFI_11R
1000/* ---------------------------------------------------------------------------
1001 \fn csrRoamFTPreAuthRspProcessor
1002 \brief csr function that handles pre auth response from LIM
1003 ---------------------------------------------------------------------------*/
1004void csrRoamFTPreAuthRspProcessor( tHalHandle hHal, tpSirFTPreAuthRsp pFTPreAuthRsp );
1005#endif
1006
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001007#if defined(FEATURE_WLAN_ESE) && !defined(FEATURE_WLAN_ESE_UPLOAD)
1008void csrEseSendAdjacentApRepMsg(tpAniSirGlobal pMac, tCsrRoamSession *pSession);
Jeff Johnson295189b2012-06-20 16:38:30 -07001009#endif
Jeff Johnsond13512a2012-07-17 11:42:19 -07001010
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001011#if defined(FEATURE_WLAN_ESE)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001012void UpdateCCKMTSF(tANI_U32 *timeStamp0, tANI_U32 *timeStamp1, tANI_U32 *incr);
1013#endif
1014
Jeff Johnsond13512a2012-07-17 11:42:19 -07001015eHalStatus csrGetDefaultCountryCodeFrmNv(tpAniSirGlobal pMac, tANI_U8 *pCountry);
1016eHalStatus csrGetCurrentCountryCode(tpAniSirGlobal pMac, tANI_U8 *pCountry);
1017
Madan Mohan Koyyalamudi286b60e2012-10-11 12:59:07 -07001018
1019eHalStatus csrRoamEnqueuePreauth(tpAniSirGlobal pMac, tANI_U32 sessionId, tpSirBssDescription pBssDescription,
1020 eCsrRoamReason reason, tANI_BOOLEAN fImmediate);
1021eHalStatus csrRoamDequeuePreauth(tpAniSirGlobal pMac);
Madan Mohan Koyyalamudidd3c9662012-11-09 17:39:30 -08001022#ifdef FEATURE_WLAN_LFR
1023void csrInitOccupiedChannelsList(tpAniSirGlobal pMac);
1024tANI_BOOLEAN csrNeighborRoamIsNewConnectedProfile(tpAniSirGlobal pMac);
1025tANI_BOOLEAN csrNeighborRoamConnectedProfileMatch(tpAniSirGlobal pMac, tCsrScanResult *pResult,
1026 tDot11fBeaconIEs *pIes);
1027#endif
schang86c22c42013-03-13 18:41:24 -07001028eHalStatus csrSetTxPower(tpAniSirGlobal pMac, v_U8_t sessionId, v_U8_t mW);
Sandeep Puligilla332ea912014-02-04 00:16:24 +05301029eHalStatus csrHT40StopOBSSScan(tpAniSirGlobal pMac, v_U8_t sessionId);
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07001030
1031eHalStatus csrScanCreateEntryInScanCache(tpAniSirGlobal pMac, tANI_U32 sessionId,
1032 tCsrBssid bssid, tANI_U8 channel);
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05301033
Leela Venkata Kiran Kumar Reddy Chiralac6663f72014-02-03 21:04:58 -08001034eHalStatus csrUpdateChannelList(tpAniSirGlobal pMac);
Leela Venkata Kiran Kumar Reddy Chiralaede10652013-09-11 18:48:46 -07001035eHalStatus csrRoamDelPMKIDfromCache( tpAniSirGlobal pMac, tANI_U32 sessionId,
Anand N Sunkadb3ab97d2015-07-29 09:58:13 +05301036#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
1037 const tANI_U8 *pBSSId,
1038#else
1039 tANI_U8 *pBSSId,
1040#endif
1041 tANI_BOOLEAN flush_cache );
Agrawal Ashish0b6984f2014-04-05 18:35:45 +05301042tANI_BOOLEAN csrElectedCountryInfo(tpAniSirGlobal pMac);
1043void csrAddVoteForCountryInfo(tpAniSirGlobal pMac, tANI_U8 *pCountryCode);
1044void csrClearVotesForCountryInfo(tpAniSirGlobal pMac);
Hardik Kantilal Patel62a3a762014-11-21 12:55:57 +05301045#ifdef WLAN_FEATURE_AP_HT40_24G
1046eHalStatus csrSetHT2040Mode(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U8 cbMode);
1047#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001048#endif
1049