blob: 7d80c89c92192211ca90a22799a5d3816c15f667 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Padma, Santhosh Kumar0eeb7752018-07-04 18:52:27 +05302 * Copyright (c) 2012-2018 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
Abhishek Singhadd13582016-09-29 17:00:03 +053051#define CSR_ACTIVE_MAX_CHANNEL_TIME_ESCO_BTC 120
52#define CSR_ACTIVE_MIN_CHANNEL_TIME_ESCO_BTC 60
53
54#define CSR_ACTIVE_MIN_CHANNEL_TIME_SCO_BTC 20
55#define CSR_ACTIVE_MAX_CHANNEL_TIME_SCO_BTC 40
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -080056
Jeff Johnson295189b2012-06-20 16:38:30 -070057#ifdef WLAN_AP_STA_CONCURRENCY
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -070058#define CSR_PASSIVE_MAX_CHANNEL_TIME_CONC 110
59#define CSR_PASSIVE_MIN_CHANNEL_TIME_CONC 60
60
Jeff Johnson295189b2012-06-20 16:38:30 -070061#define CSR_ACTIVE_MAX_CHANNEL_TIME_CONC 27
62#define CSR_ACTIVE_MIN_CHANNEL_TIME_CONC 20
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -070063
Madan Mohan Koyyalamudi4805fa82012-11-09 17:53:39 -080064#define CSR_REST_TIME_CONC 100
Vinay Malekal05fdc812012-12-17 13:04:30 -080065
Sudhir Sattayappa Kohallieb97d502013-05-22 23:16:42 -070066#define CSR_NUM_STA_CHAN_COMBINED_CONC 3
67#define CSR_NUM_P2P_CHAN_COMBINED_CONC 1
Jeff Johnson295189b2012-06-20 16:38:30 -070068#endif
69
70#define CSR_MAX_NUM_SUPPORTED_CHANNELS 55
71
Jeff Johnsone7245742012-09-05 17:12:55 -070072#define CSR_MAX_2_4_GHZ_SUPPORTED_CHANNELS 14
73
Yeshwanth Sriram Guntuka8d9b29c2017-12-12 15:44:57 +053074#define DEFAULT_NUM_BUFF_BTC_SCO 3
75
Deepthi Gowri50e2fa52016-03-17 15:30:53 +053076#define CSR_MAX_BSS_SUPPORT 512
Srinivas Girigowda5cecb202013-10-08 09:13:25 -070077#define SYSTEM_TIME_MSEC_TO_USEC 1000
Deepthi Gowri4480a3f2016-05-18 19:30:17 +053078#define SYSTEM_TIME_SEC_TO_MSEC 1000
Jeff Johnson295189b2012-06-20 16:38:30 -070079
80//This number minus 1 means the number of times a channel is scanned before a BSS is remvoed from
81//cache scan result
82#define CSR_AGING_COUNT 3
83//The following defines are used by palTimer
84//This is used for palTimer when request to imps fails
85#define CSR_IDLE_SCAN_WAIT_TIME (1 * PAL_TIMER_TO_SEC_UNIT) //1 second
86//This is used for palTimer when imps ps is disabled
87//This number shall not be smaller than 5-6 seconds in general because a full scan may take 3-4 seconds
88#define CSR_IDLE_SCAN_NO_PS_INTERVAL (10 * PAL_TIMER_TO_SEC_UNIT) //10 second
89#define CSR_IDLE_SCAN_NO_PS_INTERVAL_MIN (5 * PAL_TIMER_TO_SEC_UNIT)
90#define CSR_SCAN_GET_RESULT_INTERVAL (5 * PAL_TIMER_TO_SEC_UNIT) //5 seconds
Jeff Johnson295189b2012-06-20 16:38:30 -070091#define CSR_MIC_ERROR_TIMEOUT (60 * PAL_TIMER_TO_SEC_UNIT) //60 seconds
92#define CSR_TKIP_COUNTER_MEASURE_TIMEOUT (60 * PAL_TIMER_TO_SEC_UNIT) //60 seconds
93#define CSR_SCAN_RESULT_AGING_INTERVAL (5 * PAL_TIMER_TO_SEC_UNIT) //5 seconds
94//the following defines are NOT used by palTimer
95#define CSR_SCAN_AGING_TIME_NOT_CONNECT_NO_PS 50 //50 seconds
96#define CSR_SCAN_AGING_TIME_NOT_CONNECT_W_PS 300 //300 seconds
97#define CSR_SCAN_AGING_TIME_CONNECT_NO_PS 150 //150 seconds
98#define CSR_SCAN_AGING_TIME_CONNECT_W_PS 600 //600 seconds
Abhishek Singh6e8ca792017-11-30 15:43:22 +053099#define CSR_JOIN_FAILURE_TIMEOUT_DEFAULT ( 300 )
100#define CSR_JOIN_FAILURE_TIMEOUT_MIN (300) //minimal value
Jeff Johnson295189b2012-06-20 16:38:30 -0700101//These are going against the signed RSSI (tANI_S8) so it is between -+127
102#define CSR_BEST_RSSI_VALUE (-30) //RSSI >= this is in CAT4
103#define CSR_DEFAULT_RSSI_DB_GAP 30 //every 30 dbm for one category
104#define CSR_BSS_CAP_VALUE_NONE 0 //not much value
105#define CSR_BSS_CAP_VALUE_HT 2
106#define CSR_BSS_CAP_VALUE_WMM 1
107#define CSR_BSS_CAP_VALUE_UAPSD 1
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800108#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -0800109#define CSR_BSS_CAP_VALUE_5GHZ 1
110#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700111#define CSR_DEFAULT_ROAMING_TIME 10 //10 seconds
112#define CSR_ROAM_MIN(X, Y) ((X) < (Y) ? (X) : (Y))
113#define CSR_ROAM_MAX(X, Y) ((X) > (Y) ? (X) : (Y))
114
115#ifdef FEATURE_WLAN_BTAMP_UT_RF
116#define CSR_JOIN_MAX_RETRY_COUNT 10
117#define CSR_JOIN_RETRY_TIMEOUT_PERIOD ( 1 * PAL_TIMER_TO_SEC_UNIT ) // 1 second
118#endif
119
Padma, Santhosh Kumar36183352016-11-08 17:48:34 +0530120#define CSR_DISABLE_SCAN_DURING_SCO 100 //100 milliseconds
121
122
Kapil Guptab3a981b2016-06-26 13:36:51 +0530123#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
124#define ROAMING_RSSI_WEIGHT 50
125#define MIN_RSSI (-100)
126#define MAX_RSSI 0
127#define ROAM_AP_COUNT_WEIGHT 50
128#define ROAM_MAX_COUNT 30
129#define ROAM_MIN_COUNT 0
130#define ROAM_MAX_WEIGHT 100
131
132#define RSSI_WEIGHTAGE 25
133#define HT_CAPABILITY_WEIGHTAGE 10
134#define VHT_CAP_WEIGHTAGE 6
135#define BEAMFORMING_CAP_WEIGHTAGE 2
136#define CHAN_WIDTH_WEIGHTAGE 10
137#define CHAN_BAND_WEIGHTAGE 5
138#define WMM_WEIGHTAGE 2
139#define CCA_WEIGHTAGE 10
140#define OTHER_AP_WEIGHT 30
141
142#define MAX_AP_LOAD 255
143#define PENALTY_TIMEOUT (30 * 60 * 1000)
144#define PENALTY_REMAINING_SCORE (7)
145#define PENALTY_TOTAL_SCORE (10)
146#define PER_EXCELENT_RSSI -40
147#define PER_GOOD_RSSI -55
148#define PER_POOR_RSSI -65
Kapil Guptaa040e772016-09-15 19:03:45 +0530149#define PER_BAD_RSSI -80
Kapil Guptab3a981b2016-06-26 13:36:51 +0530150#define PER_ROAM_EXCELLENT_RSSI_WEIGHT 100
151#define PER_ROAM_GOOD_RSSI_WEIGHT 80
152#define PER_ROAM_BAD_RSSI_WEIGHT 60
153#define PER_ROAM_MAX_WEIGHT 100
154#define PER_ROAM_80MHZ 100
155#define PER_ROAM_40MHZ 70
156#define PER_ROAM_20MHZ 30
157#define PER_ROAM_PENALTY (3/10)
158#define PER_ROAM_MAX_BSS_SCORE 10000
159#endif
160
Jeff Johnson295189b2012-06-20 16:38:30 -0700161typedef enum
162{
163 eCsrNextScanNothing,
164 eCsrNextLostLinkScan1Success,
165 eCsrNextLostLinkScan1Failed,
166 eCsrNextLostLinkScan2Success,
167 eCsrNextLostLinkScan2Failed,
168 eCsrNextLostLinkScan3Success,
169 eCsrNexteScanForSsidSuccess,
170 eCsrNextLostLinkScan3Failed,
171 eCsrNext11dScan1Failure,
172 eCsrNext11dScan1Success,
173 eCsrNext11dScan2Failure,
174 eCsrNext11dScan2Success,
175 eCsrNext11dScanComplete,
176 eCsrNexteScanForSsidFailure,
177 eCsrNextIdleScanComplete,
178 eCsrNextCapChangeScanComplete,
179
180}eCsrScanCompleteNextCommand;
181
182typedef enum
183{
184 eCsrJoinSuccess,
185 eCsrJoinFailure,
186 eCsrReassocSuccess,
187 eCsrReassocFailure,
188 eCsrNothingToJoin,
189 eCsrStartBssSuccess,
190 eCsrStartBssFailure,
191 eCsrSilentlyStopRoaming,
192 eCsrSilentlyStopRoamingSaveState,
193 eCsrJoinWdsFailure,
Jeff Johnsone7245742012-09-05 17:12:55 -0700194 eCsrJoinFailureDueToConcurrency,
Jeff Johnson295189b2012-06-20 16:38:30 -0700195
196}eCsrRoamCompleteResult;
197
198typedef struct tagScanReqParam
199{
200 tANI_U8 bReturnAfter1stMatch;
201 tANI_U8 fUniqueResult;
202 tANI_U8 freshScan;
203 tANI_U8 hiddenSsid;
204 tANI_U8 reserved;
205}tScanReqParam;
206
207typedef struct tagCsrScanResult
208{
209 tListElem Link;
210 tANI_S32 AgingCount; //This BSS is removed when it reaches 0 or less
211 tANI_U32 preferValue; //The bigger the number, the better the BSS. This value override capValue
212 tANI_U32 capValue; //The biggger the better. This value is in use only if we have equal preferValue
Jeff Johnson295189b2012-06-20 16:38:30 -0700213
214 eCsrEncryptionType ucEncryptionType; //Preferred Encryption type that matched with profile.
215 eCsrEncryptionType mcEncryptionType;
216 eCsrAuthType authType; //Preferred auth type that matched with the profile.
Kapil Guptab3a981b2016-06-26 13:36:51 +0530217#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
218 int congestionScore;
219#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700220 tCsrScanResultInfo Result;
Sridhar Selvarajb59cd8c2017-07-17 18:43:55 +0530221 /*
222 * WARNING - Do not add any element here
223 * This member Result must be the last in the structure because the end
224 * of tSirBssDescription (inside) is an array with nonknown size at
225 * this time.
226 */
Jeff Johnson295189b2012-06-20 16:38:30 -0700227}tCsrScanResult;
228
229typedef struct
230{
231 tDblLinkList List;
232 tListElem *pCurEntry;
233}tScanResultList;
234
Kapil Guptac46b7542016-10-25 13:03:20 +0530235/**
236 * csr_scan_for_ssid_context() - Callback context for SSID scan
237 *
238 * @pMac: pMac handle
239 * @sessionId: scan session id
240 * @roamId: roam Id
241 */
242struct csr_scan_for_ssid_context
243{
244 tpAniSirGlobal pMac;
245 tANI_U32 sessionId;
246 tANI_U32 roamId;
247};
Jeff Johnson295189b2012-06-20 16:38:30 -0700248
249#define CSR_IS_ROAM_REASON( pCmd, reason ) ( (reason) == (pCmd)->roamCmd.roamReason )
250#define CSR_IS_BETTER_PREFER_VALUE(v1, v2) ((v1) > (v2))
251#define CSR_IS_EQUAL_PREFER_VALUE(v1, v2) ((v1) == (v2))
252#define CSR_IS_BETTER_CAP_VALUE(v1, v2) ((v1) > (v2))
253#define CSR_IS_ENC_TYPE_STATIC( encType ) ( ( eCSR_ENCRYPT_TYPE_NONE == (encType) ) || \
254 ( eCSR_ENCRYPT_TYPE_WEP40_STATICKEY == (encType) ) || \
255 ( eCSR_ENCRYPT_TYPE_WEP104_STATICKEY == (encType) ) )
256#define CSR_IS_WAIT_FOR_KEY( pMac, sessionId ) ( CSR_IS_ROAM_JOINED( pMac, sessionId ) && CSR_IS_ROAM_SUBSTATE_WAITFORKEY( pMac, sessionId ) )
257//WIFI has a test case for not using HT rates with TKIP as encryption
258//We may need to add WEP but for now, TKIP only.
259
260#define CSR_IS_11n_ALLOWED( encType ) (( eCSR_ENCRYPT_TYPE_TKIP != (encType) ) && \
261 ( eCSR_ENCRYPT_TYPE_WEP40_STATICKEY != (encType) ) && \
262 ( eCSR_ENCRYPT_TYPE_WEP104_STATICKEY != (encType) ) && \
263 ( eCSR_ENCRYPT_TYPE_WEP40 != (encType) ) && \
264 ( eCSR_ENCRYPT_TYPE_WEP104 != (encType) ) )
265
Abhishek Singh99f17b82017-02-06 16:57:56 +0530266#define CSR_IS_DISCONNECT_COMMAND(pCommand) ((eSmeCommandRoam == \
267 (pCommand)->command) &&\
268 ((eCsrForcedDisassoc == (pCommand)->u.roamCmd.roamReason) ||\
269 (eCsrForcedIbssLeave == (pCommand)->u.roamCmd.roamReason) ||\
270 (eCsrForcedDeauth == (pCommand)->u.roamCmd.roamReason) ||\
271 (eCsrSmeIssuedDisassocForHandoff ==\
272 (pCommand)->u.roamCmd.roamReason) ||\
273 (eCsrForcedDisassocMICFailure ==\
274 (pCommand)->u.roamCmd.roamReason)))
Abhishek Singhf4669da2014-05-26 15:07:49 +0530275
Jeff Johnson295189b2012-06-20 16:38:30 -0700276eCsrRoamState csrRoamStateChange( tpAniSirGlobal pMac, eCsrRoamState NewRoamState, tANI_U8 sessionId);
277eHalStatus csrScanningStateMsgProcessor( tpAniSirGlobal pMac, void *pMsgBuf );
278void csrRoamingStateMsgProcessor( tpAniSirGlobal pMac, void *pMsgBuf );
279void csrRoamJoinedStateMsgProcessor( tpAniSirGlobal pMac, void *pMsgBuf );
280tANI_BOOLEAN csrScanComplete( tpAniSirGlobal pMac, tSirSmeScanRsp *pScanRsp );
281void csrReleaseCommandRoam(tpAniSirGlobal pMac, tSmeCmd *pCommand);
Padma, Santhosh Kumar67f479b2016-12-28 15:43:42 +0530282tpCsrNeighborRoamBSSInfo csrNeighborRoamGetRoamableAPListNextEntry(tpAniSirGlobal pMac,
283 tDblLinkList *pList, tpCsrNeighborRoamBSSInfo pNeighborEntry);
284v_U8_t *csrNeighborRoamStateToString(v_U8_t state);
285void csrReleaseCommandPreauth(tpAniSirGlobal pMac, tSmeCmd *pCommand);
Jeff Johnson295189b2012-06-20 16:38:30 -0700286void csrReleaseCommandScan(tpAniSirGlobal pMac, tSmeCmd *pCommand);
287void csrReleaseCommandWmStatusChange(tpAniSirGlobal pMac, tSmeCmd *pCommand);
288//pIes2 can be NULL
289tANI_BOOLEAN csrIsDuplicateBssDescription( tpAniSirGlobal pMac, tSirBssDescription *pSirBssDesc1,
Tushnim Bhattacharyya5128d752013-06-26 23:23:18 -0700290 tSirBssDescription *pSirBssDesc2, tDot11fBeaconIEs *pIes2, tANI_BOOLEAN fForced );
Jeff Johnson295189b2012-06-20 16:38:30 -0700291eHalStatus csrRoamSaveConnectedBssDesc( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirBssDescription *pBssDesc );
292tANI_BOOLEAN csrIsNetworkTypeEqual( tSirBssDescription *pSirBssDesc1, tSirBssDescription *pSirBssDesc2 );
293eHalStatus csrScanSmeScanResponse( tpAniSirGlobal pMac, void *pMsgBuf );
294/*
295 Prepare a filter base on a profile for parsing the scan results.
296 Upon successful return, caller MUST call csrFreeScanFilter on
297 pScanFilter when it is done with the filter.
298*/
299eHalStatus csrRoamPrepareFilterFromProfile(tpAniSirGlobal pMac, tCsrRoamProfile *pProfile, tCsrScanResultFilter *pScanFilter);
300eHalStatus csrRoamCopyProfile(tpAniSirGlobal pMac, tCsrRoamProfile *pDstProfile, tCsrRoamProfile *pSrcProfile);
301eHalStatus csrRoamStart(tpAniSirGlobal pMac);
302void csrRoamStop(tpAniSirGlobal pMac, tANI_U32 sessionId);
303void csrRoamStartMICFailureTimer(tpAniSirGlobal pMac);
304void csrRoamStopMICFailureTimer(tpAniSirGlobal pMac);
305void csrRoamStartTKIPCounterMeasureTimer(tpAniSirGlobal pMac);
306void csrRoamStopTKIPCounterMeasureTimer(tpAniSirGlobal pMac);
307
308eHalStatus csrScanOpen(tpAniSirGlobal pMac);
309eHalStatus csrScanClose(tpAniSirGlobal pMac);
310eHalStatus csrScanRequestLostLink1( tpAniSirGlobal pMac, tANI_U32 sessionId );
311eHalStatus csrScanRequestLostLink2( tpAniSirGlobal pMac, tANI_U32 sessionId );
312eHalStatus csrScanRequestLostLink3( tpAniSirGlobal pMac, tANI_U32 sessionId );
313eHalStatus csrScanHandleFailedLostlink1(tpAniSirGlobal pMac, tANI_U32 sessionId);
314eHalStatus csrScanHandleFailedLostlink2(tpAniSirGlobal pMac, tANI_U32 sessionId);
315eHalStatus csrScanHandleFailedLostlink3(tpAniSirGlobal pMac, tANI_U32 sessionId);
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700316tCsrScanResult *csrScanAppendBssDescription( tpAniSirGlobal pMac,
Jeff Johnson295189b2012-06-20 16:38:30 -0700317 tSirBssDescription *pSirBssDescription,
Tushnim Bhattacharyya5128d752013-06-26 23:23:18 -0700318 tDot11fBeaconIEs *pIes, tANI_BOOLEAN fForced);
Jeff Johnson295189b2012-06-20 16:38:30 -0700319void csrScanCallCallback(tpAniSirGlobal pMac, tSmeCmd *pCommand, eCsrScanStatus scanStatus);
320eHalStatus csrScanCopyRequest(tpAniSirGlobal pMac, tCsrScanRequest *pDstReq, tCsrScanRequest *pSrcReq);
321eHalStatus csrScanFreeRequest(tpAniSirGlobal pMac, tCsrScanRequest *pReq);
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700322eHalStatus csrScanCopyResultList(tpAniSirGlobal pMac, tScanResultHandle hIn, tScanResultHandle *phResult);
Jeff Johnson295189b2012-06-20 16:38:30 -0700323void csrInitBGScanChannelList(tpAniSirGlobal pMac);
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -0700324eHalStatus csrScanForSSID(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile, tANI_U32 roamId, tANI_BOOLEAN notify);
Jeff Johnson295189b2012-06-20 16:38:30 -0700325eHalStatus csrScanForCapabilityChange(tpAniSirGlobal pMac, tSirSmeApNewCaps *pNewCaps);
326eHalStatus csrScanStartGetResultTimer(tpAniSirGlobal pMac);
327eHalStatus csrScanStopGetResultTimer(tpAniSirGlobal pMac);
Jeff Johnson295189b2012-06-20 16:38:30 -0700328eHalStatus csrScanBGScanEnable(tpAniSirGlobal pMac);
329eHalStatus csrScanStartIdleScanTimer(tpAniSirGlobal pMac, tANI_U32 interval);
330eHalStatus csrScanStopIdleScanTimer(tpAniSirGlobal pMac);
331eHalStatus csrScanStartIdleScan(tpAniSirGlobal pMac);
332//Param: pTimeInterval -- Caller allocated memory in return, if failed, to specify the nxt time interval for
333//idle scan timer interval
334//Return: Not success -- meaning it cannot start IMPS, caller needs to start a timer for idle scan
335eHalStatus csrScanTriggerIdleScan(tpAniSirGlobal pMac, tANI_U32 *pTimeInterval);
336void csrScanCancelIdleScan(tpAniSirGlobal pMac);
337void csrScanStopTimers(tpAniSirGlobal pMac);
338//This function will remove scan commands that are not related to association or IBSS
339tANI_BOOLEAN csrScanRemoveNotRoamingScanCommand(tpAniSirGlobal pMac);
340//To remove fresh scan commands from the pending queue
341tANI_BOOLEAN csrScanRemoveFreshScanCommand(tpAniSirGlobal pMac, tANI_U8 sessionId);
c_hpothua3d45d52015-01-05 14:11:17 +0530342tSirAbortScanStatus csrScanAbortMacScan(tpAniSirGlobal pMac,
343 tANI_U8 sessionId,
344 eCsrAbortReason reason);
Jeff Johnson295189b2012-06-20 16:38:30 -0700345void csrRemoveCmdFromPendingList(tpAniSirGlobal pMac, tDblLinkList *pList,
346 eSmeCommandType commandType );
Madan Mohan Koyyalamudiff3a7152013-06-13 14:47:55 +0530347void csrRemoveCmdWithSessionIdFromPendingList(tpAniSirGlobal pMac,
348 tANI_U8 sessionId,
349 tDblLinkList *pList,
350 eSmeCommandType commandType);
351eHalStatus csrScanAbortMacScanNotForConnect(tpAniSirGlobal pMac,
352 tANI_U8 sessionId);
Madan Mohan Koyyalamudide1b5bc2013-07-12 00:56:04 +0530353eHalStatus csrScanGetScanChannelInfo(tpAniSirGlobal pMac, tANI_U8 sessionId);
Abhishek Singhdc2bfd42014-06-19 17:59:05 +0530354eHalStatus csrScanAbortScanForSSID(tpAniSirGlobal pMac, tANI_U32 sessionId);
355void csrRemoveScanForSSIDFromPendingList(tpAniSirGlobal pMac, tDblLinkList *pList, tANI_U32 sessionId);
356
Jeff Johnson295189b2012-06-20 16:38:30 -0700357//To age out scan results base. tSmeGetScanChnRsp is a pointer returned by LIM that
358//has the information regarding scanned channels.
359//The logic is that whenever CSR add a BSS to scan result, it set the age count to
360//a value. This function deduct the age count if channelId matches the BSS' channelId
361//The BSS is remove if the count reaches 0.
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700362eHalStatus csrScanAgeResults(tpAniSirGlobal pMac, tSmeGetScanChnRsp *pScanChnInfo);
Jeff Johnson295189b2012-06-20 16:38:30 -0700363
Abhishek Singhc640dbb2015-06-08 10:54:17 +0530364eHalStatus csrIbssAgeBss(tpAniSirGlobal pMac);
365
Jeff Johnson295189b2012-06-20 16:38:30 -0700366//If fForce is TRUE we will save the new String that is learn't.
367//Typically it will be true in case of Join or user initiated ioctl
Chandrasekaran, Manishekar90c49322014-06-24 13:26:14 +0530368tANI_BOOLEAN csrLearnCountryInformation( tpAniSirGlobal pMac, tSirBssDescription *pSirBssDesc,
369 tDot11fBeaconIEs *pIes, tANI_BOOLEAN fForce );
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700370void csrApplyCountryInformation( tpAniSirGlobal pMac, tANI_BOOLEAN fForce );
Jeff Johnson295189b2012-06-20 16:38:30 -0700371void csrSetCfgScanControlList( tpAniSirGlobal pMac, tANI_U8 *countryCode, tCsrChannel *pChannelList );
372void csrReinitScanCmd(tpAniSirGlobal pMac, tSmeCmd *pCommand);
373void csrFreeScanResultEntry( tpAniSirGlobal pMac, tCsrScanResult *pResult );
374
375eHalStatus csrRoamCallCallback(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamInfo *pRoamInfo,
376 tANI_U32 roamId, eRoamCmdStatus u1, eCsrRoamResult u2);
377eHalStatus csrRoamIssueConnect(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
378 tScanResultHandle hBSSList,
379 eCsrRoamReason reason, tANI_U32 roamId,
380 tANI_BOOLEAN fImediate, tANI_BOOLEAN fClearScan);
381eHalStatus csrRoamIssueReassoc(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
382 tCsrRoamModifyProfileFields *pModProfileFields,
383 eCsrRoamReason reason, tANI_U32 roamId, tANI_BOOLEAN fImediate);
384void csrRoamComplete( tpAniSirGlobal pMac, eCsrRoamCompleteResult Result, void *Context );
385eHalStatus csrRoamIssueSetContextReq( tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrEncryptionType EncryptType,
386 tSirBssDescription *pBssDescription,
387 tSirMacAddr *bssId, tANI_BOOLEAN addKey,
388 tANI_BOOLEAN fUnicast, tAniKeyDirection aniKeyDirection,
389 tANI_U8 keyId, tANI_U16 keyLength,
390 tANI_U8 *pKey, tANI_U8 paeRole );
391eHalStatus csrRoamProcessDisassocDeauth( tpAniSirGlobal pMac, tSmeCmd *pCommand,
392 tANI_BOOLEAN fDisassoc, tANI_BOOLEAN fMICFailure );
393eHalStatus csrRoamSaveConnectedInfomation(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
394 tSirBssDescription *pSirBssDesc, tDot11fBeaconIEs *pIes);
395void csrRoamCheckForLinkStatusChange( tpAniSirGlobal pMac, tSirSmeRsp *pSirMsg );
396void csrRoamStatsRspProcessor(tpAniSirGlobal pMac, tSirSmeRsp *pSirMsg);
397eHalStatus csrRoamIssueStartBss( tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamStartBssParams *pParam,
398 tCsrRoamProfile *pProfile, tSirBssDescription *pBssDesc, tANI_U32 roamId );
399eHalStatus csrRoamIssueStopBss( tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamSubState NewSubstate );
400tANI_BOOLEAN csrIsSameProfile(tpAniSirGlobal pMac, tCsrRoamConnectedProfile *pProfile1, tCsrRoamProfile *pProfile2);
401tANI_BOOLEAN csrIsRoamCommandWaiting(tpAniSirGlobal pMac);
402tANI_BOOLEAN csrIsRoamCommandWaitingForSession(tpAniSirGlobal pMac, tANI_U32 sessionId);
403tANI_BOOLEAN csrIsScanForRoamCommandActive( tpAniSirGlobal pMac );
404eRoamCmdStatus csrGetRoamCompleteStatus(tpAniSirGlobal pMac, tANI_U32 sessionId);
405//pBand can be NULL if caller doesn't need to get it
406//eCsrCfgDot11Mode csrRoamGetPhyModeBandForBss( tpAniSirGlobal pMac, eCsrPhyMode phyModeIn, tANI_U8 operationChn, eCsrBand *pBand );
407eHalStatus csrRoamIssueDisassociateCmd( tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamDisconnectReason reason );
408eHalStatus csrRoamDisconnectInternal(tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamDisconnectReason reason);
409//pCommand may be NULL
410void csrRoamRemoveDuplicateCommand(tpAniSirGlobal pMac, tANI_U32 sessionId, tSmeCmd *pCommand, eCsrRoamReason eRoamReason);
411
412eHalStatus csrSendJoinReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirBssDescription *pBssDescription,
Srinivas Girigowdac16730e2013-01-16 13:39:39 -0800413 tCsrRoamProfile *pProfile, tDot11fBeaconIEs *pIes, tANI_U16 messageType );
Jeff Johnson295189b2012-06-20 16:38:30 -0700414eHalStatus csrSendMBDisassocReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirMacAddr bssId, tANI_U16 reasonCode );
Padma, Santhosh Kumarf4966dc2017-01-03 18:56:00 +0530415#ifdef WLAN_FEATURE_LFR_MBB
416eHalStatus csr_fill_reassoc_req(tpAniSirGlobal pMac, tANI_U32 sessionId, tSirBssDescription *pBssDescription,
417 tDot11fBeaconIEs *pIes, tSirSmeJoinReq **reassoc_req);
418#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700419eHalStatus csrSendMBDeauthReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, tSirMacAddr bssId, tANI_U16 reasonCode );
420eHalStatus csrSendMBDisassocCnfMsg( tpAniSirGlobal pMac, tpSirSmeDisassocInd pDisassocInd );
421eHalStatus csrSendMBDeauthCnfMsg( tpAniSirGlobal pMac, tpSirSmeDeauthInd pDeauthInd );
422eHalStatus csrSendAssocCnfMsg( tpAniSirGlobal pMac, tpSirSmeAssocInd pAssocInd, eHalStatus status );
Jeff Johnson295189b2012-06-20 16:38:30 -0700423eHalStatus csrSendAssocIndToUpperLayerCnfMsg( tpAniSirGlobal pMac, tpSirSmeAssocInd pAssocInd, eHalStatus Halstatus, tANI_U8 sessionId );
Jeff Johnson295189b2012-06-20 16:38:30 -0700424eHalStatus csrSendMBStartBssReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamBssType bssType,
425 tCsrRoamStartBssParams *pParam, tSirBssDescription *pBssDesc );
426eHalStatus csrSendMBStopBssReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId );
Jeff Johnson295189b2012-06-20 16:38:30 -0700427
428tANI_BOOLEAN csrIsMacAddressEqual( tpAniSirGlobal pMac, tCsrBssid *pMacAddr1, tCsrBssid *pMacAddr2 );
429//Caller should put the BSS' ssid to fiedl bssSsid when comparing SSID for a BSS.
430tANI_BOOLEAN csrIsSsidMatch( tpAniSirGlobal pMac, tANI_U8 *ssid1, tANI_U8 ssid1Len, tANI_U8 *bssSsid,
431 tANI_U8 bssSsidLen, tANI_BOOLEAN fSsidRequired );
432tANI_BOOLEAN csrIsPhyModeMatch( tpAniSirGlobal pMac, tANI_U32 phyMode,
433 tSirBssDescription *pSirBssDesc, tCsrRoamProfile *pProfile,
434 eCsrCfgDot11Mode *pReturnCfgDot11Mode,
435 tDot11fBeaconIEs *pIes);
436tANI_BOOLEAN csrRoamIsChannelValid( tpAniSirGlobal pMac, tANI_U8 channel );
437
438//pNumChan is a caller allocated space with the sizeof pChannels
439eHalStatus csrGetCfgValidChannels(tpAniSirGlobal pMac, tANI_U8 *pChannels, tANI_U32 *pNumChan);
440void csrRoamCcmCfgSetCallback(tHalHandle hHal, tANI_S32 result);
441void csrScanCcmCfgSetCallback(tHalHandle hHal, tANI_S32 result);
442
Kiran4a17ebe2013-01-31 10:43:43 -0800443tPowerdBm csrGetCfgMaxTxPower (tpAniSirGlobal pMac, tANI_U8 channel);
444
Jeff Johnson295189b2012-06-20 16:38:30 -0700445//To free the last roaming profile
446void csrFreeRoamProfile(tpAniSirGlobal pMac, tANI_U32 sessionId);
447void csrFreeConnectBssDesc(tpAniSirGlobal pMac, tANI_U32 sessionId);
448eHalStatus csrMoveBssToHeadFromBSSID(tpAniSirGlobal pMac, tCsrBssid *bssid, tScanResultHandle hScanResult);
449tANI_BOOLEAN csrCheckPSReady(void *pv);
450void csrFullPowerCallback(void *pv, eHalStatus status);
451//to free memory allocated inside the profile structure
452void csrReleaseProfile(tpAniSirGlobal pMac, tCsrRoamProfile *pProfile);
453//To free memory allocated inside scanFilter
454void csrFreeScanFilter(tpAniSirGlobal pMac, tCsrScanResultFilter *pScanFilter);
Jeff Johnson295189b2012-06-20 16:38:30 -0700455eCsrCfgDot11Mode csrGetCfgDot11ModeFromCsrPhyMode(tCsrRoamProfile *pProfile, eCsrPhyMode phyMode, tANI_BOOLEAN fProprietary);
Jeff Johnson295189b2012-06-20 16:38:30 -0700456tANI_U32 csrTranslateToWNICfgDot11Mode(tpAniSirGlobal pMac, eCsrCfgDot11Mode csrDot11Mode);
457void csrSaveChannelPowerForBand( tpAniSirGlobal pMac, tANI_BOOLEAN fPopulate5GBand );
Gopichand Nakkalab9185f22012-12-21 08:03:42 -0800458void csrApplyChannelPowerCountryInfo( tpAniSirGlobal pMac, tCsrChannel *pChannelList, tANI_U8 *countryCode, tANI_BOOLEAN updateRiva);
Sourav Mohapatra3dd5dba2018-03-26 15:12:47 +0530459void csrUpdateFCCChannelList(tpAniSirGlobal pMac);
Jeff Johnsone7245742012-09-05 17:12:55 -0700460void csrApplyPower2Current( tpAniSirGlobal pMac );
Srinivas Girigowda41c7c5f2013-10-21 19:01:38 -0700461void csrAssignRssiForCategory(tpAniSirGlobal pMac, tANI_S8 bestApRssi, tANI_U8 catOffset);
Jeff Johnson295189b2012-06-20 16:38:30 -0700462tANI_BOOLEAN csrIsMacAddressZero( tpAniSirGlobal pMac, tCsrBssid *pMacAddr );
463tANI_BOOLEAN csrIsMacAddressBroadcast( tpAniSirGlobal pMac, tCsrBssid *pMacAddr );
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700464eHalStatus csrRoamRemoveConnectedBssFromScanCache(tpAniSirGlobal pMac, tCsrRoamConnectedProfile *pConnProfile);
Jeff Johnson295189b2012-06-20 16:38:30 -0700465eHalStatus csrRoamStartRoaming(tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamingReason roamingReason);
466//return a boolean to indicate whether roaming completed or continue.
467tANI_BOOLEAN csrRoamCompleteRoaming(tpAniSirGlobal pMac, tANI_U32 sessionId,
468 tANI_BOOLEAN fForce, eCsrRoamResult roamResult);
469void csrRoamCompletion(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamInfo *pRoamInfo, tSmeCmd *pCommand, eCsrRoamResult roamResult, tANI_BOOLEAN fSuccess);
470void csrRoamCancelRoaming(tpAniSirGlobal pMac, tANI_U32 sessionId);
Gopichand Nakkalab9185f22012-12-21 08:03:42 -0800471void csrResetCountryInformation( tpAniSirGlobal pMac, tANI_BOOLEAN fForce, tANI_BOOLEAN updateRiva );
Jeff Johnson295189b2012-06-20 16:38:30 -0700472void csrResetPMKIDCandidateList( tpAniSirGlobal pMac, tANI_U32 sessionId );
473#ifdef FEATURE_WLAN_WAPI
474void csrResetBKIDCandidateList( tpAniSirGlobal pMac, tANI_U32 sessionId );
475#endif /* FEATURE_WLAN_WAPI */
Jeff Johnsone7245742012-09-05 17:12:55 -0700476eHalStatus csrSaveToChannelPower2G_5G( tpAniSirGlobal pMac, tANI_U32 tableSize, tSirMacChanInfo *channelTable );
Jeff Johnson295189b2012-06-20 16:38:30 -0700477//Get the list of the base channels to scan for passively 11d info
478eHalStatus csrScanGetSupportedChannels( tpAniSirGlobal pMac );
479//To check whether a country code matches the one in the IE
480//Only check the first two characters, ignoring in/outdoor
481//pCountry -- caller allocated buffer contain the country code that is checking against
482//the one in pIes. It can be NULL.
483//caller must provide pIes, it cannot be NULL
484//This function always return TRUE if 11d support is not turned on.
485//pIes cannot be NULL
486tANI_BOOLEAN csrMatchCountryCode( tpAniSirGlobal pMac, tANI_U8 *pCountry, tDot11fBeaconIEs *pIes );
487eHalStatus csrRoamSetKey( tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamSetKey *pSetKey, tANI_U32 roamId );
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -0700488eHalStatus csrRoamOpenSession(tpAniSirGlobal pMac,
489 csrRoamCompleteCallback callback,
490 void *pContext, tANI_U8 *pSelfMacAddr,
491 tANI_U8 *pbSessionId);
Jeff Johnson295189b2012-06-20 16:38:30 -0700492//fSync: TRUE means cleanupneeds to handle synchronously.
493eHalStatus csrRoamCloseSession( tpAniSirGlobal pMac, tANI_U32 sessionId,
mukul sharmabab477d2015-06-11 17:14:55 +0530494 tANI_BOOLEAN fSync, tANI_U8 bPurgeList,
Jeff Johnson295189b2012-06-20 16:38:30 -0700495 csrRoamSessionCloseCallback callback,
496 void *pContext );
Abhishek Singhdeb782f2016-04-28 11:44:29 +0530497void csrPurgeSmeCmdList(tpAniSirGlobal pMac, tANI_U32 sessionId,
498 bool flush_all);
Jeff Johnson295189b2012-06-20 16:38:30 -0700499void csrCleanupSession(tpAniSirGlobal pMac, tANI_U32 sessionId);
500eHalStatus csrRoamGetSessionIdFromBSSID( tpAniSirGlobal pMac, tCsrBssid *bssid, tANI_U32 *pSessionId );
501eCsrCfgDot11Mode csrFindBestPhyMode( tpAniSirGlobal pMac, tANI_U32 phyMode );
502
503/* ---------------------------------------------------------------------------
504 \fn csrScanEnable
505 \brief Enable the scanning feature of CSR. It must be called before any scan request can be performed.
506 \param tHalHandle - HAL context handle
507 \return eHalStatus
508 -------------------------------------------------------------------------------*/
509eHalStatus csrScanEnable(tpAniSirGlobal);
510
511/* ---------------------------------------------------------------------------
512 \fn csrScanDisable
513 \brief Disableing the scanning feature of CSR. After this function return success, no scan is performed until
514a successfull to csrScanEnable
515 \param tHalHandle - HAL context handle
516 \return eHalStatus
517 -------------------------------------------------------------------------------*/
518eHalStatus csrScanDisable(tpAniSirGlobal);
519/* ---------------------------------------------------------------------------
520 \fn csrScanRequest
521 \brief Request a 11d or full scan.
522 \param pScanRequestID - pointer to an object to get back the request ID
523 \param callback - a callback function that scan calls upon finish, will not be called if csrScanRequest returns error
524 \param pContext - a pointer passed in for the callback
525 \return eHalStatus
526 -------------------------------------------------------------------------------*/
527eHalStatus csrScanRequest(tpAniSirGlobal, tANI_U16, tCsrScanRequest *,
528 tANI_U32 *pScanRequestID, csrScanCompleteCallback callback,
529 void *pContext);
530
531/* ---------------------------------------------------------------------------
532 \fn csrScanAbort
533 \brief If a scan request is abort, the scan complete callback will be called first before csrScanAbort returns.
534 \param pScanRequestID - The request ID returned from csrScanRequest
535 \return eHalStatus
536 -------------------------------------------------------------------------------*/
537eHalStatus csrScanAbort(tpAniSirGlobal, tANI_U32 scanRequestID);
538
539eHalStatus csrScanSetBGScanparams(tpAniSirGlobal, tCsrBGScanRequest *);
540eHalStatus csrScanBGScanAbort(tpAniSirGlobal);
541
542/* ---------------------------------------------------------------------------
543 \fn csrScanGetResult
544 \brief Return scan results.
545 \param pFilter - If pFilter is NULL, all cached results are returned
546 \param phResult - an object for the result.
547 \return eHalStatus
548 -------------------------------------------------------------------------------*/
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700549eHalStatus csrScanGetResult(tpAniSirGlobal, tCsrScanResultFilter *pFilter, tScanResultHandle *phResult);
Jeff Johnson295189b2012-06-20 16:38:30 -0700550
Mukul Sharma9e4e0f92015-02-13 18:45:20 +0530551#ifdef FEATURE_WLAN_LFR
552/* ---------------------------------------------------------------------------
553 \fn csrAddChannelToOccupiedChannelList
554 \brief Add channel no given by fast reassoc cmd into occ chn list
555 \param channel - channel no passed by fast reassoc cmd
556 \return void
557 -------------------------------------------------------------------------------*/
558void csrAddChannelToOccupiedChannelList(tpAniSirGlobal pMac, tANI_U8 channel);
559#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700560/* ---------------------------------------------------------------------------
561 \fn csrScanFlushResult
562 \brief Clear scan results.
563 \return eHalStatus
564 -------------------------------------------------------------------------------*/
Madan Mohan Koyyalamudica43cdf2012-09-24 13:15:49 -0700565eHalStatus csrScanFlushResult(tpAniSirGlobal);
Srinivas, Dasari42bf7702014-02-07 11:29:53 +0530566/* ---------------------------------------------------------------------------
567 * \fn csrScanFilterResults
568 * \brief Filter scan results based on valid channel list.
569 * \return eHalStatus
570 *-------------------------------------------------------------------------------
571 */
572eHalStatus csrScanFilterResults(tpAniSirGlobal pMac);
573
Padma, Santhosh Kumar778d8382015-03-04 17:41:22 +0530574/* ---------------------------------------------------------------------------
575 * \fn csrScanFilterDFSResults
576 * \brief Filter BSSIDs on DFS channels from the scan results.
577 * \return eHalStatus
578 *-------------------------------------------------------------------------------
579 */
580eHalStatus csrScanFilterDFSResults(tpAniSirGlobal pMac);
581
Madan Mohan Koyyalamudi5850f312012-11-27 19:00:25 +0530582eHalStatus csrScanFlushSelectiveResult(tpAniSirGlobal, v_BOOL_t flushP2P);
Mukul Sharma20aa6582014-08-07 21:36:12 +0530583
584eHalStatus csrScanFlushSelectiveResultForBand(tpAniSirGlobal, v_BOOL_t flushP2P, tSirRFBand band);
585
Padma, Santhosh Kumar0eeb7752018-07-04 18:52:27 +0530586eHalStatus csrScanFlushSelectiveSsid(tpAniSirGlobal pMac, tANI_U8 *ssId,
587 tANI_U8 ssIdLen);
588
Jeff Johnson295189b2012-06-20 16:38:30 -0700589/* ---------------------------------------------------------------------------
590 \fn csrScanBGScanGetParam
591 \brief Returns the current background scan settings.
592 \return eHalStatus
593 -------------------------------------------------------------------------------*/
594eHalStatus csrScanBGScanGetParam(tpAniSirGlobal, tCsrBGScanRequest *);
595
596/* ---------------------------------------------------------------------------
597 \fn csrScanResultGetFirst
598 \brief Returns the first element of scan result.
599 \param hScanResult - returned from csrScanGetResult
600 \return tCsrScanResultInfo * - NULL if no result
601 -------------------------------------------------------------------------------*/
602tCsrScanResultInfo *csrScanResultGetFirst(tpAniSirGlobal, tScanResultHandle hScanResult);
603/* ---------------------------------------------------------------------------
604 \fn csrScanResultGetNext
605 \brief Returns the next element of scan result. It can be called without calling csrScanResultGetFirst first
606 \param hScanResult - returned from csrScanGetResult
607 \return Null if no result or reach the end
608 -------------------------------------------------------------------------------*/
609tCsrScanResultInfo *csrScanResultGetNext(tpAniSirGlobal, tScanResultHandle hScanResult);
610
611/* ---------------------------------------------------------------------------
612 \fn csrGetCountryCode
613 \brief this function is to get the country code current being used
614 \param pBuf - Caller allocated buffer with at least 3 bytes, upon success return, this has the country code
615 \param pbLen - Caller allocated, as input, it indicates the length of pBuf. Upon success return,
616 this contains the length of the data in pBuf
617 \return eHalStatus
618 -------------------------------------------------------------------------------*/
619eHalStatus csrGetCountryCode(tpAniSirGlobal pMac, tANI_U8 *pBuf, tANI_U8 *pbLen);
620
621/* ---------------------------------------------------------------------------
622 \fn csrSetCountryCode
623 \brief this function is to set the country code so channel/power setting matches the countrycode and
624 the domain it belongs to.
625 \param pCountry - Caller allocated buffer with at least 3 bytes specifying the country code
626 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
627 a restart is needed to apply the change
628 \return eHalStatus
629 -------------------------------------------------------------------------------*/
630eHalStatus csrSetCountryCode(tpAniSirGlobal pMac, tANI_U8 *pCountry, tANI_BOOLEAN *pfRestartNeeded);
631
632/* ---------------------------------------------------------------------------
633 \fn csrResetCountryCodeInformation
634 \brief this function is to reset the country code current being used back to EEPROM default
635 this includes channel list and power setting.
636 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
637 a restart is needed to apply the change
638 \return eHalStatus
639 -------------------------------------------------------------------------------*/
640eHalStatus csrResetCountryCodeInformation(tpAniSirGlobal pMac, tANI_BOOLEAN *pfRestartNeeded);
641
642/* ---------------------------------------------------------------------------
643 \fn csrGetSupportedCountryCode
644 \brief this function is to get a list of the country code current being supported
645 \param pBuf - Caller allocated buffer with at least 3 bytes, upon success return,
646 this has the country code list. 3 bytes for each country code. This may be NULL if
647 caller wants to know the needed bytes.
648 \param pbLen - Caller allocated, as input, it indicates the length of pBuf. Upon success return,
649 this contains the length of the data in pBuf
650 \return eHalStatus
651 -------------------------------------------------------------------------------*/
652eHalStatus csrGetSupportedCountryCode(tpAniSirGlobal pMac, tANI_U8 *pBuf, tANI_U32 *pbLen);
653
654/* ---------------------------------------------------------------------------
655 \fn csrSetRegulatoryDomain
656 \brief this function is to set the current regulatory domain.
657 This function must be called after CFG is downloaded and all the band/mode setting already passed into
658 CSR.
659 \param domainId - indicate the domain (defined in the driver) needs to set to.
660 See eRegDomainId for definition
661 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
662 a restart is needed to apply the change
663 \return eHalStatus
664 -------------------------------------------------------------------------------*/
665eHalStatus csrSetRegulatoryDomain(tpAniSirGlobal pMac, v_REGDOMAIN_t domainId, tANI_BOOLEAN *pfRestartNeeded);
666
667/* ---------------------------------------------------------------------------
668 \fn csrGetCurrentRegulatoryDomain
669 \brief this function is to get the current regulatory domain.
670 This function must be called after CFG is downloaded and all the band/mode setting already passed into
671 CSR.
672 \return eRegDomainId
673 -------------------------------------------------------------------------------*/
674v_REGDOMAIN_t csrGetCurrentRegulatoryDomain(tpAniSirGlobal pMac);
675
676/* ---------------------------------------------------------------------------
677 \fn csrGetRegulatoryDomainForCountry
678 \brief this function is to get the regulatory domain for a country.
679 This function must be called after CFG is downloaded and all the band/mode setting already passed into
680 CSR.
681 \param pCountry - Caller allocated buffer with at least 3 bytes specifying the country code
682 \param pDomainId - Caller allocated buffer to get the return domain ID upon success return. Can be NULL.
Kiet Lam6c583332013-10-14 05:37:09 +0530683 \param source - the source of country information.
Jeff Johnson295189b2012-06-20 16:38:30 -0700684 \return eHalStatus
685 -------------------------------------------------------------------------------*/
Kiet Lam6c583332013-10-14 05:37:09 +0530686eHalStatus csrGetRegulatoryDomainForCountry(tpAniSirGlobal pMac,
687 tANI_U8 *pCountry,
688 v_REGDOMAIN_t *pDomainId,
689 v_CountryInfoSource_t source);
Jeff Johnson295189b2012-06-20 16:38:30 -0700690
691
692tANI_BOOLEAN csrSave11dCountryString( tpAniSirGlobal pMac, tANI_U8 *pCountryCode, tANI_BOOLEAN fForce );
693
694//some support functions
695tANI_BOOLEAN csrIs11dSupported(tpAniSirGlobal pMac);
696tANI_BOOLEAN csrIs11hSupported(tpAniSirGlobal pMac);
697tANI_BOOLEAN csrIs11eSupported(tpAniSirGlobal pMac);
698tANI_BOOLEAN csrIsWmmSupported(tpAniSirGlobal pMac);
699tANI_BOOLEAN csrIsMCCSupported(tpAniSirGlobal pMac);
700
701//Upper layer to get the list of the base channels to scan for passively 11d info from csr
702eHalStatus csrScanGetBaseChannels( tpAniSirGlobal pMac, tCsrChannelInfo * pChannelInfo );
703//Return SUCCESS is the command is queued, failed
704eHalStatus csrQueueSmeCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand, tANI_BOOLEAN fHighPriority );
705tSmeCmd *csrGetCommandBuffer( tpAniSirGlobal pMac );
706void csrReleaseCommand(tpAniSirGlobal pMac, tSmeCmd *pCommand);
707#ifdef FEATURE_WLAN_WAPI
708tANI_BOOLEAN csrIsProfileWapi( tCsrRoamProfile *pProfile );
709#endif /* FEATURE_WLAN_WAPI */
710
711#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
712
713//Security
714#define WLAN_SECURITY_EVENT_SET_PTK_REQ 1
715#define WLAN_SECURITY_EVENT_SET_PTK_RSP 2
716#define WLAN_SECURITY_EVENT_SET_GTK_REQ 3
717#define WLAN_SECURITY_EVENT_SET_GTK_RSP 4
718#define WLAN_SECURITY_EVENT_REMOVE_KEY_REQ 5
719#define WLAN_SECURITY_EVENT_REMOVE_KEY_RSP 6
720#define WLAN_SECURITY_EVENT_PMKID_CANDIDATE_FOUND 7
721#define WLAN_SECURITY_EVENT_PMKID_UPDATE 8
722#define WLAN_SECURITY_EVENT_MIC_ERROR 9
Abhishek Singh5f693202016-01-06 13:47:33 +0530723#define WLAN_SECURITY_EVENT_SET_UNICAST_REQ 10
724#define WLAN_SECURITY_EVENT_SET_UNICAST_RSP 11
725#define WLAN_SECURITY_EVENT_SET_BCAST_REQ 12
726#define WLAN_SECURITY_EVENT_SET_BCAST_RSP 13
727
Jeff Johnson295189b2012-06-20 16:38:30 -0700728
729#define AUTH_OPEN 0
730#define AUTH_SHARED 1
731#define AUTH_WPA_EAP 2
732#define AUTH_WPA_PSK 3
733#define AUTH_WPA2_EAP 4
734#define AUTH_WPA2_PSK 5
735#ifdef FEATURE_WLAN_WAPI
736#define AUTH_WAPI_CERT 6
737#define AUTH_WAPI_PSK 7
738#endif /* FEATURE_WLAN_WAPI */
739
740#define ENC_MODE_OPEN 0
741#define ENC_MODE_WEP40 1
742#define ENC_MODE_WEP104 2
743#define ENC_MODE_TKIP 3
744#define ENC_MODE_AES 4
745#ifdef FEATURE_WLAN_WAPI
746#define ENC_MODE_SMS4 5 //WAPI
747#endif /* FEATURE_WLAN_WAPI */
748
749#define NO_MATCH 0
750#define MATCH 1
751
752#define WLAN_SECURITY_STATUS_SUCCESS 0
753#define WLAN_SECURITY_STATUS_FAILURE 1
754
755//Scan
756#define WLAN_SCAN_EVENT_ACTIVE_SCAN_REQ 1
757#define WLAN_SCAN_EVENT_ACTIVE_SCAN_RSP 2
758#define WLAN_SCAN_EVENT_PASSIVE_SCAN_REQ 3
759#define WLAN_SCAN_EVENT_PASSIVE_SCAN_RSP 4
760#define WLAN_SCAN_EVENT_HO_SCAN_REQ 5
761#define WLAN_SCAN_EVENT_HO_SCAN_RSP 6
762
763#define WLAN_SCAN_STATUS_SUCCESS 0
764#define WLAN_SCAN_STATUS_FAILURE 1
765#define WLAN_SCAN_STATUS_ABORT 2
766
767//Ibss
768#define WLAN_IBSS_EVENT_START_IBSS_REQ 0
769#define WLAN_IBSS_EVENT_START_IBSS_RSP 1
770#define WLAN_IBSS_EVENT_JOIN_IBSS_REQ 2
771#define WLAN_IBSS_EVENT_JOIN_IBSS_RSP 3
772#define WLAN_IBSS_EVENT_COALESCING 4
773#define WLAN_IBSS_EVENT_PEER_JOIN 5
774#define WLAN_IBSS_EVENT_PEER_LEAVE 6
775#define WLAN_IBSS_EVENT_STOP_REQ 7
776#define WLAN_IBSS_EVENT_STOP_RSP 8
777
778#define AUTO_PICK 0
779#define SPECIFIED 1
780
781#define WLAN_IBSS_STATUS_SUCCESS 0
782#define WLAN_IBSS_STATUS_FAILURE 1
783
784//11d
785#define WLAN_80211D_EVENT_COUNTRY_SET 0
786#define WLAN_80211D_EVENT_RESET 1
787
788#define WLAN_80211D_DISABLED 0
789#define WLAN_80211D_SUPPORT_MULTI_DOMAIN 1
790#define WLAN_80211D_NOT_SUPPORT_MULTI_DOMAIN 2
791
792int diagAuthTypeFromCSRType(eCsrAuthType authType);
793int diagEncTypeFromCSRType(eCsrEncryptionType encType);
794#endif //#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
795/* ---------------------------------------------------------------------------
796 \fn csrScanResultPurge
797 \brief remove all items(tCsrScanResult) in the list and free memory for each item
798 \param hScanResult - returned from csrScanGetResult. hScanResult is considered gone by
799 calling this function and even before this function reutrns.
800 \return eHalStatus
801 -------------------------------------------------------------------------------*/
802eHalStatus csrScanResultPurge(tpAniSirGlobal pMac, tScanResultHandle hScanResult);
803
804
805///////////////////////////////////////////Common Scan ends
806
807/* ---------------------------------------------------------------------------
808 \fn csrRoamConnect
809 \brief To inititiate an association
810 \param pProfile - can be NULL to join to any open ones
811 \param hBssListIn - a list of BSS descriptor to roam to. It is returned from csrScanGetResult
812 \param pRoamId - to get back the request ID
813 \return eHalStatus
814 -------------------------------------------------------------------------------*/
815eHalStatus csrRoamConnect(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
816 tScanResultHandle hBssListIn, tANI_U32 *pRoamId);
817
818/* ---------------------------------------------------------------------------
819 \fn csrRoamReassoc
820 \brief To inititiate a re-association
821 \param pProfile - can be NULL to join the currently connected AP. In that
822 case modProfileFields should carry the modified field(s) which could trigger
823 reassoc
824 \param modProfileFields - fields which are part of tCsrRoamConnectedProfile
825 that might need modification dynamically once STA is up & running and this
826 could trigger a reassoc
827 \param pRoamId - to get back the request ID
828 \return eHalStatus
829 -------------------------------------------------------------------------------*/
830eHalStatus csrRoamReassoc(tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRoamProfile *pProfile,
831 tCsrRoamModifyProfileFields modProfileFields,
832 tANI_U32 *pRoamId);
833
834
835/* ---------------------------------------------------------------------------
836 \fn csrRoamReconnect
837 \brief To disconnect and reconnect with the same profile
838 \return eHalStatus. It returns fail if currently not connected
839 -------------------------------------------------------------------------------*/
840eHalStatus csrRoamReconnect(tpAniSirGlobal pMac, tANI_U32 sessionId);
841
842/* ---------------------------------------------------------------------------
843 \fn csrRoamSetPMKIDCache
844 \brief return the PMKID candidate list
845 \param pPMKIDCache - caller allocated buffer point to an array of tPmkidCacheInfo
846 \param numItems - a variable that has the number of tPmkidCacheInfo allocated
847 when retruning, this is either the number needed or number of items put into pPMKIDCache
848 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough and pNumItems
849 has the number of tPmkidCacheInfo.
850 \Note: pNumItems is a number of tPmkidCacheInfo, not sizeof(tPmkidCacheInfo) * something
851 -------------------------------------------------------------------------------*/
Kanchanapally, Vidyullatha2633ace2014-09-25 15:16:50 +0530852eHalStatus csrRoamSetPMKIDCache( tpAniSirGlobal pMac, tANI_U32 sessionId,
853 tPmkidCacheInfo *pPMKIDCache,
854 tANI_U32 numItems,
855 tANI_BOOLEAN update_entire_cache );
Jeff Johnson295189b2012-06-20 16:38:30 -0700856
857/* ---------------------------------------------------------------------------
858 \fn csrRoamGetWpaRsnReqIE
859 \brief return the WPA or RSN IE CSR passes to PE to JOIN request or START_BSS request
860 \param pLen - caller allocated memory that has the length of pBuf as input. Upon returned, *pLen has the
861 needed or IE length in pBuf.
862 \param pBuf - Caller allocated memory that contain the IE field, if any, upon return
863 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
864 -------------------------------------------------------------------------------*/
865eHalStatus csrRoamGetWpaRsnReqIE(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 *pLen, tANI_U8 *pBuf);
866
867/* ---------------------------------------------------------------------------
868 \fn csrRoamGetWpaRsnRspIE
869 \brief return the WPA or RSN IE from the beacon or probe rsp if connected
870 \param pLen - caller allocated memory that has the length of pBuf as input. Upon returned, *pLen has the
871 needed or IE length in pBuf.
872 \param pBuf - Caller allocated memory that contain the IE field, if any, upon return
873 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
874 -------------------------------------------------------------------------------*/
875eHalStatus csrRoamGetWpaRsnRspIE(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 *pLen, tANI_U8 *pBuf);
876
877
878/* ---------------------------------------------------------------------------
879 \fn csrRoamGetNumPMKIDCache
880 \brief return number of PMKID cache entries
881 \return tANI_U32 - the number of PMKID cache entries
882 -------------------------------------------------------------------------------*/
883tANI_U32 csrRoamGetNumPMKIDCache(tpAniSirGlobal pMac, tANI_U32 sessionId);
884
885/* ---------------------------------------------------------------------------
886 \fn csrRoamGetPMKIDCache
887 \brief return PMKID cache from CSR
888 \param pNum - caller allocated memory that has the space of the number of pBuf tPmkidCacheInfo as input. Upon returned, *pNum has the
889 needed or actually number in tPmkidCacheInfo.
890 \param pPmkidCache - Caller allocated memory that contains PMKID cache, if any, upon return
891 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
892 -------------------------------------------------------------------------------*/
893eHalStatus csrRoamGetPMKIDCache(tpAniSirGlobal pMac, tANI_U32 sessionId,
894 tANI_U32 *pNum, tPmkidCacheInfo *pPmkidCache);
895
896/* ---------------------------------------------------------------------------
897 \fn csrRoamGetConnectProfile
898 \brief To return the current connect profile. Caller must call csrRoamFreeConnectProfile
899 after it is done and before reuse for another csrRoamGetConnectProfile call.
900 \param pProfile - pointer to a caller allocated structure tCsrRoamConnectedProfile
901 \return eHalStatus. Failure if not connected
902 -------------------------------------------------------------------------------*/
903eHalStatus csrRoamGetConnectProfile(tpAniSirGlobal pMac, tANI_U32 sessionId,
904 tCsrRoamConnectedProfile *pProfile);
905
906/* ---------------------------------------------------------------------------
907 \fn csrRoamGetConnectState
908 \brief To return the current connect state of Roaming
909 \return eHalStatus
910 -------------------------------------------------------------------------------*/
911eHalStatus csrRoamGetConnectState(tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrConnectState *pState);
912
913/* ---------------------------------------------------------------------------
914 \fn csrRoamFreeConnectProfile
915 \brief To free and reinitialize the profile return previous by csrRoamGetConnectProfile.
916 \param pProfile - pointer to a caller allocated structure tCsrRoamConnectedProfile
917 \return eHalStatus.
918 -------------------------------------------------------------------------------*/
919eHalStatus csrRoamFreeConnectProfile(tpAniSirGlobal pMac, tCsrRoamConnectedProfile *pProfile);
920
921/* ---------------------------------------------------------------------------
922 \fn csrInitChannelList
923 \brief HDD calls this function to set the WNI_CFG_VALID_CHANNEL_LIST base on the band/mode settings.
924 This function must be called after CFG is downloaded and all the band/mode setting already passed into
925 CSR.
926 \return eHalStatus
927 -------------------------------------------------------------------------------*/
928eHalStatus csrInitChannelList( tHalHandle hHal );
929
930/* ---------------------------------------------------------------------------
931 \fn csrChangeConfigParams
932 \brief The CSR API exposed for HDD to provide config params to CSR during
933 SMEs stop -> start sequence.
934 If HDD changed the domain that will cause a reset. This function will
935 provide the new set of 11d information for the new domain. Currrently this
936 API provides info regarding 11d only at reset but we can extend this for
937 other params (PMC, QoS) which needs to be initialized again at reset.
938 \param
939 hHal - Handle to the HAL. The HAL handle is returned by the HAL after it is
940 opened (by calling halOpen).
941 pUpdateConfigParam - a pointer to a structure (tCsrUpdateConfigParam) that
942 currently provides 11d related information like Country code,
943 Regulatory domain, valid channel list, Tx power per channel, a
944 list with active/passive scan allowed per valid channel.
945
946 \return eHalStatus
947 ---------------------------------------------------------------------------*/
948eHalStatus csrChangeConfigParams(tpAniSirGlobal pMac,
949 tCsrUpdateConfigParam *pUpdateConfigParam);
950
951/* ---------------------------------------------------------------------------
952 \fn csrRoamConnectToLastProfile
953 \brief To disconnect and reconnect with the same profile
954 \return eHalStatus. It returns fail if currently connected
955 -------------------------------------------------------------------------------*/
956eHalStatus csrRoamConnectToLastProfile(tpAniSirGlobal pMac, tANI_U32 sessionId);
957
958/* ---------------------------------------------------------------------------
959 \fn csrRoamDisconnect
960 \brief To disconnect from a network
961 \param reason -- To indicate the reason for disconnecting. Currently, only eCSR_DISCONNECT_REASON_MIC_ERROR is meanful.
962 \return eHalStatus
963 -------------------------------------------------------------------------------*/
964eHalStatus csrRoamDisconnect(tpAniSirGlobal pMac, tANI_U32 sessionId, eCsrRoamDisconnectReason reason);
965
966/* ---------------------------------------------------------------------------
Sushant Kaushikb4834d22015-07-15 15:29:05 +0530967 \fn csr_abortConnection
968 \brief To disconnect from a connecting network
969 \retutn void.
970----------------------------------------------------------------------------*/
971
972void csr_abortConnection(tpAniSirGlobal pMac, tANI_U32 sessionId);
973
974/* ---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -0700975 \fn csrScanGetPMKIDCandidateList
976 \brief return the PMKID candidate list
977 \param pPmkidList - caller allocated buffer point to an array of tPmkidCandidateInfo
978 \param pNumItems - pointer to a variable that has the number of tPmkidCandidateInfo allocated
979 when retruning, this is either the number needed or number of items put into pPmkidList
980 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough and pNumItems
981 has the number of tPmkidCandidateInfo.
982 \Note: pNumItems is a number of tPmkidCandidateInfo, not sizeof(tPmkidCandidateInfo) * something
983 -------------------------------------------------------------------------------*/
984eHalStatus csrScanGetPMKIDCandidateList(tpAniSirGlobal pMac, tANI_U32 sessionId,
985 tPmkidCandidateInfo *pPmkidList, tANI_U32 *pNumItems );
986
987//This function is used to stop a BSS. It is similar of csrRoamIssueDisconnect but this function
988//doesn't have any logic other than blindly trying to stop BSS
989eHalStatus csrRoamIssueStopBssCmd( tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_BOOLEAN fHighPriority );
990
991void csrCallRoamingCompletionCallback(tpAniSirGlobal pMac, tCsrRoamSession *pSession,
992 tCsrRoamInfo *pRoamInfo, tANI_U32 roamId, eCsrRoamResult roamResult);
993
Jeff Johnson295189b2012-06-20 16:38:30 -0700994/* ---------------------------------------------------------------------------
995 \fn csrRoamIssueDisassociateStaCmd
996 \brief csr function that HDD calls to disassociate a associated station
997 \param sessionId - session Id for Soft AP
998 \param pPeerMacAddr - MAC of associated station to delete
999 \param reason - reason code, be one of the tSirMacReasonCodes
1000 \return eHalStatus
1001 ---------------------------------------------------------------------------*/
1002eHalStatus csrRoamIssueDisassociateStaCmd( tpAniSirGlobal pMac,
Anand N Sunkadc205d952015-07-30 15:36:03 +05301003 tANI_U32 sessionId,
1004#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
1005 const tANI_U8 *pPeerMacAddr,
1006#else
Jeff Johnson295189b2012-06-20 16:38:30 -07001007 tANI_U8 *pPeerMacAddr,
Anand N Sunkadc205d952015-07-30 15:36:03 +05301008#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001009 tANI_U32 reason);
1010
1011/* ---------------------------------------------------------------------------
1012 \fn csrRoamIssueDeauthSta
1013 \brief csr function that HDD calls to delete a associated station
1014 \param sessionId - session Id for Soft AP
Hanumantha Reddy Pothulaf57da152014-10-31 13:02:08 +05301015 \param pDelStaParams- Pointer to parameters of the station to deauthenticate
Jeff Johnson295189b2012-06-20 16:38:30 -07001016 \return eHalStatus
1017 ---------------------------------------------------------------------------*/
1018eHalStatus csrRoamIssueDeauthStaCmd( tpAniSirGlobal pMac,
Hanumantha Reddy Pothulaf57da152014-10-31 13:02:08 +05301019 tANI_U32 sessionId,
1020 struct tagCsrDelStaParams *pDelStaParams);
Jeff Johnson295189b2012-06-20 16:38:30 -07001021
1022/* ---------------------------------------------------------------------------
1023 \fn csrRoamIssueTkipCounterMeasures
1024 \brief csr function that HDD calls to start and stop tkip countermeasures
1025 \param sessionId - session Id for Soft AP
1026 \param bEnable - Flag to start/stop countermeasures
1027 \return eHalStatus
1028 ---------------------------------------------------------------------------*/
1029eHalStatus csrRoamIssueTkipCounterMeasures( tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_BOOLEAN bEnable);
1030
1031eHalStatus csrSendMBTkipCounterMeasuresReqMsg( tpAniSirGlobal pMac, tANI_U32 sessinId, tANI_BOOLEAN bEnable, tSirMacAddr bssId );
1032
1033/* ---------------------------------------------------------------------------
1034 \fn csrRoamGetAssociatedStas
1035 \brief csr function that HDD calls to get list of associated stations based on module ID
1036 \param sessionId - session Id for Soft AP
1037 \param modId - module ID - PE/HAL/TL
1038 \param pUsrContext - Opaque HDD context
1039 \param pfnSapEventCallback - Sap event callback in HDD
1040 \param pAssocStasBuf - Caller allocated memory to be filled with associatd stations info
1041 \return eHalStatus
1042 ---------------------------------------------------------------------------*/
1043eHalStatus csrRoamGetAssociatedStas( tpAniSirGlobal pMac, tANI_U32 sessionId, VOS_MODULE_ID modId,
1044 void *pUsrContext, void *pfnSapEventCallback, tANI_U8 *pAssocStasBuf );
1045
1046eHalStatus csrSendMBGetAssociatedStasReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, VOS_MODULE_ID modId, tSirMacAddr bssId,
1047 void *pUsrContext, void *pfnSapEventCallback, tANI_U8 *pAssocStasBuf );
1048
1049/* ---------------------------------------------------------------------------
1050 \fn csrRoamGetWpsSessionOverlap
1051 \brief csr function that HDD calls to get WPS PBC session overlap information
1052 \param sessionId - session Id for Soft AP
1053 \param pUsrContext - Opaque HDD context
1054 \param pfnSapEventCallback - Sap event callback in HDD
1055 \param pRemoveMac - pointer to MAC address of session to be removed
1056 \return eHalStatus
1057 ---------------------------------------------------------------------------*/
1058eHalStatus csrRoamGetWpsSessionOverlap( tpAniSirGlobal pMac, tANI_U32 sessionId,
1059 void *pUsrContext, void *pfnSapEventCallback,v_MACADDR_t pRemoveMac );
1060
1061eHalStatus csrSendMBGetWPSPBCSessions( tpAniSirGlobal pMac, tANI_U32 sessionId,
1062 tSirMacAddr bssId, void *pUsrContext, void *pfnSapEventCallback,v_MACADDR_t pRemoveMac);
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08001063
1064/* ---------------------------------------------------------------------------
1065 \fn csrSendChngMCCBeaconInterval
1066 \brief csr function that HDD calls to send Update beacon interval
1067 \param sessionId - session Id for Soft AP
1068 \return eHalStatus
1069 ---------------------------------------------------------------------------*/
1070eHalStatus
1071csrSendChngMCCBeaconInterval(tpAniSirGlobal pMac, tANI_U32 sessionId);
1072
Jeff Johnson295189b2012-06-20 16:38:30 -07001073#ifdef FEATURE_WLAN_BTAMP_UT_RF
1074eHalStatus csrRoamStartJoinRetryTimer(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 interval);
1075eHalStatus csrRoamStopJoinRetryTimer(tpAniSirGlobal pMac, tANI_U32 sessionId);
1076#endif
1077#ifdef WLAN_FEATURE_VOWIFI_11R
1078/* ---------------------------------------------------------------------------
1079 \fn csrRoamFTPreAuthRspProcessor
1080 \brief csr function that handles pre auth response from LIM
1081 ---------------------------------------------------------------------------*/
1082void csrRoamFTPreAuthRspProcessor( tHalHandle hHal, tpSirFTPreAuthRsp pFTPreAuthRsp );
1083#endif
1084
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001085#if defined(FEATURE_WLAN_ESE) && !defined(FEATURE_WLAN_ESE_UPLOAD)
1086void csrEseSendAdjacentApRepMsg(tpAniSirGlobal pMac, tCsrRoamSession *pSession);
Jeff Johnson295189b2012-06-20 16:38:30 -07001087#endif
Jeff Johnsond13512a2012-07-17 11:42:19 -07001088
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001089#if defined(FEATURE_WLAN_ESE)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001090void UpdateCCKMTSF(tANI_U32 *timeStamp0, tANI_U32 *timeStamp1, tANI_U32 *incr);
1091#endif
1092
Jeff Johnsond13512a2012-07-17 11:42:19 -07001093eHalStatus csrGetDefaultCountryCodeFrmNv(tpAniSirGlobal pMac, tANI_U8 *pCountry);
1094eHalStatus csrGetCurrentCountryCode(tpAniSirGlobal pMac, tANI_U8 *pCountry);
1095
Madan Mohan Koyyalamudi286b60e2012-10-11 12:59:07 -07001096
1097eHalStatus csrRoamEnqueuePreauth(tpAniSirGlobal pMac, tANI_U32 sessionId, tpSirBssDescription pBssDescription,
1098 eCsrRoamReason reason, tANI_BOOLEAN fImmediate);
1099eHalStatus csrRoamDequeuePreauth(tpAniSirGlobal pMac);
Madan Mohan Koyyalamudidd3c9662012-11-09 17:39:30 -08001100#ifdef FEATURE_WLAN_LFR
1101void csrInitOccupiedChannelsList(tpAniSirGlobal pMac);
1102tANI_BOOLEAN csrNeighborRoamIsNewConnectedProfile(tpAniSirGlobal pMac);
1103tANI_BOOLEAN csrNeighborRoamConnectedProfileMatch(tpAniSirGlobal pMac, tCsrScanResult *pResult,
1104 tDot11fBeaconIEs *pIes);
1105#endif
schang86c22c42013-03-13 18:41:24 -07001106eHalStatus csrSetTxPower(tpAniSirGlobal pMac, v_U8_t sessionId, v_U8_t mW);
Sandeep Puligilla332ea912014-02-04 00:16:24 +05301107eHalStatus csrHT40StopOBSSScan(tpAniSirGlobal pMac, v_U8_t sessionId);
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07001108
1109eHalStatus csrScanCreateEntryInScanCache(tpAniSirGlobal pMac, tANI_U32 sessionId,
1110 tCsrBssid bssid, tANI_U8 channel);
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05301111
Leela Venkata Kiran Kumar Reddy Chiralac6663f72014-02-03 21:04:58 -08001112eHalStatus csrUpdateChannelList(tpAniSirGlobal pMac);
Leela Venkata Kiran Kumar Reddy Chiralaede10652013-09-11 18:48:46 -07001113eHalStatus csrRoamDelPMKIDfromCache( tpAniSirGlobal pMac, tANI_U32 sessionId,
Anand N Sunkadb3ab97d2015-07-29 09:58:13 +05301114#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
Abhinav Kumar8c122592019-08-07 15:43:20 +05301115 tPmkidCacheInfo *pmksa,
Anand N Sunkadb3ab97d2015-07-29 09:58:13 +05301116#else
Abhinav Kumar8c122592019-08-07 15:43:20 +05301117 tPmkidCacheInfo *pmksa,
Anand N Sunkadb3ab97d2015-07-29 09:58:13 +05301118#endif
1119 tANI_BOOLEAN flush_cache );
Agrawal Ashish0b6984f2014-04-05 18:35:45 +05301120tANI_BOOLEAN csrElectedCountryInfo(tpAniSirGlobal pMac);
1121void csrAddVoteForCountryInfo(tpAniSirGlobal pMac, tANI_U8 *pCountryCode);
1122void csrClearVotesForCountryInfo(tpAniSirGlobal pMac);
Abhishek Singh72c2f4e2016-07-22 11:25:43 +05301123void csr_remove_bssid_from_scan_list(tpAniSirGlobal pMac,
1124 tSirMacAddr bssid);
1125
Abhinav Kumar6920f5a2019-08-05 18:55:11 +05301126/**
1127 * csr_lookup_pmkid_using_bssid() - lookup pmkid using bssid
1128 * @mac: pointer to mac
1129 * @session: sme session pointer
1130 * @pmk_cache: pointer to pmk cache
1131 * @index: index value needs to be seached
1132 *
1133 * Return: true if pmkid is found else false
1134 */
1135bool csr_lookup_pmkid_using_bssid(tpAniSirGlobal mac, tCsrRoamSession *session,
1136 tPmkidCacheInfo *pmk_cache, uint32_t *index);
1137
Hardik Kantilal Patel62a3a762014-11-21 12:55:57 +05301138#ifdef WLAN_FEATURE_AP_HT40_24G
1139eHalStatus csrSetHT2040Mode(tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U8 cbMode);
1140#endif
Deepthi Gowriecc93352016-11-09 16:58:47 +05301141void csrValidateScanChannels(tpAniSirGlobal pMac, tCsrScanRequest *pDstReq,
Nishank Aggarwal42f76502017-02-16 12:00:19 +05301142 tCsrScanRequest *pSrcReq, tANI_U32 *new_index, tANI_U8 ch144_support);
Jeff Johnson295189b2012-06-20 16:38:30 -07001143#endif
1144