blob: 9d7338e816763fa2e59f757827f30670d411eb1d [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002 * Copyright (c) 2012-2014 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.
20 */
21
22/*
Kiet Lama7f454d2014-07-24 12:04:06 -070023 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
Gopichand Nakkala92f07d82013-01-08 21:16:34 -080026 */
Kiet Lam0fb93dd2014-02-19 00:32:59 -080027
28
Kiet Lama7f454d2014-07-24 12:04:06 -070029
30
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -080031/** ------------------------------------------------------------------------- *
32 ------------------------------------------------------------------------- *
Jeff Johnson295189b2012-06-20 16:38:30 -070033 \file csrApi.h
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -080034
Jeff Johnson295189b2012-06-20 16:38:30 -070035 Exports and types for the Common Scan and Roaming Module interfaces.
Jeff Johnson295189b2012-06-20 16:38:30 -070036 ========================================================================== */
37#ifndef CSRAPI_H__
38#define CSRAPI_H__
39
40#include "sirApi.h"
41#include "sirMacProtDef.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070042#include "csrLinkList.h"
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -080043typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -070044{
45 eCSR_AUTH_TYPE_NONE, //never used
46 // MAC layer authentication types
47 eCSR_AUTH_TYPE_OPEN_SYSTEM,
48 eCSR_AUTH_TYPE_SHARED_KEY,
49 eCSR_AUTH_TYPE_AUTOSWITCH,
50
51 // Upper layer authentication types
52 eCSR_AUTH_TYPE_WPA,
53 eCSR_AUTH_TYPE_WPA_PSK,
54 eCSR_AUTH_TYPE_WPA_NONE,
55
56 eCSR_AUTH_TYPE_RSN,
57 eCSR_AUTH_TYPE_RSN_PSK,
58#if defined WLAN_FEATURE_VOWIFI_11R
59 eCSR_AUTH_TYPE_FT_RSN,
60 eCSR_AUTH_TYPE_FT_RSN_PSK,
61#endif
62#ifdef FEATURE_WLAN_WAPI
63 eCSR_AUTH_TYPE_WAPI_WAI_CERTIFICATE,
64 eCSR_AUTH_TYPE_WAPI_WAI_PSK,
65#endif /* FEATURE_WLAN_WAPI */
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080066#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -070067 eCSR_AUTH_TYPE_CCKM_WPA,
68 eCSR_AUTH_TYPE_CCKM_RSN,
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080069#endif /* FEATURE_WLAN_ESE */
Chet Lanctot186b5732013-03-18 10:26:30 -070070#ifdef WLAN_FEATURE_11W
71 eCSR_AUTH_TYPE_RSN_PSK_SHA256,
Abhishek Singhae408032014-09-25 17:22:04 +053072 eCSR_AUTH_TYPE_RSN_8021X_SHA256,
Chet Lanctot186b5732013-03-18 10:26:30 -070073#endif
Jeff Johnson295189b2012-06-20 16:38:30 -070074 eCSR_NUM_OF_SUPPORT_AUTH_TYPE,
75 eCSR_AUTH_TYPE_FAILED = 0xff,
76 eCSR_AUTH_TYPE_UNKNOWN = eCSR_AUTH_TYPE_FAILED,
77
78}eCsrAuthType;
79
80
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -080081typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -070082{
83 eCSR_ENCRYPT_TYPE_NONE,
84 eCSR_ENCRYPT_TYPE_WEP40_STATICKEY,
85 eCSR_ENCRYPT_TYPE_WEP104_STATICKEY,
86
87 eCSR_ENCRYPT_TYPE_WEP40,
88 eCSR_ENCRYPT_TYPE_WEP104,
89 eCSR_ENCRYPT_TYPE_TKIP,
90 eCSR_ENCRYPT_TYPE_AES,
91#ifdef FEATURE_WLAN_WAPI
92 eCSR_ENCRYPT_TYPE_WPI, //WAPI
93#endif /* FEATURE_WLAN_WAPI */
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080094#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -070095 eCSR_ENCRYPT_TYPE_KRK,
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080096#endif /* FEATURE_WLAN_ESE */
Jeff Johnson295189b2012-06-20 16:38:30 -070097#ifdef WLAN_FEATURE_11W
98 //11w BIP
99 eCSR_ENCRYPT_TYPE_AES_CMAC,
100#endif
101 eCSR_ENCRYPT_TYPE_ANY,
102 eCSR_NUM_OF_ENCRYPT_TYPE = eCSR_ENCRYPT_TYPE_ANY,
103
104 eCSR_ENCRYPT_TYPE_FAILED = 0xff,
105 eCSR_ENCRYPT_TYPE_UNKNOWN = eCSR_ENCRYPT_TYPE_FAILED,
106
107}eCsrEncryptionType;
108
109/*---------------------------------------------------------------------------
110 Enumeration of the various Security types
111---------------------------------------------------------------------------*/
112typedef enum
113{
114 eCSR_SECURITY_TYPE_WPA,
115 eCSR_SECURITY_TYPE_RSN,
116#ifdef FEATURE_WLAN_WAPI
117 eCSR_SECURITY_TYPE_WAPI,
118#endif /* FEATURE_WLAN_WAPI */
119 eCSR_SECURITY_TYPE_UNKNOWN,
120
121}eCsrSecurityType;
122
123typedef enum
124{
125 eCSR_DOT11_MODE_TAURUS = 0, //This mean everything because it covers all thing we support
126 eCSR_DOT11_MODE_abg = 0x0001, //11a/b/g only, no HT, no proprietary
127 eCSR_DOT11_MODE_11a = 0x0002,
128 eCSR_DOT11_MODE_11b = 0x0004,
129 eCSR_DOT11_MODE_11g = 0x0008,
130 eCSR_DOT11_MODE_11n = 0x0010,
131 eCSR_DOT11_MODE_POLARIS = 0x0020,
132 eCSR_DOT11_MODE_TITAN = 0x0040,
133 eCSR_DOT11_MODE_11g_ONLY = 0x0080,
134 eCSR_DOT11_MODE_11n_ONLY = 0x0100,
135 eCSR_DOT11_MODE_TAURUS_ONLY = 0x0200,
136 eCSR_DOT11_MODE_11b_ONLY = 0x0400,
137 eCSR_DOT11_MODE_11a_ONLY = 0x0800,
Jeff Johnsone7245742012-09-05 17:12:55 -0700138#ifdef WLAN_FEATURE_11AC
139 eCSR_DOT11_MODE_11ac = 0x1000,
140 eCSR_DOT11_MODE_11ac_ONLY = 0x2000,
141#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700142 //This is for WIFI test. It is same as eWNIAPI_MAC_PROTOCOL_ALL except when it starts IBSS in 11B of 2.4GHz
143 //It is for CSR internal use
Jeff Johnsone7245742012-09-05 17:12:55 -0700144 eCSR_DOT11_MODE_AUTO = 0x4000,
Jeff Johnson295189b2012-06-20 16:38:30 -0700145
146 eCSR_NUM_PHY_MODE = 16, //specify the number of maximum bits for phyMode
147}eCsrPhyMode;
148
149
150typedef tANI_U8 tCsrBssid[WNI_CFG_BSSID_LEN];
151
152typedef enum
153{
Varun Reddy Yeturu2cc78922013-04-10 11:50:02 -0700154 eCSR_BSS_TYPE_NONE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700155 eCSR_BSS_TYPE_INFRASTRUCTURE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700156 eCSR_BSS_TYPE_INFRA_AP, // SoftAP AP
Jeff Johnson295189b2012-06-20 16:38:30 -0700157 eCSR_BSS_TYPE_IBSS, // an IBSS network we will NOT start
158 eCSR_BSS_TYPE_START_IBSS, // an IBSS network we will start if no partners detected.
159 eCSR_BSS_TYPE_WDS_AP, // BT-AMP AP
160 eCSR_BSS_TYPE_WDS_STA, // BT-AMP station
161 eCSR_BSS_TYPE_ANY, // any BSS type (IBSS or Infrastructure).
162}eCsrRoamBssType;
163
164
165
166typedef enum {
167 eCSR_SCAN_REQUEST_11D_SCAN = 1,
168 eCSR_SCAN_REQUEST_FULL_SCAN,
169 eCSR_SCAN_IDLE_MODE_SCAN,
170 eCSR_SCAN_HO_BG_SCAN, // bg scan request in NRT & RT Handoff sub-states
171 eCSR_SCAN_HO_PROBE_SCAN, // directed probe on an entry from the candidate list
172 eCSR_SCAN_HO_NT_BG_SCAN, // bg scan request in NT sub-state
173 eCSR_SCAN_P2P_DISCOVERY,
174
175 eCSR_SCAN_SOFTAP_CHANNEL_RANGE,
176 eCSR_SCAN_P2P_FIND_PEER,
177}eCsrRequestType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700178typedef enum {
179 eCSR_SCAN_RESULT_GET = 0,
180 eCSR_SCAN_RESULT_FLUSH = 1, //to delete all cached scan results
181}eCsrScanResultCmd;
182
183typedef enum
184{
185 eCSR_SCAN_SUCCESS,
186 eCSR_SCAN_FAILURE,
187 eCSR_SCAN_ABORT,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800188 eCSR_SCAN_FOUND_PEER,
Jeff Johnson295189b2012-06-20 16:38:30 -0700189}eCsrScanStatus;
190
Srinivas, Dasari138af4f2014-02-07 11:13:45 +0530191/* Reason to abort the scan
192 * The reason can used later to decide whether to update the scan results
193 * to upper layer or not
194 */
195typedef enum
196{
Ratheesh S Pece1f832015-07-25 15:50:25 +0530197 eCSR_SCAN_ABORT_DEFAULT = 1,
Srinivas, Dasari138af4f2014-02-07 11:13:45 +0530198 eCSR_SCAN_ABORT_DUE_TO_BAND_CHANGE, //Scan aborted due to band change
199}eCsrAbortReason;
200
Hardik Kantilal Pateldd107952014-11-20 15:24:52 +0530201typedef enum
202{
203 eCSR_INI_SINGLE_CHANNEL_CENTERED = 0,
204 eCSR_INI_DOUBLE_CHANNEL_HIGH_PRIMARY,
205 eCSR_INI_DOUBLE_CHANNEL_LOW_PRIMARY,
206#ifdef WLAN_FEATURE_11AC
207 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED,
208 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED,
209 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED,
210 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW,
211 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW,
212 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH,
213 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH,
214#endif
215 eCSR_INI_CHANNEL_BONDING_STATE_MAX
216}eIniChanBondState;
217
Jeff Johnson295189b2012-06-20 16:38:30 -0700218#define CSR_SCAN_TIME_DEFAULT 0
219#define CSR_VALUE_IGNORED 0xFFFFFFFF
220#define CSR_RSN_PMKID_SIZE 16
Kanchanapally, Vidyullatha2633ace2014-09-25 15:16:50 +0530221#define CSR_MAX_PMKID_ALLOWED 32
Jeff Johnson295189b2012-06-20 16:38:30 -0700222#define CSR_WEP40_KEY_LEN 5
223#define CSR_WEP104_KEY_LEN 13
224#define CSR_TKIP_KEY_LEN 32
225#define CSR_AES_KEY_LEN 16
226#define CSR_MAX_TX_POWER ( WNI_CFG_CURRENT_TX_POWER_LEVEL_STAMAX )
227#define CSR_MAX_RSC_LEN 16
228#ifdef FEATURE_WLAN_WAPI
229#define CSR_WAPI_BKID_SIZE 16
230#define CSR_MAX_BKID_ALLOWED 16
231#define CSR_WAPI_KEY_LEN 32
232#define CSR_MAX_KEY_LEN ( CSR_WAPI_KEY_LEN ) //longest one is for WAPI
233#else
234#define CSR_MAX_KEY_LEN ( CSR_TKIP_KEY_LEN ) //longest one is for TKIP
235#endif /* FEATURE_WLAN_WAPI */
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800236#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -0700237#define CSR_KRK_KEY_LEN 16
238#endif
239
240
241
242typedef struct tagCsrChannelInfo
243{
244 tANI_U8 numOfChannels;
245 tANI_U8 *ChannelList; //it will be an array of channels
Madan Mohan Koyyalamudidd3c9662012-11-09 17:39:30 -0800246}tCsrChannelInfo, *tpCsrChannelInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -0700247
248typedef struct tagCsrSSIDInfo
249{
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800250 tSirMacSSid SSID;
Jeff Johnson295189b2012-06-20 16:38:30 -0700251 tANI_BOOLEAN handoffPermitted;
252 tANI_BOOLEAN ssidHidden;
253}tCsrSSIDInfo;
254
255typedef struct tagCsrSSIDs
256{
257 tANI_U32 numOfSSIDs;
258 tCsrSSIDInfo *SSIDList; //To be allocated for array of SSIDs
259}tCsrSSIDs;
260
261typedef struct tagCsrBSSIDs
262{
263 tANI_U32 numOfBSSIDs;
264 tCsrBssid *bssid;
265}tCsrBSSIDs;
266
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800267typedef struct tagCsrStaParams
268{
269 tANI_U16 capability;
270 tANI_U8 extn_capability[SIR_MAC_MAX_EXTN_CAP];
271 tANI_U8 supported_rates_len;
272 tANI_U8 supported_rates[SIR_MAC_MAX_SUPP_RATES];
Hoonki Lee66b75f32013-04-16 18:30:07 -0700273 tANI_U8 htcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800274 tSirHTCap HTCap;
Hoonki Lee66b75f32013-04-16 18:30:07 -0700275 tANI_U8 vhtcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800276 tSirVHTCap VHTCap;
277 tANI_U8 uapsd_queues;
278 tANI_U8 max_sp;
Naresh Jayaramdff88f92014-02-12 21:44:29 +0530279 tANI_U8 supported_channels_len;
280 tANI_U8 supported_channels[SIR_MAC_MAX_SUPP_CHANNELS];
281 tANI_U8 supported_oper_classes_len;
282 tANI_U8 supported_oper_classes[SIR_MAC_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800283}tCsrStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -0700284
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800285typedef struct tagCsrScanRequest
Jeff Johnson295189b2012-06-20 16:38:30 -0700286{
287 tSirScanType scanType;
288 tCsrBssid bssid;
289 eCsrRoamBssType BSSType;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800290 tCsrSSIDs SSIDs;
Jeff Johnson295189b2012-06-20 16:38:30 -0700291 tCsrChannelInfo ChannelInfo;
292 tANI_U32 minChnTime; //in units of milliseconds
293 tANI_U32 maxChnTime; //in units of milliseconds
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800294 tANI_U32 minChnTimeBtc; //in units of milliseconds
295 tANI_U32 maxChnTimeBtc; //in units of milliseconds
Jeff Johnson295189b2012-06-20 16:38:30 -0700296 tANI_U32 restTime; //in units of milliseconds //ignored when not connected
297 tANI_U32 uIEFieldLen;
298 tANI_U8 *pIEField;
299 eCsrRequestType requestType; //11d scan or full scan
Jeff Johnson295189b2012-06-20 16:38:30 -0700300 tANI_BOOLEAN p2pSearch;
Jeff Johnsone7245742012-09-05 17:12:55 -0700301 tANI_BOOLEAN skipDfsChnlInP2pSearch;
Jeff Johnson295189b2012-06-20 16:38:30 -0700302}tCsrScanRequest;
303
304typedef struct tagCsrBGScanRequest
305{
306 tSirScanType scanType;
307 tSirMacSSid SSID;
308 tCsrChannelInfo ChannelInfo;
309 tANI_U32 scanInterval; //in units of milliseconds
310 tANI_U32 minChnTime; //in units of milliseconds
311 tANI_U32 maxChnTime; //in units of milliseconds
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800312 tANI_U32 minChnTimeBtc; //in units of milliseconds
313 tANI_U32 maxChnTimeBtc; //in units of milliseconds
Jeff Johnson295189b2012-06-20 16:38:30 -0700314 tANI_U32 restTime; //in units of milliseconds //ignored when not connected
315 tANI_U32 throughputImpact; //specify whether BG scan cares about impacting throughput //ignored when not connected
316 tCsrBssid bssid; //how to use it?? Apple
Srikant Kuppa866893f2012-12-27 17:28:14 -0800317}tCsrBGScanRequest, *tpCsrBGScanRequest;
Jeff Johnson295189b2012-06-20 16:38:30 -0700318
319
320typedef struct tagCsrScanResultInfo
321{
322 //Carry the IEs for the current BSSDescription. A pointer to tDot11fBeaconIEs. Maybe NULL for start BSS.
323 void *pvIes;
324 tAniSSID ssId;
325 v_TIME_t timer; // timer is variable which is used for hidden SSID's timer value
326 //This member must be the last in the structure because the end of tSirBssDescription is an
327 // array with nonknown size at this time
328 tSirBssDescription BssDescriptor;
329}tCsrScanResultInfo;
330
331typedef struct tagCsrEncryptionList
332{
333
334 tANI_U32 numEntries;
335 eCsrEncryptionType encryptionType[eCSR_NUM_OF_ENCRYPT_TYPE];
336
337}tCsrEncryptionList, *tpCsrEncryptionList;
338
339typedef struct tagCsrAuthList
340{
341 tANI_U32 numEntries;
342 eCsrAuthType authType[eCSR_NUM_OF_SUPPORT_AUTH_TYPE];
343}tCsrAuthList, *tpCsrAuthList;
344
345#ifdef WLAN_FEATURE_VOWIFI_11R
346typedef struct tagCsrMobilityDomainInfo
347{
348 tANI_U8 mdiePresent;
349 tANI_U16 mobilityDomain;
350} tCsrMobilityDomainInfo;
351#endif
352
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800353#ifdef FEATURE_WLAN_ESE
354typedef struct tagCsrEseCckmInfo
Jeff Johnson295189b2012-06-20 16:38:30 -0700355{
356 tANI_U32 reassoc_req_num;
357 tANI_BOOLEAN krk_plumbed;
358 tANI_U8 krk[CSR_KRK_KEY_LEN];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800359} tCsrEseCckmInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -0700360#endif
361
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800362#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700363#define CSR_DOT11F_IE_RSN_MAX_LEN (114) /*TODO: duplicate one in dot11f.h */
364
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800365typedef struct tagCsrEseCckmIe
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700366{
367 tANI_U8 cckmIe[CSR_DOT11F_IE_RSN_MAX_LEN];
368 tANI_U8 cckmIeLen;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800369} tCsrEseCckmIe;
370#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Jeff Johnson295189b2012-06-20 16:38:30 -0700371
372typedef struct tagCsrScanResultFilter
373{
374 tCsrBSSIDs BSSIDs; //each bssid has a length of WNI_CFG_BSSID_LEN (6)
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800375 tCsrSSIDs SSIDs;
Jeff Johnson295189b2012-06-20 16:38:30 -0700376 tCsrChannelInfo ChannelInfo;
377 tCsrAuthList authType;
378 tCsrEncryptionList EncryptionType;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800379 //eCSR_ENCRYPT_TYPE_ANY cannot be set in multicast encryption type. If caller doesn't case,
Jeff Johnson295189b2012-06-20 16:38:30 -0700380 //put all supported encryption types in here
381 tCsrEncryptionList mcEncryptionType;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800382 eCsrRoamBssType BSSType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700383 //this is a bit mask of all the needed phy mode defined in eCsrPhyMode
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800384 tANI_U32 phyMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700385 //If countryCode[0] is not 0, countryCode is checked independent of fCheckUnknownCountryCode
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800386 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN];
387 tANI_U8 uapsd_mask;
Jeff Johnson295189b2012-06-20 16:38:30 -0700388 /*For WPS filtering if true => auth and ecryption should be ignored*/
389 tANI_BOOLEAN bWPSAssociation;
Leela Venkata Kiran Kumar Reddy Chiralaf257bef2014-04-11 18:48:12 -0700390 tANI_BOOLEAN bOSENAssociation;
Jeff Johnson295189b2012-06-20 16:38:30 -0700391#if defined WLAN_FEATURE_VOWIFI
392 /*For measurement reports --> if set, only SSID, BSSID and channel is considered for filtering.*/
393 tANI_BOOLEAN fMeasurement;
394#endif
395#ifdef WLAN_FEATURE_VOWIFI_11R
396 tCsrMobilityDomainInfo MDID;
397#endif
398 tANI_BOOLEAN p2pResult;
Abhishek Singh3b56d3a2014-06-25 12:37:39 +0530399#ifdef WLAN_FEATURE_11W
400 // Management Frame Protection
401 tANI_BOOLEAN MFPEnabled;
402 tANI_U8 MFPRequired;
403 tANI_U8 MFPCapable;
404#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700405}tCsrScanResultFilter;
406
407
408typedef struct sCsrChnPower_
409{
410 tANI_U8 firstChannel;
411 tANI_U8 numChannels;
412 tANI_U8 maxtxPower;
413}sCsrChnPower;
414
415
416typedef struct sCsrChannel_
417{
418 tANI_U8 numChannels;
419 tANI_U8 channelList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
420}sCsrChannel;
421
422
423typedef struct tagCsr11dinfo
424{
425 sCsrChannel Channels;
426 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN+1];
427 //max power channel list
428 sCsrChnPower ChnPower[WNI_CFG_VALID_CHANNEL_LIST_LEN];
429}tCsr11dinfo;
430
431
432typedef enum
433{
434 eCSR_ROAM_CANCELLED = 1,
435 //this mean error happens before association_start or roaming_start is called.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800436 eCSR_ROAM_FAILED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700437 //a CSR trigger roaming operation starts, callback may get a pointer to tCsrConnectedProfile
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800438 eCSR_ROAM_ROAMING_START,
Jeff Johnson295189b2012-06-20 16:38:30 -0700439 //a CSR trigger roaming operation is completed
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800440 eCSR_ROAM_ROAMING_COMPLETION,
Jeff Johnson295189b2012-06-20 16:38:30 -0700441 //Connection completed status.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800442 eCSR_ROAM_CONNECT_COMPLETION,
443 //an association or start_IBSS operation starts,
444 //callback may get a pointer to tCsrRoamProfile and a pointer to tSirBssDescription
445 eCSR_ROAM_ASSOCIATION_START,
446 //a roaming operation is finish, see eCsrRoamResult for
Jeff Johnson295189b2012-06-20 16:38:30 -0700447 //possible data passed back
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800448 eCSR_ROAM_ASSOCIATION_COMPLETION,
Jeff Johnson295189b2012-06-20 16:38:30 -0700449 eCSR_ROAM_DISASSOCIATED,
450 eCSR_ROAM_ASSOCIATION_FAILURE,
451 //when callback with this flag. callback gets a pointer to the BSS desc.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800452 eCSR_ROAM_SHOULD_ROAM,
Jeff Johnson295189b2012-06-20 16:38:30 -0700453 //A new candidate for PMKID is found
454 eCSR_ROAM_SCAN_FOUND_NEW_BSS,
455 //CSR is done lostlink roaming and still cannot reconnect
456 eCSR_ROAM_LOSTLINK,
457 //a link lost is detected. CSR starts roaming.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800458 eCSR_ROAM_LOSTLINK_DETECTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700459 //TKIP MIC error detected, callback gets a pointer to tpSirSmeMicFailureInd
460 eCSR_ROAM_MIC_ERROR_IND,
461 eCSR_ROAM_IBSS_IND, //IBSS indications.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800462 //Update the connection status, useful for IBSS: new peer added, network is active etc.
463 eCSR_ROAM_CONNECT_STATUS_UPDATE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700464 eCSR_ROAM_GEN_INFO,
465 eCSR_ROAM_SET_KEY_COMPLETE,
466 eCSR_ROAM_REMOVE_KEY_COMPLETE,
467 eCSR_ROAM_IBSS_LEAVE, //IBSS indications.
468 //BSS in WDS mode status indication
469 eCSR_ROAM_WDS_IND,
Jeff Johnson295189b2012-06-20 16:38:30 -0700470 //BSS in SoftAP mode status indication
471 eCSR_ROAM_INFRA_IND,
472 eCSR_ROAM_WPS_PBC_PROBE_REQ_IND,
Jeff Johnson295189b2012-06-20 16:38:30 -0700473#ifdef WLAN_FEATURE_VOWIFI_11R
474 eCSR_ROAM_FT_RESPONSE,
475#endif
476 eCSR_ROAM_FT_START,
Jeff Johnson295189b2012-06-20 16:38:30 -0700477 eCSR_ROAM_REMAIN_CHAN_READY,
478 eCSR_ROAM_SEND_ACTION_CNF,
479 //this mean error happens before association_start or roaming_start is called.
480 eCSR_ROAM_SESSION_OPENED,
481 eCSR_ROAM_FT_REASSOC_FAILED,
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700482#ifdef FEATURE_WLAN_LFR
483 eCSR_ROAM_PMK_NOTIFY,
484#endif
Yue Maef608272013-04-08 23:09:17 -0700485#ifdef FEATURE_WLAN_LFR_METRICS
486 eCSR_ROAM_PREAUTH_INIT_NOTIFY,
487 eCSR_ROAM_PREAUTH_STATUS_SUCCESS,
488 eCSR_ROAM_PREAUTH_STATUS_FAILURE,
489 eCSR_ROAM_HANDOVER_SUCCESS,
490#endif
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800491#ifdef FEATURE_WLAN_TDLS
492 eCSR_ROAM_TDLS_STATUS_UPDATE,
Gopichand Nakkalab977a972013-02-18 19:15:09 -0800493 eCSR_ROAM_RESULT_MGMT_TX_COMPLETE_IND,
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800494#endif
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -0800495 eCSR_ROAM_DISCONNECT_ALL_P2P_CLIENTS, //Disaconnect all the clients
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800496 eCSR_ROAM_SEND_P2P_STOP_BSS, //Stopbss triggered from SME due to different
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -0800497 // beacon interval
Chet Lanctot186b5732013-03-18 10:26:30 -0700498#ifdef WLAN_FEATURE_11W
499 eCSR_ROAM_UNPROT_MGMT_FRAME_IND,
500#endif
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -0800501
Hardik Kantilal Patel81f76342014-11-14 12:45:26 -0800502#ifdef WLAN_FEATURE_AP_HT40_24G
503 eCSR_ROAM_2040_COEX_INFO_IND,
504#endif
505
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800506#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700507 eCSR_ROAM_TSM_IE_IND,
508 eCSR_ROAM_CCKM_PREAUTH_NOTIFY,
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800509 eCSR_ROAM_ESE_ADJ_AP_REPORT_IND,
510 eCSR_ROAM_ESE_BCN_REPORT_IND,
511#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Girish Gowlia95daca2015-02-04 20:31:31 +0530512 eCSR_ROAM_UPDATE_MAX_RATE_IND,
Sachin Ahuja3d47fcd2015-08-28 16:02:06 +0530513 eCSR_ROAM_LOST_LINK_PARAMS_IND,
Jeff Johnson295189b2012-06-20 16:38:30 -0700514}eRoamCmdStatus;
515
516
517//comment inside indicates what roaming callback gets
518typedef enum
519{
520 eCSR_ROAM_RESULT_NONE,
521 //this means no more action in CSR
522 //If roamStatus is eCSR_ROAM_ASSOCIATION_COMPLETION, tCsrRoamInfo's pBssDesc may pass back
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800523 eCSR_ROAM_RESULT_FAILURE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700524 //Pass back pointer to tCsrRoamInfo
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800525 eCSR_ROAM_RESULT_ASSOCIATED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700526 eCSR_ROAM_RESULT_NOT_ASSOCIATED,
527 eCSR_ROAM_RESULT_MIC_FAILURE,
528 eCSR_ROAM_RESULT_FORCED,
529 eCSR_ROAM_RESULT_DISASSOC_IND,
530 eCSR_ROAM_RESULT_DEAUTH_IND,
531 eCSR_ROAM_RESULT_CAP_CHANGED,
532 //This means we starts an IBSS
533 //tCsrRoamInfo's pBssDesc may pass back
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800534 eCSR_ROAM_RESULT_IBSS_STARTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700535 //START_BSS failed
536 //tCsrRoamInfo's pBssDesc may pass back
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800537 eCSR_ROAM_RESULT_IBSS_START_FAILED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700538 eCSR_ROAM_RESULT_IBSS_JOIN_SUCCESS,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800539 eCSR_ROAM_RESULT_IBSS_JOIN_FAILED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700540 eCSR_ROAM_RESULT_IBSS_CONNECT,
541 eCSR_ROAM_RESULT_IBSS_INACTIVE,
542 //If roamStatus is eCSR_ROAM_ASSOCIATION_COMPLETION
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800543 //tCsrRoamInfo's pBssDesc may pass back. and the peer's MAC address in peerMacOrBssid
544 //If roamStatus is eCSR_ROAM_IBSS_IND,
Jeff Johnson295189b2012-06-20 16:38:30 -0700545 //the peer's MAC address in peerMacOrBssid and a beacon frame of the IBSS in pbFrames
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800546 eCSR_ROAM_RESULT_IBSS_NEW_PEER,
Jeff Johnson295189b2012-06-20 16:38:30 -0700547 //Peer departed from IBSS, Callback may get a pointer tSmeIbssPeerInd in pIbssPeerInd
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800548 eCSR_ROAM_RESULT_IBSS_PEER_DEPARTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700549 //Coalescing in the IBSS network (joined an IBSS network)
550 //Callback pass a BSSID in peerMacOrBssid
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800551 eCSR_ROAM_RESULT_IBSS_COALESCED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700552 //If roamStatus is eCSR_ROAM_ROAMING_START, callback may get a pointer to tCsrConnectedProfile used to connect.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800553 eCSR_ROAM_RESULT_IBSS_STOP,
554 eCSR_ROAM_RESULT_LOSTLINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700555 eCSR_ROAM_RESULT_MIC_ERROR_UNICAST,
556 eCSR_ROAM_RESULT_MIC_ERROR_GROUP,
557 eCSR_ROAM_RESULT_AUTHENTICATED,
558 eCSR_ROAM_RESULT_NEW_RSN_BSS,
559#ifdef FEATURE_WLAN_WAPI
560 eCSR_ROAM_RESULT_NEW_WAPI_BSS,
561#endif /* FEATURE_WLAN_WAPI */
562 // WDS started successfully
563 eCSR_ROAM_RESULT_WDS_STARTED,
564 // WDS start failed
565 eCSR_ROAM_RESULT_WDS_START_FAILED,
566 // WDS stopped
567 eCSR_ROAM_RESULT_WDS_STOPPED,
568 // WDS joined successfully in STA mode
569 eCSR_ROAM_RESULT_WDS_ASSOCIATED,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800570 // A station joined WDS AP
Jeff Johnson295189b2012-06-20 16:38:30 -0700571 eCSR_ROAM_RESULT_WDS_ASSOCIATION_IND,
572 // WDS join failed in STA mode
573 eCSR_ROAM_RESULT_WDS_NOT_ASSOCIATED,
574 // WDS disassociated
575 eCSR_ROAM_RESULT_WDS_DISASSOCIATED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700576 // INFRA started successfully
577 eCSR_ROAM_RESULT_INFRA_STARTED,
578 // INFRA start failed
579 eCSR_ROAM_RESULT_INFRA_START_FAILED,
580 // INFRA stopped
581 eCSR_ROAM_RESULT_INFRA_STOPPED,
582 // A station joining INFRA AP
583 eCSR_ROAM_RESULT_INFRA_ASSOCIATION_IND,
584 // A station joined INFRA AP
585 eCSR_ROAM_RESULT_INFRA_ASSOCIATION_CNF,
586 // INFRA disassociated
587 eCSR_ROAM_RESULT_INFRA_DISASSOCIATED,
588 eCSR_ROAM_RESULT_WPS_PBC_PROBE_REQ_IND,
Jeff Johnson295189b2012-06-20 16:38:30 -0700589 eCSR_ROAM_RESULT_SEND_ACTION_FAIL,
Jeff Johnson295189b2012-06-20 16:38:30 -0700590 // peer rejected assoc because max assoc limit reached. callback gets pointer to peer
591 eCSR_ROAM_RESULT_MAX_ASSOC_EXCEEDED,
Jeff Johnsone7245742012-09-05 17:12:55 -0700592 //Assoc rejected due to concurrent session running on a different channel
593 eCSR_ROAM_RESULT_ASSOC_FAIL_CON_CHANNEL,
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800594#ifdef FEATURE_WLAN_TDLS
595 eCSR_ROAM_RESULT_ADD_TDLS_PEER,
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800596 eCSR_ROAM_RESULT_UPDATE_TDLS_PEER,
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800597 eCSR_ROAM_RESULT_DELETE_TDLS_PEER,
Hoonki Leee6bfe942013-02-05 15:01:19 -0800598 eCSR_ROAM_RESULT_TEARDOWN_TDLS_PEER_IND,
Gopichand Nakkala2a0a1572013-02-10 21:39:16 -0800599 eCSR_ROAM_RESULT_DELETE_ALL_TDLS_PEER_IND,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530600 eCSR_ROAM_RESULT_LINK_ESTABLISH_REQ_RSP,
Masti, Narayanraddi36c67622016-01-06 16:07:34 +0530601 eCSR_ROAM_RESULT_CHANNEL_SWITCH_REQ_RSP,
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800602#endif
603
Jeff Johnson295189b2012-06-20 16:38:30 -0700604}eCsrRoamResult;
605
606
607
608/*----------------------------------------------------------------------------
609 List of link quality indications HDD can receive from SME
610-----------------------------------------------------------------------------*/
611typedef enum
612{
613 eCSR_ROAM_LINK_QUAL_MIN_IND = -1,
614
615 eCSR_ROAM_LINK_QUAL_POOR_IND = 0, /* bad link */
616 eCSR_ROAM_LINK_QUAL_GOOD_IND = 1, /* acceptable for voice */
617 eCSR_ROAM_LINK_QUAL_VERY_GOOD_IND = 2, /* suitable for voice */
618 eCSR_ROAM_LINK_QUAL_EXCELLENT_IND = 3, /* suitable for voice */
619
620 eCSR_ROAM_LINK_QUAL_MAX_IND /* invalid value */
621
622} eCsrRoamLinkQualityInd;
623
624typedef enum
625{
626 eCSR_DISCONNECT_REASON_UNSPECIFIED = 0,
627 eCSR_DISCONNECT_REASON_MIC_ERROR,
628 eCSR_DISCONNECT_REASON_DISASSOC,
629 eCSR_DISCONNECT_REASON_DEAUTH,
630 eCSR_DISCONNECT_REASON_HANDOFF,
631 eCSR_DISCONNECT_REASON_IBSS_JOIN_FAILURE,
632 eCSR_DISCONNECT_REASON_IBSS_LEAVE,
633}eCsrRoamDisconnectReason;
634
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800635typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700636{
637 // Not associated in Infra or participating in an IBSS / Ad-hoc network.
638 eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED,
639 // Associated in an Infrastructure network.
640 eCSR_ASSOC_STATE_TYPE_INFRA_ASSOCIATED,
641 // Participating in an IBSS network though disconnected (no partner stations
642 // in the IBSS).
643 eCSR_ASSOC_STATE_TYPE_IBSS_DISCONNECTED,
644 // Participating in an IBSS network with partner stations also present
645 eCSR_ASSOC_STATE_TYPE_IBSS_CONNECTED,
646 // Participating in a WDS network in AP or STA mode but not connected yet
647 eCSR_ASSOC_STATE_TYPE_WDS_DISCONNECTED,
648 // Participating in a WDS network and connected peer to peer
649 eCSR_ASSOC_STATE_TYPE_WDS_CONNECTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700650 // Participating in a Infra network in AP not yet in connected state
651 eCSR_ASSOC_STATE_TYPE_INFRA_DISCONNECTED,
652 // Participating in a Infra network and connected to a peer
653 eCSR_ASSOC_STATE_TYPE_INFRA_CONNECTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700654
655}eCsrConnectState;
656
657
658// This parameter is no longer supported in the Profile. Need to set this in the global properties
659// for the adapter.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800660typedef enum eCSR_MEDIUM_ACCESS
Jeff Johnson295189b2012-06-20 16:38:30 -0700661{
662 eCSR_MEDIUM_ACCESS_AUTO = 0,
663 eCSR_MEDIUM_ACCESS_DCF,
664 eCSR_MEDIUM_ACCESS_eDCF,
665 eCSR_MEDIUM_ACCESS_HCF,
666
667 eCSR_MEDIUM_ACCESS_WMM_eDCF_802dot1p,
668 eCSR_MEDIUM_ACCESS_WMM_eDCF_DSCP,
669 eCSR_MEDIUM_ACCESS_WMM_eDCF_NoClassify,
670 eCSR_MEDIUM_ACCESS_11e_eDCF = eCSR_MEDIUM_ACCESS_eDCF,
671 eCSR_MEDIUM_ACCESS_11e_HCF = eCSR_MEDIUM_ACCESS_HCF,
672}eCsrMediaAccessType;
673
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800674typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700675{
676 eCSR_TX_RATE_AUTO = 0, // use rate adaption to determine Tx rate.
677
678 eCSR_TX_RATE_1Mbps = 0x00000001,
679 eCSR_TX_RATE_2Mbps = 0x00000002,
680 eCSR_TX_RATE_5_5Mbps = 0x00000004,
681 eCSR_TX_RATE_6Mbps = 0x00000008,
682 eCSR_TX_RATE_9Mbps = 0x00000010,
683 eCSR_TX_RATE_11Mbps = 0x00000020,
684 eCSR_TX_RATE_12Mbps = 0x00000040,
685 eCSR_TX_RATE_18Mbps = 0x00000080,
686 eCSR_TX_RATE_24Mbps = 0x00000100,
687 eCSR_TX_RATE_36Mbps = 0x00000200,
688 eCSR_TX_RATE_42Mbps = 0x00000400,
689 eCSR_TX_RATE_48Mbps = 0x00000800,
690 eCSR_TX_RATE_54Mbps = 0x00001000,
691 eCSR_TX_RATE_72Mbps = 0x00002000,
692 eCSR_TX_RATE_84Mbps = 0x00004000,
693 eCSR_TX_RATE_96Mbps = 0x00008000,
694 eCSR_TX_RATE_108Mbps = 0x00010000,
695 eCSR_TX_RATE_126Mbps = 0x00020000,
696 eCSR_TX_RATE_144Mbps = 0x00040000,
697 eCSR_TX_RATE_168Mbps = 0x00080000,
698 eCSR_TX_RATE_192Mbps = 0x00100000,
699 eCSR_TX_RATE_216Mbps = 0x00200000,
700 eCSR_TX_RATE_240Mbps = 0x00400000,
701
702}eCsrExposedTxRate;
703
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800704typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700705{
706 eCSR_OPERATING_CHANNEL_ALL = 0,
707 eCSR_OPERATING_CHANNEL_AUTO = eCSR_OPERATING_CHANNEL_ALL,
708 eCSR_OPERATING_CHANNEL_ANY = eCSR_OPERATING_CHANNEL_ALL,
709}eOperationChannel;
710
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800711typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700712{
713 eCSR_DOT11_FRAG_THRESH_AUTO = -1,
714 eCSR_DOT11_FRAG_THRESH_MIN = 256,
715 eCSR_DOT11_FRAG_THRESH_MAX = 2346,
716 eCSR_DOT11_FRAG_THRESH_DEFAULT = 2000
717}eCsrDot11FragThresh;
718
719
720//for channel bonding for ibss
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800721typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700722{
723 eCSR_CB_OFF = 0,
724 eCSR_CB_AUTO = 1,
725 eCSR_CB_DOWN = 2,
726 eCSR_CB_UP = 3,
727}eCsrCBChoice;
728
729//For channel bonding, the channel number gap is 4, either up or down. For both 11a and 11g mode.
730#define CSR_CB_CHANNEL_GAP 4
731#define CSR_CB_CENTER_CHANNEL_OFFSET 2
732#define CSR_MAX_24GHz_CHANNEL_NUMBER ( SIR_11B_CHANNEL_END )
Jeff Johnsone7245742012-09-05 17:12:55 -0700733#define CSR_MIN_5GHz_CHANNEL_NUMBER ( SIR_11A_CHANNEL_BEGIN )
734#define CSR_MAX_5GHz_CHANNEL_NUMBER ( SIR_11A_CHANNEL_END )
Jeff Johnson295189b2012-06-20 16:38:30 -0700735
736// WEP keysize (in bits)...
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800737typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700738{
739 eCSR_SECURITY_WEP_KEYSIZE_40 = 40, // 40 bit key + 24bit IV = 64bit WEP
740 eCSR_SECURITY_WEP_KEYSIZE_104 = 104, // 104bit key + 24bit IV = 128bit WEP
741
742 eCSR_SECURITY_WEP_KEYSIZE_MIN = eCSR_SECURITY_WEP_KEYSIZE_40,
743 eCSR_SECURITY_WEP_KEYSIZE_MAX = eCSR_SECURITY_WEP_KEYSIZE_104,
744 eCSR_SECURITY_WEP_KEYSIZE_MAX_BYTES = ( eCSR_SECURITY_WEP_KEYSIZE_MAX / 8 ),
745}eCsrWEPKeySize;
746
747
748// Possible values for the WEP static key ID...
749typedef enum
750{
751
752 eCSR_SECURITY_WEP_STATIC_KEY_ID_MIN = 0,
753 eCSR_SECURITY_WEP_STATIC_KEY_ID_MAX = 3,
754 eCSR_SECURITY_WEP_STATIC_KEY_ID_DEFAULT = 0,
755
756 eCSR_SECURITY_WEP_STATIC_KEY_ID_INVALID = -1,
757
758}eCsrWEPStaticKeyID;
759
Chet Lanctot186b5732013-03-18 10:26:30 -0700760// Two extra key indicies are used for the IGTK (which is used by BIP)
761#define CSR_MAX_NUM_KEY (eCSR_SECURITY_WEP_STATIC_KEY_ID_MAX + 2 + 1)
Jeff Johnson295189b2012-06-20 16:38:30 -0700762
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800763typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700764{
765 eCSR_SECURITY_SET_KEY_ACTION_NO_CHANGE,
766 eCSR_SECURITY_SET_KEY_ACTION_SET_KEY,
767 eCSR_SECURITY_SET_KEY_ACTION_DELETE_KEY,
768}eCsrSetKeyAction;
769
770typedef enum
771{
772 eCSR_BAND_ALL,
773 eCSR_BAND_24,
774 eCSR_BAND_5G,
775 eCSR_BAND_MAX,
776}eCsrBand;
777
778
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800779typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700780{
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800781 // Roaming because HDD requested for reassoc by changing one of the fields in
Jeff Johnson295189b2012-06-20 16:38:30 -0700782 // tCsrRoamModifyProfileFields. OR
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800783 // Roaming because SME requested for reassoc by changing one of the fields in
Jeff Johnson295189b2012-06-20 16:38:30 -0700784 // tCsrRoamModifyProfileFields.
785 eCsrRoamReasonStaCapabilityChanged,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800786 // Roaming because SME requested for reassoc to a different AP, as part of
Jeff Johnson295189b2012-06-20 16:38:30 -0700787 // inter AP handoff.
788 eCsrRoamReasonBetterAP,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800789 // Roaming because SME requested it as the link is lost - placeholder, will
Jeff Johnson295189b2012-06-20 16:38:30 -0700790 // clean it up once handoff code gets in
791 eCsrRoamReasonSmeIssuedForLostLink,
792
793}eCsrRoamReasonCodes;
794
795typedef enum
796{
797 eCsrRoamWmmAuto = 0,
798 eCsrRoamWmmQbssOnly = 1,
799 eCsrRoamWmmNoQos = 2,
800
801} eCsrRoamWmmUserModeType;
802
803typedef enum
804{
805 eCSR_REQUESTER_MIN = 0,
806 eCSR_DIAG,
807 eCSR_UMA_GAN,
808 eCSR_HDD
809} eCsrStatsRequesterType;
810
Agarwal Ashish6db9d532014-09-30 18:19:10 +0530811typedef enum
812{
813 INIT = 0,
814 REINIT,
815} driver_load_type;
816
Jeff Johnson295189b2012-06-20 16:38:30 -0700817typedef struct tagPmkidCandidateInfo
818{
819 tCsrBssid BSSID;
820 tANI_BOOLEAN preAuthSupported;
821}tPmkidCandidateInfo;
822
823typedef struct tagPmkidCacheInfo
824{
825 tCsrBssid BSSID;
826 tANI_U8 PMKID[CSR_RSN_PMKID_SIZE];
827}tPmkidCacheInfo;
828
829#ifdef FEATURE_WLAN_WAPI
830typedef struct tagBkidCandidateInfo
831{
832 tCsrBssid BSSID;
833 tANI_BOOLEAN preAuthSupported;
834}tBkidCandidateInfo;
835
836typedef struct tagBkidCacheInfo
837{
838 tCsrBssid BSSID;
839 tANI_U8 BKID[CSR_WAPI_BKID_SIZE];
840}tBkidCacheInfo;
841#endif /* FEATURE_WLAN_WAPI */
842
843typedef struct tagCsrKeys
844{
845 tANI_U8 KeyLength[ CSR_MAX_NUM_KEY ]; //Also use to indicate whether the key index is set
846 tANI_U8 KeyMaterial[ CSR_MAX_NUM_KEY ][ CSR_MAX_KEY_LEN ];
847 tANI_U8 defaultIndex;
848}tCsrKeys;
849
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800850/* Following are fields which are part of tCsrRoamConnectedProfile might need
Jeff Johnson295189b2012-06-20 16:38:30 -0700851 modification dynamically once STA is up & running and this could trigger
852 reassoc */
853typedef struct tagCsrRoamModifyProfileFields
854{
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800855 // during connect this specifies ACs U-APSD is to be setup
Jeff Johnson295189b2012-06-20 16:38:30 -0700856 // for (Bit0:VO; Bit1:VI; Bit2:BK; Bit3:BE all other bits are ignored).
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800857 // During assoc response this COULD carry confirmation of what ACs U-APSD
Jeff Johnson295189b2012-06-20 16:38:30 -0700858 // got setup for. Later if an APP looking for APSD, SME-QoS might need to
859 // modify this field
860 tANI_U8 uapsd_mask;
861 // HDD might ask to modify this field
862 tANI_U16 listen_interval;
863}tCsrRoamModifyProfileFields;
864
865typedef struct tagCsrRoamProfile
866{
867 //For eCSR_BSS_TYPE_WDS_AP. There must be one SSID in SSIDs.
868 //For eCSR_BSS_TYPE_WDS_STA. There must be two SSIDs. Index 0 is the SSID of the WDS-AP
869 //that we need to join. Index 1 is the SSID for self BSS.
870 tCsrSSIDs SSIDs;
871 tCsrBSSIDs BSSIDs;
872 tANI_U32 phyMode; //this is a bit mask of all the needed phy mode defined in eCsrPhyMode
873 eCsrRoamBssType BSSType;
874
875 tCsrAuthList AuthType;
876 eCsrAuthType negotiatedAuthType;
877
878 tCsrEncryptionList EncryptionType;
879 //This field is for output only, not for input
880 eCsrEncryptionType negotiatedUCEncryptionType;
881
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800882 //eCSR_ENCRYPT_TYPE_ANY cannot be set in multicast encryption type. If caller doesn't case,
Jeff Johnson295189b2012-06-20 16:38:30 -0700883 //put all supported encryption types in here
884 tCsrEncryptionList mcEncryptionType;
885 //This field is for output only, not for input
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800886 eCsrEncryptionType negotiatedMCEncryptionType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700887
Chet Lanctot186b5732013-03-18 10:26:30 -0700888#ifdef WLAN_FEATURE_11W
889 // Management Frame Protection
890 tANI_BOOLEAN MFPEnabled;
891 tANI_U8 MFPRequired;
892 tANI_U8 MFPCapable;
893#endif
894
Jeff Johnson295189b2012-06-20 16:38:30 -0700895 tCsrKeys Keys;
896 eCsrCBChoice CBMode; //up, down or auto
897 tCsrChannelInfo ChannelInfo;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800898 tANI_U8 operationChannel;
Jeff Johnson295189b2012-06-20 16:38:30 -0700899 tANI_U16 beaconInterval; //If this is 0, SME will fill in for caller.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800900 // during connect this specifies ACs U-APSD is to be setup
Jeff Johnson295189b2012-06-20 16:38:30 -0700901 // for (Bit0:VO; Bit1:VI; Bit2:BK; Bit3:BE all other bits are ignored).
902 // During assoc response this COULD carry confirmation of what ACs U-APSD got setup for
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800903 tANI_U8 uapsd_mask;
Jeff Johnson295189b2012-06-20 16:38:30 -0700904 tANI_U32 nWPAReqIELength; //The byte count in the pWPAReqIE
905 tANI_U8 *pWPAReqIE; //If not null, it has the IE byte stream for WPA
906 tANI_U32 nRSNReqIELength; //The byte count in the pRSNReqIE
907 tANI_U8 *pRSNReqIE; //If not null, it has the IE byte stream for RSN
908#ifdef FEATURE_WLAN_WAPI
909 tANI_U32 nWAPIReqIELength; //The byte count in the pWAPIReqIE
910 tANI_U8 *pWAPIReqIE; //If not null, it has the IE byte stream for WAPI
911#endif /* FEATURE_WLAN_WAPI */
912
Agarwal Ashish4f616132013-12-30 23:32:50 +0530913 //The byte count in the pAddIE for scan (at the time of join)
914 tANI_U32 nAddIEScanLength;
915 /* Additional IE information.
916 * It has the IE byte stream for additional IE,
917 * which can be WSC IE and/or P2P IE
918 */
Ganesh Kondabattini7500fb32015-04-10 14:50:32 +0530919 tANI_U8 addIEScan[SIR_MAC_MAX_ADD_IE_LENGTH+2]; //Additional IE information.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800920 tANI_U32 nAddIEAssocLength; //The byte count in the pAddIE for assoc
Jeff Johnson295189b2012-06-20 16:38:30 -0700921 tANI_U8 *pAddIEAssoc; //If not null, it has the IE byte stream for additional IE, which can be WSC IE and/or P2P IE
922
923 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //it is ignored if [0] is 0.
924 /*WPS Association if true => auth and ecryption should be ignored*/
925 tANI_BOOLEAN bWPSAssociation;
Leela Venkata Kiran Kumar Reddy Chiralaf257bef2014-04-11 18:48:12 -0700926 tANI_BOOLEAN bOSENAssociation;
Jeff Johnson295189b2012-06-20 16:38:30 -0700927 tANI_U32 nWSCReqIELength; //The byte count in the pWSCReqIE
928 tANI_U8 *pWSCReqIE; //If not null, it has the IE byte stream for WSC
929
Jeff Johnson295189b2012-06-20 16:38:30 -0700930 tANI_U8 ieee80211d;
931 tANI_U8 privacy;
932 tANI_BOOLEAN fwdWPSPBCProbeReq;
933 tAniAuthType csr80211AuthType;
934 tANI_U32 dtimPeriod;
935 tANI_BOOLEAN ApUapsdEnable;
936 tANI_BOOLEAN protEnabled;
937 tANI_BOOLEAN obssProtEnabled;
938 tANI_U16 cfg_protection;
939 tANI_U8 wps_state;
Jeff Johnson295189b2012-06-20 16:38:30 -0700940
941#ifdef WLAN_FEATURE_VOWIFI_11R
942 tCsrMobilityDomainInfo MDID;
943#endif
944 tVOS_CON_MODE csrPersona;
945
946}tCsrRoamProfile;
947
948
949typedef struct tagCsrRoamConnectedProfile
950{
951 tSirMacSSid SSID;
952 tANI_BOOLEAN handoffPermitted;
953 tANI_BOOLEAN ssidHidden;
954 tCsrBssid bssid;
955 eCsrRoamBssType BSSType;
956 eCsrAuthType AuthType;
957 tCsrAuthList AuthInfo;
958 eCsrEncryptionType EncryptionType;
959 tCsrEncryptionList EncryptionInfo;
960 eCsrEncryptionType mcEncryptionType;
961 tCsrEncryptionList mcEncryptionInfo;
962 eCsrCBChoice CBMode; //up, down or auto
963 tANI_U8 operationChannel;
Jeff Johnsone7245742012-09-05 17:12:55 -0700964 tANI_U16 beaconInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -0700965 tCsrKeys Keys;
966 // meaningless on connect. It's an OUT param from CSR's point of view
967 // During assoc response carries the ACM bit-mask i.e. what
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800968 // ACs have ACM=1 (if any),
Jeff Johnson295189b2012-06-20 16:38:30 -0700969 // (Bit0:VO; Bit1:VI; Bit2:BK; Bit3:BE all other bits are ignored)
970 tANI_U8 acm_mask;
971 tCsrRoamModifyProfileFields modifyProfileFields;
Madan Mohan Koyyalamudiea22cdc2012-10-18 21:02:23 -0700972 tANI_U32 nAddIEAssocLength; //The byte count in the pAddIE for assoc
973 tANI_U8 *pAddIEAssoc; //If not null, it has the IE byte stream for additional IE, which can be WSC IE and/or P2P IE
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800974
975 tSirBssDescription *pBssDesc;
Jeff Johnson295189b2012-06-20 16:38:30 -0700976 tANI_BOOLEAN qap; //AP supports QoS
977 tANI_BOOLEAN qosConnection; //A connection is QoS enabled
978#ifdef WLAN_FEATURE_VOWIFI_11R
979 tCsrMobilityDomainInfo MDID;
980#endif
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800981
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800982#ifdef FEATURE_WLAN_ESE
983 tCsrEseCckmInfo eseCckmInfo;
984 tANI_BOOLEAN isESEAssoc;
Jeff Johnson295189b2012-06-20 16:38:30 -0700985#endif
Gopichand Nakkaladacbcb52013-04-18 16:41:54 +0530986 tANI_U32 dot11Mode;
Abhishek Singh2fb3a6e2014-11-20 16:03:01 +0530987
988#ifdef WLAN_FEATURE_11W
989 /* Management Frame Protection */
990 tANI_BOOLEAN MFPEnabled;
991 tANI_U8 MFPRequired;
992 tANI_U8 MFPCapable;
993#endif
994
Jeff Johnson295189b2012-06-20 16:38:30 -0700995}tCsrRoamConnectedProfile;
996
997
998#ifdef WLAN_FEATURE_VOWIFI_11R
999typedef struct tagCsr11rConfigParams
1000{
1001 tANI_BOOLEAN IsFTResourceReqSupported;
1002} tCsr11rConfigParams;
1003#endif
1004
1005#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
1006typedef struct tagCsrNeighborRoamConfigParams
1007{
1008
1009 tANI_U32 nNeighborScanTimerPeriod;
1010 tANI_U8 nNeighborLookupRssiThreshold;
1011 tANI_U8 nNeighborReassocRssiThreshold;
1012 tANI_U16 nNeighborScanMinChanTime;
1013 tANI_U16 nNeighborScanMaxChanTime;
1014 sCsrChannel neighborScanChanList;
1015 tANI_U8 nMaxNeighborRetries;
1016 tANI_U16 nNeighborResultsRefreshPeriod;
Srinivas Girigowdade697412013-02-14 16:31:48 -08001017 tANI_U16 nEmptyScanRefreshPeriod;
Mukul Sharmad49b3d62014-09-02 01:45:32 +05301018 tANI_U8 nNeighborInitialForcedRoamTo5GhEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07001019}tCsrNeighborRoamConfigParams;
1020#endif
1021
1022typedef struct tagCsrConfigParam
1023{
1024 tANI_U32 FragmentationThreshold;
Jeff Johnsone7245742012-09-05 17:12:55 -07001025 tANI_U32 channelBondingMode24GHz; // keep this tANI_U32. This gets converted to ePhyChannelBondState
1026 tANI_U32 channelBondingMode5GHz; // in csrChangeDefaultConfigParam using convertCBIniValueToPhyCBState
Jeff Johnson295189b2012-06-20 16:38:30 -07001027 eCsrPhyMode phyMode;
1028 eCsrBand eBand;
1029 tANI_U32 RTSThreshold;
1030 tANI_U32 HeartbeatThresh50;
1031 tANI_U32 HeartbeatThresh24;
1032 eCsrCBChoice cbChoice;
1033 eCsrBand bandCapability; //indicate hw capability
1034 tANI_U32 bgScanInterval;
1035 tANI_U16 TxRate;
1036 eCsrRoamWmmUserModeType WMMSupportMode;
1037 tANI_BOOLEAN Is11eSupportEnabled;
1038 tANI_BOOLEAN Is11dSupportEnabled;
1039 tANI_BOOLEAN Is11dSupportEnabledOriginal;
1040 tANI_BOOLEAN Is11hSupportEnabled;
1041 tANI_BOOLEAN shortSlotTime;
1042 tANI_BOOLEAN ProprietaryRatesEnabled;
1043 tANI_U8 AdHocChannel24;
1044 tANI_U8 AdHocChannel5G;
1045 tANI_U32 impsSleepTime; //in units of seconds
1046 tANI_U32 nScanResultAgeCount; //this number minus one is the number of times a scan doesn't find it before it is removed
1047 tANI_U32 scanAgeTimeNCNPS; //scan result aging time threshold when Not-Connect-No-Power-Save, in seconds
1048 tANI_U32 scanAgeTimeNCPS; //scan result aging time threshold when Not-Connect-Power-Save, in seconds
1049 tANI_U32 scanAgeTimeCNPS; //scan result aging time threshold when Connect-No-Power-Save, in seconds,
1050 tANI_U32 scanAgeTimeCPS; //scan result aging time threshold when Connect-Power-Savein seconds
1051 tANI_U32 nRoamingTime; //In seconds, CSR will try this long before gives up. 0 means no roaming
1052 tANI_U8 bCatRssiOffset; //to set the RSSI difference for each category
1053 tANI_U8 fEnableMCCMode; //to set MCC Enable/Disable mode
Mohit Khanna7ed53f02012-09-11 17:52:10 -07001054 tANI_U8 fAllowMCCGODiffBI; //to allow MCC GO different B.I than STA's. NOTE: make sure if RIVA firmware can handle this combination before enabling this
1055 //at the moment, this flag is provided only to pass Wi-Fi Cert. 5.1.12
Jeff Johnson295189b2012-06-20 16:38:30 -07001056 tCsr11dinfo Csr11dinfo;
1057 //Whether to limit the channels to the ones set in Csr11dInfo. If true, the opertaional
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001058 //channels are limited to the default channel list. It is an "AND" operation between the
Jeff Johnson295189b2012-06-20 16:38:30 -07001059 //default channels and the channels in the 802.11d IE.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001060 tANI_BOOLEAN fEnforce11dChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001061 //Country Code Priority
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001062 //0 = 802.11D > Country IOCTL > NV
Jeff Johnson295189b2012-06-20 16:38:30 -07001063 //1 = Country IOCTL > 802.11D > NV
1064 tANI_BOOLEAN fSupplicantCountryCodeHasPriority;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001065 //When true, AP with unknown country code won't be see.
1066 //"Unknown country code" means either Ap doesn't have 11d IE or we cannot
1067 //find a domain for the country code in its 11d IE.
1068 tANI_BOOLEAN fEnforceCountryCodeMatch;
Jeff Johnson295189b2012-06-20 16:38:30 -07001069 //When true, only APs in the default domain can be seen. If the Ap has "unknown country
1070 //code", or the domain of the country code doesn't match the default domain, the Ap is
1071 //not acceptable.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001072 tANI_BOOLEAN fEnforceDefaultDomain;
Jeff Johnson295189b2012-06-20 16:38:30 -07001073
1074 tANI_U16 vccRssiThreshold;
1075 tANI_U32 vccUlMacLossThreshold;
1076
1077 tANI_U32 nPassiveMinChnTime; //in units of milliseconds
1078 tANI_U32 nPassiveMaxChnTime; //in units of milliseconds
1079 tANI_U32 nActiveMinChnTime; //in units of milliseconds
1080 tANI_U32 nActiveMaxChnTime; //in units of milliseconds
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001081
c_hpothu059edb02014-03-12 21:44:28 +05301082 tANI_U32 nInitialDwellTime; //in units of milliseconds
1083
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001084 tANI_U32 nActiveMinChnTimeBtc; //in units of milliseconds
1085 tANI_U32 nActiveMaxChnTimeBtc; //in units of milliseconds
Kiran Kumar Lokere458d7322013-05-29 14:29:43 -07001086 tANI_U32 disableAggWithBtc;
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -07001087#ifdef WLAN_AP_STA_CONCURRENCY
1088 tANI_U32 nPassiveMinChnTimeConc; //in units of milliseconds
1089 tANI_U32 nPassiveMaxChnTimeConc; //in units of milliseconds
1090 tANI_U32 nActiveMinChnTimeConc; //in units of milliseconds
1091 tANI_U32 nActiveMaxChnTimeConc; //in units of milliseconds
1092 tANI_U32 nRestTimeConc; //in units of milliseconds
Sudhir Sattayappa Kohallieb97d502013-05-22 23:16:42 -07001093 tANI_U8 nNumStaChanCombinedConc; //number of channels combined for
1094 //STA in each split scan operation
1095 tANI_U8 nNumP2PChanCombinedConc; //number of channels combined for
1096 //P2P in each split scan operation
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -07001097#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001098
1099 tANI_BOOLEAN IsIdleScanEnabled;
1100 //in dBm, the maximum TX power
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001101 //The actual TX power is the lesser of this value and 11d.
Jeff Johnson295189b2012-06-20 16:38:30 -07001102 //If 11d is disable, the lesser of this and default setting.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001103 tANI_U8 nTxPowerCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07001104 tANI_U32 statsReqPeriodicity; //stats request frequency from PE while in full power
1105 tANI_U32 statsReqPeriodicityInPS;//stats request frequency from PE while in power save
1106#ifdef WLAN_FEATURE_VOWIFI_11R
1107 tCsr11rConfigParams csr11rConfig;
1108#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001109#ifdef FEATURE_WLAN_ESE
1110 tANI_U8 isEseIniFeatureEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07001111#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001112#ifdef FEATURE_WLAN_LFR
1113 tANI_U8 isFastRoamIniFeatureEnabled;
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -08001114 tANI_U8 MAWCEnabled;
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001115#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001116
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001117#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Srinivas Girigowda100eb322013-03-15 16:48:20 -07001118 tANI_U8 isFastTransitionEnabled;
1119 tANI_U8 RoamRssiDiff;
1120 tANI_U8 nImmediateRoamRssiDiff;
Srinivas Girigowdaad34ca92013-10-22 10:54:29 -07001121 tANI_BOOLEAN isWESModeEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07001122#endif
1123
1124#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
1125 tCsrNeighborRoamConfigParams neighborRoamConfig;
1126#endif
1127
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001128 /* Instead of Reassoc, send ADDTS/DELTS even when ACM is off for that AC
Jeff Johnson295189b2012-06-20 16:38:30 -07001129 * This is mandated by WMM-AC certification */
1130 tANI_BOOLEAN addTSWhenACMIsOff;
1131
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001132
1133 /*channelPowerInfoList24 has been seen corrupted. Set this flag to true trying to
Jeff Johnson295189b2012-06-20 16:38:30 -07001134 * detect when it happens. Adding this into code because we can't reproduce it easily.
1135 * We don't know when it happens. */
1136 tANI_BOOLEAN fValidateList;
1137
1138 /*Customer wants to start with an active scan based on the default country code.
1139 * This optimization will minimize the driver load to association time.
1140 * Based on this flag we will bypass the initial passive scan needed for 11d
1141 * to determine the country code & domain */
1142 tANI_BOOLEAN fEnableBypass11d;
1143
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001144 /*Customer wants to optimize the scan time. Avoiding scans(passive) on DFS
1145 * channels while swipping through both bands can save some time
Jeff Johnson295189b2012-06-20 16:38:30 -07001146 * (apprx 1.3 sec) */
Padma, Santhosh Kumar814d0992015-05-05 18:52:43 +05301147 tANI_U8 fEnableDFSChnlScan;
Jeff Johnson295189b2012-06-20 16:38:30 -07001148
1149 //To enable/disable scanning 2.4Ghz channels twice on a single scan request from HDD
1150 tANI_BOOLEAN fScanTwice;
Jeff Johnsone7245742012-09-05 17:12:55 -07001151#ifdef WLAN_FEATURE_11AC
Ravi Joshi83bfaa12013-05-28 22:12:08 -07001152 tANI_U32 nVhtChannelWidth;
1153 tANI_U8 enableTxBF;
1154 tANI_U8 txBFCsnValue;
1155 tANI_BOOLEAN enableVhtFor24GHz;
Abhishek Singh6d5d29c2014-07-03 14:25:22 +05301156 tANI_U8 enableMuBformee;
Jeff Johnsone7245742012-09-05 17:12:55 -07001157#endif
1158
1159 /*
1160 * To enable/disable scanning only 2.4Ghz channels on first scan
1161 */
1162 tANI_BOOLEAN fFirstScanOnly2GChnl;
Jeff Johnson295189b2012-06-20 16:38:30 -07001163
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001164#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08001165 tANI_BOOLEAN nRoamPrefer5GHz;
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07001166 tANI_BOOLEAN nRoamIntraBand;
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07001167 tANI_U8 nProbes;
1168 tANI_U16 nRoamScanHomeAwayTime;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001169
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001170#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
1171 tANI_BOOLEAN isRoamOffloadScanEnabled;
Srinivas Girigowda830bbd02013-06-13 19:44:16 -07001172 tANI_BOOLEAN bFastRoamInConIniFeatureEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001173#endif
Srinivas Girigowda830bbd02013-06-13 19:44:16 -07001174#endif
1175
Abhishek Singhc98534e2015-06-12 10:44:34 +05301176 tANI_BOOLEAN ignorePeerErpInfo;
Sandeep Puligilla2b6dc632012-12-17 14:44:16 -08001177 tANI_U8 scanCfgAgingTime;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001178
1179 tANI_U8 enableTxLdpc;
krunal soni4f087d22013-07-29 16:32:26 -07001180
krunal soni5afa96c2013-09-06 22:19:02 -07001181 tANI_U8 isAmsduSupportInAMPDU;
Srinivas Girigowda41c7c5f2013-10-21 19:01:38 -07001182 tANI_U8 nSelect5GHzMargin;
krunal soni5afa96c2013-09-06 22:19:02 -07001183
krunal sonie9002db2013-11-25 14:24:17 -08001184 tANI_U8 isCoalesingInIBSSAllowed;
Sandeep Puligillac80f26e2014-03-11 18:36:10 +05301185 tANI_U8 allowDFSChannelRoam;
c_hpothu0d5a7352014-03-22 12:30:25 +05301186 tANI_BOOLEAN initialScanSkipDFSCh;
Abhishek Singhde51a412014-05-20 19:17:26 +05301187 tANI_BOOLEAN sendDeauthBeforeCon;
Peng Xu2446a892014-09-05 17:21:18 +05301188
1189 eCsrBand scanBandPreference;
Hardik Kantilal Pateldd107952014-11-20 15:24:52 +05301190#ifdef WLAN_FEATURE_AP_HT40_24G
1191 tANI_BOOLEAN apHT40_24GEnabled;
1192 tANI_U32 channelBondingAPMode24GHz; // Use for SAP/P2P GO 2.4GHz channel Bonding
1193#endif
Sushant Kaushikc9682be2014-11-26 12:27:04 +05301194 tANI_U32 nOBSSScanWidthTriggerInterval;
Girish Gowli1c2fc802015-01-19 16:18:07 +05301195 tANI_U8 roamDelayStatsEnabled;
Sushant Kaushikae17dd62015-08-27 17:07:04 +05301196 tANI_BOOLEAN ignorePeerHTopMode;
Abhishek Singh795e1b82015-09-25 15:35:03 +05301197 tANI_BOOLEAN disableP2PMacSpoofing;
Abhishek Singh837adf22015-10-01 17:37:37 +05301198 tANI_BOOLEAN enableFatalEvent;
Gupta, Kapil01be56b2015-12-30 20:36:33 +05301199 tANI_U8 max_chan_for_dwell_time_cfg;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001200}tCsrConfigParam;
Jeff Johnson295189b2012-06-20 16:38:30 -07001201
1202//Tush
1203typedef struct tagCsrUpdateConfigParam
1204{
1205 tCsr11dinfo Csr11dinfo;
1206}tCsrUpdateConfigParam;
1207
1208typedef struct tagCsrRoamInfo
1209{
1210 tCsrRoamProfile *pProfile; //may be NULL
1211 tSirBssDescription *pBssDesc; //May be NULL
1212 tANI_U32 nBeaconLength; //the length, in bytes, of the beacon frame, can be 0
1213 tANI_U32 nAssocReqLength; //the length, in bytes, of the assoc req frame, can be 0
1214 tANI_U32 nAssocRspLength; //The length, in bytes, of the assoc rsp frame, can be 0
1215 tANI_U32 nFrameLength;
1216 tANI_U8 frameType;
1217 tANI_U8 *pbFrames; //Point to a buffer contain the beacon, assoc req, assoc rsp frame, in that order
1218 //user needs to use nBeaconLength, nAssocReqLength, nAssocRspLength to desice where
1219 //each frame starts and ends.
1220 tANI_BOOLEAN fReassocReq; //set to true if for re-association
1221 tANI_BOOLEAN fReassocRsp; //set to true if for re-association
1222 tCsrBssid bssid;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001223 //Only valid in IBSS
Jeff Johnson295189b2012-06-20 16:38:30 -07001224 //this is the peers MAC address for eCSR_ROAM_RESULT_IBSS_NEW_PEER or PEER_DEPARTED
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001225 tCsrBssid peerMac;
Jeff Johnson295189b2012-06-20 16:38:30 -07001226 tSirResultCodes statusCode;
1227 tANI_U32 reasonCode; //this could be our own defined or sent from the other BSS(per 802.11 spec)
1228 tANI_U8 staId; // Peer stationId when connected
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001229 /*The DPU signatures will be sent eventually to TL to help it determine the
Jeff Johnson295189b2012-06-20 16:38:30 -07001230 association to which a packet belongs to*/
1231 /*Unicast DPU signature*/
1232 tANI_U8 ucastSig;
1233
1234 /*Broadcast DPU signature*/
1235 tANI_U8 bcastSig;
1236
1237 tANI_BOOLEAN fAuthRequired; //FALSE means auth needed from supplicant. TRUE means authenticated(static WEP, open)
1238 tANI_U8 sessionId;
1239 tANI_U8 rsnIELen;
1240 tANI_U8 *prsnIE;
1241
1242 tANI_U8 addIELen;
1243 tANI_U8 *paddIE;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001244
Jeff Johnson295189b2012-06-20 16:38:30 -07001245 union
1246 {
1247 tSirMicFailureInfo *pMICFailureInfo;
1248 tCsrRoamConnectedProfile *pConnectedProfile;
Jeff Johnson295189b2012-06-20 16:38:30 -07001249 tSirWPSPBCProbeReq *pWPSPBCProbeReq;
Sachin Ahuja3d47fcd2015-08-28 16:02:06 +05301250 tSirLostLinkParamsInfo *pLostLinkParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001251 } u;
1252
Jeff Johnson295189b2012-06-20 16:38:30 -07001253 tANI_BOOLEAN wmmEnabledSta; //set to true if WMM enabled STA
Hardik Kantilal Patel1ba630f2014-11-21 04:32:05 +05301254#ifdef WLAN_FEATURE_AP_HT40_24G
1255 tANI_BOOLEAN HT40MHzIntoEnabledSta; //set to true if 40 MHz Intolerant enabled STA
1256#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001257 tANI_U32 dtimPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07001258
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001259#ifdef FEATURE_WLAN_ESE
1260 tANI_BOOLEAN isESEAssoc;
1261#ifdef FEATURE_WLAN_ESE_UPLOAD
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001262 tSirTsmIE tsmIe;
1263 tANI_U32 timestamp[2];
1264 tANI_U16 tsmRoamDelay;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001265 tSirEseBcnReportRsp *pEseBcnReportRsp;
1266#endif /* FEATURE_WLAN_ESE_UPLOAD */
Jeff Johnson295189b2012-06-20 16:38:30 -07001267#endif
Mukul Sharma9ca96b22014-11-15 19:40:04 +05301268
1269#ifdef WLAN_FEATURE_VOWIFI_11R
1270 tANI_BOOLEAN is11rAssoc;
1271#endif
1272
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001273 void* pRemainCtx;
Jeff Johnson295189b2012-06-20 16:38:30 -07001274 tANI_U32 rxChan;
Jeff Johnson295189b2012-06-20 16:38:30 -07001275
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001276#ifdef FEATURE_WLAN_TDLS
1277 tANI_U8 staType;
1278#endif
1279
Jeff Johnson295189b2012-06-20 16:38:30 -07001280 // Required for indicating the frames to upper layer
1281 tANI_U32 beaconLength;
1282 tANI_U8* beaconPtr;
1283 tANI_U32 assocReqLength;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001284 tANI_U8* assocReqPtr;
Chilam NG571c65a2013-01-19 12:27:36 +05301285
1286 tANI_S8 rxRssi;
c_hpothu44ff4e02014-05-08 00:13:57 +05301287 tANI_U32 maxRateFlags;
Hardik Kantilal Patel81f76342014-11-14 12:45:26 -08001288#ifdef WLAN_FEATURE_AP_HT40_24G
1289 tpSirHT2040CoexInfoInd pSmeHT2040CoexInfoInd;
1290#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001291}tCsrRoamInfo;
1292
Jeff Johnson295189b2012-06-20 16:38:30 -07001293typedef struct tagCsrFreqScanInfo
1294{
1295 tANI_U32 nStartFreq; //in unit of MHz
1296 tANI_U32 nEndFreq; //in unit of MHz
1297 tSirScanType scanType;
1298}tCsrFreqScanInfo;
1299
1300
Jeff Johnson295189b2012-06-20 16:38:30 -07001301typedef struct sSirSmeAssocIndToUpperLayerCnf
1302{
1303 tANI_U16 messageType; // eWNI_SME_ASSOC_CNF
1304 tANI_U16 length;
1305 tANI_U8 sessionId;
1306 tSirResultCodes statusCode;
1307 tSirMacAddr bssId; // Self BSSID
1308 tSirMacAddr peerMacAddr;
1309 tANI_U16 aid;
1310 tSirMacAddr alternateBssId;
1311 tANI_U8 alternateChannelId;
1312 tANI_U8 wmmEnabledSta; //set to true if WMM enabled STA
1313 tSirRSNie rsnIE; // RSN IE received from peer
1314 tSirAddie addIE; // Additional IE received from peer, which can be WSC and/or P2P IE
1315 tANI_U8 reassocReq; //set to true if reassoc
Hardik Kantilal Patel1ba630f2014-11-21 04:32:05 +05301316#ifdef WLAN_FEATURE_AP_HT40_24G
1317 tANI_U8 HT40MHzIntoEnabledSta; //set to true if 40 MHz Intolerant enabled STA
1318#endif
Deepthi Gowriae6a1662015-10-12 12:59:37 +05301319 uint32_t rate_flags;
Jeff Johnson295189b2012-06-20 16:38:30 -07001320} tSirSmeAssocIndToUpperLayerCnf, *tpSirSmeAssocIndToUpperLayerCnf;
Jeff Johnson295189b2012-06-20 16:38:30 -07001321
1322typedef struct tagCsrSummaryStatsInfo
1323{
1324 tANI_U32 retry_cnt[4];
1325 tANI_U32 multiple_retry_cnt[4];
1326 tANI_U32 tx_frm_cnt[4];
1327 //tANI_U32 num_rx_frm_crc_err; same as rx_error_cnt
1328 //tANI_U32 num_rx_frm_crc_ok; same as rx_frm_cnt
1329 tANI_U32 rx_frm_cnt;
1330 tANI_U32 frm_dup_cnt;
1331 tANI_U32 fail_cnt[4];
1332 tANI_U32 rts_fail_cnt;
1333 tANI_U32 ack_fail_cnt;
1334 tANI_U32 rts_succ_cnt;
1335 tANI_U32 rx_discard_cnt;
1336 tANI_U32 rx_error_cnt;
1337 tANI_U32 tx_byte_cnt;
1338
1339}tCsrSummaryStatsInfo;
1340
1341typedef struct tagCsrGlobalClassAStatsInfo
1342{
1343 tANI_U32 rx_frag_cnt;
1344 tANI_U32 promiscuous_rx_frag_cnt;
1345 //tANI_U32 rx_fcs_err;
1346 tANI_U32 rx_input_sensitivity;
1347 tANI_U32 max_pwr;
1348 //tANI_U32 default_pwr;
1349 tANI_U32 sync_fail_cnt;
1350 tANI_U32 tx_rate;
1351 //mcs index for HT20 and HT40 rates
1352 tANI_U32 mcs_index;
1353 //to defferentiate between HT20 and HT40 rates;short and long guard interval
1354 tANI_U32 tx_rate_flags;
1355
1356}tCsrGlobalClassAStatsInfo;
1357
1358typedef struct tagCsrGlobalClassBStatsInfo
1359{
1360 tANI_U32 uc_rx_wep_unencrypted_frm_cnt;
1361 tANI_U32 uc_rx_mic_fail_cnt;
1362 tANI_U32 uc_tkip_icv_err;
1363 tANI_U32 uc_aes_ccmp_format_err;
1364 tANI_U32 uc_aes_ccmp_replay_cnt;
1365 tANI_U32 uc_aes_ccmp_decrpt_err;
1366 tANI_U32 uc_wep_undecryptable_cnt;
1367 tANI_U32 uc_wep_icv_err;
1368 tANI_U32 uc_rx_decrypt_succ_cnt;
1369 tANI_U32 uc_rx_decrypt_fail_cnt;
1370 tANI_U32 mcbc_rx_wep_unencrypted_frm_cnt;
1371 tANI_U32 mcbc_rx_mic_fail_cnt;
1372 tANI_U32 mcbc_tkip_icv_err;
1373 tANI_U32 mcbc_aes_ccmp_format_err;
1374 tANI_U32 mcbc_aes_ccmp_replay_cnt;
1375 tANI_U32 mcbc_aes_ccmp_decrpt_err;
1376 tANI_U32 mcbc_wep_undecryptable_cnt;
1377 tANI_U32 mcbc_wep_icv_err;
1378 tANI_U32 mcbc_rx_decrypt_succ_cnt;
1379 tANI_U32 mcbc_rx_decrypt_fail_cnt;
1380
1381}tCsrGlobalClassBStatsInfo;
1382
1383typedef struct tagCsrGlobalClassCStatsInfo
1384{
1385 tANI_U32 rx_amsdu_cnt;
1386 tANI_U32 rx_ampdu_cnt;
1387 tANI_U32 tx_20_frm_cnt;
1388 tANI_U32 rx_20_frm_cnt;
1389 tANI_U32 rx_mpdu_in_ampdu_cnt;
1390 tANI_U32 ampdu_delimiter_crc_err;
1391
1392}tCsrGlobalClassCStatsInfo;
1393
1394typedef struct tagCsrGlobalClassDStatsInfo
1395{
1396 tANI_U32 tx_uc_frm_cnt;
1397 tANI_U32 tx_mc_frm_cnt;
1398 tANI_U32 tx_bc_frm_cnt;
1399 tANI_U32 rx_uc_frm_cnt;
1400 tANI_U32 rx_mc_frm_cnt;
1401 tANI_U32 rx_bc_frm_cnt;
1402 tANI_U32 tx_uc_byte_cnt[4];
1403 tANI_U32 tx_mc_byte_cnt;
1404 tANI_U32 tx_bc_byte_cnt;
1405 tANI_U32 rx_uc_byte_cnt[4];
1406 tANI_U32 rx_mc_byte_cnt;
1407 tANI_U32 rx_bc_byte_cnt;
1408 tANI_U32 rx_byte_cnt;
1409 tANI_U32 num_rx_bytes_crc_ok;
1410 tANI_U32 rx_rate;
1411
1412}tCsrGlobalClassDStatsInfo;
1413
1414typedef struct tagCsrPerStaStatsInfo
1415{
1416 tANI_U32 tx_frag_cnt[4];
1417 tANI_U32 tx_ampdu_cnt;
1418 tANI_U32 tx_mpdu_in_ampdu_cnt;
1419} tCsrPerStaStatsInfo;
1420
1421typedef struct tagCsrRoamSetKey
1422{
1423 eCsrEncryptionType encType;
1424 tAniKeyDirection keyDirection; //Tx, Rx or Tx-and-Rx
1425 tCsrBssid peerMac; //Peers MAC address. ALL 1's for group key
1426 tANI_U8 paeRole; //0 for supplicant
1427 tANI_U8 keyId; // Kye index
1428 tANI_U16 keyLength; //Number of bytes containing the key in pKey
1429 tANI_U8 Key[CSR_MAX_KEY_LEN];
1430 tANI_U8 keyRsc[CSR_MAX_RSC_LEN];
1431} tCsrRoamSetKey;
1432
1433typedef struct tagCsrRoamRemoveKey
1434{
1435 eCsrEncryptionType encType;
1436 tCsrBssid peerMac; //Peers MAC address. ALL 1's for group key
1437 tANI_U8 keyId; //key index
1438} tCsrRoamRemoveKey;
1439
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001440#ifdef FEATURE_WLAN_TDLS
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301441
1442typedef struct tagCsrLinkEstablishParams
1443{
1444 tSirMacAddr peerMac;
1445 tANI_U8 uapsdQueues;
Agarwal Ashish16020c42014-12-29 22:01:11 +05301446 tANI_U8 qos;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301447 tANI_U8 maxSp;
1448 tANI_U8 isBufSta;
Naresh Jayaramdff88f92014-02-12 21:44:29 +05301449 tANI_U8 isOffChannelSupported;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301450 tANI_U8 isResponder;
Naresh Jayaramdff88f92014-02-12 21:44:29 +05301451 tANI_U8 supportedChannelsLen;
1452 tANI_U8 supportedChannels[SIR_MAC_MAX_SUPP_CHANNELS];
1453 tANI_U8 supportedOperClassesLen;
1454 tANI_U8 supportedOperClasses[SIR_MAC_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301455}tCsrTdlsLinkEstablishParams;
1456
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001457typedef struct tagCsrTdlsSendMgmt
1458{
1459 tSirMacAddr peerMac;
1460 tANI_U8 frameType;
1461 tANI_U8 dialog;
1462 tANI_U16 statusCode;
Hoonki Leea34dd892013-02-05 22:56:02 -08001463 tANI_U8 responder;
Pradeep Reddy POTTETIca171f82014-03-21 14:17:35 +05301464 tANI_U32 peerCapability;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001465 tANI_U8 *buf;
1466 tANI_U8 len;
1467
1468}tCsrTdlsSendMgmt;
1469
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001470#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001471
1472typedef void * tScanResultHandle;
1473
1474#define CSR_INVALID_SCANRESULT_HANDLE (NULL)
1475
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07001476#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
1477typedef struct tagCsrHandoffRequest
1478{
1479 tCsrBssid bssid;
1480 tANI_U8 channel;
1481}tCsrHandoffRequest;
1482#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001483
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001484#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
1485typedef struct tagCsrEseBeaconReqParams
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001486{
1487 tANI_U16 measurementToken;
1488 tANI_U8 channel;
1489 tANI_U8 scanMode;
1490 tANI_U16 measurementDuration;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001491} tCsrEseBeaconReqParams, *tpCsrEseBeaconReqParams;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001492
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001493typedef struct tagCsrEseBeaconReq
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001494{
1495 tANI_U8 numBcnReqIe;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001496 tCsrEseBeaconReqParams bcnReq[SIR_ESE_MAX_MEAS_IE_REQS];
1497} tCsrEseBeaconReq, *tpCsrEseBeaconReq;
1498#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Jeff Johnson295189b2012-06-20 16:38:30 -07001499
Hanumantha Reddy Pothulaf57da152014-10-31 13:02:08 +05301500struct tagCsrDelStaParams
1501{
1502 tCsrBssid peerMacAddr;
1503 u16 reason_code;
1504 u8 subtype;
1505};
1506
Jeff Johnson295189b2012-06-20 16:38:30 -07001507////////////////////////////////////////////Common SCAN starts
1508
1509//void *p2 -- the second context pass in for the caller
1510//***what if callback is called before requester gets the scanId??
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001511typedef eHalStatus (*csrScanCompleteCallback)(tHalHandle, void *p2, tANI_U32 scanID, eCsrScanStatus status);
Jeff Johnson295189b2012-06-20 16:38:30 -07001512
1513
1514
1515///////////////////////////////////////////Common Roam starts
1516
1517//pContext is the pContext passed in with the roam request
1518//pParam is a pointer to a tCsrRoamInfo, see definition of eRoamCmdStatus and
1519// eRoamCmdResult for detail valid members. It may be NULL
1520//roamId is to identify the callback related roam request. 0 means unsolicit
1521//roamStatus is a flag indicating the status of the callback
1522//roamResult is the result
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001523typedef eHalStatus (*csrRoamCompleteCallback)(void *pContext, tCsrRoamInfo *pParam, tANI_U32 roamId,
Jeff Johnson295189b2012-06-20 16:38:30 -07001524 eRoamCmdStatus roamStatus, eCsrRoamResult roamResult);
1525
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001526typedef eHalStatus (*csrRoamSessionCloseCallback)(void *pContext);
Jeff Johnson295189b2012-06-20 16:38:30 -07001527
1528/* ---------------------------------------------------------------------------
1529 \fn csrRoamGetNumPMKIDCache
1530 \brief return number of PMKID cache entries
1531 \return tANI_U32 - the number of PMKID cache entries
1532 -------------------------------------------------------------------------------*/
1533//tANI_U32 csrRoamGetNumPMKIDCache(tHalHandle hHal);
1534
1535/* ---------------------------------------------------------------------------
1536 \fn csrRoamGetPMKIDCache
1537 \brief return PMKID cache from CSR
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001538 \param pNum - caller allocated memory that has the space of the number of pBuf tPmkidCacheInfo as input. Upon returned, *pNum has the
Jeff Johnson295189b2012-06-20 16:38:30 -07001539 needed or actually number in tPmkidCacheInfo.
1540 \param pPmkidCache - Caller allocated memory that contains PMKID cache, if any, upon return
1541 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
1542 -------------------------------------------------------------------------------*/
1543//eHalStatus csrRoamGetPMKIDCache(tHalHandle hHal, tANI_U32 *pNum, tPmkidCacheInfo *pPmkidCache);
1544
1545//pProfile - pointer to tCsrRoamProfile
1546#define CSR_IS_START_IBSS(pProfile) (eCSR_BSS_TYPE_START_IBSS == (pProfile)->BSSType)
1547#define CSR_IS_JOIN_TO_IBSS(pProfile) (eCSR_BSS_TYPE_IBSS == (pProfile)->BSSType)
1548#define CSR_IS_IBSS(pProfile) ( CSR_IS_START_IBSS(pProfile) || CSR_IS_JOIN_TO_IBSS(pProfile) )
1549#define CSR_IS_INFRASTRUCTURE(pProfile) (eCSR_BSS_TYPE_INFRASTRUCTURE == (pProfile)->BSSType)
1550#define CSR_IS_ANY_BSS_TYPE(pProfile) (eCSR_BSS_TYPE_ANY == (pProfile)->BSSType)
1551#define CSR_IS_WDS_AP( pProfile ) ( eCSR_BSS_TYPE_WDS_AP == (pProfile)->BSSType )
1552#define CSR_IS_WDS_STA( pProfile ) ( eCSR_BSS_TYPE_WDS_STA == (pProfile)->BSSType )
1553#define CSR_IS_WDS( pProfile ) ( CSR_IS_WDS_AP( pProfile ) || CSR_IS_WDS_STA( pProfile ) )
Jeff Johnson295189b2012-06-20 16:38:30 -07001554#define CSR_IS_INFRA_AP( pProfile ) ( eCSR_BSS_TYPE_INFRA_AP == (pProfile)->BSSType )
Jeff Johnson295189b2012-06-20 16:38:30 -07001555
1556//pProfile - pointer to tCsrRoamConnectedProfile
Jeff Johnson295189b2012-06-20 16:38:30 -07001557#define CSR_IS_CONN_INFRA_AP( pProfile ) ( eCSR_BSS_TYPE_INFRA_AP == (pProfile)->BSSType )
Jeff Johnson295189b2012-06-20 16:38:30 -07001558#define CSR_IS_CONN_WDS_AP( pProfile ) ( eCSR_BSS_TYPE_WDS_AP == (pProfile)->BSSType )
1559#define CSR_IS_CONN_WDS_STA( pProfile ) ( eCSR_BSS_TYPE_WDS_STA == (pProfile)->BSSType )
1560#define CSR_IS_CONN_WDS( pProfile ) ( CSR_IS_WDS_AP( pProfile ) || CSR_IS_WDS_STA( pProfile ) )
1561
1562
1563
1564///////////////////////////////////////////Common Roam ends
1565
1566
Jeff Johnson295189b2012-06-20 16:38:30 -07001567/* ---------------------------------------------------------------------------
1568 \fn csrSetChannels
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001569 \brief HDD calls this function to change some global settings.
Jeff Johnson295189b2012-06-20 16:38:30 -07001570 caller must set the all fields or call csrGetConfigParam to prefill the fields.
1571 \param pParam - caller allocated memory
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001572 \return eHalStatus
Jeff Johnson295189b2012-06-20 16:38:30 -07001573 -------------------------------------------------------------------------------*/
1574
1575eHalStatus csrSetChannels(tHalHandle hHal, tCsrConfigParam *pParam );
1576
1577eHalStatus csrSetRegInfo(tHalHandle hHal, tANI_U8 *apCntryCode);
Jeff Johnson295189b2012-06-20 16:38:30 -07001578
1579
1580//enum to string conversion for debug output
1581const char * get_eRoamCmdStatus_str(eRoamCmdStatus val);
1582const char * get_eCsrRoamResult_str(eCsrRoamResult val);
1583/* ---------------------------------------------------------------------------
1584 \fn csrSetPhyMode
1585 \brief HDD calls this function to set the phyMode.
1586 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1587 CSR.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001588 \param phyMode - indicate the phyMode needs to set to. The value has to be either 0, or some bits set.
Jeff Johnson295189b2012-06-20 16:38:30 -07001589 See eCsrPhyMode for definition
1590 \param eBand - specify the operational band (2.4, 5 or both)
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001591 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
Jeff Johnson295189b2012-06-20 16:38:30 -07001592 a restart is needed to apply the change
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001593 \return eHalStatus
Jeff Johnson295189b2012-06-20 16:38:30 -07001594 -------------------------------------------------------------------------------*/
1595eHalStatus csrSetPhyMode(tHalHandle hHal, tANI_U32 phyMode, eCsrBand eBand, tANI_BOOLEAN *pfRestartNeeded);
1596
1597void csrDumpInit(tHalHandle hHal);
1598
1599
1600/*---------------------------------------------------------------------------
1601 This is the type for a link quality callback to be registered with SME
1602 for indications
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001603 Once the link quality has been indicated, subsequently, link indications are
Jeff Johnson295189b2012-06-20 16:38:30 -07001604 posted each time there is a CHANGE in link quality.
1605 *** If there is no change in link, there will be no indication ***
1606
1607 The indications may be based on one or more criteria internal to SME
1608 such as RSSI and PER.
1609
1610 \param ind - Indication being posted
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001611 \param pContext - any user data given at callback registration.
Jeff Johnson295189b2012-06-20 16:38:30 -07001612 \return None
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001613
Jeff Johnson295189b2012-06-20 16:38:30 -07001614---------------------------------------------------------------------------*/
1615typedef void (* csrRoamLinkQualityIndCallback)
1616 (eCsrRoamLinkQualityInd ind, void *pContext);
1617
1618
1619/*---------------------------------------------------------------------------
1620 This is the type for a statistics callback to be registered with SME
1621 for stats reporting
1622
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001623 Since the client requesting for the stats already know which class/type of
1624 stats it asked for, the callback will carry them in the rsp buffer
1625 (void * stats) whose size will be same as the size of requested stats &
Jeff Johnson295189b2012-06-20 16:38:30 -07001626 will be exactly in the same order requested in the stats mask from LSB to MSB
1627
1628 \param stats - stats rsp buffer sent back with the report
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001629 \param pContext - any user data given at callback registration.
Jeff Johnson295189b2012-06-20 16:38:30 -07001630 \return None
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001631
Jeff Johnson295189b2012-06-20 16:38:30 -07001632---------------------------------------------------------------------------*/
1633typedef void ( *tCsrStatsCallback) (void * stats, void *pContext);
1634
1635/*---------------------------------------------------------------------------
1636 This is the type for a rssi callback to be registered with SME
1637 for getting rssi
1638
1639 \param rssi - rssi
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001640 \param pContext - any user data given at callback registration.
Jeff Johnson295189b2012-06-20 16:38:30 -07001641 \return None
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001642
Jeff Johnson295189b2012-06-20 16:38:30 -07001643---------------------------------------------------------------------------*/
1644
1645typedef void ( *tCsrRssiCallback) (v_S7_t rssi, tANI_U32 staId, void *pContext);
1646
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001647
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001648#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001649/*---------------------------------------------------------------------------
1650 This is the type for a tsm stats callback to be registered with SME
1651 for getting tsm stats
1652
1653 \param tsmMetrics - tsmMetrics
1654 \param pContext - any user data given at callback registration.
1655 \return None
1656
1657---------------------------------------------------------------------------*/
1658
1659typedef void ( *tCsrTsmStatsCallback) (tAniTrafStrmMetrics tsmMetrics, tANI_U32 staId, void *pContext);
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001660#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001661
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05301662/*---------------------------------------------------------------------------
1663 This is the type for a snr callback to be registered with SME
1664 for getting snr
1665
1666 \param snr
1667 \param pContext - any user data given at callback registration.
1668 \return None
1669
1670---------------------------------------------------------------------------*/
1671typedef void (*tCsrSnrCallback) (v_S7_t snr, tANI_U32 staId, void *pContext);
1672
Mahesh A Saptasagarcfc65ae2015-12-22 15:06:10 +05301673/*---------------------------------------------------------------------------
1674 This is the type for a get current antenna callback to be registered with SME
1675 for getting cuurently used antenna index
1676
1677 \param antennaId to be filled by firmware.
1678 \param pContext - any user data given at callback registration.
1679 \return None
1680
1681---------------------------------------------------------------------------*/
1682typedef void ( *tCsrAntennaIndexCallback) (int antennaId, void *pContext);
1683
1684
Jeff Johnson295189b2012-06-20 16:38:30 -07001685#ifdef WLAN_FEATURE_VOWIFI_11R
1686eHalStatus csrRoamIssueFTPreauthReq(tHalHandle hHal, tANI_U32 sessionId, tpSirBssDescription pBssDescription);
1687#endif
1688
1689/*---------------------------------------------------------------------------
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001690 This is the function to change the Band configuraiton (ALL/2.4 GHZ/5 GHZ)
Jeff Johnson295189b2012-06-20 16:38:30 -07001691
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001692 \param hHal - handle to Hal context
Jeff Johnson295189b2012-06-20 16:38:30 -07001693 \param eBand - band value
1694 \return eHalStatus
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001695
Jeff Johnson295189b2012-06-20 16:38:30 -07001696---------------------------------------------------------------------------*/
1697eHalStatus csrSetBand(tHalHandle hHal, eCsrBand eBand);
1698
1699/*---------------------------------------------------------------------------
1700 This is the function to get the current operating band value
1701 \param hHal - handl to Hal context
1702 \return eCsrband - band value
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001703
Jeff Johnson295189b2012-06-20 16:38:30 -07001704---------------------------------------------------------------------------*/
1705eCsrBand csrGetCurrentBand (tHalHandle hHal);
1706
Agarwal Ashish6db9d532014-09-30 18:19:10 +05301707
Jeff Johnson295189b2012-06-20 16:38:30 -07001708#endif
1709