blob: c1ec650551c48a47c648f4bd57c7de930ab469e9 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Rajeev Kumar Sirasanagandla2bb30b82019-01-07 22:30:16 +05302 * Copyright (c) 2011-2019 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,
Abhinav Kumar4d44f632019-08-02 13:55:54 +053049 eCSR_AUTH_TYPE_SAE,
Jeff Johnson295189b2012-06-20 16:38:30 -070050 eCSR_AUTH_TYPE_AUTOSWITCH,
51
52 // Upper layer authentication types
53 eCSR_AUTH_TYPE_WPA,
54 eCSR_AUTH_TYPE_WPA_PSK,
55 eCSR_AUTH_TYPE_WPA_NONE,
56
57 eCSR_AUTH_TYPE_RSN,
58 eCSR_AUTH_TYPE_RSN_PSK,
59#if defined WLAN_FEATURE_VOWIFI_11R
60 eCSR_AUTH_TYPE_FT_RSN,
61 eCSR_AUTH_TYPE_FT_RSN_PSK,
62#endif
63#ifdef FEATURE_WLAN_WAPI
64 eCSR_AUTH_TYPE_WAPI_WAI_CERTIFICATE,
65 eCSR_AUTH_TYPE_WAPI_WAI_PSK,
66#endif /* FEATURE_WLAN_WAPI */
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080067#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -070068 eCSR_AUTH_TYPE_CCKM_WPA,
69 eCSR_AUTH_TYPE_CCKM_RSN,
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080070#endif /* FEATURE_WLAN_ESE */
Chet Lanctot186b5732013-03-18 10:26:30 -070071#ifdef WLAN_FEATURE_11W
72 eCSR_AUTH_TYPE_RSN_PSK_SHA256,
Abhishek Singhae408032014-09-25 17:22:04 +053073 eCSR_AUTH_TYPE_RSN_8021X_SHA256,
Chet Lanctot186b5732013-03-18 10:26:30 -070074#endif
Abhinav Kumar487e49e2019-07-22 14:46:18 +053075 eCSR_AUTH_TYPE_OWE,
Jeff Johnson295189b2012-06-20 16:38:30 -070076 eCSR_NUM_OF_SUPPORT_AUTH_TYPE,
77 eCSR_AUTH_TYPE_FAILED = 0xff,
78 eCSR_AUTH_TYPE_UNKNOWN = eCSR_AUTH_TYPE_FAILED,
79
80}eCsrAuthType;
81
82
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -080083typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -070084{
85 eCSR_ENCRYPT_TYPE_NONE,
86 eCSR_ENCRYPT_TYPE_WEP40_STATICKEY,
87 eCSR_ENCRYPT_TYPE_WEP104_STATICKEY,
88
89 eCSR_ENCRYPT_TYPE_WEP40,
90 eCSR_ENCRYPT_TYPE_WEP104,
91 eCSR_ENCRYPT_TYPE_TKIP,
92 eCSR_ENCRYPT_TYPE_AES,
93#ifdef FEATURE_WLAN_WAPI
94 eCSR_ENCRYPT_TYPE_WPI, //WAPI
95#endif /* FEATURE_WLAN_WAPI */
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080096#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -070097 eCSR_ENCRYPT_TYPE_KRK,
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080098#endif /* FEATURE_WLAN_ESE */
Jeff Johnson295189b2012-06-20 16:38:30 -070099#ifdef WLAN_FEATURE_11W
100 //11w BIP
101 eCSR_ENCRYPT_TYPE_AES_CMAC,
102#endif
103 eCSR_ENCRYPT_TYPE_ANY,
104 eCSR_NUM_OF_ENCRYPT_TYPE = eCSR_ENCRYPT_TYPE_ANY,
105
106 eCSR_ENCRYPT_TYPE_FAILED = 0xff,
107 eCSR_ENCRYPT_TYPE_UNKNOWN = eCSR_ENCRYPT_TYPE_FAILED,
108
109}eCsrEncryptionType;
110
111/*---------------------------------------------------------------------------
112 Enumeration of the various Security types
113---------------------------------------------------------------------------*/
114typedef enum
115{
116 eCSR_SECURITY_TYPE_WPA,
117 eCSR_SECURITY_TYPE_RSN,
118#ifdef FEATURE_WLAN_WAPI
119 eCSR_SECURITY_TYPE_WAPI,
120#endif /* FEATURE_WLAN_WAPI */
121 eCSR_SECURITY_TYPE_UNKNOWN,
122
123}eCsrSecurityType;
124
125typedef enum
126{
127 eCSR_DOT11_MODE_TAURUS = 0, //This mean everything because it covers all thing we support
128 eCSR_DOT11_MODE_abg = 0x0001, //11a/b/g only, no HT, no proprietary
129 eCSR_DOT11_MODE_11a = 0x0002,
130 eCSR_DOT11_MODE_11b = 0x0004,
131 eCSR_DOT11_MODE_11g = 0x0008,
132 eCSR_DOT11_MODE_11n = 0x0010,
133 eCSR_DOT11_MODE_POLARIS = 0x0020,
134 eCSR_DOT11_MODE_TITAN = 0x0040,
135 eCSR_DOT11_MODE_11g_ONLY = 0x0080,
136 eCSR_DOT11_MODE_11n_ONLY = 0x0100,
137 eCSR_DOT11_MODE_TAURUS_ONLY = 0x0200,
138 eCSR_DOT11_MODE_11b_ONLY = 0x0400,
139 eCSR_DOT11_MODE_11a_ONLY = 0x0800,
Jeff Johnsone7245742012-09-05 17:12:55 -0700140#ifdef WLAN_FEATURE_11AC
141 eCSR_DOT11_MODE_11ac = 0x1000,
142 eCSR_DOT11_MODE_11ac_ONLY = 0x2000,
143#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700144 //This is for WIFI test. It is same as eWNIAPI_MAC_PROTOCOL_ALL except when it starts IBSS in 11B of 2.4GHz
145 //It is for CSR internal use
Jeff Johnsone7245742012-09-05 17:12:55 -0700146 eCSR_DOT11_MODE_AUTO = 0x4000,
Jeff Johnson295189b2012-06-20 16:38:30 -0700147
148 eCSR_NUM_PHY_MODE = 16, //specify the number of maximum bits for phyMode
149}eCsrPhyMode;
150
151
152typedef tANI_U8 tCsrBssid[WNI_CFG_BSSID_LEN];
153
154typedef enum
155{
Varun Reddy Yeturu2cc78922013-04-10 11:50:02 -0700156 eCSR_BSS_TYPE_NONE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700157 eCSR_BSS_TYPE_INFRASTRUCTURE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700158 eCSR_BSS_TYPE_INFRA_AP, // SoftAP AP
Jeff Johnson295189b2012-06-20 16:38:30 -0700159 eCSR_BSS_TYPE_IBSS, // an IBSS network we will NOT start
160 eCSR_BSS_TYPE_START_IBSS, // an IBSS network we will start if no partners detected.
161 eCSR_BSS_TYPE_WDS_AP, // BT-AMP AP
162 eCSR_BSS_TYPE_WDS_STA, // BT-AMP station
163 eCSR_BSS_TYPE_ANY, // any BSS type (IBSS or Infrastructure).
164}eCsrRoamBssType;
165
166
167
168typedef enum {
169 eCSR_SCAN_REQUEST_11D_SCAN = 1,
170 eCSR_SCAN_REQUEST_FULL_SCAN,
171 eCSR_SCAN_IDLE_MODE_SCAN,
172 eCSR_SCAN_HO_BG_SCAN, // bg scan request in NRT & RT Handoff sub-states
173 eCSR_SCAN_HO_PROBE_SCAN, // directed probe on an entry from the candidate list
174 eCSR_SCAN_HO_NT_BG_SCAN, // bg scan request in NT sub-state
175 eCSR_SCAN_P2P_DISCOVERY,
176
177 eCSR_SCAN_SOFTAP_CHANNEL_RANGE,
178 eCSR_SCAN_P2P_FIND_PEER,
179}eCsrRequestType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700180typedef enum {
181 eCSR_SCAN_RESULT_GET = 0,
182 eCSR_SCAN_RESULT_FLUSH = 1, //to delete all cached scan results
183}eCsrScanResultCmd;
184
185typedef enum
186{
187 eCSR_SCAN_SUCCESS,
188 eCSR_SCAN_FAILURE,
189 eCSR_SCAN_ABORT,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800190 eCSR_SCAN_FOUND_PEER,
Jeff Johnson295189b2012-06-20 16:38:30 -0700191}eCsrScanStatus;
192
Srinivas, Dasari138af4f2014-02-07 11:13:45 +0530193/* Reason to abort the scan
194 * The reason can used later to decide whether to update the scan results
195 * to upper layer or not
196 */
197typedef enum
198{
Ratheesh S Pece1f832015-07-25 15:50:25 +0530199 eCSR_SCAN_ABORT_DEFAULT = 1,
Srinivas, Dasari138af4f2014-02-07 11:13:45 +0530200 eCSR_SCAN_ABORT_DUE_TO_BAND_CHANGE, //Scan aborted due to band change
201}eCsrAbortReason;
202
Hardik Kantilal Pateldd107952014-11-20 15:24:52 +0530203typedef enum
204{
205 eCSR_INI_SINGLE_CHANNEL_CENTERED = 0,
206 eCSR_INI_DOUBLE_CHANNEL_HIGH_PRIMARY,
207 eCSR_INI_DOUBLE_CHANNEL_LOW_PRIMARY,
208#ifdef WLAN_FEATURE_11AC
209 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED,
210 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED,
211 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED,
212 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW,
213 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW,
214 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH,
215 eCSR_INI_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH,
216#endif
217 eCSR_INI_CHANNEL_BONDING_STATE_MAX
218}eIniChanBondState;
219
Jeff Johnson295189b2012-06-20 16:38:30 -0700220#define CSR_SCAN_TIME_DEFAULT 0
221#define CSR_VALUE_IGNORED 0xFFFFFFFF
222#define CSR_RSN_PMKID_SIZE 16
Abhinav Kumar8c122592019-08-07 15:43:20 +0530223#define CSR_RSN_MAX_PMK_LEN 48
Kanchanapally, Vidyullatha2633ace2014-09-25 15:16:50 +0530224#define CSR_MAX_PMKID_ALLOWED 32
Jeff Johnson295189b2012-06-20 16:38:30 -0700225#define CSR_WEP40_KEY_LEN 5
226#define CSR_WEP104_KEY_LEN 13
227#define CSR_TKIP_KEY_LEN 32
228#define CSR_AES_KEY_LEN 16
229#define CSR_MAX_TX_POWER ( WNI_CFG_CURRENT_TX_POWER_LEVEL_STAMAX )
230#define CSR_MAX_RSC_LEN 16
231#ifdef FEATURE_WLAN_WAPI
232#define CSR_WAPI_BKID_SIZE 16
233#define CSR_MAX_BKID_ALLOWED 16
234#define CSR_WAPI_KEY_LEN 32
235#define CSR_MAX_KEY_LEN ( CSR_WAPI_KEY_LEN ) //longest one is for WAPI
236#else
237#define CSR_MAX_KEY_LEN ( CSR_TKIP_KEY_LEN ) //longest one is for TKIP
238#endif /* FEATURE_WLAN_WAPI */
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800239#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -0700240#define CSR_KRK_KEY_LEN 16
241#endif
242
243
244
245typedef struct tagCsrChannelInfo
246{
247 tANI_U8 numOfChannels;
248 tANI_U8 *ChannelList; //it will be an array of channels
Madan Mohan Koyyalamudidd3c9662012-11-09 17:39:30 -0800249}tCsrChannelInfo, *tpCsrChannelInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -0700250
251typedef struct tagCsrSSIDInfo
252{
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800253 tSirMacSSid SSID;
Jeff Johnson295189b2012-06-20 16:38:30 -0700254 tANI_BOOLEAN handoffPermitted;
255 tANI_BOOLEAN ssidHidden;
256}tCsrSSIDInfo;
257
258typedef struct tagCsrSSIDs
259{
260 tANI_U32 numOfSSIDs;
261 tCsrSSIDInfo *SSIDList; //To be allocated for array of SSIDs
262}tCsrSSIDs;
263
264typedef struct tagCsrBSSIDs
265{
266 tANI_U32 numOfBSSIDs;
267 tCsrBssid *bssid;
268}tCsrBSSIDs;
269
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800270typedef struct tagCsrStaParams
271{
272 tANI_U16 capability;
273 tANI_U8 extn_capability[SIR_MAC_MAX_EXTN_CAP];
274 tANI_U8 supported_rates_len;
275 tANI_U8 supported_rates[SIR_MAC_MAX_SUPP_RATES];
Hoonki Lee66b75f32013-04-16 18:30:07 -0700276 tANI_U8 htcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800277 tSirHTCap HTCap;
Hoonki Lee66b75f32013-04-16 18:30:07 -0700278 tANI_U8 vhtcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800279 tSirVHTCap VHTCap;
280 tANI_U8 uapsd_queues;
281 tANI_U8 max_sp;
Naresh Jayaramdff88f92014-02-12 21:44:29 +0530282 tANI_U8 supported_channels_len;
283 tANI_U8 supported_channels[SIR_MAC_MAX_SUPP_CHANNELS];
284 tANI_U8 supported_oper_classes_len;
285 tANI_U8 supported_oper_classes[SIR_MAC_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800286}tCsrStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -0700287
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800288typedef struct tagCsrScanRequest
Jeff Johnson295189b2012-06-20 16:38:30 -0700289{
290 tSirScanType scanType;
291 tCsrBssid bssid;
292 eCsrRoamBssType BSSType;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800293 tCsrSSIDs SSIDs;
Jeff Johnson295189b2012-06-20 16:38:30 -0700294 tCsrChannelInfo ChannelInfo;
295 tANI_U32 minChnTime; //in units of milliseconds
296 tANI_U32 maxChnTime; //in units of milliseconds
Abhishek Singh3a93ee42016-09-29 17:00:03 +0530297 tANI_U32 min_chntime_btc_esco; //in units of milliseconds
298 tANI_U32 max_chntime_btc_esco; //in units of milliseconds
Jeff Johnson295189b2012-06-20 16:38:30 -0700299 tANI_U32 restTime; //in units of milliseconds //ignored when not connected
300 tANI_U32 uIEFieldLen;
301 tANI_U8 *pIEField;
Rajeev Kumar Sirasanagandla2bb30b82019-01-07 22:30:16 +0530302 bool scan_randomize;
303 bool nl_scan;
Jeff Johnson295189b2012-06-20 16:38:30 -0700304 eCsrRequestType requestType; //11d scan or full scan
Jeff Johnson295189b2012-06-20 16:38:30 -0700305 tANI_BOOLEAN p2pSearch;
Jeff Johnsone7245742012-09-05 17:12:55 -0700306 tANI_BOOLEAN skipDfsChnlInP2pSearch;
Jeff Johnson295189b2012-06-20 16:38:30 -0700307}tCsrScanRequest;
308
309typedef struct tagCsrBGScanRequest
310{
311 tSirScanType scanType;
312 tSirMacSSid SSID;
313 tCsrChannelInfo ChannelInfo;
314 tANI_U32 scanInterval; //in units of milliseconds
315 tANI_U32 minChnTime; //in units of milliseconds
316 tANI_U32 maxChnTime; //in units of milliseconds
Abhishek Singh3a93ee42016-09-29 17:00:03 +0530317 tANI_U32 min_chntime_btc_esco; //in units of milliseconds
318 tANI_U32 max_chntime_btc_esco; //in units of milliseconds
Jeff Johnson295189b2012-06-20 16:38:30 -0700319 tANI_U32 restTime; //in units of milliseconds //ignored when not connected
320 tANI_U32 throughputImpact; //specify whether BG scan cares about impacting throughput //ignored when not connected
321 tCsrBssid bssid; //how to use it?? Apple
Srikant Kuppa866893f2012-12-27 17:28:14 -0800322}tCsrBGScanRequest, *tpCsrBGScanRequest;
Jeff Johnson295189b2012-06-20 16:38:30 -0700323
324
325typedef struct tagCsrScanResultInfo
326{
327 //Carry the IEs for the current BSSDescription. A pointer to tDot11fBeaconIEs. Maybe NULL for start BSS.
328 void *pvIes;
329 tAniSSID ssId;
330 v_TIME_t timer; // timer is variable which is used for hidden SSID's timer value
331 //This member must be the last in the structure because the end of tSirBssDescription is an
332 // array with nonknown size at this time
333 tSirBssDescription BssDescriptor;
334}tCsrScanResultInfo;
335
336typedef struct tagCsrEncryptionList
337{
338
339 tANI_U32 numEntries;
340 eCsrEncryptionType encryptionType[eCSR_NUM_OF_ENCRYPT_TYPE];
341
342}tCsrEncryptionList, *tpCsrEncryptionList;
343
344typedef struct tagCsrAuthList
345{
346 tANI_U32 numEntries;
347 eCsrAuthType authType[eCSR_NUM_OF_SUPPORT_AUTH_TYPE];
348}tCsrAuthList, *tpCsrAuthList;
349
350#ifdef WLAN_FEATURE_VOWIFI_11R
351typedef struct tagCsrMobilityDomainInfo
352{
353 tANI_U8 mdiePresent;
354 tANI_U16 mobilityDomain;
355} tCsrMobilityDomainInfo;
356#endif
357
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800358#ifdef FEATURE_WLAN_ESE
359typedef struct tagCsrEseCckmInfo
Jeff Johnson295189b2012-06-20 16:38:30 -0700360{
361 tANI_U32 reassoc_req_num;
362 tANI_BOOLEAN krk_plumbed;
363 tANI_U8 krk[CSR_KRK_KEY_LEN];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800364} tCsrEseCckmInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -0700365#endif
366
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800367#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700368
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800369typedef struct tagCsrEseCckmIe
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700370{
Ashish Kumar Dhanotiyaadfeda02019-12-16 19:42:10 +0530371 tANI_U8 cckmIe[DOT11F_IE_RSN_MAX_LEN];
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700372 tANI_U8 cckmIeLen;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800373} tCsrEseCckmIe;
374#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Jeff Johnson295189b2012-06-20 16:38:30 -0700375
376typedef struct tagCsrScanResultFilter
377{
378 tCsrBSSIDs BSSIDs; //each bssid has a length of WNI_CFG_BSSID_LEN (6)
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800379 tCsrSSIDs SSIDs;
Jeff Johnson295189b2012-06-20 16:38:30 -0700380 tCsrChannelInfo ChannelInfo;
381 tCsrAuthList authType;
382 tCsrEncryptionList EncryptionType;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800383 //eCSR_ENCRYPT_TYPE_ANY cannot be set in multicast encryption type. If caller doesn't case,
Jeff Johnson295189b2012-06-20 16:38:30 -0700384 //put all supported encryption types in here
385 tCsrEncryptionList mcEncryptionType;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800386 eCsrRoamBssType BSSType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700387 //this is a bit mask of all the needed phy mode defined in eCsrPhyMode
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800388 tANI_U32 phyMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700389 //If countryCode[0] is not 0, countryCode is checked independent of fCheckUnknownCountryCode
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800390 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN];
391 tANI_U8 uapsd_mask;
Jeff Johnson295189b2012-06-20 16:38:30 -0700392 /*For WPS filtering if true => auth and ecryption should be ignored*/
393 tANI_BOOLEAN bWPSAssociation;
Leela Venkata Kiran Kumar Reddy Chiralaf257bef2014-04-11 18:48:12 -0700394 tANI_BOOLEAN bOSENAssociation;
Jeff Johnson295189b2012-06-20 16:38:30 -0700395#if defined WLAN_FEATURE_VOWIFI
396 /*For measurement reports --> if set, only SSID, BSSID and channel is considered for filtering.*/
397 tANI_BOOLEAN fMeasurement;
398#endif
399#ifdef WLAN_FEATURE_VOWIFI_11R
400 tCsrMobilityDomainInfo MDID;
401#endif
402 tANI_BOOLEAN p2pResult;
Abhishek Singh3b56d3a2014-06-25 12:37:39 +0530403#ifdef WLAN_FEATURE_11W
404 // Management Frame Protection
405 tANI_BOOLEAN MFPEnabled;
406 tANI_U8 MFPRequired;
407 tANI_U8 MFPCapable;
408#endif
Kapil Gupta04ab1992016-06-26 13:36:51 +0530409#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
410 tANI_BOOLEAN isPERRoamScan;
411#endif
Abhishek Singhb3e376c2017-01-04 15:27:13 +0530412 tCsrBssid bssid_hint;
Pragaspathi Thilagaraja2419962018-06-19 01:41:11 +0530413 bool ignore_pmf_cap;
Jeff Johnson295189b2012-06-20 16:38:30 -0700414}tCsrScanResultFilter;
415
416
417typedef struct sCsrChnPower_
418{
419 tANI_U8 firstChannel;
420 tANI_U8 numChannels;
421 tANI_U8 maxtxPower;
422}sCsrChnPower;
423
424
425typedef struct sCsrChannel_
426{
427 tANI_U8 numChannels;
428 tANI_U8 channelList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
429}sCsrChannel;
430
431
432typedef struct tagCsr11dinfo
433{
434 sCsrChannel Channels;
435 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN+1];
436 //max power channel list
437 sCsrChnPower ChnPower[WNI_CFG_VALID_CHANNEL_LIST_LEN];
438}tCsr11dinfo;
439
440
441typedef enum
442{
443 eCSR_ROAM_CANCELLED = 1,
444 //this mean error happens before association_start or roaming_start is called.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800445 eCSR_ROAM_FAILED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700446 //a CSR trigger roaming operation starts, callback may get a pointer to tCsrConnectedProfile
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800447 eCSR_ROAM_ROAMING_START,
Jeff Johnson295189b2012-06-20 16:38:30 -0700448 //a CSR trigger roaming operation is completed
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800449 eCSR_ROAM_ROAMING_COMPLETION,
Jeff Johnson295189b2012-06-20 16:38:30 -0700450 //Connection completed status.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800451 eCSR_ROAM_CONNECT_COMPLETION,
452 //an association or start_IBSS operation starts,
453 //callback may get a pointer to tCsrRoamProfile and a pointer to tSirBssDescription
454 eCSR_ROAM_ASSOCIATION_START,
455 //a roaming operation is finish, see eCsrRoamResult for
Jeff Johnson295189b2012-06-20 16:38:30 -0700456 //possible data passed back
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800457 eCSR_ROAM_ASSOCIATION_COMPLETION,
Jeff Johnson295189b2012-06-20 16:38:30 -0700458 eCSR_ROAM_DISASSOCIATED,
459 eCSR_ROAM_ASSOCIATION_FAILURE,
460 //when callback with this flag. callback gets a pointer to the BSS desc.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800461 eCSR_ROAM_SHOULD_ROAM,
Jeff Johnson295189b2012-06-20 16:38:30 -0700462 //A new candidate for PMKID is found
463 eCSR_ROAM_SCAN_FOUND_NEW_BSS,
464 //CSR is done lostlink roaming and still cannot reconnect
465 eCSR_ROAM_LOSTLINK,
466 //a link lost is detected. CSR starts roaming.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800467 eCSR_ROAM_LOSTLINK_DETECTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700468 //TKIP MIC error detected, callback gets a pointer to tpSirSmeMicFailureInd
469 eCSR_ROAM_MIC_ERROR_IND,
470 eCSR_ROAM_IBSS_IND, //IBSS indications.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800471 //Update the connection status, useful for IBSS: new peer added, network is active etc.
472 eCSR_ROAM_CONNECT_STATUS_UPDATE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700473 eCSR_ROAM_GEN_INFO,
474 eCSR_ROAM_SET_KEY_COMPLETE,
475 eCSR_ROAM_REMOVE_KEY_COMPLETE,
476 eCSR_ROAM_IBSS_LEAVE, //IBSS indications.
477 //BSS in WDS mode status indication
478 eCSR_ROAM_WDS_IND,
Jeff Johnson295189b2012-06-20 16:38:30 -0700479 //BSS in SoftAP mode status indication
480 eCSR_ROAM_INFRA_IND,
481 eCSR_ROAM_WPS_PBC_PROBE_REQ_IND,
Jeff Johnson295189b2012-06-20 16:38:30 -0700482#ifdef WLAN_FEATURE_VOWIFI_11R
483 eCSR_ROAM_FT_RESPONSE,
484#endif
485 eCSR_ROAM_FT_START,
Jeff Johnson295189b2012-06-20 16:38:30 -0700486 eCSR_ROAM_REMAIN_CHAN_READY,
487 eCSR_ROAM_SEND_ACTION_CNF,
488 //this mean error happens before association_start or roaming_start is called.
489 eCSR_ROAM_SESSION_OPENED,
490 eCSR_ROAM_FT_REASSOC_FAILED,
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700491#ifdef FEATURE_WLAN_LFR
492 eCSR_ROAM_PMK_NOTIFY,
493#endif
Yue Maef608272013-04-08 23:09:17 -0700494#ifdef FEATURE_WLAN_LFR_METRICS
495 eCSR_ROAM_PREAUTH_INIT_NOTIFY,
496 eCSR_ROAM_PREAUTH_STATUS_SUCCESS,
497 eCSR_ROAM_PREAUTH_STATUS_FAILURE,
498 eCSR_ROAM_HANDOVER_SUCCESS,
499#endif
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800500#ifdef FEATURE_WLAN_TDLS
501 eCSR_ROAM_TDLS_STATUS_UPDATE,
Gopichand Nakkalab977a972013-02-18 19:15:09 -0800502 eCSR_ROAM_RESULT_MGMT_TX_COMPLETE_IND,
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800503#endif
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -0800504 eCSR_ROAM_DISCONNECT_ALL_P2P_CLIENTS, //Disaconnect all the clients
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800505 eCSR_ROAM_SEND_P2P_STOP_BSS, //Stopbss triggered from SME due to different
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -0800506 // beacon interval
Chet Lanctot186b5732013-03-18 10:26:30 -0700507#ifdef WLAN_FEATURE_11W
508 eCSR_ROAM_UNPROT_MGMT_FRAME_IND,
509#endif
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -0800510
Abhishek Singh00b71972016-01-07 10:51:04 +0530511#ifdef WLAN_FEATURE_RMC
512 eCSR_ROAM_IBSS_PEER_INFO_COMPLETE,
513#endif
514
Hardik Kantilal Patel81f76342014-11-14 12:45:26 -0800515#ifdef WLAN_FEATURE_AP_HT40_24G
516 eCSR_ROAM_2040_COEX_INFO_IND,
517#endif
518
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800519#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -0700520 eCSR_ROAM_TSM_IE_IND,
521 eCSR_ROAM_CCKM_PREAUTH_NOTIFY,
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800522 eCSR_ROAM_ESE_ADJ_AP_REPORT_IND,
523 eCSR_ROAM_ESE_BCN_REPORT_IND,
524#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Girish Gowlia95daca2015-02-04 20:31:31 +0530525 eCSR_ROAM_UPDATE_MAX_RATE_IND,
Sachin Ahuja3d47fcd2015-08-28 16:02:06 +0530526 eCSR_ROAM_LOST_LINK_PARAMS_IND,
Selvaraj, Sridhar59c50392016-06-09 17:08:05 +0530527 eCSR_ROAM_UPDATE_SCAN_RESULT,
Abhishek Singh550aa8c2017-10-30 17:34:53 +0530528 eCSR_ROAM_ECSA_BCN_TX_IND,
529 eCSR_ROAM_ECSA_CHAN_CHANGE_RSP,
Ganesh Kondabattini529397f2017-12-27 19:13:52 +0530530 eCSR_ROAM_STA_CHANNEL_SWITCH,
Abhinav Kumard6d8dd22019-08-05 12:38:50 +0530531 eCSR_ROAM_SAE_COMPUTE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700532}eRoamCmdStatus;
533
534
535//comment inside indicates what roaming callback gets
536typedef enum
537{
538 eCSR_ROAM_RESULT_NONE,
539 //this means no more action in CSR
540 //If roamStatus is eCSR_ROAM_ASSOCIATION_COMPLETION, tCsrRoamInfo's pBssDesc may pass back
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800541 eCSR_ROAM_RESULT_FAILURE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700542 //Pass back pointer to tCsrRoamInfo
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800543 eCSR_ROAM_RESULT_ASSOCIATED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700544 eCSR_ROAM_RESULT_NOT_ASSOCIATED,
545 eCSR_ROAM_RESULT_MIC_FAILURE,
546 eCSR_ROAM_RESULT_FORCED,
547 eCSR_ROAM_RESULT_DISASSOC_IND,
548 eCSR_ROAM_RESULT_DEAUTH_IND,
549 eCSR_ROAM_RESULT_CAP_CHANGED,
550 //This means we starts an IBSS
551 //tCsrRoamInfo's pBssDesc may pass back
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800552 eCSR_ROAM_RESULT_IBSS_STARTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700553 //START_BSS failed
554 //tCsrRoamInfo's pBssDesc may pass back
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800555 eCSR_ROAM_RESULT_IBSS_START_FAILED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700556 eCSR_ROAM_RESULT_IBSS_JOIN_SUCCESS,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800557 eCSR_ROAM_RESULT_IBSS_JOIN_FAILED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700558 eCSR_ROAM_RESULT_IBSS_CONNECT,
559 eCSR_ROAM_RESULT_IBSS_INACTIVE,
560 //If roamStatus is eCSR_ROAM_ASSOCIATION_COMPLETION
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800561 //tCsrRoamInfo's pBssDesc may pass back. and the peer's MAC address in peerMacOrBssid
562 //If roamStatus is eCSR_ROAM_IBSS_IND,
Jeff Johnson295189b2012-06-20 16:38:30 -0700563 //the peer's MAC address in peerMacOrBssid and a beacon frame of the IBSS in pbFrames
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800564 eCSR_ROAM_RESULT_IBSS_NEW_PEER,
Jeff Johnson295189b2012-06-20 16:38:30 -0700565 //Peer departed from IBSS, Callback may get a pointer tSmeIbssPeerInd in pIbssPeerInd
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800566 eCSR_ROAM_RESULT_IBSS_PEER_DEPARTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700567 //Coalescing in the IBSS network (joined an IBSS network)
568 //Callback pass a BSSID in peerMacOrBssid
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800569 eCSR_ROAM_RESULT_IBSS_COALESCED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700570 //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 -0800571 eCSR_ROAM_RESULT_IBSS_STOP,
572 eCSR_ROAM_RESULT_LOSTLINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700573 eCSR_ROAM_RESULT_MIC_ERROR_UNICAST,
574 eCSR_ROAM_RESULT_MIC_ERROR_GROUP,
575 eCSR_ROAM_RESULT_AUTHENTICATED,
576 eCSR_ROAM_RESULT_NEW_RSN_BSS,
577#ifdef FEATURE_WLAN_WAPI
578 eCSR_ROAM_RESULT_NEW_WAPI_BSS,
579#endif /* FEATURE_WLAN_WAPI */
580 // WDS started successfully
581 eCSR_ROAM_RESULT_WDS_STARTED,
582 // WDS start failed
583 eCSR_ROAM_RESULT_WDS_START_FAILED,
584 // WDS stopped
585 eCSR_ROAM_RESULT_WDS_STOPPED,
586 // WDS joined successfully in STA mode
587 eCSR_ROAM_RESULT_WDS_ASSOCIATED,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800588 // A station joined WDS AP
Jeff Johnson295189b2012-06-20 16:38:30 -0700589 eCSR_ROAM_RESULT_WDS_ASSOCIATION_IND,
590 // WDS join failed in STA mode
591 eCSR_ROAM_RESULT_WDS_NOT_ASSOCIATED,
592 // WDS disassociated
593 eCSR_ROAM_RESULT_WDS_DISASSOCIATED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700594 // INFRA started successfully
595 eCSR_ROAM_RESULT_INFRA_STARTED,
596 // INFRA start failed
597 eCSR_ROAM_RESULT_INFRA_START_FAILED,
598 // INFRA stopped
599 eCSR_ROAM_RESULT_INFRA_STOPPED,
600 // A station joining INFRA AP
601 eCSR_ROAM_RESULT_INFRA_ASSOCIATION_IND,
602 // A station joined INFRA AP
603 eCSR_ROAM_RESULT_INFRA_ASSOCIATION_CNF,
604 // INFRA disassociated
605 eCSR_ROAM_RESULT_INFRA_DISASSOCIATED,
606 eCSR_ROAM_RESULT_WPS_PBC_PROBE_REQ_IND,
Jeff Johnson295189b2012-06-20 16:38:30 -0700607 eCSR_ROAM_RESULT_SEND_ACTION_FAIL,
Jeff Johnson295189b2012-06-20 16:38:30 -0700608 // peer rejected assoc because max assoc limit reached. callback gets pointer to peer
609 eCSR_ROAM_RESULT_MAX_ASSOC_EXCEEDED,
Jeff Johnsone7245742012-09-05 17:12:55 -0700610 //Assoc rejected due to concurrent session running on a different channel
611 eCSR_ROAM_RESULT_ASSOC_FAIL_CON_CHANNEL,
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800612#ifdef FEATURE_WLAN_TDLS
613 eCSR_ROAM_RESULT_ADD_TDLS_PEER,
Gopichand Nakkala681989c2013-03-06 22:27:48 -0800614 eCSR_ROAM_RESULT_UPDATE_TDLS_PEER,
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800615 eCSR_ROAM_RESULT_DELETE_TDLS_PEER,
Hoonki Leee6bfe942013-02-05 15:01:19 -0800616 eCSR_ROAM_RESULT_TEARDOWN_TDLS_PEER_IND,
Gopichand Nakkala2a0a1572013-02-10 21:39:16 -0800617 eCSR_ROAM_RESULT_DELETE_ALL_TDLS_PEER_IND,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530618 eCSR_ROAM_RESULT_LINK_ESTABLISH_REQ_RSP,
Masti, Narayanraddi36c67622016-01-06 16:07:34 +0530619 eCSR_ROAM_RESULT_CHANNEL_SWITCH_REQ_RSP,
Mohit Khanna698ba2a2012-12-04 15:08:18 -0800620#endif
621
Abhishek Singh00b71972016-01-07 10:51:04 +0530622#ifdef WLAN_FEATURE_RMC
623 eCSR_ROAM_RESULT_IBSS_PEER_INFO_SUCCESS,
624 eCSR_ROAM_RESULT_IBSS_PEER_INFO_FAILED,
625#endif
Abhishek Singhbfb3c9e2016-07-22 11:25:43 +0530626 /* If Scan for SSID failed to found proper BSS */
627 eCSR_ROAM_RESULT_SCAN_FOR_SSID_FAILURE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700628}eCsrRoamResult;
629
630
631
632/*----------------------------------------------------------------------------
633 List of link quality indications HDD can receive from SME
634-----------------------------------------------------------------------------*/
635typedef enum
636{
637 eCSR_ROAM_LINK_QUAL_MIN_IND = -1,
638
639 eCSR_ROAM_LINK_QUAL_POOR_IND = 0, /* bad link */
640 eCSR_ROAM_LINK_QUAL_GOOD_IND = 1, /* acceptable for voice */
641 eCSR_ROAM_LINK_QUAL_VERY_GOOD_IND = 2, /* suitable for voice */
642 eCSR_ROAM_LINK_QUAL_EXCELLENT_IND = 3, /* suitable for voice */
643
644 eCSR_ROAM_LINK_QUAL_MAX_IND /* invalid value */
645
646} eCsrRoamLinkQualityInd;
647
648typedef enum
649{
650 eCSR_DISCONNECT_REASON_UNSPECIFIED = 0,
651 eCSR_DISCONNECT_REASON_MIC_ERROR,
652 eCSR_DISCONNECT_REASON_DISASSOC,
653 eCSR_DISCONNECT_REASON_DEAUTH,
654 eCSR_DISCONNECT_REASON_HANDOFF,
655 eCSR_DISCONNECT_REASON_IBSS_JOIN_FAILURE,
656 eCSR_DISCONNECT_REASON_IBSS_LEAVE,
657}eCsrRoamDisconnectReason;
658
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800659typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700660{
661 // Not associated in Infra or participating in an IBSS / Ad-hoc network.
662 eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED,
663 // Associated in an Infrastructure network.
664 eCSR_ASSOC_STATE_TYPE_INFRA_ASSOCIATED,
665 // Participating in an IBSS network though disconnected (no partner stations
666 // in the IBSS).
667 eCSR_ASSOC_STATE_TYPE_IBSS_DISCONNECTED,
668 // Participating in an IBSS network with partner stations also present
669 eCSR_ASSOC_STATE_TYPE_IBSS_CONNECTED,
670 // Participating in a WDS network in AP or STA mode but not connected yet
671 eCSR_ASSOC_STATE_TYPE_WDS_DISCONNECTED,
672 // Participating in a WDS network and connected peer to peer
673 eCSR_ASSOC_STATE_TYPE_WDS_CONNECTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700674 // Participating in a Infra network in AP not yet in connected state
675 eCSR_ASSOC_STATE_TYPE_INFRA_DISCONNECTED,
676 // Participating in a Infra network and connected to a peer
677 eCSR_ASSOC_STATE_TYPE_INFRA_CONNECTED,
Jeff Johnson295189b2012-06-20 16:38:30 -0700678
679}eCsrConnectState;
680
681
682// This parameter is no longer supported in the Profile. Need to set this in the global properties
683// for the adapter.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800684typedef enum eCSR_MEDIUM_ACCESS
Jeff Johnson295189b2012-06-20 16:38:30 -0700685{
686 eCSR_MEDIUM_ACCESS_AUTO = 0,
687 eCSR_MEDIUM_ACCESS_DCF,
688 eCSR_MEDIUM_ACCESS_eDCF,
689 eCSR_MEDIUM_ACCESS_HCF,
690
691 eCSR_MEDIUM_ACCESS_WMM_eDCF_802dot1p,
692 eCSR_MEDIUM_ACCESS_WMM_eDCF_DSCP,
693 eCSR_MEDIUM_ACCESS_WMM_eDCF_NoClassify,
694 eCSR_MEDIUM_ACCESS_11e_eDCF = eCSR_MEDIUM_ACCESS_eDCF,
695 eCSR_MEDIUM_ACCESS_11e_HCF = eCSR_MEDIUM_ACCESS_HCF,
696}eCsrMediaAccessType;
697
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800698typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700699{
700 eCSR_TX_RATE_AUTO = 0, // use rate adaption to determine Tx rate.
701
702 eCSR_TX_RATE_1Mbps = 0x00000001,
703 eCSR_TX_RATE_2Mbps = 0x00000002,
704 eCSR_TX_RATE_5_5Mbps = 0x00000004,
705 eCSR_TX_RATE_6Mbps = 0x00000008,
706 eCSR_TX_RATE_9Mbps = 0x00000010,
707 eCSR_TX_RATE_11Mbps = 0x00000020,
708 eCSR_TX_RATE_12Mbps = 0x00000040,
709 eCSR_TX_RATE_18Mbps = 0x00000080,
710 eCSR_TX_RATE_24Mbps = 0x00000100,
711 eCSR_TX_RATE_36Mbps = 0x00000200,
712 eCSR_TX_RATE_42Mbps = 0x00000400,
713 eCSR_TX_RATE_48Mbps = 0x00000800,
714 eCSR_TX_RATE_54Mbps = 0x00001000,
715 eCSR_TX_RATE_72Mbps = 0x00002000,
716 eCSR_TX_RATE_84Mbps = 0x00004000,
717 eCSR_TX_RATE_96Mbps = 0x00008000,
718 eCSR_TX_RATE_108Mbps = 0x00010000,
719 eCSR_TX_RATE_126Mbps = 0x00020000,
720 eCSR_TX_RATE_144Mbps = 0x00040000,
721 eCSR_TX_RATE_168Mbps = 0x00080000,
722 eCSR_TX_RATE_192Mbps = 0x00100000,
723 eCSR_TX_RATE_216Mbps = 0x00200000,
724 eCSR_TX_RATE_240Mbps = 0x00400000,
725
726}eCsrExposedTxRate;
727
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800728typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700729{
730 eCSR_OPERATING_CHANNEL_ALL = 0,
731 eCSR_OPERATING_CHANNEL_AUTO = eCSR_OPERATING_CHANNEL_ALL,
732 eCSR_OPERATING_CHANNEL_ANY = eCSR_OPERATING_CHANNEL_ALL,
733}eOperationChannel;
734
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800735typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700736{
737 eCSR_DOT11_FRAG_THRESH_AUTO = -1,
738 eCSR_DOT11_FRAG_THRESH_MIN = 256,
739 eCSR_DOT11_FRAG_THRESH_MAX = 2346,
740 eCSR_DOT11_FRAG_THRESH_DEFAULT = 2000
741}eCsrDot11FragThresh;
742
743
744//for channel bonding for ibss
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800745typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700746{
747 eCSR_CB_OFF = 0,
748 eCSR_CB_AUTO = 1,
749 eCSR_CB_DOWN = 2,
750 eCSR_CB_UP = 3,
751}eCsrCBChoice;
752
753//For channel bonding, the channel number gap is 4, either up or down. For both 11a and 11g mode.
754#define CSR_CB_CHANNEL_GAP 4
755#define CSR_CB_CENTER_CHANNEL_OFFSET 2
756#define CSR_MAX_24GHz_CHANNEL_NUMBER ( SIR_11B_CHANNEL_END )
Jeff Johnsone7245742012-09-05 17:12:55 -0700757#define CSR_MIN_5GHz_CHANNEL_NUMBER ( SIR_11A_CHANNEL_BEGIN )
758#define CSR_MAX_5GHz_CHANNEL_NUMBER ( SIR_11A_CHANNEL_END )
Jeff Johnson295189b2012-06-20 16:38:30 -0700759
760// WEP keysize (in bits)...
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800761typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700762{
763 eCSR_SECURITY_WEP_KEYSIZE_40 = 40, // 40 bit key + 24bit IV = 64bit WEP
764 eCSR_SECURITY_WEP_KEYSIZE_104 = 104, // 104bit key + 24bit IV = 128bit WEP
765
766 eCSR_SECURITY_WEP_KEYSIZE_MIN = eCSR_SECURITY_WEP_KEYSIZE_40,
767 eCSR_SECURITY_WEP_KEYSIZE_MAX = eCSR_SECURITY_WEP_KEYSIZE_104,
768 eCSR_SECURITY_WEP_KEYSIZE_MAX_BYTES = ( eCSR_SECURITY_WEP_KEYSIZE_MAX / 8 ),
769}eCsrWEPKeySize;
770
771
772// Possible values for the WEP static key ID...
773typedef enum
774{
775
776 eCSR_SECURITY_WEP_STATIC_KEY_ID_MIN = 0,
777 eCSR_SECURITY_WEP_STATIC_KEY_ID_MAX = 3,
778 eCSR_SECURITY_WEP_STATIC_KEY_ID_DEFAULT = 0,
779
780 eCSR_SECURITY_WEP_STATIC_KEY_ID_INVALID = -1,
781
782}eCsrWEPStaticKeyID;
783
Chet Lanctot186b5732013-03-18 10:26:30 -0700784// Two extra key indicies are used for the IGTK (which is used by BIP)
785#define CSR_MAX_NUM_KEY (eCSR_SECURITY_WEP_STATIC_KEY_ID_MAX + 2 + 1)
Jeff Johnson295189b2012-06-20 16:38:30 -0700786
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800787typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700788{
789 eCSR_SECURITY_SET_KEY_ACTION_NO_CHANGE,
790 eCSR_SECURITY_SET_KEY_ACTION_SET_KEY,
791 eCSR_SECURITY_SET_KEY_ACTION_DELETE_KEY,
792}eCsrSetKeyAction;
793
794typedef enum
795{
796 eCSR_BAND_ALL,
797 eCSR_BAND_24,
798 eCSR_BAND_5G,
799 eCSR_BAND_MAX,
800}eCsrBand;
801
802
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800803typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700804{
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800805 // Roaming because HDD requested for reassoc by changing one of the fields in
Jeff Johnson295189b2012-06-20 16:38:30 -0700806 // tCsrRoamModifyProfileFields. OR
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800807 // Roaming because SME requested for reassoc by changing one of the fields in
Jeff Johnson295189b2012-06-20 16:38:30 -0700808 // tCsrRoamModifyProfileFields.
809 eCsrRoamReasonStaCapabilityChanged,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800810 // Roaming because SME requested for reassoc to a different AP, as part of
Jeff Johnson295189b2012-06-20 16:38:30 -0700811 // inter AP handoff.
812 eCsrRoamReasonBetterAP,
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800813 // Roaming because SME requested it as the link is lost - placeholder, will
Jeff Johnson295189b2012-06-20 16:38:30 -0700814 // clean it up once handoff code gets in
815 eCsrRoamReasonSmeIssuedForLostLink,
816
817}eCsrRoamReasonCodes;
818
819typedef enum
820{
821 eCsrRoamWmmAuto = 0,
822 eCsrRoamWmmQbssOnly = 1,
823 eCsrRoamWmmNoQos = 2,
824
825} eCsrRoamWmmUserModeType;
826
827typedef enum
828{
829 eCSR_REQUESTER_MIN = 0,
830 eCSR_DIAG,
831 eCSR_UMA_GAN,
832 eCSR_HDD
833} eCsrStatsRequesterType;
834
Agarwal Ashish6db9d532014-09-30 18:19:10 +0530835typedef enum
836{
837 INIT = 0,
838 REINIT,
839} driver_load_type;
840
Jeff Johnson295189b2012-06-20 16:38:30 -0700841typedef struct tagPmkidCandidateInfo
842{
843 tCsrBssid BSSID;
844 tANI_BOOLEAN preAuthSupported;
845}tPmkidCandidateInfo;
846
847typedef struct tagPmkidCacheInfo
848{
849 tCsrBssid BSSID;
850 tANI_U8 PMKID[CSR_RSN_PMKID_SIZE];
Abhinav Kumar8c122592019-08-07 15:43:20 +0530851 uint8_t pmk[CSR_RSN_MAX_PMK_LEN];
852 uint8_t pmk_len;
853 uint8_t ssid_len;
854 uint8_t ssid[SIR_MAC_MAX_SSID_LENGTH];
855 uint8_t cache_id[CACHE_ID_LEN];
Jeff Johnson295189b2012-06-20 16:38:30 -0700856}tPmkidCacheInfo;
857
858#ifdef FEATURE_WLAN_WAPI
859typedef struct tagBkidCandidateInfo
860{
861 tCsrBssid BSSID;
862 tANI_BOOLEAN preAuthSupported;
863}tBkidCandidateInfo;
864
865typedef struct tagBkidCacheInfo
866{
867 tCsrBssid BSSID;
868 tANI_U8 BKID[CSR_WAPI_BKID_SIZE];
869}tBkidCacheInfo;
870#endif /* FEATURE_WLAN_WAPI */
871
872typedef struct tagCsrKeys
873{
874 tANI_U8 KeyLength[ CSR_MAX_NUM_KEY ]; //Also use to indicate whether the key index is set
875 tANI_U8 KeyMaterial[ CSR_MAX_NUM_KEY ][ CSR_MAX_KEY_LEN ];
876 tANI_U8 defaultIndex;
877}tCsrKeys;
878
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800879/* Following are fields which are part of tCsrRoamConnectedProfile might need
Jeff Johnson295189b2012-06-20 16:38:30 -0700880 modification dynamically once STA is up & running and this could trigger
881 reassoc */
882typedef struct tagCsrRoamModifyProfileFields
883{
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800884 // during connect this specifies ACs U-APSD is to be setup
Jeff Johnson295189b2012-06-20 16:38:30 -0700885 // for (Bit0:VO; Bit1:VI; Bit2:BK; Bit3:BE all other bits are ignored).
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800886 // During assoc response this COULD carry confirmation of what ACs U-APSD
Jeff Johnson295189b2012-06-20 16:38:30 -0700887 // got setup for. Later if an APP looking for APSD, SME-QoS might need to
888 // modify this field
889 tANI_U8 uapsd_mask;
890 // HDD might ask to modify this field
891 tANI_U16 listen_interval;
892}tCsrRoamModifyProfileFields;
893
894typedef struct tagCsrRoamProfile
895{
896 //For eCSR_BSS_TYPE_WDS_AP. There must be one SSID in SSIDs.
897 //For eCSR_BSS_TYPE_WDS_STA. There must be two SSIDs. Index 0 is the SSID of the WDS-AP
898 //that we need to join. Index 1 is the SSID for self BSS.
899 tCsrSSIDs SSIDs;
900 tCsrBSSIDs BSSIDs;
901 tANI_U32 phyMode; //this is a bit mask of all the needed phy mode defined in eCsrPhyMode
902 eCsrRoamBssType BSSType;
903
904 tCsrAuthList AuthType;
905 eCsrAuthType negotiatedAuthType;
906
907 tCsrEncryptionList EncryptionType;
908 //This field is for output only, not for input
909 eCsrEncryptionType negotiatedUCEncryptionType;
910
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800911 //eCSR_ENCRYPT_TYPE_ANY cannot be set in multicast encryption type. If caller doesn't case,
Jeff Johnson295189b2012-06-20 16:38:30 -0700912 //put all supported encryption types in here
913 tCsrEncryptionList mcEncryptionType;
914 //This field is for output only, not for input
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800915 eCsrEncryptionType negotiatedMCEncryptionType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700916
Chet Lanctot186b5732013-03-18 10:26:30 -0700917#ifdef WLAN_FEATURE_11W
918 // Management Frame Protection
919 tANI_BOOLEAN MFPEnabled;
920 tANI_U8 MFPRequired;
921 tANI_U8 MFPCapable;
922#endif
923
Jeff Johnson295189b2012-06-20 16:38:30 -0700924 tCsrKeys Keys;
925 eCsrCBChoice CBMode; //up, down or auto
926 tCsrChannelInfo ChannelInfo;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800927 tANI_U8 operationChannel;
Jeff Johnson295189b2012-06-20 16:38:30 -0700928 tANI_U16 beaconInterval; //If this is 0, SME will fill in for caller.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800929 // during connect this specifies ACs U-APSD is to be setup
Jeff Johnson295189b2012-06-20 16:38:30 -0700930 // for (Bit0:VO; Bit1:VI; Bit2:BK; Bit3:BE all other bits are ignored).
931 // During assoc response this COULD carry confirmation of what ACs U-APSD got setup for
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800932 tANI_U8 uapsd_mask;
Jeff Johnson295189b2012-06-20 16:38:30 -0700933 tANI_U32 nWPAReqIELength; //The byte count in the pWPAReqIE
934 tANI_U8 *pWPAReqIE; //If not null, it has the IE byte stream for WPA
935 tANI_U32 nRSNReqIELength; //The byte count in the pRSNReqIE
936 tANI_U8 *pRSNReqIE; //If not null, it has the IE byte stream for RSN
937#ifdef FEATURE_WLAN_WAPI
938 tANI_U32 nWAPIReqIELength; //The byte count in the pWAPIReqIE
939 tANI_U8 *pWAPIReqIE; //If not null, it has the IE byte stream for WAPI
940#endif /* FEATURE_WLAN_WAPI */
941
Agarwal Ashish4f616132013-12-30 23:32:50 +0530942 //The byte count in the pAddIE for scan (at the time of join)
943 tANI_U32 nAddIEScanLength;
944 /* Additional IE information.
945 * It has the IE byte stream for additional IE,
946 * which can be WSC IE and/or P2P IE
947 */
Ganesh Kondabattini7500fb32015-04-10 14:50:32 +0530948 tANI_U8 addIEScan[SIR_MAC_MAX_ADD_IE_LENGTH+2]; //Additional IE information.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800949 tANI_U32 nAddIEAssocLength; //The byte count in the pAddIE for assoc
Jeff Johnson295189b2012-06-20 16:38:30 -0700950 tANI_U8 *pAddIEAssoc; //If not null, it has the IE byte stream for additional IE, which can be WSC IE and/or P2P IE
951
952 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //it is ignored if [0] is 0.
953 /*WPS Association if true => auth and ecryption should be ignored*/
954 tANI_BOOLEAN bWPSAssociation;
Leela Venkata Kiran Kumar Reddy Chiralaf257bef2014-04-11 18:48:12 -0700955 tANI_BOOLEAN bOSENAssociation;
Jeff Johnson295189b2012-06-20 16:38:30 -0700956 tANI_U32 nWSCReqIELength; //The byte count in the pWSCReqIE
957 tANI_U8 *pWSCReqIE; //If not null, it has the IE byte stream for WSC
958
Jeff Johnson295189b2012-06-20 16:38:30 -0700959 tANI_U8 ieee80211d;
960 tANI_U8 privacy;
961 tANI_BOOLEAN fwdWPSPBCProbeReq;
962 tAniAuthType csr80211AuthType;
963 tANI_U32 dtimPeriod;
964 tANI_BOOLEAN ApUapsdEnable;
965 tANI_BOOLEAN protEnabled;
966 tANI_BOOLEAN obssProtEnabled;
967 tANI_U16 cfg_protection;
968 tANI_U8 wps_state;
Jeff Johnson295189b2012-06-20 16:38:30 -0700969
970#ifdef WLAN_FEATURE_VOWIFI_11R
971 tCsrMobilityDomainInfo MDID;
972#endif
973 tVOS_CON_MODE csrPersona;
Abhishek Singhe3beee22017-07-31 15:35:40 +0530974 bool force_24ghz_in_ht20;
Abhishek Singhb3e376c2017-01-04 15:27:13 +0530975 tCsrBssid bssid_hint;
Pragaspathi Thilagaraj03e2ab12018-06-22 12:19:48 +0530976 bool force_rsne_override;
Jeff Johnson295189b2012-06-20 16:38:30 -0700977}tCsrRoamProfile;
978
979
980typedef struct tagCsrRoamConnectedProfile
981{
982 tSirMacSSid SSID;
983 tANI_BOOLEAN handoffPermitted;
984 tANI_BOOLEAN ssidHidden;
985 tCsrBssid bssid;
986 eCsrRoamBssType BSSType;
987 eCsrAuthType AuthType;
988 tCsrAuthList AuthInfo;
989 eCsrEncryptionType EncryptionType;
990 tCsrEncryptionList EncryptionInfo;
991 eCsrEncryptionType mcEncryptionType;
992 tCsrEncryptionList mcEncryptionInfo;
993 eCsrCBChoice CBMode; //up, down or auto
994 tANI_U8 operationChannel;
Jeff Johnsone7245742012-09-05 17:12:55 -0700995 tANI_U16 beaconInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -0700996 tCsrKeys Keys;
997 // meaningless on connect. It's an OUT param from CSR's point of view
998 // During assoc response carries the ACM bit-mask i.e. what
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800999 // ACs have ACM=1 (if any),
Jeff Johnson295189b2012-06-20 16:38:30 -07001000 // (Bit0:VO; Bit1:VI; Bit2:BK; Bit3:BE all other bits are ignored)
1001 tANI_U8 acm_mask;
1002 tCsrRoamModifyProfileFields modifyProfileFields;
Madan Mohan Koyyalamudiea22cdc2012-10-18 21:02:23 -07001003 tANI_U32 nAddIEAssocLength; //The byte count in the pAddIE for assoc
1004 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 -08001005
1006 tSirBssDescription *pBssDesc;
Jeff Johnson295189b2012-06-20 16:38:30 -07001007 tANI_BOOLEAN qap; //AP supports QoS
1008 tANI_BOOLEAN qosConnection; //A connection is QoS enabled
1009#ifdef WLAN_FEATURE_VOWIFI_11R
1010 tCsrMobilityDomainInfo MDID;
1011#endif
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001012
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001013#ifdef FEATURE_WLAN_ESE
1014 tCsrEseCckmInfo eseCckmInfo;
1015 tANI_BOOLEAN isESEAssoc;
Jeff Johnson295189b2012-06-20 16:38:30 -07001016#endif
Gopichand Nakkaladacbcb52013-04-18 16:41:54 +05301017 tANI_U32 dot11Mode;
Abhishek Singh2fb3a6e2014-11-20 16:03:01 +05301018
1019#ifdef WLAN_FEATURE_11W
1020 /* Management Frame Protection */
1021 tANI_BOOLEAN MFPEnabled;
1022 tANI_U8 MFPRequired;
1023 tANI_U8 MFPCapable;
1024#endif
1025
Jeff Johnson295189b2012-06-20 16:38:30 -07001026}tCsrRoamConnectedProfile;
1027
1028
1029#ifdef WLAN_FEATURE_VOWIFI_11R
1030typedef struct tagCsr11rConfigParams
1031{
1032 tANI_BOOLEAN IsFTResourceReqSupported;
1033} tCsr11rConfigParams;
1034#endif
1035
1036#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
1037typedef struct tagCsrNeighborRoamConfigParams
1038{
1039
1040 tANI_U32 nNeighborScanTimerPeriod;
1041 tANI_U8 nNeighborLookupRssiThreshold;
1042 tANI_U8 nNeighborReassocRssiThreshold;
1043 tANI_U16 nNeighborScanMinChanTime;
1044 tANI_U16 nNeighborScanMaxChanTime;
1045 sCsrChannel neighborScanChanList;
1046 tANI_U8 nMaxNeighborRetries;
1047 tANI_U16 nNeighborResultsRefreshPeriod;
Srinivas Girigowdade697412013-02-14 16:31:48 -08001048 tANI_U16 nEmptyScanRefreshPeriod;
Mukul Sharmad49b3d62014-09-02 01:45:32 +05301049 tANI_U8 nNeighborInitialForcedRoamTo5GhEnable;
Sreelakshmi Konamki70bfdaf2017-05-29 18:47:29 +05301050 tANI_U8 nWeakZoneRssiThresholdForRoam;
Jeff Johnson295189b2012-06-20 16:38:30 -07001051}tCsrNeighborRoamConfigParams;
1052#endif
1053
1054typedef struct tagCsrConfigParam
1055{
1056 tANI_U32 FragmentationThreshold;
Jeff Johnsone7245742012-09-05 17:12:55 -07001057 tANI_U32 channelBondingMode24GHz; // keep this tANI_U32. This gets converted to ePhyChannelBondState
1058 tANI_U32 channelBondingMode5GHz; // in csrChangeDefaultConfigParam using convertCBIniValueToPhyCBState
Jeff Johnson295189b2012-06-20 16:38:30 -07001059 eCsrPhyMode phyMode;
1060 eCsrBand eBand;
1061 tANI_U32 RTSThreshold;
1062 tANI_U32 HeartbeatThresh50;
1063 tANI_U32 HeartbeatThresh24;
1064 eCsrCBChoice cbChoice;
1065 eCsrBand bandCapability; //indicate hw capability
1066 tANI_U32 bgScanInterval;
1067 tANI_U16 TxRate;
1068 eCsrRoamWmmUserModeType WMMSupportMode;
1069 tANI_BOOLEAN Is11eSupportEnabled;
1070 tANI_BOOLEAN Is11dSupportEnabled;
1071 tANI_BOOLEAN Is11dSupportEnabledOriginal;
1072 tANI_BOOLEAN Is11hSupportEnabled;
1073 tANI_BOOLEAN shortSlotTime;
1074 tANI_BOOLEAN ProprietaryRatesEnabled;
1075 tANI_U8 AdHocChannel24;
1076 tANI_U8 AdHocChannel5G;
1077 tANI_U32 impsSleepTime; //in units of seconds
1078 tANI_U32 nScanResultAgeCount; //this number minus one is the number of times a scan doesn't find it before it is removed
1079 tANI_U32 scanAgeTimeNCNPS; //scan result aging time threshold when Not-Connect-No-Power-Save, in seconds
1080 tANI_U32 scanAgeTimeNCPS; //scan result aging time threshold when Not-Connect-Power-Save, in seconds
1081 tANI_U32 scanAgeTimeCNPS; //scan result aging time threshold when Connect-No-Power-Save, in seconds,
1082 tANI_U32 scanAgeTimeCPS; //scan result aging time threshold when Connect-Power-Savein seconds
1083 tANI_U32 nRoamingTime; //In seconds, CSR will try this long before gives up. 0 means no roaming
1084 tANI_U8 bCatRssiOffset; //to set the RSSI difference for each category
1085 tANI_U8 fEnableMCCMode; //to set MCC Enable/Disable mode
Mohit Khanna7ed53f02012-09-11 17:52:10 -07001086 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
1087 //at the moment, this flag is provided only to pass Wi-Fi Cert. 5.1.12
Jeff Johnson295189b2012-06-20 16:38:30 -07001088 tCsr11dinfo Csr11dinfo;
1089 //Whether to limit the channels to the ones set in Csr11dInfo. If true, the opertaional
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001090 //channels are limited to the default channel list. It is an "AND" operation between the
Jeff Johnson295189b2012-06-20 16:38:30 -07001091 //default channels and the channels in the 802.11d IE.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001092 tANI_BOOLEAN fEnforce11dChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001093 //Country Code Priority
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001094 //0 = 802.11D > Country IOCTL > NV
Jeff Johnson295189b2012-06-20 16:38:30 -07001095 //1 = Country IOCTL > 802.11D > NV
1096 tANI_BOOLEAN fSupplicantCountryCodeHasPriority;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001097 //When true, AP with unknown country code won't be see.
1098 //"Unknown country code" means either Ap doesn't have 11d IE or we cannot
1099 //find a domain for the country code in its 11d IE.
1100 tANI_BOOLEAN fEnforceCountryCodeMatch;
Jeff Johnson295189b2012-06-20 16:38:30 -07001101 //When true, only APs in the default domain can be seen. If the Ap has "unknown country
1102 //code", or the domain of the country code doesn't match the default domain, the Ap is
1103 //not acceptable.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001104 tANI_BOOLEAN fEnforceDefaultDomain;
Jeff Johnson295189b2012-06-20 16:38:30 -07001105
1106 tANI_U16 vccRssiThreshold;
1107 tANI_U32 vccUlMacLossThreshold;
1108
1109 tANI_U32 nPassiveMinChnTime; //in units of milliseconds
1110 tANI_U32 nPassiveMaxChnTime; //in units of milliseconds
1111 tANI_U32 nActiveMinChnTime; //in units of milliseconds
1112 tANI_U32 nActiveMaxChnTime; //in units of milliseconds
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001113
c_hpothu059edb02014-03-12 21:44:28 +05301114 tANI_U32 nInitialDwellTime; //in units of milliseconds
1115
Abhishek Singh3a93ee42016-09-29 17:00:03 +05301116 uint32_t min_chntime_btc_esco; //in units of milliseconds
1117 uint32_t max_chntime_btc_esco; //in units of milliseconds
1118 uint32_t min_chntime_btc_sco;
1119 uint32_t max_chntime_btc_sco;
Kiran Kumar Lokere458d7322013-05-29 14:29:43 -07001120 tANI_U32 disableAggWithBtc;
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -07001121#ifdef WLAN_AP_STA_CONCURRENCY
1122 tANI_U32 nPassiveMinChnTimeConc; //in units of milliseconds
1123 tANI_U32 nPassiveMaxChnTimeConc; //in units of milliseconds
1124 tANI_U32 nActiveMinChnTimeConc; //in units of milliseconds
1125 tANI_U32 nActiveMaxChnTimeConc; //in units of milliseconds
1126 tANI_U32 nRestTimeConc; //in units of milliseconds
Sudhir Sattayappa Kohallieb97d502013-05-22 23:16:42 -07001127 tANI_U8 nNumStaChanCombinedConc; //number of channels combined for
1128 //STA in each split scan operation
1129 tANI_U8 nNumP2PChanCombinedConc; //number of channels combined for
1130 //P2P in each split scan operation
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -07001131#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001132
1133 tANI_BOOLEAN IsIdleScanEnabled;
1134 //in dBm, the maximum TX power
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001135 //The actual TX power is the lesser of this value and 11d.
Jeff Johnson295189b2012-06-20 16:38:30 -07001136 //If 11d is disable, the lesser of this and default setting.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001137 tANI_U8 nTxPowerCap;
Jeff Johnson295189b2012-06-20 16:38:30 -07001138 tANI_U32 statsReqPeriodicity; //stats request frequency from PE while in full power
1139 tANI_U32 statsReqPeriodicityInPS;//stats request frequency from PE while in power save
1140#ifdef WLAN_FEATURE_VOWIFI_11R
1141 tCsr11rConfigParams csr11rConfig;
1142#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001143#ifdef FEATURE_WLAN_ESE
1144 tANI_U8 isEseIniFeatureEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07001145#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001146#ifdef FEATURE_WLAN_LFR
1147 tANI_U8 isFastRoamIniFeatureEnabled;
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -08001148 tANI_U8 MAWCEnabled;
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001149#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001150
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001151#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Srinivas Girigowda100eb322013-03-15 16:48:20 -07001152 tANI_U8 isFastTransitionEnabled;
1153 tANI_U8 RoamRssiDiff;
1154 tANI_U8 nImmediateRoamRssiDiff;
Srinivas Girigowdaad34ca92013-10-22 10:54:29 -07001155 tANI_BOOLEAN isWESModeEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07001156#endif
1157
1158#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
1159 tCsrNeighborRoamConfigParams neighborRoamConfig;
1160#endif
1161
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001162 /* Instead of Reassoc, send ADDTS/DELTS even when ACM is off for that AC
Jeff Johnson295189b2012-06-20 16:38:30 -07001163 * This is mandated by WMM-AC certification */
1164 tANI_BOOLEAN addTSWhenACMIsOff;
1165
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001166
1167 /*channelPowerInfoList24 has been seen corrupted. Set this flag to true trying to
Jeff Johnson295189b2012-06-20 16:38:30 -07001168 * detect when it happens. Adding this into code because we can't reproduce it easily.
1169 * We don't know when it happens. */
1170 tANI_BOOLEAN fValidateList;
1171
1172 /*Customer wants to start with an active scan based on the default country code.
1173 * This optimization will minimize the driver load to association time.
1174 * Based on this flag we will bypass the initial passive scan needed for 11d
1175 * to determine the country code & domain */
1176 tANI_BOOLEAN fEnableBypass11d;
1177
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001178 /*Customer wants to optimize the scan time. Avoiding scans(passive) on DFS
1179 * channels while swipping through both bands can save some time
Jeff Johnson295189b2012-06-20 16:38:30 -07001180 * (apprx 1.3 sec) */
Padma, Santhosh Kumar814d0992015-05-05 18:52:43 +05301181 tANI_U8 fEnableDFSChnlScan;
Jeff Johnson295189b2012-06-20 16:38:30 -07001182
1183 //To enable/disable scanning 2.4Ghz channels twice on a single scan request from HDD
1184 tANI_BOOLEAN fScanTwice;
Jeff Johnsone7245742012-09-05 17:12:55 -07001185#ifdef WLAN_FEATURE_11AC
Ravi Joshi83bfaa12013-05-28 22:12:08 -07001186 tANI_U32 nVhtChannelWidth;
1187 tANI_U8 enableTxBF;
1188 tANI_U8 txBFCsnValue;
1189 tANI_BOOLEAN enableVhtFor24GHz;
Abhishek Singh6d5d29c2014-07-03 14:25:22 +05301190 tANI_U8 enableMuBformee;
Jeff Johnsone7245742012-09-05 17:12:55 -07001191#endif
1192
1193 /*
1194 * To enable/disable scanning only 2.4Ghz channels on first scan
1195 */
1196 tANI_BOOLEAN fFirstScanOnly2GChnl;
Jeff Johnson295189b2012-06-20 16:38:30 -07001197
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001198#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_LFR)
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08001199 tANI_BOOLEAN nRoamPrefer5GHz;
Srinivas Girigowdabbd16eb2013-03-21 12:34:46 -07001200 tANI_BOOLEAN nRoamIntraBand;
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07001201 tANI_U8 nProbes;
1202 tANI_U16 nRoamScanHomeAwayTime;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001203
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001204#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
1205 tANI_BOOLEAN isRoamOffloadScanEnabled;
Srinivas Girigowda830bbd02013-06-13 19:44:16 -07001206 tANI_BOOLEAN bFastRoamInConIniFeatureEnabled;
Kapil Gupta04ab1992016-06-26 13:36:51 +05301207 v_BOOL_t isPERRoamEnabled;
1208 v_BOOL_t isPERRoamCCAEnabled;
Kapil Guptac69c28a2016-08-25 14:11:17 +05301209 v_S15_t PERRoamFullScanThreshold;
Kapil Gupta192d9d42016-11-25 16:24:13 +05301210 v_S15_t PERMinRssiThresholdForRoam;
Kapil Gupta04ab1992016-06-26 13:36:51 +05301211 v_U32_t rateUpThreshold;
1212 v_U32_t rateDownThreshold;
1213 v_U32_t waitPeriodForNextPERScan;
1214 v_U32_t PERtimerThreshold;
1215 v_U32_t PERroamTriggerPercent;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07001216#endif
Padma, Santhosh Kumar67f479b2016-12-28 15:43:42 +05301217
1218#ifdef WLAN_FEATURE_LFR_MBB
1219 tANI_BOOLEAN enable_lfr_mbb;
1220#endif
1221
Srinivas Girigowda830bbd02013-06-13 19:44:16 -07001222#endif
1223
Abhishek Singhc98534e2015-06-12 10:44:34 +05301224 tANI_BOOLEAN ignorePeerErpInfo;
Sandeep Puligilla2b6dc632012-12-17 14:44:16 -08001225 tANI_U8 scanCfgAgingTime;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001226
1227 tANI_U8 enableTxLdpc;
krunal soni4f087d22013-07-29 16:32:26 -07001228
krunal soni5afa96c2013-09-06 22:19:02 -07001229 tANI_U8 isAmsduSupportInAMPDU;
Srinivas Girigowda41c7c5f2013-10-21 19:01:38 -07001230 tANI_U8 nSelect5GHzMargin;
krunal soni5afa96c2013-09-06 22:19:02 -07001231
krunal sonie9002db2013-11-25 14:24:17 -08001232 tANI_U8 isCoalesingInIBSSAllowed;
Sandeep Puligillac80f26e2014-03-11 18:36:10 +05301233 tANI_U8 allowDFSChannelRoam;
c_hpothu0d5a7352014-03-22 12:30:25 +05301234 tANI_BOOLEAN initialScanSkipDFSCh;
Abhishek Singhde51a412014-05-20 19:17:26 +05301235 tANI_BOOLEAN sendDeauthBeforeCon;
Peng Xu2446a892014-09-05 17:21:18 +05301236
1237 eCsrBand scanBandPreference;
Hardik Kantilal Pateldd107952014-11-20 15:24:52 +05301238#ifdef WLAN_FEATURE_AP_HT40_24G
1239 tANI_BOOLEAN apHT40_24GEnabled;
1240 tANI_U32 channelBondingAPMode24GHz; // Use for SAP/P2P GO 2.4GHz channel Bonding
1241#endif
Sushant Kaushikc9682be2014-11-26 12:27:04 +05301242 tANI_U32 nOBSSScanWidthTriggerInterval;
Girish Gowli1c2fc802015-01-19 16:18:07 +05301243 tANI_U8 roamDelayStatsEnabled;
Sushant Kaushikae17dd62015-08-27 17:07:04 +05301244 tANI_BOOLEAN ignorePeerHTopMode;
Abhishek Singh795e1b82015-09-25 15:35:03 +05301245 tANI_BOOLEAN disableP2PMacSpoofing;
Abhishek Singh837adf22015-10-01 17:37:37 +05301246 tANI_BOOLEAN enableFatalEvent;
Gupta, Kapil01be56b2015-12-30 20:36:33 +05301247 tANI_U8 max_chan_for_dwell_time_cfg;
Abhishek Singh48cd3402016-03-30 15:20:19 +05301248 uint32_t enable_edca_params;
1249 uint32_t edca_vo_cwmin;
1250 uint32_t edca_vi_cwmin;
1251 uint32_t edca_bk_cwmin;
1252 uint32_t edca_be_cwmin;
1253 uint32_t edca_vo_cwmax;
1254 uint32_t edca_vi_cwmax;
1255 uint32_t edca_bk_cwmax;
1256 uint32_t edca_be_cwmax;
1257 uint32_t edca_vo_aifs;
1258 uint32_t edca_vi_aifs;
1259 uint32_t edca_bk_aifs;
1260 uint32_t edca_be_aifs;
Padma, Santhosh Kumar36183352016-11-08 17:48:34 +05301261 tANI_BOOLEAN disable_scan_during_sco;
Paul Zhang83289792017-02-28 18:58:52 +08001262 uint32_t sta_auth_retries_for_code17;
Ganesh Kondabattinie3ac17f2017-11-30 15:09:07 +05301263 uint32_t sta_sap_scc_on_dfs_chan;
Yeshwanth Sriram Guntuka8d9b29c2017-12-12 15:44:57 +05301264 tANI_U8 agg_btc_sco_oui[3];
1265 tANI_U8 num_ba_buff_btc_sco;
1266 tANI_U8 num_ba_buff;
Yeshwanth Sriram Guntukad3a9fc52018-01-10 15:09:49 +05301267 bool force_scc_with_ecsa;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001268}tCsrConfigParam;
Jeff Johnson295189b2012-06-20 16:38:30 -07001269
1270//Tush
1271typedef struct tagCsrUpdateConfigParam
1272{
1273 tCsr11dinfo Csr11dinfo;
1274}tCsrUpdateConfigParam;
1275
1276typedef struct tagCsrRoamInfo
1277{
1278 tCsrRoamProfile *pProfile; //may be NULL
1279 tSirBssDescription *pBssDesc; //May be NULL
1280 tANI_U32 nBeaconLength; //the length, in bytes, of the beacon frame, can be 0
1281 tANI_U32 nAssocReqLength; //the length, in bytes, of the assoc req frame, can be 0
1282 tANI_U32 nAssocRspLength; //The length, in bytes, of the assoc rsp frame, can be 0
1283 tANI_U32 nFrameLength;
1284 tANI_U8 frameType;
1285 tANI_U8 *pbFrames; //Point to a buffer contain the beacon, assoc req, assoc rsp frame, in that order
1286 //user needs to use nBeaconLength, nAssocReqLength, nAssocRspLength to desice where
1287 //each frame starts and ends.
1288 tANI_BOOLEAN fReassocReq; //set to true if for re-association
1289 tANI_BOOLEAN fReassocRsp; //set to true if for re-association
1290 tCsrBssid bssid;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001291 //Only valid in IBSS
Jeff Johnson295189b2012-06-20 16:38:30 -07001292 //this is the peers MAC address for eCSR_ROAM_RESULT_IBSS_NEW_PEER or PEER_DEPARTED
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001293 tCsrBssid peerMac;
Jeff Johnson295189b2012-06-20 16:38:30 -07001294 tSirResultCodes statusCode;
1295 tANI_U32 reasonCode; //this could be our own defined or sent from the other BSS(per 802.11 spec)
1296 tANI_U8 staId; // Peer stationId when connected
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001297 /*The DPU signatures will be sent eventually to TL to help it determine the
Jeff Johnson295189b2012-06-20 16:38:30 -07001298 association to which a packet belongs to*/
1299 /*Unicast DPU signature*/
1300 tANI_U8 ucastSig;
1301
1302 /*Broadcast DPU signature*/
1303 tANI_U8 bcastSig;
1304
1305 tANI_BOOLEAN fAuthRequired; //FALSE means auth needed from supplicant. TRUE means authenticated(static WEP, open)
1306 tANI_U8 sessionId;
1307 tANI_U8 rsnIELen;
1308 tANI_U8 *prsnIE;
1309
1310 tANI_U8 addIELen;
1311 tANI_U8 *paddIE;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001312
Jeff Johnson295189b2012-06-20 16:38:30 -07001313 union
1314 {
1315 tSirMicFailureInfo *pMICFailureInfo;
1316 tCsrRoamConnectedProfile *pConnectedProfile;
Jeff Johnson295189b2012-06-20 16:38:30 -07001317 tSirWPSPBCProbeReq *pWPSPBCProbeReq;
Sachin Ahuja3d47fcd2015-08-28 16:02:06 +05301318 tSirLostLinkParamsInfo *pLostLinkParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001319 } u;
1320
Jeff Johnson295189b2012-06-20 16:38:30 -07001321 tANI_BOOLEAN wmmEnabledSta; //set to true if WMM enabled STA
Hardik Kantilal Patel1ba630f2014-11-21 04:32:05 +05301322#ifdef WLAN_FEATURE_AP_HT40_24G
1323 tANI_BOOLEAN HT40MHzIntoEnabledSta; //set to true if 40 MHz Intolerant enabled STA
1324#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001325 tANI_U32 dtimPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07001326
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001327#ifdef FEATURE_WLAN_ESE
1328 tANI_BOOLEAN isESEAssoc;
1329#ifdef FEATURE_WLAN_ESE_UPLOAD
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001330 tSirTsmIE tsmIe;
1331 tANI_U32 timestamp[2];
1332 tANI_U16 tsmRoamDelay;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001333 tSirEseBcnReportRsp *pEseBcnReportRsp;
1334#endif /* FEATURE_WLAN_ESE_UPLOAD */
Jeff Johnson295189b2012-06-20 16:38:30 -07001335#endif
Mukul Sharma9ca96b22014-11-15 19:40:04 +05301336
1337#ifdef WLAN_FEATURE_VOWIFI_11R
1338 tANI_BOOLEAN is11rAssoc;
1339#endif
1340
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001341 void* pRemainCtx;
Jeff Johnson295189b2012-06-20 16:38:30 -07001342 tANI_U32 rxChan;
Jeff Johnson295189b2012-06-20 16:38:30 -07001343
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001344#ifdef FEATURE_WLAN_TDLS
1345 tANI_U8 staType;
1346#endif
1347
Jeff Johnson295189b2012-06-20 16:38:30 -07001348 // Required for indicating the frames to upper layer
1349 tANI_U32 beaconLength;
1350 tANI_U8* beaconPtr;
1351 tANI_U32 assocReqLength;
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001352 tANI_U8* assocReqPtr;
Chilam NG571c65a2013-01-19 12:27:36 +05301353
1354 tANI_S8 rxRssi;
c_hpothu44ff4e02014-05-08 00:13:57 +05301355 tANI_U32 maxRateFlags;
Hardik Kantilal Patel81f76342014-11-14 12:45:26 -08001356#ifdef WLAN_FEATURE_AP_HT40_24G
1357 tpSirHT2040CoexInfoInd pSmeHT2040CoexInfoInd;
1358#endif
Anurag Chouhanbdb1fd62017-07-19 16:32:33 +05301359 tDot11fIEHTCaps ht_caps;
1360 tDot11fIEVHTCaps vht_caps;
1361 tDot11fIEhs20vendor_ie hs20vendor_ie;
1362 tDot11fIEVHTOperation vht_operation;
1363 tDot11fIEHTInfo ht_operation;
1364 bool reassoc;
Abhishek Singh550aa8c2017-10-30 17:34:53 +05301365 struct sir_channel_chanege_rsp *ap_chan_change_rsp;
Hanumanth Reddy Pothula57323632017-12-06 17:55:09 +05301366 tSirSmeChanInfo chan_info;
1367 tSirMacHTChannelWidth ch_width;
Abhinav Kumard6d8dd22019-08-05 12:38:50 +05301368#ifdef WLAN_FEATURE_SAE
1369 struct sir_sae_info *sae_info;
1370#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001371}tCsrRoamInfo;
1372
Jeff Johnson295189b2012-06-20 16:38:30 -07001373typedef struct tagCsrFreqScanInfo
1374{
1375 tANI_U32 nStartFreq; //in unit of MHz
1376 tANI_U32 nEndFreq; //in unit of MHz
1377 tSirScanType scanType;
1378}tCsrFreqScanInfo;
1379
1380
Jeff Johnson295189b2012-06-20 16:38:30 -07001381typedef struct sSirSmeAssocIndToUpperLayerCnf
1382{
1383 tANI_U16 messageType; // eWNI_SME_ASSOC_CNF
1384 tANI_U16 length;
1385 tANI_U8 sessionId;
1386 tSirResultCodes statusCode;
1387 tSirMacAddr bssId; // Self BSSID
1388 tSirMacAddr peerMacAddr;
1389 tANI_U16 aid;
1390 tSirMacAddr alternateBssId;
1391 tANI_U8 alternateChannelId;
1392 tANI_U8 wmmEnabledSta; //set to true if WMM enabled STA
1393 tSirRSNie rsnIE; // RSN IE received from peer
1394 tSirAddie addIE; // Additional IE received from peer, which can be WSC and/or P2P IE
1395 tANI_U8 reassocReq; //set to true if reassoc
Hardik Kantilal Patel1ba630f2014-11-21 04:32:05 +05301396#ifdef WLAN_FEATURE_AP_HT40_24G
1397 tANI_U8 HT40MHzIntoEnabledSta; //set to true if 40 MHz Intolerant enabled STA
1398#endif
Deepthi Gowriae6a1662015-10-12 12:59:37 +05301399 uint32_t rate_flags;
Hanumanth Reddy Pothula57323632017-12-06 17:55:09 +05301400 tSirSmeChanInfo chan_info;
1401 tSirMacHTChannelWidth ch_width;
1402 tDot11fIEHTCaps HTCaps;
1403 tDot11fIEVHTCaps VHTCaps;
Jeff Johnson295189b2012-06-20 16:38:30 -07001404} tSirSmeAssocIndToUpperLayerCnf, *tpSirSmeAssocIndToUpperLayerCnf;
Jeff Johnson295189b2012-06-20 16:38:30 -07001405
1406typedef struct tagCsrSummaryStatsInfo
1407{
1408 tANI_U32 retry_cnt[4];
1409 tANI_U32 multiple_retry_cnt[4];
1410 tANI_U32 tx_frm_cnt[4];
1411 //tANI_U32 num_rx_frm_crc_err; same as rx_error_cnt
1412 //tANI_U32 num_rx_frm_crc_ok; same as rx_frm_cnt
1413 tANI_U32 rx_frm_cnt;
1414 tANI_U32 frm_dup_cnt;
1415 tANI_U32 fail_cnt[4];
1416 tANI_U32 rts_fail_cnt;
1417 tANI_U32 ack_fail_cnt;
1418 tANI_U32 rts_succ_cnt;
1419 tANI_U32 rx_discard_cnt;
1420 tANI_U32 rx_error_cnt;
1421 tANI_U32 tx_byte_cnt;
1422
1423}tCsrSummaryStatsInfo;
1424
1425typedef struct tagCsrGlobalClassAStatsInfo
1426{
1427 tANI_U32 rx_frag_cnt;
1428 tANI_U32 promiscuous_rx_frag_cnt;
1429 //tANI_U32 rx_fcs_err;
1430 tANI_U32 rx_input_sensitivity;
1431 tANI_U32 max_pwr;
1432 //tANI_U32 default_pwr;
1433 tANI_U32 sync_fail_cnt;
1434 tANI_U32 tx_rate;
1435 //mcs index for HT20 and HT40 rates
1436 tANI_U32 mcs_index;
1437 //to defferentiate between HT20 and HT40 rates;short and long guard interval
1438 tANI_U32 tx_rate_flags;
1439
1440}tCsrGlobalClassAStatsInfo;
1441
1442typedef struct tagCsrGlobalClassBStatsInfo
1443{
1444 tANI_U32 uc_rx_wep_unencrypted_frm_cnt;
1445 tANI_U32 uc_rx_mic_fail_cnt;
1446 tANI_U32 uc_tkip_icv_err;
1447 tANI_U32 uc_aes_ccmp_format_err;
1448 tANI_U32 uc_aes_ccmp_replay_cnt;
1449 tANI_U32 uc_aes_ccmp_decrpt_err;
1450 tANI_U32 uc_wep_undecryptable_cnt;
1451 tANI_U32 uc_wep_icv_err;
1452 tANI_U32 uc_rx_decrypt_succ_cnt;
1453 tANI_U32 uc_rx_decrypt_fail_cnt;
1454 tANI_U32 mcbc_rx_wep_unencrypted_frm_cnt;
1455 tANI_U32 mcbc_rx_mic_fail_cnt;
1456 tANI_U32 mcbc_tkip_icv_err;
1457 tANI_U32 mcbc_aes_ccmp_format_err;
1458 tANI_U32 mcbc_aes_ccmp_replay_cnt;
1459 tANI_U32 mcbc_aes_ccmp_decrpt_err;
1460 tANI_U32 mcbc_wep_undecryptable_cnt;
1461 tANI_U32 mcbc_wep_icv_err;
1462 tANI_U32 mcbc_rx_decrypt_succ_cnt;
1463 tANI_U32 mcbc_rx_decrypt_fail_cnt;
1464
1465}tCsrGlobalClassBStatsInfo;
1466
1467typedef struct tagCsrGlobalClassCStatsInfo
1468{
1469 tANI_U32 rx_amsdu_cnt;
1470 tANI_U32 rx_ampdu_cnt;
1471 tANI_U32 tx_20_frm_cnt;
1472 tANI_U32 rx_20_frm_cnt;
1473 tANI_U32 rx_mpdu_in_ampdu_cnt;
1474 tANI_U32 ampdu_delimiter_crc_err;
1475
1476}tCsrGlobalClassCStatsInfo;
1477
1478typedef struct tagCsrGlobalClassDStatsInfo
1479{
1480 tANI_U32 tx_uc_frm_cnt;
1481 tANI_U32 tx_mc_frm_cnt;
1482 tANI_U32 tx_bc_frm_cnt;
1483 tANI_U32 rx_uc_frm_cnt;
1484 tANI_U32 rx_mc_frm_cnt;
1485 tANI_U32 rx_bc_frm_cnt;
1486 tANI_U32 tx_uc_byte_cnt[4];
1487 tANI_U32 tx_mc_byte_cnt;
1488 tANI_U32 tx_bc_byte_cnt;
1489 tANI_U32 rx_uc_byte_cnt[4];
1490 tANI_U32 rx_mc_byte_cnt;
1491 tANI_U32 rx_bc_byte_cnt;
1492 tANI_U32 rx_byte_cnt;
1493 tANI_U32 num_rx_bytes_crc_ok;
1494 tANI_U32 rx_rate;
1495
1496}tCsrGlobalClassDStatsInfo;
1497
1498typedef struct tagCsrPerStaStatsInfo
1499{
1500 tANI_U32 tx_frag_cnt[4];
1501 tANI_U32 tx_ampdu_cnt;
1502 tANI_U32 tx_mpdu_in_ampdu_cnt;
1503} tCsrPerStaStatsInfo;
1504
1505typedef struct tagCsrRoamSetKey
1506{
1507 eCsrEncryptionType encType;
1508 tAniKeyDirection keyDirection; //Tx, Rx or Tx-and-Rx
1509 tCsrBssid peerMac; //Peers MAC address. ALL 1's for group key
1510 tANI_U8 paeRole; //0 for supplicant
1511 tANI_U8 keyId; // Kye index
1512 tANI_U16 keyLength; //Number of bytes containing the key in pKey
1513 tANI_U8 Key[CSR_MAX_KEY_LEN];
1514 tANI_U8 keyRsc[CSR_MAX_RSC_LEN];
1515} tCsrRoamSetKey;
1516
1517typedef struct tagCsrRoamRemoveKey
1518{
1519 eCsrEncryptionType encType;
1520 tCsrBssid peerMac; //Peers MAC address. ALL 1's for group key
1521 tANI_U8 keyId; //key index
1522} tCsrRoamRemoveKey;
1523
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001524#ifdef FEATURE_WLAN_TDLS
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301525
1526typedef struct tagCsrLinkEstablishParams
1527{
1528 tSirMacAddr peerMac;
1529 tANI_U8 uapsdQueues;
Agarwal Ashish16020c42014-12-29 22:01:11 +05301530 tANI_U8 qos;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301531 tANI_U8 maxSp;
1532 tANI_U8 isBufSta;
Naresh Jayaramdff88f92014-02-12 21:44:29 +05301533 tANI_U8 isOffChannelSupported;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301534 tANI_U8 isResponder;
Naresh Jayaramdff88f92014-02-12 21:44:29 +05301535 tANI_U8 supportedChannelsLen;
1536 tANI_U8 supportedChannels[SIR_MAC_MAX_SUPP_CHANNELS];
1537 tANI_U8 supportedOperClassesLen;
1538 tANI_U8 supportedOperClasses[SIR_MAC_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05301539}tCsrTdlsLinkEstablishParams;
1540
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001541typedef struct tagCsrTdlsSendMgmt
1542{
1543 tSirMacAddr peerMac;
1544 tANI_U8 frameType;
1545 tANI_U8 dialog;
1546 tANI_U16 statusCode;
Hoonki Leea34dd892013-02-05 22:56:02 -08001547 tANI_U8 responder;
Pradeep Reddy POTTETIca171f82014-03-21 14:17:35 +05301548 tANI_U32 peerCapability;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001549 tANI_U8 *buf;
1550 tANI_U8 len;
1551
1552}tCsrTdlsSendMgmt;
1553
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001554#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001555
1556typedef void * tScanResultHandle;
1557
1558#define CSR_INVALID_SCANRESULT_HANDLE (NULL)
1559
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07001560#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
1561typedef struct tagCsrHandoffRequest
1562{
1563 tCsrBssid bssid;
1564 tANI_U8 channel;
Selvaraj, Sridhar3714c4d2016-06-22 15:19:12 +05301565 /* To check if its a REASSOC or a FASTREASSOC IOCTL */
1566 tANI_U8 src;
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07001567}tCsrHandoffRequest;
1568#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001569
Selvaraj, Sridhar4fa15232016-06-18 12:27:25 +05301570typedef enum {
1571 REASSOC = 0,
1572 FASTREASSOC = 1,
1573 CONNECT_CMD_USERSPACE = 2,
1574} handoff_src;
1575
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001576#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
1577typedef struct tagCsrEseBeaconReqParams
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001578{
1579 tANI_U16 measurementToken;
1580 tANI_U8 channel;
1581 tANI_U8 scanMode;
1582 tANI_U16 measurementDuration;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001583} tCsrEseBeaconReqParams, *tpCsrEseBeaconReqParams;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001584
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001585typedef struct tagCsrEseBeaconReq
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08001586{
1587 tANI_U8 numBcnReqIe;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001588 tCsrEseBeaconReqParams bcnReq[SIR_ESE_MAX_MEAS_IE_REQS];
1589} tCsrEseBeaconReq, *tpCsrEseBeaconReq;
1590#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Jeff Johnson295189b2012-06-20 16:38:30 -07001591
Hanumantha Reddy Pothulaf57da152014-10-31 13:02:08 +05301592struct tagCsrDelStaParams
1593{
1594 tCsrBssid peerMacAddr;
1595 u16 reason_code;
1596 u8 subtype;
1597};
1598
Padma, Santhosh Kumar98b5d252016-10-17 17:30:41 +05301599
1600/**
1601 * struct csr_set_tx_max_pwr_per_band - Req params to
1602 * set max tx power per band
1603 * @band: band for which power to be set
1604 * @power: power to set in dB
1605 */
1606struct csr_set_tx_max_pwr_per_band {
1607 eCsrBand band;
1608 tPowerdBm power;
1609};
1610
Jeff Johnson295189b2012-06-20 16:38:30 -07001611////////////////////////////////////////////Common SCAN starts
1612
1613//void *p2 -- the second context pass in for the caller
1614//***what if callback is called before requester gets the scanId??
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001615typedef eHalStatus (*csrScanCompleteCallback)(tHalHandle, void *p2, tANI_U32 scanID, eCsrScanStatus status);
Jeff Johnson295189b2012-06-20 16:38:30 -07001616
1617
1618
1619///////////////////////////////////////////Common Roam starts
1620
1621//pContext is the pContext passed in with the roam request
1622//pParam is a pointer to a tCsrRoamInfo, see definition of eRoamCmdStatus and
1623// eRoamCmdResult for detail valid members. It may be NULL
1624//roamId is to identify the callback related roam request. 0 means unsolicit
1625//roamStatus is a flag indicating the status of the callback
1626//roamResult is the result
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001627typedef eHalStatus (*csrRoamCompleteCallback)(void *pContext, tCsrRoamInfo *pParam, tANI_U32 roamId,
Jeff Johnson295189b2012-06-20 16:38:30 -07001628 eRoamCmdStatus roamStatus, eCsrRoamResult roamResult);
1629
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001630typedef eHalStatus (*csrRoamSessionCloseCallback)(void *pContext);
Jeff Johnson295189b2012-06-20 16:38:30 -07001631
1632/* ---------------------------------------------------------------------------
1633 \fn csrRoamGetNumPMKIDCache
1634 \brief return number of PMKID cache entries
1635 \return tANI_U32 - the number of PMKID cache entries
1636 -------------------------------------------------------------------------------*/
1637//tANI_U32 csrRoamGetNumPMKIDCache(tHalHandle hHal);
1638
1639/* ---------------------------------------------------------------------------
1640 \fn csrRoamGetPMKIDCache
1641 \brief return PMKID cache from CSR
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001642 \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 -07001643 needed or actually number in tPmkidCacheInfo.
1644 \param pPmkidCache - Caller allocated memory that contains PMKID cache, if any, upon return
1645 \return eHalStatus - when fail, it usually means the buffer allocated is not big enough
1646 -------------------------------------------------------------------------------*/
1647//eHalStatus csrRoamGetPMKIDCache(tHalHandle hHal, tANI_U32 *pNum, tPmkidCacheInfo *pPmkidCache);
1648
1649//pProfile - pointer to tCsrRoamProfile
1650#define CSR_IS_START_IBSS(pProfile) (eCSR_BSS_TYPE_START_IBSS == (pProfile)->BSSType)
1651#define CSR_IS_JOIN_TO_IBSS(pProfile) (eCSR_BSS_TYPE_IBSS == (pProfile)->BSSType)
1652#define CSR_IS_IBSS(pProfile) ( CSR_IS_START_IBSS(pProfile) || CSR_IS_JOIN_TO_IBSS(pProfile) )
1653#define CSR_IS_INFRASTRUCTURE(pProfile) (eCSR_BSS_TYPE_INFRASTRUCTURE == (pProfile)->BSSType)
1654#define CSR_IS_ANY_BSS_TYPE(pProfile) (eCSR_BSS_TYPE_ANY == (pProfile)->BSSType)
1655#define CSR_IS_WDS_AP( pProfile ) ( eCSR_BSS_TYPE_WDS_AP == (pProfile)->BSSType )
1656#define CSR_IS_WDS_STA( pProfile ) ( eCSR_BSS_TYPE_WDS_STA == (pProfile)->BSSType )
1657#define CSR_IS_WDS( pProfile ) ( CSR_IS_WDS_AP( pProfile ) || CSR_IS_WDS_STA( pProfile ) )
Jeff Johnson295189b2012-06-20 16:38:30 -07001658#define CSR_IS_INFRA_AP( pProfile ) ( eCSR_BSS_TYPE_INFRA_AP == (pProfile)->BSSType )
Jeff Johnson295189b2012-06-20 16:38:30 -07001659
1660//pProfile - pointer to tCsrRoamConnectedProfile
Jeff Johnson295189b2012-06-20 16:38:30 -07001661#define CSR_IS_CONN_INFRA_AP( pProfile ) ( eCSR_BSS_TYPE_INFRA_AP == (pProfile)->BSSType )
Jeff Johnson295189b2012-06-20 16:38:30 -07001662#define CSR_IS_CONN_WDS_AP( pProfile ) ( eCSR_BSS_TYPE_WDS_AP == (pProfile)->BSSType )
1663#define CSR_IS_CONN_WDS_STA( pProfile ) ( eCSR_BSS_TYPE_WDS_STA == (pProfile)->BSSType )
1664#define CSR_IS_CONN_WDS( pProfile ) ( CSR_IS_WDS_AP( pProfile ) || CSR_IS_WDS_STA( pProfile ) )
1665
1666
1667
1668///////////////////////////////////////////Common Roam ends
1669
Abhinav Kumarb72f8ce2019-08-07 16:11:54 +05301670#ifdef WLAN_FEATURE_SAE
1671#define CSR_IS_AUTH_TYPE_SAE(auth_type) \
1672 (eCSR_AUTH_TYPE_SAE == auth_type)
1673#else
1674#define CSR_IS_AUTH_TYPE_SAE(auth_type) (false)
1675#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001676
Jeff Johnson295189b2012-06-20 16:38:30 -07001677/* ---------------------------------------------------------------------------
1678 \fn csrSetChannels
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001679 \brief HDD calls this function to change some global settings.
Jeff Johnson295189b2012-06-20 16:38:30 -07001680 caller must set the all fields or call csrGetConfigParam to prefill the fields.
1681 \param pParam - caller allocated memory
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001682 \return eHalStatus
Jeff Johnson295189b2012-06-20 16:38:30 -07001683 -------------------------------------------------------------------------------*/
1684
1685eHalStatus csrSetChannels(tHalHandle hHal, tCsrConfigParam *pParam );
1686
1687eHalStatus csrSetRegInfo(tHalHandle hHal, tANI_U8 *apCntryCode);
Jeff Johnson295189b2012-06-20 16:38:30 -07001688
1689
1690//enum to string conversion for debug output
1691const char * get_eRoamCmdStatus_str(eRoamCmdStatus val);
1692const char * get_eCsrRoamResult_str(eCsrRoamResult val);
1693/* ---------------------------------------------------------------------------
1694 \fn csrSetPhyMode
1695 \brief HDD calls this function to set the phyMode.
1696 This function must be called after CFG is downloaded and all the band/mode setting already passed into
1697 CSR.
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001698 \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 -07001699 See eCsrPhyMode for definition
1700 \param eBand - specify the operational band (2.4, 5 or both)
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001701 \param pfRestartNeeded - pointer to a caller allocated space. Upon successful return, it indicates whether
Jeff Johnson295189b2012-06-20 16:38:30 -07001702 a restart is needed to apply the change
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001703 \return eHalStatus
Jeff Johnson295189b2012-06-20 16:38:30 -07001704 -------------------------------------------------------------------------------*/
1705eHalStatus csrSetPhyMode(tHalHandle hHal, tANI_U32 phyMode, eCsrBand eBand, tANI_BOOLEAN *pfRestartNeeded);
1706
1707void csrDumpInit(tHalHandle hHal);
1708
1709
1710/*---------------------------------------------------------------------------
1711 This is the type for a link quality callback to be registered with SME
1712 for indications
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001713 Once the link quality has been indicated, subsequently, link indications are
Jeff Johnson295189b2012-06-20 16:38:30 -07001714 posted each time there is a CHANGE in link quality.
1715 *** If there is no change in link, there will be no indication ***
1716
1717 The indications may be based on one or more criteria internal to SME
1718 such as RSSI and PER.
1719
1720 \param ind - Indication being posted
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001721 \param pContext - any user data given at callback registration.
Jeff Johnson295189b2012-06-20 16:38:30 -07001722 \return None
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001723
Jeff Johnson295189b2012-06-20 16:38:30 -07001724---------------------------------------------------------------------------*/
1725typedef void (* csrRoamLinkQualityIndCallback)
1726 (eCsrRoamLinkQualityInd ind, void *pContext);
1727
1728
1729/*---------------------------------------------------------------------------
1730 This is the type for a statistics callback to be registered with SME
1731 for stats reporting
1732
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001733 Since the client requesting for the stats already know which class/type of
1734 stats it asked for, the callback will carry them in the rsp buffer
1735 (void * stats) whose size will be same as the size of requested stats &
Jeff Johnson295189b2012-06-20 16:38:30 -07001736 will be exactly in the same order requested in the stats mask from LSB to MSB
1737
1738 \param stats - stats rsp buffer sent back with the report
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001739 \param pContext - any user data given at callback registration.
Jeff Johnson295189b2012-06-20 16:38:30 -07001740 \return None
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001741
Jeff Johnson295189b2012-06-20 16:38:30 -07001742---------------------------------------------------------------------------*/
1743typedef void ( *tCsrStatsCallback) (void * stats, void *pContext);
1744
1745/*---------------------------------------------------------------------------
1746 This is the type for a rssi callback to be registered with SME
1747 for getting rssi
1748
1749 \param rssi - rssi
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001750 \param pContext - any user data given at callback registration.
Jeff Johnson295189b2012-06-20 16:38:30 -07001751 \return None
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001752
Jeff Johnson295189b2012-06-20 16:38:30 -07001753---------------------------------------------------------------------------*/
1754
1755typedef void ( *tCsrRssiCallback) (v_S7_t rssi, tANI_U32 staId, void *pContext);
1756
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001757
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001758#if defined(FEATURE_WLAN_ESE) && defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001759/*---------------------------------------------------------------------------
1760 This is the type for a tsm stats callback to be registered with SME
1761 for getting tsm stats
1762
1763 \param tsmMetrics - tsmMetrics
1764 \param pContext - any user data given at callback registration.
1765 \return None
1766
1767---------------------------------------------------------------------------*/
1768
1769typedef void ( *tCsrTsmStatsCallback) (tAniTrafStrmMetrics tsmMetrics, tANI_U32 staId, void *pContext);
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001770#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07001771
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05301772/*---------------------------------------------------------------------------
1773 This is the type for a snr callback to be registered with SME
1774 for getting snr
1775
1776 \param snr
1777 \param pContext - any user data given at callback registration.
1778 \return None
1779
1780---------------------------------------------------------------------------*/
1781typedef void (*tCsrSnrCallback) (v_S7_t snr, tANI_U32 staId, void *pContext);
1782
Mahesh A Saptasagarcfc65ae2015-12-22 15:06:10 +05301783/*---------------------------------------------------------------------------
1784 This is the type for a get current antenna callback to be registered with SME
1785 for getting cuurently used antenna index
1786
1787 \param antennaId to be filled by firmware.
1788 \param pContext - any user data given at callback registration.
1789 \return None
1790
1791---------------------------------------------------------------------------*/
1792typedef void ( *tCsrAntennaIndexCallback) (int antennaId, void *pContext);
1793
1794
Jeff Johnson295189b2012-06-20 16:38:30 -07001795#ifdef WLAN_FEATURE_VOWIFI_11R
1796eHalStatus csrRoamIssueFTPreauthReq(tHalHandle hHal, tANI_U32 sessionId, tpSirBssDescription pBssDescription);
1797#endif
1798
1799/*---------------------------------------------------------------------------
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001800 This is the function to change the Band configuraiton (ALL/2.4 GHZ/5 GHZ)
Jeff Johnson295189b2012-06-20 16:38:30 -07001801
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001802 \param hHal - handle to Hal context
Jeff Johnson295189b2012-06-20 16:38:30 -07001803 \param eBand - band value
1804 \return eHalStatus
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001805
Jeff Johnson295189b2012-06-20 16:38:30 -07001806---------------------------------------------------------------------------*/
1807eHalStatus csrSetBand(tHalHandle hHal, eCsrBand eBand);
1808
1809/*---------------------------------------------------------------------------
1810 This is the function to get the current operating band value
1811 \param hHal - handl to Hal context
1812 \return eCsrband - band value
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08001813
Jeff Johnson295189b2012-06-20 16:38:30 -07001814---------------------------------------------------------------------------*/
1815eCsrBand csrGetCurrentBand (tHalHandle hHal);
1816
Abhishek Singhe8ebb922017-11-01 13:30:26 +05301817/**
1818 * csrConvertCBIniValueToPhyCBState() - convert ini CB value to Phy CB val
1819 * @cb_ini_value: ini value of cb mode
1820 *
1821 * Return: phy CB val
1822 */
1823ePhyChanBondState csrConvertCBIniValueToPhyCBState(v_U32_t cb_ini_val);
Jeff Johnson295189b2012-06-20 16:38:30 -07001824#endif
1825