blob: b88e8951984fe8e8eade94f4b1e3daf02325210e [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05302 * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
Kiet Lam842dad02014-02-18 18:44:02 -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 */
Jeff Johnson295189b2012-06-20 16:38:30 -070021
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.
Kiet Lam842dad02014-02-18 18:44:02 -080026 */
27
28
Kiet Lama7f454d2014-07-24 12:04:06 -070029
30
Kiet Lam842dad02014-02-18 18:44:02 -080031/*
Jeff Johnson295189b2012-06-20 16:38:30 -070032 * This file sirApi.h contains definitions exported by
33 * Sirius software.
34 * Author: Chandra Modumudi
35 * Date: 04/16/2002
36 * History:-
37 * Date Modified by Modification Information
38 * --------------------------------------------------------------------
39 */
40
41#ifndef __SIR_API_H
42#define __SIR_API_H
43
44#include "sirTypes.h"
45#include "sirMacProtDef.h"
46#include "aniSystemDefs.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070047#include "sirParams.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070048
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080049#if defined(FEATURE_WLAN_ESE) && !defined(FEATURE_WLAN_ESE_UPLOAD)
50#include "eseGlobal.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070051#endif
52
53/// Maximum number of STAs allowed in the BSS
54#define SIR_MAX_NUM_STA 256
55
56/// Maximum number of Neighbors reported by STA for LB feature
57#define SIR_MAX_NUM_NEIGHBOR_BSS 3
58
59/// Maximum number of Neighbors reported by STA for LB feature
60#define SIR_MAX_NUM_ALTERNATE_RADIOS 5
61
62/// Maximum size of SCAN_RSP message
63#define SIR_MAX_SCAN_RSP_MSG_LENGTH 2600
64
65/// Start of Sirius software/Host driver message types
66#define SIR_HAL_HOST_MSG_START 0x1000
67
68/// Power save level definitions
69#define SIR_MAX_POWER_SAVE 3
70#define SIR_INTERMEDIATE_POWER_SAVE 4
71#define SIR_NO_POWER_SAVE 5
72
73/// Max supported channel list
74#define SIR_MAX_SUPPORTED_CHANNEL_LIST 96
75
76/// Maximum DTIM Factor
77#define SIR_MAX_DTIM_FACTOR 32
78
79#define SIR_MDIE_SIZE 3
80
Gopichand Nakkalad492d202013-05-10 02:50:47 +053081/* Max number of channels are 165, but to access 165th element of array,
82 *array of 166 is required.
83 */
84#define SIR_MAX_24G_5G_CHANNEL_RANGE 166
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -080085#define SIR_BCN_REPORT_MAX_BSS_DESC 4
Gopichand Nakkalad492d202013-05-10 02:50:47 +053086
Jeff Johnson295189b2012-06-20 16:38:30 -070087
Rajeev79dbe4c2013-10-05 11:03:42 +053088#ifdef FEATURE_WLAN_BATCH_SCAN
89#define SIR_MAX_SSID_SIZE (32)
90#endif
91
Jeff Johnson295189b2012-06-20 16:38:30 -070092
93#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
94#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
95#define SIR_NUM_POLARIS_RATES 3 //72,96,108
96#define SIR_NUM_TITAN_RATES 26
97#define SIR_NUM_TAURUS_RATES 4 //136.5, 151.7,283.5,315
98#define SIR_NUM_PROP_RATES (SIR_NUM_TITAN_RATES + SIR_NUM_TAURUS_RATES)
99
100#define SIR_11N_PROP_RATE_136_5 (1<<28)
101#define SIR_11N_PROP_RATE_151_7 (1<<29)
102#define SIR_11N_PROP_RATE_283_5 (1<<30)
103#define SIR_11N_PROP_RATE_315 (1<<31)
104#define SIR_11N_PROP_RATE_BITMAP 0x80000000 //only 315MBPS rate is supported today
105//Taurus is going to support 26 Titan Rates(no ESF/concat Rates will be supported)
106//First 26 bits are reserved for Titan and last 4 bits for Taurus, 2(27 and 28) bits are reserved.
107//#define SIR_TITAN_PROP_RATE_BITMAP 0x03FFFFFF
108//Disable all Titan rates
109#define SIR_TITAN_PROP_RATE_BITMAP 0
110#define SIR_CONVERT_2_U32_BITMAP(nRates) ((nRates + 31)/32)
111
112/* #tANI_U32's needed for a bitmap representation for all prop rates */
113#define SIR_NUM_U32_MAP_RATES SIR_CONVERT_2_U32_BITMAP(SIR_NUM_PROP_RATES)
114
115
116#define SIR_PM_SLEEP_MODE 0
117#define SIR_PM_ACTIVE_MODE 1
118
119// Used by various modules to load ALL CFG's
120#define ANI_IGNORE_CFG_ID 0xFFFF
121
122//hidden SSID options
123#define SIR_SCAN_NO_HIDDEN_SSID 0
124#define SIR_SCAN_HIDDEN_SSID_PE_DECISION 1
125#define SIR_SCAN_HIDDEN_SSID 2
126
127#define SIR_MAC_ADDR_LEN 6
128#define SIR_IPV4_ADDR_LEN 4
129
130typedef tANI_U8 tSirIpv4Addr[SIR_IPV4_ADDR_LEN];
131
132#define SIR_VERSION_STRING_LEN 64
133typedef tANI_U8 tSirVersionString[SIR_VERSION_STRING_LEN];
134
Yue Mab9c86f42013-08-14 15:59:08 -0700135/* Periodic Tx pattern offload feature */
136#define PERIODIC_TX_PTRN_MAX_SIZE 1536
137#define MAXNUM_PERIODIC_TX_PTRNS 6
138
Dino Mycle2c198072014-06-10 10:15:52 +0530139
140#ifdef WLAN_FEATURE_EXTSCAN
141
142#define WLAN_EXTSCAN_MAX_CHANNELS 16
143#define WLAN_EXTSCAN_MAX_BUCKETS 16
144#define WLAN_EXTSCAN_MAX_HOTLIST_APS 128
Dino Mycle2c198072014-06-10 10:15:52 +0530145#define WLAN_EXTSCAN_MAX_RSSI_SAMPLE_SIZE 8
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +0530146#define WLAN_EXTSCAN_MAX_HOTLIST_SSIDS 8
Dino Mycle2c198072014-06-10 10:15:52 +0530147#endif /* WLAN_FEATURE_EXTSCAN */
148
Srinivas Dasarib8fdd422014-11-27 10:44:20 +0530149#define WLAN_DISA_MAX_PAYLOAD_SIZE 1600
150
Jeff Johnson295189b2012-06-20 16:38:30 -0700151enum eSirHostMsgTypes
152{
153 SIR_HAL_APP_SETUP_NTF = SIR_HAL_HOST_MSG_START,
154 SIR_HAL_INITIAL_CAL_FAILED_NTF,
155 SIR_HAL_NIC_OPER_NTF,
156 SIR_HAL_INIT_START_REQ,
157 SIR_HAL_SHUTDOWN_REQ,
158 SIR_HAL_SHUTDOWN_CNF,
159 SIR_HAL_RESET_REQ,
160 SIR_HAL_RADIO_ON_OFF_IND,
161 SIR_HAL_RESET_CNF,
162 SIR_WRITE_TO_TD,
163 SIR_HAL_HDD_ADDBA_REQ, // MAC -> HDD
164 SIR_HAL_HDD_ADDBA_RSP, // HDD -> HAL
165 SIR_HAL_DELETEBA_IND, // MAC -> HDD
166 SIR_HAL_BA_FAIL_IND, // HDD -> MAC
167 SIR_TL_HAL_FLUSH_AC_REQ,
168 SIR_HAL_TL_FLUSH_AC_RSP
169};
170
171
172
173/**
174 * Module ID definitions.
175 */
176enum {
177 SIR_BOOT_MODULE_ID = 1,
178 SIR_HAL_MODULE_ID = 0x10,
Siddharth Bhal64246172015-02-27 01:04:37 +0530179 SIR_HAL_EXT_MODULE_ID = 0x11,
Leela Venkata Kiran Kumar Reddy Chirala45f184c2014-02-14 15:08:21 -0800180 SIR_CFG_MODULE_ID = 0x12,
Jeff Johnson295189b2012-06-20 16:38:30 -0700181 SIR_LIM_MODULE_ID,
182 SIR_ARQ_MODULE_ID,
183 SIR_SCH_MODULE_ID,
184 SIR_PMM_MODULE_ID,
185 SIR_MNT_MODULE_ID,
186 SIR_DBG_MODULE_ID,
187 SIR_DPH_MODULE_ID,
188 SIR_SYS_MODULE_ID,
189 SIR_SMS_MODULE_ID,
190
191 SIR_PHY_MODULE_ID = 0x20,
192
193
194 // Add any modules above this line
195 SIR_DVT_MODULE_ID
196};
197
198#define SIR_WDA_MODULE_ID SIR_HAL_MODULE_ID
199
200/**
201 * First and last module definition for logging utility
202 *
203 * NOTE: The following definitions need to be updated if
204 * the above list is changed.
205 */
206#define SIR_FIRST_MODULE_ID SIR_HAL_MODULE_ID
207#define SIR_LAST_MODULE_ID SIR_DVT_MODULE_ID
208
209
210// Type declarations used by Firmware and Host software
211
212// Scan type enum used in scan request
213typedef enum eSirScanType
214{
215 eSIR_PASSIVE_SCAN,
216 eSIR_ACTIVE_SCAN,
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800217 eSIR_BEACON_TABLE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700218} tSirScanType;
219
Jeff Johnson295189b2012-06-20 16:38:30 -0700220typedef enum eSirResultCodes
221{
222 eSIR_SME_SUCCESS,
223
224 eSIR_EOF_SOF_EXCEPTION,
225 eSIR_BMU_EXCEPTION,
226 eSIR_LOW_PDU_EXCEPTION,
227 eSIR_USER_TRIG_RESET,
228 eSIR_LOGP_EXCEPTION,
229 eSIR_CP_EXCEPTION,
230 eSIR_STOP_BSS,
231 eSIR_AHB_HANG_EXCEPTION,
232 eSIR_DPU_EXCEPTION,
233 eSIR_RPE_EXCEPTION,
234 eSIR_TPE_EXCEPTION,
235 eSIR_DXE_EXCEPTION,
236 eSIR_RXP_EXCEPTION,
237 eSIR_MCPU_EXCEPTION,
238 eSIR_MCU_EXCEPTION,
239 eSIR_MTU_EXCEPTION,
240 eSIR_MIF_EXCEPTION,
241 eSIR_FW_EXCEPTION,
242 eSIR_PS_MUTEX_READ_EXCEPTION,
243 eSIR_PHY_HANG_EXCEPTION,
244 eSIR_MAILBOX_SANITY_CHK_FAILED,
245 eSIR_RADIO_HW_SWITCH_STATUS_IS_OFF, // Only where this switch is present
246 eSIR_CFB_FLAG_STUCK_EXCEPTION,
247
248 eSIR_SME_BASIC_RATES_NOT_SUPPORTED_STATUS=30,
249
250 eSIR_SME_INVALID_PARAMETERS=500,
251 eSIR_SME_UNEXPECTED_REQ_RESULT_CODE,
252 eSIR_SME_RESOURCES_UNAVAILABLE,
253 eSIR_SME_SCAN_FAILED, // Unable to find a BssDescription
254 // matching requested scan criteria
255 eSIR_SME_BSS_ALREADY_STARTED_OR_JOINED,
256 eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE,
257 eSIR_SME_REFUSED,
c_hpothua9dc89c2014-03-22 19:22:31 +0530258 eSIR_SME_JOIN_DEAUTH_FROM_AP_DURING_ADD_STA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700259 eSIR_SME_JOIN_TIMEOUT_RESULT_CODE,
260 eSIR_SME_AUTH_TIMEOUT_RESULT_CODE,
261 eSIR_SME_ASSOC_TIMEOUT_RESULT_CODE,
262 eSIR_SME_REASSOC_TIMEOUT_RESULT_CODE,
263 eSIR_SME_MAX_NUM_OF_PRE_AUTH_REACHED,
264 eSIR_SME_AUTH_REFUSED,
265 eSIR_SME_INVALID_WEP_DEFAULT_KEY,
266 eSIR_SME_NO_KEY_MAPPING_KEY_FOR_PEER,
267 eSIR_SME_ASSOC_REFUSED,
268 eSIR_SME_REASSOC_REFUSED,
269 eSIR_SME_DEAUTH_WHILE_JOIN, //Received Deauth while joining or pre-auhtentication.
270 eSIR_SME_DISASSOC_WHILE_JOIN, //Received Disassociation while joining.
271 eSIR_SME_DEAUTH_WHILE_REASSOC, //Received Deauth while ReAssociate.
272 eSIR_SME_DISASSOC_WHILE_REASSOC, //Received Disassociation while ReAssociate
273 eSIR_SME_STA_NOT_AUTHENTICATED,
274 eSIR_SME_STA_NOT_ASSOCIATED,
275 eSIR_SME_STA_DISASSOCIATED,
276 eSIR_SME_ALREADY_JOINED_A_BSS,
277 eSIR_ULA_COMPLETED,
278 eSIR_ULA_FAILURE,
279 eSIR_SME_LINK_ESTABLISHED,
280 eSIR_SME_UNABLE_TO_PERFORM_MEASUREMENTS,
281 eSIR_SME_UNABLE_TO_PERFORM_DFS,
282 eSIR_SME_DFS_FAILED,
283 eSIR_SME_TRANSFER_STA, // To be used when STA need to be LB'ed
284 eSIR_SME_INVALID_LINK_TEST_PARAMETERS,// Given in LINK_TEST_START_RSP
285 eSIR_SME_LINK_TEST_MAX_EXCEEDED, // Given in LINK_TEST_START_RSP
286 eSIR_SME_UNSUPPORTED_RATE, // Given in LINK_TEST_RSP if peer does
287 // support requested rate in
288 // LINK_TEST_REQ
289 eSIR_SME_LINK_TEST_TIMEOUT, // Given in LINK_TEST_IND if peer does
290 // not respond before next test packet
291 // is sent
292 eSIR_SME_LINK_TEST_COMPLETE, // Given in LINK_TEST_IND at the end
293 // of link test
294 eSIR_SME_LINK_TEST_INVALID_STATE, // Given in LINK_TEST_START_RSP
295 eSIR_SME_LINK_TEST_TERMINATE, // Given in LINK_TEST_START_RSP
296 eSIR_SME_LINK_TEST_INVALID_ADDRESS, // Given in LINK_TEST_STOP_RSP
297 eSIR_SME_POLARIS_RESET, // Given in SME_STOP_BSS_REQ
298 eSIR_SME_SETCONTEXT_FAILED, // Given in SME_SETCONTEXT_REQ when
299 // unable to plumb down keys
300 eSIR_SME_BSS_RESTART, // Given in SME_STOP_BSS_REQ
301
302 eSIR_SME_MORE_SCAN_RESULTS_FOLLOW, // Given in SME_SCAN_RSP message
303 // that more SME_SCAN_RSP
304 // messages are following.
305 // SME_SCAN_RSP message with
306 // eSIR_SME_SUCCESS status
307 // code is the last one.
308 eSIR_SME_INVALID_ASSOC_RSP_RXED, // Sent in SME_JOIN/REASSOC_RSP
309 // messages upon receiving
310 // invalid Re/Assoc Rsp frame.
311 eSIR_SME_MIC_COUNTER_MEASURES, // STOP BSS triggered by MIC failures: MAC software to disassoc all stations
312 // with MIC_FAILURE reason code and perform the stop bss operation
313 eSIR_SME_ADDTS_RSP_TIMEOUT, // didn't get response from peer within
314 // timeout interval
315 eSIR_SME_ADDTS_RSP_FAILED, // didn't get success response from HAL
316 eSIR_SME_RECEIVED,
317 // TBA - TSPEC related Result Codes
318
319 eSIR_SME_CHANNEL_SWITCH_FAIL, // failed to send out Channel Switch Action Frame
320 eSIR_SME_INVALID_STA_ROLE,
321 eSIR_SME_INVALID_STATE,
322#ifdef GEN4_SCAN
323 eSIR_SME_CHANNEL_SWITCH_DISABLED, // either 11h is disabled or channelSwitch is currently active
324 eSIR_SME_HAL_SCAN_INIT_FAILED, // SIR_HAL_SIR_HAL_INIT_SCAN_RSP returned failed status
325 eSIR_SME_HAL_SCAN_START_FAILED, // SIR_HAL_START_SCAN_RSP returned failed status
326 eSIR_SME_HAL_SCAN_END_FAILED, // SIR_HAL_END_SCAN_RSP returned failed status
327 eSIR_SME_HAL_SCAN_FINISH_FAILED, // SIR_HAL_FINISH_SCAN_RSP returned failed status
328 eSIR_SME_HAL_SEND_MESSAGE_FAIL, // Failed to send a message to HAL
329#else // GEN4_SCAN
330 eSIR_SME_CHANNEL_SWITCH_DISABLED, // either 11h is disabled or channelSwitch is currently active
331 eSIR_SME_HAL_SEND_MESSAGE_FAIL, // Failed to send a message to HAL
332#endif // GEN4_SCAN
Jeff Johnsone7245742012-09-05 17:12:55 -0700333#ifdef FEATURE_OEM_DATA_SUPPORT
334 eSIR_SME_HAL_OEM_DATA_REQ_START_FAILED,
335#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700336 eSIR_SME_STOP_BSS_FAILURE, // Failed to stop the bss
337 eSIR_SME_STA_ASSOCIATED,
338 eSIR_SME_INVALID_PMM_STATE,
339 eSIR_SME_CANNOT_ENTER_IMPS,
340 eSIR_SME_IMPS_REQ_FAILED,
341 eSIR_SME_BMPS_REQ_FAILED,
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700342 eSIR_SME_BMPS_REQ_REJECT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700343 eSIR_SME_UAPSD_REQ_FAILED,
Kanchanapally, Vidyullatha2ed7bde2014-12-29 12:18:36 +0530344 eSIR_SME_UAPSD_REQ_INVALID,
Jeff Johnson295189b2012-06-20 16:38:30 -0700345 eSIR_SME_WOWL_ENTER_REQ_FAILED,
346 eSIR_SME_WOWL_EXIT_REQ_FAILED,
347#if defined WLAN_FEATURE_VOWIFI_11R
348 eSIR_SME_FT_REASSOC_TIMEOUT_FAILURE,
349 eSIR_SME_FT_REASSOC_FAILURE,
350#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700351 eSIR_SME_SEND_ACTION_FAIL,
Jeff Johnson295189b2012-06-20 16:38:30 -0700352#ifdef WLAN_FEATURE_PACKET_FILTERING
353 eSIR_SME_PC_FILTER_MATCH_COUNT_REQ_FAILED,
354#endif // WLAN_FEATURE_PACKET_FILTERING
355
356#ifdef WLAN_FEATURE_GTK_OFFLOAD
357 eSIR_SME_GTK_OFFLOAD_GETINFO_REQ_FAILED,
358#endif // WLAN_FEATURE_GTK_OFFLOAD
Leela Venkata Kiran Kumar Reddy Chirala56df73f2014-01-30 14:18:00 -0800359 eSIR_SME_DEAUTH_STATUS,
Jeff Johnson295189b2012-06-20 16:38:30 -0700360 eSIR_DONOT_USE_RESULT_CODE = SIR_MAX_ENUM_SIZE
361} tSirResultCodes;
362
Jeff Johnson295189b2012-06-20 16:38:30 -0700363/* each station added has a rate mode which specifies the sta attributes */
364typedef enum eStaRateMode {
365 eSTA_TAURUS = 0,
366 eSTA_TITAN,
367 eSTA_POLARIS,
368 eSTA_11b,
369 eSTA_11bg,
370 eSTA_11a,
371 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700372#ifdef WLAN_FEATURE_11AC
373 eSTA_11ac,
374#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700375 eSTA_INVALID_RATE_MODE
376} tStaRateMode, *tpStaRateMode;
377
378//although in tSirSupportedRates each IE is 16bit but PE only passes IEs in 8 bits with MSB=1 for basic rates.
379//change the mask for bit0-7 only so HAL gets correct basic rates for setting response rates.
380#define IERATE_BASICRATE_MASK 0x80
381#define IERATE_RATE_MASK 0x7f
382#define IERATE_IS_BASICRATE(x) ((x) & IERATE_BASICRATE_MASK)
383#define ANIENHANCED_TAURUS_RATEMAP_BITOFFSET_START 28
384
Sushant Kaushike0d2cce2014-04-10 14:36:07 +0530385const char * lim_BssTypetoString(const v_U8_t bssType);
386const char * lim_ScanTypetoString(const v_U8_t scanType);
387const char * lim_BackgroundScanModetoString(const v_U8_t mode);
Jeff Johnson295189b2012-06-20 16:38:30 -0700388typedef struct sSirSupportedRates {
389 /*
390 * For Self STA Entry: this represents Self Mode.
391 * For Peer Stations, this represents the mode of the peer.
392 * On Station:
393 * --this mode is updated when PE adds the Self Entry.
394 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
395 * ON AP:
396 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
397 * to indicate the self mode of the AP.
398 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
399 */
400
401 tStaRateMode opRateMode;
402 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
403 tANI_U16 llbRates[SIR_NUM_11B_RATES];
404 tANI_U16 llaRates[SIR_NUM_11A_RATES];
405 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
406
407 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
408 //First 26 bits are reserved for those Titan rates and
409 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
410 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
411
412 /*
413 * 0-76 bits used, remaining reserved
414 * bits 0-15 and 32 should be set.
415 */
416 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
417
418 /*
419 * RX Highest Supported Data Rate defines the highest data
420 * rate that the STA is able to receive, in unites of 1Mbps.
421 * This value is derived from "Supported MCS Set field" inside
422 * the HT capability element.
423 */
424 tANI_U16 rxHighestDataRate;
425
Jeff Johnsone7245742012-09-05 17:12:55 -0700426#ifdef WLAN_FEATURE_11AC
427 /*Indicates the Maximum MCS that can be received for each number
428 of spacial streams */
429 tANI_U16 vhtRxMCSMap;
430 /*Indicate the highest VHT data rate that the STA is able to receive*/
431 tANI_U16 vhtRxHighestDataRate;
Madan Mohan Koyyalamudi1bed5982012-10-22 14:38:06 -0700432 /*Indicates the Maximum MCS that can be transmitted for each number
Jeff Johnsone7245742012-09-05 17:12:55 -0700433 of spacial streams */
434 tANI_U16 vhtTxMCSMap;
435 /*Indicate the highest VHT data rate that the STA is able to transmit*/
436 tANI_U16 vhtTxHighestDataRate;
437#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700438} tSirSupportedRates, *tpSirSupportedRates;
439
440
441typedef enum eSirRFBand
442{
443 SIR_BAND_UNKNOWN,
444 SIR_BAND_2_4_GHZ,
445 SIR_BAND_5_GHZ,
446} tSirRFBand;
447
448
449/*
450* Specifies which beacons are to be indicated upto the host driver when
451* Station is in power save mode.
452*/
453typedef enum eBeaconForwarding
454{
455 ePM_BEACON_FWD_NTH,
456 ePM_BEACON_FWD_TIM,
457 ePM_BEACON_FWD_DTIM,
458 ePM_BEACON_FWD_NONE
459} tBeaconForwarding;
460
461
Jeff Johnson295189b2012-06-20 16:38:30 -0700462typedef struct sSirRemainOnChnReq
463{
464 tANI_U16 messageType;
465 tANI_U16 length;
466 tANI_U8 sessionId;
467 tSirMacAddr selfMacAddr;
468 tANI_U8 chnNum;
469 tANI_U8 phyMode;
470 tANI_U32 duration;
Gopichand Nakkala924e4552013-05-08 19:18:14 +0530471 tANI_U8 isProbeRequestAllowed;
Jeff Johnson295189b2012-06-20 16:38:30 -0700472 tANI_U8 probeRspIe[1];
473}tSirRemainOnChnReq, *tpSirRemainOnChnReq;
474
Rashmi Ramannad3a03bf2013-12-31 18:33:24 +0530475/* Structure for vendor specific IE of debug marker frame
476 to debug remain on channel issues */
477typedef struct publicVendorSpecific
478{
479 tANI_U8 category;
480 tANI_U8 elementid;
481 tANI_U8 length;
482} publicVendorSpecific;
483
Jeff Johnson295189b2012-06-20 16:38:30 -0700484typedef struct sSirRegisterMgmtFrame
485{
486 tANI_U16 messageType;
487 tANI_U16 length;
488 tANI_U8 sessionId;
489 tANI_BOOLEAN registerFrame;
490 tANI_U16 frameType;
491 tANI_U16 matchLen;
492 tANI_U8 matchData[1];
493}tSirRegisterMgmtFrame, *tpSirRegisterMgmtFrame;
Jeff Johnson295189b2012-06-20 16:38:30 -0700494
495//
Jeff Johnson295189b2012-06-20 16:38:30 -0700496// Identifies the neighbor BSS' that was(were) detected
497// by an STA and reported to the AP
498//
499typedef struct sAniTitanCBNeighborInfo
500{
501 // A BSS was found on the Primary
502 tANI_U8 cbBssFoundPri;
503
504 // A BSS was found on the adjacent Upper Secondary
505 tANI_U8 cbBssFoundSecUp;
506
507 // A BSS was found on the adjacent Lower Secondary
508 tANI_U8 cbBssFoundSecDown;
509
510} tAniTitanCBNeighborInfo, *tpAniTitanCBNeighborInfo;
511
Jeff Johnson295189b2012-06-20 16:38:30 -0700512/// Generic type for sending a response message
513/// with result code to host software
514typedef struct sSirSmeRsp
515{
516 tANI_U16 messageType; // eWNI_SME_*_RSP
517 tANI_U16 length;
518 tANI_U8 sessionId; // To support BT-AMP
519 tANI_U16 transactionId; // To support BT-AMP
520 tSirResultCodes statusCode;
521} tSirSmeRsp, *tpSirSmeRsp;
522
523/// Definition for kick starting Firmware on STA
524typedef struct sSirSmeStartReq
525{
526 tANI_U16 messageType; // eWNI_SME_START_REQ
527 tANI_U16 length;
528 tANI_U8 sessionId; //Added for BT-AMP Support
529 tANI_U16 transcationId; //Added for BT-AMP Support
530 tSirMacAddr bssId; //Added For BT-AMP Support
531 tANI_U32 roamingAtPolaris;
Jeff Johnson295189b2012-06-20 16:38:30 -0700532 tANI_U32 sendNewBssInd;
Jeff Johnson295189b2012-06-20 16:38:30 -0700533} tSirSmeStartReq, *tpSirSmeStartReq;
534
535/// Definition for indicating all modules ready on STA
536typedef struct sSirSmeReadyReq
537{
538 tANI_U16 messageType; // eWNI_SME_SYS_READY_IND
539 tANI_U16 length;
540 tANI_U16 transactionId;
541} tSirSmeReadyReq, *tpSirSmeReadyReq;
542
543/// Definition for response message to previously issued start request
544typedef struct sSirSmeStartRsp
545{
546 tANI_U16 messageType; // eWNI_SME_START_RSP
547 tANI_U16 length;
548 tSirResultCodes statusCode;
549 tANI_U16 transactionId;
550} tSirSmeStartRsp, *tpSirSmeStartRsp;
551
Jeff Johnson295189b2012-06-20 16:38:30 -0700552
553/// Definition for Load structure
554typedef struct sSirLoad
555{
556 tANI_U16 numStas;
557 tANI_U16 channelUtilization;
558} tSirLoad, *tpSirLoad;
559
560/// BSS type enum used in while scanning/joining etc
561typedef enum eSirBssType
562{
563 eSIR_INFRASTRUCTURE_MODE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700564 eSIR_INFRA_AP_MODE, //Added for softAP support
Jeff Johnson295189b2012-06-20 16:38:30 -0700565 eSIR_IBSS_MODE,
566 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
567 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
568 eSIR_AUTO_MODE,
569 eSIR_DONOT_USE_BSS_TYPE = SIR_MAX_ENUM_SIZE
570} tSirBssType;
571
572/// Definition for WDS Information
573typedef struct sSirWdsInfo
574{
575 tANI_U16 wdsLength;
576 tANI_U8 wdsBytes[ANI_WDS_INFO_MAX_LENGTH];
577} tSirWdsInfo, *tpSirWdsInfo;
578
579/// Power Capability info used in 11H
580typedef struct sSirMacPowerCapInfo
581{
582 tANI_U8 minTxPower;
583 tANI_U8 maxTxPower;
584} tSirMacPowerCapInfo, *tpSirMacPowerCapInfo;
585
586/// Supported Channel info used in 11H
587typedef struct sSirSupChnl
588{
589 tANI_U8 numChnl;
590 tANI_U8 channelList[SIR_MAX_SUPPORTED_CHANNEL_LIST];
591} tSirSupChnl, *tpSirSupChnl;
592
593typedef enum eSirNwType
594{
595 eSIR_11A_NW_TYPE,
596 eSIR_11B_NW_TYPE,
597 eSIR_11G_NW_TYPE,
598 eSIR_11N_NW_TYPE,
Jeff Johnsone7245742012-09-05 17:12:55 -0700599#ifdef WLAN_FEATURE_11AC
600 eSIR_11AC_NW_TYPE,
601#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700602 eSIR_DONOT_USE_NW_TYPE = SIR_MAX_ENUM_SIZE
603} tSirNwType;
604
605/// Definition for new iBss peer info
606typedef struct sSirNewIbssPeerInfo
607{
608 tSirMacAddr peerAddr;
609 tANI_U16 aid;
610} tSirNewIbssPeerInfo, *tpSirNewIbssPeerInfo;
611
612/// Definition for Alternate BSS info
613typedef struct sSirAlternateRadioInfo
614{
615 tSirMacAddr bssId;
616 tANI_U8 channelId;
617} tSirAlternateRadioInfo, *tpSirAlternateRadioInfo;
618
619/// Definition for Alternate BSS list
620typedef struct sSirAlternateRadioList
621{
622 tANI_U8 numBss;
623 tSirAlternateRadioInfo alternateRadio[1];
624} tSirAlternateRadioList, *tpSirAlternateRadioList;
625
626/// Definition for kick starting BSS
627/// ---> MAC
628/**
629 * Usage of ssId, numSSID & ssIdList:
630 * ---------------------------------
631 * 1. ssId.length of zero indicates that Broadcast/Suppress SSID
632 * feature is enabled.
633 * 2. If ssId.length is zero, MAC SW will advertise NULL SSID
634 * and interpret the SSID list from numSSID & ssIdList.
635 * 3. If ssId.length is non-zero, MAC SW will advertise the SSID
636 * specified in the ssId field and it is expected that
637 * application will set numSSID to one (only one SSID present
638 * in the list) and SSID in the list is same as ssId field.
639 * 4. Application will always set numSSID >= 1.
640 */
641//*****NOTE: Please make sure all codes are updated if inserting field into this structure..**********
642typedef struct sSirSmeStartBssReq
643{
644 tANI_U16 messageType; // eWNI_SME_START_BSS_REQ
645 tANI_U16 length;
646 tANI_U8 sessionId; //Added for BT-AMP Support
647 tANI_U16 transactionId; //Added for BT-AMP Support
648 tSirMacAddr bssId; //Added for BT-AMP Support
649 tSirMacAddr selfMacAddr; //Added for BT-AMP Support
650 tANI_U16 beaconInterval; //Added for BT-AMP Support
651 tANI_U8 dot11mode;
652 tSirBssType bssType;
653 tSirMacSSid ssId;
654 tANI_U8 channelId;
Jeff Johnsone7245742012-09-05 17:12:55 -0700655 ePhyChanBondState cbMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700656
Jeff Johnson295189b2012-06-20 16:38:30 -0700657 tANI_U8 privacy;
658 tANI_U8 apUapsdEnable;
659 tANI_U8 ssidHidden;
660 tANI_BOOLEAN fwdWPSPBCProbeReq;
661 tANI_BOOLEAN protEnabled;
662 tANI_BOOLEAN obssProtEnabled;
663 tANI_U16 ht_capab;
664 tAniAuthType authType;
665 tANI_U32 dtimPeriod;
666 tANI_U8 wps_state;
krunal sonie9002db2013-11-25 14:24:17 -0800667 tANI_U8 isCoalesingInIBSSAllowed; //Coalesing on/off knob
Jeff Johnson295189b2012-06-20 16:38:30 -0700668 tVOS_CON_MODE bssPersona;
669
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -0800670 tANI_U8 txLdpcIniFeatureEnabled;
671
Jeff Johnson295189b2012-06-20 16:38:30 -0700672 tSirRSNie rsnIE; // RSN IE to be sent in
673 // Beacon and Probe
674 // Response frames
675 tSirNwType nwType; // Indicates 11a/b/g
676 tSirMacRateSet operationalRateSet;// Has 11a or 11b rates
677 tSirMacRateSet extendedRateSet; // Has 11g rates
678
Chet Lanctot8cecea22014-02-11 19:09:36 -0800679#ifdef WLAN_FEATURE_11W
680 tANI_BOOLEAN pmfCapable;
681 tANI_BOOLEAN pmfRequired;
682#endif
683
Hardik Kantilal Pateldd107952014-11-20 15:24:52 +0530684#ifdef WLAN_FEATURE_AP_HT40_24G
685 tANI_BOOLEAN apHT40_24GEnabled;
686#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700687} tSirSmeStartBssReq, *tpSirSmeStartBssReq;
688
689#define GET_IE_LEN_IN_BSS(lenInBss) ( lenInBss + sizeof(lenInBss) - \
krunal soni2a6a9062014-02-11 14:14:23 -0800690 ((uintptr_t)OFFSET_OF( tSirBssDescription, ieFields)))
Jeff Johnson295189b2012-06-20 16:38:30 -0700691
692#define WSCIE_PROBE_RSP_LEN (317 + 2)
693
694typedef struct sSirBssDescription
695{
696 //offset of the ieFields from bssId.
697 tANI_U16 length;
698 tSirMacAddr bssId;
699 v_TIME_t scanSysTimeMsec;
700 tANI_U32 timeStamp[2];
701 tANI_U16 beaconInterval;
702 tANI_U16 capabilityInfo;
703 tSirNwType nwType; // Indicates 11a/b/g
704 tANI_U8 aniIndicator;
705 tANI_S8 rssi;
706 tANI_S8 sinr;
707 //channelId what peer sent in beacon/probersp.
708 tANI_U8 channelId;
709 //channelId on which we are parked at.
710 //used only in scan case.
711 tANI_U8 channelIdSelf;
712 tANI_U8 sSirBssDescriptionRsvd[3];
Jeff Johnson295189b2012-06-20 16:38:30 -0700713 tANI_TIMESTAMP nReceivedTime; //base on a tick count. It is a time stamp, not a relative time.
714#if defined WLAN_FEATURE_VOWIFI
715 tANI_U32 parentTSF;
716 tANI_U32 startTSF[2];
717#endif
718#ifdef WLAN_FEATURE_VOWIFI_11R
719 tANI_U8 mdiePresent;
720 tANI_U8 mdie[SIR_MDIE_SIZE]; // MDIE for 11r, picked from the beacons
721#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800722#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -0700723 tANI_U16 QBSSLoad_present;
724 tANI_U16 QBSSLoad_avail;
725#endif
726 // Please keep the structure 4 bytes aligned above the ieFields
727
728 tANI_U8 fProbeRsp; //whether it is from a probe rsp
Madan Mohan Koyyalamudi2a6ba242012-10-31 17:06:19 -0700729 tANI_U8 reservedPadding1;
730 tANI_U8 reservedPadding2;
731 tANI_U8 reservedPadding3;
Jeff Johnson295189b2012-06-20 16:38:30 -0700732 tANI_U32 WscIeLen;
733 tANI_U8 WscIeProbeRsp[WSCIE_PROBE_RSP_LEN];
Madan Mohan Koyyalamudi2a6ba242012-10-31 17:06:19 -0700734 tANI_U8 reservedPadding4;
Prathyusha Kuntupalli7b8f6aa2012-12-10 13:17:35 -0800735
Jeff Johnson295189b2012-06-20 16:38:30 -0700736 tANI_U32 ieFields[1];
737} tSirBssDescription, *tpSirBssDescription;
738
739/// Definition for response message to previously
740/// issued start BSS request
741/// MAC --->
742typedef struct sSirSmeStartBssRsp
743{
744 tANI_U16 messageType; // eWNI_SME_START_BSS_RSP
745 tANI_U16 length;
746 tANI_U8 sessionId;
747 tANI_U16 transactionId;//transaction ID for cmd
748 tSirResultCodes statusCode;
749 tSirBssType bssType;//Add new type for WDS mode
750 tANI_U16 beaconInterval;//Beacon Interval for both type
751 tANI_U32 staId;//Staion ID for Self
752 tSirBssDescription bssDescription;//Peer BSS description
753} tSirSmeStartBssRsp, *tpSirSmeStartBssRsp;
754
Jeff Johnson295189b2012-06-20 16:38:30 -0700755
756typedef struct sSirChannelList
757{
758 tANI_U8 numChannels;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800759 tANI_U8 channelNumber[SIR_ESE_MAX_MEAS_IE_REQS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700760} tSirChannelList, *tpSirChannelList;
761
Gopichand Nakkalad492d202013-05-10 02:50:47 +0530762typedef struct sSirDFSChannelList
763{
764 tANI_U32 timeStamp[SIR_MAX_24G_5G_CHANNEL_RANGE];
765
766} tSirDFSChannelList, *tpSirDFSChannelList;
767
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800768#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -0700769typedef struct sTspecInfo {
770 tANI_U8 valid;
771 tSirMacTspecIE tspec;
772} tTspecInfo;
773
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800774#define SIR_ESE_MAX_TSPEC_IES 4
775typedef struct sESETspecTspecInfo {
Jeff Johnson295189b2012-06-20 16:38:30 -0700776 tANI_U8 numTspecs;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800777 tTspecInfo tspec[SIR_ESE_MAX_TSPEC_IES];
778} tESETspecInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -0700779#endif
780
Jeff Johnson295189b2012-06-20 16:38:30 -0700781
782/// Definition for Radar Info
783typedef struct sSirRadarInfo
784{
785 tANI_U8 channelNumber;
786 tANI_U16 radarPulseWidth; // in usecond
787 tANI_U16 numRadarPulse;
788} tSirRadarInfo, *tpSirRadarInfo;
789
790#define SIR_RADAR_INFO_SIZE (sizeof(tANI_U8) + 2 *sizeof(tANI_U16))
791
792/// Two Background Scan mode
793typedef enum eSirBackgroundScanMode
794{
795 eSIR_AGGRESSIVE_BACKGROUND_SCAN = 0,
Madan Mohan Koyyalamudi9b876782012-10-11 16:22:51 -0700796 eSIR_NORMAL_BACKGROUND_SCAN = 1,
797 eSIR_ROAMING_SCAN = 2,
Jeff Johnson295189b2012-06-20 16:38:30 -0700798} tSirBackgroundScanMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700799typedef enum eSirLinkTrafficCheck
800{
801 eSIR_DONT_CHECK_LINK_TRAFFIC_BEFORE_SCAN = 0,
Madan Mohan Koyyalamudi9b876782012-10-11 16:22:51 -0700802 eSIR_CHECK_LINK_TRAFFIC_BEFORE_SCAN = 1,
803 eSIR_CHECK_ROAMING_SCAN = 2,
Jeff Johnson295189b2012-06-20 16:38:30 -0700804} tSirLinkTrafficCheck;
805
806#define SIR_BG_SCAN_RETURN_CACHED_RESULTS 0x0
807#define SIR_BG_SCAN_PURGE_RESUTLS 0x80
808#define SIR_BG_SCAN_RETURN_FRESH_RESULTS 0x01
809#define SIR_SCAN_MAX_NUM_SSID 0x09
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700810#define SIR_BG_SCAN_RETURN_LFR_CACHED_RESULTS 0x02
811#define SIR_BG_SCAN_PURGE_LFR_RESULTS 0x40
Jeff Johnson295189b2012-06-20 16:38:30 -0700812
813/// Definition for scan request
814typedef struct sSirSmeScanReq
815{
816 tANI_U16 messageType; // eWNI_SME_SCAN_REQ
817 tANI_U16 length;
818 tANI_U8 sessionId; // Session ID
819 tANI_U16 transactionId; // Transaction ID for cmd
820 tSirMacAddr bssId;
821 tSirMacSSid ssId[SIR_SCAN_MAX_NUM_SSID];
822 tSirMacAddr selfMacAddr; //Added For BT-AMP Support
823 tSirBssType bssType;
824 tANI_U8 dot11mode;
825 tSirScanType scanType;
826 /**
827 * minChannelTime. Not used if scanType is passive.
828 * 0x0 - Dont Use min channel timer. Only max channel timeout will used.
829 * 11k measurements set this to zero to user only single duration for scan.
830 * <valid timeout> - Timeout value used for min channel timeout.
831 */
832 tANI_U32 minChannelTime;
833 /**
834 * maxChannelTime.
835 * 0x0 - Invalid. In case of active scan.
836 * In case of passive scan, MAX( maxChannelTime, WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME) is used.
837 *
838 */
839 tANI_U32 maxChannelTime;
840 /**
841 * returnAfterFirstMatch can take following values:
842 * 0x00 - Return SCAN_RSP message after complete channel scan
843 * 0x01 - Return SCAN_RSP message after collecting BSS description
844 * that matches scan criteria.
845 * 0xC0 - Return after collecting first 11d IE from 2.4 GHz &
846 * 5 GHz band channels
847 * 0x80 - Return after collecting first 11d IE from 5 GHz band
848 * channels
849 * 0x40 - Return after collecting first 11d IE from 2.4 GHz
850 * band channels
851 *
852 * Values of 0xC0, 0x80 & 0x40 are to be used by
853 * Roaming/application when 11d is enabled.
854 */
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800855 tANI_U32 minChannelTimeBtc; //in units of milliseconds
856 tANI_U32 maxChannelTimeBtc; //in units of milliseconds
Jeff Johnson295189b2012-06-20 16:38:30 -0700857 tANI_U8 returnAfterFirstMatch;
858
859 /**
860 * returnUniqueResults can take following values:
861 * 0 - Collect & report all received BSS descriptions from same BSS.
862 * 1 - Collect & report unique BSS description from same BSS.
863 */
864 tANI_U8 returnUniqueResults;
865
866 /**
867 * returnFreshResults can take following values:
868 * 0x00 - Return background scan results.
869 * 0x80 - Return & purge background scan results
870 * 0x01 - Trigger fresh scan instead of returning background scan
871 * results.
872 * 0x81 - Trigger fresh scan instead of returning background scan
873 * results and purge background scan results.
874 */
875 tANI_U8 returnFreshResults;
876
877 /* backgroundScanMode can take following values:
878 * 0x0 - agressive scan
879 * 0x1 - normal scan where HAL will check for link traffic
880 * prior to proceeding with the scan
881 */
882 tSirBackgroundScanMode backgroundScanMode;
883
884 tANI_U8 hiddenSsid;
885
886 /* Number of SSIDs to scan */
887 tANI_U8 numSsid;
888
889 //channelList has to be the last member of this structure. Check tSirChannelList for the reason.
890 /* This MUST be the last field of the structure */
891
892
Jeff Johnson295189b2012-06-20 16:38:30 -0700893 tANI_BOOLEAN p2pSearch;
Jeff Johnson295189b2012-06-20 16:38:30 -0700894 tANI_U16 uIEFieldLen;
895 tANI_U16 uIEFieldOffset;
896
897 //channelList MUST be the last field of this structure
898 tSirChannelList channelList;
899 /*-----------------------------
900 tSirSmeScanReq....
901 -----------------------------
902 uIEFiledLen
903 -----------------------------
904 uIEFiledOffset ----+
905 ----------------------------- |
906 channelList.numChannels |
907 ----------------------------- |
908 ... variable size up to |
909 channelNumber[numChannels-1] |
910 This can be zero, if |
911 numChannel is zero. |
912 ----------------------------- <--+
913 ... variable size uIEFiled
914 up to uIEFieldLen (can be 0)
915 -----------------------------*/
916} tSirSmeScanReq, *tpSirSmeScanReq;
917
Madan Mohan Koyyalamudiff3a7152013-06-13 14:47:55 +0530918typedef struct sSirSmeScanAbortReq
919{
920 tANI_U16 type;
921 tANI_U16 msgLen;
922 tANI_U8 sessionId;
923} tSirSmeScanAbortReq, *tpSirSmeScanAbortReq;
924
Madan Mohan Koyyalamudide1b5bc2013-07-12 00:56:04 +0530925typedef struct sSirSmeScanChanReq
926{
927 tANI_U16 type;
928 tANI_U16 msgLen;
929 tANI_U8 sessionId;
930 tANI_U16 transcationId;
931} tSirSmeGetScanChanReq, *tpSirSmeGetScanChanReq;
932
Jeff Johnsone7245742012-09-05 17:12:55 -0700933#ifdef FEATURE_OEM_DATA_SUPPORT
934
935#ifndef OEM_DATA_REQ_SIZE
Madan Mohan Koyyalamudi7a4d9312012-12-04 17:21:36 -0800936#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -0700937#endif
938#ifndef OEM_DATA_RSP_SIZE
Madan Mohan Koyyalamudi7a4d9312012-12-04 17:21:36 -0800939#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -0700940#endif
941
942typedef struct sSirOemDataReq
943{
944 tANI_U16 messageType; //eWNI_SME_OEM_DATA_REQ
Siddharth Bhal88aa5322014-06-19 14:27:15 +0530945 tANI_U16 messageLen;
Jeff Johnsone7245742012-09-05 17:12:55 -0700946 tSirMacAddr selfMacAddr;
947 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
948} tSirOemDataReq, *tpSirOemDataReq;
949
950typedef struct sSirOemDataRsp
951{
952 tANI_U16 messageType;
953 tANI_U16 length;
954 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
955} tSirOemDataRsp, *tpSirOemDataRsp;
956
957#endif //FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -0700958
959/// Definition for response message to previously issued scan request
960typedef struct sSirSmeScanRsp
961{
962 tANI_U16 messageType; // eWNI_SME_SCAN_RSP
963 tANI_U16 length;
964 tANI_U8 sessionId;
965 tSirResultCodes statusCode;
966 tANI_U16 transcationId;
967 tSirBssDescription bssDescription[1];
968} tSirSmeScanRsp, *tpSirSmeScanRsp;
969
970/// Sme Req message to set the Background Scan mode
971typedef struct sSirSmeBackgroundScanModeReq
972{
973 tANI_U16 messageType; // eWNI_SME_BACKGROUND_SCAN_MODE_REQ
974 tANI_U16 length;
975 tSirBackgroundScanMode mode;
976} tSirSmeBackgroundScanModeReq, *tpSirSmeBackgroundScanModeReq;
977
978/// Background Scan Statisics
979typedef struct sSirBackgroundScanInfo {
980 tANI_U32 numOfScanSuccess;
981 tANI_U32 numOfScanFailure;
982 tANI_U32 reserved;
983} tSirBackgroundScanInfo, *tpSirBackgroundScanInfo;
984
985#define SIR_BACKGROUND_SCAN_INFO_SIZE (3 * sizeof(tANI_U32))
986
987/// Definition for Authentication request
988typedef struct sSirSmeAuthReq
989{
990 tANI_U16 messageType; // eWNI_SME_AUTH_REQ
991 tANI_U16 length;
992 tANI_U8 sessionId; // Session ID
993 tANI_U16 transactionId; // Transaction ID for cmd
994 tSirMacAddr bssId; // Self BSSID
995 tSirMacAddr peerMacAddr;
996 tAniAuthType authType;
997 tANI_U8 channelNumber;
998} tSirSmeAuthReq, *tpSirSmeAuthReq;
999
1000/// Definition for reponse message to previously issued Auth request
1001typedef struct sSirSmeAuthRsp
1002{
1003 tANI_U16 messageType; // eWNI_SME_AUTH_RSP
1004 tANI_U16 length;
1005 tANI_U8 sessionId; // Session ID
1006 tANI_U16 transactionId; // Transaction ID for cmd
1007 tSirMacAddr peerMacAddr;
1008 tAniAuthType authType;
1009 tSirResultCodes statusCode;
1010 tANI_U16 protStatusCode; //It holds reasonCode when Pre-Auth fails due to deauth frame.
1011 //Otherwise it holds status code.
1012} tSirSmeAuthRsp, *tpSirSmeAuthRsp;
1013
Jeff Johnson295189b2012-06-20 16:38:30 -07001014
Jeff Johnson295189b2012-06-20 16:38:30 -07001015
Jeff Johnson295189b2012-06-20 16:38:30 -07001016/// Definition for Join/Reassoc info - Reshmi: need to check if this is a def which moved from elsehwere.
1017typedef struct sJoinReassocInfo
1018{
1019 tAniTitanCBNeighborInfo cbNeighbors;
1020 tAniBool spectrumMgtIndicator;
1021 tSirMacPowerCapInfo powerCap;
1022 tSirSupChnl supportedChannels;
1023} tJoinReassocInfo, *tpJoinReassocInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -07001024
1025/// Definition for join request
1026/// ---> MAC
1027/// WARNING! If you add a field in JOIN REQ.
1028/// Make sure to add it in REASSOC REQ
1029/// The Serdes function is the same and its
1030/// shared with REASSOC. So if we add a field
1031// here and dont add it in REASSOC REQ. It will BREAK!!! REASSOC.
1032typedef struct sSirSmeJoinReq
1033{
1034 tANI_U16 messageType; // eWNI_SME_JOIN_REQ
1035 tANI_U16 length;
Jeff Johnsone7245742012-09-05 17:12:55 -07001036 tANI_U8 sessionId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001037 tANI_U16 transactionId;
1038 tSirMacSSid ssId;
1039 tSirMacAddr selfMacAddr; // self Mac address
1040 tSirBssType bsstype; // add new type for BT -AMP STA and AP Modules
1041 tANI_U8 dot11mode; // to support BT-AMP
Jeff Johnsone7245742012-09-05 17:12:55 -07001042 tVOS_CON_MODE staPersona; //Persona
Sushant Kaushik74df8db2015-03-11 18:09:05 +05301043 tANI_BOOLEAN bOSENAssociation; //HS2.0
Jeff Johnsone7245742012-09-05 17:12:55 -07001044 ePhyChanBondState cbMode; // Pass CB mode value in Join.
Jeff Johnson295189b2012-06-20 16:38:30 -07001045
1046 /*This contains the UAPSD Flag for all 4 AC
1047 * B0: AC_VO UAPSD FLAG
1048 * B1: AC_VI UAPSD FLAG
1049 * B2: AC_BK UAPSD FLAG
1050 * B3: AC_BE UASPD FLAG
1051 */
1052 tANI_U8 uapsdPerAcBitmask;
1053
Jeff Johnson295189b2012-06-20 16:38:30 -07001054 tSirMacRateSet operationalRateSet;// Has 11a or 11b rates
1055 tSirMacRateSet extendedRateSet; // Has 11g rates
Masti, Narayanraddi67ea5912015-01-08 12:34:05 +05301056 tANI_U16 rateBitMap;
Jeff Johnson295189b2012-06-20 16:38:30 -07001057 tSirRSNie rsnIE; // RSN IE to be sent in
1058 // (Re) Association Request
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001059#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -07001060 tSirCCKMie cckmIE; // CCMK IE to be included as handler for join and reassoc is
1061 // the same. The join will never carry cckm, but will be set to
1062 // 0.
1063#endif
1064
1065 tSirAddie addIEScan; // Additional IE to be sent in
1066 // (unicast) Probe Request at the time of join
1067
1068 tSirAddie addIEAssoc; // Additional IE to be sent in
1069 // (Re) Association Request
1070
1071 tAniEdType UCEncryptionType;
1072
1073 tAniEdType MCEncryptionType;
Chet Lanctot186b5732013-03-18 10:26:30 -07001074
1075#ifdef WLAN_FEATURE_11W
1076 tAniEdType MgmtEncryptionType;
1077#endif
1078
Jeff Johnson295189b2012-06-20 16:38:30 -07001079#ifdef WLAN_FEATURE_VOWIFI_11R
1080 tAniBool is11Rconnection;
1081#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001082#ifdef FEATURE_WLAN_ESE
1083 tAniBool isESEFeatureIniEnabled;
1084 tAniBool isESEconnection;
1085 tESETspecInfo eseTspecInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -07001086#endif
1087
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001088#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07001089 tAniBool isFastTransitionEnabled;
1090#endif
Jeff Johnson43971f52012-07-17 12:26:56 -07001091#ifdef FEATURE_WLAN_LFR
1092 tAniBool isFastRoamIniFeatureEnabled;
1093#endif
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001094
1095 tANI_U8 txLdpcIniFeatureEnabled;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001096#ifdef WLAN_FEATURE_11AC
1097 tANI_U8 txBFIniFeatureEnabled;
Shailender Karmuchicc3fe442013-02-16 18:18:33 -08001098 tANI_U8 txBFCsnValue;
Abhishek Singh6d5d29c2014-07-03 14:25:22 +05301099 tANI_U8 txMuBformee;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001100#endif
krunal soni5afa96c2013-09-06 22:19:02 -07001101 tANI_U8 isAmsduSupportInAMPDU;
Sandeep Puligillaaea98a22013-12-04 13:36:32 +05301102 tAniBool isWMEenabled;
1103 tAniBool isQosEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07001104 tAniTitanCBNeighborInfo cbNeighbors;
1105 tAniBool spectrumMgtIndicator;
1106 tSirMacPowerCapInfo powerCap;
1107 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001108 tSirBssDescription bssDescription;
Jeff Johnson295189b2012-06-20 16:38:30 -07001109
1110} tSirSmeJoinReq, *tpSirSmeJoinReq;
1111
1112/// Definition for reponse message to previously issued join request
1113/// MAC --->
1114typedef struct sSirSmeJoinRsp
1115{
1116 tANI_U16 messageType; // eWNI_SME_JOIN_RSP
1117 tANI_U16 length;
1118 tANI_U8 sessionId; // Session ID
1119 tANI_U16 transactionId; // Transaction ID for cmd
1120 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001121 tAniAuthType authType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001122 tANI_U16 protStatusCode; //It holds reasonCode when join fails due to deauth/disassoc frame.
1123 //Otherwise it holds status code.
1124 tANI_U16 aid;
1125 tANI_U32 beaconLength;
1126 tANI_U32 assocReqLength;
1127 tANI_U32 assocRspLength;
1128#ifdef WLAN_FEATURE_VOWIFI_11R
1129 tANI_U32 parsedRicRspLen;
1130#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001131#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -07001132 tANI_U32 tspecIeLen;
1133#endif
1134 tANI_U32 staId;//Station ID for peer
1135
1136 /*The DPU signatures will be sent eventually to TL to help it determine the
1137 association to which a packet belongs to*/
1138 /*Unicast DPU signature*/
1139 tANI_U8 ucastSig;
1140
1141 /*Broadcast DPU signature*/
1142 tANI_U8 bcastSig;
1143
c_hpothu44ff4e02014-05-08 00:13:57 +05301144 /*to report MAX link-speed populate rate-flags from ASSOC RSP frame*/
1145 tANI_U32 maxRateFlags;
1146
Jeff Johnson295189b2012-06-20 16:38:30 -07001147 tANI_U8 frames[ 1 ];
1148} tSirSmeJoinRsp, *tpSirSmeJoinRsp;
1149
1150/// Definition for Authentication indication from peer
1151typedef struct sSirSmeAuthInd
1152{
1153 tANI_U16 messageType; // eWNI_SME_AUTH_IND
1154 tANI_U16 length;
1155 tANI_U8 sessionId;
1156 tSirMacAddr bssId; // Self BSSID
1157 tSirMacAddr peerMacAddr;
1158 tAniAuthType authType;
1159} tSirSmeAuthInd, *tpSirSmeAuthInd;
1160
1161/// probereq from peer, when wsc is enabled
1162typedef struct sSirSmeProbereq
1163{
1164 tANI_U16 messageType; // eWNI_SME_PROBE_REQ
1165 tANI_U16 length;
1166 tANI_U8 sessionId;
1167 tSirMacAddr peerMacAddr;
1168 tANI_U16 devicePasswdId;
1169} tSirSmeProbeReq, *tpSirSmeProbeReq;
1170
1171/// Definition for Association indication from peer
1172/// MAC --->
1173typedef struct sSirSmeAssocInd
1174{
1175 tANI_U16 messageType; // eWNI_SME_ASSOC_IND
1176 tANI_U16 length;
1177 tANI_U8 sessionId;
1178 tSirMacAddr peerMacAddr;
1179 tANI_U16 aid;
1180 tSirMacAddr bssId; // Self BSSID
1181 tANI_U16 staId; // Station ID for peer
1182 tANI_U8 uniSig; // DPU signature for unicast packets
1183 tANI_U8 bcastSig; // DPU signature for broadcast packets
1184 tAniAuthType authType;
1185 tAniSSID ssId; // SSID used by STA to associate
1186 tSirRSNie rsnIE;// RSN IE received from peer
1187 tSirAddie addIE;// Additional IE received from peer, which possibly include WSC IE and/or P2P IE
1188
Jeff Johnson295189b2012-06-20 16:38:30 -07001189 // powerCap & supportedChannels are present only when
1190 // spectrumMgtIndicator flag is set
1191 tAniBool spectrumMgtIndicator;
1192 tSirMacPowerCapInfo powerCap;
1193 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001194 tAniBool wmmEnabledSta; /* if present - STA is WMM enabled */
Hardik Kantilal Patel1ba630f2014-11-21 04:32:05 +05301195#ifdef WLAN_FEATURE_AP_HT40_24G
1196 tAniBool HT40MHzIntoEnabledSta; /* if present - STA Enable 40 MHz Intolerant */
1197#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001198 tAniBool reassocReq;
1199 // Required for indicating the frames to upper layer
1200 tANI_U32 beaconLength;
1201 tANI_U8* beaconPtr;
1202 tANI_U32 assocReqLength;
1203 tANI_U8* assocReqPtr;
Deepthi Gowriae6a1662015-10-12 12:59:37 +05301204 uint32_t rate_flags;
Jeff Johnson295189b2012-06-20 16:38:30 -07001205} tSirSmeAssocInd, *tpSirSmeAssocInd;
1206
1207
1208/// Definition for Association confirm
1209/// ---> MAC
1210typedef struct sSirSmeAssocCnf
1211{
1212 tANI_U16 messageType; // eWNI_SME_ASSOC_CNF
1213 tANI_U16 length;
1214 tSirResultCodes statusCode;
1215 tSirMacAddr bssId; // Self BSSID
1216 tSirMacAddr peerMacAddr;
1217 tANI_U16 aid;
1218 tSirMacAddr alternateBssId;
1219 tANI_U8 alternateChannelId;
1220} tSirSmeAssocCnf, *tpSirSmeAssocCnf;
1221
Jeff Johnson295189b2012-06-20 16:38:30 -07001222/// Definition for Reassociation indication from peer
1223typedef struct sSirSmeReassocInd
1224{
1225 tANI_U16 messageType; // eWNI_SME_REASSOC_IND
1226 tANI_U16 length;
1227 tANI_U8 sessionId; // Session ID
1228 tSirMacAddr peerMacAddr;
1229 tSirMacAddr oldMacAddr;
1230 tANI_U16 aid;
1231 tSirMacAddr bssId; // Self BSSID
1232 tANI_U16 staId; // Station ID for peer
1233 tAniAuthType authType;
1234 tAniSSID ssId; // SSID used by STA to reassociate
1235 tSirRSNie rsnIE; // RSN IE received from peer
1236
1237 tSirAddie addIE; // Additional IE received from peer
1238
Jeff Johnson295189b2012-06-20 16:38:30 -07001239 // powerCap & supportedChannels are present only when
1240 // spectrumMgtIndicator flag is set
1241 tAniBool spectrumMgtIndicator;
1242 tSirMacPowerCapInfo powerCap;
1243 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001244 // Required for indicating the frames to upper layer
1245 // TODO: use the appropriate names to distinguish between the other similar names used above for station mode of operation
1246 tANI_U32 beaconLength;
1247 tANI_U8* beaconPtr;
1248 tANI_U32 assocReqLength;
1249 tANI_U8* assocReqPtr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001250} tSirSmeReassocInd, *tpSirSmeReassocInd;
1251
1252/// Definition for Reassociation confirm
1253/// ---> MAC
1254typedef struct sSirSmeReassocCnf
1255{
1256 tANI_U16 messageType; // eWNI_SME_REASSOC_CNF
1257 tANI_U16 length;
1258 tSirResultCodes statusCode;
1259 tSirMacAddr bssId; // Self BSSID
1260 tSirMacAddr peerMacAddr;
1261 tANI_U16 aid;
1262 tSirMacAddr alternateBssId;
1263 tANI_U8 alternateChannelId;
1264} tSirSmeReassocCnf, *tpSirSmeReassocCnf;
1265
Jeff Johnson295189b2012-06-20 16:38:30 -07001266
1267/// Enum definition for Wireless medium status change codes
1268typedef enum eSirSmeStatusChangeCode
1269{
1270 eSIR_SME_DEAUTH_FROM_PEER,
1271 eSIR_SME_DISASSOC_FROM_PEER,
1272 eSIR_SME_LOST_LINK_WITH_PEER,
1273 eSIR_SME_CHANNEL_SWITCH,
1274 eSIR_SME_JOINED_NEW_BSS,
1275 eSIR_SME_LEAVING_BSS,
1276 eSIR_SME_IBSS_ACTIVE,
1277 eSIR_SME_IBSS_INACTIVE,
1278 eSIR_SME_IBSS_PEER_DEPARTED,
1279 eSIR_SME_RADAR_DETECTED,
1280 eSIR_SME_IBSS_NEW_PEER,
1281 eSIR_SME_AP_CAPS_CHANGED,
1282 eSIR_SME_BACKGROUND_SCAN_FAIL,
1283 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_AP,
1284 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
1285} tSirSmeStatusChangeCode;
1286
1287typedef struct sSirSmeNewBssInfo
1288{
1289 tSirMacAddr bssId;
1290 tANI_U8 channelNumber;
1291 tANI_U8 reserved;
1292 tSirMacSSid ssId;
1293} tSirSmeNewBssInfo, *tpSirSmeNewBssInfo;
1294
1295typedef struct sSirSmeApNewCaps
1296{
1297 tANI_U16 capabilityInfo;
1298 tSirMacAddr bssId;
1299 tANI_U8 channelId;
1300 tANI_U8 reserved[3];
1301 tSirMacSSid ssId;
1302} tSirSmeApNewCaps, *tpSirSmeApNewCaps;
1303
1304/**
1305 * Table below indicates what information is passed for each of
1306 * the Wireless Media status change notifications:
1307 *
1308 * Status Change code Status change info
1309 * ----------------------------------------------------------------------
1310 * eSIR_SME_DEAUTH_FROM_PEER Reason code received in DEAUTH frame
1311 * eSIR_SME_DISASSOC_FROM_PEER Reason code received in DISASSOC frame
1312 * eSIR_SME_LOST_LINK_WITH_PEER None
1313 * eSIR_SME_CHANNEL_SWITCH New channel number
1314 * eSIR_SME_JOINED_NEW_BSS BSSID, SSID and channel number
1315 * eSIR_SME_LEAVING_BSS None
1316 * eSIR_SME_IBSS_ACTIVE Indicates that another STA joined
1317 * IBSS apart from this STA that
1318 * started IBSS
1319 * eSIR_SME_IBSS_INACTIVE Indicates that only this STA is left
1320 * in IBSS
1321 * eSIR_SME_RADAR_DETECTED Indicates that radar is detected
1322 * eSIR_SME_IBSS_NEW_PEER Indicates that a new peer is detected
1323 * eSIR_SME_AP_CAPS_CHANGED Indicates that capabilities of the AP
1324 * that STA is currently associated with
1325 * have changed.
1326 * eSIR_SME_BACKGROUND_SCAN_FAIL Indicates background scan failure
1327 */
1328
1329/// Definition for Wireless medium status change notification
1330typedef struct sSirSmeWmStatusChangeNtf
1331{
1332 tANI_U16 messageType; // eWNI_SME_WM_STATUS_CHANGE_NTF
1333 tANI_U16 length;
1334 tANI_U8 sessionId; // Session ID
1335 tSirSmeStatusChangeCode statusChangeCode;
1336 tSirMacAddr bssId; // Self BSSID
1337 union
1338 {
1339 tANI_U16 deAuthReasonCode; // eSIR_SME_DEAUTH_FROM_PEER
1340 tANI_U16 disassocReasonCode; // eSIR_SME_DISASSOC_FROM_PEER
1341 // none for eSIR_SME_LOST_LINK_WITH_PEER
1342 tANI_U8 newChannelId; // eSIR_SME_CHANNEL_SWITCH
1343 tSirSmeNewBssInfo newBssInfo; // eSIR_SME_JOINED_NEW_BSS
1344 // none for eSIR_SME_LEAVING_BSS
1345 // none for eSIR_SME_IBSS_ACTIVE
1346 // none for eSIR_SME_IBSS_INACTIVE
Jeff Johnson295189b2012-06-20 16:38:30 -07001347 tSirNewIbssPeerInfo newIbssPeerInfo; // eSIR_SME_IBSS_NEW_PEER
1348 tSirSmeApNewCaps apNewCaps; // eSIR_SME_AP_CAPS_CHANGED
1349 tSirBackgroundScanInfo bkgndScanInfo; // eSIR_SME_BACKGROUND_SCAN_FAIL
1350 tAniTitanCBNeighborInfo cbNeighbors; // eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
Jeff Johnson295189b2012-06-20 16:38:30 -07001351 } statusChangeInfo;
1352} tSirSmeWmStatusChangeNtf, *tpSirSmeWmStatusChangeNtf;
1353
1354/// Definition for Disassociation request
1355typedef
Jeff Johnson295189b2012-06-20 16:38:30 -07001356__ani_attr_pre_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001357struct sSirSmeDisassocReq
1358{
1359 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1360 tANI_U16 length;
1361 tANI_U8 sessionId; // Session ID
1362 tANI_U16 transactionId; // Transaction ID for cmd
1363 tSirMacAddr bssId; // Peer BSSID
1364 tSirMacAddr peerMacAddr;
1365 tANI_U16 reasonCode;
1366 tANI_U8 doNotSendOverTheAir; //This flag tells LIM whether to send the disassoc OTA or not
1367 //This will be set in while handing off from one AP to other
Jeff Johnson295189b2012-06-20 16:38:30 -07001368}
Jeff Johnson295189b2012-06-20 16:38:30 -07001369__ani_attr_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001370tSirSmeDisassocReq, *tpSirSmeDisassocReq;
1371
1372/// Definition for Tkip countermeasures request
Jeff Johnson295189b2012-06-20 16:38:30 -07001373typedef __ani_attr_pre_packed struct sSirSmeTkipCntrMeasReq
1374{
1375 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1376 tANI_U16 length;
1377 tANI_U8 sessionId; // Session ID
1378 tANI_U16 transactionId; // Transaction ID for cmd
1379 tSirMacAddr bssId; // Peer BSSID
1380 tANI_BOOLEAN bEnable; // Start/stop countermeasures
1381} __ani_attr_packed tSirSmeTkipCntrMeasReq, *tpSirSmeTkipCntrMeasReq;
Jeff Johnson295189b2012-06-20 16:38:30 -07001382
1383typedef struct sAni64BitCounters
1384{
1385 tANI_U32 Hi;
1386 tANI_U32 Lo;
1387}tAni64BitCounters, *tpAni64BitCounters;
1388
1389typedef struct sAniSecurityStat
1390{
1391 tAni64BitCounters txBlks;
1392 tAni64BitCounters rxBlks;
1393 tAni64BitCounters formatErrorCnt;
1394 tAni64BitCounters decryptErr;
1395 tAni64BitCounters protExclCnt;
1396 tAni64BitCounters unDecryptableCnt;
1397 tAni64BitCounters decryptOkCnt;
1398
1399}tAniSecurityStat, *tpAniSecurityStat;
1400
1401typedef struct sAniTxRxCounters
1402{
1403 tANI_U32 txFrames; // Incremented for every packet tx
1404 tANI_U32 rxFrames;
1405 tANI_U32 nRcvBytes;
1406 tANI_U32 nXmitBytes;
1407}tAniTxRxCounters, *tpAniTxRxCounters;
1408
1409typedef struct sAniTxRxStats
1410{
1411 tAni64BitCounters txFrames;
1412 tAni64BitCounters rxFrames;
1413 tAni64BitCounters nRcvBytes;
1414 tAni64BitCounters nXmitBytes;
1415
1416}tAniTxRxStats,*tpAniTxRxStats;
1417
1418typedef struct sAniSecStats
1419{
1420 tAniSecurityStat aes;
1421 tAni64BitCounters aesReplays;
1422 tAniSecurityStat tkip;
1423 tAni64BitCounters tkipReplays;
1424 tAni64BitCounters tkipMicError;
1425
1426 tAniSecurityStat wep;
1427#if defined(FEATURE_WLAN_WAPI) && !defined(LIBRA_WAPI_SUPPORT)
1428 tAniSecurityStat wpi;
1429 tAni64BitCounters wpiReplays;
1430 tAni64BitCounters wpiMicError;
1431#endif
1432}tAniSecStats, *tpAniSecStats;
1433
1434#define SIR_MAX_RX_CHAINS 3
1435
1436typedef struct sAniStaStatStruct
1437{
1438 /* following statistic elements till expandPktRxCntLo are not filled with valid data.
1439 * These are kept as it is, since WSM is using this structure.
1440 * These elements can be removed whenever WSM is updated.
1441 * Phystats is used to hold phystats from BD.
1442 */
1443 tANI_U32 sentAesBlksUcastHi;
1444 tANI_U32 sentAesBlksUcastLo;
1445 tANI_U32 recvAesBlksUcastHi;
1446 tANI_U32 recvAesBlksUcastLo;
1447 tANI_U32 aesFormatErrorUcastCnts;
1448 tANI_U32 aesReplaysUcast;
1449 tANI_U32 aesDecryptErrUcast;
1450 tANI_U32 singleRetryPkts;
1451 tANI_U32 failedTxPkts;
1452 tANI_U32 ackTimeouts;
1453 tANI_U32 multiRetryPkts;
1454 tANI_U32 fragTxCntsHi;
1455 tANI_U32 fragTxCntsLo;
1456 tANI_U32 transmittedPktsHi;
1457 tANI_U32 transmittedPktsLo;
1458 tANI_U32 phyStatHi; //These are used to fill in the phystats.
1459 tANI_U32 phyStatLo; //This is only for private use.
1460
1461 tANI_U32 uplinkRssi;
1462 tANI_U32 uplinkSinr;
1463 tANI_U32 uplinkRate;
1464 tANI_U32 downlinkRssi;
1465 tANI_U32 downlinkSinr;
1466 tANI_U32 downlinkRate;
1467 tANI_U32 nRcvBytes;
1468 tANI_U32 nXmitBytes;
1469
1470 // titan 3c stats
1471 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1472 tANI_U32 chunksTxCntLo;
1473 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1474 tANI_U32 compPktRxCntLo;
1475 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1476 tANI_U32 expanPktRxCntLo;
1477
1478
1479 /* Following elements are valid and filled in correctly. They have valid values.
1480 */
1481
1482 //Unicast frames and bytes.
1483 tAniTxRxStats ucStats;
1484
1485 //Broadcast frames and bytes.
1486 tAniTxRxStats bcStats;
1487
1488 //Multicast frames and bytes.
1489 tAniTxRxStats mcStats;
1490
1491 tANI_U32 currentTxRate;
1492 tANI_U32 currentRxRate; //Rate in 100Kbps
1493
1494 tANI_U32 maxTxRate;
1495 tANI_U32 maxRxRate;
1496
1497 tANI_S8 rssi[SIR_MAX_RX_CHAINS];
1498
1499
1500 tAniSecStats securityStats;
1501
1502 tANI_U8 currentRxRateIdx; //This the softmac rate Index.
1503 tANI_U8 currentTxRateIdx;
1504
1505} tAniStaStatStruct, *tpAniStaStatStruct;
1506
1507//Statistics that are not maintained per stations.
1508typedef struct sAniGlobalStatStruct
1509{
1510 tAni64BitCounters txError;
1511 tAni64BitCounters rxError;
1512 tAni64BitCounters rxDropNoBuffer;
1513 tAni64BitCounters rxDropDup;
1514 tAni64BitCounters rxCRCError;
1515
1516 tAni64BitCounters singleRetryPkts;
1517 tAni64BitCounters failedTxPkts;
1518 tAni64BitCounters ackTimeouts;
1519 tAni64BitCounters multiRetryPkts;
1520 tAni64BitCounters fragTxCnts;
1521 tAni64BitCounters fragRxCnts;
1522
1523 tAni64BitCounters txRTSSuccess;
1524 tAni64BitCounters txCTSSuccess;
1525 tAni64BitCounters rxRTSSuccess;
1526 tAni64BitCounters rxCTSSuccess;
1527
1528 tAniSecStats securityStats;
1529
1530 tAniTxRxStats mcStats;
1531 tAniTxRxStats bcStats;
1532
1533}tAniGlobalStatStruct,*tpAniGlobalStatStruct;
1534
1535typedef enum sPacketType
1536{
1537 ePACKET_TYPE_UNKNOWN,
1538 ePACKET_TYPE_11A,
1539 ePACKET_TYPE_11G,
1540 ePACKET_TYPE_11B,
1541 ePACKET_TYPE_11N
1542
1543}tPacketType, *tpPacketType;
1544
1545typedef struct sAniStatSummaryStruct
1546{
1547 tAniTxRxStats uc; //Unicast counters.
1548 tAniTxRxStats bc; //Broadcast counters.
1549 tAniTxRxStats mc; //Multicast counters.
1550 tAni64BitCounters txError;
1551 tAni64BitCounters rxError;
1552 tANI_S8 rssi[SIR_MAX_RX_CHAINS]; //For each chain.
1553 tANI_U32 rxRate; // Rx rate of the last received packet.
1554 tANI_U32 txRate;
1555 tANI_U16 rxMCSId; //MCS index is valid only when packet type is ePACKET_TYPE_11N
1556 tANI_U16 txMCSId;
1557 tPacketType rxPacketType;
1558 tPacketType txPacketType;
1559 tSirMacAddr macAddr; //Mac Address of the station from which above RSSI and rate is from.
1560}tAniStatSummaryStruct,*tpAniStatSummaryStruct;
1561
Jeff Johnson295189b2012-06-20 16:38:30 -07001562//structure for stats that may be reset, like the ones in sta descriptor
1563//The stats are saved into here before reset. It should be tANI_U32 aligned.
1564typedef struct _sPermStaStats
1565{
1566 //tANI_U32 sentAesBlksUcastHi;
1567 //tANI_U32 sentAesBlksUcastLo;
1568 //tANI_U32 recvAesBlksUcastHi;
1569 //tANI_U32 recvAesBlksUcastLo;
1570 tANI_U32 aesFormatErrorUcastCnts;
1571 tANI_U32 aesReplaysUcast;
1572 tANI_U32 aesDecryptErrUcast;
1573 tANI_U32 singleRetryPkts;
1574 tANI_U32 failedTxPkts;
1575 tANI_U32 ackTimeouts;
1576 tANI_U32 multiRetryPkts;
1577 tANI_U32 fragTxCntsHi;
1578 tANI_U32 fragTxCntsLo;
1579 tANI_U32 transmittedPktsHi;
1580 tANI_U32 transmittedPktsLo;
1581
1582 // titan 3c stats
1583 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1584 tANI_U32 chunksTxCntLo;
1585 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1586 tANI_U32 compPktRxCntLo;
1587 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1588 tANI_U32 expanPktRxCntLo;
1589}tPermanentStaStats;
1590
Jeff Johnson295189b2012-06-20 16:38:30 -07001591
1592
1593
1594/// Definition for Disassociation response
1595typedef struct sSirSmeDisassocRsp
1596{
1597 tANI_U16 messageType; // eWNI_SME_DISASSOC_RSP
1598 tANI_U16 length;
1599 tANI_U8 sessionId; // Session ID
1600 tANI_U16 transactionId; // Transaction ID for cmd
1601 tSirResultCodes statusCode;
1602 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001603 tAniStaStatStruct perStaStats; // STA stats
Jeff Johnson295189b2012-06-20 16:38:30 -07001604 tANI_U16 staId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001605}
Jeff Johnson295189b2012-06-20 16:38:30 -07001606__ani_attr_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001607 tSirSmeDisassocRsp, *tpSirSmeDisassocRsp;
1608
1609/// Definition for Disassociation indication from peer
1610typedef struct sSirSmeDisassocInd
1611{
1612 tANI_U16 messageType; // eWNI_SME_DISASSOC_IND
1613 tANI_U16 length;
1614 tANI_U8 sessionId; // Session Identifier
1615 tANI_U16 transactionId; // Transaction Identifier with PE
1616 tSirResultCodes statusCode;
1617 tSirMacAddr bssId;
1618 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001619 tAniStaStatStruct perStaStats; // STA stats
Jeff Johnson295189b2012-06-20 16:38:30 -07001620 tANI_U16 staId;
Wu Gao742b7352015-10-16 19:10:40 +08001621 tANI_U16 assocId;
Mohit Khanna99d5fd02012-09-11 14:51:20 -07001622 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001623} tSirSmeDisassocInd, *tpSirSmeDisassocInd;
1624
1625/// Definition for Disassociation confirm
1626/// MAC --->
1627typedef struct sSirSmeDisassocCnf
1628{
1629 tANI_U16 messageType; // eWNI_SME_DISASSOC_CNF
1630 tANI_U16 length;
1631 tSirResultCodes statusCode;
1632 tSirMacAddr bssId;
1633 tSirMacAddr peerMacAddr;
Wu Gao742b7352015-10-16 19:10:40 +08001634 tANI_U16 assocId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001635} tSirSmeDisassocCnf, *tpSirSmeDisassocCnf;
1636
1637/// Definition for Deauthetication request
1638typedef struct sSirSmeDeauthReq
1639{
1640 tANI_U16 messageType; // eWNI_SME_DEAUTH_REQ
1641 tANI_U16 length;
1642 tANI_U8 sessionId; // Session ID
1643 tANI_U16 transactionId; // Transaction ID for cmd
1644 tSirMacAddr bssId; // AP BSSID
1645 tSirMacAddr peerMacAddr;
1646 tANI_U16 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001647} tSirSmeDeauthReq, *tpSirSmeDeauthReq;
1648
1649/// Definition for Deauthetication response
1650typedef struct sSirSmeDeauthRsp
1651{
1652 tANI_U16 messageType; // eWNI_SME_DEAUTH_RSP
1653 tANI_U16 length;
1654 tANI_U8 sessionId; // Session ID
1655 tANI_U16 transactionId; // Transaction ID for cmd
1656 tSirResultCodes statusCode;
1657 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001658} tSirSmeDeauthRsp, *tpSirSmeDeauthRsp;
1659
1660/// Definition for Deauthetication indication from peer
1661typedef struct sSirSmeDeauthInd
1662{
1663 tANI_U16 messageType; // eWNI_SME_DEAUTH_IND
1664 tANI_U16 length;
1665 tANI_U8 sessionId; //Added for BT-AMP
1666 tANI_U16 transactionId; //Added for BT-AMP
1667 tSirResultCodes statusCode;
1668 tSirMacAddr bssId;// AP BSSID
1669 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001670
Jeff Johnson295189b2012-06-20 16:38:30 -07001671 tANI_U16 staId;
Wu Gao742b7352015-10-16 19:10:40 +08001672 tANI_U16 assocId;
Mohit Khanna99d5fd02012-09-11 14:51:20 -07001673 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001674} tSirSmeDeauthInd, *tpSirSmeDeauthInd;
1675
1676/// Definition for Deauthentication confirm
1677/// MAC --->
1678typedef struct sSirSmeDeauthCnf
1679{
1680 tANI_U16 messageType; // eWNI_SME_DEAUTH_CNF
1681 tANI_U16 length;
1682 tSirResultCodes statusCode;
1683 tSirMacAddr bssId; // AP BSSID
1684 tSirMacAddr peerMacAddr;
Wu Gao742b7352015-10-16 19:10:40 +08001685 tANI_U16 assocId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001686} tSirSmeDeauthCnf, *tpSirSmeDeauthCnf;
1687
1688/// Definition for stop BSS request message
1689typedef struct sSirSmeStopBssReq
1690{
1691 tANI_U16 messageType; // eWNI_SME_STOP_BSS_REQ
1692 tANI_U16 length;
1693 tANI_U8 sessionId; //Session ID
1694 tANI_U16 transactionId; //tranSaction ID for cmd
1695 tSirResultCodes reasonCode;
1696 tSirMacAddr bssId; //Self BSSID
1697} tSirSmeStopBssReq, *tpSirSmeStopBssReq;
1698
1699/// Definition for stop BSS response message
1700typedef struct sSirSmeStopBssRsp
1701{
1702 tANI_U16 messageType; // eWNI_SME_STOP_BSS_RSP
1703 tANI_U16 length;
1704 tSirResultCodes statusCode;
1705 tANI_U8 sessionId; // Session ID
1706 tANI_U16 transactionId; // Transaction ID for cmd
1707} tSirSmeStopBssRsp, *tpSirSmeStopBssRsp;
1708
Jeff Johnson295189b2012-06-20 16:38:30 -07001709
1710
1711/// Definition for Channel Switch indication for station
1712/// MAC --->
1713typedef struct sSirSmeSwitchChannelInd
1714{
1715 tANI_U16 messageType; // eWNI_SME_SWITCH_CHL_REQ
1716 tANI_U16 length;
1717 tANI_U8 sessionId;
1718 tANI_U16 newChannelId;
1719 tSirMacAddr bssId; // BSSID
1720} tSirSmeSwitchChannelInd, *tpSirSmeSwitchChannelInd;
1721
1722/// Definition for ULA complete indication message
1723typedef struct sirUlaCompleteInd
1724{
1725 tANI_U16 messageType; // eWNI_ULA_COMPLETE_IND
1726 tANI_U16 length;
1727 tSirResultCodes statusCode;
1728 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001729} tSirUlaCompleteInd, *tpSirUlaCompleteInd;
1730
1731/// Definition for ULA complete confirmation message
1732typedef struct sirUlaCompleteCnf
1733{
1734 tANI_U16 messageType; // eWNI_ULA_COMPLETE_CNF
1735 tANI_U16 length;
1736 tSirResultCodes statusCode;
1737 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001738} tSirUlaCompleteCnf, *tpSirUlaCompleteCnf;
1739
1740/// Definition for Neighbor BSS indication
1741/// MAC --->
1742/// MAC reports this each time a new I/BSS is detected
1743typedef struct sSirSmeNeighborBssInd
1744{
1745 tANI_U16 messageType; // eWNI_SME_NEIGHBOR_BSS_IND
1746 tANI_U16 length;
1747 tANI_U8 sessionId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001748 tSirBssDescription bssDescription[1];
Jeff Johnson295189b2012-06-20 16:38:30 -07001749} tSirSmeNeighborBssInd, *tpSirSmeNeighborBssInd;
1750
1751/// Definition for MIC failure indication
1752/// MAC --->
1753/// MAC reports this each time a MIC failure occures on Rx TKIP packet
1754typedef struct sSirSmeMicFailureInd
1755{
1756 tANI_U16 messageType; // eWNI_SME_MIC_FAILURE_IND
1757 tANI_U16 length;
1758 tANI_U8 sessionId;
1759 tSirMacAddr bssId; // BSSID
1760 tSirMicFailureInfo info;
1761} tSirSmeMicFailureInd, *tpSirSmeMicFailureInd;
1762
Sachin Ahuja3d47fcd2015-08-28 16:02:06 +05301763typedef struct sSirSmeLostLinkParamsInd
1764{
1765 tANI_U16 messageType;
1766 tANI_U16 length;
1767 tANI_U8 sessionId;
1768 tSirLostLinkParamsInfo info;
1769} tSirSmeLostLinkParamsInd, *tpSirSmeLostLinkParamsInd;
1770
1771
Leela Venkata Kiran Kumar Reddy Chirala3ca17902013-02-27 19:50:05 -08001772typedef struct sSirSmeMissedBeaconInd
1773{
1774 tANI_U16 messageType; // eWNI_SME_MISSED_BEACON_IND
1775 tANI_U16 length;
1776 tANI_U8 bssIdx;
1777} tSirSmeMissedBeaconInd, *tpSirSmeMissedBeaconInd;
Jeff Johnson295189b2012-06-20 16:38:30 -07001778
1779/// Definition for Set Context request
1780/// ---> MAC
1781typedef struct sSirSmeSetContextReq
1782{
1783 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_REQ
1784 tANI_U16 length;
1785 tANI_U8 sessionId; //Session ID
1786 tANI_U16 transactionId; //Transaction ID for cmd
1787 tSirMacAddr peerMacAddr;
1788 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07001789 // TBD Following QOS fields to be uncommented
1790 //tAniBool qosInfoPresent;
1791 //tSirQos qos;
1792 tSirKeyMaterial keyMaterial;
1793} tSirSmeSetContextReq, *tpSirSmeSetContextReq;
1794
1795/// Definition for Set Context response
1796/// MAC --->
1797typedef struct sSirSmeSetContextRsp
1798{
1799 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_RSP
1800 tANI_U16 length;
1801 tANI_U8 sessionId; // Session ID
1802 tANI_U16 transactionId; // Transaction ID for cmd
1803 tSirResultCodes statusCode;
1804 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001805} tSirSmeSetContextRsp, *tpSirSmeSetContextRsp;
1806
1807/// Definition for Remove Key Context request
1808/// ---> MAC
1809typedef struct sSirSmeRemoveKeyReq
1810{
1811 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_REQ
1812 tANI_U16 length;
1813 tANI_U8 sessionId; // Session ID
1814 tANI_U16 transactionId; // Transaction ID for cmd
1815 tSirMacAddr bssId; // BSSID
1816 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001817 tANI_U8 edType;
1818 tANI_U8 wepType;
1819 tANI_U8 keyId;
1820 tANI_BOOLEAN unicast;
1821} tSirSmeRemoveKeyReq, *tpSirSmeRemoveKeyReq;
1822
1823/// Definition for Remove Key Context response
1824/// MAC --->
1825typedef struct sSirSmeRemoveKeyRsp
1826{
1827 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_RSP
1828 tANI_U16 length;
1829 tANI_U8 sessionId; // Session ID
1830 tANI_U16 transactionId; // Transaction ID for cmd
1831 tSirResultCodes statusCode;
1832 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001833} tSirSmeRemoveKeyRsp, *tpSirSmeRemoveKeyRsp;
1834
1835/// Definition for Set Power request
1836/// ---> MAC
1837typedef struct sSirSmeSetPowerReq
1838{
1839 tANI_U16 messageType; // eWNI_SME_SET_POWER_REQ
1840 tANI_U16 length;
1841 tANI_U16 transactionId; // Transaction ID for cmd
1842 tANI_S8 powerLevel;
1843} tSirSmeSetPowerReq, *tpSirSmeSetPowerReq;
1844
1845/// Definition for Set Power response
1846/// MAC --->
1847typedef struct sSirSmeSetPowerRsp
1848{
1849 tANI_U16 messageType; // eWNI_SME_SET_POWER_RSP
1850 tANI_U16 length;
1851 tSirResultCodes statusCode;
1852 tANI_U16 transactionId; // Transaction ID for cmd
1853} tSirSmeSetPowerRsp, *tpSirSmeSetPowerRsp;
1854
Jeff Johnson295189b2012-06-20 16:38:30 -07001855
1856/// Definition for Link Test Start response
1857/// MAC --->
1858typedef struct sSirSmeLinkTestStartRsp
1859{
1860 tANI_U16 messageType; // eWNI_SME_LINK_TEST_START_RSP
1861 tANI_U16 length;
1862 tSirMacAddr peerMacAddr;
1863 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001864} tSirSmeLinkTestStartRsp, *tpSirSmeLinkTestStartRsp;
1865
1866/// Definition for Link Test Stop response
1867/// WSM ---> MAC
1868typedef struct sSirSmeLinkTestStopRsp
1869{
1870 tANI_U16 messageType; // eWNI_SME_LINK_TEST_STOP_RSP
1871 tANI_U16 length;
1872 tSirMacAddr peerMacAddr;
1873 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001874} tSirSmeLinkTestStopRsp, *tpSirSmeLinkTestStopRsp;
1875
1876/// Definition for kick starting DFS measurements
1877typedef struct sSirSmeDFSreq
1878{
1879 tANI_U16 messageType; // eWNI_SME_DFS_REQ
1880 tANI_U16 length;
1881 tANI_U16 transactionId; // Transaction ID for cmd
1882} tSirSmeDFSrequest, *tpSirSmeDFSrequest;
1883
1884/// Definition for response message to previously
1885/// issued DFS request
1886typedef struct sSirSmeDFSrsp
1887{
1888 tANI_U16 messageType; // eWNI_SME_DFS_RSP
1889 tANI_U16 length;
1890 tSirResultCodes statusCode;
1891 tANI_U16 transactionId; // Transaction ID for cmd
1892 tANI_U32 dfsReport[1];
1893} tSirSmeDFSrsp, *tpSirSmeDFSrsp;
1894
1895/// Statistic definitions
1896//=============================================================
1897// Per STA statistic structure; This same struct will be used for Aggregate
1898// STA stats as well.
1899
1900// Clear radio stats and clear per sta stats
1901typedef enum
1902{
1903 eANI_CLEAR_ALL_STATS, // Clears all stats
1904 eANI_CLEAR_RX_STATS, // Clears RX statistics of the radio interface
1905 eANI_CLEAR_TX_STATS, // Clears TX statistics of the radio interface
1906 eANI_CLEAR_RADIO_STATS, // Clears all the radio stats
1907 eANI_CLEAR_PER_STA_STATS, // Clears Per STA stats
1908 eANI_CLEAR_AGGR_PER_STA_STATS, // Clears aggregate stats
1909
1910 // Used to distinguish between per sta to security stats.
1911 // Used only by AP, FW just returns the same parameter as it received.
1912 eANI_LINK_STATS, // Get Per STA stats
1913 eANI_SECURITY_STATS, // Get Per STA security stats
1914
1915 eANI_CLEAR_STAT_TYPES_END
1916} tAniStatSubTypes;
1917
1918typedef struct sAniTxCtrs
1919{
1920 // add the rate counters here
1921 tANI_U32 tx1Mbps;
1922 tANI_U32 tx2Mbps;
1923 tANI_U32 tx5_5Mbps;
1924 tANI_U32 tx6Mbps;
1925 tANI_U32 tx9Mbps;
1926 tANI_U32 tx11Mbps;
1927 tANI_U32 tx12Mbps;
1928 tANI_U32 tx18Mbps;
1929 tANI_U32 tx24Mbps;
1930 tANI_U32 tx36Mbps;
1931 tANI_U32 tx48Mbps;
1932 tANI_U32 tx54Mbps;
1933 tANI_U32 tx72Mbps;
1934 tANI_U32 tx96Mbps;
1935 tANI_U32 tx108Mbps;
1936
1937 // tx path radio counts
1938 tANI_U32 txFragHi;
1939 tANI_U32 txFragLo;
1940 tANI_U32 txFrameHi;
1941 tANI_U32 txFrameLo;
1942 tANI_U32 txMulticastFrameHi;
1943 tANI_U32 txMulticastFrameLo;
1944 tANI_U32 txFailedHi;
1945 tANI_U32 txFailedLo;
1946 tANI_U32 multipleRetryHi;
1947 tANI_U32 multipleRetryLo;
1948 tANI_U32 singleRetryHi;
1949 tANI_U32 singleRetryLo;
1950 tANI_U32 ackFailureHi;
1951 tANI_U32 ackFailureLo;
1952 tANI_U32 xmitBeacons;
1953
1954 // titan 3c stats
1955 tANI_U32 txCbEscPktCntHi; // Total Number of Channel Bonded/Escort Packet Transmitted
1956 tANI_U32 txCbEscPktCntLo;
1957 tANI_U32 txChunksCntHi; // Total Number of Chunks Transmitted
1958 tANI_U32 txChunksCntLo;
1959 tANI_U32 txCompPktCntHi; // Total Number of Compresssed Packet Transmitted
1960 tANI_U32 txCompPktCntLo;
1961 tANI_U32 tx50PerCompPktCntHi; // Total Number of Packets with 50% or more compression
1962 tANI_U32 tx50PerCompPktCntLo;
1963 tANI_U32 txExpanPktCntHi; // Total Number of Packets Transmitted that got expanded
1964 tANI_U32 txExpanPktCntLo;
1965} tAniTxCtrs, *tpAniTxCtrs;
1966
1967typedef struct sAniRxCtrs
1968{
1969 // receive frame rate counters
1970 tANI_U32 rx1Mbps;
1971 tANI_U32 rx2Mbps;
1972 tANI_U32 rx5_5Mbps;
1973 tANI_U32 rx6Mbps;
1974 tANI_U32 rx9Mbps;
1975 tANI_U32 rx11Mbps;
1976 tANI_U32 rx12Mbps;
1977 tANI_U32 rx18Mbps;
1978 tANI_U32 rx24Mbps;
1979 tANI_U32 rx36Mbps;
1980 tANI_U32 rx48Mbps;
1981 tANI_U32 rx54Mbps;
1982 tANI_U32 rx72Mbps;
1983 tANI_U32 rx96Mbps;
1984 tANI_U32 rx108Mbps;
1985
1986 // receive size counters; 'Lte' = Less than or equal to
1987 tANI_U32 rxLte64;
1988 tANI_U32 rxLte128Gt64;
1989 tANI_U32 rxLte256Gt128;
1990 tANI_U32 rxLte512Gt256;
1991 tANI_U32 rxLte1kGt512;
1992 tANI_U32 rxLte1518Gt1k;
1993 tANI_U32 rxLte2kGt1518;
1994 tANI_U32 rxLte4kGt2k;
1995
1996 // rx radio stats
1997 tANI_U32 rxFrag;
1998 tANI_U32 rxFrame;
1999 tANI_U32 fcsError;
2000 tANI_U32 rxMulticast;
2001 tANI_U32 duplicate;
2002 tANI_U32 rtsSuccess;
2003 tANI_U32 rtsFailed;
2004 tANI_U32 wepUndecryptables;
2005 tANI_U32 drops;
2006 tANI_U32 aesFormatErrorUcastCnts;
2007 tANI_U32 aesReplaysUcast;
2008 tANI_U32 aesDecryptErrUcast;
2009
2010 // titan 3c stats
2011 tANI_U32 rxDecompPktCntHi; // Total Number of Packets that got decompressed
2012 tANI_U32 rxDecompPktCntLo;
2013 tANI_U32 rxCompPktCntHi; // Total Number of Packets received that were actually compressed
2014 tANI_U32 rxCompPktCntLo;
2015 tANI_U32 rxExpanPktCntHi; // Total Number of Packets received that got expanded
2016 tANI_U32 rxExpanPktCntLo;
2017} tAniRxCtrs, *tpAniRxCtrs;
2018
2019// Radio stats
2020typedef struct sAniRadioStats
2021{
2022 tAniTxCtrs tx;
2023 tAniRxCtrs rx;
2024} tAniRadioStats, *tpAniRadioStats;
2025
2026// Get Radio Stats request structure
2027// This structure shall be used for both Radio stats and Aggregate stats
2028// A valid request must contain entire structure with/without valid fields.
2029// Based on the request type, the valid fields will be checked.
2030typedef struct sAniGetStatsReq
2031{
2032 // Common for all types are requests
2033 tANI_U16 msgType; // message type is same as the request type
2034 tANI_U16 msgLen; // length of the entire request
2035 tANI_U8 sessionId; //Session ID
2036 tANI_U16 transactionId;
2037 tSirMacAddr bssId; //BSSID
2038 // only used for clear stats and per sta stats clear
2039 tAniStatSubTypes stat; // Clears the stats of the described types.
2040 tANI_U32 staId; // Per STA stats request must contain valid
2041 // values
2042 tANI_U8 macAddr[6];
2043} tAniGetStatsReq, *tpAniGetStatsReq;
2044
2045// Get Radio Stats response struct
2046typedef struct sAniGetRadioStatsRsp
2047{
2048 tANI_U16 type; // message type is same as the request type
2049 tANI_U16 msgLen; // length of the entire request
2050 tANI_U32 rc;
2051 tANI_U16 transactionId;
2052 tAniRadioStats radio;
2053} tAniGetRadioStatsRsp, *tpAniGetRadioStatsRsp;
2054
2055// Per Sta stats response struct
2056typedef struct sAniGetPerStaStatsRsp
2057{
2058 tANI_U16 type; // message type is same as the request type
2059 tANI_U16 msgLen; // length of the entire request
2060 tANI_U32 rc;
2061 tANI_U16 transactionId;
2062 tAniStatSubTypes stat; // Sub type needed by AP. Returns the same value
2063 tAniStaStatStruct sta;
2064 tANI_U32 staId;
2065 tANI_U8 macAddr[6];
2066} tAniGetPerStaStatsRsp, *tpAniGetPerStaStatsRsp;
2067
2068// Get Aggregate stats
2069typedef struct sAniGetAggrStaStatsRsp
2070{
2071 tANI_U16 type; // message type is same as the request type
2072 tANI_U16 msgLen; // length of the entire request
2073 tANI_U32 rc;
2074 tANI_U16 transactionId;
2075 tAniStaStatStruct sta;
2076} tAniGetAggrStaStatsRsp, *tpAniGetAggrStaStatsRsp;
2077
2078// Clear stats request and response structure. 'rc' field is unused in
2079// request and this field is used in response field.
2080typedef struct sAniClearStatsRsp
2081{
2082 tANI_U16 type; // message type is same as the request type
2083 tANI_U16 msgLen; // length of the entire request
2084 tANI_U32 rc; // return code - will be filled by FW on
2085 // response.
2086 // Same transaction ID will be returned by the FW
2087 tANI_U16 transactionId;
2088 tAniStatSubTypes stat; // Clears the stats of the described types.
2089 tANI_U32 staId; // Applicable only to PER STA stats clearing
2090 tANI_U8 macAddr[6]; // Applicable only to PER STA stats clearing
2091} tAniClearStatsRsp, *tpAniClearStatsRsp;
2092
2093typedef struct sAniGetGlobalStatsRsp
2094{
2095 tANI_U16 type; // message type is same as the request type
2096 tANI_U16 msgLen; // length of the entire request
2097 tANI_U32 rc;
2098 tANI_U16 transactionId;
2099 tAniGlobalStatStruct global;
2100} tAniGetGlobalStatsRsp, *tpAniGetGlobalStatsRsp;
2101
2102typedef struct sAniGetStatSummaryRsp
2103{
2104 tANI_U16 type; // message type is same as the request type
2105 tANI_U16 msgLen; // length of the entire request --Why?
2106 tANI_U32 rc;
2107 tANI_U16 transactionId;
2108 tAniStatSummaryStruct stat;
2109} tAniGetStatSummaryRsp, *tpAniGetStatSummaryRsp;
2110
2111//***************************************************************
2112
2113
2114/*******************PE Statistics*************************/
2115typedef enum
2116{
2117 PE_SUMMARY_STATS_INFO = 0x00000001,
2118 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
2119 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
2120 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
2121 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +05302122 PE_PER_STA_STATS_INFO = 0x00000020,
2123 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -07002124}ePEStatsMask;
2125
2126/*
2127 * tpAniGetPEStatsReq is tied to
2128 * for SME ==> PE eWNI_SME_GET_STATISTICS_REQ msgId and
2129 * for PE ==> HAL SIR_HAL_GET_STATISTICS_REQ msgId
2130 */
2131typedef struct sAniGetPEStatsReq
2132{
2133 // Common for all types are requests
2134 tANI_U16 msgType; // message type is same as the request type
2135 tANI_U16 msgLen; // length of the entire request
2136 tANI_U32 staId; // Per STA stats request must contain valid
2137 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2138} tAniGetPEStatsReq, *tpAniGetPEStatsReq;
2139
2140/*
2141 * tpAniGetPEStatsRsp is tied to
2142 * for PE ==> SME eWNI_SME_GET_STATISTICS_RSP msgId and
2143 * for HAL ==> PE SIR_HAL_GET_STATISTICS_RSP msgId
2144 */
2145typedef struct sAniGetPEStatsRsp
2146{
2147 // Common for all types are responses
2148 tANI_U16 msgType; // message type is same as the request type
2149 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2150 tANI_U8 sessionId;
2151 tANI_U32 rc; //success/failure
2152 tANI_U32 staId; // Per STA stats request must contain valid
2153 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2154/**********************************************************************************************
2155 //void *pStatsBuf;
2156 The Stats buffer starts here and can be an aggregate of more than one statistics
2157 structure depending on statsMask.The void pointer "pStatsBuf" is commented out
2158 intentionally and the src code that uses this structure should take that into account.
2159**********************************************************************************************/
2160} tAniGetPEStatsRsp, *tpAniGetPEStatsRsp;
2161
2162typedef struct sAniGetRssiReq
2163{
2164 // Common for all types are requests
2165 tANI_U16 msgType; // message type is same as the request type
2166 tANI_U16 msgLen; // length of the entire request
2167 tANI_U8 sessionId;
2168 tANI_U8 staId;
2169 void *rssiCallback;
2170 void *pDevContext; //device context
2171 void *pVosContext; //voss context
2172
2173} tAniGetRssiReq, *tpAniGetRssiReq;
2174
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05302175typedef struct sAniGetSnrReq
2176{
2177 // Common for all types are requests
2178 tANI_U16 msgType; // message type is same as the request type
2179 tANI_U16 msgLen; // length of the entire request
2180 tANI_U8 sessionId;
2181 tANI_U8 staId;
2182 void *snrCallback;
2183 void *pDevContext; //device context
2184} tAniGetSnrReq, *tpAniGetSnrReq;
2185
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002186#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08002187typedef struct sAniGetRoamRssiRsp
2188{
2189 // Common for all types are responses
2190 tANI_U16 msgType; // message type is same as the request type
2191 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2192 tANI_U8 sessionId;
2193 tANI_U32 rc; //success/failure
2194 tANI_U32 staId; // Per STA stats request must contain valid
2195 tANI_S8 rssi;
2196 void *rssiReq; //rssi request backup
2197
2198} tAniGetRoamRssiRsp, *tpAniGetRoamRssiRsp;
2199
2200#endif
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002201
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002202#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002203
2204typedef struct sSirTsmIE
2205{
2206 tANI_U8 tsid;
2207 tANI_U8 state;
2208 tANI_U16 msmt_interval;
2209} tSirTsmIE, *tpSirTsmIE;
2210
2211typedef struct sSirSmeTsmIEInd
2212{
2213 tSirTsmIE tsmIe;
2214 tANI_U8 sessionId;
2215} tSirSmeTsmIEInd, *tpSirSmeTsmIEInd;
2216
2217
2218typedef struct sAniTrafStrmMetrics
2219{
2220 tANI_U16 UplinkPktQueueDly;
2221 tANI_U16 UplinkPktQueueDlyHist[4];
2222 tANI_U32 UplinkPktTxDly;
2223 tANI_U16 UplinkPktLoss;
2224 tANI_U16 UplinkPktCount;
2225 tANI_U8 RoamingCount;
2226 tANI_U16 RoamingDly;
2227} tAniTrafStrmMetrics, *tpAniTrafStrmMetrics;
2228
2229typedef struct sAniGetTsmStatsReq
2230{
2231 // Common for all types are requests
2232 tANI_U16 msgType; // message type is same as the request type
2233 tANI_U16 msgLen; // length of the entire request
2234 tANI_U8 staId;
2235 tANI_U8 tid; // traffic id
2236 tSirMacAddr bssId;
2237 void *tsmStatsCallback;
2238 void *pDevContext; //device context
2239 void *pVosContext; //voss context
2240} tAniGetTsmStatsReq, *tpAniGetTsmStatsReq;
2241
2242typedef struct sAniGetTsmStatsRsp
2243{
2244 // Common for all types are responses
2245 tANI_U16 msgType; // message type is same as the request type
2246 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2247 tANI_U8 sessionId;
2248 tANI_U32 rc; //success/failure
2249 tANI_U32 staId; // Per STA stats request must contain valid
2250 tAniTrafStrmMetrics tsmMetrics;
2251 void *tsmStatsReq; //tsm stats request backup
2252} tAniGetTsmStatsRsp, *tpAniGetTsmStatsRsp;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002253
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002254typedef struct sSirEseBcnReportBssInfo
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002255{
2256 tBcnReportFields bcnReportFields;
2257 tANI_U8 ieLen;
2258 tANI_U8 *pBuf;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002259} tSirEseBcnReportBssInfo, *tpSirEseBcnReportBssInfo;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002260
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002261typedef struct sSirEseBcnReportRsp
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002262{
2263 tANI_U16 measurementToken;
2264 tANI_U8 flag; /* Flag to report measurement done and more data */
2265 tANI_U8 numBss;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002266 tSirEseBcnReportBssInfo bcnRepBssInfo[SIR_BCN_REPORT_MAX_BSS_DESC];
2267} tSirEseBcnReportRsp, *tpSirEseBcnReportRsp;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002268
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002269#endif /* FEATURE_WLAN_ESE || FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002270
Jeff Johnson295189b2012-06-20 16:38:30 -07002271/* Change country code request MSG structure */
2272typedef struct sAniChangeCountryCodeReq
2273{
2274 // Common for all types are requests
2275 tANI_U16 msgType; // message type is same as the request type
2276 tANI_U16 msgLen; // length of the entire request
2277 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //3 char country code
Gopichand Nakkalaacd94112013-05-29 21:37:47 +05302278 tAniBool countryFromUserSpace;
Abhishek Singha306a442013-11-07 18:39:01 +05302279 tAniBool sendRegHint; //TRUE if we want to send hint to NL80211
Jeff Johnson295189b2012-06-20 16:38:30 -07002280 void *changeCCCallback;
2281 void *pDevContext; //device context
2282 void *pVosContext; //voss context
Amar Singhal0d15bd52013-10-12 23:13:13 -07002283
Jeff Johnson295189b2012-06-20 16:38:30 -07002284} tAniChangeCountryCodeReq, *tpAniChangeCountryCodeReq;
2285
Amar Singhal0d15bd52013-10-12 23:13:13 -07002286/* generic country code change request MSG structure */
2287typedef struct sAniGenericChangeCountryCodeReq
2288{
2289 // Common for all types are requests
2290 tANI_U16 msgType; // message type is same as the request type
2291 tANI_U16 msgLen; // length of the entire request
2292 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //3 char country code
2293 tANI_U16 domain_index;
Amar Singhal0d15bd52013-10-12 23:13:13 -07002294} tAniGenericChangeCountryCodeReq, *tpAniGenericChangeCountryCodeReq;
2295
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05302296typedef struct sAniDHCPStopInd
2297{
2298 tANI_U16 msgType; // message type is same as the request type
2299 tANI_U16 msgLen; // length of the entire request
2300 tANI_U8 device_mode; // Mode of the device(ex:STA, AP)
2301 tSirMacAddr macAddr;
2302
2303} tAniDHCPInd, *tpAniDHCPInd;
2304
Jeff Johnson295189b2012-06-20 16:38:30 -07002305typedef struct sAniSummaryStatsInfo
2306{
2307 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2308 tANI_U32 multiple_retry_cnt[4];//The number of MSDU packets and MMPDU frames per AC that the 802.11
2309 // station successfully transmitted after more than one retransmission attempt
2310
2311 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2312 //(with and without retries, including multi-cast, broadcast)
2313 //tANI_U32 tx_fail_cnt;
2314 //tANI_U32 num_rx_frm_crc_err; //Total number of received frames with CRC Error
2315 //tANI_U32 num_rx_frm_crc_ok; //Total number of successfully received frames with out CRC Error
2316 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2317 //(after appropriate filter rules including multi-cast, broadcast)
2318 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2319 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2320 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2321 tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
2322 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2323 tANI_U32 rx_discard_cnt; //The sum of the receive error count and dropped-receive-buffer error count.
2324 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2325 tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
2326 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2327 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
2328 //to provide this.
2329#if 0
2330 //providing the following stats, in case of wrap around for tx_byte_cnt
2331 tANI_U32 tx_unicast_lower_byte_cnt;
2332 tANI_U32 tx_unicast_upper_byte_cnt;
2333 tANI_U32 tx_multicast_lower_byte_cnt;
2334 tANI_U32 tx_multicast_upper_byte_cnt;
2335 tANI_U32 tx_broadcast_lower_byte_cnt;
2336 tANI_U32 tx_broadcast_upper_byte_cnt;
2337#endif
2338
2339}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2340
2341typedef enum eTxRateInfo
2342{
2343 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2344 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2345 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2346 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Leo Chang6f8870f2013-03-26 18:11:36 -07002347 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2348 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2349 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 40 rates */
2350 eHAL_TX_RATE_VHT80 = 0x80 /* VHT 80 rates */
Jeff Johnson295189b2012-06-20 16:38:30 -07002351} tTxrateinfoflags;
2352
2353typedef struct sAniGlobalClassAStatsInfo
2354{
2355 tANI_U32 rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2356 //or MMPDU frames
2357 tANI_U32 promiscuous_rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2358 //or MMPDU frames when a promiscuous packet filter was enabled
2359 //tANI_U32 rx_fcs_err; //The number of MPDU frames that the 802.11 station received with FCS errors
2360 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2361 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
2362 //to a supported rate and the order shall be the same as the supporteRates parameter.
2363 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2364 //for eg: if it is 10.5dBm, the value would be 105
2365 //tANI_U32 default_pwr; //The nominal transmit level used after normal power on sequence
2366 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2367 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
2368 tANI_U32 tx_rate; //Legacy transmit rate, in units of
2369 //500 kbit/sec, for the most
2370 //recently transmitted frame
2371 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
2372 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2373 //HT40 rates; short and long guard interval
2374
2375}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2376
2377
2378typedef struct sAniGlobalSecurityStats
2379{
2380 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2381 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
2382 //is enabled
2383 tANI_U32 rx_mic_fail_cnt; //The number of received MSDU packets that that the 802.11 station discarded
2384 //because of MIC failures
2385 tANI_U32 tkip_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2386 //because of a TKIP ICV error
2387 tANI_U32 aes_ccmp_format_err; //The number of received MPDU frames that the 802.11 discarded because of an
2388 //invalid AES-CCMP format
2389 tANI_U32 aes_ccmp_replay_cnt; //The number of received MPDU frames that the 802.11 station discarded because of
2390 //the AES-CCMP replay protection procedure
2391 tANI_U32 aes_ccmp_decrpt_err; //The number of received MPDU frames that the 802.11 station discarded because of
2392 //errors detected by the AES-CCMP decryption algorithm
2393 tANI_U32 wep_undecryptable_cnt; //The number of encrypted MPDU frames received for which a WEP decryption key was
2394 //not available on the 802.11 station
2395 tANI_U32 wep_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2396 //because of a WEP ICV error
2397 tANI_U32 rx_decrypt_succ_cnt; //The number of received encrypted packets that the 802.11 station successfully
2398 //decrypted
2399 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2400
2401}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
2402
2403typedef struct sAniGlobalClassBStatsInfo
2404{
2405 tAniGlobalSecurityStats ucStats;
2406 tAniGlobalSecurityStats mcbcStats;
2407}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2408
2409typedef struct sAniGlobalClassCStatsInfo
2410{
2411 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2412 //MAC address in the address 1 field or an A-MSDU frame with a group address in the
2413 //address 1 field
2414 tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
2415 tANI_U32 tx_20_frm_cnt; //This counter shall be incremented when a Frame is transmitted only on the
2416 //primary channel
2417 tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
2418 tANI_U32 rx_mpdu_in_ampdu_cnt; //This counter shall be incremented by the number of MPDUs received in the A-MPDU
2419 //when an A-MPDU is received
2420 tANI_U32 ampdu_delimiter_crc_err;//This counter shall be incremented when an MPDU delimiter has a CRC error when this
2421 //is the first CRC error in the received AMPDU or when the previous delimiter has been
2422 //decoded correctly
2423
2424}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2425
2426typedef struct sAniPerStaStatsInfo
2427{
2428 tANI_U32 tx_frag_cnt[4]; //The number of MPDU frames that the 802.11 station transmitted and acknowledged
2429 //through a received 802.11 ACK frame
2430 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2431 tANI_U32 tx_mpdu_in_ampdu_cnt; //This counter shall increment by the number of MPDUs in the AMPDU when an A-MPDU
2432 //is transmitted
2433
2434}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2435
Sushant Kaushik33200572015-08-05 16:46:20 +05302436typedef struct sAniPerTxPktStatsInfo
2437{
2438 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05302439 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05302440}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
2441
2442
Jeff Johnson295189b2012-06-20 16:38:30 -07002443/**********************PE Statistics end*************************/
2444
2445
2446
2447typedef struct sSirRSSIThresholds
2448{
2449#ifdef ANI_BIG_BYTE_ENDIAN
2450 tANI_S8 ucRssiThreshold1 : 8;
2451 tANI_S8 ucRssiThreshold2 : 8;
2452 tANI_S8 ucRssiThreshold3 : 8;
2453 tANI_U8 bRssiThres1PosNotify : 1;
2454 tANI_U8 bRssiThres1NegNotify : 1;
2455 tANI_U8 bRssiThres2PosNotify : 1;
2456 tANI_U8 bRssiThres2NegNotify : 1;
2457 tANI_U8 bRssiThres3PosNotify : 1;
2458 tANI_U8 bRssiThres3NegNotify : 1;
2459 tANI_U8 bReserved10 : 2;
2460#else
2461 tANI_U8 bReserved10 : 2;
2462 tANI_U8 bRssiThres3NegNotify : 1;
2463 tANI_U8 bRssiThres3PosNotify : 1;
2464 tANI_U8 bRssiThres2NegNotify : 1;
2465 tANI_U8 bRssiThres2PosNotify : 1;
2466 tANI_U8 bRssiThres1NegNotify : 1;
2467 tANI_U8 bRssiThres1PosNotify : 1;
2468 tANI_S8 ucRssiThreshold3 : 8;
2469 tANI_S8 ucRssiThreshold2 : 8;
2470 tANI_S8 ucRssiThreshold1 : 8;
2471#endif
2472
2473}tSirRSSIThresholds, *tpSirRSSIThresholds;
2474
2475typedef struct sSirRSSINotification
2476{
2477#ifdef ANI_BIG_BYTE_ENDIAN
2478 tANI_U32 bRssiThres1PosCross : 1;
2479 tANI_U32 bRssiThres1NegCross : 1;
2480 tANI_U32 bRssiThres2PosCross : 1;
2481 tANI_U32 bRssiThres2NegCross : 1;
2482 tANI_U32 bRssiThres3PosCross : 1;
2483 tANI_U32 bRssiThres3NegCross : 1;
Srinivasdaaec712012-12-12 15:59:44 -08002484 v_S7_t avgRssi : 8;
2485 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07002486#else
Srinivasdaaec712012-12-12 15:59:44 -08002487 tANI_U32 bReserved : 18;
2488 v_S7_t avgRssi : 8;
Jeff Johnson295189b2012-06-20 16:38:30 -07002489 tANI_U32 bRssiThres3NegCross : 1;
2490 tANI_U32 bRssiThres3PosCross : 1;
2491 tANI_U32 bRssiThres2NegCross : 1;
2492 tANI_U32 bRssiThres2PosCross : 1;
2493 tANI_U32 bRssiThres1NegCross : 1;
2494 tANI_U32 bRssiThres1PosCross : 1;
2495#endif
2496
2497}tSirRSSINotification, *tpSirRSSINotification;
2498
Viral Modid86bde22012-12-10 13:09:21 -08002499
2500typedef struct sSirP2PNoaStart
2501{
2502 tANI_U32 status;
2503 tANI_U32 bssIdx;
2504} tSirP2PNoaStart, *tpSirP2PNoaStart;
2505
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05302506typedef struct sSirTdlsInd
2507{
2508 tANI_U16 status;
2509 tANI_U16 assocId;
2510 tANI_U16 staIdx;
2511 tANI_U16 reasonCode;
2512} tSirTdlsInd, *tpSirTdlsInd;
2513
Jeff Johnson295189b2012-06-20 16:38:30 -07002514typedef struct sSirP2PNoaAttr
2515{
2516#ifdef ANI_BIG_BYTE_ENDIAN
2517 tANI_U32 index :8;
2518 tANI_U32 oppPsFlag :1;
2519 tANI_U32 ctWin :7;
2520 tANI_U32 rsvd1: 16;
2521#else
2522 tANI_U32 rsvd1: 16;
2523 tANI_U32 ctWin :7;
2524 tANI_U32 oppPsFlag :1;
2525 tANI_U32 index :8;
2526#endif
2527
2528#ifdef ANI_BIG_BYTE_ENDIAN
2529 tANI_U32 uNoa1IntervalCnt:8;
2530 tANI_U32 rsvd2:24;
2531#else
2532 tANI_U32 rsvd2:24;
2533 tANI_U32 uNoa1IntervalCnt:8;
2534#endif
2535 tANI_U32 uNoa1Duration;
2536 tANI_U32 uNoa1Interval;
2537 tANI_U32 uNoa1StartTime;
2538
2539#ifdef ANI_BIG_BYTE_ENDIAN
2540 tANI_U32 uNoa2IntervalCnt:8;
2541 tANI_U32 rsvd3:24;
2542#else
2543 tANI_U32 rsvd3:24;
2544 tANI_U32 uNoa2IntervalCnt:8;
2545#endif
2546 tANI_U32 uNoa2Duration;
2547 tANI_U32 uNoa2Interval;
2548 tANI_U32 uNoa2StartTime;
2549} tSirP2PNoaAttr, *tpSirP2PNoaAttr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002550
2551typedef __ani_attr_pre_packed struct sSirTclasInfo
2552{
2553 tSirMacTclasIE tclas;
2554 tANI_U8 version; // applies only for classifier type ip
2555 __ani_attr_pre_packed union {
2556 tSirMacTclasParamEthernet eth;
2557 tSirMacTclasParamIPv4 ipv4;
2558 tSirMacTclasParamIPv6 ipv6;
2559 tSirMacTclasParam8021dq t8021dq;
2560 }__ani_attr_packed tclasParams;
2561} __ani_attr_packed tSirTclasInfo;
2562
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002563
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002564#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002565#define TSRS_11AG_RATE_6MBPS 0xC
2566#define TSRS_11B_RATE_5_5MBPS 0xB
2567
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002568typedef struct sSirMacESETSRSIE
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002569{
2570 tANI_U8 tsid;
2571 tANI_U8 rates[8];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002572} tSirMacESETSRSIE;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002573
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002574typedef struct sSirMacESETSMIE
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002575{
2576 tANI_U8 tsid;
2577 tANI_U8 state;
2578 tANI_U16 msmt_interval;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002579} tSirMacESETSMIE;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002580
2581typedef struct sTSMStats
2582{
2583 tANI_U8 tid;
2584 tSirMacAddr bssId;
2585 tTrafStrmMetrics tsmMetrics;
2586} tTSMStats, *tpTSMStats;
2587
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002588typedef struct sEseTSMContext
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002589{
2590 tANI_U8 tid;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002591 tSirMacESETSMIE tsmInfo;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002592 tTrafStrmMetrics tsmMetrics;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002593} tEseTSMContext, *tpEseTSMContext;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002594
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002595typedef struct sEsePEContext
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002596{
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002597#if defined(FEATURE_WLAN_ESE) && !defined(FEATURE_WLAN_ESE_UPLOAD)
2598 tEseMeasReq curMeasReq;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002599#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002600 tEseTSMContext tsm;
2601} tEsePEContext, *tpEsePEContext;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002602
2603
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002604#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002605
2606
Jeff Johnson295189b2012-06-20 16:38:30 -07002607typedef struct sSirAddtsReqInfo
2608{
2609 tANI_U8 dialogToken;
2610 tSirMacTspecIE tspec;
2611
2612 tANI_U8 numTclas; // number of Tclas elements
2613 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2614 tANI_U8 tclasProc;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002615#if defined(FEATURE_WLAN_ESE)
2616 tSirMacESETSRSIE tsrsIE;
Jeff Johnson295189b2012-06-20 16:38:30 -07002617 tANI_U8 tsrsPresent:1;
2618#endif
2619 tANI_U8 wmeTspecPresent:1;
2620 tANI_U8 wsmTspecPresent:1;
2621 tANI_U8 lleTspecPresent:1;
2622 tANI_U8 tclasProcPresent:1;
2623} tSirAddtsReqInfo, *tpSirAddtsReqInfo;
2624
2625typedef struct sSirAddtsRspInfo
2626{
2627 tANI_U8 dialogToken;
2628 tSirMacStatusCodes status;
2629 tSirMacTsDelayIE delay;
2630
2631 tSirMacTspecIE tspec;
2632 tANI_U8 numTclas; // number of Tclas elements
2633 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2634 tANI_U8 tclasProc;
2635 tSirMacScheduleIE schedule;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002636#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
2637 tSirMacESETSMIE tsmIE;
Jeff Johnson295189b2012-06-20 16:38:30 -07002638 tANI_U8 tsmPresent:1;
2639#endif
2640 tANI_U8 wmeTspecPresent:1;
2641 tANI_U8 wsmTspecPresent:1;
2642 tANI_U8 lleTspecPresent:1;
2643 tANI_U8 tclasProcPresent:1;
2644 tANI_U8 schedulePresent:1;
2645} tSirAddtsRspInfo, *tpSirAddtsRspInfo;
2646
2647typedef struct sSirDeltsReqInfo
2648{
2649 tSirMacTSInfo tsinfo;
2650 tSirMacTspecIE tspec;
2651 tANI_U8 wmeTspecPresent:1;
2652 tANI_U8 wsmTspecPresent:1;
2653 tANI_U8 lleTspecPresent:1;
2654} tSirDeltsReqInfo, *tpSirDeltsReqInfo;
2655
2656/// Add a tspec as defined
2657typedef struct sSirAddtsReq
2658{
2659 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2660 tANI_U16 length;
2661 tANI_U8 sessionId; //Session ID
2662 tANI_U16 transactionId;
2663 tSirMacAddr bssId; //BSSID
2664 tANI_U32 timeout; // in ms
2665 tANI_U8 rspReqd;
2666 tSirAddtsReqInfo req;
2667} tSirAddtsReq, *tpSirAddtsReq;
2668
2669typedef struct sSirAddtsRsp
2670{
2671 tANI_U16 messageType; // eWNI_SME_ADDTS_RSP
2672 tANI_U16 length;
2673 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2674 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2675 tANI_U32 rc; // return code
2676 tSirAddtsRspInfo rsp;
2677} tSirAddtsRsp, *tpSirAddtsRsp;
2678
2679typedef struct sSirDeltsReq
2680{
2681 tANI_U16 messageType; // eWNI_SME_DELTS_REQ
2682 tANI_U16 length;
2683 tANI_U8 sessionId;//Session ID
2684 tANI_U16 transactionId;
2685 tSirMacAddr bssId; //BSSID
2686 tANI_U16 aid; // use 0 if macAddr is being specified
2687 tANI_U8 macAddr[6]; // only on AP to specify the STA
2688 tANI_U8 rspReqd;
2689 tSirDeltsReqInfo req;
2690} tSirDeltsReq, *tpSirDeltsReq;
2691
2692typedef struct sSirDeltsRsp
2693{
2694 tANI_U16 messageType; // eWNI_SME_DELTS_RSP
2695 tANI_U16 length;
2696 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2697 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2698 tANI_U32 rc;
2699 tANI_U16 aid; // use 0 if macAddr is being specified
2700 tANI_U8 macAddr[6]; // only on AP to specify the STA
2701 tSirDeltsReqInfo rsp;
2702} tSirDeltsRsp, *tpSirDeltsRsp;
2703
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002704#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07002705
2706#define SIR_QOS_NUM_TSPEC_MAX 2
2707#define SIR_QOS_NUM_AC_MAX 4
2708
2709typedef struct sSirAggrQosReqInfo
2710{
2711 tANI_U16 tspecIdx;
2712 tSirAddtsReqInfo aggrAddTsInfo[SIR_QOS_NUM_AC_MAX];
2713}tSirAggrQosReqInfo, *tpSirAggrQosReqInfo;
2714
2715typedef struct sSirAggrQosReq
2716{
2717 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2718 tANI_U16 length;
2719 tANI_U8 sessionId; //Session ID
2720 tANI_U16 transactionId;
2721 tSirMacAddr bssId; //BSSID
2722 tANI_U32 timeout; // in ms
2723 tANI_U8 rspReqd;
2724 tSirAggrQosReqInfo aggrInfo;
2725}tSirAggrQosReq, *tpSirAggrQosReq;
2726
2727typedef struct sSirAggrQosRspInfo
2728{
2729 tANI_U16 tspecIdx;
2730 tSirAddtsRspInfo aggrRsp[SIR_QOS_NUM_AC_MAX];
2731} tSirAggrQosRspInfo, *tpSirAggrQosRspInfo;
2732
2733typedef struct sSirAggrQosRsp
2734{
2735 tANI_U16 messageType;
2736 tANI_U16 length;
2737 tANI_U8 sessionId;
2738 tSirAggrQosRspInfo aggrInfo;
2739} tSirAggrQosRsp, *tpSirAggrQosRsp;
2740
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002741#endif/*WLAN_FEATURE_VOWIFI_11R || FEATURE_WLAN_ESE*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002742
2743typedef struct sSirSetTxPowerReq
2744{
schang86c22c42013-03-13 18:41:24 -07002745 tANI_U16 messageType;
2746 tANI_U16 length;
2747 tSirMacAddr bssId;
2748 tANI_U8 mwPower;
2749 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07002750} tSirSetTxPowerReq, *tpSirSetTxPowerReq;
2751
2752typedef struct sSirSetTxPowerRsp
2753{
2754 tANI_U16 messageType;
2755 tANI_U16 length;
2756 tANI_U32 status;
2757} tSirSetTxPowerRsp, *tpSirSetTxPowerRsp;
2758
2759typedef struct sSirGetTxPowerReq
2760{
2761 tANI_U16 messageType;
2762 tANI_U16 length;
2763 tANI_U16 staid;
2764} tSirGetTxPowerReq, *tpSirGetTxPowerReq;
2765
2766typedef struct sSirGetTxPowerRsp
2767{
2768 tANI_U16 messageType;
2769 tANI_U16 length; // length of the entire request
2770 tANI_U32 power; // units of milliwatts
2771 tANI_U32 status;
2772} tSirGetTxPowerRsp, *tpSirGetTxPowerRsp;
2773
2774
2775typedef tANI_U32 tSirMacNoise[3];
2776
2777typedef struct sSirGetNoiseRsp
2778{
2779 tANI_U16 messageType;
2780 tANI_U16 length;
2781 tSirMacNoise noise;
2782} tSirGetNoiseRsp, *tpSirGetNoiseRsp;
2783
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07002784typedef struct sSirQosMapSet
2785{
2786 tANI_U8 present;
2787 tANI_U8 num_dscp_exceptions;
2788 tANI_U8 dscp_exceptions[21][2];
Leela Venkata Kiran Kumar Reddy Chiralafddf3552014-06-11 17:16:30 -07002789 tANI_U8 dscp_range[8][2];
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07002790} tSirQosMapSet, *tpSirQosMapSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07002791
2792//
2793// PMC --> PE --> HAL
2794// Power save configuration parameters
2795//
2796typedef struct sSirPowerSaveCfg
2797{
2798 tANI_U16 listenInterval;
2799
2800 /* Number of consecutive missed beacons before
2801 * hardware generates an interrupt to wake up
2802 * the host. In units of listen interval.
2803 */
2804 tANI_U32 HeartBeatCount;
2805
2806 /* specifies which beacons are to be forwarded
2807 * to host when beacon filtering is enabled.
2808 * In units of listen interval.
2809 */
2810 tANI_U32 nthBeaconFilter;
2811
2812 /* Maximum number of PS-Poll send before
2813 * firmware sends data null with PM set to 0.
2814 */
2815 tANI_U32 maxPsPoll;
2816
2817 /* If the average RSSI value falls below the
2818 * minRssiThreshold, then FW will send an
2819 * interrupt to wake up the host.
2820 */
2821 tANI_U32 minRssiThreshold;
2822
2823 /* Number of beacons for which firmware will
2824 * collect the RSSI values and compute the average.
2825 */
2826 tANI_U8 numBeaconPerRssiAverage;
2827
2828 /* FW collects the RSSI stats for this period
2829 * in BMPS mode.
2830 */
2831 tANI_U8 rssiFilterPeriod;
2832
2833 // Enabling/disabling broadcast frame filter feature
2834 tANI_U8 broadcastFrameFilter;
2835
2836 // Enabling/disabling the ignore DTIM feature
2837 tANI_U8 ignoreDtim;
2838
2839 /* The following configuration parameters are kept
2840 * in order to be backward compatible for Gen5.
2841 * These will NOT be used for Gen6 Libra chip
2842 */
2843 tBeaconForwarding beaconFwd;
2844 tANI_U16 nthBeaconFwd;
2845 tANI_U8 fEnablePwrSaveImmediately;
2846 tANI_U8 fPSPoll;
2847
2848 // Enabling/disabling Beacon Early Termination feature
2849 tANI_U8 fEnableBeaconEarlyTermination;
2850 tANI_U8 bcnEarlyTermWakeInterval;
2851
2852}tSirPowerSaveCfg, *tpSirPowerSaveCfg;
2853
2854/* Reason code for requesting Full Power. This reason code is used by
2855 any module requesting full power from PMC and also by PE when it
2856 sends the eWNI_PMC_EXIT_BMPS_IND to PMC*/
2857typedef enum eRequestFullPowerReason
2858{
2859 eSME_MISSED_BEACON_IND_RCVD, /* PE received a MAX_MISSED_BEACON_IND */
2860 eSME_BMPS_STATUS_IND_RCVD, /* PE received a SIR_HAL_BMPS_STATUS_IND */
2861 eSME_BMPS_MODE_DISABLED, /* BMPS mode was disabled by HDD in SME */
2862 eSME_LINK_DISCONNECTED_BY_HDD, /* Link has been disconnected requested by HDD */
2863 eSME_LINK_DISCONNECTED_BY_OTHER,/* Disconnect due to linklost or requested by peer */
2864 eSME_FULL_PWR_NEEDED_BY_HDD, /* HDD request full power for some reason */
2865 eSME_FULL_PWR_NEEDED_BY_BAP, /* BAP request full power for BT_AMP */
2866 eSME_FULL_PWR_NEEDED_BY_CSR, /* CSR requests full power */
2867 eSME_FULL_PWR_NEEDED_BY_QOS, /* QOS requests full power */
2868 eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH, /* channel switch request full power*/
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002869#ifdef FEATURE_WLAN_TDLS
2870 eSME_FULL_PWR_NEEDED_BY_TDLS_PEER_SETUP, /* TDLS peer setup*/
2871#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002872 eSME_REASON_OTHER /* No specific reason. General reason code */
2873} tRequestFullPowerReason, tExitBmpsReason;
2874
2875
2876
2877//This is sent alongwith eWNI_PMC_EXIT_BMPS_REQ message
2878typedef struct sExitBmpsInfo
2879{
2880 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
2881}tExitBmpsInfo, *tpExitBmpsInfo;
2882
2883
2884// MAC SW --> SME
2885// Message indicating to SME to exit BMPS sleep mode
2886typedef struct sSirSmeExitBmpsInd
2887{
2888 tANI_U16 mesgType; /* eWNI_PMC_EXIT_BMPS_IND */
2889 tANI_U16 mesgLen;
2890 tSirResultCodes statusCode;
2891 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
2892
2893} tSirSmeExitBmpsInd, *tpSirSmeExitBmpsInd;
2894
2895
2896//
2897// HDD -> LIM
2898// tSirMsgQ.type = eWNI_SME_DEL_BA_PEER_IND
2899// tSirMsgQ.reserved = 0
2900// tSirMsgQ.body = instance of tDelBAParams
2901//
2902typedef struct sSmeDelBAPeerInd
2903{
2904 // Message Type
2905 tANI_U16 mesgType;
2906
2907 tSirMacAddr bssId;//BSSID
2908
2909 // Message Length
2910 tANI_U16 mesgLen;
2911
2912 // Station Index
2913 tANI_U16 staIdx;
2914
2915 // TID for which the BA session is being deleted
2916 tANI_U8 baTID;
2917
2918 // DELBA direction
2919 // eBA_INITIATOR - Originator
2920 // eBA_RECEIPIENT - Recipient
2921 tANI_U8 baDirection;
2922} tSmeDelBAPeerInd, *tpSmeDelBAPeerInd;
2923
2924typedef struct sSmeIbssPeerInd
2925{
2926 tANI_U16 mesgType;
2927 tANI_U16 mesgLen;
2928 tANI_U8 sessionId;
2929
2930 tSirMacAddr peerAddr;
2931 tANI_U16 staId;
2932
2933 /*The DPU signatures will be sent eventually to TL to help it determine the
2934 association to which a packet belongs to*/
2935 /*Unicast DPU signature*/
2936 tANI_U8 ucastSig;
2937
2938 /*Broadcast DPU signature*/
2939 tANI_U8 bcastSig;
2940
2941 //Beacon will be appended for new Peer indication.
2942}tSmeIbssPeerInd, *tpSmeIbssPeerInd;
2943
Ravi Joshid2ca7c42013-07-23 08:37:49 -07002944typedef struct sSirIbssPeerInactivityInd
2945{
2946 tANI_U8 bssIdx;
2947 tANI_U8 staIdx;
2948 tSirMacAddr peerAddr;
2949}tSirIbssPeerInactivityInd, *tpSirIbssPeerInactivityInd;
2950
2951
Jeff Johnson295189b2012-06-20 16:38:30 -07002952typedef struct sLimScanChn
2953{
2954 tANI_U16 numTimeScan; //how many time this channel is scan
2955 tANI_U8 channelId;
2956}tLimScanChn;
2957
2958typedef struct sSmeGetScanChnRsp
2959{
2960 // Message Type
2961 tANI_U16 mesgType;
2962 // Message Length
2963 tANI_U16 mesgLen;
2964 tANI_U8 sessionId;
2965 tANI_U8 numChn;
2966 tLimScanChn scanChn[1];
2967} tSmeGetScanChnRsp, *tpSmeGetScanChnRsp;
2968
2969typedef struct sLimScanChnInfo
2970{
2971 tANI_U8 numChnInfo; //number of channels in scanChn
2972 tLimScanChn scanChn[SIR_MAX_SUPPORTED_CHANNEL_LIST];
2973}tLimScanChnInfo;
2974
Jeff Johnson295189b2012-06-20 16:38:30 -07002975typedef struct sSirSmeGetAssocSTAsReq
2976{
2977 tANI_U16 messageType; // eWNI_SME_GET_ASSOC_STAS_REQ
2978 tANI_U16 length;
2979 tSirMacAddr bssId; // BSSID
2980 tANI_U16 modId;
2981 void *pUsrContext;
2982 void *pSapEventCallback;
2983 void *pAssocStasArray;// Pointer to allocated memory passed in WLANSAP_GetAssocStations API
2984} tSirSmeGetAssocSTAsReq, *tpSirSmeGetAssocSTAsReq;
Jeff Johnson295189b2012-06-20 16:38:30 -07002985
2986typedef struct sSmeMaxAssocInd
2987{
2988 tANI_U16 mesgType; // eWNI_SME_MAX_ASSOC_EXCEEDED
2989 tANI_U16 mesgLen;
2990 tANI_U8 sessionId;
2991 tSirMacAddr peerMac; // the new peer that got rejected due to softap max assoc limit reached
2992} tSmeMaxAssocInd, *tpSmeMaxAssocInd;
2993
2994/*--------------------------------------------------------------------*/
2995/* BootLoader message definition */
2996/*--------------------------------------------------------------------*/
2997
2998/*--------------------------------------------------------------------*/
2999/* FW image size */
3000/*--------------------------------------------------------------------*/
3001#define SIR_FW_IMAGE_SIZE 146332
3002
3003
3004#define SIR_BOOT_MODULE_ID 1
3005
3006#define SIR_BOOT_SETUP_IND ((SIR_BOOT_MODULE_ID << 8) | 0x11)
3007#define SIR_BOOT_POST_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x12)
3008#define SIR_BOOT_DNLD_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x13)
3009#define SIR_BOOT_DNLD_DEV_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x41)
3010#define SIR_BOOT_DNLD_DEV_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x81)
3011#define SIR_BOOT_DNLD_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x42)
3012#define SIR_BOOT_DNLD_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x82)
3013
3014/*--------------------------------------------------------------------*/
3015/* Bootloader message syntax */
3016/*--------------------------------------------------------------------*/
3017
3018// Message header
3019#define SIR_BOOT_MB_HEADER 0
3020#define SIR_BOOT_MB_HEADER2 1
3021
3022#define SIR_BOOT_MSG_HDR_MASK 0xffff0000
3023#define SIR_BOOT_MSG_LEN_MASK 0x0000ffff
3024
3025// BOOT_SETUP_IND parameter indices
3026#define SIR_BOOT_SETUP_IND_MBADDR 2
3027#define SIR_BOOT_SETUP_IND_MBSIZE 3
3028#define SIR_BOOT_SETUP_IND_MEMOPT 4
3029#define SIR_BOOT_SETUP_IND_LEN \
3030 ((SIR_BOOT_SETUP_IND_MEMOPT+1)<<2)
3031
3032// BOOT_POST_RESULT_IND parameter indices
3033#define SIR_BOOT_POST_RESULT_IND_RES 2
3034#define SIR_BOOT_POST_RESULT_IND_LEN \
3035 ((SIR_BOOT_POST_RESULT_IND_RES+1)<<2)
3036
3037#define SIR_BOOT_POST_RESULT_IND_SUCCESS 1
3038#define SIR_BOOT_POST_RESULT_IND_MB_FAILED 2
3039#define SIR_BOOT_POST_RESULT_IND_SDRAM_FAILED 3
3040#define SIR_BOOT_POST_RESULT_IND_ESRAM_FAILED 4
3041
3042
3043// BOOT_DNLD_RESULT_IND parameter indices
3044#define SIR_BOOT_DNLD_RESULT_IND_RES 2
3045#define SIR_BOOT_DNLD_RESULT_IND_LEN \
3046 ((SIR_BOOT_DNLD_RESULT_IND_RES+1)<<2)
3047
3048#define SIR_BOOT_DNLD_RESULT_IND_SUCCESS 1
3049#define SIR_BOOT_DNLD_RESULT_IND_HDR_ERR 2
3050#define SIR_BOOT_DNLD_RESULT_IND_ERR 3
3051
3052// BOOT_DNLD_DEV_REQ
3053#define SIR_BOOT_DNLD_DEV_REQ_SDRAMSIZE 2
3054#define SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE 3
3055#define SIR_BOOT_DNLD_DEV_REQ_LEN \
3056 ((SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE+1)<<2)
3057
3058// BOOT_DNLD_DEV_RSP
3059#define SIR_BOOT_DNLD_DEV_RSP_DEVTYPE 2
3060#define SIR_BOOT_DNLD_DEV_RSP_LEN \
3061 ((SIR_BOOT_DNLD_DEV_RSP_DEVTYPE+1)<<2)
3062
3063#define SIR_BOOT_DNLD_DEV_RSP_SRAM 1
3064#define SIR_BOOT_DNLD_DEV_RSP_FLASH 2
3065
3066// BOOT_DNLD_REQ
3067#define SIR_BOOT_DNLD_REQ_OFFSET 2
3068#define SIR_BOOT_DNLD_REQ_WRADDR 3
3069#define SIR_BOOT_DNLD_REQ_SIZE 4
3070#define SIR_BOOT_DNLD_REQ_LEN ((SIR_BOOT_DNLD_REQ_SIZE+1)<<2)
3071
3072// BOOT_DNLD_RSP
3073#define SIR_BOOT_DNLD_RSP_SIZE 2
3074#define SIR_BOOT_DNLD_RSP_LEN ((SIR_BOOT_DNLD_RSP_SIZE+1)<<2)
3075
Jeff Johnson295189b2012-06-20 16:38:30 -07003076
3077// board capabilities fields are defined here.
3078typedef __ani_attr_pre_packed struct sSirBoardCapabilities
3079{
3080#ifndef ANI_LITTLE_BIT_ENDIAN
3081 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
3082 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
3083 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
3084 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
3085 tANI_U32 rsvd1:2;
3086 // (productId derives sub-category in the following three families)
3087 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
3088 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
3089 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
3090 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
3091 tANI_U32 bbChipVer:4; // Baseband chip version
3092 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
3093 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
3094 tANI_U32 nReceivers:2; // 0 based.
3095 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
3096 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
3097 tANI_U32 rsvd:1;
3098 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
3099#else
3100
3101 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
3102 tANI_U32 rsvd:1;
3103 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
3104 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
3105 tANI_U32 nReceivers:2; // 0 based.
3106 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
3107 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
3108 tANI_U32 bbChipVer:4; // Baseband chip version
3109 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
3110 // (productId derives sub-category in the following three families)
3111 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
3112 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
3113 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
3114 tANI_U32 rsvd1:2;
3115 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
3116 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
3117 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
3118 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
3119#endif
3120} __ani_attr_packed tSirBoardCapabilities, *tpSirBoardCapabilities;
3121
3122# define ANI_BCAP_EXT_VS_INT_ANT_MASK 0x1
3123# define ANI_BCAP_EXT_VS_INT_ANT_OFFSET 0
3124
3125# define ANI_BCAP_GAL_ON_BOARD_MASK 0x2
3126# define ANI_BCAP_GAL_ON_BOARD_OFFSET 1
3127
3128# define ANI_BCAP_SDRAM_MASK 0x4
3129# define ANI_BCAP_SDRAM_OFFSET 2
3130
3131# define ANI_BCAP_NUM_TRANSMITTERS_MASK 0x8
3132# define ANI_BCAP_NUM_TRANSMITTERS_OFFSET 3
3133
3134# define ANI_BCAP_NUM_RECEIVERS_MASK 0x30
3135# define ANI_BCAP_NUM_RECEIVERS_OFFSET 4
3136
3137# define ANI_BCAP_RADIO_ON_MASK 0xC0
3138# define ANI_BCAP_RADIO_ON_OFFSET 6
3139
3140# define ANI_BCAP_LO_TYPE_MASK 0x300
3141# define ANI_BCAP_LO_TYPE_OFFSET 8
3142
3143# define ANI_BCAP_BB_CHIP_VER_MASK 0xC00
3144# define ANI_BCAP_BB_CHIP_VER_OFFSET 10
3145
3146# define ANI_BCAP_CYG_DATE_CODE_MASK 0xFF000
3147# define ANI_BCAP_CYG_DATE_CODE_OFFSET 12
3148
3149# define ANI_BCAP_RADIO_OFF 0
3150# define ANI_BCAP_RADIO_ON 1
3151# define ANI_BCAP_RADIO_ON_NOT_SUPPORTED 3
3152
3153
3154/// WOW related structures
3155// SME -> PE <-> HAL
3156#define SIR_WOWL_BCAST_PATTERN_MAX_SIZE 128
3157#define SIR_WOWL_BCAST_MAX_NUM_PATTERNS 16
3158
3159// SME -> PE -> HAL - This is to add WOWL BCAST wake-up pattern.
3160// SME/HDD maintains the list of the BCAST wake-up patterns.
3161// This is a pass through message for PE
3162typedef struct sSirWowlAddBcastPtrn
3163{
3164 tANI_U8 ucPatternId; // Pattern ID
3165 // Pattern byte offset from beginning of the 802.11 packet to start of the
3166 // wake-up pattern
3167 tANI_U8 ucPatternByteOffset;
3168 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3169 tANI_U8 ucPattern[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3170 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3171 tANI_U8 ucPatternMask[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3172 // Extra pattern data beyond 128 bytes
3173 tANI_U8 ucPatternExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern
3174 tANI_U8 ucPatternMaskExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern mask
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003175 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07003176} tSirWowlAddBcastPtrn, *tpSirWowlAddBcastPtrn;
3177
3178
3179// SME -> PE -> HAL - This is to delete WOWL BCAST wake-up pattern.
3180// SME/HDD maintains the list of the BCAST wake-up patterns.
3181// This is a pass through message for PE
3182typedef struct sSirWowlDelBcastPtrn
3183{
3184 /* Pattern ID of the wakeup pattern to be deleted */
3185 tANI_U8 ucPatternId;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003186 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07003187}tSirWowlDelBcastPtrn, *tpSirWowlDelBcastPtrn;
3188
3189
3190// SME->PE: Enter WOWLAN parameters
3191typedef struct sSirSmeWowlEnterParams
3192{
3193 /* Enables/disables magic packet filtering */
3194 tANI_U8 ucMagicPktEnable;
3195
3196 /* Magic pattern */
3197 tSirMacAddr magicPtrn;
3198
3199 /* Enables/disables packet pattern filtering */
3200 tANI_U8 ucPatternFilteringEnable;
3201
3202#ifdef WLAN_WAKEUP_EVENTS
3203 /* This configuration directs the WoW packet filtering to look for EAP-ID
3204 * requests embedded in EAPOL frames and use this as a wake source.
3205 */
3206 tANI_U8 ucWoWEAPIDRequestEnable;
3207
3208 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3209 * requests and use this as a wake source.
3210 */
3211 tANI_U8 ucWoWEAPOL4WayEnable;
3212
3213 /* This configuration allows a host wakeup on an network scan offload match.
3214 */
3215 tANI_U8 ucWowNetScanOffloadMatch;
3216
3217 /* This configuration allows a host wakeup on any GTK rekeying error.
3218 */
3219 tANI_U8 ucWowGTKRekeyError;
3220
3221 /* This configuration allows a host wakeup on BSS connection loss.
3222 */
3223 tANI_U8 ucWoWBSSConnLoss;
3224#endif // WLAN_WAKEUP_EVENTS
3225
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003226 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003227} tSirSmeWowlEnterParams, *tpSirSmeWowlEnterParams;
3228
3229
3230// PE<->HAL: Enter WOWLAN parameters
3231typedef struct sSirHalWowlEnterParams
3232{
3233 /* Enables/disables magic packet filtering */
3234 tANI_U8 ucMagicPktEnable;
3235
3236 /* Magic pattern */
3237 tSirMacAddr magicPtrn;
3238
3239 /* Enables/disables packet pattern filtering in firmware.
3240 Enabling this flag enables broadcast pattern matching
3241 in Firmware. If unicast pattern matching is also desired,
3242 ucUcastPatternFilteringEnable flag must be set tot true
3243 as well
3244 */
3245 tANI_U8 ucPatternFilteringEnable;
3246
3247 /* Enables/disables unicast packet pattern filtering.
3248 This flag specifies whether we want to do pattern match
3249 on unicast packets as well and not just broadcast packets.
3250 This flag has no effect if the ucPatternFilteringEnable
3251 (main controlling flag) is set to false
3252 */
3253 tANI_U8 ucUcastPatternFilteringEnable;
3254
3255 /* This configuration is valid only when magicPktEnable=1.
3256 * It requests hardware to wake up when it receives the
3257 * Channel Switch Action Frame.
3258 */
3259 tANI_U8 ucWowChnlSwitchRcv;
3260
3261 /* This configuration is valid only when magicPktEnable=1.
3262 * It requests hardware to wake up when it receives the
3263 * Deauthentication Frame.
3264 */
3265 tANI_U8 ucWowDeauthRcv;
3266
3267 /* This configuration is valid only when magicPktEnable=1.
3268 * It requests hardware to wake up when it receives the
3269 * Disassociation Frame.
3270 */
3271 tANI_U8 ucWowDisassocRcv;
3272
3273 /* This configuration is valid only when magicPktEnable=1.
3274 * It requests hardware to wake up when it has missed
3275 * consecutive beacons. This is a hardware register
3276 * configuration (NOT a firmware configuration).
3277 */
3278 tANI_U8 ucWowMaxMissedBeacons;
3279
3280 /* This configuration is valid only when magicPktEnable=1.
3281 * This is a timeout value in units of microsec. It requests
3282 * hardware to unconditionally wake up after it has stayed
3283 * in WoWLAN mode for some time. Set 0 to disable this feature.
3284 */
3285 tANI_U8 ucWowMaxSleepUsec;
3286
3287#ifdef WLAN_WAKEUP_EVENTS
3288 /* This configuration directs the WoW packet filtering to look for EAP-ID
3289 * requests embedded in EAPOL frames and use this as a wake source.
3290 */
3291 tANI_U8 ucWoWEAPIDRequestEnable;
3292
3293 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3294 * requests and use this as a wake source.
3295 */
3296 tANI_U8 ucWoWEAPOL4WayEnable;
3297
3298 /* This configuration allows a host wakeup on an network scan offload match.
3299 */
3300 tANI_U8 ucWowNetScanOffloadMatch;
3301
3302 /* This configuration allows a host wakeup on any GTK rekeying error.
3303 */
3304 tANI_U8 ucWowGTKRekeyError;
3305
3306 /* This configuration allows a host wakeup on BSS connection loss.
3307 */
3308 tANI_U8 ucWoWBSSConnLoss;
3309#endif // WLAN_WAKEUP_EVENTS
3310
3311 /* Status code to be filled by HAL when it sends
3312 * SIR_HAL_WOWL_ENTER_RSP to PE.
3313 */
3314 eHalStatus status;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003315
3316 /*BSSID to find the current session
3317 */
3318 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003319} tSirHalWowlEnterParams, *tpSirHalWowlEnterParams;
3320
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003321// PE<->HAL: Exit WOWLAN parameters
3322typedef struct sSirHalWowlExitParams
3323{
3324 /* Status code to be filled by HAL when it sends
3325 * SIR_HAL_WOWL_EXIT_RSP to PE.
3326 */
3327 eHalStatus status;
3328
3329 /*BSSIDX to find the current session
3330 */
3331 tANI_U8 bssIdx;
3332} tSirHalWowlExitParams, *tpSirHalWowlExitParams;
3333
Jeff Johnson295189b2012-06-20 16:38:30 -07003334
3335#define SIR_MAX_NAME_SIZE 64
3336#define SIR_MAX_TEXT_SIZE 32
3337
3338typedef struct sSirName {
3339 v_U8_t num_name;
3340 v_U8_t name[SIR_MAX_NAME_SIZE];
3341} tSirName;
3342
3343typedef struct sSirText {
3344 v_U8_t num_text;
3345 v_U8_t text[SIR_MAX_TEXT_SIZE];
3346} tSirText;
3347
3348
3349#define SIR_WPS_PROBRSP_VER_PRESENT 0x00000001
3350#define SIR_WPS_PROBRSP_STATE_PRESENT 0x00000002
3351#define SIR_WPS_PROBRSP_APSETUPLOCK_PRESENT 0x00000004
3352#define SIR_WPS_PROBRSP_SELECTEDREGISTRA_PRESENT 0x00000008
3353#define SIR_WPS_PROBRSP_DEVICEPASSWORDID_PRESENT 0x00000010
3354#define SIR_WPS_PROBRSP_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3355#define SIR_WPS_PROBRSP_RESPONSETYPE_PRESENT 0x00000040
3356#define SIR_WPS_PROBRSP_UUIDE_PRESENT 0x00000080
3357#define SIR_WPS_PROBRSP_MANUFACTURE_PRESENT 0x00000100
3358#define SIR_WPS_PROBRSP_MODELNAME_PRESENT 0x00000200
3359#define SIR_WPS_PROBRSP_MODELNUMBER_PRESENT 0x00000400
3360#define SIR_WPS_PROBRSP_SERIALNUMBER_PRESENT 0x00000800
3361#define SIR_WPS_PROBRSP_PRIMARYDEVICETYPE_PRESENT 0x00001000
3362#define SIR_WPS_PROBRSP_DEVICENAME_PRESENT 0x00002000
3363#define SIR_WPS_PROBRSP_CONFIGMETHODS_PRESENT 0x00004000
3364#define SIR_WPS_PROBRSP_RF_BANDS_PRESENT 0x00008000
3365
3366
3367typedef struct sSirWPSProbeRspIE {
3368 v_U32_t FieldPresent;
3369 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3370 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3371 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3372 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3373 v_U16_t DevicePasswordID; // Device Password ID
3374 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3375 v_U8_t ResponseType; // Response type
3376 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3377 tSirName Manufacture;
3378 tSirText ModelName;
3379 tSirText ModelNumber;
3380 tSirText SerialNumber;
3381 v_U32_t PrimaryDeviceCategory ; // Device Category ID: 1Computer, 2Input Device, ...
3382 v_U8_t PrimaryDeviceOUI[4] ; // Vendor specific OUI for Device Sub Category
3383 v_U32_t DeviceSubCategory ; // Device Sub Category ID: 1-PC, 2-Server if Device Category ID is computer
3384 tSirText DeviceName;
3385 v_U16_t ConfigMethod; // Configuaration method
3386 v_U8_t RFBand; // RF bands available on the AP
3387} tSirWPSProbeRspIE;
3388
3389#define SIR_WPS_BEACON_VER_PRESENT 0x00000001
3390#define SIR_WPS_BEACON_STATE_PRESENT 0x00000002
3391#define SIR_WPS_BEACON_APSETUPLOCK_PRESENT 0x00000004
3392#define SIR_WPS_BEACON_SELECTEDREGISTRA_PRESENT 0x00000008
3393#define SIR_WPS_BEACON_DEVICEPASSWORDID_PRESENT 0x00000010
3394#define SIR_WPS_BEACON_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3395#define SIR_WPS_BEACON_UUIDE_PRESENT 0x00000080
3396#define SIR_WPS_BEACON_RF_BANDS_PRESENT 0x00000100
3397
3398typedef struct sSirWPSBeaconIE {
3399 v_U32_t FieldPresent;
3400 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3401 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3402 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3403 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3404 v_U16_t DevicePasswordID; // Device Password ID
3405 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3406 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3407 v_U8_t RFBand; // RF bands available on the AP
3408} tSirWPSBeaconIE;
3409
3410#define SIR_WPS_ASSOCRSP_VER_PRESENT 0x00000001
3411#define SIR_WPS_ASSOCRSP_RESPONSETYPE_PRESENT 0x00000002
3412
3413typedef struct sSirWPSAssocRspIE {
3414 v_U32_t FieldPresent;
3415 v_U32_t Version;
3416 v_U8_t ResposeType;
3417} tSirWPSAssocRspIE;
3418
3419typedef struct sSirAPWPSIEs {
3420 tSirWPSProbeRspIE SirWPSProbeRspIE; /*WPS Set Probe Respose IE*/
3421 tSirWPSBeaconIE SirWPSBeaconIE; /*WPS Set Beacon IE*/
3422 tSirWPSAssocRspIE SirWPSAssocRspIE; /*WPS Set Assoc Response IE*/
3423} tSirAPWPSIEs, *tpSiriAPWPSIEs;
3424
3425typedef struct sSirUpdateAPWPSIEsReq
3426{
3427 tANI_U16 messageType; // eWNI_SME_UPDATE_APWPSIE_REQ
3428 tANI_U16 length;
3429 tANI_U16 transactionId; //Transaction ID for cmd
3430 tSirMacAddr bssId; // BSSID
3431 tANI_U8 sessionId; //Session ID
3432 tSirAPWPSIEs APWPSIEs;
3433} tSirUpdateAPWPSIEsReq, *tpSirUpdateAPWPSIEsReq;
3434
3435typedef struct sSirUpdateParams
3436{
3437 tANI_U16 messageType;
3438 tANI_U16 length;
3439 tANI_U8 sessionId; // Session ID
3440 tANI_U8 ssidHidden; // Hide SSID
3441} tSirUpdateParams, *tpSirUpdateParams;
3442
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08003443//Beacon Interval
3444typedef struct sSirChangeBIParams
3445{
3446 tANI_U16 messageType;
3447 tANI_U16 length;
3448 tANI_U16 beaconInterval; // Beacon Interval
3449 tSirMacAddr bssId;
3450 tANI_U8 sessionId; // Session ID
3451} tSirChangeBIParams, *tpSirChangeBIParams;
3452
Hardik Kantilal Patel62a3a762014-11-21 12:55:57 +05303453#ifdef WLAN_FEATURE_AP_HT40_24G
3454typedef struct sSirSetHT2040Mode
3455{
3456 tANI_U16 messageType;
3457 tANI_U16 length;
3458 tANI_U8 cbMode;
3459 tSirMacAddr bssId;
3460 tANI_U8 sessionId; // Session ID
3461} tSirSetHT2040Mode, *tpSirSetHT2040Mode;
Hardik Kantilal Patel81f76342014-11-14 12:45:26 -08003462
3463typedef struct sSirHT2040CoexInfoInd
3464{
3465 tANI_U16 messageType; // eWNI_SME_2040_COEX_IND
3466 tANI_U16 length;
3467 tANI_U8 sessionId;
3468 tANI_U8 HT40MHzIntolerant;
3469 tANI_U8 HT20MHzBssWidthReq;
3470 tANI_U8 channel_num;
3471 tANI_U8 HT2040BssIntoChanReport [1]; //variable
3472}tSirHT2040CoexInfoInd, *tpSirHT2040CoexInfoInd;
Hardik Kantilal Patel62a3a762014-11-21 12:55:57 +05303473#endif
3474
Sandeep Puligilla11d49a62014-01-30 12:05:16 +05303475typedef struct sSirOBSSHT40Param
3476{
3477 tANI_U16 OBSSScanPassiveDwellTime;
3478 tANI_U16 OBSSScanActiveDwellTime;
3479 tANI_U16 BSSChannelWidthTriggerScanInterval;
3480 tANI_U16 OBSSScanPassiveTotalPerChannel;
3481 tANI_U16 OBSSScanActiveTotalPerChannel;
3482 tANI_U16 BSSWidthChannelTransitionDelayFactor;
3483 tANI_U16 OBSSScanActivityThreshold;
3484}tSirOBSSHT40Param, *tpOBSSHT40Param;
3485
Jeff Johnson295189b2012-06-20 16:38:30 -07003486#define SIR_WPS_UUID_LEN 16
3487#define SIR_WPS_PBC_WALK_TIME 120 // 120 Second
3488
3489typedef struct sSirWPSPBCSession {
3490 struct sSirWPSPBCSession *next;
3491 tSirMacAddr addr;
3492 tANI_U8 uuid_e[SIR_WPS_UUID_LEN];
3493 tANI_TIMESTAMP timestamp;
3494} tSirWPSPBCSession;
3495
3496typedef struct sSirSmeGetWPSPBCSessionsReq
3497{
3498 tANI_U16 messageType; // eWNI_SME_GET_WPSPBC_SESSION_REQ
3499 tANI_U16 length;
3500 void *pUsrContext;
3501 void *pSapEventCallback;
3502 tSirMacAddr bssId; // BSSID
3503 tSirMacAddr pRemoveMac; // MAC Address of STA in WPS Session to be removed
3504} tSirSmeGetWPSPBCSessionsReq, *tpSirSmeGetWPSPBCSessionsReq;
3505
3506typedef struct sSirWPSPBCProbeReq
3507{
3508 tSirMacAddr peerMacAddr;
3509 tANI_U16 probeReqIELen;
3510 tANI_U8 probeReqIE[512];
3511} tSirWPSPBCProbeReq, *tpSirWPSPBCProbeReq;
3512
3513// probereq from peer, when wsc is enabled
3514typedef struct sSirSmeProbeReqInd
3515{
3516 tANI_U16 messageType; // eWNI_SME_WPS_PBC_PROBE_REQ_IND
3517 tANI_U16 length;
3518 tANI_U8 sessionId;
3519 tSirMacAddr bssId;
3520 tSirWPSPBCProbeReq WPSPBCProbeReq;
3521} tSirSmeProbeReqInd, *tpSirSmeProbeReqInd;
3522
3523typedef struct sSirUpdateAPWPARSNIEsReq
3524{
3525 tANI_U16 messageType; // eWNI_SME_SET_APWPARSNIEs_REQ
3526 tANI_U16 length;
3527 tANI_U16 transactionId; //Transaction ID for cmd
3528 tSirMacAddr bssId; // BSSID
3529 tANI_U8 sessionId; //Session ID
3530 tSirRSNie APWPARSNIEs;
3531} tSirUpdateAPWPARSNIEsReq, *tpSirUpdateAPWPARSNIEsReq;
3532
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003533#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu52231ea2014-02-06 12:00:56 -08003534#define SIR_ROAM_MAX_CHANNELS 80
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003535#define SIR_ROAM_SCAN_MAX_PB_REQ_SIZE 450
3536#define CHANNEL_LIST_STATIC 1 /* Occupied channel list remains static */
3537#define CHANNEL_LIST_DYNAMIC_INIT 2 /* Occupied channel list can be learnt after init */
3538#define CHANNEL_LIST_DYNAMIC_FLUSH 3 /* Occupied channel list can be learnt after flush */
3539#define CHANNEL_LIST_DYNAMIC_UPDATE 4 /* Occupied channel list can be learnt after update */
3540#define SIR_ROAM_SCAN_24G_DEFAULT_CH 1
3541#define SIR_ROAM_SCAN_5G_DEFAULT_CH 36
Varun Reddy Yeturu6c5e25c2014-01-09 21:55:37 -08003542
3543/*Adaptive Thresholds to be used for FW based scanning*/
3544#define LFR_SENSITIVITY_THR_1MBPS -89
3545#define LFR_LOOKUP_THR_1MBPS -78
3546#define LFR_SENSITIVITY_THR_2MBPS -87
3547#define LFR_LOOKUP_THR_2MBPS -78
3548#define LFR_SENSITIVITY_THR_5_5MBPS -86
3549#define LFR_LOOKUP_THR_5_5MBPS -77
3550#define LFR_SENSITIVITY_THR_11MBPS -85
3551#define LFR_LOOKUP_THR_11MBPS -76
3552#define LFR_SENSITIVITY_THR_6MBPS_2G -83
3553#define LFR_LOOKUP_THR_6MBPS_2G -78
3554#define LFR_SENSITIVITY_THR_6MBPS_5G -83
3555#define LFR_LOOKUP_THR_6MBPS_5G -78
3556#define LFR_SENSITIVITY_THR_12MBPS_2G -83
3557#define LFR_LOOKUP_THR_12MBPS_2G -78
3558#define LFR_SENSITIVITY_THR_12MBPS_5G -81
3559#define LFR_LOOKUP_THR_12MBPS_5G -76
3560#define LFR_SENSITIVITY_THR_24MBPS_2G -81
3561#define LFR_LOOKUP_THR_24MBPS_2G -76
3562#define LFR_SENSITIVITY_THR_24MBPS_5G -79
3563#define LFR_LOOKUP_THR_24MBPS_5G -74
3564#define LFR_SENSITIVITY_THR_DEFAULT 0
3565#define LFR_LOOKUP_THR_DEFAULT -78
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003566#endif //WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Jeff Johnson295189b2012-06-20 16:38:30 -07003567
3568// SME -> HAL - This is the host offload request.
3569#define SIR_IPV4_ARP_REPLY_OFFLOAD 0
3570#define SIR_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3571#define SIR_IPV6_NS_OFFLOAD 2
3572#define SIR_OFFLOAD_DISABLE 0
3573#define SIR_OFFLOAD_ENABLE 1
3574#define SIR_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudibadffe72013-09-11 13:09:14 +05303575#define SIR_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003576#define SIR_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudibadffe72013-09-11 13:09:14 +05303577#define SIR_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003578
3579#ifdef WLAN_NS_OFFLOAD
3580typedef struct sSirNsOffloadReq
3581{
3582 tANI_U8 srcIPv6Addr[16];
3583 tANI_U8 selfIPv6Addr[16];
3584 //Only support 2 possible Network Advertisement IPv6 address
3585 tANI_U8 targetIPv6Addr[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][16];
3586 tANI_U8 selfMacAddr[6];
3587 tANI_U8 srcIPv6AddrValid;
3588 tANI_U8 targetIPv6AddrValid[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA];
Gopichand Nakkala746a9452013-06-11 12:45:54 +05303589 tANI_U8 slotIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003590} tSirNsOffloadReq, *tpSirNsOffloadReq;
3591#endif //WLAN_NS_OFFLOAD
3592
3593typedef struct sSirHostOffloadReq
3594{
3595 tANI_U8 offloadType;
3596 tANI_U8 enableOrDisable;
3597 union
3598 {
3599 tANI_U8 hostIpv4Addr [4];
3600 tANI_U8 hostIpv6Addr [16];
3601 } params;
3602#ifdef WLAN_NS_OFFLOAD
3603 tSirNsOffloadReq nsOffloadInfo;
3604#endif //WLAN_NS_OFFLOAD
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003605 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003606} tSirHostOffloadReq, *tpSirHostOffloadReq;
3607
3608/* Packet Types. */
3609#define SIR_KEEP_ALIVE_NULL_PKT 1
3610#define SIR_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3611
3612/* Enable or disable offload. */
3613#define SIR_KEEP_ALIVE_DISABLE 0
3614#define SIR_KEEP_ALIVE_ENABLE 1
3615
3616/* Keep Alive request. */
3617typedef struct sSirKeepAliveReq
3618{
3619 v_U8_t packetType;
3620 v_U32_t timePeriod;
3621 tSirIpv4Addr hostIpv4Addr;
3622 tSirIpv4Addr destIpv4Addr;
3623 tSirMacAddr destMacAddr;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003624 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003625} tSirKeepAliveReq, *tpSirKeepAliveReq;
3626
3627typedef struct sSirSmeAddStaSelfReq
3628{
3629 tANI_U16 mesgType;
3630 tANI_U16 mesgLen;
3631 tSirMacAddr selfMacAddr;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07003632 tVOS_CON_MODE currDeviceMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07003633}tSirSmeAddStaSelfReq, *tpSirSmeAddStaSelfReq;
3634
3635typedef struct sSirSmeDelStaSelfReq
3636{
3637 tANI_U16 mesgType;
3638 tANI_U16 mesgLen;
3639 tSirMacAddr selfMacAddr;
3640}tSirSmeDelStaSelfReq, *tpSirSmeDelStaSelfReq;
3641
3642typedef struct sSirSmeAddStaSelfRsp
3643{
3644 tANI_U16 mesgType;
3645 tANI_U16 mesgLen;
3646 tANI_U16 status;
3647 tSirMacAddr selfMacAddr;
3648}tSirSmeAddStaSelfRsp, *tpSirSmeAddStaSelfRsp;
3649
3650typedef struct sSirSmeDelStaSelfRsp
3651{
3652 tANI_U16 mesgType;
3653 tANI_U16 mesgLen;
3654 tANI_U16 status;
3655 tSirMacAddr selfMacAddr;
3656}tSirSmeDelStaSelfRsp, *tpSirSmeDelStaSelfRsp;
3657
Padma, Santhosh Kumar778d8382015-03-04 17:41:22 +05303658typedef enum DFSChanScanType
3659{
3660 DFS_CHNL_SCAN_DISABLED,
3661 DFS_CHNL_SCAN_ENABLED_NORMAL,
3662 DFS_CHNL_SCAN_ENABLED_ACTIVE
3663}eDFSChanScanType;
3664
Jeff Johnson295189b2012-06-20 16:38:30 -07003665/* Coex Indication defines -
3666 should match WLAN_COEX_IND_DATA_SIZE
3667 should match WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR
3668 should match WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR */
3669#define SIR_COEX_IND_DATA_SIZE (4)
3670#define SIR_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
3671#define SIR_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08003672#define SIR_COEX_IND_TYPE_SCAN_COMPROMISED (2)
3673#define SIR_COEX_IND_TYPE_SCAN_NOT_COMPROMISED (3)
Kiran Kumar Lokere458d7322013-05-29 14:29:43 -07003674#define SIR_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
3675#define SIR_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha23cea3c2014-11-04 13:05:20 +05303676#define SIR_COEX_IND_TYPE_ENABLE_UAPSD (6)
3677#define SIR_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothub3458992014-09-19 19:58:57 +05303678#define SIR_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Pradeep Reddy POTTETIf0569d72014-12-13 16:54:03 +05303679#define SIR_COEX_IND_TYPE_TDLS_ENABLE (6)
3680#define SIR_COEX_IND_TYPE_TDLS_DISABLE (7)
Jeff Johnson295189b2012-06-20 16:38:30 -07003681
3682typedef struct sSirSmeCoexInd
3683{
3684 tANI_U16 mesgType;
3685 tANI_U16 mesgLen;
3686 tANI_U32 coexIndType;
3687 tANI_U32 coexIndData[SIR_COEX_IND_DATA_SIZE];
3688}tSirSmeCoexInd, *tpSirSmeCoexInd;
3689
Jeff Johnson295189b2012-06-20 16:38:30 -07003690typedef struct sSirSmeMgmtFrameInd
3691{
Abhishek Singh7d624e12015-11-30 14:29:27 +05303692 tANI_U16 frameLen;
Chilam NG571c65a2013-01-19 12:27:36 +05303693 tANI_U32 rxChan;
Jeff Johnson295189b2012-06-20 16:38:30 -07003694 tANI_U8 sessionId;
3695 tANI_U8 frameType;
Chilam NG571c65a2013-01-19 12:27:36 +05303696 tANI_S8 rxRssi;
Jeff Johnson295189b2012-06-20 16:38:30 -07003697 tANI_U8 frameBuf[1]; //variable
3698}tSirSmeMgmtFrameInd, *tpSirSmeMgmtFrameInd;
Jeff Johnson295189b2012-06-20 16:38:30 -07003699
Chet Lanctot186b5732013-03-18 10:26:30 -07003700#ifdef WLAN_FEATURE_11W
3701typedef struct sSirSmeUnprotMgmtFrameInd
3702{
3703 tANI_U8 sessionId;
3704 tANI_U8 frameType;
3705 tANI_U8 frameLen;
3706 tANI_U8 frameBuf[1]; //variable
3707}tSirSmeUnprotMgmtFrameInd, *tpSirSmeUnprotMgmtFrameInd;
3708#endif
3709
Jeff Johnson295189b2012-06-20 16:38:30 -07003710#define SIR_IS_FULL_POWER_REASON_DISCONNECTED(eReason) \
3711 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || \
3712 ( eSME_LINK_DISCONNECTED_BY_OTHER == (eReason) ) || \
3713 (eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH == (eReason)))
3714#define SIR_IS_FULL_POWER_NEEDED_BY_HDD(eReason) \
3715 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || ( eSME_FULL_PWR_NEEDED_BY_HDD == (eReason) ) )
3716
3717/* P2P Power Save Related */
Jeff Johnson295189b2012-06-20 16:38:30 -07003718typedef struct sSirNoAParam
3719{
3720 tANI_U8 ctWindow:7;
3721 tANI_U8 OppPS:1;
3722 tANI_U8 count;
3723 tANI_U32 duration;
3724 tANI_U32 interval;
3725 tANI_U32 singleNoADuration;
3726 tANI_U8 psSelection;
3727}tSirNoAParam, *tpSirNoAParam;
Jeff Johnson295189b2012-06-20 16:38:30 -07003728
Jeff Johnson295189b2012-06-20 16:38:30 -07003729typedef struct sSirWlanSuspendParam
3730{
3731 tANI_U8 configuredMcstBcstFilterSetting;
3732}tSirWlanSuspendParam,*tpSirWlanSuspendParam;
3733
3734typedef struct sSirWlanResumeParam
3735{
3736 tANI_U8 configuredMcstBcstFilterSetting;
3737}tSirWlanResumeParam,*tpSirWlanResumeParam;
3738
3739typedef struct sSirWlanSetRxpFilters
3740{
3741 tANI_U8 configuredMcstBcstFilterSetting;
3742 tANI_U8 setMcstBcstFilter;
3743}tSirWlanSetRxpFilters,*tpSirWlanSetRxpFilters;
Jeff Johnson295189b2012-06-20 16:38:30 -07003744
c_manjeecfd1efb2015-09-25 19:32:34 +05303745typedef struct
3746{
3747 //FW mail box address
3748 uint64 logMailBoxAddr;
3749 tANI_U32 status;
3750 //Logging mail box version
3751 tANI_U8 logMailBoxVer;
3752 //Qshrink is enabled
3753 tANI_U8 logCompressEnabled;
3754 /* used to tell fwr mem dump size */
3755 tANI_U32 fw_mem_dump_max_size;
3756 //Reserved for future purpose
3757 tANI_U32 reserved1;
3758 tANI_U32 reserved2;
3759}tAniLoggingInitRsp, *tpAniLoggingInitRsp;
3760
3761typedef void(*FWLoggingInitReqCb)(void *fwlogInitCbContext, tAniLoggingInitRsp *pRsp);
Siddharth Bhal64246172015-02-27 01:04:37 +05303762typedef void ( *tGetFrameLogCallback) (void *pContext);
Gupta, Kapil7c34b322015-09-30 13:12:35 +05303763typedef void(*RssiMonitorReqCb)(void *rssiMonitorCbContext, VOS_STATUS status);
Siddharth Bhal64246172015-02-27 01:04:37 +05303764
3765typedef struct sAniGetFrameLogReq
3766{
3767 tANI_U16 msgType;
3768 tANI_U16 msgLen;
Siddharth Bhal64246172015-02-27 01:04:37 +05303769 tANI_U8 getFrameLogCmdFlag;
Siddharth Bhal64246172015-02-27 01:04:37 +05303770} tAniGetFrameLogReq, *tpAniGetFrameLogReq;
3771
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05303772
Siddharth Bhald1be97f2015-05-27 22:39:59 +05303773typedef struct sSirFWLoggingInitParam
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05303774{
3775 tANI_U8 enableFlag;
3776 tANI_U8 frameType;
3777 tANI_U8 frameSize;
3778 tANI_U8 bufferMode;
Siddharth Bhald1be97f2015-05-27 22:39:59 +05303779 tANI_U8 continuousFrameLogging;
3780 tANI_U8 minLogBufferSize;
3781 tANI_U8 maxLogBufferSize;
3782 FWLoggingInitReqCb fwlogInitCallback;
3783 void *fwlogInitCbContext;
3784}tSirFWLoggingInitParam,*tpSirFWLoggingInitParam;
Jeff Johnson295189b2012-06-20 16:38:30 -07003785
Gupta, Kapil7c34b322015-09-30 13:12:35 +05303786
3787/*
3788 * struct rssi_monitor_req - rssi monitoring
3789 * @request_id: request id
3790 * @session_id: session id
3791 * @min_rssi: minimum rssi
3792 * @max_rssi: maximum rssi
3793 * @control: flag to indicate start or stop
3794 */
3795typedef struct sSirRssiMonitorReq
3796{
3797 tANI_U32 requestId;
3798 tANI_U32 sessionId;
3799 tANI_S8 minRssi;
3800 tANI_S8 maxRssi;
3801 tANI_U8 currentBssId[6];
3802 RssiMonitorReqCb rssiMonitorCallback;
3803 void *rssiMonitorCbContext;
3804}tSirRssiMonitorReq, *tpSirRssiMonitorReq;
3805
3806
3807/**
3808 * struct rssi_breach_event - rssi breached event structure
3809 * @request_id: request id
3810 * @curr_rssi: current rssi
3811 * @curr_bssid: current bssid
3812 */
3813struct rssi_breach_event {
3814 tANI_U32 request_id;
3815 v_MACADDR_t curr_bssid;
3816 tANI_S8 curr_rssi;
3817};
3818
Sachin Ahuja715aafc2015-07-21 23:35:10 +05303819typedef struct sSirFatalEventLogsReqParam
3820{
3821 tANI_U32 reason_code;
3822}tSirFatalEventLogsReqParam, *tpSirFatalEventLogsReqParam;
3823
Jeff Johnson295189b2012-06-20 16:38:30 -07003824#ifdef FEATURE_WLAN_SCAN_PNO
3825//
3826// PNO Messages
3827//
3828
3829// Set PNO
3830#define SIR_PNO_MAX_NETW_CHANNELS 26
Pratik Bhalgatd4404592012-11-22 17:49:14 +05303831#define SIR_PNO_MAX_NETW_CHANNELS_EX 60
Jeff Johnson295189b2012-06-20 16:38:30 -07003832#define SIR_PNO_MAX_SUPP_NETWORKS 16
3833#define SIR_PNO_MAX_SCAN_TIMERS 10
3834
3835/*size based of dot11 declaration without extra IEs as we will not carry those for PNO*/
3836#define SIR_PNO_MAX_PB_REQ_SIZE 450
3837
3838#define SIR_PNO_24G_DEFAULT_CH 1
3839#define SIR_PNO_5G_DEFAULT_CH 36
3840
3841typedef enum
3842{
3843 SIR_PNO_MODE_IMMEDIATE,
3844 SIR_PNO_MODE_ON_SUSPEND,
3845 SIR_PNO_MODE_ON_RESUME,
3846 SIR_PNO_MODE_MAX
3847} eSirPNOMode;
3848
3849typedef struct
3850{
3851 tSirMacSSid ssId;
3852 tANI_U32 authentication;
3853 tANI_U32 encryption;
3854 tANI_U32 bcastNetwType;
3855 tANI_U8 ucChannelCount;
Gopichand Nakkala8e93fde2013-05-10 17:40:12 +05303856 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS_EX];
Jeff Johnson295189b2012-06-20 16:38:30 -07003857 tANI_U8 rssiThreshold;
3858} tSirNetworkType;
3859
3860typedef struct
3861{
3862 tANI_U32 uTimerValue;
3863 tANI_U32 uTimerRepeat;
3864}tSirScanTimer;
3865
3866typedef struct
3867{
3868 tANI_U8 ucScanTimersCount;
3869 tSirScanTimer aTimerValues[SIR_PNO_MAX_SCAN_TIMERS];
3870} tSirScanTimersType;
3871
Vinay Krishna Erannaf0e523b2014-03-01 21:00:16 +05303872/*Pref Net Req status */
3873typedef void(*PNOReqStatusCb)(void *callbackContext, VOS_STATUS status);
3874
3875
Jeff Johnson295189b2012-06-20 16:38:30 -07003876typedef struct sSirPNOScanReq
3877{
3878 tANI_U8 enable;
Vinay Krishna Erannaf0e523b2014-03-01 21:00:16 +05303879 PNOReqStatusCb statusCallback;
3880 void *callbackContext;
Jeff Johnson295189b2012-06-20 16:38:30 -07003881 eSirPNOMode modePNO;
3882 tANI_U8 ucNetworksCount;
Hanumantha Reddy Pothulad769f3e2015-02-19 17:00:02 +05303883 tSirNetworkType *aNetworks;
Jeff Johnson295189b2012-06-20 16:38:30 -07003884 tSirScanTimersType scanTimers;
3885
3886 /*added by SME*/
3887 tANI_U16 us24GProbeTemplateLen;
Hanumantha Reddy Pothulad769f3e2015-02-19 17:00:02 +05303888 tANI_U8 *p24GProbeTemplate;
Jeff Johnson295189b2012-06-20 16:38:30 -07003889 tANI_U16 us5GProbeTemplateLen;
Hanumantha Reddy Pothulad769f3e2015-02-19 17:00:02 +05303890 tANI_U8 *p5GProbeTemplate;
Jeff Johnson295189b2012-06-20 16:38:30 -07003891} tSirPNOScanReq, *tpSirPNOScanReq;
3892
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003893typedef struct sSirSetRSSIFilterReq
3894{
3895 tANI_U8 rssiThreshold;
3896} tSirSetRSSIFilterReq, *tpSirSetRSSIFilterReq;
3897
3898
3899// Update Scan Params
3900typedef struct {
3901 tANI_U8 b11dEnabled;
3902 tANI_U8 b11dResolved;
3903 tANI_U8 ucChannelCount;
3904 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS_EX];
3905 tANI_U16 usPassiveMinChTime;
3906 tANI_U16 usPassiveMaxChTime;
3907 tANI_U16 usActiveMinChTime;
3908 tANI_U16 usActiveMaxChTime;
3909 tANI_U8 ucCBState;
3910} tSirUpdateScanParams, * tpSirUpdateScanParams;
3911
3912// Preferred Network Found Indication
3913typedef struct
3914{
3915 tANI_U16 mesgType;
3916 tANI_U16 mesgLen;
3917 /* Network that was found with the highest RSSI*/
3918 tSirMacSSid ssId;
3919 /* Indicates the RSSI */
3920 tANI_U8 rssi;
3921 /* Length of the beacon or probe response
3922 * corresponding to the candidate found by PNO */
3923 tANI_U32 frameLength;
3924 /* Index to memory location where the contents of
3925 * beacon or probe response frame will be copied */
3926 tANI_U8 data[1];
3927} tSirPrefNetworkFoundInd, *tpSirPrefNetworkFoundInd;
3928#endif //FEATURE_WLAN_SCAN_PNO
3929
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003930#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
3931typedef struct
3932{
3933 tSirMacSSid ssId;
3934 tANI_U8 currAPbssid[WNI_CFG_BSSID_LEN];
3935 tANI_U32 authentication;
3936 tANI_U8 encryption;
3937 tANI_U8 mcencryption;
3938 tANI_U8 ChannelCount;
3939 tANI_U8 ChannelCache[SIR_ROAM_MAX_CHANNELS];
3940
3941} tSirRoamNetworkType;
3942
3943typedef struct SirMobilityDomainInfo
3944{
3945 tANI_U8 mdiePresent;
3946 tANI_U16 mobilityDomain;
3947} tSirMobilityDomainInfo;
3948
3949typedef struct sSirRoamOffloadScanReq
3950{
3951 eAniBoolean RoamScanOffloadEnabled;
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -08003952 eAniBoolean MAWCEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003953 tANI_S8 LookupThreshold;
Varun Reddy Yeturu6c5e25c2014-01-09 21:55:37 -08003954 tANI_S8 RxSensitivityThreshold;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003955 tANI_U8 RoamRssiDiff;
3956 tANI_U8 ChannelCacheType;
3957 tANI_U8 Command;
3958 tANI_U8 StartScanReason;
3959 tANI_U16 NeighborScanTimerPeriod;
3960 tANI_U16 NeighborRoamScanRefreshPeriod;
3961 tANI_U16 NeighborScanChannelMinTime;
3962 tANI_U16 NeighborScanChannelMaxTime;
3963 tANI_U16 EmptyRefreshScanPeriod;
3964 tANI_U8 ValidChannelCount;
3965 tANI_U8 ValidChannelList[SIR_ROAM_MAX_CHANNELS];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003966 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003967 tANI_U16 us24GProbeTemplateLen;
3968 tANI_U8 p24GProbeTemplate[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
3969 tANI_U16 us5GProbeTemplateLen;
3970 tANI_U8 p5GProbeTemplate[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07003971 tANI_U8 nProbes;
3972 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003973 tSirRoamNetworkType ConnectedNetwork;
3974 tSirMobilityDomainInfo MDID;
3975} tSirRoamOffloadScanReq, *tpSirRoamOffloadScanReq;
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003976#endif //WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Jeff Johnson295189b2012-06-20 16:38:30 -07003977
3978#define SIR_NOCHANGE_POWER_VALUE 0xFFFFFFFF
3979
3980//Power Parameters Type
3981typedef enum
3982{
3983 eSIR_IGNORE_DTIM = 1,
3984 eSIR_LISTEN_INTERVAL = 2,
3985 eSIR_MCAST_BCAST_FILTER = 3,
3986 eSIR_ENABLE_BET = 4,
3987 eSIR_BET_INTERVAL = 5
3988}tPowerParamType;
3989
3990//Power Parameters Value s
3991typedef struct
3992{
3993 /* Ignore DTIM */
3994 tANI_U32 uIgnoreDTIM;
3995
3996 /* DTIM Period */
3997 tANI_U32 uDTIMPeriod;
3998
3999 /* Listen Interval */
4000 tANI_U32 uListenInterval;
4001
4002 /* Broadcast Multicas Filter */
4003 tANI_U32 uBcastMcastFilter;
4004
4005 /* Beacon Early Termination */
4006 tANI_U32 uEnableBET;
4007
4008 /* Beacon Early Termination Interval */
4009 tANI_U32 uBETInterval;
4010
Yue Mac24062f2013-05-13 17:01:29 -07004011 /* MAX LI for modulated DTIM */
4012 tANI_U32 uMaxLIModulatedDTIM;
4013
Jeff Johnson295189b2012-06-20 16:38:30 -07004014}tSirSetPowerParamsReq, *tpSirSetPowerParamsReq;
4015
4016typedef struct sSirTxPerTrackingParam
4017{
4018 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
4019 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. Once tx_stat_chk enable, firmware will check PER in this period periodically */
4020 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. for example, 5 means 50% TX failed rate, default is 5. If current TX packet failed rate bigger than this ratio then firmware send WLC_E_TX_STAT_ERROR event to driver */
4021 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
4022}tSirTxPerTrackingParam, *tpSirTxPerTrackingParam;
4023
4024#ifdef WLAN_FEATURE_PACKET_FILTERING
4025/*---------------------------------------------------------------------------
4026 Packet Filtering Parameters
4027---------------------------------------------------------------------------*/
4028#define SIR_IPV4_ADDR_LEN 4
4029#define SIR_MAC_ADDR_LEN 6
4030#define SIR_MAX_FILTER_TEST_DATA_LEN 8
4031#define SIR_MAX_NUM_MULTICAST_ADDRESS 240
4032#define SIR_MAX_NUM_FILTERS 20
4033#define SIR_MAX_NUM_TESTS_PER_FILTER 10
4034
4035//
4036// Receive Filter Parameters
4037//
4038typedef enum
4039{
4040 SIR_RCV_FILTER_TYPE_INVALID,
4041 SIR_RCV_FILTER_TYPE_FILTER_PKT,
4042 SIR_RCV_FILTER_TYPE_BUFFER_PKT,
4043 SIR_RCV_FILTER_TYPE_MAX_ENUM_SIZE
4044}eSirReceivePacketFilterType;
4045
4046typedef enum
4047{
4048 SIR_FILTER_HDR_TYPE_INVALID,
4049 SIR_FILTER_HDR_TYPE_MAC,
4050 SIR_FILTER_HDR_TYPE_ARP,
4051 SIR_FILTER_HDR_TYPE_IPV4,
4052 SIR_FILTER_HDR_TYPE_IPV6,
4053 SIR_FILTER_HDR_TYPE_UDP,
4054 SIR_FILTER_HDR_TYPE_MAX
4055}eSirRcvPktFltProtocolType;
4056
4057typedef enum
4058{
4059 SIR_FILTER_CMP_TYPE_INVALID,
4060 SIR_FILTER_CMP_TYPE_EQUAL,
4061 SIR_FILTER_CMP_TYPE_MASK_EQUAL,
4062 SIR_FILTER_CMP_TYPE_NOT_EQUAL,
4063 SIR_FILTER_CMP_TYPE_MASK_NOT_EQUAL,
4064 SIR_FILTER_CMP_TYPE_MAX
4065}eSirRcvPktFltCmpFlagType;
4066
4067typedef struct sSirRcvPktFilterFieldParams
4068{
4069 eSirRcvPktFltProtocolType protocolLayer;
4070 eSirRcvPktFltCmpFlagType cmpFlag;
4071 /* Length of the data to compare */
4072 tANI_U16 dataLength;
4073 /* from start of the respective frame header */
4074 tANI_U8 dataOffset;
4075 /* Reserved field */
4076 tANI_U8 reserved;
4077 /* Data to compare */
4078 tANI_U8 compareData[SIR_MAX_FILTER_TEST_DATA_LEN];
4079 /* Mask to be applied on the received packet data before compare */
4080 tANI_U8 dataMask[SIR_MAX_FILTER_TEST_DATA_LEN];
4081}tSirRcvPktFilterFieldParams, *tpSirRcvPktFilterFieldParams;
4082
4083typedef struct sSirRcvPktFilterCfg
4084{
4085 tANI_U8 filterId;
4086 eSirReceivePacketFilterType filterType;
4087 tANI_U32 numFieldParams;
4088 tANI_U32 coalesceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07004089 tSirMacAddr selfMacAddr;
4090 tSirMacAddr bssId; //Bssid of the connected AP
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004091 tSirRcvPktFilterFieldParams paramsData[SIR_MAX_NUM_TESTS_PER_FILTER];
Jeff Johnson295189b2012-06-20 16:38:30 -07004092}tSirRcvPktFilterCfgType, *tpSirRcvPktFilterCfgType;
4093
4094//
4095// Filter Packet Match Count Parameters
4096//
4097typedef struct sSirRcvFltPktMatchCnt
4098{
4099 tANI_U8 filterId;
4100 tANI_U32 matchCnt;
4101} tSirRcvFltPktMatchCnt, tpSirRcvFltPktMatchCnt;
4102
4103typedef struct sSirRcvFltPktMatchRsp
4104{
4105 tANI_U16 mesgType;
4106 tANI_U16 mesgLen;
4107
4108 /* Success or Failure */
4109 tANI_U32 status;
4110 tSirRcvFltPktMatchCnt filterMatchCnt[SIR_MAX_NUM_FILTERS];
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004111 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004112} tSirRcvFltPktMatchRsp, *tpSirRcvFltPktMatchRsp;
4113
4114//
4115// Receive Filter Clear Parameters
4116//
4117typedef struct sSirRcvFltPktClearParam
4118{
4119 tANI_U32 status; /* only valid for response message */
4120 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004121 tSirMacAddr selfMacAddr;
4122 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004123}tSirRcvFltPktClearParam, *tpSirRcvFltPktClearParam;
4124
4125//
4126// Multicast Address List Parameters
4127//
4128typedef struct sSirRcvFltMcAddrList
4129{
4130 tANI_U32 ulMulticastAddrCnt;
4131 tSirMacAddr multicastAddr[SIR_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07004132 tSirMacAddr selfMacAddr;
4133 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004134} tSirRcvFltMcAddrList, *tpSirRcvFltMcAddrList;
4135#endif // WLAN_FEATURE_PACKET_FILTERING
4136
4137//
4138// Generic version information
4139//
4140typedef struct
4141{
4142 tANI_U8 revision;
4143 tANI_U8 version;
4144 tANI_U8 minor;
4145 tANI_U8 major;
4146} tSirVersionType;
4147
4148typedef struct sAniBtAmpLogLinkReq
4149{
4150 // Common for all types are requests
4151 tANI_U16 msgType; // message type is same as the request type
4152 tANI_U16 msgLen; // length of the entire request
4153 tANI_U8 sessionId; //sme Session Id
4154 void *btampHandle; //AMP context
4155
4156} tAniBtAmpLogLinkReq, *tpAniBtAmpLogLinkReq;
4157
4158#ifdef WLAN_FEATURE_GTK_OFFLOAD
4159/*---------------------------------------------------------------------------
4160* WDA_GTK_OFFLOAD_REQ
4161*--------------------------------------------------------------------------*/
4162typedef struct
4163{
4164 tANI_U32 ulFlags; /* optional flags */
4165 tANI_U8 aKCK[16]; /* Key confirmation key */
4166 tANI_U8 aKEK[16]; /* key encryption key */
4167 tANI_U64 ullKeyReplayCounter; /* replay counter */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004168 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004169} tSirGtkOffloadParams, *tpSirGtkOffloadParams;
4170
4171/*---------------------------------------------------------------------------
4172* WDA_GTK_OFFLOAD_GETINFO_REQ
4173*--------------------------------------------------------------------------*/
4174typedef struct
4175{
4176 tANI_U16 mesgType;
4177 tANI_U16 mesgLen;
4178
4179 tANI_U32 ulStatus; /* success or failure */
4180 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
4181 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
4182 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
4183 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004184 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004185} tSirGtkOffloadGetInfoRspParams, *tpSirGtkOffloadGetInfoRspParams;
4186#endif // WLAN_FEATURE_GTK_OFFLOAD
4187
4188#ifdef WLAN_WAKEUP_EVENTS
4189/*---------------------------------------------------------------------------
4190 tSirWakeReasonInd
4191---------------------------------------------------------------------------*/
4192typedef struct
4193{
4194 tANI_U16 mesgType;
4195 tANI_U16 mesgLen;
4196 tANI_U32 ulReason; /* see tWakeReasonType */
4197 tANI_U32 ulReasonArg; /* argument specific to the reason type */
4198 tANI_U32 ulStoredDataLen; /* length of optional data stored in this message, in case
4199 HAL truncates the data (i.e. data packets) this length
4200 will be less than the actual length */
4201 tANI_U32 ulActualDataLen; /* actual length of data */
4202 tANI_U8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
4203 see specific wake type */
4204} tSirWakeReasonInd, *tpSirWakeReasonInd;
4205#endif // WLAN_WAKEUP_EVENTS
4206
4207/*---------------------------------------------------------------------------
4208 sAniSetTmLevelReq
4209---------------------------------------------------------------------------*/
4210typedef struct sAniSetTmLevelReq
4211{
4212 tANI_U16 tmMode;
4213 tANI_U16 newTmLevel;
4214} tAniSetTmLevelReq, *tpAniSetTmLevelReq;
4215
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004216#ifdef FEATURE_WLAN_TDLS
4217/* TDLS Request struct SME-->PE */
4218typedef struct sSirTdlsSendMgmtReq
4219{
4220 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4221 tANI_U16 length;
4222 tANI_U8 sessionId; // Session ID
4223 tANI_U16 transactionId; // Transaction ID for cmd
4224 tANI_U8 reqType;
4225 tANI_U8 dialog;
4226 tANI_U16 statusCode;
Hoonki Leea34dd892013-02-05 22:56:02 -08004227 tANI_U8 responder;
Pradeep Reddy POTTETIca171f82014-03-21 14:17:35 +05304228 tANI_U32 peerCapability;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004229 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4230 tSirMacAddr peerMac;
4231 tANI_U8 addIe[1]; //Variable lenght. Dont add any field after this.
4232} tSirTdlsSendMgmtReq, *tpSirSmeTdlsSendMgmtReq ;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004233
4234typedef enum TdlsAddOper
4235{
4236 TDLS_OPER_NONE,
4237 TDLS_OPER_ADD,
4238 TDLS_OPER_UPDATE
4239} eTdlsAddOper;
4240
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004241/* TDLS Request struct SME-->PE */
4242typedef struct sSirTdlsAddStaReq
4243{
4244 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4245 tANI_U16 length;
4246 tANI_U8 sessionId; // Session ID
4247 tANI_U16 transactionId; // Transaction ID for cmd
4248 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004249 eTdlsAddOper tdlsAddOper;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004250 tSirMacAddr peerMac;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004251 tANI_U16 capability;
4252 tANI_U8 extn_capability[SIR_MAC_MAX_EXTN_CAP];
4253 tANI_U8 supported_rates_length;
4254 tANI_U8 supported_rates[SIR_MAC_MAX_SUPP_RATES];
Hoonki Lee66b75f32013-04-16 18:30:07 -07004255 tANI_U8 htcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004256 tSirHTCap htCap;
Hoonki Lee66b75f32013-04-16 18:30:07 -07004257 tANI_U8 vhtcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004258 tSirVHTCap vhtCap;
4259 tANI_U8 uapsd_queues;
4260 tANI_U8 max_sp;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004261} tSirTdlsAddStaReq, *tpSirSmeTdlsAddStaReq ;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004262
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004263/* TDLS Response struct PE-->SME */
4264typedef struct sSirTdlsAddStaRsp
4265{
4266 tANI_U16 messageType;
4267 tANI_U16 length;
4268 tSirResultCodes statusCode;
4269 tSirMacAddr peerMac;
4270 tANI_U8 sessionId; // Session ID
4271 tANI_U16 staId ;
4272 tANI_U16 staType ;
4273 tANI_U8 ucastSig;
4274 tANI_U8 bcastSig;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004275 eTdlsAddOper tdlsAddOper;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004276} tSirTdlsAddStaRsp ;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304277
4278/* TDLS Request struct SME-->PE */
4279typedef struct
4280{
4281 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_ESTABLISH_REQ
4282 tANI_U16 length;
4283 tANI_U8 sessionId; // Session ID
4284 tANI_U16 transactionId; // Transaction ID for cmd
4285 tANI_U8 uapsdQueues; // Peer's uapsd Queues Information
4286 tANI_U8 maxSp; // Peer's Supported Maximum Service Period
4287 tANI_U8 isBufSta; // Does Peer Support as Buffer Station.
Naresh Jayarambc62ba42014-02-12 21:39:14 +05304288 tANI_U8 isOffChannelSupported; // Does Peer Support as TDLS Off Channel.
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304289 tANI_U8 isResponder; // Is Peer a responder.
4290 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4291 tSirMacAddr peerMac;
Naresh Jayarambc62ba42014-02-12 21:39:14 +05304292 tANI_U8 supportedChannelsLen;
4293 tANI_U8 supportedChannels[SIR_MAC_MAX_SUPP_CHANNELS];
4294 tANI_U8 supportedOperClassesLen;
4295 tANI_U8 supportedOperClasses[SIR_MAC_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304296}tSirTdlsLinkEstablishReq, *tpSirTdlsLinkEstablishReq;
4297
4298/* TDLS Request struct SME-->PE */
4299typedef struct
4300{
4301 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_ESTABLISH_RSP
4302 tANI_U16 length;
4303 tANI_U8 sessionId; // Session ID
4304 tANI_U16 transactionId; // Transaction ID for cmd
4305 tSirResultCodes statusCode;
4306 tSirMacAddr peerMac;
4307}tSirTdlsLinkEstablishReqRsp, *tpSirTdlsLinkEstablishReqRsp;
4308
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004309/* TDLS Request struct SME-->PE */
4310typedef struct sSirTdlsDelStaReq
4311{
4312 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4313 tANI_U16 length;
4314 tANI_U8 sessionId; // Session ID
4315 tANI_U16 transactionId; // Transaction ID for cmd
4316 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4317 tSirMacAddr peerMac;
4318} tSirTdlsDelStaReq, *tpSirSmeTdlsDelStaReq ;
4319/* TDLS Response struct PE-->SME */
4320typedef struct sSirTdlsDelStaRsp
4321{
4322 tANI_U16 messageType;
4323 tANI_U16 length;
4324 tANI_U8 sessionId; // Session ID
4325 tSirResultCodes statusCode;
4326 tSirMacAddr peerMac;
4327 tANI_U16 staId;
4328} tSirTdlsDelStaRsp, *tpSirTdlsDelStaRsp;
Hoonki Leee6bfe942013-02-05 15:01:19 -08004329/* TDLS Delete Indication struct PE-->SME */
4330typedef struct sSirTdlsDelStaInd
4331{
4332 tANI_U16 messageType;
4333 tANI_U16 length;
4334 tANI_U8 sessionId; // Session ID
4335 tSirMacAddr peerMac;
4336 tANI_U16 staId;
4337 tANI_U16 reasonCode;
4338} tSirTdlsDelStaInd, *tpSirTdlsDelStaInd;
Gopichand Nakkala2a0a1572013-02-10 21:39:16 -08004339typedef struct sSirTdlsDelAllPeerInd
4340{
4341 tANI_U16 messageType;
4342 tANI_U16 length;
4343 tANI_U8 sessionId; // Session ID
4344} tSirTdlsDelAllPeerInd, *tpSirTdlsDelAllPeerInd;
Gopichand Nakkalab977a972013-02-18 19:15:09 -08004345typedef struct sSirMgmtTxCompletionInd
4346{
4347 tANI_U16 messageType;
4348 tANI_U16 length;
4349 tANI_U8 sessionId; // Session ID
4350 tANI_U32 txCompleteStatus;
4351} tSirMgmtTxCompletionInd, *tpSirMgmtTxCompletionInd;
Atul Mittalc0f739f2014-07-31 13:47:47 +05304352
4353//tdlsoffchan
4354/* TDLS Channel Switch struct SME-->PE */
4355typedef struct
4356{
4357 tANI_U16 messageType; //eWNI_SME_TDLS_CHANNEL_SWITCH_REQ
4358 tANI_U16 length;
4359 tANI_U8 sessionId; // Session ID
4360 tANI_U16 transactionId; // Transaction ID for cmd
4361 tANI_U8 tdlsOffCh; // Target Off Channel
4362 tANI_U8 tdlsOffChBwOffset;// Target Off Channel Bandwidth offset
4363 tANI_U8 tdlsSwMode; // TDLS Off Channel Mode
4364 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4365 tSirMacAddr peerMac;
4366}tSirTdlsChanSwitch, *tpSirTdlsChanSwitch;
4367
Atul Mittal60bd4292014-08-14 12:19:27 +05304368/* TDLS Resp struct */
4369typedef struct
4370{
4371 tANI_U16 messageType; // eWNI_SME_TDLS_CHANNEL_SWITCH_RSP
4372 tANI_U16 length;
4373 tANI_U8 sessionId; // Session ID
4374 tANI_U16 transactionId; // Transaction ID for cmd
4375 tSirResultCodes statusCode;
4376 tSirMacAddr peerMac;
4377}tSirTdlsChanSwitchReqRsp, *tpSirTdlsChanSwitchReqRsp;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004378#endif /* FEATURE_WLAN_TDLS */
4379
Yathish9f22e662012-12-10 14:21:35 -08004380typedef struct sSirActiveModeSetBcnFilterReq
4381{
4382 tANI_U16 messageType;
4383 tANI_U16 length;
4384 tANI_U8 seesionId;
4385} tSirSetActiveModeSetBncFilterReq, *tpSirSetActiveModeSetBncFilterReq;
4386
Sandeep Puligilla11d49a62014-01-30 12:05:16 +05304387typedef enum
4388{
4389 HT40_OBSS_SCAN_PARAM_START,
4390 HT40_OBSS_SCAN_PARAM_UPDATE
4391}tHT40OBssScanCmdType;
4392
4393typedef struct sSirSmeHT40StopOBSSScanInd
4394{
4395 tANI_U16 messageType;
4396 tANI_U16 length;
4397 tANI_U8 seesionId;
4398} tSirSmeHT40OBSSStopScanInd, *tpSirSmeHT40OBSSStopScanInd;
4399
4400typedef struct sSirSmeHT40OBSSScanInd
4401{
4402 tANI_U16 messageType;
4403 tANI_U16 length;
Sandeep Puligilla9f384742014-04-11 02:27:04 +05304404 tSirMacAddr peerMacAddr;
Sandeep Puligilla11d49a62014-01-30 12:05:16 +05304405} tSirSmeHT40OBSSScanInd, *tpSirSmeHT40OBSSScanInd;
4406
4407typedef struct sSirHT40OBSSScanInd
4408{
4409 tHT40OBssScanCmdType cmdType;
4410 tSirScanType scanType;
4411 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
4412 tANI_U16 OBSSScanActiveDwellTime; // In TUs
4413 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
4414 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TU
4415 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
4416 tANI_U16 BSSWidthChannelTransitionDelayFactor;
4417 tANI_U16 OBSSScanActivityThreshold;
4418 tANI_U8 selfStaIdx;
4419 tANI_U8 bssIdx;
4420 tANI_U8 fortyMHZIntolerent;
4421 tANI_U8 channelCount;
4422 tANI_U8 channels[SIR_ROAM_MAX_CHANNELS];
4423 tANI_U8 currentOperatingClass;
4424 tANI_U16 ieFieldLen;
4425 tANI_U8 ieField[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
4426} tSirHT40OBSSScanInd, *tpSirHT40OBSSScanInd;
4427
4428
Gopichand Nakkalacca24d12013-03-07 17:05:07 +05304429//Reset AP Caps Changed
4430typedef struct sSirResetAPCapsChange
4431{
4432 tANI_U16 messageType;
4433 tANI_U16 length;
4434 tSirMacAddr bssId;
4435} tSirResetAPCapsChange, *tpSirResetAPCapsChange;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004436/// Definition for Candidate found indication from FW
4437typedef struct sSirSmeCandidateFoundInd
4438{
4439 tANI_U16 messageType; // eWNI_SME_CANDIDATE_FOUND_IND
4440 tANI_U16 length;
4441 tANI_U8 sessionId; // Session Identifier
4442} tSirSmeCandidateFoundInd, *tpSirSmeCandidateFoundInd;
Yathish9f22e662012-12-10 14:21:35 -08004443
Chet Lanctot186b5732013-03-18 10:26:30 -07004444#ifdef WLAN_FEATURE_11W
4445typedef struct sSirWlanExcludeUnencryptParam
4446{
4447 tANI_BOOLEAN excludeUnencrypt;
4448 tSirMacAddr bssId;
4449}tSirWlanExcludeUnencryptParam,*tpSirWlanExcludeUnencryptParam;
4450#endif
4451
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07004452typedef struct sAniHandoffReq
4453{
4454 // Common for all types are requests
4455 tANI_U16 msgType; // message type is same as the request type
4456 tANI_U16 msgLen; // length of the entire request
4457 tANI_U8 sessionId;
4458 tANI_U8 bssid[WNI_CFG_BSSID_LEN];
4459 tANI_U8 channel;
4460} tAniHandoffReq, *tpAniHandoffReq;
4461
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05304462typedef struct sSirScanOffloadReq {
4463 tANI_U8 sessionId;
4464 tSirMacAddr bssId;
4465 tANI_U8 numSsid;
4466 tSirMacSSid ssId[SIR_SCAN_MAX_NUM_SSID];
4467 tANI_U8 hiddenSsid;
4468 tSirMacAddr selfMacAddr;
4469 tSirBssType bssType;
4470 tANI_U8 dot11mode;
4471 tSirScanType scanType;
4472 tANI_U32 minChannelTime;
4473 tANI_U32 maxChannelTime;
4474 tANI_BOOLEAN p2pSearch;
4475 tANI_U16 uIEFieldLen;
4476 tANI_U16 uIEFieldOffset;
4477 tSirChannelList channelList;
4478 /*-----------------------------
4479 sSirScanOffloadReq....
4480 -----------------------------
4481 uIEFieldLen
4482 -----------------------------
4483 uIEFieldOffset ----+
4484 ----------------------------- |
4485 channelList.numChannels |
4486 ----------------------------- |
4487 ... variable size up to |
4488 channelNumber[numChannels-1] |
4489 This can be zero, if |
4490 numChannel is zero. |
4491 ----------------------------- <--+
4492 ... variable size uIEField
4493 up to uIEFieldLen (can be 0)
4494 -----------------------------*/
4495} tSirScanOffloadReq, *tpSirScanOffloadReq;
Gopichand Nakkala2c231c82013-06-11 17:49:16 +05304496
4497typedef enum sSirScanEventType {
4498 SCAN_EVENT_STARTED=0x1, /* Scan command accepted by FW */
4499 SCAN_EVENT_COMPLETED=0x2, /* Scan has been completed by FW */
4500 SCAN_EVENT_BSS_CHANNEL=0x4, /* FW is going to move to HOME channel */
4501 SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
4502 SCAN_EVENT_DEQUEUED=0x10, /* scan request got dequeued */
4503 SCAN_EVENT_PREEMPTED=0x20, /* preempted by other high priority scan */
4504 SCAN_EVENT_START_FAILED=0x40, /* scan start failed */
4505 SCAN_EVENT_RESTARTED=0x80, /*scan restarted*/
4506 SCAN_EVENT_MAX=0x8000
4507} tSirScanEventType;
4508
4509typedef struct sSirScanOffloadEvent{
4510 tSirScanEventType event;
4511 tSirResultCodes reasonCode;
4512 tANI_U32 chanFreq;
4513 tANI_U32 requestor;
4514 tANI_U32 scanId;
4515} tSirScanOffloadEvent, *tpSirScanOffloadEvent;
4516
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05304517typedef struct sSirUpdateChanParam
4518{
4519 tANI_U8 chanId;
4520 tANI_U8 pwr;
Leela Venkata Kiran Kumar Reddy Chiralac6663f72014-02-03 21:04:58 -08004521 tANI_BOOLEAN dfsSet;
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05304522} tSirUpdateChanParam, *tpSirUpdateChanParam;
4523
4524typedef struct sSirUpdateChan
4525{
Sachin Ahujacb64fc82015-01-12 17:01:05 +05304526 tANI_U8 regId;
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05304527 tANI_U8 numChan;
4528 tSirUpdateChanParam chanParam[1];
4529} tSirUpdateChanList, *tpSirUpdateChanList;
4530
Leo Chang9056f462013-08-01 19:21:11 -07004531#ifdef FEATURE_WLAN_LPHB
4532#define SIR_LPHB_FILTER_LEN 64
4533
4534typedef enum
4535{
4536 LPHB_SET_EN_PARAMS_INDID,
4537 LPHB_SET_TCP_PARAMS_INDID,
4538 LPHB_SET_TCP_PKT_FILTER_INDID,
4539 LPHB_SET_UDP_PARAMS_INDID,
4540 LPHB_SET_UDP_PKT_FILTER_INDID,
4541 LPHB_SET_NETWORK_INFO_INDID,
4542} LPHBIndType;
4543
4544typedef struct sSirLPHBEnableStruct
4545{
4546 v_U8_t enable;
4547 v_U8_t item;
4548 v_U8_t session;
4549} tSirLPHBEnableStruct;
4550
4551typedef struct sSirLPHBTcpParamStruct
4552{
4553 v_U32_t srv_ip;
4554 v_U32_t dev_ip;
4555 v_U16_t src_port;
4556 v_U16_t dst_port;
4557 v_U16_t timeout;
4558 v_U8_t session;
4559 tSirMacAddr gateway_mac;
Leo Changd9df8aa2013-09-26 13:32:26 -07004560 uint16 timePeriodSec; // in seconds
4561 uint32 tcpSn;
Leo Chang9056f462013-08-01 19:21:11 -07004562} tSirLPHBTcpParamStruct;
4563
4564typedef struct sSirLPHBTcpFilterStruct
4565{
4566 v_U16_t length;
4567 v_U8_t offset;
4568 v_U8_t session;
4569 v_U8_t filter[SIR_LPHB_FILTER_LEN];
4570} tSirLPHBTcpFilterStruct;
4571
4572typedef struct sSirLPHBUdpParamStruct
4573{
4574 v_U32_t srv_ip;
4575 v_U32_t dev_ip;
4576 v_U16_t src_port;
4577 v_U16_t dst_port;
4578 v_U16_t interval;
4579 v_U16_t timeout;
4580 v_U8_t session;
4581 tSirMacAddr gateway_mac;
4582} tSirLPHBUdpParamStruct;
4583
4584typedef struct sSirLPHBUdpFilterStruct
4585{
4586 v_U16_t length;
4587 v_U8_t offset;
4588 v_U8_t session;
4589 v_U8_t filter[SIR_LPHB_FILTER_LEN];
4590} tSirLPHBUdpFilterStruct;
4591
4592typedef struct sSirLPHBReq
4593{
4594 v_U16_t cmd;
4595 v_U16_t dummy;
4596 union
4597 {
4598 tSirLPHBEnableStruct lphbEnableReq;
4599 tSirLPHBTcpParamStruct lphbTcpParamReq;
4600 tSirLPHBTcpFilterStruct lphbTcpFilterReq;
4601 tSirLPHBUdpParamStruct lphbUdpParamReq;
4602 tSirLPHBUdpFilterStruct lphbUdpFilterReq;
4603 } params;
4604} tSirLPHBReq;
4605
Leo Changd9df8aa2013-09-26 13:32:26 -07004606typedef struct sSirLPHBInd
Leo Chang9056f462013-08-01 19:21:11 -07004607{
4608 v_U8_t sessionIdx;
4609 v_U8_t protocolType; /*TCP or UDP*/
4610 v_U8_t eventReason;
Leo Changd9df8aa2013-09-26 13:32:26 -07004611} tSirLPHBInd;
Leo Chang9056f462013-08-01 19:21:11 -07004612#endif /* FEATURE_WLAN_LPHB */
4613
Yue Mab9c86f42013-08-14 15:59:08 -07004614typedef struct sSirAddPeriodicTxPtrn
4615{
4616 /* MAC Address for the adapter */
4617 tSirMacAddr macAddress;
4618
4619 tANI_U8 ucPtrnId; // Pattern ID
4620 tANI_U16 ucPtrnSize; // Pattern size
4621 tANI_U32 usPtrnIntervalMs; // In msec
4622 tANI_U8 ucPattern[PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4623} tSirAddPeriodicTxPtrn, *tpSirAddPeriodicTxPtrn;
4624
4625typedef struct sSirDelPeriodicTxPtrn
4626{
4627 /* MAC Address for the adapter */
4628 tSirMacAddr macAddress;
4629
4630 /* Bitmap of pattern IDs that need to be deleted */
4631 tANI_U32 ucPatternIdBitmap;
4632} tSirDelPeriodicTxPtrn, *tpSirDelPeriodicTxPtrn;
4633
Chittajit Mitraf5413a42013-10-18 14:20:08 -07004634typedef struct sSirRateUpdateInd
4635{
4636 /* 0 implies RA, positive value implies fixed rate, -1 implies ignore this
4637 * param.
4638 */
4639 tANI_S32 ucastDataRate;
4640
4641 /* TX flag to differentiate between HT20, HT40 etc */
4642 tTxrateinfoflags ucastDataRateTxFlag;
4643
4644 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
4645 tSirMacAddr bssid;
4646
4647 /*
4648 * 0 implies MCAST RA, positive value implies fixed rate,
4649 * -1 implies ignore this param
4650 */
4651 tANI_S32 reliableMcastDataRate;//unit Mbpsx10
4652
4653 /* TX flag to differentiate between HT20, HT40 etc */
4654 tTxrateinfoflags reliableMcastDataRateTxFlag;
4655
4656 /*
4657 * MCAST(or BCAST) fixed data rate in 2.4 GHz, unit Mbpsx10,
4658 * 0 implies ignore
4659 */
4660 tANI_U32 mcastDataRate24GHz;
4661
4662 /* TX flag to differentiate between HT20, HT40 etc */
4663 tTxrateinfoflags mcastDataRate24GHzTxFlag;
4664
4665 /*
4666 * MCAST(or BCAST) fixed data rate in 5 GHz,
4667 * unit Mbpsx10, 0 implies ignore
4668 */
4669 tANI_U32 mcastDataRate5GHz;
4670
4671 /* TX flag to differentiate between HT20, HT40 etc */
4672 tTxrateinfoflags mcastDataRate5GHzTxFlag;
4673
4674} tSirRateUpdateInd, *tpSirRateUpdateInd;
4675
Rajeev79dbe4c2013-10-05 11:03:42 +05304676#ifdef FEATURE_WLAN_BATCH_SCAN
4677// Set batch scan resposne from FW
4678typedef struct
4679{
4680 /*maximum number of scans which FW can cache*/
4681 tANI_U32 nScansToBatch;
4682} tSirSetBatchScanRsp, *tpSirSetBatchScanRsp;
4683
4684// Set batch scan request to FW
4685typedef struct
4686{
4687 tANI_U32 scanFrequency; /* how frequent to do scan - default 30Sec*/
4688 tANI_U32 numberOfScansToBatch; /* number of scans to batch */
4689 tANI_U32 bestNetwork; /* best networks in terms of rssi */
4690 tANI_U8 rfBand; /* band to scan :
4691 0 ->both Band, 1->2.4Ghz Only
4692 and 2-> 5GHz Only */
4693 tANI_U32 rtt; /* set if required to do RTT it is not
4694 supported in current version */
4695} tSirSetBatchScanReq, *tpSirSetBatchScanReq;
4696
4697
4698// Stop batch scan request to FW
4699typedef struct
4700{
4701 tANI_U32 param;
4702} tSirStopBatchScanInd, *tpSirStopBatchScanInd;
4703
4704// Trigger batch scan result indication to FW
4705typedef struct
4706{
4707 tANI_U32 param;
4708} tSirTriggerBatchScanResultInd, *tpSirTriggerBatchScanResultInd;
4709
4710// Batch scan result indication from FW
4711typedef PACKED_PRE struct PACKED_POST
4712{
4713 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004714 tANI_U8 ssid[33]; /* SSID */
Rajeev79dbe4c2013-10-05 11:03:42 +05304715 tANI_U8 ch; /* Channel */
c_hpothube955202014-05-22 18:07:00 +05304716 tANI_S8 rssi; /* RSSI or Level */
Rajeev79dbe4c2013-10-05 11:03:42 +05304717 /*Timestamp when Network was found. Used to calculate age based on timestamp
4718 in GET_RSP msg header */
4719 tANI_U32 timestamp;
4720} tSirBatchScanNetworkInfo, *tpSirBatchScanNetworkInfo;
4721
4722typedef PACKED_PRE struct PACKED_POST
4723{
4724 tANI_U32 scanId; /* Scan List ID. */
4725 /*No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg*/
4726 tANI_U32 numNetworksInScanList;
4727 /*Variable data ptr: Number of AP in Scan List*/
4728 /*Following numNetworkInScanList is data of type tSirBatchScanNetworkInfo
4729 *of sizeof(tSirBatchScanNetworkInfo) * numNetworkInScanList */
4730 tANI_U8 scanList[1];
4731} tSirBatchScanList, *tpSirBatchScanList;
4732
4733typedef PACKED_PRE struct PACKED_POST
4734{
4735 tANI_U32 timestamp;
4736 tANI_U32 numScanLists;
4737 boolean isLastResult;
4738 /* Variable Data ptr: Number of Scan Lists*/
4739 /* following isLastResult is data of type tSirBatchScanList
4740 * of sizeof(tSirBatchScanList) * numScanLists*/
4741 tANI_U8 scanResults[1];
4742} tSirBatchScanResultIndParam, *tpSirBatchScanResultIndParam;
4743
4744#endif // FEATURE_WLAN_BATCH_SCAN
4745
Leo Chang0b0e45a2013-12-15 15:18:55 -08004746#ifdef FEATURE_WLAN_CH_AVOID
Abhishek Singhe34eb552015-06-18 10:12:15 +05304747#define SIR_CH_AVOID_MAX_RANGE 15
Leo Chang0b0e45a2013-12-15 15:18:55 -08004748
4749typedef struct sSirChAvoidFreqType
4750{
4751 tANI_U32 startFreq;
4752 tANI_U32 endFreq;
4753} tSirChAvoidFreqType;
4754
4755typedef struct sSirChAvoidIndType
4756{
4757 tANI_U32 avoidRangeCount;
4758 tSirChAvoidFreqType avoidFreqRange[SIR_CH_AVOID_MAX_RANGE];
4759} tSirChAvoidIndType;
4760#endif /* FEATURE_WLAN_CH_AVOID */
Rajeev79dbe4c2013-10-05 11:03:42 +05304761
c_hpothu92367912014-05-01 15:18:17 +05304762typedef void (*pGetBcnMissRateCB)( tANI_S32 bcnMissRate,
4763 VOS_STATUS status, void *data);
Abhishek Singh08aa7762014-12-16 13:59:03 +05304764typedef void (*tSirFWStatsCallback)(VOS_STATUS status,
4765 tSirFwStatsResult *fwStatsRsp, void *pContext);
Abhishek Singh7d624e12015-11-30 14:29:27 +05304766typedef void (*sir_mgmt_frame_ind_callback)(tSirSmeMgmtFrameInd *frame_ind);
4767
4768
4769/**
4770 * struct sir_sme_mgmt_frame_cb_req - Register a
4771 * management frame callback req
4772 * @message_type: message id
4773 * @length: msg length
4774 * @callback: callback for management frame indication
4775 */
4776struct sir_sme_mgmt_frame_cb_req
4777{
4778 tANI_U16 message_type;
4779 tANI_U16 length;
4780 sir_mgmt_frame_ind_callback callback;
4781};
4782
c_hpothu92367912014-05-01 15:18:17 +05304783typedef PACKED_PRE struct PACKED_POST
4784{
4785 tANI_U32 msgLen;
4786 tANI_U8 bssid[WNI_CFG_BSSID_LEN];
4787 void *callback;
4788 void *data;
4789}tSirBcnMissRateReq;
4790
4791typedef PACKED_PRE struct PACKED_POST
4792{
4793 pGetBcnMissRateCB callback;
4794 void *data;
4795}tSirBcnMissRateInfo;
4796
Sunil Duttc69bccb2014-05-26 21:30:20 +05304797#ifdef WLAN_FEATURE_LINK_LAYER_STATS
4798
4799typedef struct
4800{
4801 u32 reqId;
Dino Mycled3d50022014-07-07 12:58:25 +05304802 tSirMacAddr macAddr;
Sunil Duttc69bccb2014-05-26 21:30:20 +05304803 u32 mpduSizeThreshold;
4804 u32 aggressiveStatisticsGathering;
4805}tSirLLStatsSetReq, *tpSirLLStatsSetReq;
4806
4807typedef struct
4808{
4809 u32 reqId;
Dino Mycled3d50022014-07-07 12:58:25 +05304810 tSirMacAddr macAddr;
Sunil Duttc69bccb2014-05-26 21:30:20 +05304811 u32 paramIdMask;
4812}tSirLLStatsGetReq, *tpSirLLStatsGetReq;
4813
4814typedef struct
4815{
4816 u32 reqId;
Dino Mycled3d50022014-07-07 12:58:25 +05304817 tSirMacAddr macAddr;
Sunil Duttc69bccb2014-05-26 21:30:20 +05304818 u32 statsClearReqMask;
4819 u8 stopReq;
4820}tSirLLStatsClearReq, *tpSirLLStatsClearReq;
4821
Abhishek Singh3ae443b2014-10-08 11:49:27 +05304822typedef PACKED_PRE struct PACKED_POST
4823{
4824 u32 stats;
4825 tSirFWStatsCallback callback;
4826 void *data;
4827}tSirFWStatsGetReq;
4828
4829typedef PACKED_PRE struct PACKED_POST
4830{
4831 tSirFWStatsCallback callback;
4832 void *data;
4833}tSirFWStatsInfo;
4834
Sunil Duttc69bccb2014-05-26 21:30:20 +05304835/*---------------------------------------------------------------------------
4836 WLAN_HAL_LL_NOTIFY_STATS
4837---------------------------------------------------------------------------*/
4838
4839
4840/******************************LINK LAYER Statistics**********************/
4841
4842typedef int tSirWifiRadio;
4843typedef int tSirWifiChannel;
4844typedef int tSirwifiTxRate;
4845
4846/* channel operating width */
4847typedef PACKED_PRE enum PACKED_POST
4848{
4849 WIFI_CHAN_WIDTH_20 = 0,
4850 WIFI_CHAN_WIDTH_40 = 1,
4851 WIFI_CHAN_WIDTH_80 = 2,
4852 WIFI_CHAN_WIDTH_160 = 3,
4853 WIFI_CHAN_WIDTH_80P80 = 4,
4854 WIFI_CHAN_WIDTH_5 = 5,
4855 WIFI_CHAN_WIDTH_10 = 6,
4856} tSirWifiChannelWidth;
4857
4858typedef PACKED_PRE enum PACKED_POST
4859{
4860 WIFI_DISCONNECTED = 0,
4861 WIFI_AUTHENTICATING = 1,
4862 WIFI_ASSOCIATING = 2,
4863 WIFI_ASSOCIATED = 3,
4864 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
4865 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
4866} tSirWifiConnectionState;
4867
4868typedef PACKED_PRE enum PACKED_POST
4869{
4870 WIFI_ROAMING_IDLE = 0,
4871 WIFI_ROAMING_ACTIVE = 1,
4872} tSirWifiRoamState;
4873
4874typedef PACKED_PRE enum PACKED_POST
4875{
Dino Myclec8f3f332014-07-21 16:48:27 +05304876 WIFI_INTERFACE_UNKNOWN = -1,
Sunil Duttc69bccb2014-05-26 21:30:20 +05304877 WIFI_INTERFACE_STA = 0,
4878 WIFI_INTERFACE_SOFTAP = 1,
4879 WIFI_INTERFACE_IBSS = 2,
4880 WIFI_INTERFACE_P2P_CLIENT = 3,
4881 WIFI_INTERFACE_P2P_GO = 4,
4882 WIFI_INTERFACE_NAN = 5,
4883 WIFI_INTERFACE_MESH = 6,
4884 } tSirWifiInterfaceMode;
4885
4886// set for QOS association
4887#define WIFI_CAPABILITY_QOS 0x00000001
4888// set for protected association (802.11 beacon frame control protected bit set)
4889#define WIFI_CAPABILITY_PROTECTED 0x00000002
4890// set if 802.11 Extended Capabilities element interworking bit is set
4891#define WIFI_CAPABILITY_INTERWORKING 0x00000004
4892// set for HS20 association
4893#define WIFI_CAPABILITY_HS20 0x00000008
4894// set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
4895#define WIFI_CAPABILITY_SSID_UTF8 0x00000010
4896// set is 802.11 Country Element is present
4897#define WIFI_CAPABILITY_COUNTRY 0x00000020
4898
4899typedef PACKED_PRE struct PACKED_POST
4900{
4901 /*tSirWifiInterfaceMode*/
4902 // interface mode
Dino Myclec8f3f332014-07-21 16:48:27 +05304903 tANI_S8 mode;
Sunil Duttc69bccb2014-05-26 21:30:20 +05304904 // interface mac address (self)
4905 tSirMacAddr macAddr;
4906 /*tSirWifiConnectionState*/
4907 // connection state (valid for STA, CLI only)
4908 tANI_U8 state;
4909 /*tSirWifiRoamState*/
4910 // roaming state
4911 tANI_U8 roaming;
4912 // WIFI_CAPABILITY_XXX (self)
4913 tANI_U32 capabilities;
4914 // null terminated SSID
4915 tANI_U8 ssid[33];
4916 // bssid
4917 tSirMacAddr bssid;
4918 // country string advertised by AP
4919 tANI_U8 apCountryStr[WNI_CFG_COUNTRY_CODE_LEN];
4920 // country string for this association
4921 tANI_U8 countryStr[WNI_CFG_COUNTRY_CODE_LEN];
4922} tSirWifiInterfaceInfo, *tpSirWifiInterfaceInfo;
4923
4924/* channel information */
4925typedef PACKED_PRE struct PACKED_POST
4926{
4927 // channel width (20, 40, 80, 80+80, 160)
4928 tSirWifiChannelWidth width;
4929 // primary 20 MHz channel
4930 tSirWifiChannel centerFreq;
4931 // center frequency (MHz) first segment
4932 tSirWifiChannel centerFreq0;
4933 // center frequency (MHz) second segment
4934 tSirWifiChannel centerFreq1;
4935} tSirWifiChannelInfo, *tpSirWifiChannelInfo;
4936
4937/* wifi rate info */
4938typedef PACKED_PRE struct PACKED_POST
4939{
4940 // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
4941 tANI_U32 preamble :3;
4942 // 0:1x1, 1:2x2, 3:3x3, 4:4x4
4943 tANI_U32 nss :2;
4944 // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
4945 tANI_U32 bw :3;
4946 // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
4947 // HT/VHT it would be mcs index
4948 tANI_U32 rateMcsIdx :8;
4949 // reserved
4950 tANI_U32 reserved :16;
4951 // units of 100 Kbps
4952 tANI_U32 bitrate;
4953} tSirWifiRate, *tpSirWifiRate;
4954
4955/* channel statistics */
4956typedef PACKED_PRE struct PACKED_POST
4957{
4958 // channel
4959 tSirWifiChannelInfo channel;
4960 // msecs the radio is awake (32 bits number accruing over time)
4961 tANI_U32 onTime;
4962 // msecs the CCA register is busy (32 bits number accruing over time)
4963 tANI_U32 ccaBusyTime;
4964} tSirWifiChannelStats, *tpSirWifiChannelStats;
4965
4966/* radio statistics */
4967typedef PACKED_PRE struct PACKED_POST
4968{
4969 // wifi radio (if multiple radio supported)
4970 tSirWifiRadio radio;
4971 // msecs the radio is awake (32 bits number accruing over time)
4972 tANI_U32 onTime;
4973 /* msecs the radio is transmitting
4974 * (32 bits number accruing over time)
4975 */
4976 tANI_U32 txTime;
4977 /* msecs the radio is in active receive
4978 *(32 bits number accruing over time)
4979 */
4980 tANI_U32 rxTime;
4981 /* msecs the radio is awake due to all scan
4982 * (32 bits number accruing over time)
4983 */
4984 tANI_U32 onTimeScan;
4985 /* msecs the radio is awake due to NAN
4986 * (32 bits number accruing over time)
4987 */
4988 tANI_U32 onTimeNbd;
Dino Mycle2c198072014-06-10 10:15:52 +05304989 /* msecs the radio is awake due to EXTScan
Sunil Duttc69bccb2014-05-26 21:30:20 +05304990 * (32 bits number accruing over time)
4991 */
Dino Mycle2c198072014-06-10 10:15:52 +05304992 tANI_U32 onTimeEXTScan;
Sunil Duttc69bccb2014-05-26 21:30:20 +05304993 /* msecs the radio is awake due to roam?scan
4994 * (32 bits number accruing over time)
4995 */
4996 tANI_U32 onTimeRoamScan;
4997 /* msecs the radio is awake due to PNO scan
4998 * (32 bits number accruing over time)
4999 */
5000 tANI_U32 onTimePnoScan;
5001 /* msecs the radio is awake due to HS2.0 scans and GAS exchange
5002 * (32 bits number accruing over time)
5003 */
5004 tANI_U32 onTimeHs20;
5005 // number of channels
5006 tANI_U32 numChannels;
5007 // channel statistics tSirWifiChannelStats
5008 tSirWifiChannelStats channels[1];
5009} tSirWifiRadioStat, *tpSirWifiRadioStat;
5010
5011/* per rate statistics */
5012typedef PACKED_PRE struct PACKED_POST
5013{
5014 // rate information
5015 tSirWifiRate rate;
5016 // number of successfully transmitted data pkts (ACK rcvd)
5017 tANI_U32 txMpdu;
5018 // number of received data pkts
5019 tANI_U32 rxMpdu;
5020 // number of data packet losses (no ACK)
5021 tANI_U32 mpduLost;
5022 // total number of data pkt retries *
5023 tANI_U32 retries;
5024 // number of short data pkt retries
5025 tANI_U32 retriesShort;
5026 // number of long data pkt retries
5027 tANI_U32 retriesLong;
5028} tSirWifiRateStat, *tpSirWifiRateStat;
5029
5030/* access categories */
5031typedef PACKED_PRE enum PACKED_POST
5032{
5033 WIFI_AC_VO = 0,
5034 WIFI_AC_VI = 1,
5035 WIFI_AC_BE = 2,
5036 WIFI_AC_BK = 3,
5037 WIFI_AC_MAX = 4,
5038} tSirWifiTrafficAc;
5039
5040/* wifi peer type */
5041typedef PACKED_PRE enum PACKED_POST
5042{
5043 WIFI_PEER_STA,
5044 WIFI_PEER_AP,
5045 WIFI_PEER_P2P_GO,
5046 WIFI_PEER_P2P_CLIENT,
5047 WIFI_PEER_NAN,
5048 WIFI_PEER_TDLS,
5049 WIFI_PEER_INVALID,
5050} tSirWifiPeerType;
5051
5052/* per peer statistics */
5053typedef PACKED_PRE struct PACKED_POST
5054{
5055 // peer type (AP, TDLS, GO etc.)
5056 tSirWifiPeerType type;
5057 // mac address
5058 tSirMacAddr peerMacAddress;
5059 // peer WIFI_CAPABILITY_XXX
5060 tANI_U32 capabilities;
5061 // number of rates
5062 tANI_U32 numRate;
5063 // per rate statistics, number of entries = num_rate
5064 tSirWifiRateStat rateStats[1];
5065} tSirWifiPeerInfo, *tpSirWifiPeerInfo;
5066
5067/* per access category statistics */
5068typedef PACKED_PRE struct PACKED_POST
5069{
5070 /*tSirWifiTrafficAc*/
5071 // access category (VI, VO, BE, BK)
5072 tANI_U8 ac;
5073 // number of successfully transmitted unicast data pkts (ACK rcvd)
5074 tANI_U32 txMpdu;
5075 // number of received unicast mpdus
5076 tANI_U32 rxMpdu;
5077 // number of succesfully transmitted multicast data packets
5078 // STA case: implies ACK received from AP for the unicast
5079 // packet in which mcast pkt was sent
5080 tANI_U32 txMcast;
5081 // number of received multicast data packets
5082 tANI_U32 rxMcast;
5083 // number of received unicast a-mpdus
5084 tANI_U32 rxAmpdu;
5085 // number of transmitted unicast a-mpdus
5086 tANI_U32 txAmpdu;
5087 // number of data pkt losses (no ACK)
5088 tANI_U32 mpduLost;
5089 // total number of data pkt retries
5090 tANI_U32 retries;
5091 // number of short data pkt retries
5092 tANI_U32 retriesShort;
5093 // number of long data pkt retries
5094 tANI_U32 retriesLong;
5095 // data pkt min contention time (usecs)
5096 tANI_U32 contentionTimeMin;
5097 // data pkt max contention time (usecs)
5098 tANI_U32 contentionTimeMax;
5099 // data pkt avg contention time (usecs)
5100 tANI_U32 contentionTimeAvg;
5101 // num of data pkts used for contention statistics
5102 tANI_U32 contentionNumSamples;
5103} tSirWifiWmmAcStat, *tpSirWifiWmmAcStat;
5104
Mukul Sharmaf1bd9322015-10-20 16:03:42 +05305105#ifdef FEATURE_EXT_LL_STAT
5106typedef PACKED_PRE struct PACKED_POST
5107{
5108 /* Average Beacon spread offset is the averaged
5109 * time delay between TBTT and beacon TSF
5110 */
5111 tANI_U64 avg_bcn_spread;
5112 /* Average number of frames received from AP after
5113 * receiving the ACK for a frame with PM=1
5114 */
5115 tANI_U32 avg_rx_frms_leaked;
5116 /* Rx leak watch window currently in force to minimize data loss
5117 * because of leaky AP. Rx leak window is the time driver waits
5118 * before shutting down the radio or switching the channel and
5119 * after receiving an ACK for a data frame with PM bit set)
5120 */
5121 tANI_U32 rx_leak_window;
5122
5123 /* Takes value of 1 if AP leaks packets after sending
5124 * an ACK for PM=1 otherwise 0
5125 */
5126 tANI_U32 is_leaky_ap;
5127
5128} tSirWifiIfaceLeakyApStat, *tpSirWifiIfaceLeakyApStat;
5129#endif
5130
Sunil Duttc69bccb2014-05-26 21:30:20 +05305131/* Interface statistics - corresponding to 2nd most
5132 * LSB in wifi statistics bitmap for getting statistics
5133 */
5134typedef PACKED_PRE struct PACKED_POST
5135{
5136 // current state of the interface
5137 tSirWifiInterfaceInfo info;
5138 // access point beacon received count from connected AP
5139 tANI_U32 beaconRx;
5140 // access point mgmt frames received count from
5141 // connected AP (including Beacon)
5142 tANI_U32 mgmtRx;
5143 // action frames received count
5144 tANI_U32 mgmtActionRx;
5145 // action frames transmit count
5146 tANI_U32 mgmtActionTx;
5147 // access Point Beacon and Management frames RSSI (averaged)
Dino Mycle3b9536d2014-07-09 22:05:24 +05305148 tANI_S32 rssiMgmt;
Sunil Duttc69bccb2014-05-26 21:30:20 +05305149 // access Point Data Frames RSSI (averaged) from connected AP
Dino Mycle3b9536d2014-07-09 22:05:24 +05305150 tANI_S32 rssiData;
Sunil Duttc69bccb2014-05-26 21:30:20 +05305151 // access Point ACK RSSI (averaged) from connected AP
Dino Mycle3b9536d2014-07-09 22:05:24 +05305152 tANI_S32 rssiAck;
Sunil Duttc69bccb2014-05-26 21:30:20 +05305153 // per ac data packet statistics
5154 tSirWifiWmmAcStat AccessclassStats[WIFI_AC_MAX];
Mukul Sharmaf1bd9322015-10-20 16:03:42 +05305155#ifdef FEATURE_EXT_LL_STAT
5156 //Leaky Ap Stats
5157 tSirWifiIfaceLeakyApStat leakyApStat;
5158#endif
Sunil Duttc69bccb2014-05-26 21:30:20 +05305159} tSirWifiIfaceStat, *tpSirWifiIfaceStat;
5160
5161/* Peer statistics - corresponding to 3rd most LSB in
5162 * wifi statistics bitmap for getting statistics
5163 */
5164typedef PACKED_PRE struct PACKED_POST
5165{
5166 // number of peers
5167 tANI_U32 numPeers;
5168 // per peer statistics
5169 tSirWifiPeerInfo peerInfo[1];
5170} tSirWifiPeerStat, *tpSirWifiPeerStat;
5171
5172/* wifi statistics bitmap for getting statistics */
5173#define WMI_LINK_STATS_RADIO 0x00000001
5174#define WMI_LINK_STATS_IFACE 0x00000002
5175#define WMI_LINK_STATS_ALL_PEER 0x00000004
5176#define WMI_LINK_STATS_PER_PEER 0x00000008
5177
5178/* wifi statistics bitmap for clearing statistics */
5179// all radio statistics
5180#define WIFI_STATS_RADIO 0x00000001
5181// cca_busy_time (within radio statistics)
5182#define WIFI_STATS_RADIO_CCA 0x00000002
5183// all channel statistics (within radio statistics)
5184#define WIFI_STATS_RADIO_CHANNELS 0x00000004
5185// all scan statistics (within radio statistics)
5186#define WIFI_STATS_RADIO_SCAN 0x00000008
5187// all interface statistics
5188#define WIFI_STATS_IFACE 0x00000010
5189// all tx rate statistics (within interface statistics)
5190#define WIFI_STATS_IFACE_TXRATE 0x00000020
5191// all ac statistics (within interface statistics)
5192#define WIFI_STATS_IFACE_AC 0x00000040
5193// all contention (min, max, avg) statistics (within ac statistics)
5194#define WIFI_STATS_IFACE_CONTENTION 0x00000080
5195
5196typedef PACKED_PRE struct PACKED_POST
5197{
5198 tANI_U32 paramId;
5199 tANI_U8 ifaceId;
5200 tANI_U32 respId;
5201 tANI_U32 moreResultToFollow;
5202 tANI_U8 result[1];
5203} tSirLLStatsResults, *tpSirLLStatsResults;
5204
5205#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
5206
Sachin Ahuja3d47fcd2015-08-28 16:02:06 +05305207
5208
Dino Mycle2c198072014-06-10 10:15:52 +05305209#ifdef WLAN_FEATURE_EXTSCAN
5210
5211typedef enum
5212{
5213 WIFI_BAND_UNSPECIFIED,
5214 WIFI_BAND_BG = 1, // 2.4 GHz
5215 WIFI_BAND_A = 2, // 5 GHz without DFS
5216 WIFI_BAND_ABG = 3, // 2.4 GHz + 5 GHz; no DFS
5217 WIFI_BAND_A_DFS_ONLY = 4, // 5 GHz DFS only
5218 // 5 is reserved
5219 WIFI_BAND_A_WITH_DFS = 6, // 5 GHz with DFS
5220 WIFI_BAND_ABG_WITH_DFS = 7, // 2.4 GHz + 5 GHz with DFS
5221
5222 /* Keep it last */
5223 WIFI_BAND_MAX
5224} tWifiBand;
5225
5226/* wifi scan related events */
5227typedef enum
5228{
5229 WIFI_SCAN_BUFFER_FULL,
5230 WIFI_SCAN_COMPLETE,
5231} tWifiScanEventType;
5232
5233typedef struct
5234{
5235 tSirMacAddr bssid; // AP BSSID
5236 tANI_S32 low; // low threshold
5237 tANI_S32 high; // high threshold
Dino Mycle2c198072014-06-10 10:15:52 +05305238} tSirAPThresholdParam, *tpSirAPThresholdParam;
5239
5240typedef struct
5241{
5242 tANI_U32 requestId;
5243 tANI_U8 sessionId;
5244} tSirGetEXTScanCapabilitiesReqParams, *tpSirGetEXTScanCapabilitiesReqParams;
5245
5246typedef struct
5247{
5248 tANI_U32 requestId;
5249 tANI_U32 status;
5250
5251 tANI_U32 scanCacheSize;
5252 tANI_U32 scanBuckets;
5253 tANI_U32 maxApPerScan;
5254 tANI_U32 maxRssiSampleSize;
5255 tANI_U32 maxScanReportingThreshold;
5256
5257 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara1aa4a32015-06-19 19:00:46 +05305258 tANI_U32 maxHotlistSSIDs;
Dino Mycle2c198072014-06-10 10:15:52 +05305259
5260 tANI_U32 maxBsidHistoryEntries;
Padma, Santhosh Kumara1aa4a32015-06-19 19:00:46 +05305261
Dino Mycle2c198072014-06-10 10:15:52 +05305262} tSirEXTScanCapabilitiesEvent, *tpSirEXTScanCapabilitiesEvent;
5263
5264/* WLAN_HAL_EXT_SCAN_RESULT_IND */
5265typedef struct
5266{
5267 tANI_U32 requestId;
5268 tANI_U8 sessionId;
5269
5270 /*
5271 * 1 return cached results and flush it
5272 * 0 return cached results and do not flush
5273 */
5274 tANI_BOOLEAN flush;
5275} tSirEXTScanGetCachedResultsReqParams, *tpSirEXTScanGetCachedResultsReqParams;
5276
5277typedef PACKED_PRE struct PACKED_POST
5278{
5279 tANI_U32 requestId;
5280 tANI_U32 status;
5281} tSirEXTScanGetCachedResultsRspParams, *tpSirEXTScanGetCachedResultsRspParams;
5282
5283typedef PACKED_PRE struct PACKED_POST
5284{
5285 tANI_U64 ts; // time of discovery
5286 tANI_U8 ssid[SIR_MAC_MAX_SSID_LENGTH + 1]; // null terminated SSID
5287 tSirMacAddr bssid; // BSSID
5288 tANI_U32 channel; // channel frequency in MHz
5289 tANI_S32 rssi; // RSSI in dBm
5290 tANI_U32 rtt; // RTT in nanoseconds
5291 tANI_U32 rtt_sd; // standard deviation in rtt
5292 tANI_U16 beaconPeriod; // period advertised in the beacon
5293 tANI_U16 capability; // capabilities advertised in the beacon
5294} tSirWifiScanResult, *tpSirWifiScanResult;
5295
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05305296/**
5297 * struct tExtscanCachedScanResult - extscan cached scan result
5298 * @scan_id: a unique identifier for the scan unit
5299 * @flags: a bitmask with additional information about scan
5300 * @num_results: number of bssids retrieved by the scan
5301 * @ap: wifi scan bssid results info
5302 */
5303
5304typedef PACKED_PRE struct PACKED_POST
5305{
5306 tANI_U16 scan_id;
5307 tANI_U8 flags;
5308 tANI_U8 num_results;
5309
5310 tSirWifiScanResult ap[32];
5311} tExtscanCachedScanResult, *tpExtscanCachedScanResult;
5312
Dino Mycle2c198072014-06-10 10:15:52 +05305313/* WLAN_HAL_BSSID_HOTLIST_RESULT_IND */
5314
5315typedef PACKED_PRE struct PACKED_POST
5316{
5317 tANI_U32 requestId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05305318 tANI_BOOLEAN bss_found;
5319 tANI_U32 numHotlistBss; // numbers of APs
5320
5321 /*
5322 * 0 for last fragment
5323 * 1 still more fragment(s) coming
5324 */
5325 tANI_BOOLEAN moreData;
5326 tSirWifiScanResult bssHotlist[1];
5327} tSirEXTScanHotlistMatch, *tpSirEXTScanHotlistMatch;
5328
5329
5330typedef PACKED_PRE struct PACKED_POST
5331{
5332 tANI_U32 requestId;
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05305333 /*
5334 * It gives number of scan ids
5335 */
5336 tANI_U32 scanResultSize;
Dino Mycle2c198072014-06-10 10:15:52 +05305337
5338 /*
5339 * 0 for last fragment
5340 * 1 still more fragment(s) coming
5341 */
5342 tANI_BOOLEAN moreData;
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05305343 tANI_U8 result[1];
Dino Mycle2c198072014-06-10 10:15:52 +05305344} tSirWifiScanResultEvent, *tpSirWifiScanResultEvent;
5345
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05305346/* WLAN_HAL_SSID_HOTLIST_RESULT_IND */
5347
5348typedef PACKED_PRE struct PACKED_POST
5349{
5350 tANI_U32 requestId;
5351 tANI_BOOLEAN ssid_found;
5352 tANI_U32 numHotlistSsid; // numbers of SSIDs
5353
5354 /*
5355 * 0 for last fragment
5356 * 1 still more fragment(s) coming
5357 */
5358 tANI_BOOLEAN moreData;
5359 tSirWifiScanResult ssidHotlist[1];
5360} tSirEXTScanSsidHotlistMatch, *tpSirEXTScanSsidHotlistMatch;
5361
Dino Mycle2c198072014-06-10 10:15:52 +05305362typedef PACKED_PRE struct PACKED_POST
5363{
5364 tANI_U8 elemId; // Element Identifier
5365 tANI_U8 ieLength; // length of IE data
5366 tANI_U8 *IEs; // IEs
5367} tSirInformationElement, *tpSirInformationElement;
5368
5369/* Reported when each probe response is received, if reportEvents
5370* enabled in tSirWifiScanCmdReqParams */
5371typedef struct
5372{
5373 tANI_U32 requestId;
5374
5375 /*
5376 * 0 for last fragment
5377 * 1 still more fragment(s) coming
5378 */
5379 tANI_BOOLEAN moreData;
5380 tSirWifiScanResult ap; // only 1 AP info for now
5381 tANI_U32 ieLength;
5382 tSirInformationElement *ie;
5383} tSirWifiFullScanResultEvent, *tpSirWifiFullScanResultEvent;
5384
5385
5386typedef struct
5387{
5388 tANI_U32 channel; // frequency
5389 tANI_U32 dwellTimeMs; // dwell time hint
5390 tANI_U8 passive; // 0 => active,
5391 // 1 => passive scan; ignored for DFS
5392 tANI_U8 chnlClass;
5393} tSirWifiScanChannelSpec, *tpSirWifiScanChannelSpec;
5394
5395typedef struct
5396{
5397 tANI_U8 bucket; // bucket index, 0 based
5398 tWifiBand band; // when UNSPECIFIED, use channel list
5399
5400 /*
5401 * desired period, in millisecond; if this is too
5402 * low, the firmware should choose to generate results as fast as
5403 * it can instead of failing the command byte
5404 */
5405 tANI_U32 period;
5406
5407 /*
5408 * 0 => normal reporting (reporting rssi history
5409 * only, when rssi history buffer is % full)
5410 * 1 => same as 0 + report a scan completion event after scanning
5411 * this bucket
5412 * 2 => same as 1 + forward scan results (beacons/probe responses + IEs)
5413 * in real time to HAL
5414 */
5415 tANI_U8 reportEvents;
5416
Padma, Santhosh Kumar7b9190d2015-08-17 17:45:29 +05305417 tANI_U32 max_period;
5418 tANI_U32 exponent;
5419 tANI_U32 step_count;
5420
Dino Mycle2c198072014-06-10 10:15:52 +05305421 tANI_U8 numChannels;
5422
5423 /*
5424 * channels to scan; these may include DFS channels
5425 */
5426 tSirWifiScanChannelSpec channels[WLAN_EXTSCAN_MAX_CHANNELS];
5427} tSirWifiScanBucketSpec, *tpSirWifiScanBucketSpec;
5428
5429typedef struct
5430{
5431 tANI_U32 requestId;
5432 tANI_U8 sessionId;
5433 tANI_U32 basePeriod; // base timer period
5434 tANI_U32 maxAPperScan;
5435
5436 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumar7b9190d2015-08-17 17:45:29 +05305437 tANI_U32 reportThresholdPercent;
5438 tANI_U32 reportThresholdNumScans;
Dino Mycle2c198072014-06-10 10:15:52 +05305439
Padma, Santhosh Kumar7b9190d2015-08-17 17:45:29 +05305440 tANI_U32 homeAwayTime; //in units of milliseconds
5441
5442 tANI_U8 numBuckets;
Dino Mycle2c198072014-06-10 10:15:52 +05305443 tSirWifiScanBucketSpec buckets[WLAN_EXTSCAN_MAX_BUCKETS];
5444} tSirEXTScanStartReqParams, *tpSirEXTScanStartReqParams;
5445
5446typedef PACKED_PRE struct PACKED_POST
5447{
5448 tANI_U32 requestId;
5449 tANI_U32 status;
5450} tSirEXTScanStartRspParams, *tpSirEXTScanStartRspParams;
5451
5452typedef struct
5453{
5454 tANI_U32 requestId;
5455 tANI_U8 sessionId;
5456} tSirEXTScanStopReqParams, *tpSirEXTScanStopReqParams;
5457
5458typedef PACKED_PRE struct PACKED_POST
5459{
5460 tANI_U32 requestId;
5461 tANI_U32 status;
5462} tSirEXTScanStopRspParams, *tpSirEXTScanStopRspParams;
5463
5464typedef struct
5465{
5466 tANI_U32 requestId;
5467 tANI_U8 sessionId; // session Id mapped to vdev_id
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05305468 tANI_U32 lostBssidSampleSize;
5469 tANI_U32 numBssid; // number of hotlist APs
Dino Mycle2c198072014-06-10 10:15:52 +05305470 tSirAPThresholdParam ap[WLAN_EXTSCAN_MAX_HOTLIST_APS]; // hotlist APs
5471} tSirEXTScanSetBssidHotListReqParams, *tpSirEXTScanSetBssidHotListReqParams;
5472
5473typedef PACKED_PRE struct PACKED_POST
5474{
5475 tANI_U32 requestId;
5476 tANI_U32 status;
5477} tSirEXTScanSetBssidHotListRspParams, *tpSirEXTScanSetBssidHotListRspParams;
5478
5479typedef struct
5480{
5481 tANI_U32 requestId;
5482 tANI_U8 sessionId;
5483} tSirEXTScanResetBssidHotlistReqParams, *tpSirEXTScanResetBssidHotlistReqParams;
5484
5485typedef PACKED_PRE struct PACKED_POST
5486{
5487 tANI_U32 requestId;
5488 tANI_U32 status;
5489} tSirEXTScanResetBssidHotlistRspParams, *tpSirEXTScanResetBssidHotlistRspParams;
5490
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05305491typedef struct
5492{
5493 tANI_U32 requestId;
5494 tANI_U8 sessionId;
5495} tSirEXTScanResetSsidHotlistReqParams, *tpSirEXTScanResetSsidHotlistReqParams;
5496
5497typedef PACKED_PRE struct PACKED_POST
5498{
5499 tANI_U32 requestId;
5500 tANI_U32 status;
5501} tSirEXTScanResetSsidHotlistRspParams, *tpSirEXTScanResetSsidHotlistRspParams;
5502
5503
5504/**
5505 * struct sir_ssid_hotlist_param - param for SSID Hotlist
5506 * @ssid: SSID which is being hotlisted
5507 * @band: Band in which the given SSID should be scanned
5508 * @rssi_low: Low bound on RSSI
5509 * @rssi_high: High bound on RSSI
5510 */
5511typedef struct
5512{
5513 tSirMacSSid ssid;
5514 tANI_U8 band;
5515 tANI_S32 rssi_low;
5516 tANI_S32 rssi_high;
5517}tSirSsidThresholdParam, *tpSirSsidThresholdParam;
5518
5519typedef struct
5520{
5521 tANI_U32 request_id;
5522 tANI_U8 session_id;
5523 tANI_U32 lost_ssid_sample_size;
5524 tANI_U32 ssid_count;
5525 tSirSsidThresholdParam ssid[WLAN_EXTSCAN_MAX_HOTLIST_SSIDS];
5526}tSirEXTScanSetSsidHotListReqParams, *tpSirEXTScanSetSsidHotListReqParams;
5527
5528typedef PACKED_PRE struct PACKED_POST
5529{
5530 tANI_U32 requestId;
5531 tANI_U32 status;
5532} tSirEXTScanSetSsidHotListRspParams, *tpSirEXTScanSetSsidHotListRspParams;
5533
Dino Mycle2c198072014-06-10 10:15:52 +05305534/*---------------------------------------------------------------------------
5535 * * WLAN_HAL_EXTSCAN_RESULT_AVAILABLE_IND
5536 * *-------------------------------------------------------------------------*/
5537typedef PACKED_PRE struct PACKED_POST
5538{
5539 tANI_U32 requestId;
5540 tANI_U32 numResultsAvailable;
5541} tSirEXTScanResultsAvailableIndParams,
5542 *tpSirEXTScanResultsAvailableIndParams;
5543
5544typedef PACKED_PRE struct PACKED_POST
5545{
5546 tANI_U8 scanEventType;
5547 tANI_U32 status;
5548} tSirEXTScanOnScanEventIndParams,
5549 *tpSirEXTScanOnScanEventIndParams;
5550
5551/*---------------------------------------------------------------------------
5552 * * WLAN_HAL_EXTSCAN_PROGRESS_IND
5553 * *-------------------------------------------------------------------------*/
5554
5555typedef PACKED_PRE enum PACKED_POST
5556{
5557 WLAN_HAL_EXTSCAN_BUFFER_FULL,
5558 WLAN_HAL_EXTSCAN_COMPLETE,
5559}tSirEXTScanProgressEventType;
5560
5561typedef PACKED_PRE struct PACKED_POST
5562{
5563 tANI_U32 requestId;
5564 tANI_U32 status;
5565 tSirEXTScanProgressEventType extScanEventType;
5566}tSirEXTScanProgressIndParams,
5567 *tpSirEXTScanProgressIndParams;
5568
Padma, Santhosh Kumarc1f7f052015-08-26 12:29:01 +05305569typedef PACKED_PRE struct PACKED_POST
5570{
5571 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
5572 tANI_U32 reserved; //reserved for future use
5573}tSirHighPriorityDataInfoInd, *tpSirHighPriorityDataInfoInd;
Dino Mycle2c198072014-06-10 10:15:52 +05305574
5575#endif /* WLAN_FEATURE_EXTSCAN */
5576
Siddharth Bhal6af5d4e2014-09-29 21:11:16 +05305577typedef struct
5578{
5579 tANI_U16 messageType;
5580 tANI_U16 length;
5581 tSirMacAddr macAddr;
5582} tSirSpoofMacAddrReq, *tpSirSpoofMacAddrReq;
5583
Srinivas Dasarib8fdd422014-11-27 10:44:20 +05305584typedef struct
5585{
5586 //BIT order is most likely little endian.
5587 //This structure is for netowkr-order byte array (or big-endian byte order)
5588#ifndef WLAN_PAL_BIG_ENDIAN_BIT
5589 tANI_U8 protVer :2;
5590 tANI_U8 type :2;
5591 tANI_U8 subType :4;
5592
5593 tANI_U8 toDS :1;
5594 tANI_U8 fromDS :1;
5595 tANI_U8 moreFrag :1;
5596 tANI_U8 retry :1;
5597 tANI_U8 powerMgmt :1;
5598 tANI_U8 moreData :1;
5599 tANI_U8 wep :1;
5600 tANI_U8 order :1;
5601
5602#else
5603
5604 tANI_U8 subType :4;
5605 tANI_U8 type :2;
5606 tANI_U8 protVer :2;
5607
5608 tANI_U8 order :1;
5609 tANI_U8 wep :1;
5610 tANI_U8 moreData :1;
5611 tANI_U8 powerMgmt :1;
5612 tANI_U8 retry :1;
5613 tANI_U8 moreFrag :1;
5614 tANI_U8 fromDS :1;
5615 tANI_U8 toDS :1;
5616
5617#endif
5618
5619} tSirFC;
5620
5621typedef struct
5622{
5623 /* Frame control field */
5624 tSirFC frameCtrl;
5625 /* Duration ID */
5626 tANI_U16 usDurationId;
5627 /* Address 1 field */
5628 tSirMacAddr vA1;
5629 /* Address 2 field */
5630 tSirMacAddr vA2;
5631 /* Address 3 field */
5632 tSirMacAddr vA3;
5633 /* Sequence control field */
5634 tANI_U16 sSeqCtrl;
5635 /* Optional A4 address */
5636 tSirMacAddr optvA4;
5637 /* Optional QOS control field */
5638 tANI_U16 usQosCtrl;
5639}tSir80211Header;
5640// Definition for Encryption Keys
5641//typedef struct sSirKeys
5642typedef struct
5643{
5644 tANI_U8 keyId;
5645 tANI_U8 unicast; // 0 for multicast
5646 tAniKeyDirection keyDirection;
5647 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
5648 tANI_U8 paeRole; // =1 for authenticator,
5649 // =0 for supplicant
5650 tANI_U16 keyLength;
5651 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
5652} tMacKeys, *tpMacKeys;
5653
5654typedef enum
5655{
5656 eMAC_WEP_STATIC,
5657 eMAC_WEP_DYNAMIC,
5658} tMacWepType;
5659
5660/*
5661 * This is used by PE to configure the key information on a given station.
5662 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
5663 * a preconfigured key from a BSS the station assoicated with; otherwise
5664 * a new key descriptor is created based on the key field.
5665 */
5666//typedef struct
5667typedef struct
5668{
5669 tANI_U16 staIdx;
5670 tAniEdType encType; // Encryption/Decryption type
5671 tMacWepType wepType; // valid only for WEP
5672 tANI_U8 defWEPIdx; // Default WEP key, valid only for static WEP, must between 0 and 3
5673 tMacKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS]; // valid only for non-static WEP encyrptions
5674 tANI_U8 singleTidRc; // 1=Single TID based Replay Count, 0=Per TID based RC
5675 tANI_U8 sessionId; // PE session id for PE<->HAL interface
5676} tSirSetStaKeyParams, *tpSirSetStaKeyParams;
5677
5678//typedef struct
5679typedef struct
5680{
5681 tSirSetStaKeyParams keyParams;
5682 tANI_U8 pn[6];
5683}tSirencConfigParams;
5684
5685typedef struct
5686{
5687 tANI_U16 length;
5688 tANI_U8 data[WLAN_DISA_MAX_PAYLOAD_SIZE];
5689}tSirpayload;
5690
5691typedef struct
5692{
5693 tSir80211Header macHeader;
5694 tSirencConfigParams encParams;
5695 tSirpayload data;
5696}tSirpkt80211;
5697
5698typedef struct
5699{
5700 tANI_U32 status;
5701 tSirpayload encryptedPayload;
5702} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
5703
5704typedef struct
5705{
5706 tANI_U16 mesgType;
5707 tANI_U16 mesgLen;
5708 tSetEncryptedDataRspParams encryptedDataRsp;
5709} tSirEncryptedDataRspParams, *tpSirEncryptedDataRspParams;
c_hpothua3d45d52015-01-05 14:11:17 +05305710
5711typedef enum eSirAbortScanStatus
5712{
5713 eSIR_ABORT_ACTIVE_SCAN_LIST_EMPTY,
5714 eSIR_ABORT_ACTIVE_SCAN_LIST_NOT_EMPTY,
5715 eSIR_ABORT_SCAN_FAILURE
5716}tSirAbortScanStatus;
5717
Masti, Narayanraddi4b359dd2015-02-03 15:49:29 +05305718/* Max number of rates allowed in Supported Rates IE */
5719#define MAX_NUM_SUPPORTED_RATES (8)
5720
Girish Gowlia95daca2015-02-04 20:31:31 +05305721typedef struct sSirSmeUpdateMaxRateParams
5722{
5723 tANI_U32 maxRateFlag;
5724 tANI_U8 smeSessionId;
5725}tSirSmeUpdateMaxRateParams, *tpSirSmeUpdateMaxRateParams;
5726
Srinivas Dasari32a79262015-02-19 13:04:49 +05305727typedef struct
5728{
5729 tANI_U32 event_data_len;
5730 tANI_U8 event_data[1];
5731} tSirNanEvent, *tpSirNanEvent;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305732
5733typedef struct
5734{
5735 tANI_U32 txCompleteStatus;
5736 tANI_U32 txBdToken;
5737}tSirTxBdStatus, *tpSirTxBdStatus;
Pradeep Reddy POTTETI31505892015-04-16 16:47:54 +05305738
5739/* enable or disable 20_40 BSS Coexistence IE in TDLS frames*/
5740typedef struct
5741{
5742 // Common for all types are requests
5743 tANI_U16 msgType; // message type is same as the request type
5744 tANI_U16 msgLen; // length of the entire request
5745 tANI_U8 SetTdls2040BSSCoex; //enabled or disabled
5746} tAniSetTdls2040BSSCoex, *tpAniSetTdls2040BSSCoex;
Masti, Narayanraddi1fb32a92015-06-29 13:14:06 +05305747
Sushant Kaushik8e644982015-09-23 12:18:54 +05305748/**
5749 * struct sir_wifi_start_log - Structure to store the params sent to start/
5750 * stop logging
5751 * @ringId: Attribute which indicates the type of logging like per packet
5752 * statistics, connectivity etc.
5753 * @verboseLevel: Verbose level which can be 0,1,2,3
5754 * @flag: Flag field for future use
5755 */
5756typedef struct sir_wifi_start_log {
5757 tANI_U32 ringId;
5758 tANI_U32 verboseLevel;
5759 tANI_U32 flag;
5760}tAniWifiStartLog, *tpAniWifiStartLog;
5761
Masti, Narayanraddi1fb32a92015-06-29 13:14:06 +05305762typedef struct
5763{
5764 tANI_U16 mesgType;
5765 tANI_U16 mesgLen;
5766 tSirMacAddr bssid;
5767}tSirDelAllTdlsPeers, *ptSirDelAllTdlsPeers;
Hanumantha Reddy Pothula91cdd7f2015-09-03 21:25:16 +05305768
5769typedef void (*tSirMonModeCb)(tANI_U32 *magic, struct completion *cmpVar);
5770typedef struct
5771{
5772 tANI_U32 *magic;
5773 struct completion *cmpVar;
5774 void *data;
5775 tSirMonModeCb callback;
5776}tSirMonModeReq, *ptSirMonModeReq;
c_manjeecfd1efb2015-09-25 19:32:34 +05305777
5778/**
5779 * struct tAniFwrDumpRsp - firmware dump response details.
5780 *
5781 * This structure is used to store the firmware dump
5782 * response from the firmware.
5783 */
5784typedef struct
5785{
5786 tANI_U32 dump_status;
5787}tAniFwrDumpRsp, *tpAniFwrDumpRsp;
5788
5789typedef void (*FWMemDumpReqCb)(void *fwMemDumpReqContext, tAniFwrDumpRsp *dump_rsp);
5790
5791/**
5792 * struct tAniFwrDumpReq - firmware memory dump request details.
5793.*.@FWMemDumpReqCb - Associated Callback
5794 *.@fwMemDumpReqContext - Callback context
5795 * @reserved - reserved field 1.
5796 *
5797 * This structure carries information about the firmware
5798 * memory dump request.
5799 */
5800typedef struct
5801{
5802 FWMemDumpReqCb fwMemDumpReqCallback;
5803 void * fwMemDumpReqContext;
5804 tANI_U32 reserved1;
5805}tAniFwrDumpReq, *tpAniFwrDumpReq;
5806
Arun Khandavalli7eeb1592015-10-19 21:36:57 +05305807/**
5808* struct tSetWifiConfigParams - Structure to store the wificonfig related params
5809* @paramType: 1. Average Stats factor 2. Guard type
5810* @paramvalue: Value to be set in the firmware.
5811* @bssId: macaddr of the connected BssId
5812*/
5813typedef struct
5814{
5815 tANI_U8 paramType;
5816 tANI_U8 sessionId;
5817 tANI_U32 paramValue;
5818 tSirMacAddr bssId;
5819} tSetWifiConfigParams, *tpSetWifiConfigParams;
5820
Jeff Johnson295189b2012-06-20 16:38:30 -07005821#endif /* __SIR_API_H */