blob: dc0093018b3384810bf9b8948dd1eb0d18ea3c73 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Masti, Narayanraddif10fd792015-12-15 15:01:01 +05302 * Copyright (c) 2012-2016 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];
Deepthi Gowri2f435132016-05-18 19:30:17 +0530713 v_TIME_t nReceivedTime; //base on a tick count. It is a time stamp, not a relative time.
Jeff Johnson295189b2012-06-20 16:38:30 -0700714#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
Abhishek Singheef5c992016-01-27 13:41:54 +05301044 tANI_BOOLEAN bWPSAssociation; //WPS
Jeff Johnsone7245742012-09-05 17:12:55 -07001045 ePhyChanBondState cbMode; // Pass CB mode value in Join.
Jeff Johnson295189b2012-06-20 16:38:30 -07001046
1047 /*This contains the UAPSD Flag for all 4 AC
1048 * B0: AC_VO UAPSD FLAG
1049 * B1: AC_VI UAPSD FLAG
1050 * B2: AC_BK UAPSD FLAG
1051 * B3: AC_BE UASPD FLAG
1052 */
1053 tANI_U8 uapsdPerAcBitmask;
1054
Jeff Johnson295189b2012-06-20 16:38:30 -07001055 tSirMacRateSet operationalRateSet;// Has 11a or 11b rates
1056 tSirMacRateSet extendedRateSet; // Has 11g rates
Masti, Narayanraddi67ea5912015-01-08 12:34:05 +05301057 tANI_U16 rateBitMap;
Jeff Johnson295189b2012-06-20 16:38:30 -07001058 tSirRSNie rsnIE; // RSN IE to be sent in
1059 // (Re) Association Request
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001060#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -07001061 tSirCCKMie cckmIE; // CCMK IE to be included as handler for join and reassoc is
1062 // the same. The join will never carry cckm, but will be set to
1063 // 0.
1064#endif
1065
1066 tSirAddie addIEScan; // Additional IE to be sent in
1067 // (unicast) Probe Request at the time of join
1068
1069 tSirAddie addIEAssoc; // Additional IE to be sent in
1070 // (Re) Association Request
1071
1072 tAniEdType UCEncryptionType;
1073
1074 tAniEdType MCEncryptionType;
Chet Lanctot186b5732013-03-18 10:26:30 -07001075
1076#ifdef WLAN_FEATURE_11W
1077 tAniEdType MgmtEncryptionType;
1078#endif
1079
Jeff Johnson295189b2012-06-20 16:38:30 -07001080#ifdef WLAN_FEATURE_VOWIFI_11R
1081 tAniBool is11Rconnection;
1082#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001083#ifdef FEATURE_WLAN_ESE
1084 tAniBool isESEFeatureIniEnabled;
1085 tAniBool isESEconnection;
1086 tESETspecInfo eseTspecInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -07001087#endif
1088
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001089#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07001090 tAniBool isFastTransitionEnabled;
1091#endif
Jeff Johnson43971f52012-07-17 12:26:56 -07001092#ifdef FEATURE_WLAN_LFR
1093 tAniBool isFastRoamIniFeatureEnabled;
1094#endif
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001095
1096 tANI_U8 txLdpcIniFeatureEnabled;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001097#ifdef WLAN_FEATURE_11AC
1098 tANI_U8 txBFIniFeatureEnabled;
Shailender Karmuchicc3fe442013-02-16 18:18:33 -08001099 tANI_U8 txBFCsnValue;
Abhishek Singh6d5d29c2014-07-03 14:25:22 +05301100 tANI_U8 txMuBformee;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001101#endif
krunal soni5afa96c2013-09-06 22:19:02 -07001102 tANI_U8 isAmsduSupportInAMPDU;
Sandeep Puligillaaea98a22013-12-04 13:36:32 +05301103 tAniBool isWMEenabled;
1104 tAniBool isQosEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07001105 tAniTitanCBNeighborInfo cbNeighbors;
1106 tAniBool spectrumMgtIndicator;
1107 tSirMacPowerCapInfo powerCap;
1108 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001109 tSirBssDescription bssDescription;
Jeff Johnson295189b2012-06-20 16:38:30 -07001110
1111} tSirSmeJoinReq, *tpSirSmeJoinReq;
1112
1113/// Definition for reponse message to previously issued join request
1114/// MAC --->
1115typedef struct sSirSmeJoinRsp
1116{
1117 tANI_U16 messageType; // eWNI_SME_JOIN_RSP
1118 tANI_U16 length;
1119 tANI_U8 sessionId; // Session ID
1120 tANI_U16 transactionId; // Transaction ID for cmd
1121 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001122 tAniAuthType authType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001123 tANI_U16 protStatusCode; //It holds reasonCode when join fails due to deauth/disassoc frame.
1124 //Otherwise it holds status code.
1125 tANI_U16 aid;
1126 tANI_U32 beaconLength;
1127 tANI_U32 assocReqLength;
1128 tANI_U32 assocRspLength;
1129#ifdef WLAN_FEATURE_VOWIFI_11R
1130 tANI_U32 parsedRicRspLen;
1131#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001132#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -07001133 tANI_U32 tspecIeLen;
1134#endif
1135 tANI_U32 staId;//Station ID for peer
1136
1137 /*The DPU signatures will be sent eventually to TL to help it determine the
1138 association to which a packet belongs to*/
1139 /*Unicast DPU signature*/
1140 tANI_U8 ucastSig;
1141
1142 /*Broadcast DPU signature*/
1143 tANI_U8 bcastSig;
1144
c_hpothu44ff4e02014-05-08 00:13:57 +05301145 /*to report MAX link-speed populate rate-flags from ASSOC RSP frame*/
1146 tANI_U32 maxRateFlags;
1147
Jeff Johnson295189b2012-06-20 16:38:30 -07001148 tANI_U8 frames[ 1 ];
1149} tSirSmeJoinRsp, *tpSirSmeJoinRsp;
1150
1151/// Definition for Authentication indication from peer
1152typedef struct sSirSmeAuthInd
1153{
1154 tANI_U16 messageType; // eWNI_SME_AUTH_IND
1155 tANI_U16 length;
1156 tANI_U8 sessionId;
1157 tSirMacAddr bssId; // Self BSSID
1158 tSirMacAddr peerMacAddr;
1159 tAniAuthType authType;
1160} tSirSmeAuthInd, *tpSirSmeAuthInd;
1161
1162/// probereq from peer, when wsc is enabled
1163typedef struct sSirSmeProbereq
1164{
1165 tANI_U16 messageType; // eWNI_SME_PROBE_REQ
1166 tANI_U16 length;
1167 tANI_U8 sessionId;
1168 tSirMacAddr peerMacAddr;
1169 tANI_U16 devicePasswdId;
1170} tSirSmeProbeReq, *tpSirSmeProbeReq;
1171
1172/// Definition for Association indication from peer
1173/// MAC --->
1174typedef struct sSirSmeAssocInd
1175{
1176 tANI_U16 messageType; // eWNI_SME_ASSOC_IND
1177 tANI_U16 length;
1178 tANI_U8 sessionId;
1179 tSirMacAddr peerMacAddr;
1180 tANI_U16 aid;
1181 tSirMacAddr bssId; // Self BSSID
1182 tANI_U16 staId; // Station ID for peer
1183 tANI_U8 uniSig; // DPU signature for unicast packets
1184 tANI_U8 bcastSig; // DPU signature for broadcast packets
1185 tAniAuthType authType;
1186 tAniSSID ssId; // SSID used by STA to associate
1187 tSirRSNie rsnIE;// RSN IE received from peer
1188 tSirAddie addIE;// Additional IE received from peer, which possibly include WSC IE and/or P2P IE
1189
Jeff Johnson295189b2012-06-20 16:38:30 -07001190 // powerCap & supportedChannels are present only when
1191 // spectrumMgtIndicator flag is set
1192 tAniBool spectrumMgtIndicator;
1193 tSirMacPowerCapInfo powerCap;
1194 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001195 tAniBool wmmEnabledSta; /* if present - STA is WMM enabled */
Hardik Kantilal Patel1ba630f2014-11-21 04:32:05 +05301196#ifdef WLAN_FEATURE_AP_HT40_24G
1197 tAniBool HT40MHzIntoEnabledSta; /* if present - STA Enable 40 MHz Intolerant */
1198#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001199 tAniBool reassocReq;
1200 // Required for indicating the frames to upper layer
1201 tANI_U32 beaconLength;
1202 tANI_U8* beaconPtr;
1203 tANI_U32 assocReqLength;
1204 tANI_U8* assocReqPtr;
Deepthi Gowriae6a1662015-10-12 12:59:37 +05301205 uint32_t rate_flags;
Jeff Johnson295189b2012-06-20 16:38:30 -07001206} tSirSmeAssocInd, *tpSirSmeAssocInd;
1207
1208
1209/// Definition for Association confirm
1210/// ---> MAC
1211typedef struct sSirSmeAssocCnf
1212{
1213 tANI_U16 messageType; // eWNI_SME_ASSOC_CNF
1214 tANI_U16 length;
1215 tSirResultCodes statusCode;
1216 tSirMacAddr bssId; // Self BSSID
1217 tSirMacAddr peerMacAddr;
1218 tANI_U16 aid;
1219 tSirMacAddr alternateBssId;
1220 tANI_U8 alternateChannelId;
1221} tSirSmeAssocCnf, *tpSirSmeAssocCnf;
1222
Jeff Johnson295189b2012-06-20 16:38:30 -07001223/// Definition for Reassociation indication from peer
1224typedef struct sSirSmeReassocInd
1225{
1226 tANI_U16 messageType; // eWNI_SME_REASSOC_IND
1227 tANI_U16 length;
1228 tANI_U8 sessionId; // Session ID
1229 tSirMacAddr peerMacAddr;
1230 tSirMacAddr oldMacAddr;
1231 tANI_U16 aid;
1232 tSirMacAddr bssId; // Self BSSID
1233 tANI_U16 staId; // Station ID for peer
1234 tAniAuthType authType;
1235 tAniSSID ssId; // SSID used by STA to reassociate
1236 tSirRSNie rsnIE; // RSN IE received from peer
1237
1238 tSirAddie addIE; // Additional IE received from peer
1239
Jeff Johnson295189b2012-06-20 16:38:30 -07001240 // powerCap & supportedChannels are present only when
1241 // spectrumMgtIndicator flag is set
1242 tAniBool spectrumMgtIndicator;
1243 tSirMacPowerCapInfo powerCap;
1244 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001245 // Required for indicating the frames to upper layer
1246 // TODO: use the appropriate names to distinguish between the other similar names used above for station mode of operation
1247 tANI_U32 beaconLength;
1248 tANI_U8* beaconPtr;
1249 tANI_U32 assocReqLength;
1250 tANI_U8* assocReqPtr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001251} tSirSmeReassocInd, *tpSirSmeReassocInd;
1252
1253/// Definition for Reassociation confirm
1254/// ---> MAC
1255typedef struct sSirSmeReassocCnf
1256{
1257 tANI_U16 messageType; // eWNI_SME_REASSOC_CNF
1258 tANI_U16 length;
1259 tSirResultCodes statusCode;
1260 tSirMacAddr bssId; // Self BSSID
1261 tSirMacAddr peerMacAddr;
1262 tANI_U16 aid;
1263 tSirMacAddr alternateBssId;
1264 tANI_U8 alternateChannelId;
1265} tSirSmeReassocCnf, *tpSirSmeReassocCnf;
1266
Jeff Johnson295189b2012-06-20 16:38:30 -07001267
1268/// Enum definition for Wireless medium status change codes
1269typedef enum eSirSmeStatusChangeCode
1270{
1271 eSIR_SME_DEAUTH_FROM_PEER,
1272 eSIR_SME_DISASSOC_FROM_PEER,
1273 eSIR_SME_LOST_LINK_WITH_PEER,
1274 eSIR_SME_CHANNEL_SWITCH,
1275 eSIR_SME_JOINED_NEW_BSS,
1276 eSIR_SME_LEAVING_BSS,
1277 eSIR_SME_IBSS_ACTIVE,
1278 eSIR_SME_IBSS_INACTIVE,
1279 eSIR_SME_IBSS_PEER_DEPARTED,
1280 eSIR_SME_RADAR_DETECTED,
1281 eSIR_SME_IBSS_NEW_PEER,
1282 eSIR_SME_AP_CAPS_CHANGED,
1283 eSIR_SME_BACKGROUND_SCAN_FAIL,
1284 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_AP,
1285 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
1286} tSirSmeStatusChangeCode;
1287
1288typedef struct sSirSmeNewBssInfo
1289{
1290 tSirMacAddr bssId;
1291 tANI_U8 channelNumber;
1292 tANI_U8 reserved;
1293 tSirMacSSid ssId;
1294} tSirSmeNewBssInfo, *tpSirSmeNewBssInfo;
1295
1296typedef struct sSirSmeApNewCaps
1297{
1298 tANI_U16 capabilityInfo;
1299 tSirMacAddr bssId;
1300 tANI_U8 channelId;
1301 tANI_U8 reserved[3];
1302 tSirMacSSid ssId;
1303} tSirSmeApNewCaps, *tpSirSmeApNewCaps;
1304
1305/**
1306 * Table below indicates what information is passed for each of
1307 * the Wireless Media status change notifications:
1308 *
1309 * Status Change code Status change info
1310 * ----------------------------------------------------------------------
1311 * eSIR_SME_DEAUTH_FROM_PEER Reason code received in DEAUTH frame
1312 * eSIR_SME_DISASSOC_FROM_PEER Reason code received in DISASSOC frame
1313 * eSIR_SME_LOST_LINK_WITH_PEER None
1314 * eSIR_SME_CHANNEL_SWITCH New channel number
1315 * eSIR_SME_JOINED_NEW_BSS BSSID, SSID and channel number
1316 * eSIR_SME_LEAVING_BSS None
1317 * eSIR_SME_IBSS_ACTIVE Indicates that another STA joined
1318 * IBSS apart from this STA that
1319 * started IBSS
1320 * eSIR_SME_IBSS_INACTIVE Indicates that only this STA is left
1321 * in IBSS
1322 * eSIR_SME_RADAR_DETECTED Indicates that radar is detected
1323 * eSIR_SME_IBSS_NEW_PEER Indicates that a new peer is detected
1324 * eSIR_SME_AP_CAPS_CHANGED Indicates that capabilities of the AP
1325 * that STA is currently associated with
1326 * have changed.
1327 * eSIR_SME_BACKGROUND_SCAN_FAIL Indicates background scan failure
1328 */
1329
1330/// Definition for Wireless medium status change notification
1331typedef struct sSirSmeWmStatusChangeNtf
1332{
1333 tANI_U16 messageType; // eWNI_SME_WM_STATUS_CHANGE_NTF
1334 tANI_U16 length;
1335 tANI_U8 sessionId; // Session ID
1336 tSirSmeStatusChangeCode statusChangeCode;
1337 tSirMacAddr bssId; // Self BSSID
1338 union
1339 {
1340 tANI_U16 deAuthReasonCode; // eSIR_SME_DEAUTH_FROM_PEER
1341 tANI_U16 disassocReasonCode; // eSIR_SME_DISASSOC_FROM_PEER
1342 // none for eSIR_SME_LOST_LINK_WITH_PEER
1343 tANI_U8 newChannelId; // eSIR_SME_CHANNEL_SWITCH
1344 tSirSmeNewBssInfo newBssInfo; // eSIR_SME_JOINED_NEW_BSS
1345 // none for eSIR_SME_LEAVING_BSS
1346 // none for eSIR_SME_IBSS_ACTIVE
1347 // none for eSIR_SME_IBSS_INACTIVE
Jeff Johnson295189b2012-06-20 16:38:30 -07001348 tSirNewIbssPeerInfo newIbssPeerInfo; // eSIR_SME_IBSS_NEW_PEER
1349 tSirSmeApNewCaps apNewCaps; // eSIR_SME_AP_CAPS_CHANGED
1350 tSirBackgroundScanInfo bkgndScanInfo; // eSIR_SME_BACKGROUND_SCAN_FAIL
1351 tAniTitanCBNeighborInfo cbNeighbors; // eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
Jeff Johnson295189b2012-06-20 16:38:30 -07001352 } statusChangeInfo;
1353} tSirSmeWmStatusChangeNtf, *tpSirSmeWmStatusChangeNtf;
1354
1355/// Definition for Disassociation request
1356typedef
Jeff Johnson295189b2012-06-20 16:38:30 -07001357__ani_attr_pre_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001358struct sSirSmeDisassocReq
1359{
1360 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1361 tANI_U16 length;
1362 tANI_U8 sessionId; // Session ID
1363 tANI_U16 transactionId; // Transaction ID for cmd
1364 tSirMacAddr bssId; // Peer BSSID
1365 tSirMacAddr peerMacAddr;
1366 tANI_U16 reasonCode;
1367 tANI_U8 doNotSendOverTheAir; //This flag tells LIM whether to send the disassoc OTA or not
1368 //This will be set in while handing off from one AP to other
Jeff Johnson295189b2012-06-20 16:38:30 -07001369}
Jeff Johnson295189b2012-06-20 16:38:30 -07001370__ani_attr_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001371tSirSmeDisassocReq, *tpSirSmeDisassocReq;
1372
1373/// Definition for Tkip countermeasures request
Jeff Johnson295189b2012-06-20 16:38:30 -07001374typedef __ani_attr_pre_packed struct sSirSmeTkipCntrMeasReq
1375{
1376 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1377 tANI_U16 length;
1378 tANI_U8 sessionId; // Session ID
1379 tANI_U16 transactionId; // Transaction ID for cmd
1380 tSirMacAddr bssId; // Peer BSSID
1381 tANI_BOOLEAN bEnable; // Start/stop countermeasures
1382} __ani_attr_packed tSirSmeTkipCntrMeasReq, *tpSirSmeTkipCntrMeasReq;
Jeff Johnson295189b2012-06-20 16:38:30 -07001383
1384typedef struct sAni64BitCounters
1385{
1386 tANI_U32 Hi;
1387 tANI_U32 Lo;
1388}tAni64BitCounters, *tpAni64BitCounters;
1389
1390typedef struct sAniSecurityStat
1391{
1392 tAni64BitCounters txBlks;
1393 tAni64BitCounters rxBlks;
1394 tAni64BitCounters formatErrorCnt;
1395 tAni64BitCounters decryptErr;
1396 tAni64BitCounters protExclCnt;
1397 tAni64BitCounters unDecryptableCnt;
1398 tAni64BitCounters decryptOkCnt;
1399
1400}tAniSecurityStat, *tpAniSecurityStat;
1401
1402typedef struct sAniTxRxCounters
1403{
1404 tANI_U32 txFrames; // Incremented for every packet tx
1405 tANI_U32 rxFrames;
1406 tANI_U32 nRcvBytes;
1407 tANI_U32 nXmitBytes;
1408}tAniTxRxCounters, *tpAniTxRxCounters;
1409
1410typedef struct sAniTxRxStats
1411{
1412 tAni64BitCounters txFrames;
1413 tAni64BitCounters rxFrames;
1414 tAni64BitCounters nRcvBytes;
1415 tAni64BitCounters nXmitBytes;
1416
1417}tAniTxRxStats,*tpAniTxRxStats;
1418
1419typedef struct sAniSecStats
1420{
1421 tAniSecurityStat aes;
1422 tAni64BitCounters aesReplays;
1423 tAniSecurityStat tkip;
1424 tAni64BitCounters tkipReplays;
1425 tAni64BitCounters tkipMicError;
1426
1427 tAniSecurityStat wep;
1428#if defined(FEATURE_WLAN_WAPI) && !defined(LIBRA_WAPI_SUPPORT)
1429 tAniSecurityStat wpi;
1430 tAni64BitCounters wpiReplays;
1431 tAni64BitCounters wpiMicError;
1432#endif
1433}tAniSecStats, *tpAniSecStats;
1434
1435#define SIR_MAX_RX_CHAINS 3
1436
1437typedef struct sAniStaStatStruct
1438{
1439 /* following statistic elements till expandPktRxCntLo are not filled with valid data.
1440 * These are kept as it is, since WSM is using this structure.
1441 * These elements can be removed whenever WSM is updated.
1442 * Phystats is used to hold phystats from BD.
1443 */
1444 tANI_U32 sentAesBlksUcastHi;
1445 tANI_U32 sentAesBlksUcastLo;
1446 tANI_U32 recvAesBlksUcastHi;
1447 tANI_U32 recvAesBlksUcastLo;
1448 tANI_U32 aesFormatErrorUcastCnts;
1449 tANI_U32 aesReplaysUcast;
1450 tANI_U32 aesDecryptErrUcast;
1451 tANI_U32 singleRetryPkts;
1452 tANI_U32 failedTxPkts;
1453 tANI_U32 ackTimeouts;
1454 tANI_U32 multiRetryPkts;
1455 tANI_U32 fragTxCntsHi;
1456 tANI_U32 fragTxCntsLo;
1457 tANI_U32 transmittedPktsHi;
1458 tANI_U32 transmittedPktsLo;
1459 tANI_U32 phyStatHi; //These are used to fill in the phystats.
1460 tANI_U32 phyStatLo; //This is only for private use.
1461
1462 tANI_U32 uplinkRssi;
1463 tANI_U32 uplinkSinr;
1464 tANI_U32 uplinkRate;
1465 tANI_U32 downlinkRssi;
1466 tANI_U32 downlinkSinr;
1467 tANI_U32 downlinkRate;
1468 tANI_U32 nRcvBytes;
1469 tANI_U32 nXmitBytes;
1470
1471 // titan 3c stats
1472 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1473 tANI_U32 chunksTxCntLo;
1474 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1475 tANI_U32 compPktRxCntLo;
1476 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1477 tANI_U32 expanPktRxCntLo;
1478
1479
1480 /* Following elements are valid and filled in correctly. They have valid values.
1481 */
1482
1483 //Unicast frames and bytes.
1484 tAniTxRxStats ucStats;
1485
1486 //Broadcast frames and bytes.
1487 tAniTxRxStats bcStats;
1488
1489 //Multicast frames and bytes.
1490 tAniTxRxStats mcStats;
1491
1492 tANI_U32 currentTxRate;
1493 tANI_U32 currentRxRate; //Rate in 100Kbps
1494
1495 tANI_U32 maxTxRate;
1496 tANI_U32 maxRxRate;
1497
1498 tANI_S8 rssi[SIR_MAX_RX_CHAINS];
1499
1500
1501 tAniSecStats securityStats;
1502
1503 tANI_U8 currentRxRateIdx; //This the softmac rate Index.
1504 tANI_U8 currentTxRateIdx;
1505
1506} tAniStaStatStruct, *tpAniStaStatStruct;
1507
1508//Statistics that are not maintained per stations.
1509typedef struct sAniGlobalStatStruct
1510{
1511 tAni64BitCounters txError;
1512 tAni64BitCounters rxError;
1513 tAni64BitCounters rxDropNoBuffer;
1514 tAni64BitCounters rxDropDup;
1515 tAni64BitCounters rxCRCError;
1516
1517 tAni64BitCounters singleRetryPkts;
1518 tAni64BitCounters failedTxPkts;
1519 tAni64BitCounters ackTimeouts;
1520 tAni64BitCounters multiRetryPkts;
1521 tAni64BitCounters fragTxCnts;
1522 tAni64BitCounters fragRxCnts;
1523
1524 tAni64BitCounters txRTSSuccess;
1525 tAni64BitCounters txCTSSuccess;
1526 tAni64BitCounters rxRTSSuccess;
1527 tAni64BitCounters rxCTSSuccess;
1528
1529 tAniSecStats securityStats;
1530
1531 tAniTxRxStats mcStats;
1532 tAniTxRxStats bcStats;
1533
1534}tAniGlobalStatStruct,*tpAniGlobalStatStruct;
1535
1536typedef enum sPacketType
1537{
1538 ePACKET_TYPE_UNKNOWN,
1539 ePACKET_TYPE_11A,
1540 ePACKET_TYPE_11G,
1541 ePACKET_TYPE_11B,
1542 ePACKET_TYPE_11N
1543
1544}tPacketType, *tpPacketType;
1545
1546typedef struct sAniStatSummaryStruct
1547{
1548 tAniTxRxStats uc; //Unicast counters.
1549 tAniTxRxStats bc; //Broadcast counters.
1550 tAniTxRxStats mc; //Multicast counters.
1551 tAni64BitCounters txError;
1552 tAni64BitCounters rxError;
1553 tANI_S8 rssi[SIR_MAX_RX_CHAINS]; //For each chain.
1554 tANI_U32 rxRate; // Rx rate of the last received packet.
1555 tANI_U32 txRate;
1556 tANI_U16 rxMCSId; //MCS index is valid only when packet type is ePACKET_TYPE_11N
1557 tANI_U16 txMCSId;
1558 tPacketType rxPacketType;
1559 tPacketType txPacketType;
1560 tSirMacAddr macAddr; //Mac Address of the station from which above RSSI and rate is from.
1561}tAniStatSummaryStruct,*tpAniStatSummaryStruct;
1562
Jeff Johnson295189b2012-06-20 16:38:30 -07001563//structure for stats that may be reset, like the ones in sta descriptor
1564//The stats are saved into here before reset. It should be tANI_U32 aligned.
1565typedef struct _sPermStaStats
1566{
1567 //tANI_U32 sentAesBlksUcastHi;
1568 //tANI_U32 sentAesBlksUcastLo;
1569 //tANI_U32 recvAesBlksUcastHi;
1570 //tANI_U32 recvAesBlksUcastLo;
1571 tANI_U32 aesFormatErrorUcastCnts;
1572 tANI_U32 aesReplaysUcast;
1573 tANI_U32 aesDecryptErrUcast;
1574 tANI_U32 singleRetryPkts;
1575 tANI_U32 failedTxPkts;
1576 tANI_U32 ackTimeouts;
1577 tANI_U32 multiRetryPkts;
1578 tANI_U32 fragTxCntsHi;
1579 tANI_U32 fragTxCntsLo;
1580 tANI_U32 transmittedPktsHi;
1581 tANI_U32 transmittedPktsLo;
1582
1583 // titan 3c stats
1584 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1585 tANI_U32 chunksTxCntLo;
1586 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1587 tANI_U32 compPktRxCntLo;
1588 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1589 tANI_U32 expanPktRxCntLo;
1590}tPermanentStaStats;
1591
Jeff Johnson295189b2012-06-20 16:38:30 -07001592
1593
1594
1595/// Definition for Disassociation response
1596typedef struct sSirSmeDisassocRsp
1597{
1598 tANI_U16 messageType; // eWNI_SME_DISASSOC_RSP
1599 tANI_U16 length;
1600 tANI_U8 sessionId; // Session ID
1601 tANI_U16 transactionId; // Transaction ID for cmd
1602 tSirResultCodes statusCode;
1603 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001604 tAniStaStatStruct perStaStats; // STA stats
Jeff Johnson295189b2012-06-20 16:38:30 -07001605 tANI_U16 staId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001606}
Jeff Johnson295189b2012-06-20 16:38:30 -07001607__ani_attr_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001608 tSirSmeDisassocRsp, *tpSirSmeDisassocRsp;
1609
1610/// Definition for Disassociation indication from peer
1611typedef struct sSirSmeDisassocInd
1612{
1613 tANI_U16 messageType; // eWNI_SME_DISASSOC_IND
1614 tANI_U16 length;
1615 tANI_U8 sessionId; // Session Identifier
1616 tANI_U16 transactionId; // Transaction Identifier with PE
1617 tSirResultCodes statusCode;
1618 tSirMacAddr bssId;
1619 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001620 tAniStaStatStruct perStaStats; // STA stats
Jeff Johnson295189b2012-06-20 16:38:30 -07001621 tANI_U16 staId;
Wu Gao742b7352015-10-16 19:10:40 +08001622 tANI_U16 assocId;
Mohit Khanna99d5fd02012-09-11 14:51:20 -07001623 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001624} tSirSmeDisassocInd, *tpSirSmeDisassocInd;
1625
1626/// Definition for Disassociation confirm
1627/// MAC --->
1628typedef struct sSirSmeDisassocCnf
1629{
1630 tANI_U16 messageType; // eWNI_SME_DISASSOC_CNF
1631 tANI_U16 length;
1632 tSirResultCodes statusCode;
1633 tSirMacAddr bssId;
1634 tSirMacAddr peerMacAddr;
Wu Gao742b7352015-10-16 19:10:40 +08001635 tANI_U16 assocId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001636} tSirSmeDisassocCnf, *tpSirSmeDisassocCnf;
1637
1638/// Definition for Deauthetication request
1639typedef struct sSirSmeDeauthReq
1640{
1641 tANI_U16 messageType; // eWNI_SME_DEAUTH_REQ
1642 tANI_U16 length;
1643 tANI_U8 sessionId; // Session ID
1644 tANI_U16 transactionId; // Transaction ID for cmd
1645 tSirMacAddr bssId; // AP BSSID
1646 tSirMacAddr peerMacAddr;
1647 tANI_U16 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001648} tSirSmeDeauthReq, *tpSirSmeDeauthReq;
1649
1650/// Definition for Deauthetication response
1651typedef struct sSirSmeDeauthRsp
1652{
1653 tANI_U16 messageType; // eWNI_SME_DEAUTH_RSP
1654 tANI_U16 length;
1655 tANI_U8 sessionId; // Session ID
1656 tANI_U16 transactionId; // Transaction ID for cmd
1657 tSirResultCodes statusCode;
1658 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001659} tSirSmeDeauthRsp, *tpSirSmeDeauthRsp;
1660
1661/// Definition for Deauthetication indication from peer
1662typedef struct sSirSmeDeauthInd
1663{
1664 tANI_U16 messageType; // eWNI_SME_DEAUTH_IND
1665 tANI_U16 length;
1666 tANI_U8 sessionId; //Added for BT-AMP
1667 tANI_U16 transactionId; //Added for BT-AMP
1668 tSirResultCodes statusCode;
1669 tSirMacAddr bssId;// AP BSSID
1670 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001671
Jeff Johnson295189b2012-06-20 16:38:30 -07001672 tANI_U16 staId;
Wu Gao742b7352015-10-16 19:10:40 +08001673 tANI_U16 assocId;
Mohit Khanna99d5fd02012-09-11 14:51:20 -07001674 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001675} tSirSmeDeauthInd, *tpSirSmeDeauthInd;
1676
1677/// Definition for Deauthentication confirm
1678/// MAC --->
1679typedef struct sSirSmeDeauthCnf
1680{
1681 tANI_U16 messageType; // eWNI_SME_DEAUTH_CNF
1682 tANI_U16 length;
1683 tSirResultCodes statusCode;
1684 tSirMacAddr bssId; // AP BSSID
1685 tSirMacAddr peerMacAddr;
Wu Gao742b7352015-10-16 19:10:40 +08001686 tANI_U16 assocId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001687} tSirSmeDeauthCnf, *tpSirSmeDeauthCnf;
1688
Hanumantha Reddy Pothula1b6eb2f2015-11-30 20:50:23 +05301689typedef struct sSirSmeDisConDoneInd
1690{
1691 tANI_U16 messageType;
1692 tANI_U16 length;
1693 tANI_U8 sessionId;
1694 tSirResultCodes reasonCode;
1695 tSirMacAddr peerMacAddr;
1696}tSirSmeDisConDoneInd, *tpSirSmeDisConDoneInd;
1697
Jeff Johnson295189b2012-06-20 16:38:30 -07001698/// Definition for stop BSS request message
1699typedef struct sSirSmeStopBssReq
1700{
1701 tANI_U16 messageType; // eWNI_SME_STOP_BSS_REQ
1702 tANI_U16 length;
1703 tANI_U8 sessionId; //Session ID
1704 tANI_U16 transactionId; //tranSaction ID for cmd
1705 tSirResultCodes reasonCode;
1706 tSirMacAddr bssId; //Self BSSID
1707} tSirSmeStopBssReq, *tpSirSmeStopBssReq;
1708
1709/// Definition for stop BSS response message
1710typedef struct sSirSmeStopBssRsp
1711{
1712 tANI_U16 messageType; // eWNI_SME_STOP_BSS_RSP
1713 tANI_U16 length;
1714 tSirResultCodes statusCode;
1715 tANI_U8 sessionId; // Session ID
1716 tANI_U16 transactionId; // Transaction ID for cmd
1717} tSirSmeStopBssRsp, *tpSirSmeStopBssRsp;
1718
Jeff Johnson295189b2012-06-20 16:38:30 -07001719
1720
1721/// Definition for Channel Switch indication for station
1722/// MAC --->
1723typedef struct sSirSmeSwitchChannelInd
1724{
1725 tANI_U16 messageType; // eWNI_SME_SWITCH_CHL_REQ
1726 tANI_U16 length;
1727 tANI_U8 sessionId;
1728 tANI_U16 newChannelId;
1729 tSirMacAddr bssId; // BSSID
1730} tSirSmeSwitchChannelInd, *tpSirSmeSwitchChannelInd;
1731
1732/// Definition for ULA complete indication message
1733typedef struct sirUlaCompleteInd
1734{
1735 tANI_U16 messageType; // eWNI_ULA_COMPLETE_IND
1736 tANI_U16 length;
1737 tSirResultCodes statusCode;
1738 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001739} tSirUlaCompleteInd, *tpSirUlaCompleteInd;
1740
1741/// Definition for ULA complete confirmation message
1742typedef struct sirUlaCompleteCnf
1743{
1744 tANI_U16 messageType; // eWNI_ULA_COMPLETE_CNF
1745 tANI_U16 length;
1746 tSirResultCodes statusCode;
1747 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001748} tSirUlaCompleteCnf, *tpSirUlaCompleteCnf;
1749
1750/// Definition for Neighbor BSS indication
1751/// MAC --->
1752/// MAC reports this each time a new I/BSS is detected
1753typedef struct sSirSmeNeighborBssInd
1754{
1755 tANI_U16 messageType; // eWNI_SME_NEIGHBOR_BSS_IND
1756 tANI_U16 length;
1757 tANI_U8 sessionId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001758 tSirBssDescription bssDescription[1];
Jeff Johnson295189b2012-06-20 16:38:30 -07001759} tSirSmeNeighborBssInd, *tpSirSmeNeighborBssInd;
1760
1761/// Definition for MIC failure indication
1762/// MAC --->
1763/// MAC reports this each time a MIC failure occures on Rx TKIP packet
1764typedef struct sSirSmeMicFailureInd
1765{
1766 tANI_U16 messageType; // eWNI_SME_MIC_FAILURE_IND
1767 tANI_U16 length;
1768 tANI_U8 sessionId;
1769 tSirMacAddr bssId; // BSSID
1770 tSirMicFailureInfo info;
1771} tSirSmeMicFailureInd, *tpSirSmeMicFailureInd;
1772
Sachin Ahuja3d47fcd2015-08-28 16:02:06 +05301773typedef struct sSirSmeLostLinkParamsInd
1774{
1775 tANI_U16 messageType;
1776 tANI_U16 length;
1777 tANI_U8 sessionId;
1778 tSirLostLinkParamsInfo info;
1779} tSirSmeLostLinkParamsInd, *tpSirSmeLostLinkParamsInd;
1780
1781
Leela Venkata Kiran Kumar Reddy Chirala3ca17902013-02-27 19:50:05 -08001782typedef struct sSirSmeMissedBeaconInd
1783{
1784 tANI_U16 messageType; // eWNI_SME_MISSED_BEACON_IND
1785 tANI_U16 length;
1786 tANI_U8 bssIdx;
1787} tSirSmeMissedBeaconInd, *tpSirSmeMissedBeaconInd;
Jeff Johnson295189b2012-06-20 16:38:30 -07001788
1789/// Definition for Set Context request
1790/// ---> MAC
1791typedef struct sSirSmeSetContextReq
1792{
1793 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_REQ
1794 tANI_U16 length;
1795 tANI_U8 sessionId; //Session ID
1796 tANI_U16 transactionId; //Transaction ID for cmd
1797 tSirMacAddr peerMacAddr;
1798 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07001799 // TBD Following QOS fields to be uncommented
1800 //tAniBool qosInfoPresent;
1801 //tSirQos qos;
1802 tSirKeyMaterial keyMaterial;
1803} tSirSmeSetContextReq, *tpSirSmeSetContextReq;
1804
1805/// Definition for Set Context response
1806/// MAC --->
1807typedef struct sSirSmeSetContextRsp
1808{
1809 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_RSP
1810 tANI_U16 length;
1811 tANI_U8 sessionId; // Session ID
1812 tANI_U16 transactionId; // Transaction ID for cmd
1813 tSirResultCodes statusCode;
1814 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001815} tSirSmeSetContextRsp, *tpSirSmeSetContextRsp;
1816
1817/// Definition for Remove Key Context request
1818/// ---> MAC
1819typedef struct sSirSmeRemoveKeyReq
1820{
1821 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_REQ
1822 tANI_U16 length;
1823 tANI_U8 sessionId; // Session ID
1824 tANI_U16 transactionId; // Transaction ID for cmd
1825 tSirMacAddr bssId; // BSSID
1826 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001827 tANI_U8 edType;
1828 tANI_U8 wepType;
1829 tANI_U8 keyId;
1830 tANI_BOOLEAN unicast;
1831} tSirSmeRemoveKeyReq, *tpSirSmeRemoveKeyReq;
1832
1833/// Definition for Remove Key Context response
1834/// MAC --->
1835typedef struct sSirSmeRemoveKeyRsp
1836{
1837 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_RSP
1838 tANI_U16 length;
1839 tANI_U8 sessionId; // Session ID
1840 tANI_U16 transactionId; // Transaction ID for cmd
1841 tSirResultCodes statusCode;
1842 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001843} tSirSmeRemoveKeyRsp, *tpSirSmeRemoveKeyRsp;
1844
1845/// Definition for Set Power request
1846/// ---> MAC
1847typedef struct sSirSmeSetPowerReq
1848{
1849 tANI_U16 messageType; // eWNI_SME_SET_POWER_REQ
1850 tANI_U16 length;
1851 tANI_U16 transactionId; // Transaction ID for cmd
1852 tANI_S8 powerLevel;
1853} tSirSmeSetPowerReq, *tpSirSmeSetPowerReq;
1854
1855/// Definition for Set Power response
1856/// MAC --->
1857typedef struct sSirSmeSetPowerRsp
1858{
1859 tANI_U16 messageType; // eWNI_SME_SET_POWER_RSP
1860 tANI_U16 length;
1861 tSirResultCodes statusCode;
1862 tANI_U16 transactionId; // Transaction ID for cmd
1863} tSirSmeSetPowerRsp, *tpSirSmeSetPowerRsp;
1864
Jeff Johnson295189b2012-06-20 16:38:30 -07001865
1866/// Definition for Link Test Start response
1867/// MAC --->
1868typedef struct sSirSmeLinkTestStartRsp
1869{
1870 tANI_U16 messageType; // eWNI_SME_LINK_TEST_START_RSP
1871 tANI_U16 length;
1872 tSirMacAddr peerMacAddr;
1873 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001874} tSirSmeLinkTestStartRsp, *tpSirSmeLinkTestStartRsp;
1875
1876/// Definition for Link Test Stop response
1877/// WSM ---> MAC
1878typedef struct sSirSmeLinkTestStopRsp
1879{
1880 tANI_U16 messageType; // eWNI_SME_LINK_TEST_STOP_RSP
1881 tANI_U16 length;
1882 tSirMacAddr peerMacAddr;
1883 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001884} tSirSmeLinkTestStopRsp, *tpSirSmeLinkTestStopRsp;
1885
1886/// Definition for kick starting DFS measurements
1887typedef struct sSirSmeDFSreq
1888{
1889 tANI_U16 messageType; // eWNI_SME_DFS_REQ
1890 tANI_U16 length;
1891 tANI_U16 transactionId; // Transaction ID for cmd
1892} tSirSmeDFSrequest, *tpSirSmeDFSrequest;
1893
1894/// Definition for response message to previously
1895/// issued DFS request
1896typedef struct sSirSmeDFSrsp
1897{
1898 tANI_U16 messageType; // eWNI_SME_DFS_RSP
1899 tANI_U16 length;
1900 tSirResultCodes statusCode;
1901 tANI_U16 transactionId; // Transaction ID for cmd
1902 tANI_U32 dfsReport[1];
1903} tSirSmeDFSrsp, *tpSirSmeDFSrsp;
1904
1905/// Statistic definitions
1906//=============================================================
1907// Per STA statistic structure; This same struct will be used for Aggregate
1908// STA stats as well.
1909
1910// Clear radio stats and clear per sta stats
1911typedef enum
1912{
1913 eANI_CLEAR_ALL_STATS, // Clears all stats
1914 eANI_CLEAR_RX_STATS, // Clears RX statistics of the radio interface
1915 eANI_CLEAR_TX_STATS, // Clears TX statistics of the radio interface
1916 eANI_CLEAR_RADIO_STATS, // Clears all the radio stats
1917 eANI_CLEAR_PER_STA_STATS, // Clears Per STA stats
1918 eANI_CLEAR_AGGR_PER_STA_STATS, // Clears aggregate stats
1919
1920 // Used to distinguish between per sta to security stats.
1921 // Used only by AP, FW just returns the same parameter as it received.
1922 eANI_LINK_STATS, // Get Per STA stats
1923 eANI_SECURITY_STATS, // Get Per STA security stats
1924
1925 eANI_CLEAR_STAT_TYPES_END
1926} tAniStatSubTypes;
1927
1928typedef struct sAniTxCtrs
1929{
1930 // add the rate counters here
1931 tANI_U32 tx1Mbps;
1932 tANI_U32 tx2Mbps;
1933 tANI_U32 tx5_5Mbps;
1934 tANI_U32 tx6Mbps;
1935 tANI_U32 tx9Mbps;
1936 tANI_U32 tx11Mbps;
1937 tANI_U32 tx12Mbps;
1938 tANI_U32 tx18Mbps;
1939 tANI_U32 tx24Mbps;
1940 tANI_U32 tx36Mbps;
1941 tANI_U32 tx48Mbps;
1942 tANI_U32 tx54Mbps;
1943 tANI_U32 tx72Mbps;
1944 tANI_U32 tx96Mbps;
1945 tANI_U32 tx108Mbps;
1946
1947 // tx path radio counts
1948 tANI_U32 txFragHi;
1949 tANI_U32 txFragLo;
1950 tANI_U32 txFrameHi;
1951 tANI_U32 txFrameLo;
1952 tANI_U32 txMulticastFrameHi;
1953 tANI_U32 txMulticastFrameLo;
1954 tANI_U32 txFailedHi;
1955 tANI_U32 txFailedLo;
1956 tANI_U32 multipleRetryHi;
1957 tANI_U32 multipleRetryLo;
1958 tANI_U32 singleRetryHi;
1959 tANI_U32 singleRetryLo;
1960 tANI_U32 ackFailureHi;
1961 tANI_U32 ackFailureLo;
1962 tANI_U32 xmitBeacons;
1963
1964 // titan 3c stats
1965 tANI_U32 txCbEscPktCntHi; // Total Number of Channel Bonded/Escort Packet Transmitted
1966 tANI_U32 txCbEscPktCntLo;
1967 tANI_U32 txChunksCntHi; // Total Number of Chunks Transmitted
1968 tANI_U32 txChunksCntLo;
1969 tANI_U32 txCompPktCntHi; // Total Number of Compresssed Packet Transmitted
1970 tANI_U32 txCompPktCntLo;
1971 tANI_U32 tx50PerCompPktCntHi; // Total Number of Packets with 50% or more compression
1972 tANI_U32 tx50PerCompPktCntLo;
1973 tANI_U32 txExpanPktCntHi; // Total Number of Packets Transmitted that got expanded
1974 tANI_U32 txExpanPktCntLo;
1975} tAniTxCtrs, *tpAniTxCtrs;
1976
1977typedef struct sAniRxCtrs
1978{
1979 // receive frame rate counters
1980 tANI_U32 rx1Mbps;
1981 tANI_U32 rx2Mbps;
1982 tANI_U32 rx5_5Mbps;
1983 tANI_U32 rx6Mbps;
1984 tANI_U32 rx9Mbps;
1985 tANI_U32 rx11Mbps;
1986 tANI_U32 rx12Mbps;
1987 tANI_U32 rx18Mbps;
1988 tANI_U32 rx24Mbps;
1989 tANI_U32 rx36Mbps;
1990 tANI_U32 rx48Mbps;
1991 tANI_U32 rx54Mbps;
1992 tANI_U32 rx72Mbps;
1993 tANI_U32 rx96Mbps;
1994 tANI_U32 rx108Mbps;
1995
1996 // receive size counters; 'Lte' = Less than or equal to
1997 tANI_U32 rxLte64;
1998 tANI_U32 rxLte128Gt64;
1999 tANI_U32 rxLte256Gt128;
2000 tANI_U32 rxLte512Gt256;
2001 tANI_U32 rxLte1kGt512;
2002 tANI_U32 rxLte1518Gt1k;
2003 tANI_U32 rxLte2kGt1518;
2004 tANI_U32 rxLte4kGt2k;
2005
2006 // rx radio stats
2007 tANI_U32 rxFrag;
2008 tANI_U32 rxFrame;
2009 tANI_U32 fcsError;
2010 tANI_U32 rxMulticast;
2011 tANI_U32 duplicate;
2012 tANI_U32 rtsSuccess;
2013 tANI_U32 rtsFailed;
2014 tANI_U32 wepUndecryptables;
2015 tANI_U32 drops;
2016 tANI_U32 aesFormatErrorUcastCnts;
2017 tANI_U32 aesReplaysUcast;
2018 tANI_U32 aesDecryptErrUcast;
2019
2020 // titan 3c stats
2021 tANI_U32 rxDecompPktCntHi; // Total Number of Packets that got decompressed
2022 tANI_U32 rxDecompPktCntLo;
2023 tANI_U32 rxCompPktCntHi; // Total Number of Packets received that were actually compressed
2024 tANI_U32 rxCompPktCntLo;
2025 tANI_U32 rxExpanPktCntHi; // Total Number of Packets received that got expanded
2026 tANI_U32 rxExpanPktCntLo;
2027} tAniRxCtrs, *tpAniRxCtrs;
2028
2029// Radio stats
2030typedef struct sAniRadioStats
2031{
2032 tAniTxCtrs tx;
2033 tAniRxCtrs rx;
2034} tAniRadioStats, *tpAniRadioStats;
2035
2036// Get Radio Stats request structure
2037// This structure shall be used for both Radio stats and Aggregate stats
2038// A valid request must contain entire structure with/without valid fields.
2039// Based on the request type, the valid fields will be checked.
2040typedef struct sAniGetStatsReq
2041{
2042 // Common for all types are requests
2043 tANI_U16 msgType; // message type is same as the request type
2044 tANI_U16 msgLen; // length of the entire request
2045 tANI_U8 sessionId; //Session ID
2046 tANI_U16 transactionId;
2047 tSirMacAddr bssId; //BSSID
2048 // only used for clear stats and per sta stats clear
2049 tAniStatSubTypes stat; // Clears the stats of the described types.
2050 tANI_U32 staId; // Per STA stats request must contain valid
2051 // values
2052 tANI_U8 macAddr[6];
2053} tAniGetStatsReq, *tpAniGetStatsReq;
2054
2055// Get Radio Stats response struct
2056typedef struct sAniGetRadioStatsRsp
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 tAniRadioStats radio;
2063} tAniGetRadioStatsRsp, *tpAniGetRadioStatsRsp;
2064
2065// Per Sta stats response struct
2066typedef struct sAniGetPerStaStatsRsp
2067{
2068 tANI_U16 type; // message type is same as the request type
2069 tANI_U16 msgLen; // length of the entire request
2070 tANI_U32 rc;
2071 tANI_U16 transactionId;
2072 tAniStatSubTypes stat; // Sub type needed by AP. Returns the same value
2073 tAniStaStatStruct sta;
2074 tANI_U32 staId;
2075 tANI_U8 macAddr[6];
2076} tAniGetPerStaStatsRsp, *tpAniGetPerStaStatsRsp;
2077
2078// Get Aggregate stats
2079typedef struct sAniGetAggrStaStatsRsp
2080{
2081 tANI_U16 type; // message type is same as the request type
2082 tANI_U16 msgLen; // length of the entire request
2083 tANI_U32 rc;
2084 tANI_U16 transactionId;
2085 tAniStaStatStruct sta;
2086} tAniGetAggrStaStatsRsp, *tpAniGetAggrStaStatsRsp;
2087
2088// Clear stats request and response structure. 'rc' field is unused in
2089// request and this field is used in response field.
2090typedef struct sAniClearStatsRsp
2091{
2092 tANI_U16 type; // message type is same as the request type
2093 tANI_U16 msgLen; // length of the entire request
2094 tANI_U32 rc; // return code - will be filled by FW on
2095 // response.
2096 // Same transaction ID will be returned by the FW
2097 tANI_U16 transactionId;
2098 tAniStatSubTypes stat; // Clears the stats of the described types.
2099 tANI_U32 staId; // Applicable only to PER STA stats clearing
2100 tANI_U8 macAddr[6]; // Applicable only to PER STA stats clearing
2101} tAniClearStatsRsp, *tpAniClearStatsRsp;
2102
2103typedef struct sAniGetGlobalStatsRsp
2104{
2105 tANI_U16 type; // message type is same as the request type
2106 tANI_U16 msgLen; // length of the entire request
2107 tANI_U32 rc;
2108 tANI_U16 transactionId;
2109 tAniGlobalStatStruct global;
2110} tAniGetGlobalStatsRsp, *tpAniGetGlobalStatsRsp;
2111
2112typedef struct sAniGetStatSummaryRsp
2113{
2114 tANI_U16 type; // message type is same as the request type
2115 tANI_U16 msgLen; // length of the entire request --Why?
2116 tANI_U32 rc;
2117 tANI_U16 transactionId;
2118 tAniStatSummaryStruct stat;
2119} tAniGetStatSummaryRsp, *tpAniGetStatSummaryRsp;
2120
2121//***************************************************************
2122
2123
2124/*******************PE Statistics*************************/
2125typedef enum
2126{
2127 PE_SUMMARY_STATS_INFO = 0x00000001,
2128 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
2129 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
2130 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
2131 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +05302132 PE_PER_STA_STATS_INFO = 0x00000020,
2133 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -07002134}ePEStatsMask;
2135
2136/*
2137 * tpAniGetPEStatsReq is tied to
2138 * for SME ==> PE eWNI_SME_GET_STATISTICS_REQ msgId and
2139 * for PE ==> HAL SIR_HAL_GET_STATISTICS_REQ msgId
2140 */
2141typedef struct sAniGetPEStatsReq
2142{
2143 // Common for all types are requests
2144 tANI_U16 msgType; // message type is same as the request type
2145 tANI_U16 msgLen; // length of the entire request
2146 tANI_U32 staId; // Per STA stats request must contain valid
2147 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2148} tAniGetPEStatsReq, *tpAniGetPEStatsReq;
2149
2150/*
2151 * tpAniGetPEStatsRsp is tied to
2152 * for PE ==> SME eWNI_SME_GET_STATISTICS_RSP msgId and
2153 * for HAL ==> PE SIR_HAL_GET_STATISTICS_RSP msgId
2154 */
2155typedef struct sAniGetPEStatsRsp
2156{
2157 // Common for all types are responses
2158 tANI_U16 msgType; // message type is same as the request type
2159 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2160 tANI_U8 sessionId;
2161 tANI_U32 rc; //success/failure
2162 tANI_U32 staId; // Per STA stats request must contain valid
2163 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2164/**********************************************************************************************
2165 //void *pStatsBuf;
2166 The Stats buffer starts here and can be an aggregate of more than one statistics
2167 structure depending on statsMask.The void pointer "pStatsBuf" is commented out
2168 intentionally and the src code that uses this structure should take that into account.
2169**********************************************************************************************/
2170} tAniGetPEStatsRsp, *tpAniGetPEStatsRsp;
2171
2172typedef struct sAniGetRssiReq
2173{
2174 // Common for all types are requests
2175 tANI_U16 msgType; // message type is same as the request type
2176 tANI_U16 msgLen; // length of the entire request
2177 tANI_U8 sessionId;
2178 tANI_U8 staId;
2179 void *rssiCallback;
2180 void *pDevContext; //device context
2181 void *pVosContext; //voss context
2182
2183} tAniGetRssiReq, *tpAniGetRssiReq;
2184
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05302185typedef struct sAniGetSnrReq
2186{
2187 // Common for all types are requests
2188 tANI_U16 msgType; // message type is same as the request type
2189 tANI_U16 msgLen; // length of the entire request
2190 tANI_U8 sessionId;
2191 tANI_U8 staId;
2192 void *snrCallback;
2193 void *pDevContext; //device context
2194} tAniGetSnrReq, *tpAniGetSnrReq;
2195
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002196#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08002197typedef struct sAniGetRoamRssiRsp
2198{
2199 // Common for all types are responses
2200 tANI_U16 msgType; // message type is same as the request type
2201 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2202 tANI_U8 sessionId;
2203 tANI_U32 rc; //success/failure
2204 tANI_U32 staId; // Per STA stats request must contain valid
2205 tANI_S8 rssi;
2206 void *rssiReq; //rssi request backup
2207
2208} tAniGetRoamRssiRsp, *tpAniGetRoamRssiRsp;
2209
2210#endif
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002211
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002212#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002213
2214typedef struct sSirTsmIE
2215{
2216 tANI_U8 tsid;
2217 tANI_U8 state;
2218 tANI_U16 msmt_interval;
2219} tSirTsmIE, *tpSirTsmIE;
2220
2221typedef struct sSirSmeTsmIEInd
2222{
2223 tSirTsmIE tsmIe;
2224 tANI_U8 sessionId;
2225} tSirSmeTsmIEInd, *tpSirSmeTsmIEInd;
2226
2227
2228typedef struct sAniTrafStrmMetrics
2229{
2230 tANI_U16 UplinkPktQueueDly;
2231 tANI_U16 UplinkPktQueueDlyHist[4];
2232 tANI_U32 UplinkPktTxDly;
2233 tANI_U16 UplinkPktLoss;
2234 tANI_U16 UplinkPktCount;
2235 tANI_U8 RoamingCount;
2236 tANI_U16 RoamingDly;
2237} tAniTrafStrmMetrics, *tpAniTrafStrmMetrics;
2238
2239typedef struct sAniGetTsmStatsReq
2240{
2241 // Common for all types are requests
2242 tANI_U16 msgType; // message type is same as the request type
2243 tANI_U16 msgLen; // length of the entire request
2244 tANI_U8 staId;
2245 tANI_U8 tid; // traffic id
2246 tSirMacAddr bssId;
2247 void *tsmStatsCallback;
2248 void *pDevContext; //device context
2249 void *pVosContext; //voss context
2250} tAniGetTsmStatsReq, *tpAniGetTsmStatsReq;
2251
2252typedef struct sAniGetTsmStatsRsp
2253{
2254 // Common for all types are responses
2255 tANI_U16 msgType; // message type is same as the request type
2256 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2257 tANI_U8 sessionId;
2258 tANI_U32 rc; //success/failure
2259 tANI_U32 staId; // Per STA stats request must contain valid
2260 tAniTrafStrmMetrics tsmMetrics;
2261 void *tsmStatsReq; //tsm stats request backup
2262} tAniGetTsmStatsRsp, *tpAniGetTsmStatsRsp;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002263
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002264typedef struct sSirEseBcnReportBssInfo
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002265{
2266 tBcnReportFields bcnReportFields;
2267 tANI_U8 ieLen;
2268 tANI_U8 *pBuf;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002269} tSirEseBcnReportBssInfo, *tpSirEseBcnReportBssInfo;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002270
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002271typedef struct sSirEseBcnReportRsp
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002272{
2273 tANI_U16 measurementToken;
2274 tANI_U8 flag; /* Flag to report measurement done and more data */
2275 tANI_U8 numBss;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002276 tSirEseBcnReportBssInfo bcnRepBssInfo[SIR_BCN_REPORT_MAX_BSS_DESC];
2277} tSirEseBcnReportRsp, *tpSirEseBcnReportRsp;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002278
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002279#endif /* FEATURE_WLAN_ESE || FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002280
Jeff Johnson295189b2012-06-20 16:38:30 -07002281/* Change country code request MSG structure */
2282typedef struct sAniChangeCountryCodeReq
2283{
2284 // Common for all types are requests
2285 tANI_U16 msgType; // message type is same as the request type
2286 tANI_U16 msgLen; // length of the entire request
2287 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //3 char country code
Gopichand Nakkalaacd94112013-05-29 21:37:47 +05302288 tAniBool countryFromUserSpace;
Abhishek Singha306a442013-11-07 18:39:01 +05302289 tAniBool sendRegHint; //TRUE if we want to send hint to NL80211
Jeff Johnson295189b2012-06-20 16:38:30 -07002290 void *changeCCCallback;
2291 void *pDevContext; //device context
2292 void *pVosContext; //voss context
Amar Singhal0d15bd52013-10-12 23:13:13 -07002293
Jeff Johnson295189b2012-06-20 16:38:30 -07002294} tAniChangeCountryCodeReq, *tpAniChangeCountryCodeReq;
2295
Amar Singhal0d15bd52013-10-12 23:13:13 -07002296/* generic country code change request MSG structure */
2297typedef struct sAniGenericChangeCountryCodeReq
2298{
2299 // Common for all types are requests
2300 tANI_U16 msgType; // message type is same as the request type
2301 tANI_U16 msgLen; // length of the entire request
2302 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //3 char country code
2303 tANI_U16 domain_index;
Amar Singhal0d15bd52013-10-12 23:13:13 -07002304} tAniGenericChangeCountryCodeReq, *tpAniGenericChangeCountryCodeReq;
2305
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05302306typedef struct sAniDHCPStopInd
2307{
2308 tANI_U16 msgType; // message type is same as the request type
2309 tANI_U16 msgLen; // length of the entire request
2310 tANI_U8 device_mode; // Mode of the device(ex:STA, AP)
2311 tSirMacAddr macAddr;
2312
2313} tAniDHCPInd, *tpAniDHCPInd;
2314
Abhishek Singh00b71972016-01-07 10:51:04 +05302315#ifdef WLAN_FEATURE_RMC
2316typedef struct sAniTXFailMonitorInd
2317{
2318 tANI_U16 msgType; // message type is same as the request type
2319 tANI_U16 msgLen; // length of the entire request
2320 tANI_U8 tx_fail_count;
2321 void *txFailIndCallback;
2322} tAniTXFailMonitorInd, *tpAniTXFailMonitorInd;
2323#endif /* WLAN_FEATURE_RMC */
2324
Jeff Johnson295189b2012-06-20 16:38:30 -07002325typedef struct sAniSummaryStatsInfo
2326{
2327 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2328 tANI_U32 multiple_retry_cnt[4];//The number of MSDU packets and MMPDU frames per AC that the 802.11
2329 // station successfully transmitted after more than one retransmission attempt
2330
2331 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2332 //(with and without retries, including multi-cast, broadcast)
2333 //tANI_U32 tx_fail_cnt;
2334 //tANI_U32 num_rx_frm_crc_err; //Total number of received frames with CRC Error
2335 //tANI_U32 num_rx_frm_crc_ok; //Total number of successfully received frames with out CRC Error
2336 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2337 //(after appropriate filter rules including multi-cast, broadcast)
2338 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2339 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2340 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2341 tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
2342 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2343 tANI_U32 rx_discard_cnt; //The sum of the receive error count and dropped-receive-buffer error count.
2344 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2345 tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
2346 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2347 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
2348 //to provide this.
2349#if 0
2350 //providing the following stats, in case of wrap around for tx_byte_cnt
2351 tANI_U32 tx_unicast_lower_byte_cnt;
2352 tANI_U32 tx_unicast_upper_byte_cnt;
2353 tANI_U32 tx_multicast_lower_byte_cnt;
2354 tANI_U32 tx_multicast_upper_byte_cnt;
2355 tANI_U32 tx_broadcast_lower_byte_cnt;
2356 tANI_U32 tx_broadcast_upper_byte_cnt;
2357#endif
2358
2359}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2360
2361typedef enum eTxRateInfo
2362{
2363 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2364 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2365 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2366 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Leo Chang6f8870f2013-03-26 18:11:36 -07002367 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2368 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2369 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 40 rates */
2370 eHAL_TX_RATE_VHT80 = 0x80 /* VHT 80 rates */
Jeff Johnson295189b2012-06-20 16:38:30 -07002371} tTxrateinfoflags;
2372
2373typedef struct sAniGlobalClassAStatsInfo
2374{
2375 tANI_U32 rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2376 //or MMPDU frames
2377 tANI_U32 promiscuous_rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2378 //or MMPDU frames when a promiscuous packet filter was enabled
2379 //tANI_U32 rx_fcs_err; //The number of MPDU frames that the 802.11 station received with FCS errors
2380 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2381 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
2382 //to a supported rate and the order shall be the same as the supporteRates parameter.
2383 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2384 //for eg: if it is 10.5dBm, the value would be 105
2385 //tANI_U32 default_pwr; //The nominal transmit level used after normal power on sequence
2386 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2387 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
2388 tANI_U32 tx_rate; //Legacy transmit rate, in units of
2389 //500 kbit/sec, for the most
2390 //recently transmitted frame
2391 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
2392 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2393 //HT40 rates; short and long guard interval
2394
2395}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2396
2397
2398typedef struct sAniGlobalSecurityStats
2399{
2400 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2401 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
2402 //is enabled
2403 tANI_U32 rx_mic_fail_cnt; //The number of received MSDU packets that that the 802.11 station discarded
2404 //because of MIC failures
2405 tANI_U32 tkip_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2406 //because of a TKIP ICV error
2407 tANI_U32 aes_ccmp_format_err; //The number of received MPDU frames that the 802.11 discarded because of an
2408 //invalid AES-CCMP format
2409 tANI_U32 aes_ccmp_replay_cnt; //The number of received MPDU frames that the 802.11 station discarded because of
2410 //the AES-CCMP replay protection procedure
2411 tANI_U32 aes_ccmp_decrpt_err; //The number of received MPDU frames that the 802.11 station discarded because of
2412 //errors detected by the AES-CCMP decryption algorithm
2413 tANI_U32 wep_undecryptable_cnt; //The number of encrypted MPDU frames received for which a WEP decryption key was
2414 //not available on the 802.11 station
2415 tANI_U32 wep_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2416 //because of a WEP ICV error
2417 tANI_U32 rx_decrypt_succ_cnt; //The number of received encrypted packets that the 802.11 station successfully
2418 //decrypted
2419 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2420
2421}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
2422
2423typedef struct sAniGlobalClassBStatsInfo
2424{
2425 tAniGlobalSecurityStats ucStats;
2426 tAniGlobalSecurityStats mcbcStats;
2427}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2428
2429typedef struct sAniGlobalClassCStatsInfo
2430{
2431 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2432 //MAC address in the address 1 field or an A-MSDU frame with a group address in the
2433 //address 1 field
2434 tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
2435 tANI_U32 tx_20_frm_cnt; //This counter shall be incremented when a Frame is transmitted only on the
2436 //primary channel
2437 tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
2438 tANI_U32 rx_mpdu_in_ampdu_cnt; //This counter shall be incremented by the number of MPDUs received in the A-MPDU
2439 //when an A-MPDU is received
2440 tANI_U32 ampdu_delimiter_crc_err;//This counter shall be incremented when an MPDU delimiter has a CRC error when this
2441 //is the first CRC error in the received AMPDU or when the previous delimiter has been
2442 //decoded correctly
2443
2444}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2445
2446typedef struct sAniPerStaStatsInfo
2447{
2448 tANI_U32 tx_frag_cnt[4]; //The number of MPDU frames that the 802.11 station transmitted and acknowledged
2449 //through a received 802.11 ACK frame
2450 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2451 tANI_U32 tx_mpdu_in_ampdu_cnt; //This counter shall increment by the number of MPDUs in the AMPDU when an A-MPDU
2452 //is transmitted
2453
2454}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2455
Sushant Kaushik33200572015-08-05 16:46:20 +05302456typedef struct sAniPerTxPktStatsInfo
2457{
2458 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05302459 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05302460}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
2461
2462
Jeff Johnson295189b2012-06-20 16:38:30 -07002463/**********************PE Statistics end*************************/
2464
2465
2466
2467typedef struct sSirRSSIThresholds
2468{
2469#ifdef ANI_BIG_BYTE_ENDIAN
2470 tANI_S8 ucRssiThreshold1 : 8;
2471 tANI_S8 ucRssiThreshold2 : 8;
2472 tANI_S8 ucRssiThreshold3 : 8;
2473 tANI_U8 bRssiThres1PosNotify : 1;
2474 tANI_U8 bRssiThres1NegNotify : 1;
2475 tANI_U8 bRssiThres2PosNotify : 1;
2476 tANI_U8 bRssiThres2NegNotify : 1;
2477 tANI_U8 bRssiThres3PosNotify : 1;
2478 tANI_U8 bRssiThres3NegNotify : 1;
2479 tANI_U8 bReserved10 : 2;
2480#else
2481 tANI_U8 bReserved10 : 2;
2482 tANI_U8 bRssiThres3NegNotify : 1;
2483 tANI_U8 bRssiThres3PosNotify : 1;
2484 tANI_U8 bRssiThres2NegNotify : 1;
2485 tANI_U8 bRssiThres2PosNotify : 1;
2486 tANI_U8 bRssiThres1NegNotify : 1;
2487 tANI_U8 bRssiThres1PosNotify : 1;
2488 tANI_S8 ucRssiThreshold3 : 8;
2489 tANI_S8 ucRssiThreshold2 : 8;
2490 tANI_S8 ucRssiThreshold1 : 8;
2491#endif
2492
2493}tSirRSSIThresholds, *tpSirRSSIThresholds;
2494
2495typedef struct sSirRSSINotification
2496{
2497#ifdef ANI_BIG_BYTE_ENDIAN
2498 tANI_U32 bRssiThres1PosCross : 1;
2499 tANI_U32 bRssiThres1NegCross : 1;
2500 tANI_U32 bRssiThres2PosCross : 1;
2501 tANI_U32 bRssiThres2NegCross : 1;
2502 tANI_U32 bRssiThres3PosCross : 1;
2503 tANI_U32 bRssiThres3NegCross : 1;
Srinivasdaaec712012-12-12 15:59:44 -08002504 v_S7_t avgRssi : 8;
2505 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07002506#else
Srinivasdaaec712012-12-12 15:59:44 -08002507 tANI_U32 bReserved : 18;
2508 v_S7_t avgRssi : 8;
Jeff Johnson295189b2012-06-20 16:38:30 -07002509 tANI_U32 bRssiThres3NegCross : 1;
2510 tANI_U32 bRssiThres3PosCross : 1;
2511 tANI_U32 bRssiThres2NegCross : 1;
2512 tANI_U32 bRssiThres2PosCross : 1;
2513 tANI_U32 bRssiThres1NegCross : 1;
2514 tANI_U32 bRssiThres1PosCross : 1;
2515#endif
2516
2517}tSirRSSINotification, *tpSirRSSINotification;
2518
Viral Modid86bde22012-12-10 13:09:21 -08002519
2520typedef struct sSirP2PNoaStart
2521{
2522 tANI_U32 status;
2523 tANI_U32 bssIdx;
2524} tSirP2PNoaStart, *tpSirP2PNoaStart;
2525
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05302526typedef struct sSirTdlsInd
2527{
2528 tANI_U16 status;
2529 tANI_U16 assocId;
2530 tANI_U16 staIdx;
2531 tANI_U16 reasonCode;
2532} tSirTdlsInd, *tpSirTdlsInd;
2533
Jeff Johnson295189b2012-06-20 16:38:30 -07002534typedef struct sSirP2PNoaAttr
2535{
2536#ifdef ANI_BIG_BYTE_ENDIAN
2537 tANI_U32 index :8;
2538 tANI_U32 oppPsFlag :1;
2539 tANI_U32 ctWin :7;
2540 tANI_U32 rsvd1: 16;
2541#else
2542 tANI_U32 rsvd1: 16;
2543 tANI_U32 ctWin :7;
2544 tANI_U32 oppPsFlag :1;
2545 tANI_U32 index :8;
2546#endif
2547
2548#ifdef ANI_BIG_BYTE_ENDIAN
2549 tANI_U32 uNoa1IntervalCnt:8;
2550 tANI_U32 rsvd2:24;
2551#else
2552 tANI_U32 rsvd2:24;
2553 tANI_U32 uNoa1IntervalCnt:8;
2554#endif
2555 tANI_U32 uNoa1Duration;
2556 tANI_U32 uNoa1Interval;
2557 tANI_U32 uNoa1StartTime;
2558
2559#ifdef ANI_BIG_BYTE_ENDIAN
2560 tANI_U32 uNoa2IntervalCnt:8;
2561 tANI_U32 rsvd3:24;
2562#else
2563 tANI_U32 rsvd3:24;
2564 tANI_U32 uNoa2IntervalCnt:8;
2565#endif
2566 tANI_U32 uNoa2Duration;
2567 tANI_U32 uNoa2Interval;
2568 tANI_U32 uNoa2StartTime;
2569} tSirP2PNoaAttr, *tpSirP2PNoaAttr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002570
2571typedef __ani_attr_pre_packed struct sSirTclasInfo
2572{
2573 tSirMacTclasIE tclas;
2574 tANI_U8 version; // applies only for classifier type ip
2575 __ani_attr_pre_packed union {
2576 tSirMacTclasParamEthernet eth;
2577 tSirMacTclasParamIPv4 ipv4;
2578 tSirMacTclasParamIPv6 ipv6;
2579 tSirMacTclasParam8021dq t8021dq;
2580 }__ani_attr_packed tclasParams;
2581} __ani_attr_packed tSirTclasInfo;
2582
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002583
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002584#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002585#define TSRS_11AG_RATE_6MBPS 0xC
2586#define TSRS_11B_RATE_5_5MBPS 0xB
2587
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002588typedef struct sSirMacESETSRSIE
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002589{
2590 tANI_U8 tsid;
2591 tANI_U8 rates[8];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002592} tSirMacESETSRSIE;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002593
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002594typedef struct sSirMacESETSMIE
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002595{
2596 tANI_U8 tsid;
2597 tANI_U8 state;
2598 tANI_U16 msmt_interval;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002599} tSirMacESETSMIE;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002600
2601typedef struct sTSMStats
2602{
2603 tANI_U8 tid;
2604 tSirMacAddr bssId;
2605 tTrafStrmMetrics tsmMetrics;
2606} tTSMStats, *tpTSMStats;
2607
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002608typedef struct sEseTSMContext
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002609{
2610 tANI_U8 tid;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002611 tSirMacESETSMIE tsmInfo;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002612 tTrafStrmMetrics tsmMetrics;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002613} tEseTSMContext, *tpEseTSMContext;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002614
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002615typedef struct sEsePEContext
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002616{
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002617#if defined(FEATURE_WLAN_ESE) && !defined(FEATURE_WLAN_ESE_UPLOAD)
2618 tEseMeasReq curMeasReq;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002619#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002620 tEseTSMContext tsm;
2621} tEsePEContext, *tpEsePEContext;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002622
2623
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002624#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002625
2626
Jeff Johnson295189b2012-06-20 16:38:30 -07002627typedef struct sSirAddtsReqInfo
2628{
2629 tANI_U8 dialogToken;
2630 tSirMacTspecIE tspec;
2631
2632 tANI_U8 numTclas; // number of Tclas elements
2633 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2634 tANI_U8 tclasProc;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002635#if defined(FEATURE_WLAN_ESE)
2636 tSirMacESETSRSIE tsrsIE;
Jeff Johnson295189b2012-06-20 16:38:30 -07002637 tANI_U8 tsrsPresent:1;
2638#endif
2639 tANI_U8 wmeTspecPresent:1;
2640 tANI_U8 wsmTspecPresent:1;
2641 tANI_U8 lleTspecPresent:1;
2642 tANI_U8 tclasProcPresent:1;
2643} tSirAddtsReqInfo, *tpSirAddtsReqInfo;
2644
2645typedef struct sSirAddtsRspInfo
2646{
2647 tANI_U8 dialogToken;
2648 tSirMacStatusCodes status;
2649 tSirMacTsDelayIE delay;
2650
2651 tSirMacTspecIE tspec;
2652 tANI_U8 numTclas; // number of Tclas elements
2653 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2654 tANI_U8 tclasProc;
2655 tSirMacScheduleIE schedule;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002656#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
2657 tSirMacESETSMIE tsmIE;
Jeff Johnson295189b2012-06-20 16:38:30 -07002658 tANI_U8 tsmPresent:1;
2659#endif
2660 tANI_U8 wmeTspecPresent:1;
2661 tANI_U8 wsmTspecPresent:1;
2662 tANI_U8 lleTspecPresent:1;
2663 tANI_U8 tclasProcPresent:1;
2664 tANI_U8 schedulePresent:1;
2665} tSirAddtsRspInfo, *tpSirAddtsRspInfo;
2666
2667typedef struct sSirDeltsReqInfo
2668{
2669 tSirMacTSInfo tsinfo;
2670 tSirMacTspecIE tspec;
2671 tANI_U8 wmeTspecPresent:1;
2672 tANI_U8 wsmTspecPresent:1;
2673 tANI_U8 lleTspecPresent:1;
2674} tSirDeltsReqInfo, *tpSirDeltsReqInfo;
2675
2676/// Add a tspec as defined
2677typedef struct sSirAddtsReq
2678{
2679 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2680 tANI_U16 length;
2681 tANI_U8 sessionId; //Session ID
2682 tANI_U16 transactionId;
2683 tSirMacAddr bssId; //BSSID
2684 tANI_U32 timeout; // in ms
2685 tANI_U8 rspReqd;
2686 tSirAddtsReqInfo req;
2687} tSirAddtsReq, *tpSirAddtsReq;
2688
2689typedef struct sSirAddtsRsp
2690{
2691 tANI_U16 messageType; // eWNI_SME_ADDTS_RSP
2692 tANI_U16 length;
2693 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2694 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2695 tANI_U32 rc; // return code
2696 tSirAddtsRspInfo rsp;
2697} tSirAddtsRsp, *tpSirAddtsRsp;
2698
2699typedef struct sSirDeltsReq
2700{
2701 tANI_U16 messageType; // eWNI_SME_DELTS_REQ
2702 tANI_U16 length;
2703 tANI_U8 sessionId;//Session ID
2704 tANI_U16 transactionId;
2705 tSirMacAddr bssId; //BSSID
2706 tANI_U16 aid; // use 0 if macAddr is being specified
2707 tANI_U8 macAddr[6]; // only on AP to specify the STA
2708 tANI_U8 rspReqd;
2709 tSirDeltsReqInfo req;
2710} tSirDeltsReq, *tpSirDeltsReq;
2711
2712typedef struct sSirDeltsRsp
2713{
2714 tANI_U16 messageType; // eWNI_SME_DELTS_RSP
2715 tANI_U16 length;
2716 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2717 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2718 tANI_U32 rc;
2719 tANI_U16 aid; // use 0 if macAddr is being specified
2720 tANI_U8 macAddr[6]; // only on AP to specify the STA
2721 tSirDeltsReqInfo rsp;
2722} tSirDeltsRsp, *tpSirDeltsRsp;
2723
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002724#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07002725
2726#define SIR_QOS_NUM_TSPEC_MAX 2
2727#define SIR_QOS_NUM_AC_MAX 4
2728
2729typedef struct sSirAggrQosReqInfo
2730{
2731 tANI_U16 tspecIdx;
2732 tSirAddtsReqInfo aggrAddTsInfo[SIR_QOS_NUM_AC_MAX];
2733}tSirAggrQosReqInfo, *tpSirAggrQosReqInfo;
2734
2735typedef struct sSirAggrQosReq
2736{
2737 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2738 tANI_U16 length;
2739 tANI_U8 sessionId; //Session ID
2740 tANI_U16 transactionId;
2741 tSirMacAddr bssId; //BSSID
2742 tANI_U32 timeout; // in ms
2743 tANI_U8 rspReqd;
2744 tSirAggrQosReqInfo aggrInfo;
2745}tSirAggrQosReq, *tpSirAggrQosReq;
2746
2747typedef struct sSirAggrQosRspInfo
2748{
2749 tANI_U16 tspecIdx;
2750 tSirAddtsRspInfo aggrRsp[SIR_QOS_NUM_AC_MAX];
2751} tSirAggrQosRspInfo, *tpSirAggrQosRspInfo;
2752
2753typedef struct sSirAggrQosRsp
2754{
2755 tANI_U16 messageType;
2756 tANI_U16 length;
2757 tANI_U8 sessionId;
2758 tSirAggrQosRspInfo aggrInfo;
2759} tSirAggrQosRsp, *tpSirAggrQosRsp;
2760
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002761#endif/*WLAN_FEATURE_VOWIFI_11R || FEATURE_WLAN_ESE*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002762
2763typedef struct sSirSetTxPowerReq
2764{
schang86c22c42013-03-13 18:41:24 -07002765 tANI_U16 messageType;
2766 tANI_U16 length;
2767 tSirMacAddr bssId;
2768 tANI_U8 mwPower;
2769 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07002770} tSirSetTxPowerReq, *tpSirSetTxPowerReq;
2771
2772typedef struct sSirSetTxPowerRsp
2773{
2774 tANI_U16 messageType;
2775 tANI_U16 length;
2776 tANI_U32 status;
2777} tSirSetTxPowerRsp, *tpSirSetTxPowerRsp;
2778
2779typedef struct sSirGetTxPowerReq
2780{
2781 tANI_U16 messageType;
2782 tANI_U16 length;
2783 tANI_U16 staid;
2784} tSirGetTxPowerReq, *tpSirGetTxPowerReq;
2785
2786typedef struct sSirGetTxPowerRsp
2787{
2788 tANI_U16 messageType;
2789 tANI_U16 length; // length of the entire request
2790 tANI_U32 power; // units of milliwatts
2791 tANI_U32 status;
2792} tSirGetTxPowerRsp, *tpSirGetTxPowerRsp;
2793
2794
2795typedef tANI_U32 tSirMacNoise[3];
2796
2797typedef struct sSirGetNoiseRsp
2798{
2799 tANI_U16 messageType;
2800 tANI_U16 length;
2801 tSirMacNoise noise;
2802} tSirGetNoiseRsp, *tpSirGetNoiseRsp;
2803
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07002804typedef struct sSirQosMapSet
2805{
2806 tANI_U8 present;
2807 tANI_U8 num_dscp_exceptions;
2808 tANI_U8 dscp_exceptions[21][2];
Leela Venkata Kiran Kumar Reddy Chiralafddf3552014-06-11 17:16:30 -07002809 tANI_U8 dscp_range[8][2];
Leela Venkata Kiran Kumar Reddy Chirala8e69fbc2013-10-30 18:51:13 -07002810} tSirQosMapSet, *tpSirQosMapSet;
Jeff Johnson295189b2012-06-20 16:38:30 -07002811
2812//
2813// PMC --> PE --> HAL
2814// Power save configuration parameters
2815//
2816typedef struct sSirPowerSaveCfg
2817{
2818 tANI_U16 listenInterval;
2819
2820 /* Number of consecutive missed beacons before
2821 * hardware generates an interrupt to wake up
2822 * the host. In units of listen interval.
2823 */
2824 tANI_U32 HeartBeatCount;
2825
2826 /* specifies which beacons are to be forwarded
2827 * to host when beacon filtering is enabled.
2828 * In units of listen interval.
2829 */
2830 tANI_U32 nthBeaconFilter;
2831
2832 /* Maximum number of PS-Poll send before
2833 * firmware sends data null with PM set to 0.
2834 */
2835 tANI_U32 maxPsPoll;
2836
2837 /* If the average RSSI value falls below the
2838 * minRssiThreshold, then FW will send an
2839 * interrupt to wake up the host.
2840 */
2841 tANI_U32 minRssiThreshold;
2842
2843 /* Number of beacons for which firmware will
2844 * collect the RSSI values and compute the average.
2845 */
2846 tANI_U8 numBeaconPerRssiAverage;
2847
2848 /* FW collects the RSSI stats for this period
2849 * in BMPS mode.
2850 */
2851 tANI_U8 rssiFilterPeriod;
2852
2853 // Enabling/disabling broadcast frame filter feature
2854 tANI_U8 broadcastFrameFilter;
2855
2856 // Enabling/disabling the ignore DTIM feature
2857 tANI_U8 ignoreDtim;
2858
2859 /* The following configuration parameters are kept
2860 * in order to be backward compatible for Gen5.
2861 * These will NOT be used for Gen6 Libra chip
2862 */
2863 tBeaconForwarding beaconFwd;
2864 tANI_U16 nthBeaconFwd;
2865 tANI_U8 fEnablePwrSaveImmediately;
2866 tANI_U8 fPSPoll;
2867
2868 // Enabling/disabling Beacon Early Termination feature
2869 tANI_U8 fEnableBeaconEarlyTermination;
2870 tANI_U8 bcnEarlyTermWakeInterval;
2871
2872}tSirPowerSaveCfg, *tpSirPowerSaveCfg;
2873
2874/* Reason code for requesting Full Power. This reason code is used by
2875 any module requesting full power from PMC and also by PE when it
2876 sends the eWNI_PMC_EXIT_BMPS_IND to PMC*/
2877typedef enum eRequestFullPowerReason
2878{
2879 eSME_MISSED_BEACON_IND_RCVD, /* PE received a MAX_MISSED_BEACON_IND */
2880 eSME_BMPS_STATUS_IND_RCVD, /* PE received a SIR_HAL_BMPS_STATUS_IND */
2881 eSME_BMPS_MODE_DISABLED, /* BMPS mode was disabled by HDD in SME */
2882 eSME_LINK_DISCONNECTED_BY_HDD, /* Link has been disconnected requested by HDD */
2883 eSME_LINK_DISCONNECTED_BY_OTHER,/* Disconnect due to linklost or requested by peer */
2884 eSME_FULL_PWR_NEEDED_BY_HDD, /* HDD request full power for some reason */
2885 eSME_FULL_PWR_NEEDED_BY_BAP, /* BAP request full power for BT_AMP */
2886 eSME_FULL_PWR_NEEDED_BY_CSR, /* CSR requests full power */
2887 eSME_FULL_PWR_NEEDED_BY_QOS, /* QOS requests full power */
2888 eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH, /* channel switch request full power*/
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002889#ifdef FEATURE_WLAN_TDLS
2890 eSME_FULL_PWR_NEEDED_BY_TDLS_PEER_SETUP, /* TDLS peer setup*/
2891#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002892 eSME_REASON_OTHER /* No specific reason. General reason code */
2893} tRequestFullPowerReason, tExitBmpsReason;
2894
2895
2896
2897//This is sent alongwith eWNI_PMC_EXIT_BMPS_REQ message
2898typedef struct sExitBmpsInfo
2899{
2900 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
2901}tExitBmpsInfo, *tpExitBmpsInfo;
2902
2903
2904// MAC SW --> SME
2905// Message indicating to SME to exit BMPS sleep mode
2906typedef struct sSirSmeExitBmpsInd
2907{
2908 tANI_U16 mesgType; /* eWNI_PMC_EXIT_BMPS_IND */
2909 tANI_U16 mesgLen;
2910 tSirResultCodes statusCode;
2911 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
2912
2913} tSirSmeExitBmpsInd, *tpSirSmeExitBmpsInd;
2914
2915
2916//
2917// HDD -> LIM
2918// tSirMsgQ.type = eWNI_SME_DEL_BA_PEER_IND
2919// tSirMsgQ.reserved = 0
2920// tSirMsgQ.body = instance of tDelBAParams
2921//
2922typedef struct sSmeDelBAPeerInd
2923{
2924 // Message Type
2925 tANI_U16 mesgType;
2926
2927 tSirMacAddr bssId;//BSSID
2928
2929 // Message Length
2930 tANI_U16 mesgLen;
2931
2932 // Station Index
2933 tANI_U16 staIdx;
2934
2935 // TID for which the BA session is being deleted
2936 tANI_U8 baTID;
2937
2938 // DELBA direction
2939 // eBA_INITIATOR - Originator
2940 // eBA_RECEIPIENT - Recipient
2941 tANI_U8 baDirection;
2942} tSmeDelBAPeerInd, *tpSmeDelBAPeerInd;
2943
2944typedef struct sSmeIbssPeerInd
2945{
2946 tANI_U16 mesgType;
2947 tANI_U16 mesgLen;
2948 tANI_U8 sessionId;
2949
2950 tSirMacAddr peerAddr;
2951 tANI_U16 staId;
2952
2953 /*The DPU signatures will be sent eventually to TL to help it determine the
2954 association to which a packet belongs to*/
2955 /*Unicast DPU signature*/
2956 tANI_U8 ucastSig;
2957
2958 /*Broadcast DPU signature*/
2959 tANI_U8 bcastSig;
2960
2961 //Beacon will be appended for new Peer indication.
2962}tSmeIbssPeerInd, *tpSmeIbssPeerInd;
2963
Ravi Joshid2ca7c42013-07-23 08:37:49 -07002964typedef struct sSirIbssPeerInactivityInd
2965{
2966 tANI_U8 bssIdx;
2967 tANI_U8 staIdx;
2968 tSirMacAddr peerAddr;
2969}tSirIbssPeerInactivityInd, *tpSirIbssPeerInactivityInd;
2970
2971
Jeff Johnson295189b2012-06-20 16:38:30 -07002972typedef struct sLimScanChn
2973{
2974 tANI_U16 numTimeScan; //how many time this channel is scan
2975 tANI_U8 channelId;
2976}tLimScanChn;
2977
2978typedef struct sSmeGetScanChnRsp
2979{
2980 // Message Type
2981 tANI_U16 mesgType;
2982 // Message Length
2983 tANI_U16 mesgLen;
2984 tANI_U8 sessionId;
2985 tANI_U8 numChn;
2986 tLimScanChn scanChn[1];
2987} tSmeGetScanChnRsp, *tpSmeGetScanChnRsp;
2988
2989typedef struct sLimScanChnInfo
2990{
2991 tANI_U8 numChnInfo; //number of channels in scanChn
2992 tLimScanChn scanChn[SIR_MAX_SUPPORTED_CHANNEL_LIST];
2993}tLimScanChnInfo;
2994
Jeff Johnson295189b2012-06-20 16:38:30 -07002995typedef struct sSirSmeGetAssocSTAsReq
2996{
2997 tANI_U16 messageType; // eWNI_SME_GET_ASSOC_STAS_REQ
2998 tANI_U16 length;
2999 tSirMacAddr bssId; // BSSID
3000 tANI_U16 modId;
3001 void *pUsrContext;
3002 void *pSapEventCallback;
3003 void *pAssocStasArray;// Pointer to allocated memory passed in WLANSAP_GetAssocStations API
3004} tSirSmeGetAssocSTAsReq, *tpSirSmeGetAssocSTAsReq;
Jeff Johnson295189b2012-06-20 16:38:30 -07003005
3006typedef struct sSmeMaxAssocInd
3007{
3008 tANI_U16 mesgType; // eWNI_SME_MAX_ASSOC_EXCEEDED
3009 tANI_U16 mesgLen;
3010 tANI_U8 sessionId;
3011 tSirMacAddr peerMac; // the new peer that got rejected due to softap max assoc limit reached
3012} tSmeMaxAssocInd, *tpSmeMaxAssocInd;
3013
3014/*--------------------------------------------------------------------*/
3015/* BootLoader message definition */
3016/*--------------------------------------------------------------------*/
3017
3018/*--------------------------------------------------------------------*/
3019/* FW image size */
3020/*--------------------------------------------------------------------*/
3021#define SIR_FW_IMAGE_SIZE 146332
3022
3023
3024#define SIR_BOOT_MODULE_ID 1
3025
3026#define SIR_BOOT_SETUP_IND ((SIR_BOOT_MODULE_ID << 8) | 0x11)
3027#define SIR_BOOT_POST_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x12)
3028#define SIR_BOOT_DNLD_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x13)
3029#define SIR_BOOT_DNLD_DEV_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x41)
3030#define SIR_BOOT_DNLD_DEV_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x81)
3031#define SIR_BOOT_DNLD_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x42)
3032#define SIR_BOOT_DNLD_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x82)
3033
3034/*--------------------------------------------------------------------*/
3035/* Bootloader message syntax */
3036/*--------------------------------------------------------------------*/
3037
3038// Message header
3039#define SIR_BOOT_MB_HEADER 0
3040#define SIR_BOOT_MB_HEADER2 1
3041
3042#define SIR_BOOT_MSG_HDR_MASK 0xffff0000
3043#define SIR_BOOT_MSG_LEN_MASK 0x0000ffff
3044
3045// BOOT_SETUP_IND parameter indices
3046#define SIR_BOOT_SETUP_IND_MBADDR 2
3047#define SIR_BOOT_SETUP_IND_MBSIZE 3
3048#define SIR_BOOT_SETUP_IND_MEMOPT 4
3049#define SIR_BOOT_SETUP_IND_LEN \
3050 ((SIR_BOOT_SETUP_IND_MEMOPT+1)<<2)
3051
3052// BOOT_POST_RESULT_IND parameter indices
3053#define SIR_BOOT_POST_RESULT_IND_RES 2
3054#define SIR_BOOT_POST_RESULT_IND_LEN \
3055 ((SIR_BOOT_POST_RESULT_IND_RES+1)<<2)
3056
3057#define SIR_BOOT_POST_RESULT_IND_SUCCESS 1
3058#define SIR_BOOT_POST_RESULT_IND_MB_FAILED 2
3059#define SIR_BOOT_POST_RESULT_IND_SDRAM_FAILED 3
3060#define SIR_BOOT_POST_RESULT_IND_ESRAM_FAILED 4
3061
3062
3063// BOOT_DNLD_RESULT_IND parameter indices
3064#define SIR_BOOT_DNLD_RESULT_IND_RES 2
3065#define SIR_BOOT_DNLD_RESULT_IND_LEN \
3066 ((SIR_BOOT_DNLD_RESULT_IND_RES+1)<<2)
3067
3068#define SIR_BOOT_DNLD_RESULT_IND_SUCCESS 1
3069#define SIR_BOOT_DNLD_RESULT_IND_HDR_ERR 2
3070#define SIR_BOOT_DNLD_RESULT_IND_ERR 3
3071
3072// BOOT_DNLD_DEV_REQ
3073#define SIR_BOOT_DNLD_DEV_REQ_SDRAMSIZE 2
3074#define SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE 3
3075#define SIR_BOOT_DNLD_DEV_REQ_LEN \
3076 ((SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE+1)<<2)
3077
3078// BOOT_DNLD_DEV_RSP
3079#define SIR_BOOT_DNLD_DEV_RSP_DEVTYPE 2
3080#define SIR_BOOT_DNLD_DEV_RSP_LEN \
3081 ((SIR_BOOT_DNLD_DEV_RSP_DEVTYPE+1)<<2)
3082
3083#define SIR_BOOT_DNLD_DEV_RSP_SRAM 1
3084#define SIR_BOOT_DNLD_DEV_RSP_FLASH 2
3085
3086// BOOT_DNLD_REQ
3087#define SIR_BOOT_DNLD_REQ_OFFSET 2
3088#define SIR_BOOT_DNLD_REQ_WRADDR 3
3089#define SIR_BOOT_DNLD_REQ_SIZE 4
3090#define SIR_BOOT_DNLD_REQ_LEN ((SIR_BOOT_DNLD_REQ_SIZE+1)<<2)
3091
3092// BOOT_DNLD_RSP
3093#define SIR_BOOT_DNLD_RSP_SIZE 2
3094#define SIR_BOOT_DNLD_RSP_LEN ((SIR_BOOT_DNLD_RSP_SIZE+1)<<2)
3095
Jeff Johnson295189b2012-06-20 16:38:30 -07003096
3097// board capabilities fields are defined here.
3098typedef __ani_attr_pre_packed struct sSirBoardCapabilities
3099{
3100#ifndef ANI_LITTLE_BIT_ENDIAN
3101 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
3102 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
3103 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
3104 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
3105 tANI_U32 rsvd1:2;
3106 // (productId derives sub-category in the following three families)
3107 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
3108 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
3109 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
3110 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
3111 tANI_U32 bbChipVer:4; // Baseband chip version
3112 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
3113 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
3114 tANI_U32 nReceivers:2; // 0 based.
3115 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
3116 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
3117 tANI_U32 rsvd:1;
3118 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
3119#else
3120
3121 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
3122 tANI_U32 rsvd:1;
3123 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
3124 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
3125 tANI_U32 nReceivers:2; // 0 based.
3126 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
3127 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
3128 tANI_U32 bbChipVer:4; // Baseband chip version
3129 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
3130 // (productId derives sub-category in the following three families)
3131 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
3132 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
3133 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
3134 tANI_U32 rsvd1:2;
3135 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
3136 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
3137 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
3138 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
3139#endif
3140} __ani_attr_packed tSirBoardCapabilities, *tpSirBoardCapabilities;
3141
3142# define ANI_BCAP_EXT_VS_INT_ANT_MASK 0x1
3143# define ANI_BCAP_EXT_VS_INT_ANT_OFFSET 0
3144
3145# define ANI_BCAP_GAL_ON_BOARD_MASK 0x2
3146# define ANI_BCAP_GAL_ON_BOARD_OFFSET 1
3147
3148# define ANI_BCAP_SDRAM_MASK 0x4
3149# define ANI_BCAP_SDRAM_OFFSET 2
3150
3151# define ANI_BCAP_NUM_TRANSMITTERS_MASK 0x8
3152# define ANI_BCAP_NUM_TRANSMITTERS_OFFSET 3
3153
3154# define ANI_BCAP_NUM_RECEIVERS_MASK 0x30
3155# define ANI_BCAP_NUM_RECEIVERS_OFFSET 4
3156
3157# define ANI_BCAP_RADIO_ON_MASK 0xC0
3158# define ANI_BCAP_RADIO_ON_OFFSET 6
3159
3160# define ANI_BCAP_LO_TYPE_MASK 0x300
3161# define ANI_BCAP_LO_TYPE_OFFSET 8
3162
3163# define ANI_BCAP_BB_CHIP_VER_MASK 0xC00
3164# define ANI_BCAP_BB_CHIP_VER_OFFSET 10
3165
3166# define ANI_BCAP_CYG_DATE_CODE_MASK 0xFF000
3167# define ANI_BCAP_CYG_DATE_CODE_OFFSET 12
3168
3169# define ANI_BCAP_RADIO_OFF 0
3170# define ANI_BCAP_RADIO_ON 1
3171# define ANI_BCAP_RADIO_ON_NOT_SUPPORTED 3
3172
3173
3174/// WOW related structures
3175// SME -> PE <-> HAL
3176#define SIR_WOWL_BCAST_PATTERN_MAX_SIZE 128
3177#define SIR_WOWL_BCAST_MAX_NUM_PATTERNS 16
3178
3179// SME -> PE -> HAL - This is to add 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 sSirWowlAddBcastPtrn
3183{
3184 tANI_U8 ucPatternId; // Pattern ID
3185 // Pattern byte offset from beginning of the 802.11 packet to start of the
3186 // wake-up pattern
3187 tANI_U8 ucPatternByteOffset;
3188 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3189 tANI_U8 ucPattern[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3190 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3191 tANI_U8 ucPatternMask[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3192 // Extra pattern data beyond 128 bytes
3193 tANI_U8 ucPatternExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern
3194 tANI_U8 ucPatternMaskExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern mask
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003195 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07003196} tSirWowlAddBcastPtrn, *tpSirWowlAddBcastPtrn;
3197
3198
3199// SME -> PE -> HAL - This is to delete WOWL BCAST wake-up pattern.
3200// SME/HDD maintains the list of the BCAST wake-up patterns.
3201// This is a pass through message for PE
3202typedef struct sSirWowlDelBcastPtrn
3203{
3204 /* Pattern ID of the wakeup pattern to be deleted */
3205 tANI_U8 ucPatternId;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003206 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07003207}tSirWowlDelBcastPtrn, *tpSirWowlDelBcastPtrn;
3208
3209
3210// SME->PE: Enter WOWLAN parameters
3211typedef struct sSirSmeWowlEnterParams
3212{
3213 /* Enables/disables magic packet filtering */
3214 tANI_U8 ucMagicPktEnable;
3215
3216 /* Magic pattern */
3217 tSirMacAddr magicPtrn;
3218
3219 /* Enables/disables packet pattern filtering */
3220 tANI_U8 ucPatternFilteringEnable;
3221
3222#ifdef WLAN_WAKEUP_EVENTS
3223 /* This configuration directs the WoW packet filtering to look for EAP-ID
3224 * requests embedded in EAPOL frames and use this as a wake source.
3225 */
3226 tANI_U8 ucWoWEAPIDRequestEnable;
3227
3228 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3229 * requests and use this as a wake source.
3230 */
3231 tANI_U8 ucWoWEAPOL4WayEnable;
3232
3233 /* This configuration allows a host wakeup on an network scan offload match.
3234 */
3235 tANI_U8 ucWowNetScanOffloadMatch;
3236
3237 /* This configuration allows a host wakeup on any GTK rekeying error.
3238 */
3239 tANI_U8 ucWowGTKRekeyError;
3240
3241 /* This configuration allows a host wakeup on BSS connection loss.
3242 */
3243 tANI_U8 ucWoWBSSConnLoss;
3244#endif // WLAN_WAKEUP_EVENTS
3245
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003246 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003247} tSirSmeWowlEnterParams, *tpSirSmeWowlEnterParams;
3248
3249
3250// PE<->HAL: Enter WOWLAN parameters
3251typedef struct sSirHalWowlEnterParams
3252{
3253 /* Enables/disables magic packet filtering */
3254 tANI_U8 ucMagicPktEnable;
3255
3256 /* Magic pattern */
3257 tSirMacAddr magicPtrn;
3258
3259 /* Enables/disables packet pattern filtering in firmware.
3260 Enabling this flag enables broadcast pattern matching
3261 in Firmware. If unicast pattern matching is also desired,
3262 ucUcastPatternFilteringEnable flag must be set tot true
3263 as well
3264 */
3265 tANI_U8 ucPatternFilteringEnable;
3266
3267 /* Enables/disables unicast packet pattern filtering.
3268 This flag specifies whether we want to do pattern match
3269 on unicast packets as well and not just broadcast packets.
3270 This flag has no effect if the ucPatternFilteringEnable
3271 (main controlling flag) is set to false
3272 */
3273 tANI_U8 ucUcastPatternFilteringEnable;
3274
3275 /* This configuration is valid only when magicPktEnable=1.
3276 * It requests hardware to wake up when it receives the
3277 * Channel Switch Action Frame.
3278 */
3279 tANI_U8 ucWowChnlSwitchRcv;
3280
3281 /* This configuration is valid only when magicPktEnable=1.
3282 * It requests hardware to wake up when it receives the
3283 * Deauthentication Frame.
3284 */
3285 tANI_U8 ucWowDeauthRcv;
3286
3287 /* This configuration is valid only when magicPktEnable=1.
3288 * It requests hardware to wake up when it receives the
3289 * Disassociation Frame.
3290 */
3291 tANI_U8 ucWowDisassocRcv;
3292
3293 /* This configuration is valid only when magicPktEnable=1.
3294 * It requests hardware to wake up when it has missed
3295 * consecutive beacons. This is a hardware register
3296 * configuration (NOT a firmware configuration).
3297 */
3298 tANI_U8 ucWowMaxMissedBeacons;
3299
3300 /* This configuration is valid only when magicPktEnable=1.
3301 * This is a timeout value in units of microsec. It requests
3302 * hardware to unconditionally wake up after it has stayed
3303 * in WoWLAN mode for some time. Set 0 to disable this feature.
3304 */
3305 tANI_U8 ucWowMaxSleepUsec;
3306
3307#ifdef WLAN_WAKEUP_EVENTS
3308 /* This configuration directs the WoW packet filtering to look for EAP-ID
3309 * requests embedded in EAPOL frames and use this as a wake source.
3310 */
3311 tANI_U8 ucWoWEAPIDRequestEnable;
3312
3313 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3314 * requests and use this as a wake source.
3315 */
3316 tANI_U8 ucWoWEAPOL4WayEnable;
3317
3318 /* This configuration allows a host wakeup on an network scan offload match.
3319 */
3320 tANI_U8 ucWowNetScanOffloadMatch;
3321
3322 /* This configuration allows a host wakeup on any GTK rekeying error.
3323 */
3324 tANI_U8 ucWowGTKRekeyError;
3325
3326 /* This configuration allows a host wakeup on BSS connection loss.
3327 */
3328 tANI_U8 ucWoWBSSConnLoss;
3329#endif // WLAN_WAKEUP_EVENTS
3330
3331 /* Status code to be filled by HAL when it sends
3332 * SIR_HAL_WOWL_ENTER_RSP to PE.
3333 */
3334 eHalStatus status;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003335
3336 /*BSSID to find the current session
3337 */
3338 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003339} tSirHalWowlEnterParams, *tpSirHalWowlEnterParams;
3340
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003341// PE<->HAL: Exit WOWLAN parameters
3342typedef struct sSirHalWowlExitParams
3343{
3344 /* Status code to be filled by HAL when it sends
3345 * SIR_HAL_WOWL_EXIT_RSP to PE.
3346 */
3347 eHalStatus status;
3348
3349 /*BSSIDX to find the current session
3350 */
3351 tANI_U8 bssIdx;
3352} tSirHalWowlExitParams, *tpSirHalWowlExitParams;
3353
Jeff Johnson295189b2012-06-20 16:38:30 -07003354
3355#define SIR_MAX_NAME_SIZE 64
3356#define SIR_MAX_TEXT_SIZE 32
3357
3358typedef struct sSirName {
3359 v_U8_t num_name;
3360 v_U8_t name[SIR_MAX_NAME_SIZE];
3361} tSirName;
3362
3363typedef struct sSirText {
3364 v_U8_t num_text;
3365 v_U8_t text[SIR_MAX_TEXT_SIZE];
3366} tSirText;
3367
3368
3369#define SIR_WPS_PROBRSP_VER_PRESENT 0x00000001
3370#define SIR_WPS_PROBRSP_STATE_PRESENT 0x00000002
3371#define SIR_WPS_PROBRSP_APSETUPLOCK_PRESENT 0x00000004
3372#define SIR_WPS_PROBRSP_SELECTEDREGISTRA_PRESENT 0x00000008
3373#define SIR_WPS_PROBRSP_DEVICEPASSWORDID_PRESENT 0x00000010
3374#define SIR_WPS_PROBRSP_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3375#define SIR_WPS_PROBRSP_RESPONSETYPE_PRESENT 0x00000040
3376#define SIR_WPS_PROBRSP_UUIDE_PRESENT 0x00000080
3377#define SIR_WPS_PROBRSP_MANUFACTURE_PRESENT 0x00000100
3378#define SIR_WPS_PROBRSP_MODELNAME_PRESENT 0x00000200
3379#define SIR_WPS_PROBRSP_MODELNUMBER_PRESENT 0x00000400
3380#define SIR_WPS_PROBRSP_SERIALNUMBER_PRESENT 0x00000800
3381#define SIR_WPS_PROBRSP_PRIMARYDEVICETYPE_PRESENT 0x00001000
3382#define SIR_WPS_PROBRSP_DEVICENAME_PRESENT 0x00002000
3383#define SIR_WPS_PROBRSP_CONFIGMETHODS_PRESENT 0x00004000
3384#define SIR_WPS_PROBRSP_RF_BANDS_PRESENT 0x00008000
3385
3386
3387typedef struct sSirWPSProbeRspIE {
3388 v_U32_t FieldPresent;
3389 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3390 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3391 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3392 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3393 v_U16_t DevicePasswordID; // Device Password ID
3394 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3395 v_U8_t ResponseType; // Response type
3396 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3397 tSirName Manufacture;
3398 tSirText ModelName;
3399 tSirText ModelNumber;
3400 tSirText SerialNumber;
3401 v_U32_t PrimaryDeviceCategory ; // Device Category ID: 1Computer, 2Input Device, ...
3402 v_U8_t PrimaryDeviceOUI[4] ; // Vendor specific OUI for Device Sub Category
3403 v_U32_t DeviceSubCategory ; // Device Sub Category ID: 1-PC, 2-Server if Device Category ID is computer
3404 tSirText DeviceName;
3405 v_U16_t ConfigMethod; // Configuaration method
3406 v_U8_t RFBand; // RF bands available on the AP
3407} tSirWPSProbeRspIE;
3408
3409#define SIR_WPS_BEACON_VER_PRESENT 0x00000001
3410#define SIR_WPS_BEACON_STATE_PRESENT 0x00000002
3411#define SIR_WPS_BEACON_APSETUPLOCK_PRESENT 0x00000004
3412#define SIR_WPS_BEACON_SELECTEDREGISTRA_PRESENT 0x00000008
3413#define SIR_WPS_BEACON_DEVICEPASSWORDID_PRESENT 0x00000010
3414#define SIR_WPS_BEACON_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3415#define SIR_WPS_BEACON_UUIDE_PRESENT 0x00000080
3416#define SIR_WPS_BEACON_RF_BANDS_PRESENT 0x00000100
3417
3418typedef struct sSirWPSBeaconIE {
3419 v_U32_t FieldPresent;
3420 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3421 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3422 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3423 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3424 v_U16_t DevicePasswordID; // Device Password ID
3425 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3426 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3427 v_U8_t RFBand; // RF bands available on the AP
3428} tSirWPSBeaconIE;
3429
3430#define SIR_WPS_ASSOCRSP_VER_PRESENT 0x00000001
3431#define SIR_WPS_ASSOCRSP_RESPONSETYPE_PRESENT 0x00000002
3432
3433typedef struct sSirWPSAssocRspIE {
3434 v_U32_t FieldPresent;
3435 v_U32_t Version;
3436 v_U8_t ResposeType;
3437} tSirWPSAssocRspIE;
3438
3439typedef struct sSirAPWPSIEs {
3440 tSirWPSProbeRspIE SirWPSProbeRspIE; /*WPS Set Probe Respose IE*/
3441 tSirWPSBeaconIE SirWPSBeaconIE; /*WPS Set Beacon IE*/
3442 tSirWPSAssocRspIE SirWPSAssocRspIE; /*WPS Set Assoc Response IE*/
3443} tSirAPWPSIEs, *tpSiriAPWPSIEs;
3444
3445typedef struct sSirUpdateAPWPSIEsReq
3446{
3447 tANI_U16 messageType; // eWNI_SME_UPDATE_APWPSIE_REQ
3448 tANI_U16 length;
3449 tANI_U16 transactionId; //Transaction ID for cmd
3450 tSirMacAddr bssId; // BSSID
3451 tANI_U8 sessionId; //Session ID
3452 tSirAPWPSIEs APWPSIEs;
3453} tSirUpdateAPWPSIEsReq, *tpSirUpdateAPWPSIEsReq;
3454
3455typedef struct sSirUpdateParams
3456{
3457 tANI_U16 messageType;
3458 tANI_U16 length;
3459 tANI_U8 sessionId; // Session ID
3460 tANI_U8 ssidHidden; // Hide SSID
3461} tSirUpdateParams, *tpSirUpdateParams;
3462
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08003463//Beacon Interval
3464typedef struct sSirChangeBIParams
3465{
3466 tANI_U16 messageType;
3467 tANI_U16 length;
3468 tANI_U16 beaconInterval; // Beacon Interval
3469 tSirMacAddr bssId;
3470 tANI_U8 sessionId; // Session ID
3471} tSirChangeBIParams, *tpSirChangeBIParams;
3472
Hardik Kantilal Patel62a3a762014-11-21 12:55:57 +05303473#ifdef WLAN_FEATURE_AP_HT40_24G
3474typedef struct sSirSetHT2040Mode
3475{
3476 tANI_U16 messageType;
3477 tANI_U16 length;
3478 tANI_U8 cbMode;
3479 tSirMacAddr bssId;
3480 tANI_U8 sessionId; // Session ID
3481} tSirSetHT2040Mode, *tpSirSetHT2040Mode;
Hardik Kantilal Patel81f76342014-11-14 12:45:26 -08003482
3483typedef struct sSirHT2040CoexInfoInd
3484{
3485 tANI_U16 messageType; // eWNI_SME_2040_COEX_IND
3486 tANI_U16 length;
3487 tANI_U8 sessionId;
3488 tANI_U8 HT40MHzIntolerant;
3489 tANI_U8 HT20MHzBssWidthReq;
3490 tANI_U8 channel_num;
3491 tANI_U8 HT2040BssIntoChanReport [1]; //variable
3492}tSirHT2040CoexInfoInd, *tpSirHT2040CoexInfoInd;
Hardik Kantilal Patel62a3a762014-11-21 12:55:57 +05303493#endif
3494
Sandeep Puligilla11d49a62014-01-30 12:05:16 +05303495typedef struct sSirOBSSHT40Param
3496{
3497 tANI_U16 OBSSScanPassiveDwellTime;
3498 tANI_U16 OBSSScanActiveDwellTime;
3499 tANI_U16 BSSChannelWidthTriggerScanInterval;
3500 tANI_U16 OBSSScanPassiveTotalPerChannel;
3501 tANI_U16 OBSSScanActiveTotalPerChannel;
3502 tANI_U16 BSSWidthChannelTransitionDelayFactor;
3503 tANI_U16 OBSSScanActivityThreshold;
3504}tSirOBSSHT40Param, *tpOBSSHT40Param;
3505
Jeff Johnson295189b2012-06-20 16:38:30 -07003506#define SIR_WPS_UUID_LEN 16
3507#define SIR_WPS_PBC_WALK_TIME 120 // 120 Second
3508
3509typedef struct sSirWPSPBCSession {
3510 struct sSirWPSPBCSession *next;
3511 tSirMacAddr addr;
3512 tANI_U8 uuid_e[SIR_WPS_UUID_LEN];
3513 tANI_TIMESTAMP timestamp;
3514} tSirWPSPBCSession;
3515
3516typedef struct sSirSmeGetWPSPBCSessionsReq
3517{
3518 tANI_U16 messageType; // eWNI_SME_GET_WPSPBC_SESSION_REQ
3519 tANI_U16 length;
3520 void *pUsrContext;
3521 void *pSapEventCallback;
3522 tSirMacAddr bssId; // BSSID
3523 tSirMacAddr pRemoveMac; // MAC Address of STA in WPS Session to be removed
3524} tSirSmeGetWPSPBCSessionsReq, *tpSirSmeGetWPSPBCSessionsReq;
3525
3526typedef struct sSirWPSPBCProbeReq
3527{
3528 tSirMacAddr peerMacAddr;
3529 tANI_U16 probeReqIELen;
3530 tANI_U8 probeReqIE[512];
3531} tSirWPSPBCProbeReq, *tpSirWPSPBCProbeReq;
3532
3533// probereq from peer, when wsc is enabled
3534typedef struct sSirSmeProbeReqInd
3535{
3536 tANI_U16 messageType; // eWNI_SME_WPS_PBC_PROBE_REQ_IND
3537 tANI_U16 length;
3538 tANI_U8 sessionId;
3539 tSirMacAddr bssId;
3540 tSirWPSPBCProbeReq WPSPBCProbeReq;
3541} tSirSmeProbeReqInd, *tpSirSmeProbeReqInd;
3542
3543typedef struct sSirUpdateAPWPARSNIEsReq
3544{
3545 tANI_U16 messageType; // eWNI_SME_SET_APWPARSNIEs_REQ
3546 tANI_U16 length;
3547 tANI_U16 transactionId; //Transaction ID for cmd
3548 tSirMacAddr bssId; // BSSID
3549 tANI_U8 sessionId; //Session ID
3550 tSirRSNie APWPARSNIEs;
3551} tSirUpdateAPWPARSNIEsReq, *tpSirUpdateAPWPARSNIEsReq;
3552
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003553#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu52231ea2014-02-06 12:00:56 -08003554#define SIR_ROAM_MAX_CHANNELS 80
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003555#define SIR_ROAM_SCAN_MAX_PB_REQ_SIZE 450
3556#define CHANNEL_LIST_STATIC 1 /* Occupied channel list remains static */
3557#define CHANNEL_LIST_DYNAMIC_INIT 2 /* Occupied channel list can be learnt after init */
3558#define CHANNEL_LIST_DYNAMIC_FLUSH 3 /* Occupied channel list can be learnt after flush */
3559#define CHANNEL_LIST_DYNAMIC_UPDATE 4 /* Occupied channel list can be learnt after update */
3560#define SIR_ROAM_SCAN_24G_DEFAULT_CH 1
3561#define SIR_ROAM_SCAN_5G_DEFAULT_CH 36
Varun Reddy Yeturu6c5e25c2014-01-09 21:55:37 -08003562
3563/*Adaptive Thresholds to be used for FW based scanning*/
3564#define LFR_SENSITIVITY_THR_1MBPS -89
3565#define LFR_LOOKUP_THR_1MBPS -78
3566#define LFR_SENSITIVITY_THR_2MBPS -87
3567#define LFR_LOOKUP_THR_2MBPS -78
3568#define LFR_SENSITIVITY_THR_5_5MBPS -86
3569#define LFR_LOOKUP_THR_5_5MBPS -77
3570#define LFR_SENSITIVITY_THR_11MBPS -85
3571#define LFR_LOOKUP_THR_11MBPS -76
3572#define LFR_SENSITIVITY_THR_6MBPS_2G -83
3573#define LFR_LOOKUP_THR_6MBPS_2G -78
3574#define LFR_SENSITIVITY_THR_6MBPS_5G -83
3575#define LFR_LOOKUP_THR_6MBPS_5G -78
3576#define LFR_SENSITIVITY_THR_12MBPS_2G -83
3577#define LFR_LOOKUP_THR_12MBPS_2G -78
3578#define LFR_SENSITIVITY_THR_12MBPS_5G -81
3579#define LFR_LOOKUP_THR_12MBPS_5G -76
3580#define LFR_SENSITIVITY_THR_24MBPS_2G -81
3581#define LFR_LOOKUP_THR_24MBPS_2G -76
3582#define LFR_SENSITIVITY_THR_24MBPS_5G -79
3583#define LFR_LOOKUP_THR_24MBPS_5G -74
3584#define LFR_SENSITIVITY_THR_DEFAULT 0
3585#define LFR_LOOKUP_THR_DEFAULT -78
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003586#endif //WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Jeff Johnson295189b2012-06-20 16:38:30 -07003587
3588// SME -> HAL - This is the host offload request.
3589#define SIR_IPV4_ARP_REPLY_OFFLOAD 0
3590#define SIR_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3591#define SIR_IPV6_NS_OFFLOAD 2
3592#define SIR_OFFLOAD_DISABLE 0
3593#define SIR_OFFLOAD_ENABLE 1
3594#define SIR_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudibadffe72013-09-11 13:09:14 +05303595#define SIR_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003596#define SIR_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudibadffe72013-09-11 13:09:14 +05303597#define SIR_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003598
3599#ifdef WLAN_NS_OFFLOAD
3600typedef struct sSirNsOffloadReq
3601{
3602 tANI_U8 srcIPv6Addr[16];
3603 tANI_U8 selfIPv6Addr[16];
3604 //Only support 2 possible Network Advertisement IPv6 address
3605 tANI_U8 targetIPv6Addr[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][16];
3606 tANI_U8 selfMacAddr[6];
3607 tANI_U8 srcIPv6AddrValid;
3608 tANI_U8 targetIPv6AddrValid[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA];
Gopichand Nakkala746a9452013-06-11 12:45:54 +05303609 tANI_U8 slotIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003610} tSirNsOffloadReq, *tpSirNsOffloadReq;
3611#endif //WLAN_NS_OFFLOAD
3612
3613typedef struct sSirHostOffloadReq
3614{
3615 tANI_U8 offloadType;
3616 tANI_U8 enableOrDisable;
3617 union
3618 {
3619 tANI_U8 hostIpv4Addr [4];
3620 tANI_U8 hostIpv6Addr [16];
3621 } params;
3622#ifdef WLAN_NS_OFFLOAD
3623 tSirNsOffloadReq nsOffloadInfo;
3624#endif //WLAN_NS_OFFLOAD
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003625 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003626} tSirHostOffloadReq, *tpSirHostOffloadReq;
3627
3628/* Packet Types. */
3629#define SIR_KEEP_ALIVE_NULL_PKT 1
3630#define SIR_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3631
3632/* Enable or disable offload. */
3633#define SIR_KEEP_ALIVE_DISABLE 0
3634#define SIR_KEEP_ALIVE_ENABLE 1
3635
3636/* Keep Alive request. */
3637typedef struct sSirKeepAliveReq
3638{
3639 v_U8_t packetType;
3640 v_U32_t timePeriod;
3641 tSirIpv4Addr hostIpv4Addr;
3642 tSirIpv4Addr destIpv4Addr;
3643 tSirMacAddr destMacAddr;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003644 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003645} tSirKeepAliveReq, *tpSirKeepAliveReq;
3646
3647typedef struct sSirSmeAddStaSelfReq
3648{
3649 tANI_U16 mesgType;
3650 tANI_U16 mesgLen;
3651 tSirMacAddr selfMacAddr;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07003652 tVOS_CON_MODE currDeviceMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07003653}tSirSmeAddStaSelfReq, *tpSirSmeAddStaSelfReq;
3654
3655typedef struct sSirSmeDelStaSelfReq
3656{
3657 tANI_U16 mesgType;
3658 tANI_U16 mesgLen;
3659 tSirMacAddr selfMacAddr;
3660}tSirSmeDelStaSelfReq, *tpSirSmeDelStaSelfReq;
3661
3662typedef struct sSirSmeAddStaSelfRsp
3663{
3664 tANI_U16 mesgType;
3665 tANI_U16 mesgLen;
3666 tANI_U16 status;
3667 tSirMacAddr selfMacAddr;
3668}tSirSmeAddStaSelfRsp, *tpSirSmeAddStaSelfRsp;
3669
3670typedef struct sSirSmeDelStaSelfRsp
3671{
3672 tANI_U16 mesgType;
3673 tANI_U16 mesgLen;
3674 tANI_U16 status;
3675 tSirMacAddr selfMacAddr;
3676}tSirSmeDelStaSelfRsp, *tpSirSmeDelStaSelfRsp;
3677
Padma, Santhosh Kumar778d8382015-03-04 17:41:22 +05303678typedef enum DFSChanScanType
3679{
3680 DFS_CHNL_SCAN_DISABLED,
3681 DFS_CHNL_SCAN_ENABLED_NORMAL,
3682 DFS_CHNL_SCAN_ENABLED_ACTIVE
3683}eDFSChanScanType;
3684
Jeff Johnson295189b2012-06-20 16:38:30 -07003685/* Coex Indication defines -
3686 should match WLAN_COEX_IND_DATA_SIZE
3687 should match WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR
3688 should match WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR */
3689#define SIR_COEX_IND_DATA_SIZE (4)
3690#define SIR_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
3691#define SIR_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08003692#define SIR_COEX_IND_TYPE_SCAN_COMPROMISED (2)
3693#define SIR_COEX_IND_TYPE_SCAN_NOT_COMPROMISED (3)
Kiran Kumar Lokere458d7322013-05-29 14:29:43 -07003694#define SIR_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
3695#define SIR_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha23cea3c2014-11-04 13:05:20 +05303696#define SIR_COEX_IND_TYPE_ENABLE_UAPSD (6)
3697#define SIR_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothub3458992014-09-19 19:58:57 +05303698#define SIR_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Pradeep Reddy POTTETIf0569d72014-12-13 16:54:03 +05303699#define SIR_COEX_IND_TYPE_TDLS_ENABLE (6)
3700#define SIR_COEX_IND_TYPE_TDLS_DISABLE (7)
Jeff Johnson295189b2012-06-20 16:38:30 -07003701
3702typedef struct sSirSmeCoexInd
3703{
3704 tANI_U16 mesgType;
3705 tANI_U16 mesgLen;
3706 tANI_U32 coexIndType;
3707 tANI_U32 coexIndData[SIR_COEX_IND_DATA_SIZE];
3708}tSirSmeCoexInd, *tpSirSmeCoexInd;
3709
Jeff Johnson295189b2012-06-20 16:38:30 -07003710typedef struct sSirSmeMgmtFrameInd
3711{
Abhishek Singh7d624e12015-11-30 14:29:27 +05303712 tANI_U16 frameLen;
Chilam NG571c65a2013-01-19 12:27:36 +05303713 tANI_U32 rxChan;
Jeff Johnson295189b2012-06-20 16:38:30 -07003714 tANI_U8 sessionId;
3715 tANI_U8 frameType;
Chilam NG571c65a2013-01-19 12:27:36 +05303716 tANI_S8 rxRssi;
Jeff Johnson295189b2012-06-20 16:38:30 -07003717 tANI_U8 frameBuf[1]; //variable
3718}tSirSmeMgmtFrameInd, *tpSirSmeMgmtFrameInd;
Jeff Johnson295189b2012-06-20 16:38:30 -07003719
Chet Lanctot186b5732013-03-18 10:26:30 -07003720#ifdef WLAN_FEATURE_11W
3721typedef struct sSirSmeUnprotMgmtFrameInd
3722{
3723 tANI_U8 sessionId;
3724 tANI_U8 frameType;
3725 tANI_U8 frameLen;
3726 tANI_U8 frameBuf[1]; //variable
3727}tSirSmeUnprotMgmtFrameInd, *tpSirSmeUnprotMgmtFrameInd;
3728#endif
3729
Jeff Johnson295189b2012-06-20 16:38:30 -07003730#define SIR_IS_FULL_POWER_REASON_DISCONNECTED(eReason) \
3731 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || \
3732 ( eSME_LINK_DISCONNECTED_BY_OTHER == (eReason) ) || \
3733 (eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH == (eReason)))
3734#define SIR_IS_FULL_POWER_NEEDED_BY_HDD(eReason) \
3735 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || ( eSME_FULL_PWR_NEEDED_BY_HDD == (eReason) ) )
3736
3737/* P2P Power Save Related */
Jeff Johnson295189b2012-06-20 16:38:30 -07003738typedef struct sSirNoAParam
3739{
3740 tANI_U8 ctWindow:7;
3741 tANI_U8 OppPS:1;
3742 tANI_U8 count;
3743 tANI_U32 duration;
3744 tANI_U32 interval;
3745 tANI_U32 singleNoADuration;
3746 tANI_U8 psSelection;
3747}tSirNoAParam, *tpSirNoAParam;
Jeff Johnson295189b2012-06-20 16:38:30 -07003748
Jeff Johnson295189b2012-06-20 16:38:30 -07003749typedef struct sSirWlanSuspendParam
3750{
3751 tANI_U8 configuredMcstBcstFilterSetting;
3752}tSirWlanSuspendParam,*tpSirWlanSuspendParam;
3753
3754typedef struct sSirWlanResumeParam
3755{
3756 tANI_U8 configuredMcstBcstFilterSetting;
3757}tSirWlanResumeParam,*tpSirWlanResumeParam;
3758
3759typedef struct sSirWlanSetRxpFilters
3760{
3761 tANI_U8 configuredMcstBcstFilterSetting;
3762 tANI_U8 setMcstBcstFilter;
3763}tSirWlanSetRxpFilters,*tpSirWlanSetRxpFilters;
Jeff Johnson295189b2012-06-20 16:38:30 -07003764
c_manjeecfd1efb2015-09-25 19:32:34 +05303765typedef struct
3766{
3767 //FW mail box address
3768 uint64 logMailBoxAddr;
3769 tANI_U32 status;
3770 //Logging mail box version
3771 tANI_U8 logMailBoxVer;
3772 //Qshrink is enabled
3773 tANI_U8 logCompressEnabled;
3774 /* used to tell fwr mem dump size */
3775 tANI_U32 fw_mem_dump_max_size;
3776 //Reserved for future purpose
3777 tANI_U32 reserved1;
3778 tANI_U32 reserved2;
3779}tAniLoggingInitRsp, *tpAniLoggingInitRsp;
3780
3781typedef void(*FWLoggingInitReqCb)(void *fwlogInitCbContext, tAniLoggingInitRsp *pRsp);
Siddharth Bhal64246172015-02-27 01:04:37 +05303782typedef void ( *tGetFrameLogCallback) (void *pContext);
Gupta, Kapil7c34b322015-09-30 13:12:35 +05303783typedef void(*RssiMonitorReqCb)(void *rssiMonitorCbContext, VOS_STATUS status);
Siddharth Bhal64246172015-02-27 01:04:37 +05303784
3785typedef struct sAniGetFrameLogReq
3786{
3787 tANI_U16 msgType;
3788 tANI_U16 msgLen;
Siddharth Bhal64246172015-02-27 01:04:37 +05303789 tANI_U8 getFrameLogCmdFlag;
Siddharth Bhal64246172015-02-27 01:04:37 +05303790} tAniGetFrameLogReq, *tpAniGetFrameLogReq;
3791
Abhishek Singh99a31be2015-12-10 10:37:44 +05303792/**
3793 * struct s_ani_set_tx_max_pwr - Req params to set max tx power
3794 * @bssid: bssid to set the power cap for
3795 * @self_mac_addr:self mac address
3796 * @power: power to set in dB
3797 */
3798struct s_ani_set_tx_max_pwr
3799{
3800 tSirMacAddr bssid;
3801 tSirMacAddr self_sta_mac_addr;
3802 tPowerdBm power;
3803};
3804
3805
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05303806
Siddharth Bhald1be97f2015-05-27 22:39:59 +05303807typedef struct sSirFWLoggingInitParam
Siddharth Bhalb7c421c2015-02-27 00:26:09 +05303808{
3809 tANI_U8 enableFlag;
3810 tANI_U8 frameType;
3811 tANI_U8 frameSize;
3812 tANI_U8 bufferMode;
Siddharth Bhald1be97f2015-05-27 22:39:59 +05303813 tANI_U8 continuousFrameLogging;
3814 tANI_U8 minLogBufferSize;
3815 tANI_U8 maxLogBufferSize;
3816 FWLoggingInitReqCb fwlogInitCallback;
3817 void *fwlogInitCbContext;
3818}tSirFWLoggingInitParam,*tpSirFWLoggingInitParam;
Jeff Johnson295189b2012-06-20 16:38:30 -07003819
Selvaraj, Sridharc045b8b2016-04-06 12:22:35 +05303820/**
3821 * struct sir_allowed_action_frames - Parameters to set Allowed action frames
3822 * @bitmask: Bits to convey the allowed action frames
3823 * @reserved: For future use
3824 */
3825struct sir_allowed_action_frames {
3826 uint32_t bitmask;
3827 uint32_t reserved;
3828};
Gupta, Kapil7c34b322015-09-30 13:12:35 +05303829
3830/*
3831 * struct rssi_monitor_req - rssi monitoring
3832 * @request_id: request id
3833 * @session_id: session id
3834 * @min_rssi: minimum rssi
3835 * @max_rssi: maximum rssi
3836 * @control: flag to indicate start or stop
3837 */
3838typedef struct sSirRssiMonitorReq
3839{
3840 tANI_U32 requestId;
3841 tANI_U32 sessionId;
3842 tANI_S8 minRssi;
3843 tANI_S8 maxRssi;
3844 tANI_U8 currentBssId[6];
3845 RssiMonitorReqCb rssiMonitorCallback;
3846 void *rssiMonitorCbContext;
3847}tSirRssiMonitorReq, *tpSirRssiMonitorReq;
3848
3849
3850/**
3851 * struct rssi_breach_event - rssi breached event structure
3852 * @request_id: request id
3853 * @curr_rssi: current rssi
3854 * @curr_bssid: current bssid
3855 */
3856struct rssi_breach_event {
3857 tANI_U32 request_id;
3858 v_MACADDR_t curr_bssid;
3859 tANI_S8 curr_rssi;
3860};
3861
Sachin Ahuja715aafc2015-07-21 23:35:10 +05303862typedef struct sSirFatalEventLogsReqParam
3863{
3864 tANI_U32 reason_code;
3865}tSirFatalEventLogsReqParam, *tpSirFatalEventLogsReqParam;
3866
Jeff Johnson295189b2012-06-20 16:38:30 -07003867#ifdef FEATURE_WLAN_SCAN_PNO
3868//
3869// PNO Messages
3870//
3871
3872// Set PNO
3873#define SIR_PNO_MAX_NETW_CHANNELS 26
Pratik Bhalgatd4404592012-11-22 17:49:14 +05303874#define SIR_PNO_MAX_NETW_CHANNELS_EX 60
Jeff Johnson295189b2012-06-20 16:38:30 -07003875#define SIR_PNO_MAX_SUPP_NETWORKS 16
3876#define SIR_PNO_MAX_SCAN_TIMERS 10
3877
3878/*size based of dot11 declaration without extra IEs as we will not carry those for PNO*/
3879#define SIR_PNO_MAX_PB_REQ_SIZE 450
3880
3881#define SIR_PNO_24G_DEFAULT_CH 1
3882#define SIR_PNO_5G_DEFAULT_CH 36
3883
3884typedef enum
3885{
3886 SIR_PNO_MODE_IMMEDIATE,
3887 SIR_PNO_MODE_ON_SUSPEND,
3888 SIR_PNO_MODE_ON_RESUME,
3889 SIR_PNO_MODE_MAX
3890} eSirPNOMode;
3891
3892typedef struct
3893{
3894 tSirMacSSid ssId;
3895 tANI_U32 authentication;
3896 tANI_U32 encryption;
3897 tANI_U32 bcastNetwType;
3898 tANI_U8 ucChannelCount;
Gopichand Nakkala8e93fde2013-05-10 17:40:12 +05303899 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS_EX];
Jeff Johnson295189b2012-06-20 16:38:30 -07003900 tANI_U8 rssiThreshold;
3901} tSirNetworkType;
3902
3903typedef struct
3904{
3905 tANI_U32 uTimerValue;
3906 tANI_U32 uTimerRepeat;
3907}tSirScanTimer;
3908
3909typedef struct
3910{
3911 tANI_U8 ucScanTimersCount;
3912 tSirScanTimer aTimerValues[SIR_PNO_MAX_SCAN_TIMERS];
3913} tSirScanTimersType;
3914
Vinay Krishna Erannaf0e523b2014-03-01 21:00:16 +05303915/*Pref Net Req status */
3916typedef void(*PNOReqStatusCb)(void *callbackContext, VOS_STATUS status);
3917
3918
Jeff Johnson295189b2012-06-20 16:38:30 -07003919typedef struct sSirPNOScanReq
3920{
3921 tANI_U8 enable;
Vinay Krishna Erannaf0e523b2014-03-01 21:00:16 +05303922 PNOReqStatusCb statusCallback;
3923 void *callbackContext;
Jeff Johnson295189b2012-06-20 16:38:30 -07003924 eSirPNOMode modePNO;
3925 tANI_U8 ucNetworksCount;
Hanumantha Reddy Pothulad769f3e2015-02-19 17:00:02 +05303926 tSirNetworkType *aNetworks;
Jeff Johnson295189b2012-06-20 16:38:30 -07003927 tSirScanTimersType scanTimers;
3928
3929 /*added by SME*/
3930 tANI_U16 us24GProbeTemplateLen;
Hanumantha Reddy Pothulad769f3e2015-02-19 17:00:02 +05303931 tANI_U8 *p24GProbeTemplate;
Jeff Johnson295189b2012-06-20 16:38:30 -07003932 tANI_U16 us5GProbeTemplateLen;
Hanumantha Reddy Pothulad769f3e2015-02-19 17:00:02 +05303933 tANI_U8 *p5GProbeTemplate;
Jeff Johnson295189b2012-06-20 16:38:30 -07003934} tSirPNOScanReq, *tpSirPNOScanReq;
3935
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003936typedef struct sSirSetRSSIFilterReq
3937{
3938 tANI_U8 rssiThreshold;
3939} tSirSetRSSIFilterReq, *tpSirSetRSSIFilterReq;
3940
3941
3942// Update Scan Params
3943typedef struct {
3944 tANI_U8 b11dEnabled;
3945 tANI_U8 b11dResolved;
3946 tANI_U8 ucChannelCount;
3947 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS_EX];
3948 tANI_U16 usPassiveMinChTime;
3949 tANI_U16 usPassiveMaxChTime;
3950 tANI_U16 usActiveMinChTime;
3951 tANI_U16 usActiveMaxChTime;
3952 tANI_U8 ucCBState;
3953} tSirUpdateScanParams, * tpSirUpdateScanParams;
3954
3955// Preferred Network Found Indication
3956typedef struct
3957{
3958 tANI_U16 mesgType;
3959 tANI_U16 mesgLen;
3960 /* Network that was found with the highest RSSI*/
3961 tSirMacSSid ssId;
3962 /* Indicates the RSSI */
3963 tANI_U8 rssi;
3964 /* Length of the beacon or probe response
3965 * corresponding to the candidate found by PNO */
3966 tANI_U32 frameLength;
3967 /* Index to memory location where the contents of
3968 * beacon or probe response frame will be copied */
3969 tANI_U8 data[1];
3970} tSirPrefNetworkFoundInd, *tpSirPrefNetworkFoundInd;
3971#endif //FEATURE_WLAN_SCAN_PNO
3972
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003973#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
3974typedef struct
3975{
3976 tSirMacSSid ssId;
3977 tANI_U8 currAPbssid[WNI_CFG_BSSID_LEN];
3978 tANI_U32 authentication;
3979 tANI_U8 encryption;
3980 tANI_U8 mcencryption;
3981 tANI_U8 ChannelCount;
3982 tANI_U8 ChannelCache[SIR_ROAM_MAX_CHANNELS];
3983
3984} tSirRoamNetworkType;
3985
3986typedef struct SirMobilityDomainInfo
3987{
3988 tANI_U8 mdiePresent;
3989 tANI_U16 mobilityDomain;
3990} tSirMobilityDomainInfo;
3991
3992typedef struct sSirRoamOffloadScanReq
3993{
3994 eAniBoolean RoamScanOffloadEnabled;
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -08003995 eAniBoolean MAWCEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003996 tANI_S8 LookupThreshold;
Varun Reddy Yeturu6c5e25c2014-01-09 21:55:37 -08003997 tANI_S8 RxSensitivityThreshold;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003998 tANI_U8 RoamRssiDiff;
3999 tANI_U8 ChannelCacheType;
4000 tANI_U8 Command;
4001 tANI_U8 StartScanReason;
4002 tANI_U16 NeighborScanTimerPeriod;
4003 tANI_U16 NeighborRoamScanRefreshPeriod;
4004 tANI_U16 NeighborScanChannelMinTime;
4005 tANI_U16 NeighborScanChannelMaxTime;
4006 tANI_U16 EmptyRefreshScanPeriod;
4007 tANI_U8 ValidChannelCount;
4008 tANI_U8 ValidChannelList[SIR_ROAM_MAX_CHANNELS];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08004009 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004010 tANI_U16 us24GProbeTemplateLen;
4011 tANI_U8 p24GProbeTemplate[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
4012 tANI_U16 us5GProbeTemplateLen;
4013 tANI_U8 p5GProbeTemplate[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07004014 tANI_U8 nProbes;
4015 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004016 tSirRoamNetworkType ConnectedNetwork;
4017 tSirMobilityDomainInfo MDID;
4018} tSirRoamOffloadScanReq, *tpSirRoamOffloadScanReq;
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08004019#endif //WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Jeff Johnson295189b2012-06-20 16:38:30 -07004020
4021#define SIR_NOCHANGE_POWER_VALUE 0xFFFFFFFF
4022
4023//Power Parameters Type
4024typedef enum
4025{
4026 eSIR_IGNORE_DTIM = 1,
4027 eSIR_LISTEN_INTERVAL = 2,
4028 eSIR_MCAST_BCAST_FILTER = 3,
4029 eSIR_ENABLE_BET = 4,
4030 eSIR_BET_INTERVAL = 5
4031}tPowerParamType;
4032
4033//Power Parameters Value s
4034typedef struct
4035{
4036 /* Ignore DTIM */
4037 tANI_U32 uIgnoreDTIM;
4038
4039 /* DTIM Period */
4040 tANI_U32 uDTIMPeriod;
4041
4042 /* Listen Interval */
4043 tANI_U32 uListenInterval;
4044
4045 /* Broadcast Multicas Filter */
4046 tANI_U32 uBcastMcastFilter;
4047
4048 /* Beacon Early Termination */
4049 tANI_U32 uEnableBET;
4050
4051 /* Beacon Early Termination Interval */
4052 tANI_U32 uBETInterval;
4053
Yue Mac24062f2013-05-13 17:01:29 -07004054 /* MAX LI for modulated DTIM */
4055 tANI_U32 uMaxLIModulatedDTIM;
4056
Jeff Johnson295189b2012-06-20 16:38:30 -07004057}tSirSetPowerParamsReq, *tpSirSetPowerParamsReq;
4058
4059typedef struct sSirTxPerTrackingParam
4060{
4061 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
4062 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. Once tx_stat_chk enable, firmware will check PER in this period periodically */
4063 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 */
4064 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
4065}tSirTxPerTrackingParam, *tpSirTxPerTrackingParam;
4066
4067#ifdef WLAN_FEATURE_PACKET_FILTERING
4068/*---------------------------------------------------------------------------
4069 Packet Filtering Parameters
4070---------------------------------------------------------------------------*/
4071#define SIR_IPV4_ADDR_LEN 4
4072#define SIR_MAC_ADDR_LEN 6
4073#define SIR_MAX_FILTER_TEST_DATA_LEN 8
4074#define SIR_MAX_NUM_MULTICAST_ADDRESS 240
4075#define SIR_MAX_NUM_FILTERS 20
4076#define SIR_MAX_NUM_TESTS_PER_FILTER 10
4077
4078//
4079// Receive Filter Parameters
4080//
4081typedef enum
4082{
4083 SIR_RCV_FILTER_TYPE_INVALID,
4084 SIR_RCV_FILTER_TYPE_FILTER_PKT,
4085 SIR_RCV_FILTER_TYPE_BUFFER_PKT,
4086 SIR_RCV_FILTER_TYPE_MAX_ENUM_SIZE
4087}eSirReceivePacketFilterType;
4088
4089typedef enum
4090{
4091 SIR_FILTER_HDR_TYPE_INVALID,
4092 SIR_FILTER_HDR_TYPE_MAC,
4093 SIR_FILTER_HDR_TYPE_ARP,
4094 SIR_FILTER_HDR_TYPE_IPV4,
4095 SIR_FILTER_HDR_TYPE_IPV6,
4096 SIR_FILTER_HDR_TYPE_UDP,
4097 SIR_FILTER_HDR_TYPE_MAX
4098}eSirRcvPktFltProtocolType;
4099
4100typedef enum
4101{
4102 SIR_FILTER_CMP_TYPE_INVALID,
4103 SIR_FILTER_CMP_TYPE_EQUAL,
4104 SIR_FILTER_CMP_TYPE_MASK_EQUAL,
4105 SIR_FILTER_CMP_TYPE_NOT_EQUAL,
4106 SIR_FILTER_CMP_TYPE_MASK_NOT_EQUAL,
4107 SIR_FILTER_CMP_TYPE_MAX
4108}eSirRcvPktFltCmpFlagType;
4109
4110typedef struct sSirRcvPktFilterFieldParams
4111{
4112 eSirRcvPktFltProtocolType protocolLayer;
4113 eSirRcvPktFltCmpFlagType cmpFlag;
4114 /* Length of the data to compare */
4115 tANI_U16 dataLength;
4116 /* from start of the respective frame header */
4117 tANI_U8 dataOffset;
4118 /* Reserved field */
4119 tANI_U8 reserved;
4120 /* Data to compare */
4121 tANI_U8 compareData[SIR_MAX_FILTER_TEST_DATA_LEN];
4122 /* Mask to be applied on the received packet data before compare */
4123 tANI_U8 dataMask[SIR_MAX_FILTER_TEST_DATA_LEN];
4124}tSirRcvPktFilterFieldParams, *tpSirRcvPktFilterFieldParams;
4125
4126typedef struct sSirRcvPktFilterCfg
4127{
4128 tANI_U8 filterId;
4129 eSirReceivePacketFilterType filterType;
4130 tANI_U32 numFieldParams;
4131 tANI_U32 coalesceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07004132 tSirMacAddr selfMacAddr;
4133 tSirMacAddr bssId; //Bssid of the connected AP
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004134 tSirRcvPktFilterFieldParams paramsData[SIR_MAX_NUM_TESTS_PER_FILTER];
Jeff Johnson295189b2012-06-20 16:38:30 -07004135}tSirRcvPktFilterCfgType, *tpSirRcvPktFilterCfgType;
4136
4137//
4138// Filter Packet Match Count Parameters
4139//
4140typedef struct sSirRcvFltPktMatchCnt
4141{
4142 tANI_U8 filterId;
4143 tANI_U32 matchCnt;
4144} tSirRcvFltPktMatchCnt, tpSirRcvFltPktMatchCnt;
4145
4146typedef struct sSirRcvFltPktMatchRsp
4147{
4148 tANI_U16 mesgType;
4149 tANI_U16 mesgLen;
4150
4151 /* Success or Failure */
4152 tANI_U32 status;
4153 tSirRcvFltPktMatchCnt filterMatchCnt[SIR_MAX_NUM_FILTERS];
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004154 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004155} tSirRcvFltPktMatchRsp, *tpSirRcvFltPktMatchRsp;
4156
4157//
4158// Receive Filter Clear Parameters
4159//
4160typedef struct sSirRcvFltPktClearParam
4161{
4162 tANI_U32 status; /* only valid for response message */
4163 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004164 tSirMacAddr selfMacAddr;
4165 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004166}tSirRcvFltPktClearParam, *tpSirRcvFltPktClearParam;
4167
4168//
4169// Multicast Address List Parameters
4170//
4171typedef struct sSirRcvFltMcAddrList
4172{
4173 tANI_U32 ulMulticastAddrCnt;
4174 tSirMacAddr multicastAddr[SIR_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07004175 tSirMacAddr selfMacAddr;
4176 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004177} tSirRcvFltMcAddrList, *tpSirRcvFltMcAddrList;
4178#endif // WLAN_FEATURE_PACKET_FILTERING
4179
4180//
4181// Generic version information
4182//
4183typedef struct
4184{
4185 tANI_U8 revision;
4186 tANI_U8 version;
4187 tANI_U8 minor;
4188 tANI_U8 major;
4189} tSirVersionType;
4190
4191typedef struct sAniBtAmpLogLinkReq
4192{
4193 // Common for all types are requests
4194 tANI_U16 msgType; // message type is same as the request type
4195 tANI_U16 msgLen; // length of the entire request
4196 tANI_U8 sessionId; //sme Session Id
4197 void *btampHandle; //AMP context
4198
4199} tAniBtAmpLogLinkReq, *tpAniBtAmpLogLinkReq;
4200
4201#ifdef WLAN_FEATURE_GTK_OFFLOAD
4202/*---------------------------------------------------------------------------
4203* WDA_GTK_OFFLOAD_REQ
4204*--------------------------------------------------------------------------*/
4205typedef struct
4206{
4207 tANI_U32 ulFlags; /* optional flags */
4208 tANI_U8 aKCK[16]; /* Key confirmation key */
4209 tANI_U8 aKEK[16]; /* key encryption key */
4210 tANI_U64 ullKeyReplayCounter; /* replay counter */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004211 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004212} tSirGtkOffloadParams, *tpSirGtkOffloadParams;
4213
4214/*---------------------------------------------------------------------------
4215* WDA_GTK_OFFLOAD_GETINFO_REQ
4216*--------------------------------------------------------------------------*/
4217typedef struct
4218{
4219 tANI_U16 mesgType;
4220 tANI_U16 mesgLen;
4221
4222 tANI_U32 ulStatus; /* success or failure */
4223 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
4224 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
4225 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
4226 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004227 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004228} tSirGtkOffloadGetInfoRspParams, *tpSirGtkOffloadGetInfoRspParams;
4229#endif // WLAN_FEATURE_GTK_OFFLOAD
4230
4231#ifdef WLAN_WAKEUP_EVENTS
4232/*---------------------------------------------------------------------------
4233 tSirWakeReasonInd
4234---------------------------------------------------------------------------*/
4235typedef struct
4236{
4237 tANI_U16 mesgType;
4238 tANI_U16 mesgLen;
4239 tANI_U32 ulReason; /* see tWakeReasonType */
4240 tANI_U32 ulReasonArg; /* argument specific to the reason type */
4241 tANI_U32 ulStoredDataLen; /* length of optional data stored in this message, in case
4242 HAL truncates the data (i.e. data packets) this length
4243 will be less than the actual length */
4244 tANI_U32 ulActualDataLen; /* actual length of data */
4245 tANI_U8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
4246 see specific wake type */
4247} tSirWakeReasonInd, *tpSirWakeReasonInd;
4248#endif // WLAN_WAKEUP_EVENTS
4249
4250/*---------------------------------------------------------------------------
4251 sAniSetTmLevelReq
4252---------------------------------------------------------------------------*/
4253typedef struct sAniSetTmLevelReq
4254{
4255 tANI_U16 tmMode;
4256 tANI_U16 newTmLevel;
4257} tAniSetTmLevelReq, *tpAniSetTmLevelReq;
4258
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004259#ifdef FEATURE_WLAN_TDLS
4260/* TDLS Request struct SME-->PE */
4261typedef struct sSirTdlsSendMgmtReq
4262{
4263 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4264 tANI_U16 length;
4265 tANI_U8 sessionId; // Session ID
4266 tANI_U16 transactionId; // Transaction ID for cmd
4267 tANI_U8 reqType;
4268 tANI_U8 dialog;
4269 tANI_U16 statusCode;
Hoonki Leea34dd892013-02-05 22:56:02 -08004270 tANI_U8 responder;
Pradeep Reddy POTTETIca171f82014-03-21 14:17:35 +05304271 tANI_U32 peerCapability;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004272 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4273 tSirMacAddr peerMac;
4274 tANI_U8 addIe[1]; //Variable lenght. Dont add any field after this.
4275} tSirTdlsSendMgmtReq, *tpSirSmeTdlsSendMgmtReq ;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004276
4277typedef enum TdlsAddOper
4278{
4279 TDLS_OPER_NONE,
4280 TDLS_OPER_ADD,
4281 TDLS_OPER_UPDATE
4282} eTdlsAddOper;
4283
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004284/* TDLS Request struct SME-->PE */
4285typedef struct sSirTdlsAddStaReq
4286{
4287 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4288 tANI_U16 length;
4289 tANI_U8 sessionId; // Session ID
4290 tANI_U16 transactionId; // Transaction ID for cmd
4291 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004292 eTdlsAddOper tdlsAddOper;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004293 tSirMacAddr peerMac;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004294 tANI_U16 capability;
4295 tANI_U8 extn_capability[SIR_MAC_MAX_EXTN_CAP];
4296 tANI_U8 supported_rates_length;
4297 tANI_U8 supported_rates[SIR_MAC_MAX_SUPP_RATES];
Hoonki Lee66b75f32013-04-16 18:30:07 -07004298 tANI_U8 htcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004299 tSirHTCap htCap;
Hoonki Lee66b75f32013-04-16 18:30:07 -07004300 tANI_U8 vhtcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004301 tSirVHTCap vhtCap;
4302 tANI_U8 uapsd_queues;
4303 tANI_U8 max_sp;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004304} tSirTdlsAddStaReq, *tpSirSmeTdlsAddStaReq ;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004305
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004306/* TDLS Response struct PE-->SME */
4307typedef struct sSirTdlsAddStaRsp
4308{
4309 tANI_U16 messageType;
4310 tANI_U16 length;
4311 tSirResultCodes statusCode;
4312 tSirMacAddr peerMac;
4313 tANI_U8 sessionId; // Session ID
4314 tANI_U16 staId ;
4315 tANI_U16 staType ;
4316 tANI_U8 ucastSig;
4317 tANI_U8 bcastSig;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004318 eTdlsAddOper tdlsAddOper;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004319} tSirTdlsAddStaRsp ;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304320
4321/* TDLS Request struct SME-->PE */
4322typedef struct
4323{
4324 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_ESTABLISH_REQ
4325 tANI_U16 length;
4326 tANI_U8 sessionId; // Session ID
4327 tANI_U16 transactionId; // Transaction ID for cmd
4328 tANI_U8 uapsdQueues; // Peer's uapsd Queues Information
4329 tANI_U8 maxSp; // Peer's Supported Maximum Service Period
4330 tANI_U8 isBufSta; // Does Peer Support as Buffer Station.
Naresh Jayarambc62ba42014-02-12 21:39:14 +05304331 tANI_U8 isOffChannelSupported; // Does Peer Support as TDLS Off Channel.
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304332 tANI_U8 isResponder; // Is Peer a responder.
4333 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4334 tSirMacAddr peerMac;
Naresh Jayarambc62ba42014-02-12 21:39:14 +05304335 tANI_U8 supportedChannelsLen;
4336 tANI_U8 supportedChannels[SIR_MAC_MAX_SUPP_CHANNELS];
4337 tANI_U8 supportedOperClassesLen;
4338 tANI_U8 supportedOperClasses[SIR_MAC_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304339}tSirTdlsLinkEstablishReq, *tpSirTdlsLinkEstablishReq;
4340
4341/* TDLS Request struct SME-->PE */
4342typedef struct
4343{
4344 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_ESTABLISH_RSP
4345 tANI_U16 length;
4346 tANI_U8 sessionId; // Session ID
4347 tANI_U16 transactionId; // Transaction ID for cmd
4348 tSirResultCodes statusCode;
4349 tSirMacAddr peerMac;
Masti, Narayanraddif10fd792015-12-15 15:01:01 +05304350 tANI_U16 sta_idx;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304351}tSirTdlsLinkEstablishReqRsp, *tpSirTdlsLinkEstablishReqRsp;
4352
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004353/* TDLS Request struct SME-->PE */
4354typedef struct sSirTdlsDelStaReq
4355{
4356 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4357 tANI_U16 length;
4358 tANI_U8 sessionId; // Session ID
4359 tANI_U16 transactionId; // Transaction ID for cmd
4360 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4361 tSirMacAddr peerMac;
4362} tSirTdlsDelStaReq, *tpSirSmeTdlsDelStaReq ;
4363/* TDLS Response struct PE-->SME */
4364typedef struct sSirTdlsDelStaRsp
4365{
4366 tANI_U16 messageType;
4367 tANI_U16 length;
4368 tANI_U8 sessionId; // Session ID
4369 tSirResultCodes statusCode;
4370 tSirMacAddr peerMac;
4371 tANI_U16 staId;
4372} tSirTdlsDelStaRsp, *tpSirTdlsDelStaRsp;
Hoonki Leee6bfe942013-02-05 15:01:19 -08004373/* TDLS Delete Indication struct PE-->SME */
4374typedef struct sSirTdlsDelStaInd
4375{
4376 tANI_U16 messageType;
4377 tANI_U16 length;
4378 tANI_U8 sessionId; // Session ID
4379 tSirMacAddr peerMac;
4380 tANI_U16 staId;
4381 tANI_U16 reasonCode;
4382} tSirTdlsDelStaInd, *tpSirTdlsDelStaInd;
Gopichand Nakkala2a0a1572013-02-10 21:39:16 -08004383typedef struct sSirTdlsDelAllPeerInd
4384{
4385 tANI_U16 messageType;
4386 tANI_U16 length;
4387 tANI_U8 sessionId; // Session ID
4388} tSirTdlsDelAllPeerInd, *tpSirTdlsDelAllPeerInd;
Gopichand Nakkalab977a972013-02-18 19:15:09 -08004389typedef struct sSirMgmtTxCompletionInd
4390{
4391 tANI_U16 messageType;
4392 tANI_U16 length;
4393 tANI_U8 sessionId; // Session ID
4394 tANI_U32 txCompleteStatus;
4395} tSirMgmtTxCompletionInd, *tpSirMgmtTxCompletionInd;
Atul Mittalc0f739f2014-07-31 13:47:47 +05304396
4397//tdlsoffchan
4398/* TDLS Channel Switch struct SME-->PE */
4399typedef struct
4400{
4401 tANI_U16 messageType; //eWNI_SME_TDLS_CHANNEL_SWITCH_REQ
4402 tANI_U16 length;
4403 tANI_U8 sessionId; // Session ID
4404 tANI_U16 transactionId; // Transaction ID for cmd
4405 tANI_U8 tdlsOffCh; // Target Off Channel
4406 tANI_U8 tdlsOffChBwOffset;// Target Off Channel Bandwidth offset
4407 tANI_U8 tdlsSwMode; // TDLS Off Channel Mode
4408 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4409 tSirMacAddr peerMac;
4410}tSirTdlsChanSwitch, *tpSirTdlsChanSwitch;
4411
Atul Mittal60bd4292014-08-14 12:19:27 +05304412/* TDLS Resp struct */
4413typedef struct
4414{
4415 tANI_U16 messageType; // eWNI_SME_TDLS_CHANNEL_SWITCH_RSP
4416 tANI_U16 length;
4417 tANI_U8 sessionId; // Session ID
4418 tANI_U16 transactionId; // Transaction ID for cmd
4419 tSirResultCodes statusCode;
4420 tSirMacAddr peerMac;
Masti, Narayanraddi36c67622016-01-06 16:07:34 +05304421 tANI_U16 sta_idx;
Atul Mittal60bd4292014-08-14 12:19:27 +05304422}tSirTdlsChanSwitchReqRsp, *tpSirTdlsChanSwitchReqRsp;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004423#endif /* FEATURE_WLAN_TDLS */
4424
Yathish9f22e662012-12-10 14:21:35 -08004425typedef struct sSirActiveModeSetBcnFilterReq
4426{
4427 tANI_U16 messageType;
4428 tANI_U16 length;
4429 tANI_U8 seesionId;
4430} tSirSetActiveModeSetBncFilterReq, *tpSirSetActiveModeSetBncFilterReq;
4431
Sandeep Puligilla11d49a62014-01-30 12:05:16 +05304432typedef enum
4433{
4434 HT40_OBSS_SCAN_PARAM_START,
4435 HT40_OBSS_SCAN_PARAM_UPDATE
4436}tHT40OBssScanCmdType;
4437
4438typedef struct sSirSmeHT40StopOBSSScanInd
4439{
4440 tANI_U16 messageType;
4441 tANI_U16 length;
4442 tANI_U8 seesionId;
4443} tSirSmeHT40OBSSStopScanInd, *tpSirSmeHT40OBSSStopScanInd;
4444
4445typedef struct sSirSmeHT40OBSSScanInd
4446{
4447 tANI_U16 messageType;
4448 tANI_U16 length;
Sandeep Puligilla9f384742014-04-11 02:27:04 +05304449 tSirMacAddr peerMacAddr;
Sandeep Puligilla11d49a62014-01-30 12:05:16 +05304450} tSirSmeHT40OBSSScanInd, *tpSirSmeHT40OBSSScanInd;
4451
4452typedef struct sSirHT40OBSSScanInd
4453{
4454 tHT40OBssScanCmdType cmdType;
4455 tSirScanType scanType;
4456 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
4457 tANI_U16 OBSSScanActiveDwellTime; // In TUs
4458 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
4459 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TU
4460 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
4461 tANI_U16 BSSWidthChannelTransitionDelayFactor;
4462 tANI_U16 OBSSScanActivityThreshold;
4463 tANI_U8 selfStaIdx;
4464 tANI_U8 bssIdx;
4465 tANI_U8 fortyMHZIntolerent;
4466 tANI_U8 channelCount;
4467 tANI_U8 channels[SIR_ROAM_MAX_CHANNELS];
4468 tANI_U8 currentOperatingClass;
4469 tANI_U16 ieFieldLen;
4470 tANI_U8 ieField[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
4471} tSirHT40OBSSScanInd, *tpSirHT40OBSSScanInd;
4472
4473
Gopichand Nakkalacca24d12013-03-07 17:05:07 +05304474//Reset AP Caps Changed
4475typedef struct sSirResetAPCapsChange
4476{
4477 tANI_U16 messageType;
4478 tANI_U16 length;
4479 tSirMacAddr bssId;
4480} tSirResetAPCapsChange, *tpSirResetAPCapsChange;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004481/// Definition for Candidate found indication from FW
4482typedef struct sSirSmeCandidateFoundInd
4483{
4484 tANI_U16 messageType; // eWNI_SME_CANDIDATE_FOUND_IND
4485 tANI_U16 length;
4486 tANI_U8 sessionId; // Session Identifier
4487} tSirSmeCandidateFoundInd, *tpSirSmeCandidateFoundInd;
Yathish9f22e662012-12-10 14:21:35 -08004488
Chet Lanctot186b5732013-03-18 10:26:30 -07004489#ifdef WLAN_FEATURE_11W
4490typedef struct sSirWlanExcludeUnencryptParam
4491{
4492 tANI_BOOLEAN excludeUnencrypt;
4493 tSirMacAddr bssId;
4494}tSirWlanExcludeUnencryptParam,*tpSirWlanExcludeUnencryptParam;
4495#endif
4496
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07004497typedef struct sAniHandoffReq
4498{
4499 // Common for all types are requests
4500 tANI_U16 msgType; // message type is same as the request type
4501 tANI_U16 msgLen; // length of the entire request
4502 tANI_U8 sessionId;
4503 tANI_U8 bssid[WNI_CFG_BSSID_LEN];
4504 tANI_U8 channel;
4505} tAniHandoffReq, *tpAniHandoffReq;
4506
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05304507typedef struct sSirScanOffloadReq {
4508 tANI_U8 sessionId;
4509 tSirMacAddr bssId;
4510 tANI_U8 numSsid;
4511 tSirMacSSid ssId[SIR_SCAN_MAX_NUM_SSID];
4512 tANI_U8 hiddenSsid;
4513 tSirMacAddr selfMacAddr;
4514 tSirBssType bssType;
4515 tANI_U8 dot11mode;
4516 tSirScanType scanType;
4517 tANI_U32 minChannelTime;
4518 tANI_U32 maxChannelTime;
4519 tANI_BOOLEAN p2pSearch;
4520 tANI_U16 uIEFieldLen;
4521 tANI_U16 uIEFieldOffset;
4522 tSirChannelList channelList;
4523 /*-----------------------------
4524 sSirScanOffloadReq....
4525 -----------------------------
4526 uIEFieldLen
4527 -----------------------------
4528 uIEFieldOffset ----+
4529 ----------------------------- |
4530 channelList.numChannels |
4531 ----------------------------- |
4532 ... variable size up to |
4533 channelNumber[numChannels-1] |
4534 This can be zero, if |
4535 numChannel is zero. |
4536 ----------------------------- <--+
4537 ... variable size uIEField
4538 up to uIEFieldLen (can be 0)
4539 -----------------------------*/
4540} tSirScanOffloadReq, *tpSirScanOffloadReq;
Gopichand Nakkala2c231c82013-06-11 17:49:16 +05304541
4542typedef enum sSirScanEventType {
4543 SCAN_EVENT_STARTED=0x1, /* Scan command accepted by FW */
4544 SCAN_EVENT_COMPLETED=0x2, /* Scan has been completed by FW */
4545 SCAN_EVENT_BSS_CHANNEL=0x4, /* FW is going to move to HOME channel */
4546 SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
4547 SCAN_EVENT_DEQUEUED=0x10, /* scan request got dequeued */
4548 SCAN_EVENT_PREEMPTED=0x20, /* preempted by other high priority scan */
4549 SCAN_EVENT_START_FAILED=0x40, /* scan start failed */
4550 SCAN_EVENT_RESTARTED=0x80, /*scan restarted*/
4551 SCAN_EVENT_MAX=0x8000
4552} tSirScanEventType;
4553
4554typedef struct sSirScanOffloadEvent{
4555 tSirScanEventType event;
4556 tSirResultCodes reasonCode;
4557 tANI_U32 chanFreq;
4558 tANI_U32 requestor;
4559 tANI_U32 scanId;
4560} tSirScanOffloadEvent, *tpSirScanOffloadEvent;
4561
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05304562typedef struct sSirUpdateChanParam
4563{
4564 tANI_U8 chanId;
4565 tANI_U8 pwr;
Leela Venkata Kiran Kumar Reddy Chiralac6663f72014-02-03 21:04:58 -08004566 tANI_BOOLEAN dfsSet;
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05304567} tSirUpdateChanParam, *tpSirUpdateChanParam;
4568
4569typedef struct sSirUpdateChan
4570{
Sachin Ahujacb64fc82015-01-12 17:01:05 +05304571 tANI_U8 regId;
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05304572 tANI_U8 numChan;
4573 tSirUpdateChanParam chanParam[1];
4574} tSirUpdateChanList, *tpSirUpdateChanList;
4575
Leo Chang9056f462013-08-01 19:21:11 -07004576#ifdef FEATURE_WLAN_LPHB
4577#define SIR_LPHB_FILTER_LEN 64
4578
4579typedef enum
4580{
4581 LPHB_SET_EN_PARAMS_INDID,
4582 LPHB_SET_TCP_PARAMS_INDID,
4583 LPHB_SET_TCP_PKT_FILTER_INDID,
4584 LPHB_SET_UDP_PARAMS_INDID,
4585 LPHB_SET_UDP_PKT_FILTER_INDID,
4586 LPHB_SET_NETWORK_INFO_INDID,
4587} LPHBIndType;
4588
4589typedef struct sSirLPHBEnableStruct
4590{
4591 v_U8_t enable;
4592 v_U8_t item;
4593 v_U8_t session;
4594} tSirLPHBEnableStruct;
4595
4596typedef struct sSirLPHBTcpParamStruct
4597{
4598 v_U32_t srv_ip;
4599 v_U32_t dev_ip;
4600 v_U16_t src_port;
4601 v_U16_t dst_port;
4602 v_U16_t timeout;
4603 v_U8_t session;
4604 tSirMacAddr gateway_mac;
Leo Changd9df8aa2013-09-26 13:32:26 -07004605 uint16 timePeriodSec; // in seconds
4606 uint32 tcpSn;
Leo Chang9056f462013-08-01 19:21:11 -07004607} tSirLPHBTcpParamStruct;
4608
4609typedef struct sSirLPHBTcpFilterStruct
4610{
4611 v_U16_t length;
4612 v_U8_t offset;
4613 v_U8_t session;
4614 v_U8_t filter[SIR_LPHB_FILTER_LEN];
4615} tSirLPHBTcpFilterStruct;
4616
4617typedef struct sSirLPHBUdpParamStruct
4618{
4619 v_U32_t srv_ip;
4620 v_U32_t dev_ip;
4621 v_U16_t src_port;
4622 v_U16_t dst_port;
4623 v_U16_t interval;
4624 v_U16_t timeout;
4625 v_U8_t session;
4626 tSirMacAddr gateway_mac;
4627} tSirLPHBUdpParamStruct;
4628
4629typedef struct sSirLPHBUdpFilterStruct
4630{
4631 v_U16_t length;
4632 v_U8_t offset;
4633 v_U8_t session;
4634 v_U8_t filter[SIR_LPHB_FILTER_LEN];
4635} tSirLPHBUdpFilterStruct;
4636
4637typedef struct sSirLPHBReq
4638{
4639 v_U16_t cmd;
4640 v_U16_t dummy;
4641 union
4642 {
4643 tSirLPHBEnableStruct lphbEnableReq;
4644 tSirLPHBTcpParamStruct lphbTcpParamReq;
4645 tSirLPHBTcpFilterStruct lphbTcpFilterReq;
4646 tSirLPHBUdpParamStruct lphbUdpParamReq;
4647 tSirLPHBUdpFilterStruct lphbUdpFilterReq;
4648 } params;
4649} tSirLPHBReq;
4650
Leo Changd9df8aa2013-09-26 13:32:26 -07004651typedef struct sSirLPHBInd
Leo Chang9056f462013-08-01 19:21:11 -07004652{
4653 v_U8_t sessionIdx;
4654 v_U8_t protocolType; /*TCP or UDP*/
4655 v_U8_t eventReason;
Leo Changd9df8aa2013-09-26 13:32:26 -07004656} tSirLPHBInd;
Leo Chang9056f462013-08-01 19:21:11 -07004657#endif /* FEATURE_WLAN_LPHB */
4658
Yue Mab9c86f42013-08-14 15:59:08 -07004659typedef struct sSirAddPeriodicTxPtrn
4660{
4661 /* MAC Address for the adapter */
4662 tSirMacAddr macAddress;
4663
4664 tANI_U8 ucPtrnId; // Pattern ID
4665 tANI_U16 ucPtrnSize; // Pattern size
4666 tANI_U32 usPtrnIntervalMs; // In msec
4667 tANI_U8 ucPattern[PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4668} tSirAddPeriodicTxPtrn, *tpSirAddPeriodicTxPtrn;
4669
4670typedef struct sSirDelPeriodicTxPtrn
4671{
4672 /* MAC Address for the adapter */
4673 tSirMacAddr macAddress;
4674
4675 /* Bitmap of pattern IDs that need to be deleted */
4676 tANI_U32 ucPatternIdBitmap;
4677} tSirDelPeriodicTxPtrn, *tpSirDelPeriodicTxPtrn;
4678
Chittajit Mitraf5413a42013-10-18 14:20:08 -07004679typedef struct sSirRateUpdateInd
4680{
4681 /* 0 implies RA, positive value implies fixed rate, -1 implies ignore this
4682 * param.
4683 */
4684 tANI_S32 ucastDataRate;
4685
4686 /* TX flag to differentiate between HT20, HT40 etc */
4687 tTxrateinfoflags ucastDataRateTxFlag;
4688
4689 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
4690 tSirMacAddr bssid;
4691
4692 /*
4693 * 0 implies MCAST RA, positive value implies fixed rate,
4694 * -1 implies ignore this param
4695 */
Abhishek Singh00b71972016-01-07 10:51:04 +05304696 tANI_S32 rmcDataRate;//unit Mbpsx10
Chittajit Mitraf5413a42013-10-18 14:20:08 -07004697
4698 /* TX flag to differentiate between HT20, HT40 etc */
Abhishek Singh00b71972016-01-07 10:51:04 +05304699 tTxrateinfoflags rmcDataRateTxFlag;
Chittajit Mitraf5413a42013-10-18 14:20:08 -07004700
4701 /*
4702 * MCAST(or BCAST) fixed data rate in 2.4 GHz, unit Mbpsx10,
4703 * 0 implies ignore
4704 */
4705 tANI_U32 mcastDataRate24GHz;
4706
4707 /* TX flag to differentiate between HT20, HT40 etc */
4708 tTxrateinfoflags mcastDataRate24GHzTxFlag;
4709
4710 /*
4711 * MCAST(or BCAST) fixed data rate in 5 GHz,
4712 * unit Mbpsx10, 0 implies ignore
4713 */
4714 tANI_U32 mcastDataRate5GHz;
4715
4716 /* TX flag to differentiate between HT20, HT40 etc */
4717 tTxrateinfoflags mcastDataRate5GHzTxFlag;
4718
4719} tSirRateUpdateInd, *tpSirRateUpdateInd;
4720
Abhishek Singh00b71972016-01-07 10:51:04 +05304721#ifdef WLAN_FEATURE_RMC
4722
4723#define SIR_RMC_NUM_MAX_RULERS 8 /* HAL_NUM_MAX_RULERS */
4724typedef struct sSirSetRMCReq
4725{
4726 tANI_U16 msgType;
4727 tANI_U16 msgLen;
4728 tSirMacAddr mcastTransmitter;
4729} tSirSetRMCReq, *tpSirSetRMCReq;
4730
4731typedef struct sSirRMCInfo
4732{
4733 tANI_U32 dialogToken;
4734 tANI_U8 action;
4735 tSirMacAddr mcastRuler;
4736} tSirRMCInfo, *tpSirRMCInfo;
4737
4738typedef struct sSirRmcRulerSelectInd
4739{
4740 tANI_U16 status;
4741 tSirMacAddr mcastTransmitter;
4742 tSirMacAddr mcastGroup;
4743 tSirMacAddr ruler[SIR_RMC_NUM_MAX_RULERS];
4744} tSirRmcRulerSelectInd, *tpSirRmcRulerSelectInd;
4745
4746typedef struct sSirRmcBecomeRulerInd
4747{
4748 tANI_U16 status;
4749 tSirMacAddr mcastTransmitter;
4750 tSirMacAddr mcastGroup;
4751} tSirRmcBecomeRulerInd, *tpSirRmcBecomeRulerInd;
4752
4753typedef struct sSirRmcRulerReq
4754{
4755 // Common for all types are requests
4756 tANI_U16 msgType; // message type is same as the request type
4757 tANI_U16 msgLen; // length of the entire request
4758 tANI_U8 cmd; // tRulerReqCmdType
4759 tSirMacAddr mcastTransmitter;
4760 tSirMacAddr mcastGroup;
4761 tSirMacAddr blacklist[SIR_RMC_NUM_MAX_RULERS];
4762} tSirRmcRulerReq, *tpSirRmcRulerReq;
4763
4764typedef struct sSirRmcUpdateInd
4765{
4766 // Common for all types are requests
4767 tANI_U16 msgType; // message type is same as the request type
4768 tANI_U16 msgLen; // length of the entire request
4769 tANI_U8 indication; // trulerUpdateIndType
4770 tANI_U8 role; // tRoleType
4771 tSirMacAddr mcastTransmitter;
4772 tSirMacAddr mcastGroup;
4773 tSirMacAddr mcastRuler;
4774 tSirMacAddr ruler[SIR_RMC_NUM_MAX_RULERS];
4775} tSirRmcUpdateInd, *tpSirRmcUpdateInd;
4776
4777/*---------------------------------------------------------------------------
4778* tSirIbssGetPeerInfoReqParams
4779*--------------------------------------------------------------------------*/
4780typedef struct
4781{
4782 tANI_BOOLEAN allPeerInfoReqd; // If set, all IBSS peers stats are reported
4783 tANI_U8 staIdx; // If allPeerInfoReqd is not set, only stats
4784 // of peer with staIdx is reported
4785}tSirIbssGetPeerInfoReqParams, *tpSirIbssGetPeerInfoReqParams;
4786
4787/*---------------------------------------------------------------------------
4788* tSirIbssGetPeerInfoParams
4789*--------------------------------------------------------------------------*/
4790typedef struct
4791{
4792 tANI_U8 staIdx; //StaIdx
4793 tANI_U32 txRate; //Tx Rate
4794 tANI_U32 mcsIndex; //MCS Index
4795 tANI_U32 txRateFlags; //TxRate Flags
4796 tANI_S8 rssi; //RSSI
4797}tSirIbssPeerInfoParams;
4798
4799typedef struct
4800{
4801 tANI_U32 status;
4802 tANI_U8 numPeers;
4803 tSirIbssPeerInfoParams peerInfoParams[32];
4804}tSirPeerInfoRspParams, *tpSirIbssPeerInfoRspParams;
4805
4806/*---------------------------------------------------------------------------
4807* tSirIbssGetPeerInfoRspParams
4808*--------------------------------------------------------------------------*/
4809typedef struct
4810{
4811 tANI_U16 mesgType;
4812 tANI_U16 mesgLen;
4813 tSirPeerInfoRspParams ibssPeerInfoRspParams;
4814} tSirIbssGetPeerInfoRspParams, *tpSirIbssGetPeerInfoRspParams;
4815#endif /* WLAN_FEATURE_RMC */
4816
Rajeev79dbe4c2013-10-05 11:03:42 +05304817#ifdef FEATURE_WLAN_BATCH_SCAN
4818// Set batch scan resposne from FW
4819typedef struct
4820{
4821 /*maximum number of scans which FW can cache*/
4822 tANI_U32 nScansToBatch;
4823} tSirSetBatchScanRsp, *tpSirSetBatchScanRsp;
4824
4825// Set batch scan request to FW
4826typedef struct
4827{
4828 tANI_U32 scanFrequency; /* how frequent to do scan - default 30Sec*/
4829 tANI_U32 numberOfScansToBatch; /* number of scans to batch */
4830 tANI_U32 bestNetwork; /* best networks in terms of rssi */
4831 tANI_U8 rfBand; /* band to scan :
4832 0 ->both Band, 1->2.4Ghz Only
4833 and 2-> 5GHz Only */
4834 tANI_U32 rtt; /* set if required to do RTT it is not
4835 supported in current version */
4836} tSirSetBatchScanReq, *tpSirSetBatchScanReq;
4837
4838
4839// Stop batch scan request to FW
4840typedef struct
4841{
4842 tANI_U32 param;
4843} tSirStopBatchScanInd, *tpSirStopBatchScanInd;
4844
4845// Trigger batch scan result indication to FW
4846typedef struct
4847{
4848 tANI_U32 param;
4849} tSirTriggerBatchScanResultInd, *tpSirTriggerBatchScanResultInd;
4850
4851// Batch scan result indication from FW
4852typedef PACKED_PRE struct PACKED_POST
4853{
4854 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004855 tANI_U8 ssid[33]; /* SSID */
Rajeev79dbe4c2013-10-05 11:03:42 +05304856 tANI_U8 ch; /* Channel */
c_hpothube955202014-05-22 18:07:00 +05304857 tANI_S8 rssi; /* RSSI or Level */
Rajeev79dbe4c2013-10-05 11:03:42 +05304858 /*Timestamp when Network was found. Used to calculate age based on timestamp
4859 in GET_RSP msg header */
4860 tANI_U32 timestamp;
4861} tSirBatchScanNetworkInfo, *tpSirBatchScanNetworkInfo;
4862
4863typedef PACKED_PRE struct PACKED_POST
4864{
4865 tANI_U32 scanId; /* Scan List ID. */
4866 /*No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg*/
4867 tANI_U32 numNetworksInScanList;
4868 /*Variable data ptr: Number of AP in Scan List*/
4869 /*Following numNetworkInScanList is data of type tSirBatchScanNetworkInfo
4870 *of sizeof(tSirBatchScanNetworkInfo) * numNetworkInScanList */
4871 tANI_U8 scanList[1];
4872} tSirBatchScanList, *tpSirBatchScanList;
4873
4874typedef PACKED_PRE struct PACKED_POST
4875{
4876 tANI_U32 timestamp;
4877 tANI_U32 numScanLists;
4878 boolean isLastResult;
4879 /* Variable Data ptr: Number of Scan Lists*/
4880 /* following isLastResult is data of type tSirBatchScanList
4881 * of sizeof(tSirBatchScanList) * numScanLists*/
4882 tANI_U8 scanResults[1];
4883} tSirBatchScanResultIndParam, *tpSirBatchScanResultIndParam;
4884
4885#endif // FEATURE_WLAN_BATCH_SCAN
4886
Leo Chang0b0e45a2013-12-15 15:18:55 -08004887#ifdef FEATURE_WLAN_CH_AVOID
Abhishek Singhe34eb552015-06-18 10:12:15 +05304888#define SIR_CH_AVOID_MAX_RANGE 15
Leo Chang0b0e45a2013-12-15 15:18:55 -08004889
4890typedef struct sSirChAvoidFreqType
4891{
4892 tANI_U32 startFreq;
4893 tANI_U32 endFreq;
4894} tSirChAvoidFreqType;
4895
4896typedef struct sSirChAvoidIndType
4897{
4898 tANI_U32 avoidRangeCount;
4899 tSirChAvoidFreqType avoidFreqRange[SIR_CH_AVOID_MAX_RANGE];
4900} tSirChAvoidIndType;
4901#endif /* FEATURE_WLAN_CH_AVOID */
Rajeev79dbe4c2013-10-05 11:03:42 +05304902
c_hpothu92367912014-05-01 15:18:17 +05304903typedef void (*pGetBcnMissRateCB)( tANI_S32 bcnMissRate,
4904 VOS_STATUS status, void *data);
Abhishek Singh08aa7762014-12-16 13:59:03 +05304905typedef void (*tSirFWStatsCallback)(VOS_STATUS status,
4906 tSirFwStatsResult *fwStatsRsp, void *pContext);
Abhishek Singh7d624e12015-11-30 14:29:27 +05304907typedef void (*sir_mgmt_frame_ind_callback)(tSirSmeMgmtFrameInd *frame_ind);
4908
Mahesh A Saptasagarcfc65ae2015-12-22 15:06:10 +05304909typedef void (*tAntennaDivSelCB)(int antennaId, void *pContext);
Abhishek Singh7d624e12015-11-30 14:29:27 +05304910
4911/**
4912 * struct sir_sme_mgmt_frame_cb_req - Register a
4913 * management frame callback req
4914 * @message_type: message id
4915 * @length: msg length
4916 * @callback: callback for management frame indication
4917 */
4918struct sir_sme_mgmt_frame_cb_req
4919{
4920 tANI_U16 message_type;
4921 tANI_U16 length;
4922 sir_mgmt_frame_ind_callback callback;
4923};
4924
c_hpothu92367912014-05-01 15:18:17 +05304925typedef PACKED_PRE struct PACKED_POST
4926{
4927 tANI_U32 msgLen;
4928 tANI_U8 bssid[WNI_CFG_BSSID_LEN];
4929 void *callback;
4930 void *data;
4931}tSirBcnMissRateReq;
4932
4933typedef PACKED_PRE struct PACKED_POST
4934{
4935 pGetBcnMissRateCB callback;
4936 void *data;
4937}tSirBcnMissRateInfo;
4938
Sunil Duttc69bccb2014-05-26 21:30:20 +05304939#ifdef WLAN_FEATURE_LINK_LAYER_STATS
4940
4941typedef struct
4942{
4943 u32 reqId;
Dino Mycled3d50022014-07-07 12:58:25 +05304944 tSirMacAddr macAddr;
Sunil Duttc69bccb2014-05-26 21:30:20 +05304945 u32 mpduSizeThreshold;
4946 u32 aggressiveStatisticsGathering;
4947}tSirLLStatsSetReq, *tpSirLLStatsSetReq;
4948
4949typedef struct
4950{
4951 u32 reqId;
Dino Mycled3d50022014-07-07 12:58:25 +05304952 tSirMacAddr macAddr;
Sunil Duttc69bccb2014-05-26 21:30:20 +05304953 u32 paramIdMask;
4954}tSirLLStatsGetReq, *tpSirLLStatsGetReq;
4955
4956typedef struct
4957{
4958 u32 reqId;
Dino Mycled3d50022014-07-07 12:58:25 +05304959 tSirMacAddr macAddr;
Sunil Duttc69bccb2014-05-26 21:30:20 +05304960 u32 statsClearReqMask;
4961 u8 stopReq;
4962}tSirLLStatsClearReq, *tpSirLLStatsClearReq;
4963
Abhishek Singh3ae443b2014-10-08 11:49:27 +05304964typedef PACKED_PRE struct PACKED_POST
4965{
4966 u32 stats;
4967 tSirFWStatsCallback callback;
4968 void *data;
4969}tSirFWStatsGetReq;
4970
4971typedef PACKED_PRE struct PACKED_POST
4972{
4973 tSirFWStatsCallback callback;
4974 void *data;
4975}tSirFWStatsInfo;
4976
Mahesh A Saptasagarcfc65ae2015-12-22 15:06:10 +05304977typedef PACKED_PRE struct PACKED_POST
4978{
4979 tANI_U16 status;
4980 tANI_U32 selectedAntennaId;
4981 tANI_U32 reserved;
4982} tSirAntennaDivSelRsp, *tpSirntennaDivSelRsp;
4983
4984typedef PACKED_PRE struct PACKED_POST
4985{
4986 tAntennaDivSelCB callback;
4987 void *data;
4988 tANI_U32 reserved;
4989}tSirAntennaDiversitySelectionReq;
4990
4991typedef PACKED_PRE struct PACKED_POST
4992{
4993 tAntennaDivSelCB callback;
4994 void *data;
4995}tSirAntennaDiversitySelectionInfo;
4996
Sunil Duttc69bccb2014-05-26 21:30:20 +05304997/*---------------------------------------------------------------------------
4998 WLAN_HAL_LL_NOTIFY_STATS
4999---------------------------------------------------------------------------*/
5000
5001
5002/******************************LINK LAYER Statistics**********************/
5003
5004typedef int tSirWifiRadio;
5005typedef int tSirWifiChannel;
5006typedef int tSirwifiTxRate;
5007
5008/* channel operating width */
5009typedef PACKED_PRE enum PACKED_POST
5010{
5011 WIFI_CHAN_WIDTH_20 = 0,
5012 WIFI_CHAN_WIDTH_40 = 1,
5013 WIFI_CHAN_WIDTH_80 = 2,
5014 WIFI_CHAN_WIDTH_160 = 3,
5015 WIFI_CHAN_WIDTH_80P80 = 4,
5016 WIFI_CHAN_WIDTH_5 = 5,
5017 WIFI_CHAN_WIDTH_10 = 6,
5018} tSirWifiChannelWidth;
5019
5020typedef PACKED_PRE enum PACKED_POST
5021{
5022 WIFI_DISCONNECTED = 0,
5023 WIFI_AUTHENTICATING = 1,
5024 WIFI_ASSOCIATING = 2,
5025 WIFI_ASSOCIATED = 3,
5026 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
5027 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
5028} tSirWifiConnectionState;
5029
5030typedef PACKED_PRE enum PACKED_POST
5031{
5032 WIFI_ROAMING_IDLE = 0,
5033 WIFI_ROAMING_ACTIVE = 1,
5034} tSirWifiRoamState;
5035
5036typedef PACKED_PRE enum PACKED_POST
5037{
Dino Myclec8f3f332014-07-21 16:48:27 +05305038 WIFI_INTERFACE_UNKNOWN = -1,
Sunil Duttc69bccb2014-05-26 21:30:20 +05305039 WIFI_INTERFACE_STA = 0,
5040 WIFI_INTERFACE_SOFTAP = 1,
5041 WIFI_INTERFACE_IBSS = 2,
5042 WIFI_INTERFACE_P2P_CLIENT = 3,
5043 WIFI_INTERFACE_P2P_GO = 4,
5044 WIFI_INTERFACE_NAN = 5,
5045 WIFI_INTERFACE_MESH = 6,
5046 } tSirWifiInterfaceMode;
5047
5048// set for QOS association
5049#define WIFI_CAPABILITY_QOS 0x00000001
5050// set for protected association (802.11 beacon frame control protected bit set)
5051#define WIFI_CAPABILITY_PROTECTED 0x00000002
5052// set if 802.11 Extended Capabilities element interworking bit is set
5053#define WIFI_CAPABILITY_INTERWORKING 0x00000004
5054// set for HS20 association
5055#define WIFI_CAPABILITY_HS20 0x00000008
5056// set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
5057#define WIFI_CAPABILITY_SSID_UTF8 0x00000010
5058// set is 802.11 Country Element is present
5059#define WIFI_CAPABILITY_COUNTRY 0x00000020
5060
5061typedef PACKED_PRE struct PACKED_POST
5062{
5063 /*tSirWifiInterfaceMode*/
5064 // interface mode
Dino Myclec8f3f332014-07-21 16:48:27 +05305065 tANI_S8 mode;
Sunil Duttc69bccb2014-05-26 21:30:20 +05305066 // interface mac address (self)
5067 tSirMacAddr macAddr;
5068 /*tSirWifiConnectionState*/
5069 // connection state (valid for STA, CLI only)
5070 tANI_U8 state;
5071 /*tSirWifiRoamState*/
5072 // roaming state
5073 tANI_U8 roaming;
5074 // WIFI_CAPABILITY_XXX (self)
5075 tANI_U32 capabilities;
5076 // null terminated SSID
5077 tANI_U8 ssid[33];
5078 // bssid
5079 tSirMacAddr bssid;
5080 // country string advertised by AP
5081 tANI_U8 apCountryStr[WNI_CFG_COUNTRY_CODE_LEN];
5082 // country string for this association
5083 tANI_U8 countryStr[WNI_CFG_COUNTRY_CODE_LEN];
5084} tSirWifiInterfaceInfo, *tpSirWifiInterfaceInfo;
5085
5086/* channel information */
5087typedef PACKED_PRE struct PACKED_POST
5088{
5089 // channel width (20, 40, 80, 80+80, 160)
5090 tSirWifiChannelWidth width;
5091 // primary 20 MHz channel
5092 tSirWifiChannel centerFreq;
5093 // center frequency (MHz) first segment
5094 tSirWifiChannel centerFreq0;
5095 // center frequency (MHz) second segment
5096 tSirWifiChannel centerFreq1;
5097} tSirWifiChannelInfo, *tpSirWifiChannelInfo;
5098
5099/* wifi rate info */
5100typedef PACKED_PRE struct PACKED_POST
5101{
5102 // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
5103 tANI_U32 preamble :3;
5104 // 0:1x1, 1:2x2, 3:3x3, 4:4x4
5105 tANI_U32 nss :2;
5106 // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
5107 tANI_U32 bw :3;
5108 // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
5109 // HT/VHT it would be mcs index
5110 tANI_U32 rateMcsIdx :8;
5111 // reserved
5112 tANI_U32 reserved :16;
5113 // units of 100 Kbps
5114 tANI_U32 bitrate;
5115} tSirWifiRate, *tpSirWifiRate;
5116
5117/* channel statistics */
5118typedef PACKED_PRE struct PACKED_POST
5119{
5120 // channel
5121 tSirWifiChannelInfo channel;
5122 // msecs the radio is awake (32 bits number accruing over time)
5123 tANI_U32 onTime;
5124 // msecs the CCA register is busy (32 bits number accruing over time)
5125 tANI_U32 ccaBusyTime;
5126} tSirWifiChannelStats, *tpSirWifiChannelStats;
5127
5128/* radio statistics */
5129typedef PACKED_PRE struct PACKED_POST
5130{
5131 // wifi radio (if multiple radio supported)
5132 tSirWifiRadio radio;
5133 // msecs the radio is awake (32 bits number accruing over time)
5134 tANI_U32 onTime;
5135 /* msecs the radio is transmitting
5136 * (32 bits number accruing over time)
5137 */
5138 tANI_U32 txTime;
5139 /* msecs the radio is in active receive
5140 *(32 bits number accruing over time)
5141 */
5142 tANI_U32 rxTime;
5143 /* msecs the radio is awake due to all scan
5144 * (32 bits number accruing over time)
5145 */
5146 tANI_U32 onTimeScan;
5147 /* msecs the radio is awake due to NAN
5148 * (32 bits number accruing over time)
5149 */
5150 tANI_U32 onTimeNbd;
Dino Mycle2c198072014-06-10 10:15:52 +05305151 /* msecs the radio is awake due to EXTScan
Sunil Duttc69bccb2014-05-26 21:30:20 +05305152 * (32 bits number accruing over time)
5153 */
Dino Mycle2c198072014-06-10 10:15:52 +05305154 tANI_U32 onTimeEXTScan;
Sunil Duttc69bccb2014-05-26 21:30:20 +05305155 /* msecs the radio is awake due to roam?scan
5156 * (32 bits number accruing over time)
5157 */
5158 tANI_U32 onTimeRoamScan;
5159 /* msecs the radio is awake due to PNO scan
5160 * (32 bits number accruing over time)
5161 */
5162 tANI_U32 onTimePnoScan;
5163 /* msecs the radio is awake due to HS2.0 scans and GAS exchange
5164 * (32 bits number accruing over time)
5165 */
5166 tANI_U32 onTimeHs20;
5167 // number of channels
5168 tANI_U32 numChannels;
5169 // channel statistics tSirWifiChannelStats
5170 tSirWifiChannelStats channels[1];
5171} tSirWifiRadioStat, *tpSirWifiRadioStat;
5172
5173/* per rate statistics */
5174typedef PACKED_PRE struct PACKED_POST
5175{
5176 // rate information
5177 tSirWifiRate rate;
5178 // number of successfully transmitted data pkts (ACK rcvd)
5179 tANI_U32 txMpdu;
5180 // number of received data pkts
5181 tANI_U32 rxMpdu;
5182 // number of data packet losses (no ACK)
5183 tANI_U32 mpduLost;
5184 // total number of data pkt retries *
5185 tANI_U32 retries;
5186 // number of short data pkt retries
5187 tANI_U32 retriesShort;
5188 // number of long data pkt retries
5189 tANI_U32 retriesLong;
5190} tSirWifiRateStat, *tpSirWifiRateStat;
5191
5192/* access categories */
5193typedef PACKED_PRE enum PACKED_POST
5194{
5195 WIFI_AC_VO = 0,
5196 WIFI_AC_VI = 1,
5197 WIFI_AC_BE = 2,
5198 WIFI_AC_BK = 3,
5199 WIFI_AC_MAX = 4,
5200} tSirWifiTrafficAc;
5201
5202/* wifi peer type */
5203typedef PACKED_PRE enum PACKED_POST
5204{
5205 WIFI_PEER_STA,
5206 WIFI_PEER_AP,
5207 WIFI_PEER_P2P_GO,
5208 WIFI_PEER_P2P_CLIENT,
5209 WIFI_PEER_NAN,
5210 WIFI_PEER_TDLS,
5211 WIFI_PEER_INVALID,
5212} tSirWifiPeerType;
5213
5214/* per peer statistics */
5215typedef PACKED_PRE struct PACKED_POST
5216{
5217 // peer type (AP, TDLS, GO etc.)
5218 tSirWifiPeerType type;
5219 // mac address
5220 tSirMacAddr peerMacAddress;
5221 // peer WIFI_CAPABILITY_XXX
5222 tANI_U32 capabilities;
5223 // number of rates
5224 tANI_U32 numRate;
5225 // per rate statistics, number of entries = num_rate
5226 tSirWifiRateStat rateStats[1];
5227} tSirWifiPeerInfo, *tpSirWifiPeerInfo;
5228
5229/* per access category statistics */
5230typedef PACKED_PRE struct PACKED_POST
5231{
5232 /*tSirWifiTrafficAc*/
5233 // access category (VI, VO, BE, BK)
5234 tANI_U8 ac;
5235 // number of successfully transmitted unicast data pkts (ACK rcvd)
5236 tANI_U32 txMpdu;
5237 // number of received unicast mpdus
5238 tANI_U32 rxMpdu;
5239 // number of succesfully transmitted multicast data packets
5240 // STA case: implies ACK received from AP for the unicast
5241 // packet in which mcast pkt was sent
5242 tANI_U32 txMcast;
5243 // number of received multicast data packets
5244 tANI_U32 rxMcast;
5245 // number of received unicast a-mpdus
5246 tANI_U32 rxAmpdu;
5247 // number of transmitted unicast a-mpdus
5248 tANI_U32 txAmpdu;
5249 // number of data pkt losses (no ACK)
5250 tANI_U32 mpduLost;
5251 // total number of data pkt retries
5252 tANI_U32 retries;
5253 // number of short data pkt retries
5254 tANI_U32 retriesShort;
5255 // number of long data pkt retries
5256 tANI_U32 retriesLong;
5257 // data pkt min contention time (usecs)
5258 tANI_U32 contentionTimeMin;
5259 // data pkt max contention time (usecs)
5260 tANI_U32 contentionTimeMax;
5261 // data pkt avg contention time (usecs)
5262 tANI_U32 contentionTimeAvg;
5263 // num of data pkts used for contention statistics
5264 tANI_U32 contentionNumSamples;
5265} tSirWifiWmmAcStat, *tpSirWifiWmmAcStat;
5266
Mukul Sharmaf1bd9322015-10-20 16:03:42 +05305267#ifdef FEATURE_EXT_LL_STAT
5268typedef PACKED_PRE struct PACKED_POST
5269{
5270 /* Average Beacon spread offset is the averaged
5271 * time delay between TBTT and beacon TSF
5272 */
5273 tANI_U64 avg_bcn_spread;
5274 /* Average number of frames received from AP after
5275 * receiving the ACK for a frame with PM=1
5276 */
5277 tANI_U32 avg_rx_frms_leaked;
5278 /* Rx leak watch window currently in force to minimize data loss
5279 * because of leaky AP. Rx leak window is the time driver waits
5280 * before shutting down the radio or switching the channel and
5281 * after receiving an ACK for a data frame with PM bit set)
5282 */
5283 tANI_U32 rx_leak_window;
5284
5285 /* Takes value of 1 if AP leaks packets after sending
5286 * an ACK for PM=1 otherwise 0
5287 */
5288 tANI_U32 is_leaky_ap;
5289
5290} tSirWifiIfaceLeakyApStat, *tpSirWifiIfaceLeakyApStat;
5291#endif
5292
Sunil Duttc69bccb2014-05-26 21:30:20 +05305293/* Interface statistics - corresponding to 2nd most
5294 * LSB in wifi statistics bitmap for getting statistics
5295 */
5296typedef PACKED_PRE struct PACKED_POST
5297{
5298 // current state of the interface
5299 tSirWifiInterfaceInfo info;
5300 // access point beacon received count from connected AP
5301 tANI_U32 beaconRx;
5302 // access point mgmt frames received count from
5303 // connected AP (including Beacon)
5304 tANI_U32 mgmtRx;
5305 // action frames received count
5306 tANI_U32 mgmtActionRx;
5307 // action frames transmit count
5308 tANI_U32 mgmtActionTx;
5309 // access Point Beacon and Management frames RSSI (averaged)
Dino Mycle3b9536d2014-07-09 22:05:24 +05305310 tANI_S32 rssiMgmt;
Sunil Duttc69bccb2014-05-26 21:30:20 +05305311 // access Point Data Frames RSSI (averaged) from connected AP
Dino Mycle3b9536d2014-07-09 22:05:24 +05305312 tANI_S32 rssiData;
Sunil Duttc69bccb2014-05-26 21:30:20 +05305313 // access Point ACK RSSI (averaged) from connected AP
Dino Mycle3b9536d2014-07-09 22:05:24 +05305314 tANI_S32 rssiAck;
Sunil Duttc69bccb2014-05-26 21:30:20 +05305315 // per ac data packet statistics
5316 tSirWifiWmmAcStat AccessclassStats[WIFI_AC_MAX];
Mukul Sharmaf1bd9322015-10-20 16:03:42 +05305317#ifdef FEATURE_EXT_LL_STAT
5318 //Leaky Ap Stats
5319 tSirWifiIfaceLeakyApStat leakyApStat;
5320#endif
Sunil Duttc69bccb2014-05-26 21:30:20 +05305321} tSirWifiIfaceStat, *tpSirWifiIfaceStat;
5322
5323/* Peer statistics - corresponding to 3rd most LSB in
5324 * wifi statistics bitmap for getting statistics
5325 */
5326typedef PACKED_PRE struct PACKED_POST
5327{
5328 // number of peers
5329 tANI_U32 numPeers;
5330 // per peer statistics
5331 tSirWifiPeerInfo peerInfo[1];
5332} tSirWifiPeerStat, *tpSirWifiPeerStat;
5333
5334/* wifi statistics bitmap for getting statistics */
5335#define WMI_LINK_STATS_RADIO 0x00000001
5336#define WMI_LINK_STATS_IFACE 0x00000002
5337#define WMI_LINK_STATS_ALL_PEER 0x00000004
5338#define WMI_LINK_STATS_PER_PEER 0x00000008
5339
5340/* wifi statistics bitmap for clearing statistics */
5341// all radio statistics
5342#define WIFI_STATS_RADIO 0x00000001
5343// cca_busy_time (within radio statistics)
5344#define WIFI_STATS_RADIO_CCA 0x00000002
5345// all channel statistics (within radio statistics)
5346#define WIFI_STATS_RADIO_CHANNELS 0x00000004
5347// all scan statistics (within radio statistics)
5348#define WIFI_STATS_RADIO_SCAN 0x00000008
5349// all interface statistics
5350#define WIFI_STATS_IFACE 0x00000010
5351// all tx rate statistics (within interface statistics)
5352#define WIFI_STATS_IFACE_TXRATE 0x00000020
5353// all ac statistics (within interface statistics)
5354#define WIFI_STATS_IFACE_AC 0x00000040
5355// all contention (min, max, avg) statistics (within ac statistics)
5356#define WIFI_STATS_IFACE_CONTENTION 0x00000080
5357
5358typedef PACKED_PRE struct PACKED_POST
5359{
5360 tANI_U32 paramId;
5361 tANI_U8 ifaceId;
5362 tANI_U32 respId;
5363 tANI_U32 moreResultToFollow;
5364 tANI_U8 result[1];
5365} tSirLLStatsResults, *tpSirLLStatsResults;
5366
5367#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
5368
Sachin Ahuja3d47fcd2015-08-28 16:02:06 +05305369
5370
Dino Mycle2c198072014-06-10 10:15:52 +05305371#ifdef WLAN_FEATURE_EXTSCAN
5372
5373typedef enum
5374{
5375 WIFI_BAND_UNSPECIFIED,
5376 WIFI_BAND_BG = 1, // 2.4 GHz
5377 WIFI_BAND_A = 2, // 5 GHz without DFS
5378 WIFI_BAND_ABG = 3, // 2.4 GHz + 5 GHz; no DFS
5379 WIFI_BAND_A_DFS_ONLY = 4, // 5 GHz DFS only
5380 // 5 is reserved
5381 WIFI_BAND_A_WITH_DFS = 6, // 5 GHz with DFS
5382 WIFI_BAND_ABG_WITH_DFS = 7, // 2.4 GHz + 5 GHz with DFS
5383
5384 /* Keep it last */
5385 WIFI_BAND_MAX
5386} tWifiBand;
5387
5388/* wifi scan related events */
5389typedef enum
5390{
5391 WIFI_SCAN_BUFFER_FULL,
5392 WIFI_SCAN_COMPLETE,
5393} tWifiScanEventType;
5394
5395typedef struct
5396{
5397 tSirMacAddr bssid; // AP BSSID
5398 tANI_S32 low; // low threshold
5399 tANI_S32 high; // high threshold
Dino Mycle2c198072014-06-10 10:15:52 +05305400} tSirAPThresholdParam, *tpSirAPThresholdParam;
5401
5402typedef struct
5403{
5404 tANI_U32 requestId;
5405 tANI_U8 sessionId;
5406} tSirGetEXTScanCapabilitiesReqParams, *tpSirGetEXTScanCapabilitiesReqParams;
5407
5408typedef struct
5409{
5410 tANI_U32 requestId;
5411 tANI_U32 status;
5412
5413 tANI_U32 scanCacheSize;
5414 tANI_U32 scanBuckets;
5415 tANI_U32 maxApPerScan;
5416 tANI_U32 maxRssiSampleSize;
5417 tANI_U32 maxScanReportingThreshold;
5418
5419 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara1aa4a32015-06-19 19:00:46 +05305420 tANI_U32 maxHotlistSSIDs;
Dino Mycle2c198072014-06-10 10:15:52 +05305421
5422 tANI_U32 maxBsidHistoryEntries;
Padma, Santhosh Kumara1aa4a32015-06-19 19:00:46 +05305423
Dino Mycle2c198072014-06-10 10:15:52 +05305424} tSirEXTScanCapabilitiesEvent, *tpSirEXTScanCapabilitiesEvent;
5425
5426/* WLAN_HAL_EXT_SCAN_RESULT_IND */
5427typedef struct
5428{
5429 tANI_U32 requestId;
5430 tANI_U8 sessionId;
5431
5432 /*
5433 * 1 return cached results and flush it
5434 * 0 return cached results and do not flush
5435 */
5436 tANI_BOOLEAN flush;
5437} tSirEXTScanGetCachedResultsReqParams, *tpSirEXTScanGetCachedResultsReqParams;
5438
5439typedef PACKED_PRE struct PACKED_POST
5440{
5441 tANI_U32 requestId;
5442 tANI_U32 status;
5443} tSirEXTScanGetCachedResultsRspParams, *tpSirEXTScanGetCachedResultsRspParams;
5444
5445typedef PACKED_PRE struct PACKED_POST
5446{
5447 tANI_U64 ts; // time of discovery
5448 tANI_U8 ssid[SIR_MAC_MAX_SSID_LENGTH + 1]; // null terminated SSID
5449 tSirMacAddr bssid; // BSSID
5450 tANI_U32 channel; // channel frequency in MHz
5451 tANI_S32 rssi; // RSSI in dBm
5452 tANI_U32 rtt; // RTT in nanoseconds
5453 tANI_U32 rtt_sd; // standard deviation in rtt
5454 tANI_U16 beaconPeriod; // period advertised in the beacon
5455 tANI_U16 capability; // capabilities advertised in the beacon
5456} tSirWifiScanResult, *tpSirWifiScanResult;
5457
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05305458/**
5459 * struct tExtscanCachedScanResult - extscan cached scan result
5460 * @scan_id: a unique identifier for the scan unit
5461 * @flags: a bitmask with additional information about scan
5462 * @num_results: number of bssids retrieved by the scan
5463 * @ap: wifi scan bssid results info
5464 */
5465
5466typedef PACKED_PRE struct PACKED_POST
5467{
5468 tANI_U16 scan_id;
5469 tANI_U8 flags;
5470 tANI_U8 num_results;
5471
5472 tSirWifiScanResult ap[32];
5473} tExtscanCachedScanResult, *tpExtscanCachedScanResult;
5474
Dino Mycle2c198072014-06-10 10:15:52 +05305475/* WLAN_HAL_BSSID_HOTLIST_RESULT_IND */
5476
5477typedef PACKED_PRE struct PACKED_POST
5478{
5479 tANI_U32 requestId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05305480 tANI_BOOLEAN bss_found;
5481 tANI_U32 numHotlistBss; // numbers of APs
5482
5483 /*
5484 * 0 for last fragment
5485 * 1 still more fragment(s) coming
5486 */
5487 tANI_BOOLEAN moreData;
5488 tSirWifiScanResult bssHotlist[1];
5489} tSirEXTScanHotlistMatch, *tpSirEXTScanHotlistMatch;
5490
5491
5492typedef PACKED_PRE struct PACKED_POST
5493{
5494 tANI_U32 requestId;
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05305495 /*
5496 * It gives number of scan ids
5497 */
5498 tANI_U32 scanResultSize;
Dino Mycle2c198072014-06-10 10:15:52 +05305499
5500 /*
5501 * 0 for last fragment
5502 * 1 still more fragment(s) coming
5503 */
5504 tANI_BOOLEAN moreData;
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05305505 tANI_U8 result[1];
Dino Mycle2c198072014-06-10 10:15:52 +05305506} tSirWifiScanResultEvent, *tpSirWifiScanResultEvent;
5507
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05305508/* WLAN_HAL_SSID_HOTLIST_RESULT_IND */
5509
5510typedef PACKED_PRE struct PACKED_POST
5511{
5512 tANI_U32 requestId;
5513 tANI_BOOLEAN ssid_found;
5514 tANI_U32 numHotlistSsid; // numbers of SSIDs
5515
5516 /*
5517 * 0 for last fragment
5518 * 1 still more fragment(s) coming
5519 */
5520 tANI_BOOLEAN moreData;
5521 tSirWifiScanResult ssidHotlist[1];
5522} tSirEXTScanSsidHotlistMatch, *tpSirEXTScanSsidHotlistMatch;
5523
Dino Mycle2c198072014-06-10 10:15:52 +05305524typedef PACKED_PRE struct PACKED_POST
5525{
5526 tANI_U8 elemId; // Element Identifier
5527 tANI_U8 ieLength; // length of IE data
5528 tANI_U8 *IEs; // IEs
5529} tSirInformationElement, *tpSirInformationElement;
5530
5531/* Reported when each probe response is received, if reportEvents
5532* enabled in tSirWifiScanCmdReqParams */
5533typedef struct
5534{
5535 tANI_U32 requestId;
5536
5537 /*
5538 * 0 for last fragment
5539 * 1 still more fragment(s) coming
5540 */
5541 tANI_BOOLEAN moreData;
5542 tSirWifiScanResult ap; // only 1 AP info for now
5543 tANI_U32 ieLength;
5544 tSirInformationElement *ie;
5545} tSirWifiFullScanResultEvent, *tpSirWifiFullScanResultEvent;
5546
5547
5548typedef struct
5549{
5550 tANI_U32 channel; // frequency
5551 tANI_U32 dwellTimeMs; // dwell time hint
5552 tANI_U8 passive; // 0 => active,
5553 // 1 => passive scan; ignored for DFS
5554 tANI_U8 chnlClass;
5555} tSirWifiScanChannelSpec, *tpSirWifiScanChannelSpec;
5556
5557typedef struct
5558{
5559 tANI_U8 bucket; // bucket index, 0 based
5560 tWifiBand band; // when UNSPECIFIED, use channel list
5561
5562 /*
5563 * desired period, in millisecond; if this is too
5564 * low, the firmware should choose to generate results as fast as
5565 * it can instead of failing the command byte
5566 */
5567 tANI_U32 period;
5568
5569 /*
5570 * 0 => normal reporting (reporting rssi history
5571 * only, when rssi history buffer is % full)
5572 * 1 => same as 0 + report a scan completion event after scanning
5573 * this bucket
5574 * 2 => same as 1 + forward scan results (beacons/probe responses + IEs)
5575 * in real time to HAL
5576 */
5577 tANI_U8 reportEvents;
5578
Padma, Santhosh Kumar7b9190d2015-08-17 17:45:29 +05305579 tANI_U32 max_period;
5580 tANI_U32 exponent;
5581 tANI_U32 step_count;
5582
Dino Mycle2c198072014-06-10 10:15:52 +05305583 tANI_U8 numChannels;
5584
5585 /*
5586 * channels to scan; these may include DFS channels
5587 */
5588 tSirWifiScanChannelSpec channels[WLAN_EXTSCAN_MAX_CHANNELS];
5589} tSirWifiScanBucketSpec, *tpSirWifiScanBucketSpec;
5590
5591typedef struct
5592{
5593 tANI_U32 requestId;
5594 tANI_U8 sessionId;
5595 tANI_U32 basePeriod; // base timer period
5596 tANI_U32 maxAPperScan;
5597
5598 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumar7b9190d2015-08-17 17:45:29 +05305599 tANI_U32 reportThresholdPercent;
5600 tANI_U32 reportThresholdNumScans;
Dino Mycle2c198072014-06-10 10:15:52 +05305601
Padma, Santhosh Kumar7b9190d2015-08-17 17:45:29 +05305602 tANI_U32 homeAwayTime; //in units of milliseconds
5603
5604 tANI_U8 numBuckets;
Dino Mycle2c198072014-06-10 10:15:52 +05305605 tSirWifiScanBucketSpec buckets[WLAN_EXTSCAN_MAX_BUCKETS];
5606} tSirEXTScanStartReqParams, *tpSirEXTScanStartReqParams;
5607
5608typedef PACKED_PRE struct PACKED_POST
5609{
5610 tANI_U32 requestId;
5611 tANI_U32 status;
5612} tSirEXTScanStartRspParams, *tpSirEXTScanStartRspParams;
5613
5614typedef struct
5615{
5616 tANI_U32 requestId;
5617 tANI_U8 sessionId;
5618} tSirEXTScanStopReqParams, *tpSirEXTScanStopReqParams;
5619
5620typedef PACKED_PRE struct PACKED_POST
5621{
5622 tANI_U32 requestId;
5623 tANI_U32 status;
5624} tSirEXTScanStopRspParams, *tpSirEXTScanStopRspParams;
5625
5626typedef struct
5627{
5628 tANI_U32 requestId;
5629 tANI_U8 sessionId; // session Id mapped to vdev_id
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05305630 tANI_U32 lostBssidSampleSize;
5631 tANI_U32 numBssid; // number of hotlist APs
Dino Mycle2c198072014-06-10 10:15:52 +05305632 tSirAPThresholdParam ap[WLAN_EXTSCAN_MAX_HOTLIST_APS]; // hotlist APs
5633} tSirEXTScanSetBssidHotListReqParams, *tpSirEXTScanSetBssidHotListReqParams;
5634
5635typedef PACKED_PRE struct PACKED_POST
5636{
5637 tANI_U32 requestId;
5638 tANI_U32 status;
5639} tSirEXTScanSetBssidHotListRspParams, *tpSirEXTScanSetBssidHotListRspParams;
5640
5641typedef struct
5642{
5643 tANI_U32 requestId;
5644 tANI_U8 sessionId;
5645} tSirEXTScanResetBssidHotlistReqParams, *tpSirEXTScanResetBssidHotlistReqParams;
5646
5647typedef PACKED_PRE struct PACKED_POST
5648{
5649 tANI_U32 requestId;
5650 tANI_U32 status;
5651} tSirEXTScanResetBssidHotlistRspParams, *tpSirEXTScanResetBssidHotlistRspParams;
5652
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05305653typedef struct
5654{
5655 tANI_U32 requestId;
5656 tANI_U8 sessionId;
5657} tSirEXTScanResetSsidHotlistReqParams, *tpSirEXTScanResetSsidHotlistReqParams;
5658
5659typedef PACKED_PRE struct PACKED_POST
5660{
5661 tANI_U32 requestId;
5662 tANI_U32 status;
5663} tSirEXTScanResetSsidHotlistRspParams, *tpSirEXTScanResetSsidHotlistRspParams;
5664
5665
5666/**
5667 * struct sir_ssid_hotlist_param - param for SSID Hotlist
5668 * @ssid: SSID which is being hotlisted
5669 * @band: Band in which the given SSID should be scanned
5670 * @rssi_low: Low bound on RSSI
5671 * @rssi_high: High bound on RSSI
5672 */
5673typedef struct
5674{
5675 tSirMacSSid ssid;
5676 tANI_U8 band;
5677 tANI_S32 rssi_low;
5678 tANI_S32 rssi_high;
5679}tSirSsidThresholdParam, *tpSirSsidThresholdParam;
5680
5681typedef struct
5682{
5683 tANI_U32 request_id;
5684 tANI_U8 session_id;
5685 tANI_U32 lost_ssid_sample_size;
5686 tANI_U32 ssid_count;
5687 tSirSsidThresholdParam ssid[WLAN_EXTSCAN_MAX_HOTLIST_SSIDS];
5688}tSirEXTScanSetSsidHotListReqParams, *tpSirEXTScanSetSsidHotListReqParams;
5689
5690typedef PACKED_PRE struct PACKED_POST
5691{
5692 tANI_U32 requestId;
5693 tANI_U32 status;
5694} tSirEXTScanSetSsidHotListRspParams, *tpSirEXTScanSetSsidHotListRspParams;
5695
Dino Mycle2c198072014-06-10 10:15:52 +05305696/*---------------------------------------------------------------------------
5697 * * WLAN_HAL_EXTSCAN_RESULT_AVAILABLE_IND
5698 * *-------------------------------------------------------------------------*/
5699typedef PACKED_PRE struct PACKED_POST
5700{
5701 tANI_U32 requestId;
5702 tANI_U32 numResultsAvailable;
5703} tSirEXTScanResultsAvailableIndParams,
5704 *tpSirEXTScanResultsAvailableIndParams;
5705
5706typedef PACKED_PRE struct PACKED_POST
5707{
5708 tANI_U8 scanEventType;
5709 tANI_U32 status;
5710} tSirEXTScanOnScanEventIndParams,
5711 *tpSirEXTScanOnScanEventIndParams;
5712
5713/*---------------------------------------------------------------------------
5714 * * WLAN_HAL_EXTSCAN_PROGRESS_IND
5715 * *-------------------------------------------------------------------------*/
5716
5717typedef PACKED_PRE enum PACKED_POST
5718{
5719 WLAN_HAL_EXTSCAN_BUFFER_FULL,
5720 WLAN_HAL_EXTSCAN_COMPLETE,
5721}tSirEXTScanProgressEventType;
5722
5723typedef PACKED_PRE struct PACKED_POST
5724{
5725 tANI_U32 requestId;
5726 tANI_U32 status;
5727 tSirEXTScanProgressEventType extScanEventType;
5728}tSirEXTScanProgressIndParams,
5729 *tpSirEXTScanProgressIndParams;
5730
Padma, Santhosh Kumarc1f7f052015-08-26 12:29:01 +05305731typedef PACKED_PRE struct PACKED_POST
5732{
5733 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
5734 tANI_U32 reserved; //reserved for future use
5735}tSirHighPriorityDataInfoInd, *tpSirHighPriorityDataInfoInd;
Dino Mycle2c198072014-06-10 10:15:52 +05305736
5737#endif /* WLAN_FEATURE_EXTSCAN */
5738
Siddharth Bhal6af5d4e2014-09-29 21:11:16 +05305739typedef struct
5740{
5741 tANI_U16 messageType;
5742 tANI_U16 length;
5743 tSirMacAddr macAddr;
5744} tSirSpoofMacAddrReq, *tpSirSpoofMacAddrReq;
5745
Srinivas Dasarib8fdd422014-11-27 10:44:20 +05305746typedef struct
5747{
5748 //BIT order is most likely little endian.
5749 //This structure is for netowkr-order byte array (or big-endian byte order)
5750#ifndef WLAN_PAL_BIG_ENDIAN_BIT
5751 tANI_U8 protVer :2;
5752 tANI_U8 type :2;
5753 tANI_U8 subType :4;
5754
5755 tANI_U8 toDS :1;
5756 tANI_U8 fromDS :1;
5757 tANI_U8 moreFrag :1;
5758 tANI_U8 retry :1;
5759 tANI_U8 powerMgmt :1;
5760 tANI_U8 moreData :1;
5761 tANI_U8 wep :1;
5762 tANI_U8 order :1;
5763
5764#else
5765
5766 tANI_U8 subType :4;
5767 tANI_U8 type :2;
5768 tANI_U8 protVer :2;
5769
5770 tANI_U8 order :1;
5771 tANI_U8 wep :1;
5772 tANI_U8 moreData :1;
5773 tANI_U8 powerMgmt :1;
5774 tANI_U8 retry :1;
5775 tANI_U8 moreFrag :1;
5776 tANI_U8 fromDS :1;
5777 tANI_U8 toDS :1;
5778
5779#endif
5780
5781} tSirFC;
5782
5783typedef struct
5784{
5785 /* Frame control field */
5786 tSirFC frameCtrl;
5787 /* Duration ID */
5788 tANI_U16 usDurationId;
5789 /* Address 1 field */
5790 tSirMacAddr vA1;
5791 /* Address 2 field */
5792 tSirMacAddr vA2;
5793 /* Address 3 field */
5794 tSirMacAddr vA3;
5795 /* Sequence control field */
5796 tANI_U16 sSeqCtrl;
5797 /* Optional A4 address */
5798 tSirMacAddr optvA4;
5799 /* Optional QOS control field */
5800 tANI_U16 usQosCtrl;
5801}tSir80211Header;
5802// Definition for Encryption Keys
5803//typedef struct sSirKeys
5804typedef struct
5805{
5806 tANI_U8 keyId;
5807 tANI_U8 unicast; // 0 for multicast
5808 tAniKeyDirection keyDirection;
5809 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
5810 tANI_U8 paeRole; // =1 for authenticator,
5811 // =0 for supplicant
5812 tANI_U16 keyLength;
5813 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
5814} tMacKeys, *tpMacKeys;
5815
5816typedef enum
5817{
5818 eMAC_WEP_STATIC,
5819 eMAC_WEP_DYNAMIC,
5820} tMacWepType;
5821
5822/*
5823 * This is used by PE to configure the key information on a given station.
5824 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
5825 * a preconfigured key from a BSS the station assoicated with; otherwise
5826 * a new key descriptor is created based on the key field.
5827 */
5828//typedef struct
5829typedef struct
5830{
5831 tANI_U16 staIdx;
5832 tAniEdType encType; // Encryption/Decryption type
5833 tMacWepType wepType; // valid only for WEP
5834 tANI_U8 defWEPIdx; // Default WEP key, valid only for static WEP, must between 0 and 3
5835 tMacKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS]; // valid only for non-static WEP encyrptions
5836 tANI_U8 singleTidRc; // 1=Single TID based Replay Count, 0=Per TID based RC
5837 tANI_U8 sessionId; // PE session id for PE<->HAL interface
5838} tSirSetStaKeyParams, *tpSirSetStaKeyParams;
5839
5840//typedef struct
5841typedef struct
5842{
5843 tSirSetStaKeyParams keyParams;
5844 tANI_U8 pn[6];
5845}tSirencConfigParams;
5846
5847typedef struct
5848{
5849 tANI_U16 length;
5850 tANI_U8 data[WLAN_DISA_MAX_PAYLOAD_SIZE];
5851}tSirpayload;
5852
5853typedef struct
5854{
5855 tSir80211Header macHeader;
5856 tSirencConfigParams encParams;
5857 tSirpayload data;
5858}tSirpkt80211;
5859
5860typedef struct
5861{
5862 tANI_U32 status;
5863 tSirpayload encryptedPayload;
5864} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
5865
5866typedef struct
5867{
5868 tANI_U16 mesgType;
5869 tANI_U16 mesgLen;
5870 tSetEncryptedDataRspParams encryptedDataRsp;
5871} tSirEncryptedDataRspParams, *tpSirEncryptedDataRspParams;
c_hpothua3d45d52015-01-05 14:11:17 +05305872
5873typedef enum eSirAbortScanStatus
5874{
5875 eSIR_ABORT_ACTIVE_SCAN_LIST_EMPTY,
5876 eSIR_ABORT_ACTIVE_SCAN_LIST_NOT_EMPTY,
5877 eSIR_ABORT_SCAN_FAILURE
5878}tSirAbortScanStatus;
5879
Masti, Narayanraddi4b359dd2015-02-03 15:49:29 +05305880/* Max number of rates allowed in Supported Rates IE */
5881#define MAX_NUM_SUPPORTED_RATES (8)
5882
Girish Gowlia95daca2015-02-04 20:31:31 +05305883typedef struct sSirSmeUpdateMaxRateParams
5884{
5885 tANI_U32 maxRateFlag;
5886 tANI_U8 smeSessionId;
5887}tSirSmeUpdateMaxRateParams, *tpSirSmeUpdateMaxRateParams;
5888
Srinivas Dasari32a79262015-02-19 13:04:49 +05305889typedef struct
5890{
5891 tANI_U32 event_data_len;
5892 tANI_U8 event_data[1];
5893} tSirNanEvent, *tpSirNanEvent;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305894
5895typedef struct
5896{
5897 tANI_U32 txCompleteStatus;
5898 tANI_U32 txBdToken;
5899}tSirTxBdStatus, *tpSirTxBdStatus;
Pradeep Reddy POTTETI31505892015-04-16 16:47:54 +05305900
5901/* enable or disable 20_40 BSS Coexistence IE in TDLS frames*/
5902typedef struct
5903{
5904 // Common for all types are requests
5905 tANI_U16 msgType; // message type is same as the request type
5906 tANI_U16 msgLen; // length of the entire request
5907 tANI_U8 SetTdls2040BSSCoex; //enabled or disabled
5908} tAniSetTdls2040BSSCoex, *tpAniSetTdls2040BSSCoex;
Masti, Narayanraddi1fb32a92015-06-29 13:14:06 +05305909
Sushant Kaushik8e644982015-09-23 12:18:54 +05305910/**
5911 * struct sir_wifi_start_log - Structure to store the params sent to start/
5912 * stop logging
5913 * @ringId: Attribute which indicates the type of logging like per packet
5914 * statistics, connectivity etc.
5915 * @verboseLevel: Verbose level which can be 0,1,2,3
5916 * @flag: Flag field for future use
5917 */
5918typedef struct sir_wifi_start_log {
5919 tANI_U32 ringId;
5920 tANI_U32 verboseLevel;
5921 tANI_U32 flag;
5922}tAniWifiStartLog, *tpAniWifiStartLog;
5923
Masti, Narayanraddi1fb32a92015-06-29 13:14:06 +05305924typedef struct
5925{
5926 tANI_U16 mesgType;
5927 tANI_U16 mesgLen;
5928 tSirMacAddr bssid;
5929}tSirDelAllTdlsPeers, *ptSirDelAllTdlsPeers;
Hanumantha Reddy Pothula91cdd7f2015-09-03 21:25:16 +05305930
5931typedef void (*tSirMonModeCb)(tANI_U32 *magic, struct completion *cmpVar);
5932typedef struct
5933{
5934 tANI_U32 *magic;
5935 struct completion *cmpVar;
5936 void *data;
5937 tSirMonModeCb callback;
5938}tSirMonModeReq, *ptSirMonModeReq;
c_manjeecfd1efb2015-09-25 19:32:34 +05305939
5940/**
5941 * struct tAniFwrDumpRsp - firmware dump response details.
5942 *
5943 * This structure is used to store the firmware dump
5944 * response from the firmware.
5945 */
5946typedef struct
5947{
5948 tANI_U32 dump_status;
5949}tAniFwrDumpRsp, *tpAniFwrDumpRsp;
5950
5951typedef void (*FWMemDumpReqCb)(void *fwMemDumpReqContext, tAniFwrDumpRsp *dump_rsp);
5952
5953/**
5954 * struct tAniFwrDumpReq - firmware memory dump request details.
5955.*.@FWMemDumpReqCb - Associated Callback
5956 *.@fwMemDumpReqContext - Callback context
5957 * @reserved - reserved field 1.
5958 *
5959 * This structure carries information about the firmware
5960 * memory dump request.
5961 */
5962typedef struct
5963{
5964 FWMemDumpReqCb fwMemDumpReqCallback;
5965 void * fwMemDumpReqContext;
5966 tANI_U32 reserved1;
5967}tAniFwrDumpReq, *tpAniFwrDumpReq;
5968
Arun Khandavalli7eeb1592015-10-19 21:36:57 +05305969/**
5970* struct tSetWifiConfigParams - Structure to store the wificonfig related params
5971* @paramType: 1. Average Stats factor 2. Guard type
5972* @paramvalue: Value to be set in the firmware.
5973* @bssId: macaddr of the connected BssId
5974*/
5975typedef struct
5976{
5977 tANI_U8 paramType;
5978 tANI_U8 sessionId;
5979 tANI_U32 paramValue;
5980 tSirMacAddr bssId;
5981} tSetWifiConfigParams, *tpSetWifiConfigParams;
5982
Mahesh A Saptasagar7d432952016-02-09 14:01:03 +05305983typedef struct {
5984 tANI_U8 param;
5985 tANI_U32 value;
5986} tModifyRoamParamsReqParams, * tpModifyRoamParamsReqParams;
5987
5988
Jeff Johnson295189b2012-06-20 16:38:30 -07005989#endif /* __SIR_API_H */