blob: f182a2b2e7dea80145aa9725d2e5a796a560880b [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Kiet Lam842dad02014-02-18 18:44:02 -08002 * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
3 *
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 Lam842dad02014-02-18 18:44:02 -080023 * Copyright (c) 2012-2014 Qualcomm Atheros, Inc.
24 * All Rights Reserved.
25 * Qualcomm Atheros Confidential and Proprietary.
26 *
27 */
28
29
30/*
Jeff Johnson295189b2012-06-20 16:38:30 -070031 * This file sirApi.h contains definitions exported by
32 * Sirius software.
33 * Author: Chandra Modumudi
34 * Date: 04/16/2002
35 * History:-
36 * Date Modified by Modification Information
37 * --------------------------------------------------------------------
38 */
39
40#ifndef __SIR_API_H
41#define __SIR_API_H
42
43#include "sirTypes.h"
44#include "sirMacProtDef.h"
45#include "aniSystemDefs.h"
Jeff Johnsone7245742012-09-05 17:12:55 -070046#include "sirParams.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070047
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -080048#if defined(FEATURE_WLAN_ESE) && !defined(FEATURE_WLAN_ESE_UPLOAD)
49#include "eseGlobal.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070050#endif
51
52/// Maximum number of STAs allowed in the BSS
53#define SIR_MAX_NUM_STA 256
54
55/// Maximum number of Neighbors reported by STA for LB feature
56#define SIR_MAX_NUM_NEIGHBOR_BSS 3
57
58/// Maximum number of Neighbors reported by STA for LB feature
59#define SIR_MAX_NUM_ALTERNATE_RADIOS 5
60
61/// Maximum size of SCAN_RSP message
62#define SIR_MAX_SCAN_RSP_MSG_LENGTH 2600
63
64/// Start of Sirius software/Host driver message types
65#define SIR_HAL_HOST_MSG_START 0x1000
66
67/// Power save level definitions
68#define SIR_MAX_POWER_SAVE 3
69#define SIR_INTERMEDIATE_POWER_SAVE 4
70#define SIR_NO_POWER_SAVE 5
71
72/// Max supported channel list
73#define SIR_MAX_SUPPORTED_CHANNEL_LIST 96
74
75/// Maximum DTIM Factor
76#define SIR_MAX_DTIM_FACTOR 32
77
78#define SIR_MDIE_SIZE 3
79
Gopichand Nakkalad492d202013-05-10 02:50:47 +053080/* Max number of channels are 165, but to access 165th element of array,
81 *array of 166 is required.
82 */
83#define SIR_MAX_24G_5G_CHANNEL_RANGE 166
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -080084#define SIR_BCN_REPORT_MAX_BSS_DESC 4
Gopichand Nakkalad492d202013-05-10 02:50:47 +053085
Jeff Johnson295189b2012-06-20 16:38:30 -070086
Rajeev79dbe4c2013-10-05 11:03:42 +053087#ifdef FEATURE_WLAN_BATCH_SCAN
88#define SIR_MAX_SSID_SIZE (32)
89#endif
90
Jeff Johnson295189b2012-06-20 16:38:30 -070091
92#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
93#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
94#define SIR_NUM_POLARIS_RATES 3 //72,96,108
95#define SIR_NUM_TITAN_RATES 26
96#define SIR_NUM_TAURUS_RATES 4 //136.5, 151.7,283.5,315
97#define SIR_NUM_PROP_RATES (SIR_NUM_TITAN_RATES + SIR_NUM_TAURUS_RATES)
98
99#define SIR_11N_PROP_RATE_136_5 (1<<28)
100#define SIR_11N_PROP_RATE_151_7 (1<<29)
101#define SIR_11N_PROP_RATE_283_5 (1<<30)
102#define SIR_11N_PROP_RATE_315 (1<<31)
103#define SIR_11N_PROP_RATE_BITMAP 0x80000000 //only 315MBPS rate is supported today
104//Taurus is going to support 26 Titan Rates(no ESF/concat Rates will be supported)
105//First 26 bits are reserved for Titan and last 4 bits for Taurus, 2(27 and 28) bits are reserved.
106//#define SIR_TITAN_PROP_RATE_BITMAP 0x03FFFFFF
107//Disable all Titan rates
108#define SIR_TITAN_PROP_RATE_BITMAP 0
109#define SIR_CONVERT_2_U32_BITMAP(nRates) ((nRates + 31)/32)
110
111/* #tANI_U32's needed for a bitmap representation for all prop rates */
112#define SIR_NUM_U32_MAP_RATES SIR_CONVERT_2_U32_BITMAP(SIR_NUM_PROP_RATES)
113
114
115#define SIR_PM_SLEEP_MODE 0
116#define SIR_PM_ACTIVE_MODE 1
117
118// Used by various modules to load ALL CFG's
119#define ANI_IGNORE_CFG_ID 0xFFFF
120
121//hidden SSID options
122#define SIR_SCAN_NO_HIDDEN_SSID 0
123#define SIR_SCAN_HIDDEN_SSID_PE_DECISION 1
124#define SIR_SCAN_HIDDEN_SSID 2
125
126#define SIR_MAC_ADDR_LEN 6
127#define SIR_IPV4_ADDR_LEN 4
128
129typedef tANI_U8 tSirIpv4Addr[SIR_IPV4_ADDR_LEN];
130
131#define SIR_VERSION_STRING_LEN 64
132typedef tANI_U8 tSirVersionString[SIR_VERSION_STRING_LEN];
133
Yue Mab9c86f42013-08-14 15:59:08 -0700134/* Periodic Tx pattern offload feature */
135#define PERIODIC_TX_PTRN_MAX_SIZE 1536
136#define MAXNUM_PERIODIC_TX_PTRNS 6
137
Jeff Johnson295189b2012-06-20 16:38:30 -0700138enum eSirHostMsgTypes
139{
140 SIR_HAL_APP_SETUP_NTF = SIR_HAL_HOST_MSG_START,
141 SIR_HAL_INITIAL_CAL_FAILED_NTF,
142 SIR_HAL_NIC_OPER_NTF,
143 SIR_HAL_INIT_START_REQ,
144 SIR_HAL_SHUTDOWN_REQ,
145 SIR_HAL_SHUTDOWN_CNF,
146 SIR_HAL_RESET_REQ,
147 SIR_HAL_RADIO_ON_OFF_IND,
148 SIR_HAL_RESET_CNF,
149 SIR_WRITE_TO_TD,
150 SIR_HAL_HDD_ADDBA_REQ, // MAC -> HDD
151 SIR_HAL_HDD_ADDBA_RSP, // HDD -> HAL
152 SIR_HAL_DELETEBA_IND, // MAC -> HDD
153 SIR_HAL_BA_FAIL_IND, // HDD -> MAC
154 SIR_TL_HAL_FLUSH_AC_REQ,
155 SIR_HAL_TL_FLUSH_AC_RSP
156};
157
158
159
160/**
161 * Module ID definitions.
162 */
163enum {
164 SIR_BOOT_MODULE_ID = 1,
165 SIR_HAL_MODULE_ID = 0x10,
Leela Venkata Kiran Kumar Reddy Chirala45f184c2014-02-14 15:08:21 -0800166 SIR_CFG_MODULE_ID = 0x12,
Jeff Johnson295189b2012-06-20 16:38:30 -0700167 SIR_LIM_MODULE_ID,
168 SIR_ARQ_MODULE_ID,
169 SIR_SCH_MODULE_ID,
170 SIR_PMM_MODULE_ID,
171 SIR_MNT_MODULE_ID,
172 SIR_DBG_MODULE_ID,
173 SIR_DPH_MODULE_ID,
174 SIR_SYS_MODULE_ID,
175 SIR_SMS_MODULE_ID,
176
177 SIR_PHY_MODULE_ID = 0x20,
178
179
180 // Add any modules above this line
181 SIR_DVT_MODULE_ID
182};
183
184#define SIR_WDA_MODULE_ID SIR_HAL_MODULE_ID
185
186/**
187 * First and last module definition for logging utility
188 *
189 * NOTE: The following definitions need to be updated if
190 * the above list is changed.
191 */
192#define SIR_FIRST_MODULE_ID SIR_HAL_MODULE_ID
193#define SIR_LAST_MODULE_ID SIR_DVT_MODULE_ID
194
195
196// Type declarations used by Firmware and Host software
197
198// Scan type enum used in scan request
199typedef enum eSirScanType
200{
201 eSIR_PASSIVE_SCAN,
202 eSIR_ACTIVE_SCAN,
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800203 eSIR_BEACON_TABLE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700204} tSirScanType;
205
206/// Result codes Firmware return to Host SW
207typedef enum eSirResultCodes
208{
209 eSIR_SME_SUCCESS,
210
211 eSIR_EOF_SOF_EXCEPTION,
212 eSIR_BMU_EXCEPTION,
213 eSIR_LOW_PDU_EXCEPTION,
214 eSIR_USER_TRIG_RESET,
215 eSIR_LOGP_EXCEPTION,
216 eSIR_CP_EXCEPTION,
217 eSIR_STOP_BSS,
218 eSIR_AHB_HANG_EXCEPTION,
219 eSIR_DPU_EXCEPTION,
220 eSIR_RPE_EXCEPTION,
221 eSIR_TPE_EXCEPTION,
222 eSIR_DXE_EXCEPTION,
223 eSIR_RXP_EXCEPTION,
224 eSIR_MCPU_EXCEPTION,
225 eSIR_MCU_EXCEPTION,
226 eSIR_MTU_EXCEPTION,
227 eSIR_MIF_EXCEPTION,
228 eSIR_FW_EXCEPTION,
229 eSIR_PS_MUTEX_READ_EXCEPTION,
230 eSIR_PHY_HANG_EXCEPTION,
231 eSIR_MAILBOX_SANITY_CHK_FAILED,
232 eSIR_RADIO_HW_SWITCH_STATUS_IS_OFF, // Only where this switch is present
233 eSIR_CFB_FLAG_STUCK_EXCEPTION,
234
235 eSIR_SME_BASIC_RATES_NOT_SUPPORTED_STATUS=30,
236
237 eSIR_SME_INVALID_PARAMETERS=500,
238 eSIR_SME_UNEXPECTED_REQ_RESULT_CODE,
239 eSIR_SME_RESOURCES_UNAVAILABLE,
240 eSIR_SME_SCAN_FAILED, // Unable to find a BssDescription
241 // matching requested scan criteria
242 eSIR_SME_BSS_ALREADY_STARTED_OR_JOINED,
243 eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE,
244 eSIR_SME_REFUSED,
245 eSIR_SME_JOIN_TIMEOUT_RESULT_CODE,
246 eSIR_SME_AUTH_TIMEOUT_RESULT_CODE,
247 eSIR_SME_ASSOC_TIMEOUT_RESULT_CODE,
248 eSIR_SME_REASSOC_TIMEOUT_RESULT_CODE,
249 eSIR_SME_MAX_NUM_OF_PRE_AUTH_REACHED,
250 eSIR_SME_AUTH_REFUSED,
251 eSIR_SME_INVALID_WEP_DEFAULT_KEY,
252 eSIR_SME_NO_KEY_MAPPING_KEY_FOR_PEER,
253 eSIR_SME_ASSOC_REFUSED,
254 eSIR_SME_REASSOC_REFUSED,
255 eSIR_SME_DEAUTH_WHILE_JOIN, //Received Deauth while joining or pre-auhtentication.
256 eSIR_SME_DISASSOC_WHILE_JOIN, //Received Disassociation while joining.
257 eSIR_SME_DEAUTH_WHILE_REASSOC, //Received Deauth while ReAssociate.
258 eSIR_SME_DISASSOC_WHILE_REASSOC, //Received Disassociation while ReAssociate
259 eSIR_SME_STA_NOT_AUTHENTICATED,
260 eSIR_SME_STA_NOT_ASSOCIATED,
261 eSIR_SME_STA_DISASSOCIATED,
262 eSIR_SME_ALREADY_JOINED_A_BSS,
263 eSIR_ULA_COMPLETED,
264 eSIR_ULA_FAILURE,
265 eSIR_SME_LINK_ESTABLISHED,
266 eSIR_SME_UNABLE_TO_PERFORM_MEASUREMENTS,
267 eSIR_SME_UNABLE_TO_PERFORM_DFS,
268 eSIR_SME_DFS_FAILED,
269 eSIR_SME_TRANSFER_STA, // To be used when STA need to be LB'ed
270 eSIR_SME_INVALID_LINK_TEST_PARAMETERS,// Given in LINK_TEST_START_RSP
271 eSIR_SME_LINK_TEST_MAX_EXCEEDED, // Given in LINK_TEST_START_RSP
272 eSIR_SME_UNSUPPORTED_RATE, // Given in LINK_TEST_RSP if peer does
273 // support requested rate in
274 // LINK_TEST_REQ
275 eSIR_SME_LINK_TEST_TIMEOUT, // Given in LINK_TEST_IND if peer does
276 // not respond before next test packet
277 // is sent
278 eSIR_SME_LINK_TEST_COMPLETE, // Given in LINK_TEST_IND at the end
279 // of link test
280 eSIR_SME_LINK_TEST_INVALID_STATE, // Given in LINK_TEST_START_RSP
281 eSIR_SME_LINK_TEST_TERMINATE, // Given in LINK_TEST_START_RSP
282 eSIR_SME_LINK_TEST_INVALID_ADDRESS, // Given in LINK_TEST_STOP_RSP
283 eSIR_SME_POLARIS_RESET, // Given in SME_STOP_BSS_REQ
284 eSIR_SME_SETCONTEXT_FAILED, // Given in SME_SETCONTEXT_REQ when
285 // unable to plumb down keys
286 eSIR_SME_BSS_RESTART, // Given in SME_STOP_BSS_REQ
287
288 eSIR_SME_MORE_SCAN_RESULTS_FOLLOW, // Given in SME_SCAN_RSP message
289 // that more SME_SCAN_RSP
290 // messages are following.
291 // SME_SCAN_RSP message with
292 // eSIR_SME_SUCCESS status
293 // code is the last one.
294 eSIR_SME_INVALID_ASSOC_RSP_RXED, // Sent in SME_JOIN/REASSOC_RSP
295 // messages upon receiving
296 // invalid Re/Assoc Rsp frame.
297 eSIR_SME_MIC_COUNTER_MEASURES, // STOP BSS triggered by MIC failures: MAC software to disassoc all stations
298 // with MIC_FAILURE reason code and perform the stop bss operation
299 eSIR_SME_ADDTS_RSP_TIMEOUT, // didn't get response from peer within
300 // timeout interval
301 eSIR_SME_ADDTS_RSP_FAILED, // didn't get success response from HAL
302 eSIR_SME_RECEIVED,
303 // TBA - TSPEC related Result Codes
304
305 eSIR_SME_CHANNEL_SWITCH_FAIL, // failed to send out Channel Switch Action Frame
306 eSIR_SME_INVALID_STA_ROLE,
307 eSIR_SME_INVALID_STATE,
308#ifdef GEN4_SCAN
309 eSIR_SME_CHANNEL_SWITCH_DISABLED, // either 11h is disabled or channelSwitch is currently active
310 eSIR_SME_HAL_SCAN_INIT_FAILED, // SIR_HAL_SIR_HAL_INIT_SCAN_RSP returned failed status
311 eSIR_SME_HAL_SCAN_START_FAILED, // SIR_HAL_START_SCAN_RSP returned failed status
312 eSIR_SME_HAL_SCAN_END_FAILED, // SIR_HAL_END_SCAN_RSP returned failed status
313 eSIR_SME_HAL_SCAN_FINISH_FAILED, // SIR_HAL_FINISH_SCAN_RSP returned failed status
314 eSIR_SME_HAL_SEND_MESSAGE_FAIL, // Failed to send a message to HAL
315#else // GEN4_SCAN
316 eSIR_SME_CHANNEL_SWITCH_DISABLED, // either 11h is disabled or channelSwitch is currently active
317 eSIR_SME_HAL_SEND_MESSAGE_FAIL, // Failed to send a message to HAL
318#endif // GEN4_SCAN
Jeff Johnsone7245742012-09-05 17:12:55 -0700319#ifdef FEATURE_OEM_DATA_SUPPORT
320 eSIR_SME_HAL_OEM_DATA_REQ_START_FAILED,
321#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700322 eSIR_SME_STOP_BSS_FAILURE, // Failed to stop the bss
323 eSIR_SME_STA_ASSOCIATED,
324 eSIR_SME_INVALID_PMM_STATE,
325 eSIR_SME_CANNOT_ENTER_IMPS,
326 eSIR_SME_IMPS_REQ_FAILED,
327 eSIR_SME_BMPS_REQ_FAILED,
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700328 eSIR_SME_BMPS_REQ_REJECT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700329 eSIR_SME_UAPSD_REQ_FAILED,
330 eSIR_SME_WOWL_ENTER_REQ_FAILED,
331 eSIR_SME_WOWL_EXIT_REQ_FAILED,
332#if defined WLAN_FEATURE_VOWIFI_11R
333 eSIR_SME_FT_REASSOC_TIMEOUT_FAILURE,
334 eSIR_SME_FT_REASSOC_FAILURE,
335#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700336 eSIR_SME_SEND_ACTION_FAIL,
Jeff Johnson295189b2012-06-20 16:38:30 -0700337#ifdef WLAN_FEATURE_PACKET_FILTERING
338 eSIR_SME_PC_FILTER_MATCH_COUNT_REQ_FAILED,
339#endif // WLAN_FEATURE_PACKET_FILTERING
340
341#ifdef WLAN_FEATURE_GTK_OFFLOAD
342 eSIR_SME_GTK_OFFLOAD_GETINFO_REQ_FAILED,
343#endif // WLAN_FEATURE_GTK_OFFLOAD
Leela Venkata Kiran Kumar Reddy Chirala56df73f2014-01-30 14:18:00 -0800344 eSIR_SME_DEAUTH_STATUS,
Jeff Johnson295189b2012-06-20 16:38:30 -0700345 eSIR_DONOT_USE_RESULT_CODE = SIR_MAX_ENUM_SIZE
346} tSirResultCodes;
347
Jeff Johnson295189b2012-06-20 16:38:30 -0700348/* each station added has a rate mode which specifies the sta attributes */
349typedef enum eStaRateMode {
350 eSTA_TAURUS = 0,
351 eSTA_TITAN,
352 eSTA_POLARIS,
353 eSTA_11b,
354 eSTA_11bg,
355 eSTA_11a,
356 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700357#ifdef WLAN_FEATURE_11AC
358 eSTA_11ac,
359#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700360 eSTA_INVALID_RATE_MODE
361} tStaRateMode, *tpStaRateMode;
362
363//although in tSirSupportedRates each IE is 16bit but PE only passes IEs in 8 bits with MSB=1 for basic rates.
364//change the mask for bit0-7 only so HAL gets correct basic rates for setting response rates.
365#define IERATE_BASICRATE_MASK 0x80
366#define IERATE_RATE_MASK 0x7f
367#define IERATE_IS_BASICRATE(x) ((x) & IERATE_BASICRATE_MASK)
368#define ANIENHANCED_TAURUS_RATEMAP_BITOFFSET_START 28
369
370typedef struct sSirSupportedRates {
371 /*
372 * For Self STA Entry: this represents Self Mode.
373 * For Peer Stations, this represents the mode of the peer.
374 * On Station:
375 * --this mode is updated when PE adds the Self Entry.
376 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
377 * ON AP:
378 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
379 * to indicate the self mode of the AP.
380 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
381 */
382
383 tStaRateMode opRateMode;
384 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
385 tANI_U16 llbRates[SIR_NUM_11B_RATES];
386 tANI_U16 llaRates[SIR_NUM_11A_RATES];
387 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
388
389 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
390 //First 26 bits are reserved for those Titan rates and
391 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
392 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
393
394 /*
395 * 0-76 bits used, remaining reserved
396 * bits 0-15 and 32 should be set.
397 */
398 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
399
400 /*
401 * RX Highest Supported Data Rate defines the highest data
402 * rate that the STA is able to receive, in unites of 1Mbps.
403 * This value is derived from "Supported MCS Set field" inside
404 * the HT capability element.
405 */
406 tANI_U16 rxHighestDataRate;
407
Jeff Johnsone7245742012-09-05 17:12:55 -0700408#ifdef WLAN_FEATURE_11AC
409 /*Indicates the Maximum MCS that can be received for each number
410 of spacial streams */
411 tANI_U16 vhtRxMCSMap;
412 /*Indicate the highest VHT data rate that the STA is able to receive*/
413 tANI_U16 vhtRxHighestDataRate;
Madan Mohan Koyyalamudi1bed5982012-10-22 14:38:06 -0700414 /*Indicates the Maximum MCS that can be transmitted for each number
Jeff Johnsone7245742012-09-05 17:12:55 -0700415 of spacial streams */
416 tANI_U16 vhtTxMCSMap;
417 /*Indicate the highest VHT data rate that the STA is able to transmit*/
418 tANI_U16 vhtTxHighestDataRate;
419#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700420} tSirSupportedRates, *tpSirSupportedRates;
421
422
423typedef enum eSirRFBand
424{
425 SIR_BAND_UNKNOWN,
426 SIR_BAND_2_4_GHZ,
427 SIR_BAND_5_GHZ,
428} tSirRFBand;
429
430
431/*
432* Specifies which beacons are to be indicated upto the host driver when
433* Station is in power save mode.
434*/
435typedef enum eBeaconForwarding
436{
437 ePM_BEACON_FWD_NTH,
438 ePM_BEACON_FWD_TIM,
439 ePM_BEACON_FWD_DTIM,
440 ePM_BEACON_FWD_NONE
441} tBeaconForwarding;
442
443
Jeff Johnson295189b2012-06-20 16:38:30 -0700444typedef struct sSirRemainOnChnReq
445{
446 tANI_U16 messageType;
447 tANI_U16 length;
448 tANI_U8 sessionId;
449 tSirMacAddr selfMacAddr;
450 tANI_U8 chnNum;
451 tANI_U8 phyMode;
452 tANI_U32 duration;
Gopichand Nakkala924e4552013-05-08 19:18:14 +0530453 tANI_U8 isProbeRequestAllowed;
Jeff Johnson295189b2012-06-20 16:38:30 -0700454 tANI_U8 probeRspIe[1];
455}tSirRemainOnChnReq, *tpSirRemainOnChnReq;
456
Rashmi Ramannad3a03bf2013-12-31 18:33:24 +0530457/* Structure for vendor specific IE of debug marker frame
458 to debug remain on channel issues */
459typedef struct publicVendorSpecific
460{
461 tANI_U8 category;
462 tANI_U8 elementid;
463 tANI_U8 length;
464} publicVendorSpecific;
465
Jeff Johnson295189b2012-06-20 16:38:30 -0700466typedef struct sSirRegisterMgmtFrame
467{
468 tANI_U16 messageType;
469 tANI_U16 length;
470 tANI_U8 sessionId;
471 tANI_BOOLEAN registerFrame;
472 tANI_U16 frameType;
473 tANI_U16 matchLen;
474 tANI_U8 matchData[1];
475}tSirRegisterMgmtFrame, *tpSirRegisterMgmtFrame;
Jeff Johnson295189b2012-06-20 16:38:30 -0700476
477//
Jeff Johnson295189b2012-06-20 16:38:30 -0700478// Identifies the neighbor BSS' that was(were) detected
479// by an STA and reported to the AP
480//
481typedef struct sAniTitanCBNeighborInfo
482{
483 // A BSS was found on the Primary
484 tANI_U8 cbBssFoundPri;
485
486 // A BSS was found on the adjacent Upper Secondary
487 tANI_U8 cbBssFoundSecUp;
488
489 // A BSS was found on the adjacent Lower Secondary
490 tANI_U8 cbBssFoundSecDown;
491
492} tAniTitanCBNeighborInfo, *tpAniTitanCBNeighborInfo;
493
Jeff Johnson295189b2012-06-20 16:38:30 -0700494/// Generic type for sending a response message
495/// with result code to host software
496typedef struct sSirSmeRsp
497{
498 tANI_U16 messageType; // eWNI_SME_*_RSP
499 tANI_U16 length;
500 tANI_U8 sessionId; // To support BT-AMP
501 tANI_U16 transactionId; // To support BT-AMP
502 tSirResultCodes statusCode;
503} tSirSmeRsp, *tpSirSmeRsp;
504
505/// Definition for kick starting Firmware on STA
506typedef struct sSirSmeStartReq
507{
508 tANI_U16 messageType; // eWNI_SME_START_REQ
509 tANI_U16 length;
510 tANI_U8 sessionId; //Added for BT-AMP Support
511 tANI_U16 transcationId; //Added for BT-AMP Support
512 tSirMacAddr bssId; //Added For BT-AMP Support
513 tANI_U32 roamingAtPolaris;
Jeff Johnson295189b2012-06-20 16:38:30 -0700514 tANI_U32 sendNewBssInd;
Jeff Johnson295189b2012-06-20 16:38:30 -0700515} tSirSmeStartReq, *tpSirSmeStartReq;
516
517/// Definition for indicating all modules ready on STA
518typedef struct sSirSmeReadyReq
519{
520 tANI_U16 messageType; // eWNI_SME_SYS_READY_IND
521 tANI_U16 length;
522 tANI_U16 transactionId;
523} tSirSmeReadyReq, *tpSirSmeReadyReq;
524
525/// Definition for response message to previously issued start request
526typedef struct sSirSmeStartRsp
527{
528 tANI_U16 messageType; // eWNI_SME_START_RSP
529 tANI_U16 length;
530 tSirResultCodes statusCode;
531 tANI_U16 transactionId;
532} tSirSmeStartRsp, *tpSirSmeStartRsp;
533
Jeff Johnson295189b2012-06-20 16:38:30 -0700534
535/// Definition for Load structure
536typedef struct sSirLoad
537{
538 tANI_U16 numStas;
539 tANI_U16 channelUtilization;
540} tSirLoad, *tpSirLoad;
541
542/// BSS type enum used in while scanning/joining etc
543typedef enum eSirBssType
544{
545 eSIR_INFRASTRUCTURE_MODE,
Jeff Johnson295189b2012-06-20 16:38:30 -0700546 eSIR_INFRA_AP_MODE, //Added for softAP support
Jeff Johnson295189b2012-06-20 16:38:30 -0700547 eSIR_IBSS_MODE,
548 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
549 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
550 eSIR_AUTO_MODE,
551 eSIR_DONOT_USE_BSS_TYPE = SIR_MAX_ENUM_SIZE
552} tSirBssType;
553
554/// Definition for WDS Information
555typedef struct sSirWdsInfo
556{
557 tANI_U16 wdsLength;
558 tANI_U8 wdsBytes[ANI_WDS_INFO_MAX_LENGTH];
559} tSirWdsInfo, *tpSirWdsInfo;
560
561/// Power Capability info used in 11H
562typedef struct sSirMacPowerCapInfo
563{
564 tANI_U8 minTxPower;
565 tANI_U8 maxTxPower;
566} tSirMacPowerCapInfo, *tpSirMacPowerCapInfo;
567
568/// Supported Channel info used in 11H
569typedef struct sSirSupChnl
570{
571 tANI_U8 numChnl;
572 tANI_U8 channelList[SIR_MAX_SUPPORTED_CHANNEL_LIST];
573} tSirSupChnl, *tpSirSupChnl;
574
575typedef enum eSirNwType
576{
577 eSIR_11A_NW_TYPE,
578 eSIR_11B_NW_TYPE,
579 eSIR_11G_NW_TYPE,
580 eSIR_11N_NW_TYPE,
Jeff Johnsone7245742012-09-05 17:12:55 -0700581#ifdef WLAN_FEATURE_11AC
582 eSIR_11AC_NW_TYPE,
583#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700584 eSIR_DONOT_USE_NW_TYPE = SIR_MAX_ENUM_SIZE
585} tSirNwType;
586
587/// Definition for new iBss peer info
588typedef struct sSirNewIbssPeerInfo
589{
590 tSirMacAddr peerAddr;
591 tANI_U16 aid;
592} tSirNewIbssPeerInfo, *tpSirNewIbssPeerInfo;
593
594/// Definition for Alternate BSS info
595typedef struct sSirAlternateRadioInfo
596{
597 tSirMacAddr bssId;
598 tANI_U8 channelId;
599} tSirAlternateRadioInfo, *tpSirAlternateRadioInfo;
600
601/// Definition for Alternate BSS list
602typedef struct sSirAlternateRadioList
603{
604 tANI_U8 numBss;
605 tSirAlternateRadioInfo alternateRadio[1];
606} tSirAlternateRadioList, *tpSirAlternateRadioList;
607
608/// Definition for kick starting BSS
609/// ---> MAC
610/**
611 * Usage of ssId, numSSID & ssIdList:
612 * ---------------------------------
613 * 1. ssId.length of zero indicates that Broadcast/Suppress SSID
614 * feature is enabled.
615 * 2. If ssId.length is zero, MAC SW will advertise NULL SSID
616 * and interpret the SSID list from numSSID & ssIdList.
617 * 3. If ssId.length is non-zero, MAC SW will advertise the SSID
618 * specified in the ssId field and it is expected that
619 * application will set numSSID to one (only one SSID present
620 * in the list) and SSID in the list is same as ssId field.
621 * 4. Application will always set numSSID >= 1.
622 */
623//*****NOTE: Please make sure all codes are updated if inserting field into this structure..**********
624typedef struct sSirSmeStartBssReq
625{
626 tANI_U16 messageType; // eWNI_SME_START_BSS_REQ
627 tANI_U16 length;
628 tANI_U8 sessionId; //Added for BT-AMP Support
629 tANI_U16 transactionId; //Added for BT-AMP Support
630 tSirMacAddr bssId; //Added for BT-AMP Support
631 tSirMacAddr selfMacAddr; //Added for BT-AMP Support
632 tANI_U16 beaconInterval; //Added for BT-AMP Support
633 tANI_U8 dot11mode;
634 tSirBssType bssType;
635 tSirMacSSid ssId;
636 tANI_U8 channelId;
Jeff Johnsone7245742012-09-05 17:12:55 -0700637 ePhyChanBondState cbMode;
Jeff Johnson295189b2012-06-20 16:38:30 -0700638
Jeff Johnson295189b2012-06-20 16:38:30 -0700639 tANI_U8 privacy;
640 tANI_U8 apUapsdEnable;
641 tANI_U8 ssidHidden;
642 tANI_BOOLEAN fwdWPSPBCProbeReq;
643 tANI_BOOLEAN protEnabled;
644 tANI_BOOLEAN obssProtEnabled;
645 tANI_U16 ht_capab;
646 tAniAuthType authType;
647 tANI_U32 dtimPeriod;
648 tANI_U8 wps_state;
krunal sonie9002db2013-11-25 14:24:17 -0800649 tANI_U8 isCoalesingInIBSSAllowed; //Coalesing on/off knob
Jeff Johnson295189b2012-06-20 16:38:30 -0700650 tVOS_CON_MODE bssPersona;
651
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -0800652 tANI_U8 txLdpcIniFeatureEnabled;
653
Jeff Johnson295189b2012-06-20 16:38:30 -0700654 tSirRSNie rsnIE; // RSN IE to be sent in
655 // Beacon and Probe
656 // Response frames
657 tSirNwType nwType; // Indicates 11a/b/g
658 tSirMacRateSet operationalRateSet;// Has 11a or 11b rates
659 tSirMacRateSet extendedRateSet; // Has 11g rates
660
Chet Lanctot8cecea22014-02-11 19:09:36 -0800661#ifdef WLAN_FEATURE_11W
662 tANI_BOOLEAN pmfCapable;
663 tANI_BOOLEAN pmfRequired;
664#endif
665
Jeff Johnson295189b2012-06-20 16:38:30 -0700666} tSirSmeStartBssReq, *tpSirSmeStartBssReq;
667
668#define GET_IE_LEN_IN_BSS(lenInBss) ( lenInBss + sizeof(lenInBss) - \
krunal soni2a6a9062014-02-11 14:14:23 -0800669 ((uintptr_t)OFFSET_OF( tSirBssDescription, ieFields)))
Jeff Johnson295189b2012-06-20 16:38:30 -0700670
671#define WSCIE_PROBE_RSP_LEN (317 + 2)
672
673typedef struct sSirBssDescription
674{
675 //offset of the ieFields from bssId.
676 tANI_U16 length;
677 tSirMacAddr bssId;
678 v_TIME_t scanSysTimeMsec;
679 tANI_U32 timeStamp[2];
680 tANI_U16 beaconInterval;
681 tANI_U16 capabilityInfo;
682 tSirNwType nwType; // Indicates 11a/b/g
683 tANI_U8 aniIndicator;
684 tANI_S8 rssi;
685 tANI_S8 sinr;
686 //channelId what peer sent in beacon/probersp.
687 tANI_U8 channelId;
688 //channelId on which we are parked at.
689 //used only in scan case.
690 tANI_U8 channelIdSelf;
691 tANI_U8 sSirBssDescriptionRsvd[3];
Jeff Johnson295189b2012-06-20 16:38:30 -0700692 tANI_TIMESTAMP nReceivedTime; //base on a tick count. It is a time stamp, not a relative time.
693#if defined WLAN_FEATURE_VOWIFI
694 tANI_U32 parentTSF;
695 tANI_U32 startTSF[2];
696#endif
697#ifdef WLAN_FEATURE_VOWIFI_11R
698 tANI_U8 mdiePresent;
699 tANI_U8 mdie[SIR_MDIE_SIZE]; // MDIE for 11r, picked from the beacons
700#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800701#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -0700702 tANI_U16 QBSSLoad_present;
703 tANI_U16 QBSSLoad_avail;
704#endif
705 // Please keep the structure 4 bytes aligned above the ieFields
706
707 tANI_U8 fProbeRsp; //whether it is from a probe rsp
Madan Mohan Koyyalamudi2a6ba242012-10-31 17:06:19 -0700708 tANI_U8 reservedPadding1;
709 tANI_U8 reservedPadding2;
710 tANI_U8 reservedPadding3;
Jeff Johnson295189b2012-06-20 16:38:30 -0700711 tANI_U32 WscIeLen;
712 tANI_U8 WscIeProbeRsp[WSCIE_PROBE_RSP_LEN];
Madan Mohan Koyyalamudi2a6ba242012-10-31 17:06:19 -0700713 tANI_U8 reservedPadding4;
Prathyusha Kuntupalli7b8f6aa2012-12-10 13:17:35 -0800714
Jeff Johnson295189b2012-06-20 16:38:30 -0700715 tANI_U32 ieFields[1];
716} tSirBssDescription, *tpSirBssDescription;
717
718/// Definition for response message to previously
719/// issued start BSS request
720/// MAC --->
721typedef struct sSirSmeStartBssRsp
722{
723 tANI_U16 messageType; // eWNI_SME_START_BSS_RSP
724 tANI_U16 length;
725 tANI_U8 sessionId;
726 tANI_U16 transactionId;//transaction ID for cmd
727 tSirResultCodes statusCode;
728 tSirBssType bssType;//Add new type for WDS mode
729 tANI_U16 beaconInterval;//Beacon Interval for both type
730 tANI_U32 staId;//Staion ID for Self
731 tSirBssDescription bssDescription;//Peer BSS description
732} tSirSmeStartBssRsp, *tpSirSmeStartBssRsp;
733
Jeff Johnson295189b2012-06-20 16:38:30 -0700734
735typedef struct sSirChannelList
736{
737 tANI_U8 numChannels;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800738 tANI_U8 channelNumber[SIR_ESE_MAX_MEAS_IE_REQS];
Jeff Johnson295189b2012-06-20 16:38:30 -0700739} tSirChannelList, *tpSirChannelList;
740
Gopichand Nakkalad492d202013-05-10 02:50:47 +0530741typedef struct sSirDFSChannelList
742{
743 tANI_U32 timeStamp[SIR_MAX_24G_5G_CHANNEL_RANGE];
744
745} tSirDFSChannelList, *tpSirDFSChannelList;
746
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800747#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -0700748typedef struct sTspecInfo {
749 tANI_U8 valid;
750 tSirMacTspecIE tspec;
751} tTspecInfo;
752
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800753#define SIR_ESE_MAX_TSPEC_IES 4
754typedef struct sESETspecTspecInfo {
Jeff Johnson295189b2012-06-20 16:38:30 -0700755 tANI_U8 numTspecs;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -0800756 tTspecInfo tspec[SIR_ESE_MAX_TSPEC_IES];
757} tESETspecInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -0700758#endif
759
Jeff Johnson295189b2012-06-20 16:38:30 -0700760
761/// Definition for Radar Info
762typedef struct sSirRadarInfo
763{
764 tANI_U8 channelNumber;
765 tANI_U16 radarPulseWidth; // in usecond
766 tANI_U16 numRadarPulse;
767} tSirRadarInfo, *tpSirRadarInfo;
768
769#define SIR_RADAR_INFO_SIZE (sizeof(tANI_U8) + 2 *sizeof(tANI_U16))
770
771/// Two Background Scan mode
772typedef enum eSirBackgroundScanMode
773{
774 eSIR_AGGRESSIVE_BACKGROUND_SCAN = 0,
Madan Mohan Koyyalamudi9b876782012-10-11 16:22:51 -0700775 eSIR_NORMAL_BACKGROUND_SCAN = 1,
776 eSIR_ROAMING_SCAN = 2,
Jeff Johnson295189b2012-06-20 16:38:30 -0700777} tSirBackgroundScanMode;
778
779/// Two types of traffic check
780typedef enum eSirLinkTrafficCheck
781{
782 eSIR_DONT_CHECK_LINK_TRAFFIC_BEFORE_SCAN = 0,
Madan Mohan Koyyalamudi9b876782012-10-11 16:22:51 -0700783 eSIR_CHECK_LINK_TRAFFIC_BEFORE_SCAN = 1,
784 eSIR_CHECK_ROAMING_SCAN = 2,
Jeff Johnson295189b2012-06-20 16:38:30 -0700785} tSirLinkTrafficCheck;
786
787#define SIR_BG_SCAN_RETURN_CACHED_RESULTS 0x0
788#define SIR_BG_SCAN_PURGE_RESUTLS 0x80
789#define SIR_BG_SCAN_RETURN_FRESH_RESULTS 0x01
790#define SIR_SCAN_MAX_NUM_SSID 0x09
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700791#define SIR_BG_SCAN_RETURN_LFR_CACHED_RESULTS 0x02
792#define SIR_BG_SCAN_PURGE_LFR_RESULTS 0x40
Jeff Johnson295189b2012-06-20 16:38:30 -0700793
794/// Definition for scan request
795typedef struct sSirSmeScanReq
796{
797 tANI_U16 messageType; // eWNI_SME_SCAN_REQ
798 tANI_U16 length;
799 tANI_U8 sessionId; // Session ID
800 tANI_U16 transactionId; // Transaction ID for cmd
801 tSirMacAddr bssId;
802 tSirMacSSid ssId[SIR_SCAN_MAX_NUM_SSID];
803 tSirMacAddr selfMacAddr; //Added For BT-AMP Support
804 tSirBssType bssType;
805 tANI_U8 dot11mode;
806 tSirScanType scanType;
807 /**
808 * minChannelTime. Not used if scanType is passive.
809 * 0x0 - Dont Use min channel timer. Only max channel timeout will used.
810 * 11k measurements set this to zero to user only single duration for scan.
811 * <valid timeout> - Timeout value used for min channel timeout.
812 */
813 tANI_U32 minChannelTime;
814 /**
815 * maxChannelTime.
816 * 0x0 - Invalid. In case of active scan.
817 * In case of passive scan, MAX( maxChannelTime, WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME) is used.
818 *
819 */
820 tANI_U32 maxChannelTime;
821 /**
822 * returnAfterFirstMatch can take following values:
823 * 0x00 - Return SCAN_RSP message after complete channel scan
824 * 0x01 - Return SCAN_RSP message after collecting BSS description
825 * that matches scan criteria.
826 * 0xC0 - Return after collecting first 11d IE from 2.4 GHz &
827 * 5 GHz band channels
828 * 0x80 - Return after collecting first 11d IE from 5 GHz band
829 * channels
830 * 0x40 - Return after collecting first 11d IE from 2.4 GHz
831 * band channels
832 *
833 * Values of 0xC0, 0x80 & 0x40 are to be used by
834 * Roaming/application when 11d is enabled.
835 */
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800836 tANI_U32 minChannelTimeBtc; //in units of milliseconds
837 tANI_U32 maxChannelTimeBtc; //in units of milliseconds
Jeff Johnson295189b2012-06-20 16:38:30 -0700838 tANI_U8 returnAfterFirstMatch;
839
840 /**
841 * returnUniqueResults can take following values:
842 * 0 - Collect & report all received BSS descriptions from same BSS.
843 * 1 - Collect & report unique BSS description from same BSS.
844 */
845 tANI_U8 returnUniqueResults;
846
847 /**
848 * returnFreshResults can take following values:
849 * 0x00 - Return background scan results.
850 * 0x80 - Return & purge background scan results
851 * 0x01 - Trigger fresh scan instead of returning background scan
852 * results.
853 * 0x81 - Trigger fresh scan instead of returning background scan
854 * results and purge background scan results.
855 */
856 tANI_U8 returnFreshResults;
857
858 /* backgroundScanMode can take following values:
859 * 0x0 - agressive scan
860 * 0x1 - normal scan where HAL will check for link traffic
861 * prior to proceeding with the scan
862 */
863 tSirBackgroundScanMode backgroundScanMode;
864
865 tANI_U8 hiddenSsid;
866
867 /* Number of SSIDs to scan */
868 tANI_U8 numSsid;
869
870 //channelList has to be the last member of this structure. Check tSirChannelList for the reason.
871 /* This MUST be the last field of the structure */
872
873
Jeff Johnson295189b2012-06-20 16:38:30 -0700874 tANI_BOOLEAN p2pSearch;
Jeff Johnson295189b2012-06-20 16:38:30 -0700875 tANI_U16 uIEFieldLen;
876 tANI_U16 uIEFieldOffset;
877
878 //channelList MUST be the last field of this structure
879 tSirChannelList channelList;
880 /*-----------------------------
881 tSirSmeScanReq....
882 -----------------------------
883 uIEFiledLen
884 -----------------------------
885 uIEFiledOffset ----+
886 ----------------------------- |
887 channelList.numChannels |
888 ----------------------------- |
889 ... variable size up to |
890 channelNumber[numChannels-1] |
891 This can be zero, if |
892 numChannel is zero. |
893 ----------------------------- <--+
894 ... variable size uIEFiled
895 up to uIEFieldLen (can be 0)
896 -----------------------------*/
897} tSirSmeScanReq, *tpSirSmeScanReq;
898
Madan Mohan Koyyalamudiff3a7152013-06-13 14:47:55 +0530899typedef struct sSirSmeScanAbortReq
900{
901 tANI_U16 type;
902 tANI_U16 msgLen;
903 tANI_U8 sessionId;
904} tSirSmeScanAbortReq, *tpSirSmeScanAbortReq;
905
Madan Mohan Koyyalamudide1b5bc2013-07-12 00:56:04 +0530906typedef struct sSirSmeScanChanReq
907{
908 tANI_U16 type;
909 tANI_U16 msgLen;
910 tANI_U8 sessionId;
911 tANI_U16 transcationId;
912} tSirSmeGetScanChanReq, *tpSirSmeGetScanChanReq;
913
Jeff Johnsone7245742012-09-05 17:12:55 -0700914#ifdef FEATURE_OEM_DATA_SUPPORT
915
916#ifndef OEM_DATA_REQ_SIZE
Madan Mohan Koyyalamudi7a4d9312012-12-04 17:21:36 -0800917#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -0700918#endif
919#ifndef OEM_DATA_RSP_SIZE
Madan Mohan Koyyalamudi7a4d9312012-12-04 17:21:36 -0800920#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -0700921#endif
922
923typedef struct sSirOemDataReq
924{
925 tANI_U16 messageType; //eWNI_SME_OEM_DATA_REQ
926 tSirMacAddr selfMacAddr;
927 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
928} tSirOemDataReq, *tpSirOemDataReq;
929
930typedef struct sSirOemDataRsp
931{
932 tANI_U16 messageType;
933 tANI_U16 length;
934 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
935} tSirOemDataRsp, *tpSirOemDataRsp;
936
937#endif //FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -0700938
939/// Definition for response message to previously issued scan request
940typedef struct sSirSmeScanRsp
941{
942 tANI_U16 messageType; // eWNI_SME_SCAN_RSP
943 tANI_U16 length;
944 tANI_U8 sessionId;
945 tSirResultCodes statusCode;
946 tANI_U16 transcationId;
947 tSirBssDescription bssDescription[1];
948} tSirSmeScanRsp, *tpSirSmeScanRsp;
949
950/// Sme Req message to set the Background Scan mode
951typedef struct sSirSmeBackgroundScanModeReq
952{
953 tANI_U16 messageType; // eWNI_SME_BACKGROUND_SCAN_MODE_REQ
954 tANI_U16 length;
955 tSirBackgroundScanMode mode;
956} tSirSmeBackgroundScanModeReq, *tpSirSmeBackgroundScanModeReq;
957
958/// Background Scan Statisics
959typedef struct sSirBackgroundScanInfo {
960 tANI_U32 numOfScanSuccess;
961 tANI_U32 numOfScanFailure;
962 tANI_U32 reserved;
963} tSirBackgroundScanInfo, *tpSirBackgroundScanInfo;
964
965#define SIR_BACKGROUND_SCAN_INFO_SIZE (3 * sizeof(tANI_U32))
966
967/// Definition for Authentication request
968typedef struct sSirSmeAuthReq
969{
970 tANI_U16 messageType; // eWNI_SME_AUTH_REQ
971 tANI_U16 length;
972 tANI_U8 sessionId; // Session ID
973 tANI_U16 transactionId; // Transaction ID for cmd
974 tSirMacAddr bssId; // Self BSSID
975 tSirMacAddr peerMacAddr;
976 tAniAuthType authType;
977 tANI_U8 channelNumber;
978} tSirSmeAuthReq, *tpSirSmeAuthReq;
979
980/// Definition for reponse message to previously issued Auth request
981typedef struct sSirSmeAuthRsp
982{
983 tANI_U16 messageType; // eWNI_SME_AUTH_RSP
984 tANI_U16 length;
985 tANI_U8 sessionId; // Session ID
986 tANI_U16 transactionId; // Transaction ID for cmd
987 tSirMacAddr peerMacAddr;
988 tAniAuthType authType;
989 tSirResultCodes statusCode;
990 tANI_U16 protStatusCode; //It holds reasonCode when Pre-Auth fails due to deauth frame.
991 //Otherwise it holds status code.
992} tSirSmeAuthRsp, *tpSirSmeAuthRsp;
993
Jeff Johnson295189b2012-06-20 16:38:30 -0700994
Jeff Johnson295189b2012-06-20 16:38:30 -0700995
Jeff Johnson295189b2012-06-20 16:38:30 -0700996/// Definition for Join/Reassoc info - Reshmi: need to check if this is a def which moved from elsehwere.
997typedef struct sJoinReassocInfo
998{
999 tAniTitanCBNeighborInfo cbNeighbors;
1000 tAniBool spectrumMgtIndicator;
1001 tSirMacPowerCapInfo powerCap;
1002 tSirSupChnl supportedChannels;
1003} tJoinReassocInfo, *tpJoinReassocInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -07001004
1005/// Definition for join request
1006/// ---> MAC
1007/// WARNING! If you add a field in JOIN REQ.
1008/// Make sure to add it in REASSOC REQ
1009/// The Serdes function is the same and its
1010/// shared with REASSOC. So if we add a field
1011// here and dont add it in REASSOC REQ. It will BREAK!!! REASSOC.
1012typedef struct sSirSmeJoinReq
1013{
1014 tANI_U16 messageType; // eWNI_SME_JOIN_REQ
1015 tANI_U16 length;
Jeff Johnsone7245742012-09-05 17:12:55 -07001016 tANI_U8 sessionId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001017 tANI_U16 transactionId;
1018 tSirMacSSid ssId;
1019 tSirMacAddr selfMacAddr; // self Mac address
1020 tSirBssType bsstype; // add new type for BT -AMP STA and AP Modules
1021 tANI_U8 dot11mode; // to support BT-AMP
Jeff Johnsone7245742012-09-05 17:12:55 -07001022 tVOS_CON_MODE staPersona; //Persona
1023 ePhyChanBondState cbMode; // Pass CB mode value in Join.
Jeff Johnson295189b2012-06-20 16:38:30 -07001024
1025 /*This contains the UAPSD Flag for all 4 AC
1026 * B0: AC_VO UAPSD FLAG
1027 * B1: AC_VI UAPSD FLAG
1028 * B2: AC_BK UAPSD FLAG
1029 * B3: AC_BE UASPD FLAG
1030 */
1031 tANI_U8 uapsdPerAcBitmask;
1032
Jeff Johnson295189b2012-06-20 16:38:30 -07001033 tSirMacRateSet operationalRateSet;// Has 11a or 11b rates
1034 tSirMacRateSet extendedRateSet; // Has 11g rates
1035 tSirRSNie rsnIE; // RSN IE to be sent in
1036 // (Re) Association Request
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001037#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -07001038 tSirCCKMie cckmIE; // CCMK IE to be included as handler for join and reassoc is
1039 // the same. The join will never carry cckm, but will be set to
1040 // 0.
1041#endif
1042
1043 tSirAddie addIEScan; // Additional IE to be sent in
1044 // (unicast) Probe Request at the time of join
1045
1046 tSirAddie addIEAssoc; // Additional IE to be sent in
1047 // (Re) Association Request
1048
1049 tAniEdType UCEncryptionType;
1050
1051 tAniEdType MCEncryptionType;
Chet Lanctot186b5732013-03-18 10:26:30 -07001052
1053#ifdef WLAN_FEATURE_11W
1054 tAniEdType MgmtEncryptionType;
1055#endif
1056
Jeff Johnson295189b2012-06-20 16:38:30 -07001057#ifdef WLAN_FEATURE_VOWIFI_11R
1058 tAniBool is11Rconnection;
1059#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001060#ifdef FEATURE_WLAN_ESE
1061 tAniBool isESEFeatureIniEnabled;
1062 tAniBool isESEconnection;
1063 tESETspecInfo eseTspecInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -07001064#endif
1065
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001066#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07001067 tAniBool isFastTransitionEnabled;
1068#endif
Jeff Johnson43971f52012-07-17 12:26:56 -07001069#ifdef FEATURE_WLAN_LFR
1070 tAniBool isFastRoamIniFeatureEnabled;
1071#endif
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001072
1073 tANI_U8 txLdpcIniFeatureEnabled;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001074#ifdef WLAN_FEATURE_11AC
1075 tANI_U8 txBFIniFeatureEnabled;
Shailender Karmuchicc3fe442013-02-16 18:18:33 -08001076 tANI_U8 txBFCsnValue;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001077#endif
krunal soni5afa96c2013-09-06 22:19:02 -07001078 tANI_U8 isAmsduSupportInAMPDU;
Sandeep Puligillaaea98a22013-12-04 13:36:32 +05301079 tAniBool isWMEenabled;
1080 tAniBool isQosEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07001081 tAniTitanCBNeighborInfo cbNeighbors;
1082 tAniBool spectrumMgtIndicator;
1083 tSirMacPowerCapInfo powerCap;
1084 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001085 tSirBssDescription bssDescription;
Jeff Johnson295189b2012-06-20 16:38:30 -07001086
1087} tSirSmeJoinReq, *tpSirSmeJoinReq;
1088
1089/// Definition for reponse message to previously issued join request
1090/// MAC --->
1091typedef struct sSirSmeJoinRsp
1092{
1093 tANI_U16 messageType; // eWNI_SME_JOIN_RSP
1094 tANI_U16 length;
1095 tANI_U8 sessionId; // Session ID
1096 tANI_U16 transactionId; // Transaction ID for cmd
1097 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001098 tAniAuthType authType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001099 tANI_U16 protStatusCode; //It holds reasonCode when join fails due to deauth/disassoc frame.
1100 //Otherwise it holds status code.
1101 tANI_U16 aid;
1102 tANI_U32 beaconLength;
1103 tANI_U32 assocReqLength;
1104 tANI_U32 assocRspLength;
1105#ifdef WLAN_FEATURE_VOWIFI_11R
1106 tANI_U32 parsedRicRspLen;
1107#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08001108#ifdef FEATURE_WLAN_ESE
Jeff Johnson295189b2012-06-20 16:38:30 -07001109 tANI_U32 tspecIeLen;
1110#endif
1111 tANI_U32 staId;//Station ID for peer
1112
1113 /*The DPU signatures will be sent eventually to TL to help it determine the
1114 association to which a packet belongs to*/
1115 /*Unicast DPU signature*/
1116 tANI_U8 ucastSig;
1117
1118 /*Broadcast DPU signature*/
1119 tANI_U8 bcastSig;
1120
1121 tANI_U8 frames[ 1 ];
1122} tSirSmeJoinRsp, *tpSirSmeJoinRsp;
1123
1124/// Definition for Authentication indication from peer
1125typedef struct sSirSmeAuthInd
1126{
1127 tANI_U16 messageType; // eWNI_SME_AUTH_IND
1128 tANI_U16 length;
1129 tANI_U8 sessionId;
1130 tSirMacAddr bssId; // Self BSSID
1131 tSirMacAddr peerMacAddr;
1132 tAniAuthType authType;
1133} tSirSmeAuthInd, *tpSirSmeAuthInd;
1134
1135/// probereq from peer, when wsc is enabled
1136typedef struct sSirSmeProbereq
1137{
1138 tANI_U16 messageType; // eWNI_SME_PROBE_REQ
1139 tANI_U16 length;
1140 tANI_U8 sessionId;
1141 tSirMacAddr peerMacAddr;
1142 tANI_U16 devicePasswdId;
1143} tSirSmeProbeReq, *tpSirSmeProbeReq;
1144
1145/// Definition for Association indication from peer
1146/// MAC --->
1147typedef struct sSirSmeAssocInd
1148{
1149 tANI_U16 messageType; // eWNI_SME_ASSOC_IND
1150 tANI_U16 length;
1151 tANI_U8 sessionId;
1152 tSirMacAddr peerMacAddr;
1153 tANI_U16 aid;
1154 tSirMacAddr bssId; // Self BSSID
1155 tANI_U16 staId; // Station ID for peer
1156 tANI_U8 uniSig; // DPU signature for unicast packets
1157 tANI_U8 bcastSig; // DPU signature for broadcast packets
1158 tAniAuthType authType;
1159 tAniSSID ssId; // SSID used by STA to associate
1160 tSirRSNie rsnIE;// RSN IE received from peer
1161 tSirAddie addIE;// Additional IE received from peer, which possibly include WSC IE and/or P2P IE
1162
Jeff Johnson295189b2012-06-20 16:38:30 -07001163 // powerCap & supportedChannels are present only when
1164 // spectrumMgtIndicator flag is set
1165 tAniBool spectrumMgtIndicator;
1166 tSirMacPowerCapInfo powerCap;
1167 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001168 tAniBool wmmEnabledSta; /* if present - STA is WMM enabled */
1169 tAniBool reassocReq;
1170 // Required for indicating the frames to upper layer
1171 tANI_U32 beaconLength;
1172 tANI_U8* beaconPtr;
1173 tANI_U32 assocReqLength;
1174 tANI_U8* assocReqPtr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001175} tSirSmeAssocInd, *tpSirSmeAssocInd;
1176
1177
1178/// Definition for Association confirm
1179/// ---> MAC
1180typedef struct sSirSmeAssocCnf
1181{
1182 tANI_U16 messageType; // eWNI_SME_ASSOC_CNF
1183 tANI_U16 length;
1184 tSirResultCodes statusCode;
1185 tSirMacAddr bssId; // Self BSSID
1186 tSirMacAddr peerMacAddr;
1187 tANI_U16 aid;
1188 tSirMacAddr alternateBssId;
1189 tANI_U8 alternateChannelId;
1190} tSirSmeAssocCnf, *tpSirSmeAssocCnf;
1191
Jeff Johnson295189b2012-06-20 16:38:30 -07001192/// Definition for Reassociation indication from peer
1193typedef struct sSirSmeReassocInd
1194{
1195 tANI_U16 messageType; // eWNI_SME_REASSOC_IND
1196 tANI_U16 length;
1197 tANI_U8 sessionId; // Session ID
1198 tSirMacAddr peerMacAddr;
1199 tSirMacAddr oldMacAddr;
1200 tANI_U16 aid;
1201 tSirMacAddr bssId; // Self BSSID
1202 tANI_U16 staId; // Station ID for peer
1203 tAniAuthType authType;
1204 tAniSSID ssId; // SSID used by STA to reassociate
1205 tSirRSNie rsnIE; // RSN IE received from peer
1206
1207 tSirAddie addIE; // Additional IE received from peer
1208
Jeff Johnson295189b2012-06-20 16:38:30 -07001209 // powerCap & supportedChannels are present only when
1210 // spectrumMgtIndicator flag is set
1211 tAniBool spectrumMgtIndicator;
1212 tSirMacPowerCapInfo powerCap;
1213 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001214 // Required for indicating the frames to upper layer
1215 // TODO: use the appropriate names to distinguish between the other similar names used above for station mode of operation
1216 tANI_U32 beaconLength;
1217 tANI_U8* beaconPtr;
1218 tANI_U32 assocReqLength;
1219 tANI_U8* assocReqPtr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001220} tSirSmeReassocInd, *tpSirSmeReassocInd;
1221
1222/// Definition for Reassociation confirm
1223/// ---> MAC
1224typedef struct sSirSmeReassocCnf
1225{
1226 tANI_U16 messageType; // eWNI_SME_REASSOC_CNF
1227 tANI_U16 length;
1228 tSirResultCodes statusCode;
1229 tSirMacAddr bssId; // Self BSSID
1230 tSirMacAddr peerMacAddr;
1231 tANI_U16 aid;
1232 tSirMacAddr alternateBssId;
1233 tANI_U8 alternateChannelId;
1234} tSirSmeReassocCnf, *tpSirSmeReassocCnf;
1235
Jeff Johnson295189b2012-06-20 16:38:30 -07001236
1237/// Enum definition for Wireless medium status change codes
1238typedef enum eSirSmeStatusChangeCode
1239{
1240 eSIR_SME_DEAUTH_FROM_PEER,
1241 eSIR_SME_DISASSOC_FROM_PEER,
1242 eSIR_SME_LOST_LINK_WITH_PEER,
1243 eSIR_SME_CHANNEL_SWITCH,
1244 eSIR_SME_JOINED_NEW_BSS,
1245 eSIR_SME_LEAVING_BSS,
1246 eSIR_SME_IBSS_ACTIVE,
1247 eSIR_SME_IBSS_INACTIVE,
1248 eSIR_SME_IBSS_PEER_DEPARTED,
1249 eSIR_SME_RADAR_DETECTED,
1250 eSIR_SME_IBSS_NEW_PEER,
1251 eSIR_SME_AP_CAPS_CHANGED,
1252 eSIR_SME_BACKGROUND_SCAN_FAIL,
1253 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_AP,
1254 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
1255} tSirSmeStatusChangeCode;
1256
1257typedef struct sSirSmeNewBssInfo
1258{
1259 tSirMacAddr bssId;
1260 tANI_U8 channelNumber;
1261 tANI_U8 reserved;
1262 tSirMacSSid ssId;
1263} tSirSmeNewBssInfo, *tpSirSmeNewBssInfo;
1264
1265typedef struct sSirSmeApNewCaps
1266{
1267 tANI_U16 capabilityInfo;
1268 tSirMacAddr bssId;
1269 tANI_U8 channelId;
1270 tANI_U8 reserved[3];
1271 tSirMacSSid ssId;
1272} tSirSmeApNewCaps, *tpSirSmeApNewCaps;
1273
1274/**
1275 * Table below indicates what information is passed for each of
1276 * the Wireless Media status change notifications:
1277 *
1278 * Status Change code Status change info
1279 * ----------------------------------------------------------------------
1280 * eSIR_SME_DEAUTH_FROM_PEER Reason code received in DEAUTH frame
1281 * eSIR_SME_DISASSOC_FROM_PEER Reason code received in DISASSOC frame
1282 * eSIR_SME_LOST_LINK_WITH_PEER None
1283 * eSIR_SME_CHANNEL_SWITCH New channel number
1284 * eSIR_SME_JOINED_NEW_BSS BSSID, SSID and channel number
1285 * eSIR_SME_LEAVING_BSS None
1286 * eSIR_SME_IBSS_ACTIVE Indicates that another STA joined
1287 * IBSS apart from this STA that
1288 * started IBSS
1289 * eSIR_SME_IBSS_INACTIVE Indicates that only this STA is left
1290 * in IBSS
1291 * eSIR_SME_RADAR_DETECTED Indicates that radar is detected
1292 * eSIR_SME_IBSS_NEW_PEER Indicates that a new peer is detected
1293 * eSIR_SME_AP_CAPS_CHANGED Indicates that capabilities of the AP
1294 * that STA is currently associated with
1295 * have changed.
1296 * eSIR_SME_BACKGROUND_SCAN_FAIL Indicates background scan failure
1297 */
1298
1299/// Definition for Wireless medium status change notification
1300typedef struct sSirSmeWmStatusChangeNtf
1301{
1302 tANI_U16 messageType; // eWNI_SME_WM_STATUS_CHANGE_NTF
1303 tANI_U16 length;
1304 tANI_U8 sessionId; // Session ID
1305 tSirSmeStatusChangeCode statusChangeCode;
1306 tSirMacAddr bssId; // Self BSSID
1307 union
1308 {
1309 tANI_U16 deAuthReasonCode; // eSIR_SME_DEAUTH_FROM_PEER
1310 tANI_U16 disassocReasonCode; // eSIR_SME_DISASSOC_FROM_PEER
1311 // none for eSIR_SME_LOST_LINK_WITH_PEER
1312 tANI_U8 newChannelId; // eSIR_SME_CHANNEL_SWITCH
1313 tSirSmeNewBssInfo newBssInfo; // eSIR_SME_JOINED_NEW_BSS
1314 // none for eSIR_SME_LEAVING_BSS
1315 // none for eSIR_SME_IBSS_ACTIVE
1316 // none for eSIR_SME_IBSS_INACTIVE
Jeff Johnson295189b2012-06-20 16:38:30 -07001317 tSirNewIbssPeerInfo newIbssPeerInfo; // eSIR_SME_IBSS_NEW_PEER
1318 tSirSmeApNewCaps apNewCaps; // eSIR_SME_AP_CAPS_CHANGED
1319 tSirBackgroundScanInfo bkgndScanInfo; // eSIR_SME_BACKGROUND_SCAN_FAIL
1320 tAniTitanCBNeighborInfo cbNeighbors; // eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
Jeff Johnson295189b2012-06-20 16:38:30 -07001321 } statusChangeInfo;
1322} tSirSmeWmStatusChangeNtf, *tpSirSmeWmStatusChangeNtf;
1323
1324/// Definition for Disassociation request
1325typedef
Jeff Johnson295189b2012-06-20 16:38:30 -07001326__ani_attr_pre_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001327struct sSirSmeDisassocReq
1328{
1329 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1330 tANI_U16 length;
1331 tANI_U8 sessionId; // Session ID
1332 tANI_U16 transactionId; // Transaction ID for cmd
1333 tSirMacAddr bssId; // Peer BSSID
1334 tSirMacAddr peerMacAddr;
1335 tANI_U16 reasonCode;
1336 tANI_U8 doNotSendOverTheAir; //This flag tells LIM whether to send the disassoc OTA or not
1337 //This will be set in while handing off from one AP to other
Jeff Johnson295189b2012-06-20 16:38:30 -07001338}
Jeff Johnson295189b2012-06-20 16:38:30 -07001339__ani_attr_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001340tSirSmeDisassocReq, *tpSirSmeDisassocReq;
1341
1342/// Definition for Tkip countermeasures request
Jeff Johnson295189b2012-06-20 16:38:30 -07001343typedef __ani_attr_pre_packed struct sSirSmeTkipCntrMeasReq
1344{
1345 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1346 tANI_U16 length;
1347 tANI_U8 sessionId; // Session ID
1348 tANI_U16 transactionId; // Transaction ID for cmd
1349 tSirMacAddr bssId; // Peer BSSID
1350 tANI_BOOLEAN bEnable; // Start/stop countermeasures
1351} __ani_attr_packed tSirSmeTkipCntrMeasReq, *tpSirSmeTkipCntrMeasReq;
Jeff Johnson295189b2012-06-20 16:38:30 -07001352
1353typedef struct sAni64BitCounters
1354{
1355 tANI_U32 Hi;
1356 tANI_U32 Lo;
1357}tAni64BitCounters, *tpAni64BitCounters;
1358
1359typedef struct sAniSecurityStat
1360{
1361 tAni64BitCounters txBlks;
1362 tAni64BitCounters rxBlks;
1363 tAni64BitCounters formatErrorCnt;
1364 tAni64BitCounters decryptErr;
1365 tAni64BitCounters protExclCnt;
1366 tAni64BitCounters unDecryptableCnt;
1367 tAni64BitCounters decryptOkCnt;
1368
1369}tAniSecurityStat, *tpAniSecurityStat;
1370
1371typedef struct sAniTxRxCounters
1372{
1373 tANI_U32 txFrames; // Incremented for every packet tx
1374 tANI_U32 rxFrames;
1375 tANI_U32 nRcvBytes;
1376 tANI_U32 nXmitBytes;
1377}tAniTxRxCounters, *tpAniTxRxCounters;
1378
1379typedef struct sAniTxRxStats
1380{
1381 tAni64BitCounters txFrames;
1382 tAni64BitCounters rxFrames;
1383 tAni64BitCounters nRcvBytes;
1384 tAni64BitCounters nXmitBytes;
1385
1386}tAniTxRxStats,*tpAniTxRxStats;
1387
1388typedef struct sAniSecStats
1389{
1390 tAniSecurityStat aes;
1391 tAni64BitCounters aesReplays;
1392 tAniSecurityStat tkip;
1393 tAni64BitCounters tkipReplays;
1394 tAni64BitCounters tkipMicError;
1395
1396 tAniSecurityStat wep;
1397#if defined(FEATURE_WLAN_WAPI) && !defined(LIBRA_WAPI_SUPPORT)
1398 tAniSecurityStat wpi;
1399 tAni64BitCounters wpiReplays;
1400 tAni64BitCounters wpiMicError;
1401#endif
1402}tAniSecStats, *tpAniSecStats;
1403
1404#define SIR_MAX_RX_CHAINS 3
1405
1406typedef struct sAniStaStatStruct
1407{
1408 /* following statistic elements till expandPktRxCntLo are not filled with valid data.
1409 * These are kept as it is, since WSM is using this structure.
1410 * These elements can be removed whenever WSM is updated.
1411 * Phystats is used to hold phystats from BD.
1412 */
1413 tANI_U32 sentAesBlksUcastHi;
1414 tANI_U32 sentAesBlksUcastLo;
1415 tANI_U32 recvAesBlksUcastHi;
1416 tANI_U32 recvAesBlksUcastLo;
1417 tANI_U32 aesFormatErrorUcastCnts;
1418 tANI_U32 aesReplaysUcast;
1419 tANI_U32 aesDecryptErrUcast;
1420 tANI_U32 singleRetryPkts;
1421 tANI_U32 failedTxPkts;
1422 tANI_U32 ackTimeouts;
1423 tANI_U32 multiRetryPkts;
1424 tANI_U32 fragTxCntsHi;
1425 tANI_U32 fragTxCntsLo;
1426 tANI_U32 transmittedPktsHi;
1427 tANI_U32 transmittedPktsLo;
1428 tANI_U32 phyStatHi; //These are used to fill in the phystats.
1429 tANI_U32 phyStatLo; //This is only for private use.
1430
1431 tANI_U32 uplinkRssi;
1432 tANI_U32 uplinkSinr;
1433 tANI_U32 uplinkRate;
1434 tANI_U32 downlinkRssi;
1435 tANI_U32 downlinkSinr;
1436 tANI_U32 downlinkRate;
1437 tANI_U32 nRcvBytes;
1438 tANI_U32 nXmitBytes;
1439
1440 // titan 3c stats
1441 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1442 tANI_U32 chunksTxCntLo;
1443 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1444 tANI_U32 compPktRxCntLo;
1445 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1446 tANI_U32 expanPktRxCntLo;
1447
1448
1449 /* Following elements are valid and filled in correctly. They have valid values.
1450 */
1451
1452 //Unicast frames and bytes.
1453 tAniTxRxStats ucStats;
1454
1455 //Broadcast frames and bytes.
1456 tAniTxRxStats bcStats;
1457
1458 //Multicast frames and bytes.
1459 tAniTxRxStats mcStats;
1460
1461 tANI_U32 currentTxRate;
1462 tANI_U32 currentRxRate; //Rate in 100Kbps
1463
1464 tANI_U32 maxTxRate;
1465 tANI_U32 maxRxRate;
1466
1467 tANI_S8 rssi[SIR_MAX_RX_CHAINS];
1468
1469
1470 tAniSecStats securityStats;
1471
1472 tANI_U8 currentRxRateIdx; //This the softmac rate Index.
1473 tANI_U8 currentTxRateIdx;
1474
1475} tAniStaStatStruct, *tpAniStaStatStruct;
1476
1477//Statistics that are not maintained per stations.
1478typedef struct sAniGlobalStatStruct
1479{
1480 tAni64BitCounters txError;
1481 tAni64BitCounters rxError;
1482 tAni64BitCounters rxDropNoBuffer;
1483 tAni64BitCounters rxDropDup;
1484 tAni64BitCounters rxCRCError;
1485
1486 tAni64BitCounters singleRetryPkts;
1487 tAni64BitCounters failedTxPkts;
1488 tAni64BitCounters ackTimeouts;
1489 tAni64BitCounters multiRetryPkts;
1490 tAni64BitCounters fragTxCnts;
1491 tAni64BitCounters fragRxCnts;
1492
1493 tAni64BitCounters txRTSSuccess;
1494 tAni64BitCounters txCTSSuccess;
1495 tAni64BitCounters rxRTSSuccess;
1496 tAni64BitCounters rxCTSSuccess;
1497
1498 tAniSecStats securityStats;
1499
1500 tAniTxRxStats mcStats;
1501 tAniTxRxStats bcStats;
1502
1503}tAniGlobalStatStruct,*tpAniGlobalStatStruct;
1504
1505typedef enum sPacketType
1506{
1507 ePACKET_TYPE_UNKNOWN,
1508 ePACKET_TYPE_11A,
1509 ePACKET_TYPE_11G,
1510 ePACKET_TYPE_11B,
1511 ePACKET_TYPE_11N
1512
1513}tPacketType, *tpPacketType;
1514
1515typedef struct sAniStatSummaryStruct
1516{
1517 tAniTxRxStats uc; //Unicast counters.
1518 tAniTxRxStats bc; //Broadcast counters.
1519 tAniTxRxStats mc; //Multicast counters.
1520 tAni64BitCounters txError;
1521 tAni64BitCounters rxError;
1522 tANI_S8 rssi[SIR_MAX_RX_CHAINS]; //For each chain.
1523 tANI_U32 rxRate; // Rx rate of the last received packet.
1524 tANI_U32 txRate;
1525 tANI_U16 rxMCSId; //MCS index is valid only when packet type is ePACKET_TYPE_11N
1526 tANI_U16 txMCSId;
1527 tPacketType rxPacketType;
1528 tPacketType txPacketType;
1529 tSirMacAddr macAddr; //Mac Address of the station from which above RSSI and rate is from.
1530}tAniStatSummaryStruct,*tpAniStatSummaryStruct;
1531
Jeff Johnson295189b2012-06-20 16:38:30 -07001532//structure for stats that may be reset, like the ones in sta descriptor
1533//The stats are saved into here before reset. It should be tANI_U32 aligned.
1534typedef struct _sPermStaStats
1535{
1536 //tANI_U32 sentAesBlksUcastHi;
1537 //tANI_U32 sentAesBlksUcastLo;
1538 //tANI_U32 recvAesBlksUcastHi;
1539 //tANI_U32 recvAesBlksUcastLo;
1540 tANI_U32 aesFormatErrorUcastCnts;
1541 tANI_U32 aesReplaysUcast;
1542 tANI_U32 aesDecryptErrUcast;
1543 tANI_U32 singleRetryPkts;
1544 tANI_U32 failedTxPkts;
1545 tANI_U32 ackTimeouts;
1546 tANI_U32 multiRetryPkts;
1547 tANI_U32 fragTxCntsHi;
1548 tANI_U32 fragTxCntsLo;
1549 tANI_U32 transmittedPktsHi;
1550 tANI_U32 transmittedPktsLo;
1551
1552 // titan 3c stats
1553 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1554 tANI_U32 chunksTxCntLo;
1555 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1556 tANI_U32 compPktRxCntLo;
1557 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1558 tANI_U32 expanPktRxCntLo;
1559}tPermanentStaStats;
1560
Jeff Johnson295189b2012-06-20 16:38:30 -07001561
1562
1563
1564/// Definition for Disassociation response
1565typedef struct sSirSmeDisassocRsp
1566{
1567 tANI_U16 messageType; // eWNI_SME_DISASSOC_RSP
1568 tANI_U16 length;
1569 tANI_U8 sessionId; // Session ID
1570 tANI_U16 transactionId; // Transaction ID for cmd
1571 tSirResultCodes statusCode;
1572 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001573 tAniStaStatStruct perStaStats; // STA stats
Jeff Johnson295189b2012-06-20 16:38:30 -07001574 tANI_U16 staId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001575}
Jeff Johnson295189b2012-06-20 16:38:30 -07001576__ani_attr_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001577 tSirSmeDisassocRsp, *tpSirSmeDisassocRsp;
1578
1579/// Definition for Disassociation indication from peer
1580typedef struct sSirSmeDisassocInd
1581{
1582 tANI_U16 messageType; // eWNI_SME_DISASSOC_IND
1583 tANI_U16 length;
1584 tANI_U8 sessionId; // Session Identifier
1585 tANI_U16 transactionId; // Transaction Identifier with PE
1586 tSirResultCodes statusCode;
1587 tSirMacAddr bssId;
1588 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001589 tAniStaStatStruct perStaStats; // STA stats
Jeff Johnson295189b2012-06-20 16:38:30 -07001590 tANI_U16 staId;
Mohit Khanna99d5fd02012-09-11 14:51:20 -07001591 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001592} tSirSmeDisassocInd, *tpSirSmeDisassocInd;
1593
1594/// Definition for Disassociation confirm
1595/// MAC --->
1596typedef struct sSirSmeDisassocCnf
1597{
1598 tANI_U16 messageType; // eWNI_SME_DISASSOC_CNF
1599 tANI_U16 length;
1600 tSirResultCodes statusCode;
1601 tSirMacAddr bssId;
1602 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001603} tSirSmeDisassocCnf, *tpSirSmeDisassocCnf;
1604
1605/// Definition for Deauthetication request
1606typedef struct sSirSmeDeauthReq
1607{
1608 tANI_U16 messageType; // eWNI_SME_DEAUTH_REQ
1609 tANI_U16 length;
1610 tANI_U8 sessionId; // Session ID
1611 tANI_U16 transactionId; // Transaction ID for cmd
1612 tSirMacAddr bssId; // AP BSSID
1613 tSirMacAddr peerMacAddr;
1614 tANI_U16 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001615} tSirSmeDeauthReq, *tpSirSmeDeauthReq;
1616
1617/// Definition for Deauthetication response
1618typedef struct sSirSmeDeauthRsp
1619{
1620 tANI_U16 messageType; // eWNI_SME_DEAUTH_RSP
1621 tANI_U16 length;
1622 tANI_U8 sessionId; // Session ID
1623 tANI_U16 transactionId; // Transaction ID for cmd
1624 tSirResultCodes statusCode;
1625 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001626} tSirSmeDeauthRsp, *tpSirSmeDeauthRsp;
1627
1628/// Definition for Deauthetication indication from peer
1629typedef struct sSirSmeDeauthInd
1630{
1631 tANI_U16 messageType; // eWNI_SME_DEAUTH_IND
1632 tANI_U16 length;
1633 tANI_U8 sessionId; //Added for BT-AMP
1634 tANI_U16 transactionId; //Added for BT-AMP
1635 tSirResultCodes statusCode;
1636 tSirMacAddr bssId;// AP BSSID
1637 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001638
Jeff Johnson295189b2012-06-20 16:38:30 -07001639 tANI_U16 staId;
Mohit Khanna99d5fd02012-09-11 14:51:20 -07001640 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001641} tSirSmeDeauthInd, *tpSirSmeDeauthInd;
1642
1643/// Definition for Deauthentication confirm
1644/// MAC --->
1645typedef struct sSirSmeDeauthCnf
1646{
1647 tANI_U16 messageType; // eWNI_SME_DEAUTH_CNF
1648 tANI_U16 length;
1649 tSirResultCodes statusCode;
1650 tSirMacAddr bssId; // AP BSSID
1651 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001652} tSirSmeDeauthCnf, *tpSirSmeDeauthCnf;
1653
1654/// Definition for stop BSS request message
1655typedef struct sSirSmeStopBssReq
1656{
1657 tANI_U16 messageType; // eWNI_SME_STOP_BSS_REQ
1658 tANI_U16 length;
1659 tANI_U8 sessionId; //Session ID
1660 tANI_U16 transactionId; //tranSaction ID for cmd
1661 tSirResultCodes reasonCode;
1662 tSirMacAddr bssId; //Self BSSID
1663} tSirSmeStopBssReq, *tpSirSmeStopBssReq;
1664
1665/// Definition for stop BSS response message
1666typedef struct sSirSmeStopBssRsp
1667{
1668 tANI_U16 messageType; // eWNI_SME_STOP_BSS_RSP
1669 tANI_U16 length;
1670 tSirResultCodes statusCode;
1671 tANI_U8 sessionId; // Session ID
1672 tANI_U16 transactionId; // Transaction ID for cmd
1673} tSirSmeStopBssRsp, *tpSirSmeStopBssRsp;
1674
Jeff Johnson295189b2012-06-20 16:38:30 -07001675
1676
1677/// Definition for Channel Switch indication for station
1678/// MAC --->
1679typedef struct sSirSmeSwitchChannelInd
1680{
1681 tANI_U16 messageType; // eWNI_SME_SWITCH_CHL_REQ
1682 tANI_U16 length;
1683 tANI_U8 sessionId;
1684 tANI_U16 newChannelId;
1685 tSirMacAddr bssId; // BSSID
1686} tSirSmeSwitchChannelInd, *tpSirSmeSwitchChannelInd;
1687
1688/// Definition for ULA complete indication message
1689typedef struct sirUlaCompleteInd
1690{
1691 tANI_U16 messageType; // eWNI_ULA_COMPLETE_IND
1692 tANI_U16 length;
1693 tSirResultCodes statusCode;
1694 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001695} tSirUlaCompleteInd, *tpSirUlaCompleteInd;
1696
1697/// Definition for ULA complete confirmation message
1698typedef struct sirUlaCompleteCnf
1699{
1700 tANI_U16 messageType; // eWNI_ULA_COMPLETE_CNF
1701 tANI_U16 length;
1702 tSirResultCodes statusCode;
1703 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001704} tSirUlaCompleteCnf, *tpSirUlaCompleteCnf;
1705
1706/// Definition for Neighbor BSS indication
1707/// MAC --->
1708/// MAC reports this each time a new I/BSS is detected
1709typedef struct sSirSmeNeighborBssInd
1710{
1711 tANI_U16 messageType; // eWNI_SME_NEIGHBOR_BSS_IND
1712 tANI_U16 length;
1713 tANI_U8 sessionId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001714 tSirBssDescription bssDescription[1];
Jeff Johnson295189b2012-06-20 16:38:30 -07001715} tSirSmeNeighborBssInd, *tpSirSmeNeighborBssInd;
1716
1717/// Definition for MIC failure indication
1718/// MAC --->
1719/// MAC reports this each time a MIC failure occures on Rx TKIP packet
1720typedef struct sSirSmeMicFailureInd
1721{
1722 tANI_U16 messageType; // eWNI_SME_MIC_FAILURE_IND
1723 tANI_U16 length;
1724 tANI_U8 sessionId;
1725 tSirMacAddr bssId; // BSSID
1726 tSirMicFailureInfo info;
1727} tSirSmeMicFailureInd, *tpSirSmeMicFailureInd;
1728
Leela Venkata Kiran Kumar Reddy Chirala3ca17902013-02-27 19:50:05 -08001729typedef struct sSirSmeMissedBeaconInd
1730{
1731 tANI_U16 messageType; // eWNI_SME_MISSED_BEACON_IND
1732 tANI_U16 length;
1733 tANI_U8 bssIdx;
1734} tSirSmeMissedBeaconInd, *tpSirSmeMissedBeaconInd;
Jeff Johnson295189b2012-06-20 16:38:30 -07001735
1736/// Definition for Set Context request
1737/// ---> MAC
1738typedef struct sSirSmeSetContextReq
1739{
1740 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_REQ
1741 tANI_U16 length;
1742 tANI_U8 sessionId; //Session ID
1743 tANI_U16 transactionId; //Transaction ID for cmd
1744 tSirMacAddr peerMacAddr;
1745 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07001746 // TBD Following QOS fields to be uncommented
1747 //tAniBool qosInfoPresent;
1748 //tSirQos qos;
1749 tSirKeyMaterial keyMaterial;
1750} tSirSmeSetContextReq, *tpSirSmeSetContextReq;
1751
1752/// Definition for Set Context response
1753/// MAC --->
1754typedef struct sSirSmeSetContextRsp
1755{
1756 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_RSP
1757 tANI_U16 length;
1758 tANI_U8 sessionId; // Session ID
1759 tANI_U16 transactionId; // Transaction ID for cmd
1760 tSirResultCodes statusCode;
1761 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001762} tSirSmeSetContextRsp, *tpSirSmeSetContextRsp;
1763
1764/// Definition for Remove Key Context request
1765/// ---> MAC
1766typedef struct sSirSmeRemoveKeyReq
1767{
1768 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_REQ
1769 tANI_U16 length;
1770 tANI_U8 sessionId; // Session ID
1771 tANI_U16 transactionId; // Transaction ID for cmd
1772 tSirMacAddr bssId; // BSSID
1773 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001774 tANI_U8 edType;
1775 tANI_U8 wepType;
1776 tANI_U8 keyId;
1777 tANI_BOOLEAN unicast;
1778} tSirSmeRemoveKeyReq, *tpSirSmeRemoveKeyReq;
1779
1780/// Definition for Remove Key Context response
1781/// MAC --->
1782typedef struct sSirSmeRemoveKeyRsp
1783{
1784 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_RSP
1785 tANI_U16 length;
1786 tANI_U8 sessionId; // Session ID
1787 tANI_U16 transactionId; // Transaction ID for cmd
1788 tSirResultCodes statusCode;
1789 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001790} tSirSmeRemoveKeyRsp, *tpSirSmeRemoveKeyRsp;
1791
1792/// Definition for Set Power request
1793/// ---> MAC
1794typedef struct sSirSmeSetPowerReq
1795{
1796 tANI_U16 messageType; // eWNI_SME_SET_POWER_REQ
1797 tANI_U16 length;
1798 tANI_U16 transactionId; // Transaction ID for cmd
1799 tANI_S8 powerLevel;
1800} tSirSmeSetPowerReq, *tpSirSmeSetPowerReq;
1801
1802/// Definition for Set Power response
1803/// MAC --->
1804typedef struct sSirSmeSetPowerRsp
1805{
1806 tANI_U16 messageType; // eWNI_SME_SET_POWER_RSP
1807 tANI_U16 length;
1808 tSirResultCodes statusCode;
1809 tANI_U16 transactionId; // Transaction ID for cmd
1810} tSirSmeSetPowerRsp, *tpSirSmeSetPowerRsp;
1811
Jeff Johnson295189b2012-06-20 16:38:30 -07001812
1813/// Definition for Link Test Start response
1814/// MAC --->
1815typedef struct sSirSmeLinkTestStartRsp
1816{
1817 tANI_U16 messageType; // eWNI_SME_LINK_TEST_START_RSP
1818 tANI_U16 length;
1819 tSirMacAddr peerMacAddr;
1820 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001821} tSirSmeLinkTestStartRsp, *tpSirSmeLinkTestStartRsp;
1822
1823/// Definition for Link Test Stop response
1824/// WSM ---> MAC
1825typedef struct sSirSmeLinkTestStopRsp
1826{
1827 tANI_U16 messageType; // eWNI_SME_LINK_TEST_STOP_RSP
1828 tANI_U16 length;
1829 tSirMacAddr peerMacAddr;
1830 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001831} tSirSmeLinkTestStopRsp, *tpSirSmeLinkTestStopRsp;
1832
1833/// Definition for kick starting DFS measurements
1834typedef struct sSirSmeDFSreq
1835{
1836 tANI_U16 messageType; // eWNI_SME_DFS_REQ
1837 tANI_U16 length;
1838 tANI_U16 transactionId; // Transaction ID for cmd
1839} tSirSmeDFSrequest, *tpSirSmeDFSrequest;
1840
1841/// Definition for response message to previously
1842/// issued DFS request
1843typedef struct sSirSmeDFSrsp
1844{
1845 tANI_U16 messageType; // eWNI_SME_DFS_RSP
1846 tANI_U16 length;
1847 tSirResultCodes statusCode;
1848 tANI_U16 transactionId; // Transaction ID for cmd
1849 tANI_U32 dfsReport[1];
1850} tSirSmeDFSrsp, *tpSirSmeDFSrsp;
1851
1852/// Statistic definitions
1853//=============================================================
1854// Per STA statistic structure; This same struct will be used for Aggregate
1855// STA stats as well.
1856
1857// Clear radio stats and clear per sta stats
1858typedef enum
1859{
1860 eANI_CLEAR_ALL_STATS, // Clears all stats
1861 eANI_CLEAR_RX_STATS, // Clears RX statistics of the radio interface
1862 eANI_CLEAR_TX_STATS, // Clears TX statistics of the radio interface
1863 eANI_CLEAR_RADIO_STATS, // Clears all the radio stats
1864 eANI_CLEAR_PER_STA_STATS, // Clears Per STA stats
1865 eANI_CLEAR_AGGR_PER_STA_STATS, // Clears aggregate stats
1866
1867 // Used to distinguish between per sta to security stats.
1868 // Used only by AP, FW just returns the same parameter as it received.
1869 eANI_LINK_STATS, // Get Per STA stats
1870 eANI_SECURITY_STATS, // Get Per STA security stats
1871
1872 eANI_CLEAR_STAT_TYPES_END
1873} tAniStatSubTypes;
1874
1875typedef struct sAniTxCtrs
1876{
1877 // add the rate counters here
1878 tANI_U32 tx1Mbps;
1879 tANI_U32 tx2Mbps;
1880 tANI_U32 tx5_5Mbps;
1881 tANI_U32 tx6Mbps;
1882 tANI_U32 tx9Mbps;
1883 tANI_U32 tx11Mbps;
1884 tANI_U32 tx12Mbps;
1885 tANI_U32 tx18Mbps;
1886 tANI_U32 tx24Mbps;
1887 tANI_U32 tx36Mbps;
1888 tANI_U32 tx48Mbps;
1889 tANI_U32 tx54Mbps;
1890 tANI_U32 tx72Mbps;
1891 tANI_U32 tx96Mbps;
1892 tANI_U32 tx108Mbps;
1893
1894 // tx path radio counts
1895 tANI_U32 txFragHi;
1896 tANI_U32 txFragLo;
1897 tANI_U32 txFrameHi;
1898 tANI_U32 txFrameLo;
1899 tANI_U32 txMulticastFrameHi;
1900 tANI_U32 txMulticastFrameLo;
1901 tANI_U32 txFailedHi;
1902 tANI_U32 txFailedLo;
1903 tANI_U32 multipleRetryHi;
1904 tANI_U32 multipleRetryLo;
1905 tANI_U32 singleRetryHi;
1906 tANI_U32 singleRetryLo;
1907 tANI_U32 ackFailureHi;
1908 tANI_U32 ackFailureLo;
1909 tANI_U32 xmitBeacons;
1910
1911 // titan 3c stats
1912 tANI_U32 txCbEscPktCntHi; // Total Number of Channel Bonded/Escort Packet Transmitted
1913 tANI_U32 txCbEscPktCntLo;
1914 tANI_U32 txChunksCntHi; // Total Number of Chunks Transmitted
1915 tANI_U32 txChunksCntLo;
1916 tANI_U32 txCompPktCntHi; // Total Number of Compresssed Packet Transmitted
1917 tANI_U32 txCompPktCntLo;
1918 tANI_U32 tx50PerCompPktCntHi; // Total Number of Packets with 50% or more compression
1919 tANI_U32 tx50PerCompPktCntLo;
1920 tANI_U32 txExpanPktCntHi; // Total Number of Packets Transmitted that got expanded
1921 tANI_U32 txExpanPktCntLo;
1922} tAniTxCtrs, *tpAniTxCtrs;
1923
1924typedef struct sAniRxCtrs
1925{
1926 // receive frame rate counters
1927 tANI_U32 rx1Mbps;
1928 tANI_U32 rx2Mbps;
1929 tANI_U32 rx5_5Mbps;
1930 tANI_U32 rx6Mbps;
1931 tANI_U32 rx9Mbps;
1932 tANI_U32 rx11Mbps;
1933 tANI_U32 rx12Mbps;
1934 tANI_U32 rx18Mbps;
1935 tANI_U32 rx24Mbps;
1936 tANI_U32 rx36Mbps;
1937 tANI_U32 rx48Mbps;
1938 tANI_U32 rx54Mbps;
1939 tANI_U32 rx72Mbps;
1940 tANI_U32 rx96Mbps;
1941 tANI_U32 rx108Mbps;
1942
1943 // receive size counters; 'Lte' = Less than or equal to
1944 tANI_U32 rxLte64;
1945 tANI_U32 rxLte128Gt64;
1946 tANI_U32 rxLte256Gt128;
1947 tANI_U32 rxLte512Gt256;
1948 tANI_U32 rxLte1kGt512;
1949 tANI_U32 rxLte1518Gt1k;
1950 tANI_U32 rxLte2kGt1518;
1951 tANI_U32 rxLte4kGt2k;
1952
1953 // rx radio stats
1954 tANI_U32 rxFrag;
1955 tANI_U32 rxFrame;
1956 tANI_U32 fcsError;
1957 tANI_U32 rxMulticast;
1958 tANI_U32 duplicate;
1959 tANI_U32 rtsSuccess;
1960 tANI_U32 rtsFailed;
1961 tANI_U32 wepUndecryptables;
1962 tANI_U32 drops;
1963 tANI_U32 aesFormatErrorUcastCnts;
1964 tANI_U32 aesReplaysUcast;
1965 tANI_U32 aesDecryptErrUcast;
1966
1967 // titan 3c stats
1968 tANI_U32 rxDecompPktCntHi; // Total Number of Packets that got decompressed
1969 tANI_U32 rxDecompPktCntLo;
1970 tANI_U32 rxCompPktCntHi; // Total Number of Packets received that were actually compressed
1971 tANI_U32 rxCompPktCntLo;
1972 tANI_U32 rxExpanPktCntHi; // Total Number of Packets received that got expanded
1973 tANI_U32 rxExpanPktCntLo;
1974} tAniRxCtrs, *tpAniRxCtrs;
1975
1976// Radio stats
1977typedef struct sAniRadioStats
1978{
1979 tAniTxCtrs tx;
1980 tAniRxCtrs rx;
1981} tAniRadioStats, *tpAniRadioStats;
1982
1983// Get Radio Stats request structure
1984// This structure shall be used for both Radio stats and Aggregate stats
1985// A valid request must contain entire structure with/without valid fields.
1986// Based on the request type, the valid fields will be checked.
1987typedef struct sAniGetStatsReq
1988{
1989 // Common for all types are requests
1990 tANI_U16 msgType; // message type is same as the request type
1991 tANI_U16 msgLen; // length of the entire request
1992 tANI_U8 sessionId; //Session ID
1993 tANI_U16 transactionId;
1994 tSirMacAddr bssId; //BSSID
1995 // only used for clear stats and per sta stats clear
1996 tAniStatSubTypes stat; // Clears the stats of the described types.
1997 tANI_U32 staId; // Per STA stats request must contain valid
1998 // values
1999 tANI_U8 macAddr[6];
2000} tAniGetStatsReq, *tpAniGetStatsReq;
2001
2002// Get Radio Stats response struct
2003typedef struct sAniGetRadioStatsRsp
2004{
2005 tANI_U16 type; // message type is same as the request type
2006 tANI_U16 msgLen; // length of the entire request
2007 tANI_U32 rc;
2008 tANI_U16 transactionId;
2009 tAniRadioStats radio;
2010} tAniGetRadioStatsRsp, *tpAniGetRadioStatsRsp;
2011
2012// Per Sta stats response struct
2013typedef struct sAniGetPerStaStatsRsp
2014{
2015 tANI_U16 type; // message type is same as the request type
2016 tANI_U16 msgLen; // length of the entire request
2017 tANI_U32 rc;
2018 tANI_U16 transactionId;
2019 tAniStatSubTypes stat; // Sub type needed by AP. Returns the same value
2020 tAniStaStatStruct sta;
2021 tANI_U32 staId;
2022 tANI_U8 macAddr[6];
2023} tAniGetPerStaStatsRsp, *tpAniGetPerStaStatsRsp;
2024
2025// Get Aggregate stats
2026typedef struct sAniGetAggrStaStatsRsp
2027{
2028 tANI_U16 type; // message type is same as the request type
2029 tANI_U16 msgLen; // length of the entire request
2030 tANI_U32 rc;
2031 tANI_U16 transactionId;
2032 tAniStaStatStruct sta;
2033} tAniGetAggrStaStatsRsp, *tpAniGetAggrStaStatsRsp;
2034
2035// Clear stats request and response structure. 'rc' field is unused in
2036// request and this field is used in response field.
2037typedef struct sAniClearStatsRsp
2038{
2039 tANI_U16 type; // message type is same as the request type
2040 tANI_U16 msgLen; // length of the entire request
2041 tANI_U32 rc; // return code - will be filled by FW on
2042 // response.
2043 // Same transaction ID will be returned by the FW
2044 tANI_U16 transactionId;
2045 tAniStatSubTypes stat; // Clears the stats of the described types.
2046 tANI_U32 staId; // Applicable only to PER STA stats clearing
2047 tANI_U8 macAddr[6]; // Applicable only to PER STA stats clearing
2048} tAniClearStatsRsp, *tpAniClearStatsRsp;
2049
2050typedef struct sAniGetGlobalStatsRsp
2051{
2052 tANI_U16 type; // message type is same as the request type
2053 tANI_U16 msgLen; // length of the entire request
2054 tANI_U32 rc;
2055 tANI_U16 transactionId;
2056 tAniGlobalStatStruct global;
2057} tAniGetGlobalStatsRsp, *tpAniGetGlobalStatsRsp;
2058
2059typedef struct sAniGetStatSummaryRsp
2060{
2061 tANI_U16 type; // message type is same as the request type
2062 tANI_U16 msgLen; // length of the entire request --Why?
2063 tANI_U32 rc;
2064 tANI_U16 transactionId;
2065 tAniStatSummaryStruct stat;
2066} tAniGetStatSummaryRsp, *tpAniGetStatSummaryRsp;
2067
2068//***************************************************************
2069
2070
2071/*******************PE Statistics*************************/
2072typedef enum
2073{
2074 PE_SUMMARY_STATS_INFO = 0x00000001,
2075 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
2076 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
2077 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
2078 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
2079 PE_PER_STA_STATS_INFO = 0x00000020
2080}ePEStatsMask;
2081
2082/*
2083 * tpAniGetPEStatsReq is tied to
2084 * for SME ==> PE eWNI_SME_GET_STATISTICS_REQ msgId and
2085 * for PE ==> HAL SIR_HAL_GET_STATISTICS_REQ msgId
2086 */
2087typedef struct sAniGetPEStatsReq
2088{
2089 // Common for all types are requests
2090 tANI_U16 msgType; // message type is same as the request type
2091 tANI_U16 msgLen; // length of the entire request
2092 tANI_U32 staId; // Per STA stats request must contain valid
2093 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2094} tAniGetPEStatsReq, *tpAniGetPEStatsReq;
2095
2096/*
2097 * tpAniGetPEStatsRsp is tied to
2098 * for PE ==> SME eWNI_SME_GET_STATISTICS_RSP msgId and
2099 * for HAL ==> PE SIR_HAL_GET_STATISTICS_RSP msgId
2100 */
2101typedef struct sAniGetPEStatsRsp
2102{
2103 // Common for all types are responses
2104 tANI_U16 msgType; // message type is same as the request type
2105 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2106 tANI_U8 sessionId;
2107 tANI_U32 rc; //success/failure
2108 tANI_U32 staId; // Per STA stats request must contain valid
2109 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2110/**********************************************************************************************
2111 //void *pStatsBuf;
2112 The Stats buffer starts here and can be an aggregate of more than one statistics
2113 structure depending on statsMask.The void pointer "pStatsBuf" is commented out
2114 intentionally and the src code that uses this structure should take that into account.
2115**********************************************************************************************/
2116} tAniGetPEStatsRsp, *tpAniGetPEStatsRsp;
2117
2118typedef struct sAniGetRssiReq
2119{
2120 // Common for all types are requests
2121 tANI_U16 msgType; // message type is same as the request type
2122 tANI_U16 msgLen; // length of the entire request
2123 tANI_U8 sessionId;
2124 tANI_U8 staId;
2125 void *rssiCallback;
2126 void *pDevContext; //device context
2127 void *pVosContext; //voss context
2128
2129} tAniGetRssiReq, *tpAniGetRssiReq;
2130
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05302131typedef struct sAniGetSnrReq
2132{
2133 // Common for all types are requests
2134 tANI_U16 msgType; // message type is same as the request type
2135 tANI_U16 msgLen; // length of the entire request
2136 tANI_U8 sessionId;
2137 tANI_U8 staId;
2138 void *snrCallback;
2139 void *pDevContext; //device context
2140} tAniGetSnrReq, *tpAniGetSnrReq;
2141
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002142#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08002143typedef struct sAniGetRoamRssiRsp
2144{
2145 // Common for all types are responses
2146 tANI_U16 msgType; // message type is same as the request type
2147 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2148 tANI_U8 sessionId;
2149 tANI_U32 rc; //success/failure
2150 tANI_U32 staId; // Per STA stats request must contain valid
2151 tANI_S8 rssi;
2152 void *rssiReq; //rssi request backup
2153
2154} tAniGetRoamRssiRsp, *tpAniGetRoamRssiRsp;
2155
2156#endif
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002157
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002158#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002159
2160typedef struct sSirTsmIE
2161{
2162 tANI_U8 tsid;
2163 tANI_U8 state;
2164 tANI_U16 msmt_interval;
2165} tSirTsmIE, *tpSirTsmIE;
2166
2167typedef struct sSirSmeTsmIEInd
2168{
2169 tSirTsmIE tsmIe;
2170 tANI_U8 sessionId;
2171} tSirSmeTsmIEInd, *tpSirSmeTsmIEInd;
2172
2173
2174typedef struct sAniTrafStrmMetrics
2175{
2176 tANI_U16 UplinkPktQueueDly;
2177 tANI_U16 UplinkPktQueueDlyHist[4];
2178 tANI_U32 UplinkPktTxDly;
2179 tANI_U16 UplinkPktLoss;
2180 tANI_U16 UplinkPktCount;
2181 tANI_U8 RoamingCount;
2182 tANI_U16 RoamingDly;
2183} tAniTrafStrmMetrics, *tpAniTrafStrmMetrics;
2184
2185typedef struct sAniGetTsmStatsReq
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 staId;
2191 tANI_U8 tid; // traffic id
2192 tSirMacAddr bssId;
2193 void *tsmStatsCallback;
2194 void *pDevContext; //device context
2195 void *pVosContext; //voss context
2196} tAniGetTsmStatsReq, *tpAniGetTsmStatsReq;
2197
2198typedef struct sAniGetTsmStatsRsp
2199{
2200 // Common for all types are responses
2201 tANI_U16 msgType; // message type is same as the request type
2202 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2203 tANI_U8 sessionId;
2204 tANI_U32 rc; //success/failure
2205 tANI_U32 staId; // Per STA stats request must contain valid
2206 tAniTrafStrmMetrics tsmMetrics;
2207 void *tsmStatsReq; //tsm stats request backup
2208} tAniGetTsmStatsRsp, *tpAniGetTsmStatsRsp;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002209
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002210typedef struct sSirEseBcnReportBssInfo
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002211{
2212 tBcnReportFields bcnReportFields;
2213 tANI_U8 ieLen;
2214 tANI_U8 *pBuf;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002215} tSirEseBcnReportBssInfo, *tpSirEseBcnReportBssInfo;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002216
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002217typedef struct sSirEseBcnReportRsp
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002218{
2219 tANI_U16 measurementToken;
2220 tANI_U8 flag; /* Flag to report measurement done and more data */
2221 tANI_U8 numBss;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002222 tSirEseBcnReportBssInfo bcnRepBssInfo[SIR_BCN_REPORT_MAX_BSS_DESC];
2223} tSirEseBcnReportRsp, *tpSirEseBcnReportRsp;
Srinivas Girigowda91ccbe82013-11-10 16:37:38 -08002224
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002225#endif /* FEATURE_WLAN_ESE || FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002226
Jeff Johnson295189b2012-06-20 16:38:30 -07002227/* Change country code request MSG structure */
2228typedef struct sAniChangeCountryCodeReq
2229{
2230 // Common for all types are requests
2231 tANI_U16 msgType; // message type is same as the request type
2232 tANI_U16 msgLen; // length of the entire request
2233 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //3 char country code
Gopichand Nakkalaacd94112013-05-29 21:37:47 +05302234 tAniBool countryFromUserSpace;
Abhishek Singha306a442013-11-07 18:39:01 +05302235 tAniBool sendRegHint; //TRUE if we want to send hint to NL80211
Jeff Johnson295189b2012-06-20 16:38:30 -07002236 void *changeCCCallback;
2237 void *pDevContext; //device context
2238 void *pVosContext; //voss context
Amar Singhal0d15bd52013-10-12 23:13:13 -07002239
Jeff Johnson295189b2012-06-20 16:38:30 -07002240} tAniChangeCountryCodeReq, *tpAniChangeCountryCodeReq;
2241
Amar Singhal0d15bd52013-10-12 23:13:13 -07002242/* generic country code change request MSG structure */
2243typedef struct sAniGenericChangeCountryCodeReq
2244{
2245 // Common for all types are requests
2246 tANI_U16 msgType; // message type is same as the request type
2247 tANI_U16 msgLen; // length of the entire request
2248 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //3 char country code
2249 tANI_U16 domain_index;
Amar Singhal0d15bd52013-10-12 23:13:13 -07002250} tAniGenericChangeCountryCodeReq, *tpAniGenericChangeCountryCodeReq;
2251
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05302252typedef struct sAniDHCPStopInd
2253{
2254 tANI_U16 msgType; // message type is same as the request type
2255 tANI_U16 msgLen; // length of the entire request
2256 tANI_U8 device_mode; // Mode of the device(ex:STA, AP)
2257 tSirMacAddr macAddr;
2258
2259} tAniDHCPInd, *tpAniDHCPInd;
2260
Jeff Johnson295189b2012-06-20 16:38:30 -07002261typedef struct sAniSummaryStatsInfo
2262{
2263 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2264 tANI_U32 multiple_retry_cnt[4];//The number of MSDU packets and MMPDU frames per AC that the 802.11
2265 // station successfully transmitted after more than one retransmission attempt
2266
2267 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2268 //(with and without retries, including multi-cast, broadcast)
2269 //tANI_U32 tx_fail_cnt;
2270 //tANI_U32 num_rx_frm_crc_err; //Total number of received frames with CRC Error
2271 //tANI_U32 num_rx_frm_crc_ok; //Total number of successfully received frames with out CRC Error
2272 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2273 //(after appropriate filter rules including multi-cast, broadcast)
2274 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2275 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2276 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2277 tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
2278 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2279 tANI_U32 rx_discard_cnt; //The sum of the receive error count and dropped-receive-buffer error count.
2280 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2281 tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
2282 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2283 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
2284 //to provide this.
2285#if 0
2286 //providing the following stats, in case of wrap around for tx_byte_cnt
2287 tANI_U32 tx_unicast_lower_byte_cnt;
2288 tANI_U32 tx_unicast_upper_byte_cnt;
2289 tANI_U32 tx_multicast_lower_byte_cnt;
2290 tANI_U32 tx_multicast_upper_byte_cnt;
2291 tANI_U32 tx_broadcast_lower_byte_cnt;
2292 tANI_U32 tx_broadcast_upper_byte_cnt;
2293#endif
2294
2295}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2296
2297typedef enum eTxRateInfo
2298{
2299 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2300 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2301 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2302 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Leo Chang6f8870f2013-03-26 18:11:36 -07002303 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2304 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2305 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 40 rates */
2306 eHAL_TX_RATE_VHT80 = 0x80 /* VHT 80 rates */
Jeff Johnson295189b2012-06-20 16:38:30 -07002307} tTxrateinfoflags;
2308
2309typedef struct sAniGlobalClassAStatsInfo
2310{
2311 tANI_U32 rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2312 //or MMPDU frames
2313 tANI_U32 promiscuous_rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2314 //or MMPDU frames when a promiscuous packet filter was enabled
2315 //tANI_U32 rx_fcs_err; //The number of MPDU frames that the 802.11 station received with FCS errors
2316 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2317 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
2318 //to a supported rate and the order shall be the same as the supporteRates parameter.
2319 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2320 //for eg: if it is 10.5dBm, the value would be 105
2321 //tANI_U32 default_pwr; //The nominal transmit level used after normal power on sequence
2322 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2323 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
2324 tANI_U32 tx_rate; //Legacy transmit rate, in units of
2325 //500 kbit/sec, for the most
2326 //recently transmitted frame
2327 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
2328 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2329 //HT40 rates; short and long guard interval
2330
2331}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2332
2333
2334typedef struct sAniGlobalSecurityStats
2335{
2336 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2337 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
2338 //is enabled
2339 tANI_U32 rx_mic_fail_cnt; //The number of received MSDU packets that that the 802.11 station discarded
2340 //because of MIC failures
2341 tANI_U32 tkip_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2342 //because of a TKIP ICV error
2343 tANI_U32 aes_ccmp_format_err; //The number of received MPDU frames that the 802.11 discarded because of an
2344 //invalid AES-CCMP format
2345 tANI_U32 aes_ccmp_replay_cnt; //The number of received MPDU frames that the 802.11 station discarded because of
2346 //the AES-CCMP replay protection procedure
2347 tANI_U32 aes_ccmp_decrpt_err; //The number of received MPDU frames that the 802.11 station discarded because of
2348 //errors detected by the AES-CCMP decryption algorithm
2349 tANI_U32 wep_undecryptable_cnt; //The number of encrypted MPDU frames received for which a WEP decryption key was
2350 //not available on the 802.11 station
2351 tANI_U32 wep_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2352 //because of a WEP ICV error
2353 tANI_U32 rx_decrypt_succ_cnt; //The number of received encrypted packets that the 802.11 station successfully
2354 //decrypted
2355 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2356
2357}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
2358
2359typedef struct sAniGlobalClassBStatsInfo
2360{
2361 tAniGlobalSecurityStats ucStats;
2362 tAniGlobalSecurityStats mcbcStats;
2363}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2364
2365typedef struct sAniGlobalClassCStatsInfo
2366{
2367 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2368 //MAC address in the address 1 field or an A-MSDU frame with a group address in the
2369 //address 1 field
2370 tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
2371 tANI_U32 tx_20_frm_cnt; //This counter shall be incremented when a Frame is transmitted only on the
2372 //primary channel
2373 tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
2374 tANI_U32 rx_mpdu_in_ampdu_cnt; //This counter shall be incremented by the number of MPDUs received in the A-MPDU
2375 //when an A-MPDU is received
2376 tANI_U32 ampdu_delimiter_crc_err;//This counter shall be incremented when an MPDU delimiter has a CRC error when this
2377 //is the first CRC error in the received AMPDU or when the previous delimiter has been
2378 //decoded correctly
2379
2380}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2381
2382typedef struct sAniPerStaStatsInfo
2383{
2384 tANI_U32 tx_frag_cnt[4]; //The number of MPDU frames that the 802.11 station transmitted and acknowledged
2385 //through a received 802.11 ACK frame
2386 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2387 tANI_U32 tx_mpdu_in_ampdu_cnt; //This counter shall increment by the number of MPDUs in the AMPDU when an A-MPDU
2388 //is transmitted
2389
2390}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2391
2392/**********************PE Statistics end*************************/
2393
2394
2395
2396typedef struct sSirRSSIThresholds
2397{
2398#ifdef ANI_BIG_BYTE_ENDIAN
2399 tANI_S8 ucRssiThreshold1 : 8;
2400 tANI_S8 ucRssiThreshold2 : 8;
2401 tANI_S8 ucRssiThreshold3 : 8;
2402 tANI_U8 bRssiThres1PosNotify : 1;
2403 tANI_U8 bRssiThres1NegNotify : 1;
2404 tANI_U8 bRssiThres2PosNotify : 1;
2405 tANI_U8 bRssiThres2NegNotify : 1;
2406 tANI_U8 bRssiThres3PosNotify : 1;
2407 tANI_U8 bRssiThres3NegNotify : 1;
2408 tANI_U8 bReserved10 : 2;
2409#else
2410 tANI_U8 bReserved10 : 2;
2411 tANI_U8 bRssiThres3NegNotify : 1;
2412 tANI_U8 bRssiThres3PosNotify : 1;
2413 tANI_U8 bRssiThres2NegNotify : 1;
2414 tANI_U8 bRssiThres2PosNotify : 1;
2415 tANI_U8 bRssiThres1NegNotify : 1;
2416 tANI_U8 bRssiThres1PosNotify : 1;
2417 tANI_S8 ucRssiThreshold3 : 8;
2418 tANI_S8 ucRssiThreshold2 : 8;
2419 tANI_S8 ucRssiThreshold1 : 8;
2420#endif
2421
2422}tSirRSSIThresholds, *tpSirRSSIThresholds;
2423
2424typedef struct sSirRSSINotification
2425{
2426#ifdef ANI_BIG_BYTE_ENDIAN
2427 tANI_U32 bRssiThres1PosCross : 1;
2428 tANI_U32 bRssiThres1NegCross : 1;
2429 tANI_U32 bRssiThres2PosCross : 1;
2430 tANI_U32 bRssiThres2NegCross : 1;
2431 tANI_U32 bRssiThres3PosCross : 1;
2432 tANI_U32 bRssiThres3NegCross : 1;
Srinivasdaaec712012-12-12 15:59:44 -08002433 v_S7_t avgRssi : 8;
2434 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07002435#else
Srinivasdaaec712012-12-12 15:59:44 -08002436 tANI_U32 bReserved : 18;
2437 v_S7_t avgRssi : 8;
Jeff Johnson295189b2012-06-20 16:38:30 -07002438 tANI_U32 bRssiThres3NegCross : 1;
2439 tANI_U32 bRssiThres3PosCross : 1;
2440 tANI_U32 bRssiThres2NegCross : 1;
2441 tANI_U32 bRssiThres2PosCross : 1;
2442 tANI_U32 bRssiThres1NegCross : 1;
2443 tANI_U32 bRssiThres1PosCross : 1;
2444#endif
2445
2446}tSirRSSINotification, *tpSirRSSINotification;
2447
Viral Modid86bde22012-12-10 13:09:21 -08002448
2449typedef struct sSirP2PNoaStart
2450{
2451 tANI_U32 status;
2452 tANI_U32 bssIdx;
2453} tSirP2PNoaStart, *tpSirP2PNoaStart;
2454
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05302455typedef struct sSirTdlsInd
2456{
2457 tANI_U16 status;
2458 tANI_U16 assocId;
2459 tANI_U16 staIdx;
2460 tANI_U16 reasonCode;
2461} tSirTdlsInd, *tpSirTdlsInd;
2462
Jeff Johnson295189b2012-06-20 16:38:30 -07002463typedef struct sSirP2PNoaAttr
2464{
2465#ifdef ANI_BIG_BYTE_ENDIAN
2466 tANI_U32 index :8;
2467 tANI_U32 oppPsFlag :1;
2468 tANI_U32 ctWin :7;
2469 tANI_U32 rsvd1: 16;
2470#else
2471 tANI_U32 rsvd1: 16;
2472 tANI_U32 ctWin :7;
2473 tANI_U32 oppPsFlag :1;
2474 tANI_U32 index :8;
2475#endif
2476
2477#ifdef ANI_BIG_BYTE_ENDIAN
2478 tANI_U32 uNoa1IntervalCnt:8;
2479 tANI_U32 rsvd2:24;
2480#else
2481 tANI_U32 rsvd2:24;
2482 tANI_U32 uNoa1IntervalCnt:8;
2483#endif
2484 tANI_U32 uNoa1Duration;
2485 tANI_U32 uNoa1Interval;
2486 tANI_U32 uNoa1StartTime;
2487
2488#ifdef ANI_BIG_BYTE_ENDIAN
2489 tANI_U32 uNoa2IntervalCnt:8;
2490 tANI_U32 rsvd3:24;
2491#else
2492 tANI_U32 rsvd3:24;
2493 tANI_U32 uNoa2IntervalCnt:8;
2494#endif
2495 tANI_U32 uNoa2Duration;
2496 tANI_U32 uNoa2Interval;
2497 tANI_U32 uNoa2StartTime;
2498} tSirP2PNoaAttr, *tpSirP2PNoaAttr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002499
2500typedef __ani_attr_pre_packed struct sSirTclasInfo
2501{
2502 tSirMacTclasIE tclas;
2503 tANI_U8 version; // applies only for classifier type ip
2504 __ani_attr_pre_packed union {
2505 tSirMacTclasParamEthernet eth;
2506 tSirMacTclasParamIPv4 ipv4;
2507 tSirMacTclasParamIPv6 ipv6;
2508 tSirMacTclasParam8021dq t8021dq;
2509 }__ani_attr_packed tclasParams;
2510} __ani_attr_packed tSirTclasInfo;
2511
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002512
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002513#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002514#define TSRS_11AG_RATE_6MBPS 0xC
2515#define TSRS_11B_RATE_5_5MBPS 0xB
2516
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002517typedef struct sSirMacESETSRSIE
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002518{
2519 tANI_U8 tsid;
2520 tANI_U8 rates[8];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002521} tSirMacESETSRSIE;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002522
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002523typedef struct sSirMacESETSMIE
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002524{
2525 tANI_U8 tsid;
2526 tANI_U8 state;
2527 tANI_U16 msmt_interval;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002528} tSirMacESETSMIE;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002529
2530typedef struct sTSMStats
2531{
2532 tANI_U8 tid;
2533 tSirMacAddr bssId;
2534 tTrafStrmMetrics tsmMetrics;
2535} tTSMStats, *tpTSMStats;
2536
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002537typedef struct sEseTSMContext
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002538{
2539 tANI_U8 tid;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002540 tSirMacESETSMIE tsmInfo;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002541 tTrafStrmMetrics tsmMetrics;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002542} tEseTSMContext, *tpEseTSMContext;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002543
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002544typedef struct sEsePEContext
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002545{
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002546#if defined(FEATURE_WLAN_ESE) && !defined(FEATURE_WLAN_ESE_UPLOAD)
2547 tEseMeasReq curMeasReq;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002548#endif
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002549 tEseTSMContext tsm;
2550} tEsePEContext, *tpEsePEContext;
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002551
2552
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002553#endif /* FEATURE_WLAN_ESE && FEATURE_WLAN_ESE_UPLOAD */
Srinivas Girigowda5cecb202013-10-08 09:13:25 -07002554
2555
Jeff Johnson295189b2012-06-20 16:38:30 -07002556typedef struct sSirAddtsReqInfo
2557{
2558 tANI_U8 dialogToken;
2559 tSirMacTspecIE tspec;
2560
2561 tANI_U8 numTclas; // number of Tclas elements
2562 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2563 tANI_U8 tclasProc;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002564#if defined(FEATURE_WLAN_ESE)
2565 tSirMacESETSRSIE tsrsIE;
Jeff Johnson295189b2012-06-20 16:38:30 -07002566 tANI_U8 tsrsPresent:1;
2567#endif
2568 tANI_U8 wmeTspecPresent:1;
2569 tANI_U8 wsmTspecPresent:1;
2570 tANI_U8 lleTspecPresent:1;
2571 tANI_U8 tclasProcPresent:1;
2572} tSirAddtsReqInfo, *tpSirAddtsReqInfo;
2573
2574typedef struct sSirAddtsRspInfo
2575{
2576 tANI_U8 dialogToken;
2577 tSirMacStatusCodes status;
2578 tSirMacTsDelayIE delay;
2579
2580 tSirMacTspecIE tspec;
2581 tANI_U8 numTclas; // number of Tclas elements
2582 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2583 tANI_U8 tclasProc;
2584 tSirMacScheduleIE schedule;
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002585#if defined(FEATURE_WLAN_ESE) || defined(FEATURE_WLAN_ESE_UPLOAD)
2586 tSirMacESETSMIE tsmIE;
Jeff Johnson295189b2012-06-20 16:38:30 -07002587 tANI_U8 tsmPresent:1;
2588#endif
2589 tANI_U8 wmeTspecPresent:1;
2590 tANI_U8 wsmTspecPresent:1;
2591 tANI_U8 lleTspecPresent:1;
2592 tANI_U8 tclasProcPresent:1;
2593 tANI_U8 schedulePresent:1;
2594} tSirAddtsRspInfo, *tpSirAddtsRspInfo;
2595
2596typedef struct sSirDeltsReqInfo
2597{
2598 tSirMacTSInfo tsinfo;
2599 tSirMacTspecIE tspec;
2600 tANI_U8 wmeTspecPresent:1;
2601 tANI_U8 wsmTspecPresent:1;
2602 tANI_U8 lleTspecPresent:1;
2603} tSirDeltsReqInfo, *tpSirDeltsReqInfo;
2604
2605/// Add a tspec as defined
2606typedef struct sSirAddtsReq
2607{
2608 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2609 tANI_U16 length;
2610 tANI_U8 sessionId; //Session ID
2611 tANI_U16 transactionId;
2612 tSirMacAddr bssId; //BSSID
2613 tANI_U32 timeout; // in ms
2614 tANI_U8 rspReqd;
2615 tSirAddtsReqInfo req;
2616} tSirAddtsReq, *tpSirAddtsReq;
2617
2618typedef struct sSirAddtsRsp
2619{
2620 tANI_U16 messageType; // eWNI_SME_ADDTS_RSP
2621 tANI_U16 length;
2622 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2623 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2624 tANI_U32 rc; // return code
2625 tSirAddtsRspInfo rsp;
2626} tSirAddtsRsp, *tpSirAddtsRsp;
2627
2628typedef struct sSirDeltsReq
2629{
2630 tANI_U16 messageType; // eWNI_SME_DELTS_REQ
2631 tANI_U16 length;
2632 tANI_U8 sessionId;//Session ID
2633 tANI_U16 transactionId;
2634 tSirMacAddr bssId; //BSSID
2635 tANI_U16 aid; // use 0 if macAddr is being specified
2636 tANI_U8 macAddr[6]; // only on AP to specify the STA
2637 tANI_U8 rspReqd;
2638 tSirDeltsReqInfo req;
2639} tSirDeltsReq, *tpSirDeltsReq;
2640
2641typedef struct sSirDeltsRsp
2642{
2643 tANI_U16 messageType; // eWNI_SME_DELTS_RSP
2644 tANI_U16 length;
2645 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2646 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2647 tANI_U32 rc;
2648 tANI_U16 aid; // use 0 if macAddr is being specified
2649 tANI_U8 macAddr[6]; // only on AP to specify the STA
2650 tSirDeltsReqInfo rsp;
2651} tSirDeltsRsp, *tpSirDeltsRsp;
2652
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002653#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_ESE || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07002654
2655#define SIR_QOS_NUM_TSPEC_MAX 2
2656#define SIR_QOS_NUM_AC_MAX 4
2657
2658typedef struct sSirAggrQosReqInfo
2659{
2660 tANI_U16 tspecIdx;
2661 tSirAddtsReqInfo aggrAddTsInfo[SIR_QOS_NUM_AC_MAX];
2662}tSirAggrQosReqInfo, *tpSirAggrQosReqInfo;
2663
2664typedef struct sSirAggrQosReq
2665{
2666 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2667 tANI_U16 length;
2668 tANI_U8 sessionId; //Session ID
2669 tANI_U16 transactionId;
2670 tSirMacAddr bssId; //BSSID
2671 tANI_U32 timeout; // in ms
2672 tANI_U8 rspReqd;
2673 tSirAggrQosReqInfo aggrInfo;
2674}tSirAggrQosReq, *tpSirAggrQosReq;
2675
2676typedef struct sSirAggrQosRspInfo
2677{
2678 tANI_U16 tspecIdx;
2679 tSirAddtsRspInfo aggrRsp[SIR_QOS_NUM_AC_MAX];
2680} tSirAggrQosRspInfo, *tpSirAggrQosRspInfo;
2681
2682typedef struct sSirAggrQosRsp
2683{
2684 tANI_U16 messageType;
2685 tANI_U16 length;
2686 tANI_U8 sessionId;
2687 tSirAggrQosRspInfo aggrInfo;
2688} tSirAggrQosRsp, *tpSirAggrQosRsp;
2689
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08002690#endif/*WLAN_FEATURE_VOWIFI_11R || FEATURE_WLAN_ESE*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002691
2692typedef struct sSirSetTxPowerReq
2693{
schang86c22c42013-03-13 18:41:24 -07002694 tANI_U16 messageType;
2695 tANI_U16 length;
2696 tSirMacAddr bssId;
2697 tANI_U8 mwPower;
2698 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07002699} tSirSetTxPowerReq, *tpSirSetTxPowerReq;
2700
2701typedef struct sSirSetTxPowerRsp
2702{
2703 tANI_U16 messageType;
2704 tANI_U16 length;
2705 tANI_U32 status;
2706} tSirSetTxPowerRsp, *tpSirSetTxPowerRsp;
2707
2708typedef struct sSirGetTxPowerReq
2709{
2710 tANI_U16 messageType;
2711 tANI_U16 length;
2712 tANI_U16 staid;
2713} tSirGetTxPowerReq, *tpSirGetTxPowerReq;
2714
2715typedef struct sSirGetTxPowerRsp
2716{
2717 tANI_U16 messageType;
2718 tANI_U16 length; // length of the entire request
2719 tANI_U32 power; // units of milliwatts
2720 tANI_U32 status;
2721} tSirGetTxPowerRsp, *tpSirGetTxPowerRsp;
2722
2723
2724typedef tANI_U32 tSirMacNoise[3];
2725
2726typedef struct sSirGetNoiseRsp
2727{
2728 tANI_U16 messageType;
2729 tANI_U16 length;
2730 tSirMacNoise noise;
2731} tSirGetNoiseRsp, *tpSirGetNoiseRsp;
2732
2733
2734//
2735// PMC --> PE --> HAL
2736// Power save configuration parameters
2737//
2738typedef struct sSirPowerSaveCfg
2739{
2740 tANI_U16 listenInterval;
2741
2742 /* Number of consecutive missed beacons before
2743 * hardware generates an interrupt to wake up
2744 * the host. In units of listen interval.
2745 */
2746 tANI_U32 HeartBeatCount;
2747
2748 /* specifies which beacons are to be forwarded
2749 * to host when beacon filtering is enabled.
2750 * In units of listen interval.
2751 */
2752 tANI_U32 nthBeaconFilter;
2753
2754 /* Maximum number of PS-Poll send before
2755 * firmware sends data null with PM set to 0.
2756 */
2757 tANI_U32 maxPsPoll;
2758
2759 /* If the average RSSI value falls below the
2760 * minRssiThreshold, then FW will send an
2761 * interrupt to wake up the host.
2762 */
2763 tANI_U32 minRssiThreshold;
2764
2765 /* Number of beacons for which firmware will
2766 * collect the RSSI values and compute the average.
2767 */
2768 tANI_U8 numBeaconPerRssiAverage;
2769
2770 /* FW collects the RSSI stats for this period
2771 * in BMPS mode.
2772 */
2773 tANI_U8 rssiFilterPeriod;
2774
2775 // Enabling/disabling broadcast frame filter feature
2776 tANI_U8 broadcastFrameFilter;
2777
2778 // Enabling/disabling the ignore DTIM feature
2779 tANI_U8 ignoreDtim;
2780
2781 /* The following configuration parameters are kept
2782 * in order to be backward compatible for Gen5.
2783 * These will NOT be used for Gen6 Libra chip
2784 */
2785 tBeaconForwarding beaconFwd;
2786 tANI_U16 nthBeaconFwd;
2787 tANI_U8 fEnablePwrSaveImmediately;
2788 tANI_U8 fPSPoll;
2789
2790 // Enabling/disabling Beacon Early Termination feature
2791 tANI_U8 fEnableBeaconEarlyTermination;
2792 tANI_U8 bcnEarlyTermWakeInterval;
2793
2794}tSirPowerSaveCfg, *tpSirPowerSaveCfg;
2795
2796/* Reason code for requesting Full Power. This reason code is used by
2797 any module requesting full power from PMC and also by PE when it
2798 sends the eWNI_PMC_EXIT_BMPS_IND to PMC*/
2799typedef enum eRequestFullPowerReason
2800{
2801 eSME_MISSED_BEACON_IND_RCVD, /* PE received a MAX_MISSED_BEACON_IND */
2802 eSME_BMPS_STATUS_IND_RCVD, /* PE received a SIR_HAL_BMPS_STATUS_IND */
2803 eSME_BMPS_MODE_DISABLED, /* BMPS mode was disabled by HDD in SME */
2804 eSME_LINK_DISCONNECTED_BY_HDD, /* Link has been disconnected requested by HDD */
2805 eSME_LINK_DISCONNECTED_BY_OTHER,/* Disconnect due to linklost or requested by peer */
2806 eSME_FULL_PWR_NEEDED_BY_HDD, /* HDD request full power for some reason */
2807 eSME_FULL_PWR_NEEDED_BY_BAP, /* BAP request full power for BT_AMP */
2808 eSME_FULL_PWR_NEEDED_BY_CSR, /* CSR requests full power */
2809 eSME_FULL_PWR_NEEDED_BY_QOS, /* QOS requests full power */
2810 eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH, /* channel switch request full power*/
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002811#ifdef FEATURE_WLAN_TDLS
2812 eSME_FULL_PWR_NEEDED_BY_TDLS_PEER_SETUP, /* TDLS peer setup*/
2813#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002814 eSME_REASON_OTHER /* No specific reason. General reason code */
2815} tRequestFullPowerReason, tExitBmpsReason;
2816
2817
2818
2819//This is sent alongwith eWNI_PMC_EXIT_BMPS_REQ message
2820typedef struct sExitBmpsInfo
2821{
2822 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
2823}tExitBmpsInfo, *tpExitBmpsInfo;
2824
2825
2826// MAC SW --> SME
2827// Message indicating to SME to exit BMPS sleep mode
2828typedef struct sSirSmeExitBmpsInd
2829{
2830 tANI_U16 mesgType; /* eWNI_PMC_EXIT_BMPS_IND */
2831 tANI_U16 mesgLen;
2832 tSirResultCodes statusCode;
2833 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
2834
2835} tSirSmeExitBmpsInd, *tpSirSmeExitBmpsInd;
2836
2837
2838//
2839// HDD -> LIM
2840// tSirMsgQ.type = eWNI_SME_DEL_BA_PEER_IND
2841// tSirMsgQ.reserved = 0
2842// tSirMsgQ.body = instance of tDelBAParams
2843//
2844typedef struct sSmeDelBAPeerInd
2845{
2846 // Message Type
2847 tANI_U16 mesgType;
2848
2849 tSirMacAddr bssId;//BSSID
2850
2851 // Message Length
2852 tANI_U16 mesgLen;
2853
2854 // Station Index
2855 tANI_U16 staIdx;
2856
2857 // TID for which the BA session is being deleted
2858 tANI_U8 baTID;
2859
2860 // DELBA direction
2861 // eBA_INITIATOR - Originator
2862 // eBA_RECEIPIENT - Recipient
2863 tANI_U8 baDirection;
2864} tSmeDelBAPeerInd, *tpSmeDelBAPeerInd;
2865
2866typedef struct sSmeIbssPeerInd
2867{
2868 tANI_U16 mesgType;
2869 tANI_U16 mesgLen;
2870 tANI_U8 sessionId;
2871
2872 tSirMacAddr peerAddr;
2873 tANI_U16 staId;
2874
2875 /*The DPU signatures will be sent eventually to TL to help it determine the
2876 association to which a packet belongs to*/
2877 /*Unicast DPU signature*/
2878 tANI_U8 ucastSig;
2879
2880 /*Broadcast DPU signature*/
2881 tANI_U8 bcastSig;
2882
2883 //Beacon will be appended for new Peer indication.
2884}tSmeIbssPeerInd, *tpSmeIbssPeerInd;
2885
Ravi Joshid2ca7c42013-07-23 08:37:49 -07002886typedef struct sSirIbssPeerInactivityInd
2887{
2888 tANI_U8 bssIdx;
2889 tANI_U8 staIdx;
2890 tSirMacAddr peerAddr;
2891}tSirIbssPeerInactivityInd, *tpSirIbssPeerInactivityInd;
2892
2893
Jeff Johnson295189b2012-06-20 16:38:30 -07002894typedef struct sLimScanChn
2895{
2896 tANI_U16 numTimeScan; //how many time this channel is scan
2897 tANI_U8 channelId;
2898}tLimScanChn;
2899
2900typedef struct sSmeGetScanChnRsp
2901{
2902 // Message Type
2903 tANI_U16 mesgType;
2904 // Message Length
2905 tANI_U16 mesgLen;
2906 tANI_U8 sessionId;
2907 tANI_U8 numChn;
2908 tLimScanChn scanChn[1];
2909} tSmeGetScanChnRsp, *tpSmeGetScanChnRsp;
2910
2911typedef struct sLimScanChnInfo
2912{
2913 tANI_U8 numChnInfo; //number of channels in scanChn
2914 tLimScanChn scanChn[SIR_MAX_SUPPORTED_CHANNEL_LIST];
2915}tLimScanChnInfo;
2916
Jeff Johnson295189b2012-06-20 16:38:30 -07002917typedef struct sSirSmeGetAssocSTAsReq
2918{
2919 tANI_U16 messageType; // eWNI_SME_GET_ASSOC_STAS_REQ
2920 tANI_U16 length;
2921 tSirMacAddr bssId; // BSSID
2922 tANI_U16 modId;
2923 void *pUsrContext;
2924 void *pSapEventCallback;
2925 void *pAssocStasArray;// Pointer to allocated memory passed in WLANSAP_GetAssocStations API
2926} tSirSmeGetAssocSTAsReq, *tpSirSmeGetAssocSTAsReq;
Jeff Johnson295189b2012-06-20 16:38:30 -07002927
2928typedef struct sSmeMaxAssocInd
2929{
2930 tANI_U16 mesgType; // eWNI_SME_MAX_ASSOC_EXCEEDED
2931 tANI_U16 mesgLen;
2932 tANI_U8 sessionId;
2933 tSirMacAddr peerMac; // the new peer that got rejected due to softap max assoc limit reached
2934} tSmeMaxAssocInd, *tpSmeMaxAssocInd;
2935
2936/*--------------------------------------------------------------------*/
2937/* BootLoader message definition */
2938/*--------------------------------------------------------------------*/
2939
2940/*--------------------------------------------------------------------*/
2941/* FW image size */
2942/*--------------------------------------------------------------------*/
2943#define SIR_FW_IMAGE_SIZE 146332
2944
2945
2946#define SIR_BOOT_MODULE_ID 1
2947
2948#define SIR_BOOT_SETUP_IND ((SIR_BOOT_MODULE_ID << 8) | 0x11)
2949#define SIR_BOOT_POST_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x12)
2950#define SIR_BOOT_DNLD_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x13)
2951#define SIR_BOOT_DNLD_DEV_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x41)
2952#define SIR_BOOT_DNLD_DEV_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x81)
2953#define SIR_BOOT_DNLD_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x42)
2954#define SIR_BOOT_DNLD_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x82)
2955
2956/*--------------------------------------------------------------------*/
2957/* Bootloader message syntax */
2958/*--------------------------------------------------------------------*/
2959
2960// Message header
2961#define SIR_BOOT_MB_HEADER 0
2962#define SIR_BOOT_MB_HEADER2 1
2963
2964#define SIR_BOOT_MSG_HDR_MASK 0xffff0000
2965#define SIR_BOOT_MSG_LEN_MASK 0x0000ffff
2966
2967// BOOT_SETUP_IND parameter indices
2968#define SIR_BOOT_SETUP_IND_MBADDR 2
2969#define SIR_BOOT_SETUP_IND_MBSIZE 3
2970#define SIR_BOOT_SETUP_IND_MEMOPT 4
2971#define SIR_BOOT_SETUP_IND_LEN \
2972 ((SIR_BOOT_SETUP_IND_MEMOPT+1)<<2)
2973
2974// BOOT_POST_RESULT_IND parameter indices
2975#define SIR_BOOT_POST_RESULT_IND_RES 2
2976#define SIR_BOOT_POST_RESULT_IND_LEN \
2977 ((SIR_BOOT_POST_RESULT_IND_RES+1)<<2)
2978
2979#define SIR_BOOT_POST_RESULT_IND_SUCCESS 1
2980#define SIR_BOOT_POST_RESULT_IND_MB_FAILED 2
2981#define SIR_BOOT_POST_RESULT_IND_SDRAM_FAILED 3
2982#define SIR_BOOT_POST_RESULT_IND_ESRAM_FAILED 4
2983
2984
2985// BOOT_DNLD_RESULT_IND parameter indices
2986#define SIR_BOOT_DNLD_RESULT_IND_RES 2
2987#define SIR_BOOT_DNLD_RESULT_IND_LEN \
2988 ((SIR_BOOT_DNLD_RESULT_IND_RES+1)<<2)
2989
2990#define SIR_BOOT_DNLD_RESULT_IND_SUCCESS 1
2991#define SIR_BOOT_DNLD_RESULT_IND_HDR_ERR 2
2992#define SIR_BOOT_DNLD_RESULT_IND_ERR 3
2993
2994// BOOT_DNLD_DEV_REQ
2995#define SIR_BOOT_DNLD_DEV_REQ_SDRAMSIZE 2
2996#define SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE 3
2997#define SIR_BOOT_DNLD_DEV_REQ_LEN \
2998 ((SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE+1)<<2)
2999
3000// BOOT_DNLD_DEV_RSP
3001#define SIR_BOOT_DNLD_DEV_RSP_DEVTYPE 2
3002#define SIR_BOOT_DNLD_DEV_RSP_LEN \
3003 ((SIR_BOOT_DNLD_DEV_RSP_DEVTYPE+1)<<2)
3004
3005#define SIR_BOOT_DNLD_DEV_RSP_SRAM 1
3006#define SIR_BOOT_DNLD_DEV_RSP_FLASH 2
3007
3008// BOOT_DNLD_REQ
3009#define SIR_BOOT_DNLD_REQ_OFFSET 2
3010#define SIR_BOOT_DNLD_REQ_WRADDR 3
3011#define SIR_BOOT_DNLD_REQ_SIZE 4
3012#define SIR_BOOT_DNLD_REQ_LEN ((SIR_BOOT_DNLD_REQ_SIZE+1)<<2)
3013
3014// BOOT_DNLD_RSP
3015#define SIR_BOOT_DNLD_RSP_SIZE 2
3016#define SIR_BOOT_DNLD_RSP_LEN ((SIR_BOOT_DNLD_RSP_SIZE+1)<<2)
3017
Jeff Johnson295189b2012-06-20 16:38:30 -07003018
3019// board capabilities fields are defined here.
3020typedef __ani_attr_pre_packed struct sSirBoardCapabilities
3021{
3022#ifndef ANI_LITTLE_BIT_ENDIAN
3023 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
3024 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
3025 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
3026 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
3027 tANI_U32 rsvd1:2;
3028 // (productId derives sub-category in the following three families)
3029 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
3030 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
3031 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
3032 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
3033 tANI_U32 bbChipVer:4; // Baseband chip version
3034 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
3035 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
3036 tANI_U32 nReceivers:2; // 0 based.
3037 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
3038 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
3039 tANI_U32 rsvd:1;
3040 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
3041#else
3042
3043 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
3044 tANI_U32 rsvd:1;
3045 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
3046 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
3047 tANI_U32 nReceivers:2; // 0 based.
3048 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
3049 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
3050 tANI_U32 bbChipVer:4; // Baseband chip version
3051 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
3052 // (productId derives sub-category in the following three families)
3053 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
3054 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
3055 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
3056 tANI_U32 rsvd1:2;
3057 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
3058 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
3059 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
3060 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
3061#endif
3062} __ani_attr_packed tSirBoardCapabilities, *tpSirBoardCapabilities;
3063
3064# define ANI_BCAP_EXT_VS_INT_ANT_MASK 0x1
3065# define ANI_BCAP_EXT_VS_INT_ANT_OFFSET 0
3066
3067# define ANI_BCAP_GAL_ON_BOARD_MASK 0x2
3068# define ANI_BCAP_GAL_ON_BOARD_OFFSET 1
3069
3070# define ANI_BCAP_SDRAM_MASK 0x4
3071# define ANI_BCAP_SDRAM_OFFSET 2
3072
3073# define ANI_BCAP_NUM_TRANSMITTERS_MASK 0x8
3074# define ANI_BCAP_NUM_TRANSMITTERS_OFFSET 3
3075
3076# define ANI_BCAP_NUM_RECEIVERS_MASK 0x30
3077# define ANI_BCAP_NUM_RECEIVERS_OFFSET 4
3078
3079# define ANI_BCAP_RADIO_ON_MASK 0xC0
3080# define ANI_BCAP_RADIO_ON_OFFSET 6
3081
3082# define ANI_BCAP_LO_TYPE_MASK 0x300
3083# define ANI_BCAP_LO_TYPE_OFFSET 8
3084
3085# define ANI_BCAP_BB_CHIP_VER_MASK 0xC00
3086# define ANI_BCAP_BB_CHIP_VER_OFFSET 10
3087
3088# define ANI_BCAP_CYG_DATE_CODE_MASK 0xFF000
3089# define ANI_BCAP_CYG_DATE_CODE_OFFSET 12
3090
3091# define ANI_BCAP_RADIO_OFF 0
3092# define ANI_BCAP_RADIO_ON 1
3093# define ANI_BCAP_RADIO_ON_NOT_SUPPORTED 3
3094
3095
3096/// WOW related structures
3097// SME -> PE <-> HAL
3098#define SIR_WOWL_BCAST_PATTERN_MAX_SIZE 128
3099#define SIR_WOWL_BCAST_MAX_NUM_PATTERNS 16
3100
3101// SME -> PE -> HAL - This is to add WOWL BCAST wake-up pattern.
3102// SME/HDD maintains the list of the BCAST wake-up patterns.
3103// This is a pass through message for PE
3104typedef struct sSirWowlAddBcastPtrn
3105{
3106 tANI_U8 ucPatternId; // Pattern ID
3107 // Pattern byte offset from beginning of the 802.11 packet to start of the
3108 // wake-up pattern
3109 tANI_U8 ucPatternByteOffset;
3110 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3111 tANI_U8 ucPattern[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3112 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3113 tANI_U8 ucPatternMask[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3114 // Extra pattern data beyond 128 bytes
3115 tANI_U8 ucPatternExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern
3116 tANI_U8 ucPatternMaskExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern mask
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003117 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07003118} tSirWowlAddBcastPtrn, *tpSirWowlAddBcastPtrn;
3119
3120
3121// SME -> PE -> HAL - This is to delete WOWL BCAST wake-up pattern.
3122// SME/HDD maintains the list of the BCAST wake-up patterns.
3123// This is a pass through message for PE
3124typedef struct sSirWowlDelBcastPtrn
3125{
3126 /* Pattern ID of the wakeup pattern to be deleted */
3127 tANI_U8 ucPatternId;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003128 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07003129}tSirWowlDelBcastPtrn, *tpSirWowlDelBcastPtrn;
3130
3131
3132// SME->PE: Enter WOWLAN parameters
3133typedef struct sSirSmeWowlEnterParams
3134{
3135 /* Enables/disables magic packet filtering */
3136 tANI_U8 ucMagicPktEnable;
3137
3138 /* Magic pattern */
3139 tSirMacAddr magicPtrn;
3140
3141 /* Enables/disables packet pattern filtering */
3142 tANI_U8 ucPatternFilteringEnable;
3143
3144#ifdef WLAN_WAKEUP_EVENTS
3145 /* This configuration directs the WoW packet filtering to look for EAP-ID
3146 * requests embedded in EAPOL frames and use this as a wake source.
3147 */
3148 tANI_U8 ucWoWEAPIDRequestEnable;
3149
3150 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3151 * requests and use this as a wake source.
3152 */
3153 tANI_U8 ucWoWEAPOL4WayEnable;
3154
3155 /* This configuration allows a host wakeup on an network scan offload match.
3156 */
3157 tANI_U8 ucWowNetScanOffloadMatch;
3158
3159 /* This configuration allows a host wakeup on any GTK rekeying error.
3160 */
3161 tANI_U8 ucWowGTKRekeyError;
3162
3163 /* This configuration allows a host wakeup on BSS connection loss.
3164 */
3165 tANI_U8 ucWoWBSSConnLoss;
3166#endif // WLAN_WAKEUP_EVENTS
3167
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003168 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003169} tSirSmeWowlEnterParams, *tpSirSmeWowlEnterParams;
3170
3171
3172// PE<->HAL: Enter WOWLAN parameters
3173typedef struct sSirHalWowlEnterParams
3174{
3175 /* Enables/disables magic packet filtering */
3176 tANI_U8 ucMagicPktEnable;
3177
3178 /* Magic pattern */
3179 tSirMacAddr magicPtrn;
3180
3181 /* Enables/disables packet pattern filtering in firmware.
3182 Enabling this flag enables broadcast pattern matching
3183 in Firmware. If unicast pattern matching is also desired,
3184 ucUcastPatternFilteringEnable flag must be set tot true
3185 as well
3186 */
3187 tANI_U8 ucPatternFilteringEnable;
3188
3189 /* Enables/disables unicast packet pattern filtering.
3190 This flag specifies whether we want to do pattern match
3191 on unicast packets as well and not just broadcast packets.
3192 This flag has no effect if the ucPatternFilteringEnable
3193 (main controlling flag) is set to false
3194 */
3195 tANI_U8 ucUcastPatternFilteringEnable;
3196
3197 /* This configuration is valid only when magicPktEnable=1.
3198 * It requests hardware to wake up when it receives the
3199 * Channel Switch Action Frame.
3200 */
3201 tANI_U8 ucWowChnlSwitchRcv;
3202
3203 /* This configuration is valid only when magicPktEnable=1.
3204 * It requests hardware to wake up when it receives the
3205 * Deauthentication Frame.
3206 */
3207 tANI_U8 ucWowDeauthRcv;
3208
3209 /* This configuration is valid only when magicPktEnable=1.
3210 * It requests hardware to wake up when it receives the
3211 * Disassociation Frame.
3212 */
3213 tANI_U8 ucWowDisassocRcv;
3214
3215 /* This configuration is valid only when magicPktEnable=1.
3216 * It requests hardware to wake up when it has missed
3217 * consecutive beacons. This is a hardware register
3218 * configuration (NOT a firmware configuration).
3219 */
3220 tANI_U8 ucWowMaxMissedBeacons;
3221
3222 /* This configuration is valid only when magicPktEnable=1.
3223 * This is a timeout value in units of microsec. It requests
3224 * hardware to unconditionally wake up after it has stayed
3225 * in WoWLAN mode for some time. Set 0 to disable this feature.
3226 */
3227 tANI_U8 ucWowMaxSleepUsec;
3228
3229#ifdef WLAN_WAKEUP_EVENTS
3230 /* This configuration directs the WoW packet filtering to look for EAP-ID
3231 * requests embedded in EAPOL frames and use this as a wake source.
3232 */
3233 tANI_U8 ucWoWEAPIDRequestEnable;
3234
3235 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3236 * requests and use this as a wake source.
3237 */
3238 tANI_U8 ucWoWEAPOL4WayEnable;
3239
3240 /* This configuration allows a host wakeup on an network scan offload match.
3241 */
3242 tANI_U8 ucWowNetScanOffloadMatch;
3243
3244 /* This configuration allows a host wakeup on any GTK rekeying error.
3245 */
3246 tANI_U8 ucWowGTKRekeyError;
3247
3248 /* This configuration allows a host wakeup on BSS connection loss.
3249 */
3250 tANI_U8 ucWoWBSSConnLoss;
3251#endif // WLAN_WAKEUP_EVENTS
3252
3253 /* Status code to be filled by HAL when it sends
3254 * SIR_HAL_WOWL_ENTER_RSP to PE.
3255 */
3256 eHalStatus status;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003257
3258 /*BSSID to find the current session
3259 */
3260 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003261} tSirHalWowlEnterParams, *tpSirHalWowlEnterParams;
3262
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003263// PE<->HAL: Exit WOWLAN parameters
3264typedef struct sSirHalWowlExitParams
3265{
3266 /* Status code to be filled by HAL when it sends
3267 * SIR_HAL_WOWL_EXIT_RSP to PE.
3268 */
3269 eHalStatus status;
3270
3271 /*BSSIDX to find the current session
3272 */
3273 tANI_U8 bssIdx;
3274} tSirHalWowlExitParams, *tpSirHalWowlExitParams;
3275
Jeff Johnson295189b2012-06-20 16:38:30 -07003276
3277#define SIR_MAX_NAME_SIZE 64
3278#define SIR_MAX_TEXT_SIZE 32
3279
3280typedef struct sSirName {
3281 v_U8_t num_name;
3282 v_U8_t name[SIR_MAX_NAME_SIZE];
3283} tSirName;
3284
3285typedef struct sSirText {
3286 v_U8_t num_text;
3287 v_U8_t text[SIR_MAX_TEXT_SIZE];
3288} tSirText;
3289
3290
3291#define SIR_WPS_PROBRSP_VER_PRESENT 0x00000001
3292#define SIR_WPS_PROBRSP_STATE_PRESENT 0x00000002
3293#define SIR_WPS_PROBRSP_APSETUPLOCK_PRESENT 0x00000004
3294#define SIR_WPS_PROBRSP_SELECTEDREGISTRA_PRESENT 0x00000008
3295#define SIR_WPS_PROBRSP_DEVICEPASSWORDID_PRESENT 0x00000010
3296#define SIR_WPS_PROBRSP_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3297#define SIR_WPS_PROBRSP_RESPONSETYPE_PRESENT 0x00000040
3298#define SIR_WPS_PROBRSP_UUIDE_PRESENT 0x00000080
3299#define SIR_WPS_PROBRSP_MANUFACTURE_PRESENT 0x00000100
3300#define SIR_WPS_PROBRSP_MODELNAME_PRESENT 0x00000200
3301#define SIR_WPS_PROBRSP_MODELNUMBER_PRESENT 0x00000400
3302#define SIR_WPS_PROBRSP_SERIALNUMBER_PRESENT 0x00000800
3303#define SIR_WPS_PROBRSP_PRIMARYDEVICETYPE_PRESENT 0x00001000
3304#define SIR_WPS_PROBRSP_DEVICENAME_PRESENT 0x00002000
3305#define SIR_WPS_PROBRSP_CONFIGMETHODS_PRESENT 0x00004000
3306#define SIR_WPS_PROBRSP_RF_BANDS_PRESENT 0x00008000
3307
3308
3309typedef struct sSirWPSProbeRspIE {
3310 v_U32_t FieldPresent;
3311 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3312 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3313 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3314 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3315 v_U16_t DevicePasswordID; // Device Password ID
3316 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3317 v_U8_t ResponseType; // Response type
3318 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3319 tSirName Manufacture;
3320 tSirText ModelName;
3321 tSirText ModelNumber;
3322 tSirText SerialNumber;
3323 v_U32_t PrimaryDeviceCategory ; // Device Category ID: 1Computer, 2Input Device, ...
3324 v_U8_t PrimaryDeviceOUI[4] ; // Vendor specific OUI for Device Sub Category
3325 v_U32_t DeviceSubCategory ; // Device Sub Category ID: 1-PC, 2-Server if Device Category ID is computer
3326 tSirText DeviceName;
3327 v_U16_t ConfigMethod; // Configuaration method
3328 v_U8_t RFBand; // RF bands available on the AP
3329} tSirWPSProbeRspIE;
3330
3331#define SIR_WPS_BEACON_VER_PRESENT 0x00000001
3332#define SIR_WPS_BEACON_STATE_PRESENT 0x00000002
3333#define SIR_WPS_BEACON_APSETUPLOCK_PRESENT 0x00000004
3334#define SIR_WPS_BEACON_SELECTEDREGISTRA_PRESENT 0x00000008
3335#define SIR_WPS_BEACON_DEVICEPASSWORDID_PRESENT 0x00000010
3336#define SIR_WPS_BEACON_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3337#define SIR_WPS_BEACON_UUIDE_PRESENT 0x00000080
3338#define SIR_WPS_BEACON_RF_BANDS_PRESENT 0x00000100
3339
3340typedef struct sSirWPSBeaconIE {
3341 v_U32_t FieldPresent;
3342 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3343 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3344 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3345 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3346 v_U16_t DevicePasswordID; // Device Password ID
3347 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3348 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3349 v_U8_t RFBand; // RF bands available on the AP
3350} tSirWPSBeaconIE;
3351
3352#define SIR_WPS_ASSOCRSP_VER_PRESENT 0x00000001
3353#define SIR_WPS_ASSOCRSP_RESPONSETYPE_PRESENT 0x00000002
3354
3355typedef struct sSirWPSAssocRspIE {
3356 v_U32_t FieldPresent;
3357 v_U32_t Version;
3358 v_U8_t ResposeType;
3359} tSirWPSAssocRspIE;
3360
3361typedef struct sSirAPWPSIEs {
3362 tSirWPSProbeRspIE SirWPSProbeRspIE; /*WPS Set Probe Respose IE*/
3363 tSirWPSBeaconIE SirWPSBeaconIE; /*WPS Set Beacon IE*/
3364 tSirWPSAssocRspIE SirWPSAssocRspIE; /*WPS Set Assoc Response IE*/
3365} tSirAPWPSIEs, *tpSiriAPWPSIEs;
3366
3367typedef struct sSirUpdateAPWPSIEsReq
3368{
3369 tANI_U16 messageType; // eWNI_SME_UPDATE_APWPSIE_REQ
3370 tANI_U16 length;
3371 tANI_U16 transactionId; //Transaction ID for cmd
3372 tSirMacAddr bssId; // BSSID
3373 tANI_U8 sessionId; //Session ID
3374 tSirAPWPSIEs APWPSIEs;
3375} tSirUpdateAPWPSIEsReq, *tpSirUpdateAPWPSIEsReq;
3376
3377typedef struct sSirUpdateParams
3378{
3379 tANI_U16 messageType;
3380 tANI_U16 length;
3381 tANI_U8 sessionId; // Session ID
3382 tANI_U8 ssidHidden; // Hide SSID
3383} tSirUpdateParams, *tpSirUpdateParams;
3384
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08003385//Beacon Interval
3386typedef struct sSirChangeBIParams
3387{
3388 tANI_U16 messageType;
3389 tANI_U16 length;
3390 tANI_U16 beaconInterval; // Beacon Interval
3391 tSirMacAddr bssId;
3392 tANI_U8 sessionId; // Session ID
3393} tSirChangeBIParams, *tpSirChangeBIParams;
3394
Sandeep Puligilla11d49a62014-01-30 12:05:16 +05303395typedef struct sSirOBSSHT40Param
3396{
3397 tANI_U16 OBSSScanPassiveDwellTime;
3398 tANI_U16 OBSSScanActiveDwellTime;
3399 tANI_U16 BSSChannelWidthTriggerScanInterval;
3400 tANI_U16 OBSSScanPassiveTotalPerChannel;
3401 tANI_U16 OBSSScanActiveTotalPerChannel;
3402 tANI_U16 BSSWidthChannelTransitionDelayFactor;
3403 tANI_U16 OBSSScanActivityThreshold;
3404}tSirOBSSHT40Param, *tpOBSSHT40Param;
3405
Jeff Johnson295189b2012-06-20 16:38:30 -07003406#define SIR_WPS_UUID_LEN 16
3407#define SIR_WPS_PBC_WALK_TIME 120 // 120 Second
3408
3409typedef struct sSirWPSPBCSession {
3410 struct sSirWPSPBCSession *next;
3411 tSirMacAddr addr;
3412 tANI_U8 uuid_e[SIR_WPS_UUID_LEN];
3413 tANI_TIMESTAMP timestamp;
3414} tSirWPSPBCSession;
3415
3416typedef struct sSirSmeGetWPSPBCSessionsReq
3417{
3418 tANI_U16 messageType; // eWNI_SME_GET_WPSPBC_SESSION_REQ
3419 tANI_U16 length;
3420 void *pUsrContext;
3421 void *pSapEventCallback;
3422 tSirMacAddr bssId; // BSSID
3423 tSirMacAddr pRemoveMac; // MAC Address of STA in WPS Session to be removed
3424} tSirSmeGetWPSPBCSessionsReq, *tpSirSmeGetWPSPBCSessionsReq;
3425
3426typedef struct sSirWPSPBCProbeReq
3427{
3428 tSirMacAddr peerMacAddr;
3429 tANI_U16 probeReqIELen;
3430 tANI_U8 probeReqIE[512];
3431} tSirWPSPBCProbeReq, *tpSirWPSPBCProbeReq;
3432
3433// probereq from peer, when wsc is enabled
3434typedef struct sSirSmeProbeReqInd
3435{
3436 tANI_U16 messageType; // eWNI_SME_WPS_PBC_PROBE_REQ_IND
3437 tANI_U16 length;
3438 tANI_U8 sessionId;
3439 tSirMacAddr bssId;
3440 tSirWPSPBCProbeReq WPSPBCProbeReq;
3441} tSirSmeProbeReqInd, *tpSirSmeProbeReqInd;
3442
3443typedef struct sSirUpdateAPWPARSNIEsReq
3444{
3445 tANI_U16 messageType; // eWNI_SME_SET_APWPARSNIEs_REQ
3446 tANI_U16 length;
3447 tANI_U16 transactionId; //Transaction ID for cmd
3448 tSirMacAddr bssId; // BSSID
3449 tANI_U8 sessionId; //Session ID
3450 tSirRSNie APWPARSNIEs;
3451} tSirUpdateAPWPARSNIEsReq, *tpSirUpdateAPWPARSNIEsReq;
3452
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003453#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu52231ea2014-02-06 12:00:56 -08003454#define SIR_ROAM_MAX_CHANNELS 80
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003455#define SIR_ROAM_SCAN_MAX_PB_REQ_SIZE 450
3456#define CHANNEL_LIST_STATIC 1 /* Occupied channel list remains static */
3457#define CHANNEL_LIST_DYNAMIC_INIT 2 /* Occupied channel list can be learnt after init */
3458#define CHANNEL_LIST_DYNAMIC_FLUSH 3 /* Occupied channel list can be learnt after flush */
3459#define CHANNEL_LIST_DYNAMIC_UPDATE 4 /* Occupied channel list can be learnt after update */
3460#define SIR_ROAM_SCAN_24G_DEFAULT_CH 1
3461#define SIR_ROAM_SCAN_5G_DEFAULT_CH 36
Varun Reddy Yeturu6c5e25c2014-01-09 21:55:37 -08003462
3463/*Adaptive Thresholds to be used for FW based scanning*/
3464#define LFR_SENSITIVITY_THR_1MBPS -89
3465#define LFR_LOOKUP_THR_1MBPS -78
3466#define LFR_SENSITIVITY_THR_2MBPS -87
3467#define LFR_LOOKUP_THR_2MBPS -78
3468#define LFR_SENSITIVITY_THR_5_5MBPS -86
3469#define LFR_LOOKUP_THR_5_5MBPS -77
3470#define LFR_SENSITIVITY_THR_11MBPS -85
3471#define LFR_LOOKUP_THR_11MBPS -76
3472#define LFR_SENSITIVITY_THR_6MBPS_2G -83
3473#define LFR_LOOKUP_THR_6MBPS_2G -78
3474#define LFR_SENSITIVITY_THR_6MBPS_5G -83
3475#define LFR_LOOKUP_THR_6MBPS_5G -78
3476#define LFR_SENSITIVITY_THR_12MBPS_2G -83
3477#define LFR_LOOKUP_THR_12MBPS_2G -78
3478#define LFR_SENSITIVITY_THR_12MBPS_5G -81
3479#define LFR_LOOKUP_THR_12MBPS_5G -76
3480#define LFR_SENSITIVITY_THR_24MBPS_2G -81
3481#define LFR_LOOKUP_THR_24MBPS_2G -76
3482#define LFR_SENSITIVITY_THR_24MBPS_5G -79
3483#define LFR_LOOKUP_THR_24MBPS_5G -74
3484#define LFR_SENSITIVITY_THR_DEFAULT 0
3485#define LFR_LOOKUP_THR_DEFAULT -78
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003486#endif //WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Jeff Johnson295189b2012-06-20 16:38:30 -07003487
3488// SME -> HAL - This is the host offload request.
3489#define SIR_IPV4_ARP_REPLY_OFFLOAD 0
3490#define SIR_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3491#define SIR_IPV6_NS_OFFLOAD 2
3492#define SIR_OFFLOAD_DISABLE 0
3493#define SIR_OFFLOAD_ENABLE 1
3494#define SIR_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudibadffe72013-09-11 13:09:14 +05303495#define SIR_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003496#define SIR_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudibadffe72013-09-11 13:09:14 +05303497#define SIR_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003498
3499#ifdef WLAN_NS_OFFLOAD
3500typedef struct sSirNsOffloadReq
3501{
3502 tANI_U8 srcIPv6Addr[16];
3503 tANI_U8 selfIPv6Addr[16];
3504 //Only support 2 possible Network Advertisement IPv6 address
3505 tANI_U8 targetIPv6Addr[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][16];
3506 tANI_U8 selfMacAddr[6];
3507 tANI_U8 srcIPv6AddrValid;
3508 tANI_U8 targetIPv6AddrValid[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA];
Gopichand Nakkala746a9452013-06-11 12:45:54 +05303509 tANI_U8 slotIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003510} tSirNsOffloadReq, *tpSirNsOffloadReq;
3511#endif //WLAN_NS_OFFLOAD
3512
3513typedef struct sSirHostOffloadReq
3514{
3515 tANI_U8 offloadType;
3516 tANI_U8 enableOrDisable;
3517 union
3518 {
3519 tANI_U8 hostIpv4Addr [4];
3520 tANI_U8 hostIpv6Addr [16];
3521 } params;
3522#ifdef WLAN_NS_OFFLOAD
3523 tSirNsOffloadReq nsOffloadInfo;
3524#endif //WLAN_NS_OFFLOAD
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003525 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003526} tSirHostOffloadReq, *tpSirHostOffloadReq;
3527
3528/* Packet Types. */
3529#define SIR_KEEP_ALIVE_NULL_PKT 1
3530#define SIR_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3531
3532/* Enable or disable offload. */
3533#define SIR_KEEP_ALIVE_DISABLE 0
3534#define SIR_KEEP_ALIVE_ENABLE 1
3535
3536/* Keep Alive request. */
3537typedef struct sSirKeepAliveReq
3538{
3539 v_U8_t packetType;
3540 v_U32_t timePeriod;
3541 tSirIpv4Addr hostIpv4Addr;
3542 tSirIpv4Addr destIpv4Addr;
3543 tSirMacAddr destMacAddr;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003544 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003545} tSirKeepAliveReq, *tpSirKeepAliveReq;
3546
3547typedef struct sSirSmeAddStaSelfReq
3548{
3549 tANI_U16 mesgType;
3550 tANI_U16 mesgLen;
3551 tSirMacAddr selfMacAddr;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07003552 tVOS_CON_MODE currDeviceMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07003553}tSirSmeAddStaSelfReq, *tpSirSmeAddStaSelfReq;
3554
3555typedef struct sSirSmeDelStaSelfReq
3556{
3557 tANI_U16 mesgType;
3558 tANI_U16 mesgLen;
3559 tSirMacAddr selfMacAddr;
3560}tSirSmeDelStaSelfReq, *tpSirSmeDelStaSelfReq;
3561
3562typedef struct sSirSmeAddStaSelfRsp
3563{
3564 tANI_U16 mesgType;
3565 tANI_U16 mesgLen;
3566 tANI_U16 status;
3567 tSirMacAddr selfMacAddr;
3568}tSirSmeAddStaSelfRsp, *tpSirSmeAddStaSelfRsp;
3569
3570typedef struct sSirSmeDelStaSelfRsp
3571{
3572 tANI_U16 mesgType;
3573 tANI_U16 mesgLen;
3574 tANI_U16 status;
3575 tSirMacAddr selfMacAddr;
3576}tSirSmeDelStaSelfRsp, *tpSirSmeDelStaSelfRsp;
3577
3578/* Coex Indication defines -
3579 should match WLAN_COEX_IND_DATA_SIZE
3580 should match WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR
3581 should match WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR */
3582#define SIR_COEX_IND_DATA_SIZE (4)
3583#define SIR_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
3584#define SIR_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08003585#define SIR_COEX_IND_TYPE_SCAN_COMPROMISED (2)
3586#define SIR_COEX_IND_TYPE_SCAN_NOT_COMPROMISED (3)
Kiran Kumar Lokere458d7322013-05-29 14:29:43 -07003587#define SIR_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
3588#define SIR_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07003589
3590typedef struct sSirSmeCoexInd
3591{
3592 tANI_U16 mesgType;
3593 tANI_U16 mesgLen;
3594 tANI_U32 coexIndType;
3595 tANI_U32 coexIndData[SIR_COEX_IND_DATA_SIZE];
3596}tSirSmeCoexInd, *tpSirSmeCoexInd;
3597
Jeff Johnson295189b2012-06-20 16:38:30 -07003598typedef struct sSirSmeMgmtFrameInd
3599{
3600 tANI_U16 mesgType;
3601 tANI_U16 mesgLen;
Chilam NG571c65a2013-01-19 12:27:36 +05303602 tANI_U32 rxChan;
Jeff Johnson295189b2012-06-20 16:38:30 -07003603 tANI_U8 sessionId;
3604 tANI_U8 frameType;
Chilam NG571c65a2013-01-19 12:27:36 +05303605 tANI_S8 rxRssi;
Jeff Johnson295189b2012-06-20 16:38:30 -07003606 tANI_U8 frameBuf[1]; //variable
3607}tSirSmeMgmtFrameInd, *tpSirSmeMgmtFrameInd;
Jeff Johnson295189b2012-06-20 16:38:30 -07003608
Chet Lanctot186b5732013-03-18 10:26:30 -07003609#ifdef WLAN_FEATURE_11W
3610typedef struct sSirSmeUnprotMgmtFrameInd
3611{
3612 tANI_U8 sessionId;
3613 tANI_U8 frameType;
3614 tANI_U8 frameLen;
3615 tANI_U8 frameBuf[1]; //variable
3616}tSirSmeUnprotMgmtFrameInd, *tpSirSmeUnprotMgmtFrameInd;
3617#endif
3618
Jeff Johnson295189b2012-06-20 16:38:30 -07003619#define SIR_IS_FULL_POWER_REASON_DISCONNECTED(eReason) \
3620 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || \
3621 ( eSME_LINK_DISCONNECTED_BY_OTHER == (eReason) ) || \
3622 (eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH == (eReason)))
3623#define SIR_IS_FULL_POWER_NEEDED_BY_HDD(eReason) \
3624 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || ( eSME_FULL_PWR_NEEDED_BY_HDD == (eReason) ) )
3625
3626/* P2P Power Save Related */
Jeff Johnson295189b2012-06-20 16:38:30 -07003627typedef struct sSirNoAParam
3628{
3629 tANI_U8 ctWindow:7;
3630 tANI_U8 OppPS:1;
3631 tANI_U8 count;
3632 tANI_U32 duration;
3633 tANI_U32 interval;
3634 tANI_U32 singleNoADuration;
3635 tANI_U8 psSelection;
3636}tSirNoAParam, *tpSirNoAParam;
Jeff Johnson295189b2012-06-20 16:38:30 -07003637
Jeff Johnson295189b2012-06-20 16:38:30 -07003638typedef struct sSirWlanSuspendParam
3639{
3640 tANI_U8 configuredMcstBcstFilterSetting;
3641}tSirWlanSuspendParam,*tpSirWlanSuspendParam;
3642
3643typedef struct sSirWlanResumeParam
3644{
3645 tANI_U8 configuredMcstBcstFilterSetting;
3646}tSirWlanResumeParam,*tpSirWlanResumeParam;
3647
3648typedef struct sSirWlanSetRxpFilters
3649{
3650 tANI_U8 configuredMcstBcstFilterSetting;
3651 tANI_U8 setMcstBcstFilter;
3652}tSirWlanSetRxpFilters,*tpSirWlanSetRxpFilters;
Jeff Johnson295189b2012-06-20 16:38:30 -07003653
3654
3655#ifdef FEATURE_WLAN_SCAN_PNO
3656//
3657// PNO Messages
3658//
3659
3660// Set PNO
3661#define SIR_PNO_MAX_NETW_CHANNELS 26
Pratik Bhalgatd4404592012-11-22 17:49:14 +05303662#define SIR_PNO_MAX_NETW_CHANNELS_EX 60
Jeff Johnson295189b2012-06-20 16:38:30 -07003663#define SIR_PNO_MAX_SUPP_NETWORKS 16
3664#define SIR_PNO_MAX_SCAN_TIMERS 10
3665
3666/*size based of dot11 declaration without extra IEs as we will not carry those for PNO*/
3667#define SIR_PNO_MAX_PB_REQ_SIZE 450
3668
3669#define SIR_PNO_24G_DEFAULT_CH 1
3670#define SIR_PNO_5G_DEFAULT_CH 36
3671
3672typedef enum
3673{
3674 SIR_PNO_MODE_IMMEDIATE,
3675 SIR_PNO_MODE_ON_SUSPEND,
3676 SIR_PNO_MODE_ON_RESUME,
3677 SIR_PNO_MODE_MAX
3678} eSirPNOMode;
3679
3680typedef struct
3681{
3682 tSirMacSSid ssId;
3683 tANI_U32 authentication;
3684 tANI_U32 encryption;
3685 tANI_U32 bcastNetwType;
3686 tANI_U8 ucChannelCount;
Gopichand Nakkala8e93fde2013-05-10 17:40:12 +05303687 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS_EX];
Jeff Johnson295189b2012-06-20 16:38:30 -07003688 tANI_U8 rssiThreshold;
3689} tSirNetworkType;
3690
3691typedef struct
3692{
3693 tANI_U32 uTimerValue;
3694 tANI_U32 uTimerRepeat;
3695}tSirScanTimer;
3696
3697typedef struct
3698{
3699 tANI_U8 ucScanTimersCount;
3700 tSirScanTimer aTimerValues[SIR_PNO_MAX_SCAN_TIMERS];
3701} tSirScanTimersType;
3702
Vinay Krishna Erannaf0e523b2014-03-01 21:00:16 +05303703/*Pref Net Req status */
3704typedef void(*PNOReqStatusCb)(void *callbackContext, VOS_STATUS status);
3705
3706
Jeff Johnson295189b2012-06-20 16:38:30 -07003707typedef struct sSirPNOScanReq
3708{
3709 tANI_U8 enable;
Vinay Krishna Erannaf0e523b2014-03-01 21:00:16 +05303710 PNOReqStatusCb statusCallback;
3711 void *callbackContext;
Jeff Johnson295189b2012-06-20 16:38:30 -07003712 eSirPNOMode modePNO;
3713 tANI_U8 ucNetworksCount;
3714 tSirNetworkType aNetworks[SIR_PNO_MAX_SUPP_NETWORKS];
3715 tSirScanTimersType scanTimers;
3716
3717 /*added by SME*/
3718 tANI_U16 us24GProbeTemplateLen;
3719 tANI_U8 p24GProbeTemplate[SIR_PNO_MAX_PB_REQ_SIZE];
3720 tANI_U16 us5GProbeTemplateLen;
3721 tANI_U8 p5GProbeTemplate[SIR_PNO_MAX_PB_REQ_SIZE];
3722} tSirPNOScanReq, *tpSirPNOScanReq;
3723
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003724typedef struct sSirSetRSSIFilterReq
3725{
3726 tANI_U8 rssiThreshold;
3727} tSirSetRSSIFilterReq, *tpSirSetRSSIFilterReq;
3728
3729
3730// Update Scan Params
3731typedef struct {
3732 tANI_U8 b11dEnabled;
3733 tANI_U8 b11dResolved;
3734 tANI_U8 ucChannelCount;
3735 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS_EX];
3736 tANI_U16 usPassiveMinChTime;
3737 tANI_U16 usPassiveMaxChTime;
3738 tANI_U16 usActiveMinChTime;
3739 tANI_U16 usActiveMaxChTime;
3740 tANI_U8 ucCBState;
3741} tSirUpdateScanParams, * tpSirUpdateScanParams;
3742
3743// Preferred Network Found Indication
3744typedef struct
3745{
3746 tANI_U16 mesgType;
3747 tANI_U16 mesgLen;
3748 /* Network that was found with the highest RSSI*/
3749 tSirMacSSid ssId;
3750 /* Indicates the RSSI */
3751 tANI_U8 rssi;
3752 /* Length of the beacon or probe response
3753 * corresponding to the candidate found by PNO */
3754 tANI_U32 frameLength;
3755 /* Index to memory location where the contents of
3756 * beacon or probe response frame will be copied */
3757 tANI_U8 data[1];
3758} tSirPrefNetworkFoundInd, *tpSirPrefNetworkFoundInd;
3759#endif //FEATURE_WLAN_SCAN_PNO
3760
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003761#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
3762typedef struct
3763{
3764 tSirMacSSid ssId;
3765 tANI_U8 currAPbssid[WNI_CFG_BSSID_LEN];
3766 tANI_U32 authentication;
3767 tANI_U8 encryption;
3768 tANI_U8 mcencryption;
3769 tANI_U8 ChannelCount;
3770 tANI_U8 ChannelCache[SIR_ROAM_MAX_CHANNELS];
3771
3772} tSirRoamNetworkType;
3773
3774typedef struct SirMobilityDomainInfo
3775{
3776 tANI_U8 mdiePresent;
3777 tANI_U16 mobilityDomain;
3778} tSirMobilityDomainInfo;
3779
3780typedef struct sSirRoamOffloadScanReq
3781{
3782 eAniBoolean RoamScanOffloadEnabled;
Sameer Thalappil4ae66ec2013-11-05 14:17:35 -08003783 eAniBoolean MAWCEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003784 tANI_S8 LookupThreshold;
Varun Reddy Yeturu6c5e25c2014-01-09 21:55:37 -08003785 tANI_S8 RxSensitivityThreshold;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003786 tANI_U8 RoamRssiDiff;
3787 tANI_U8 ChannelCacheType;
3788 tANI_U8 Command;
3789 tANI_U8 StartScanReason;
3790 tANI_U16 NeighborScanTimerPeriod;
3791 tANI_U16 NeighborRoamScanRefreshPeriod;
3792 tANI_U16 NeighborScanChannelMinTime;
3793 tANI_U16 NeighborScanChannelMaxTime;
3794 tANI_U16 EmptyRefreshScanPeriod;
3795 tANI_U8 ValidChannelCount;
3796 tANI_U8 ValidChannelList[SIR_ROAM_MAX_CHANNELS];
Varun Reddy Yeturu5d5e2c62014-02-27 13:31:29 -08003797 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003798 tANI_U16 us24GProbeTemplateLen;
3799 tANI_U8 p24GProbeTemplate[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
3800 tANI_U16 us5GProbeTemplateLen;
3801 tANI_U8 p5GProbeTemplate[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07003802 tANI_U8 nProbes;
3803 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003804 tSirRoamNetworkType ConnectedNetwork;
3805 tSirMobilityDomainInfo MDID;
3806} tSirRoamOffloadScanReq, *tpSirRoamOffloadScanReq;
Manjunathappa Prakash4f1d5a52013-11-11 16:22:19 -08003807#endif //WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Jeff Johnson295189b2012-06-20 16:38:30 -07003808
3809#define SIR_NOCHANGE_POWER_VALUE 0xFFFFFFFF
3810
3811//Power Parameters Type
3812typedef enum
3813{
3814 eSIR_IGNORE_DTIM = 1,
3815 eSIR_LISTEN_INTERVAL = 2,
3816 eSIR_MCAST_BCAST_FILTER = 3,
3817 eSIR_ENABLE_BET = 4,
3818 eSIR_BET_INTERVAL = 5
3819}tPowerParamType;
3820
3821//Power Parameters Value s
3822typedef struct
3823{
3824 /* Ignore DTIM */
3825 tANI_U32 uIgnoreDTIM;
3826
3827 /* DTIM Period */
3828 tANI_U32 uDTIMPeriod;
3829
3830 /* Listen Interval */
3831 tANI_U32 uListenInterval;
3832
3833 /* Broadcast Multicas Filter */
3834 tANI_U32 uBcastMcastFilter;
3835
3836 /* Beacon Early Termination */
3837 tANI_U32 uEnableBET;
3838
3839 /* Beacon Early Termination Interval */
3840 tANI_U32 uBETInterval;
3841
Yue Mac24062f2013-05-13 17:01:29 -07003842 /* MAX LI for modulated DTIM */
3843 tANI_U32 uMaxLIModulatedDTIM;
3844
Jeff Johnson295189b2012-06-20 16:38:30 -07003845}tSirSetPowerParamsReq, *tpSirSetPowerParamsReq;
3846
3847typedef struct sSirTxPerTrackingParam
3848{
3849 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
3850 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. Once tx_stat_chk enable, firmware will check PER in this period periodically */
3851 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 */
3852 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
3853}tSirTxPerTrackingParam, *tpSirTxPerTrackingParam;
3854
3855#ifdef WLAN_FEATURE_PACKET_FILTERING
3856/*---------------------------------------------------------------------------
3857 Packet Filtering Parameters
3858---------------------------------------------------------------------------*/
3859#define SIR_IPV4_ADDR_LEN 4
3860#define SIR_MAC_ADDR_LEN 6
3861#define SIR_MAX_FILTER_TEST_DATA_LEN 8
3862#define SIR_MAX_NUM_MULTICAST_ADDRESS 240
3863#define SIR_MAX_NUM_FILTERS 20
3864#define SIR_MAX_NUM_TESTS_PER_FILTER 10
3865
3866//
3867// Receive Filter Parameters
3868//
3869typedef enum
3870{
3871 SIR_RCV_FILTER_TYPE_INVALID,
3872 SIR_RCV_FILTER_TYPE_FILTER_PKT,
3873 SIR_RCV_FILTER_TYPE_BUFFER_PKT,
3874 SIR_RCV_FILTER_TYPE_MAX_ENUM_SIZE
3875}eSirReceivePacketFilterType;
3876
3877typedef enum
3878{
3879 SIR_FILTER_HDR_TYPE_INVALID,
3880 SIR_FILTER_HDR_TYPE_MAC,
3881 SIR_FILTER_HDR_TYPE_ARP,
3882 SIR_FILTER_HDR_TYPE_IPV4,
3883 SIR_FILTER_HDR_TYPE_IPV6,
3884 SIR_FILTER_HDR_TYPE_UDP,
3885 SIR_FILTER_HDR_TYPE_MAX
3886}eSirRcvPktFltProtocolType;
3887
3888typedef enum
3889{
3890 SIR_FILTER_CMP_TYPE_INVALID,
3891 SIR_FILTER_CMP_TYPE_EQUAL,
3892 SIR_FILTER_CMP_TYPE_MASK_EQUAL,
3893 SIR_FILTER_CMP_TYPE_NOT_EQUAL,
3894 SIR_FILTER_CMP_TYPE_MASK_NOT_EQUAL,
3895 SIR_FILTER_CMP_TYPE_MAX
3896}eSirRcvPktFltCmpFlagType;
3897
3898typedef struct sSirRcvPktFilterFieldParams
3899{
3900 eSirRcvPktFltProtocolType protocolLayer;
3901 eSirRcvPktFltCmpFlagType cmpFlag;
3902 /* Length of the data to compare */
3903 tANI_U16 dataLength;
3904 /* from start of the respective frame header */
3905 tANI_U8 dataOffset;
3906 /* Reserved field */
3907 tANI_U8 reserved;
3908 /* Data to compare */
3909 tANI_U8 compareData[SIR_MAX_FILTER_TEST_DATA_LEN];
3910 /* Mask to be applied on the received packet data before compare */
3911 tANI_U8 dataMask[SIR_MAX_FILTER_TEST_DATA_LEN];
3912}tSirRcvPktFilterFieldParams, *tpSirRcvPktFilterFieldParams;
3913
3914typedef struct sSirRcvPktFilterCfg
3915{
3916 tANI_U8 filterId;
3917 eSirReceivePacketFilterType filterType;
3918 tANI_U32 numFieldParams;
3919 tANI_U32 coalesceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07003920 tSirMacAddr selfMacAddr;
3921 tSirMacAddr bssId; //Bssid of the connected AP
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003922 tSirRcvPktFilterFieldParams paramsData[SIR_MAX_NUM_TESTS_PER_FILTER];
Jeff Johnson295189b2012-06-20 16:38:30 -07003923}tSirRcvPktFilterCfgType, *tpSirRcvPktFilterCfgType;
3924
3925//
3926// Filter Packet Match Count Parameters
3927//
3928typedef struct sSirRcvFltPktMatchCnt
3929{
3930 tANI_U8 filterId;
3931 tANI_U32 matchCnt;
3932} tSirRcvFltPktMatchCnt, tpSirRcvFltPktMatchCnt;
3933
3934typedef struct sSirRcvFltPktMatchRsp
3935{
3936 tANI_U16 mesgType;
3937 tANI_U16 mesgLen;
3938
3939 /* Success or Failure */
3940 tANI_U32 status;
3941 tSirRcvFltPktMatchCnt filterMatchCnt[SIR_MAX_NUM_FILTERS];
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003942 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003943} tSirRcvFltPktMatchRsp, *tpSirRcvFltPktMatchRsp;
3944
3945//
3946// Receive Filter Clear Parameters
3947//
3948typedef struct sSirRcvFltPktClearParam
3949{
3950 tANI_U32 status; /* only valid for response message */
3951 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003952 tSirMacAddr selfMacAddr;
3953 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003954}tSirRcvFltPktClearParam, *tpSirRcvFltPktClearParam;
3955
3956//
3957// Multicast Address List Parameters
3958//
3959typedef struct sSirRcvFltMcAddrList
3960{
3961 tANI_U32 ulMulticastAddrCnt;
3962 tSirMacAddr multicastAddr[SIR_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07003963 tSirMacAddr selfMacAddr;
3964 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003965} tSirRcvFltMcAddrList, *tpSirRcvFltMcAddrList;
3966#endif // WLAN_FEATURE_PACKET_FILTERING
3967
3968//
3969// Generic version information
3970//
3971typedef struct
3972{
3973 tANI_U8 revision;
3974 tANI_U8 version;
3975 tANI_U8 minor;
3976 tANI_U8 major;
3977} tSirVersionType;
3978
3979typedef struct sAniBtAmpLogLinkReq
3980{
3981 // Common for all types are requests
3982 tANI_U16 msgType; // message type is same as the request type
3983 tANI_U16 msgLen; // length of the entire request
3984 tANI_U8 sessionId; //sme Session Id
3985 void *btampHandle; //AMP context
3986
3987} tAniBtAmpLogLinkReq, *tpAniBtAmpLogLinkReq;
3988
3989#ifdef WLAN_FEATURE_GTK_OFFLOAD
3990/*---------------------------------------------------------------------------
3991* WDA_GTK_OFFLOAD_REQ
3992*--------------------------------------------------------------------------*/
3993typedef struct
3994{
3995 tANI_U32 ulFlags; /* optional flags */
3996 tANI_U8 aKCK[16]; /* Key confirmation key */
3997 tANI_U8 aKEK[16]; /* key encryption key */
3998 tANI_U64 ullKeyReplayCounter; /* replay counter */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003999 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004000} tSirGtkOffloadParams, *tpSirGtkOffloadParams;
4001
4002/*---------------------------------------------------------------------------
4003* WDA_GTK_OFFLOAD_GETINFO_REQ
4004*--------------------------------------------------------------------------*/
4005typedef struct
4006{
4007 tANI_U16 mesgType;
4008 tANI_U16 mesgLen;
4009
4010 tANI_U32 ulStatus; /* success or failure */
4011 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
4012 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
4013 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
4014 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004015 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004016} tSirGtkOffloadGetInfoRspParams, *tpSirGtkOffloadGetInfoRspParams;
4017#endif // WLAN_FEATURE_GTK_OFFLOAD
4018
4019#ifdef WLAN_WAKEUP_EVENTS
4020/*---------------------------------------------------------------------------
4021 tSirWakeReasonInd
4022---------------------------------------------------------------------------*/
4023typedef struct
4024{
4025 tANI_U16 mesgType;
4026 tANI_U16 mesgLen;
4027 tANI_U32 ulReason; /* see tWakeReasonType */
4028 tANI_U32 ulReasonArg; /* argument specific to the reason type */
4029 tANI_U32 ulStoredDataLen; /* length of optional data stored in this message, in case
4030 HAL truncates the data (i.e. data packets) this length
4031 will be less than the actual length */
4032 tANI_U32 ulActualDataLen; /* actual length of data */
4033 tANI_U8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
4034 see specific wake type */
4035} tSirWakeReasonInd, *tpSirWakeReasonInd;
4036#endif // WLAN_WAKEUP_EVENTS
4037
4038/*---------------------------------------------------------------------------
4039 sAniSetTmLevelReq
4040---------------------------------------------------------------------------*/
4041typedef struct sAniSetTmLevelReq
4042{
4043 tANI_U16 tmMode;
4044 tANI_U16 newTmLevel;
4045} tAniSetTmLevelReq, *tpAniSetTmLevelReq;
4046
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004047#ifdef FEATURE_WLAN_TDLS
4048/* TDLS Request struct SME-->PE */
4049typedef struct sSirTdlsSendMgmtReq
4050{
4051 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4052 tANI_U16 length;
4053 tANI_U8 sessionId; // Session ID
4054 tANI_U16 transactionId; // Transaction ID for cmd
4055 tANI_U8 reqType;
4056 tANI_U8 dialog;
4057 tANI_U16 statusCode;
Hoonki Leea34dd892013-02-05 22:56:02 -08004058 tANI_U8 responder;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004059 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4060 tSirMacAddr peerMac;
4061 tANI_U8 addIe[1]; //Variable lenght. Dont add any field after this.
4062} tSirTdlsSendMgmtReq, *tpSirSmeTdlsSendMgmtReq ;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004063
4064typedef enum TdlsAddOper
4065{
4066 TDLS_OPER_NONE,
4067 TDLS_OPER_ADD,
4068 TDLS_OPER_UPDATE
4069} eTdlsAddOper;
4070
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004071/* TDLS Request struct SME-->PE */
4072typedef struct sSirTdlsAddStaReq
4073{
4074 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4075 tANI_U16 length;
4076 tANI_U8 sessionId; // Session ID
4077 tANI_U16 transactionId; // Transaction ID for cmd
4078 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004079 eTdlsAddOper tdlsAddOper;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004080 tSirMacAddr peerMac;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004081 tANI_U16 capability;
4082 tANI_U8 extn_capability[SIR_MAC_MAX_EXTN_CAP];
4083 tANI_U8 supported_rates_length;
4084 tANI_U8 supported_rates[SIR_MAC_MAX_SUPP_RATES];
Hoonki Lee66b75f32013-04-16 18:30:07 -07004085 tANI_U8 htcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004086 tSirHTCap htCap;
Hoonki Lee66b75f32013-04-16 18:30:07 -07004087 tANI_U8 vhtcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004088 tSirVHTCap vhtCap;
4089 tANI_U8 uapsd_queues;
4090 tANI_U8 max_sp;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004091} tSirTdlsAddStaReq, *tpSirSmeTdlsAddStaReq ;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004092
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004093/* TDLS Response struct PE-->SME */
4094typedef struct sSirTdlsAddStaRsp
4095{
4096 tANI_U16 messageType;
4097 tANI_U16 length;
4098 tSirResultCodes statusCode;
4099 tSirMacAddr peerMac;
4100 tANI_U8 sessionId; // Session ID
4101 tANI_U16 staId ;
4102 tANI_U16 staType ;
4103 tANI_U8 ucastSig;
4104 tANI_U8 bcastSig;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08004105 eTdlsAddOper tdlsAddOper;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004106} tSirTdlsAddStaRsp ;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304107
4108/* TDLS Request struct SME-->PE */
4109typedef struct
4110{
4111 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_ESTABLISH_REQ
4112 tANI_U16 length;
4113 tANI_U8 sessionId; // Session ID
4114 tANI_U16 transactionId; // Transaction ID for cmd
4115 tANI_U8 uapsdQueues; // Peer's uapsd Queues Information
4116 tANI_U8 maxSp; // Peer's Supported Maximum Service Period
4117 tANI_U8 isBufSta; // Does Peer Support as Buffer Station.
Naresh Jayarambc62ba42014-02-12 21:39:14 +05304118 tANI_U8 isOffChannelSupported; // Does Peer Support as TDLS Off Channel.
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304119 tANI_U8 isResponder; // Is Peer a responder.
4120 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4121 tSirMacAddr peerMac;
Naresh Jayarambc62ba42014-02-12 21:39:14 +05304122 tANI_U8 supportedChannelsLen;
4123 tANI_U8 supportedChannels[SIR_MAC_MAX_SUPP_CHANNELS];
4124 tANI_U8 supportedOperClassesLen;
4125 tANI_U8 supportedOperClasses[SIR_MAC_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05304126}tSirTdlsLinkEstablishReq, *tpSirTdlsLinkEstablishReq;
4127
4128/* TDLS Request struct SME-->PE */
4129typedef struct
4130{
4131 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_ESTABLISH_RSP
4132 tANI_U16 length;
4133 tANI_U8 sessionId; // Session ID
4134 tANI_U16 transactionId; // Transaction ID for cmd
4135 tSirResultCodes statusCode;
4136 tSirMacAddr peerMac;
4137}tSirTdlsLinkEstablishReqRsp, *tpSirTdlsLinkEstablishReqRsp;
4138
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004139/* TDLS Request struct SME-->PE */
4140typedef struct sSirTdlsDelStaReq
4141{
4142 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4143 tANI_U16 length;
4144 tANI_U8 sessionId; // Session ID
4145 tANI_U16 transactionId; // Transaction ID for cmd
4146 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4147 tSirMacAddr peerMac;
4148} tSirTdlsDelStaReq, *tpSirSmeTdlsDelStaReq ;
4149/* TDLS Response struct PE-->SME */
4150typedef struct sSirTdlsDelStaRsp
4151{
4152 tANI_U16 messageType;
4153 tANI_U16 length;
4154 tANI_U8 sessionId; // Session ID
4155 tSirResultCodes statusCode;
4156 tSirMacAddr peerMac;
4157 tANI_U16 staId;
4158} tSirTdlsDelStaRsp, *tpSirTdlsDelStaRsp;
Hoonki Leee6bfe942013-02-05 15:01:19 -08004159/* TDLS Delete Indication struct PE-->SME */
4160typedef struct sSirTdlsDelStaInd
4161{
4162 tANI_U16 messageType;
4163 tANI_U16 length;
4164 tANI_U8 sessionId; // Session ID
4165 tSirMacAddr peerMac;
4166 tANI_U16 staId;
4167 tANI_U16 reasonCode;
4168} tSirTdlsDelStaInd, *tpSirTdlsDelStaInd;
Gopichand Nakkala2a0a1572013-02-10 21:39:16 -08004169typedef struct sSirTdlsDelAllPeerInd
4170{
4171 tANI_U16 messageType;
4172 tANI_U16 length;
4173 tANI_U8 sessionId; // Session ID
4174} tSirTdlsDelAllPeerInd, *tpSirTdlsDelAllPeerInd;
Gopichand Nakkalab977a972013-02-18 19:15:09 -08004175typedef struct sSirMgmtTxCompletionInd
4176{
4177 tANI_U16 messageType;
4178 tANI_U16 length;
4179 tANI_U8 sessionId; // Session ID
4180 tANI_U32 txCompleteStatus;
4181} tSirMgmtTxCompletionInd, *tpSirMgmtTxCompletionInd;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004182#endif /* FEATURE_WLAN_TDLS */
4183
4184#ifdef FEATURE_WLAN_TDLS_INTERNAL
4185typedef enum tdlsListType
4186{
4187 TDLS_DIS_LIST,
4188 TDLS_SETUP_LIST
4189}eTdlsListType ;
4190
4191typedef enum tdlsStates
4192{
4193 TDLS_LINK_IDLE_STATE,
4194 TDLS_LINK_DIS_INIT_STATE,
4195 TDLS_LINK_DIS_RSP_WAIT_STATE,
4196 TDLS_DIS_REQ_PROCESS_STATE,
4197 TDLS_DIS_RSP_SENT_WAIT_STATE,
4198 TDLS_DIS_RSP_SENT_DONE_STATE,
4199 TDLS_LINK_DIS_DONE_STATE,
4200 TDLS_LINK_SETUP_START_STATE,
4201 TDLS_LINK_SETUP_WAIT_STATE,
4202 TDLS_LINK_SETUP_RSP_WAIT_STATE,
4203 TDLS_LINK_SETUP_DONE_STATE,
4204 TDLS_LINK_TEARDOWN_START_STATE,
4205 TDLS_LINK_TEARDOWN_DONE_STATE,
4206 TDLS_LINK_SETUP_STATE
4207}eSirTdlsStates ;
4208
4209typedef struct sSirTdlsPeerInfo
4210{
4211 tSirMacAddr peerMac;
4212 tANI_U8 sessionId;
4213 tANI_U8 dialog ;
4214 tSirMacCapabilityInfo capabilityInfo ;
4215 tSirMacRateSet tdlsPeerSuppRates ;
4216 tSirMacRateSet tdlsPeerExtRates ;
4217 //tDot11fIEHTCaps tdlsPeerHtCaps ;
4218 tSirMacHTCapabilityInfo tdlsPeerHtCaps ;
4219 tSirMacHTParametersInfo tdlsPeerHtParams ;
4220 tSirMacExtendedHTCapabilityInfo tdlsPeerHtExtCaps ;
4221 tANI_U8 supportedMCSSet[SIZE_OF_SUPPORTED_MCS_SET];
4222
4223 //tDot11fIEExtCapability tdlsPeerExtenCaps ;
4224 tSirMacRsnInfo tdlsPeerRsn ;
4225 tANI_U16 tdlsPeerFtIe ;
4226 tANI_U16 tdlsPeerTimeoutIntvl ;
4227 tANI_U16 tdlsPeerSuppChan ;
4228 tANI_U16 tdlsPeerSuppReguClass ;
4229 tANI_S8 tdlsPeerRssi ;
4230 tANI_U16 tdlsPeerState ;
4231 /* flags to indicate optional IE's are in */
4232 tANI_U8 ExtRatesPresent ;
4233 tANI_U8 rsnIePresent ;
4234 tANI_U8 htCapPresent ;
4235 tANI_U8 delStaNeeded ;
4236
4237} tSirTdlsPeerInfo, *tpSirSmeTdlsPeerInfo ;
4238
4239/* TDLS Request struct SME-->PE */
4240typedef struct sSirTdlsDiscoveryReq
4241{
4242 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4243 tANI_U16 length;
4244 tANI_U8 sessionId; // Session ID
4245 tANI_U16 transactionId; // Transaction ID for cmd
4246 tANI_U8 reqType;
4247 tANI_U8 dialog;
4248 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4249 tSirMacAddr peerMac;
4250} tSirTdlsDisReq, *tpSirSmeTdlsDisReq ;
4251
4252typedef struct sSirTdlsLinkSetupReq
4253{
4254 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_START_REQ
4255 tANI_U16 length;
4256 tANI_U8 sessionId; // Session ID
4257 tANI_U16 transactionId; // Transaction ID for cmd
4258 tANI_U8 dialog;
4259 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4260 tSirMacAddr peerMac;
4261} tSirTdlsSetupReq, *tpSirSmeTdlsSetupReq ;
4262
4263typedef struct sSirTdlsTeardownReq
4264{
4265 tANI_U16 messageType; // eWNI_SME_TDLS_TEARDOWN_REQ
4266 tANI_U16 length;
4267 tANI_U8 sessionId; // Session ID
4268 tANI_U16 transactionId; // Transaction ID for cmd
4269 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4270 tSirMacAddr peerMac;
4271} tSirTdlsTeardownReq, *tpSirSmeTdlsTeardownReq ;
4272
4273
4274/* TDLS response struct PE-->SME */
4275typedef struct sSirTdlsDiscoveryRsp
4276{
4277 tANI_U16 messageType;
4278 tANI_U16 length;
4279 tSirResultCodes statusCode;
4280 tANI_U16 numDisSta ;
4281 tSirTdlsPeerInfo tdlsDisPeerInfo[0];
4282} tSirTdlsDisRsp, *tpSirSmeTdlsDiscoveryRsp;
4283
4284typedef struct sSirTdlsLinkSetupRsp
4285{
4286 tANI_U16 messageType;
4287 tANI_U16 length;
4288 tSirResultCodes statusCode;
4289 tSirMacAddr peerMac;
4290} tSirTdlsLinksetupRsp ;
4291
4292typedef struct sSirTdlsLinkSetupInd
4293{
4294 tANI_U16 messageType;
4295 tANI_U16 length;
4296 tSirResultCodes statusCode;
4297 tSirMacAddr peerMac;
4298} tSirTdlsLinkSetupInd ;
4299
4300
4301typedef struct sSirTdlsTeardownRsp
4302{
4303 tANI_U16 messageType;
4304 tANI_U16 length;
4305 tSirResultCodes statusCode;
4306 tSirMacAddr peerMac;
4307} tSirTdlsTeardownRsp ;
4308
4309typedef struct sSirTdlsPeerInd
4310{
4311 tANI_U16 messageType;
4312 tANI_U16 length;
4313 tSirMacAddr peerMac;
4314 tANI_U8 sessionId; // Session ID
4315 tANI_U16 staId ;
4316 tANI_U16 staType ;
4317 tANI_U8 ucastSig;
4318 tANI_U8 bcastSig;
4319} tSirTdlsPeerInd ;
4320
4321typedef struct sSirTdlsLinkEstablishInd
4322{
4323 tANI_U16 messageType;
4324 tANI_U16 length;
4325 tANI_U8 bIsResponder; /* if this is 1, self is initiator and peer is reponder */
4326 tANI_U8 linkIdenOffset; /* offset of LinkIdentifierIE.bssid[0] from ptiTemplateBuf */
4327 tANI_U8 ptiBufStatusOffset; /* offset of BufferStatus from ptiTemplateBuf */
4328 tANI_U8 ptiTemplateLen;
4329 tANI_U8 ptiTemplateBuf[64];
4330 tANI_U8 extCapability[8];
4331/* This will be part of PTI template when sent by PE
4332 tANI_U8 linkIdentifier[20];
4333*/
4334} tSirTdlsLinkEstablishInd, *tpSirTdlsLinkEstablishInd;
4335
4336typedef struct sSirTdlsLinkTeardownInd
4337{
4338 tANI_U16 messageType;
4339 tANI_U16 length;
4340 tANI_U16 staId;
4341} tSirTdlsLinkTeardownInd, *tpSirTdlsLinkTeardownInd;
4342
4343#endif /* FEATURE_WLAN_TDLS_INTERNAL */
4344
Yathish9f22e662012-12-10 14:21:35 -08004345typedef struct sSirActiveModeSetBcnFilterReq
4346{
4347 tANI_U16 messageType;
4348 tANI_U16 length;
4349 tANI_U8 seesionId;
4350} tSirSetActiveModeSetBncFilterReq, *tpSirSetActiveModeSetBncFilterReq;
4351
Sandeep Puligilla11d49a62014-01-30 12:05:16 +05304352typedef enum
4353{
4354 HT40_OBSS_SCAN_PARAM_START,
4355 HT40_OBSS_SCAN_PARAM_UPDATE
4356}tHT40OBssScanCmdType;
4357
4358typedef struct sSirSmeHT40StopOBSSScanInd
4359{
4360 tANI_U16 messageType;
4361 tANI_U16 length;
4362 tANI_U8 seesionId;
4363} tSirSmeHT40OBSSStopScanInd, *tpSirSmeHT40OBSSStopScanInd;
4364
4365typedef struct sSirSmeHT40OBSSScanInd
4366{
4367 tANI_U16 messageType;
4368 tANI_U16 length;
4369 tANI_U8 seesionId;
4370} tSirSmeHT40OBSSScanInd, *tpSirSmeHT40OBSSScanInd;
4371
4372typedef struct sSirHT40OBSSScanInd
4373{
4374 tHT40OBssScanCmdType cmdType;
4375 tSirScanType scanType;
4376 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
4377 tANI_U16 OBSSScanActiveDwellTime; // In TUs
4378 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
4379 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TU
4380 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
4381 tANI_U16 BSSWidthChannelTransitionDelayFactor;
4382 tANI_U16 OBSSScanActivityThreshold;
4383 tANI_U8 selfStaIdx;
4384 tANI_U8 bssIdx;
4385 tANI_U8 fortyMHZIntolerent;
4386 tANI_U8 channelCount;
4387 tANI_U8 channels[SIR_ROAM_MAX_CHANNELS];
4388 tANI_U8 currentOperatingClass;
4389 tANI_U16 ieFieldLen;
4390 tANI_U8 ieField[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
4391} tSirHT40OBSSScanInd, *tpSirHT40OBSSScanInd;
4392
4393
Gopichand Nakkalacca24d12013-03-07 17:05:07 +05304394//Reset AP Caps Changed
4395typedef struct sSirResetAPCapsChange
4396{
4397 tANI_U16 messageType;
4398 tANI_U16 length;
4399 tSirMacAddr bssId;
4400} tSirResetAPCapsChange, *tpSirResetAPCapsChange;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004401/// Definition for Candidate found indication from FW
4402typedef struct sSirSmeCandidateFoundInd
4403{
4404 tANI_U16 messageType; // eWNI_SME_CANDIDATE_FOUND_IND
4405 tANI_U16 length;
4406 tANI_U8 sessionId; // Session Identifier
4407} tSirSmeCandidateFoundInd, *tpSirSmeCandidateFoundInd;
Yathish9f22e662012-12-10 14:21:35 -08004408
Chet Lanctot186b5732013-03-18 10:26:30 -07004409#ifdef WLAN_FEATURE_11W
4410typedef struct sSirWlanExcludeUnencryptParam
4411{
4412 tANI_BOOLEAN excludeUnencrypt;
4413 tSirMacAddr bssId;
4414}tSirWlanExcludeUnencryptParam,*tpSirWlanExcludeUnencryptParam;
4415#endif
4416
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07004417typedef struct sAniHandoffReq
4418{
4419 // Common for all types are requests
4420 tANI_U16 msgType; // message type is same as the request type
4421 tANI_U16 msgLen; // length of the entire request
4422 tANI_U8 sessionId;
4423 tANI_U8 bssid[WNI_CFG_BSSID_LEN];
4424 tANI_U8 channel;
4425} tAniHandoffReq, *tpAniHandoffReq;
4426
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05304427typedef struct sSirScanOffloadReq {
4428 tANI_U8 sessionId;
4429 tSirMacAddr bssId;
4430 tANI_U8 numSsid;
4431 tSirMacSSid ssId[SIR_SCAN_MAX_NUM_SSID];
4432 tANI_U8 hiddenSsid;
4433 tSirMacAddr selfMacAddr;
4434 tSirBssType bssType;
4435 tANI_U8 dot11mode;
4436 tSirScanType scanType;
4437 tANI_U32 minChannelTime;
4438 tANI_U32 maxChannelTime;
4439 tANI_BOOLEAN p2pSearch;
4440 tANI_U16 uIEFieldLen;
4441 tANI_U16 uIEFieldOffset;
4442 tSirChannelList channelList;
4443 /*-----------------------------
4444 sSirScanOffloadReq....
4445 -----------------------------
4446 uIEFieldLen
4447 -----------------------------
4448 uIEFieldOffset ----+
4449 ----------------------------- |
4450 channelList.numChannels |
4451 ----------------------------- |
4452 ... variable size up to |
4453 channelNumber[numChannels-1] |
4454 This can be zero, if |
4455 numChannel is zero. |
4456 ----------------------------- <--+
4457 ... variable size uIEField
4458 up to uIEFieldLen (can be 0)
4459 -----------------------------*/
4460} tSirScanOffloadReq, *tpSirScanOffloadReq;
Gopichand Nakkala2c231c82013-06-11 17:49:16 +05304461
4462typedef enum sSirScanEventType {
4463 SCAN_EVENT_STARTED=0x1, /* Scan command accepted by FW */
4464 SCAN_EVENT_COMPLETED=0x2, /* Scan has been completed by FW */
4465 SCAN_EVENT_BSS_CHANNEL=0x4, /* FW is going to move to HOME channel */
4466 SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
4467 SCAN_EVENT_DEQUEUED=0x10, /* scan request got dequeued */
4468 SCAN_EVENT_PREEMPTED=0x20, /* preempted by other high priority scan */
4469 SCAN_EVENT_START_FAILED=0x40, /* scan start failed */
4470 SCAN_EVENT_RESTARTED=0x80, /*scan restarted*/
4471 SCAN_EVENT_MAX=0x8000
4472} tSirScanEventType;
4473
4474typedef struct sSirScanOffloadEvent{
4475 tSirScanEventType event;
4476 tSirResultCodes reasonCode;
4477 tANI_U32 chanFreq;
4478 tANI_U32 requestor;
4479 tANI_U32 scanId;
4480} tSirScanOffloadEvent, *tpSirScanOffloadEvent;
4481
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05304482typedef struct sSirUpdateChanParam
4483{
4484 tANI_U8 chanId;
4485 tANI_U8 pwr;
Leela Venkata Kiran Kumar Reddy Chiralac6663f72014-02-03 21:04:58 -08004486 tANI_BOOLEAN dfsSet;
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05304487} tSirUpdateChanParam, *tpSirUpdateChanParam;
4488
4489typedef struct sSirUpdateChan
4490{
4491 tANI_U8 numChan;
4492 tSirUpdateChanParam chanParam[1];
4493} tSirUpdateChanList, *tpSirUpdateChanList;
4494
Leo Chang9056f462013-08-01 19:21:11 -07004495#ifdef FEATURE_WLAN_LPHB
4496#define SIR_LPHB_FILTER_LEN 64
4497
4498typedef enum
4499{
4500 LPHB_SET_EN_PARAMS_INDID,
4501 LPHB_SET_TCP_PARAMS_INDID,
4502 LPHB_SET_TCP_PKT_FILTER_INDID,
4503 LPHB_SET_UDP_PARAMS_INDID,
4504 LPHB_SET_UDP_PKT_FILTER_INDID,
4505 LPHB_SET_NETWORK_INFO_INDID,
4506} LPHBIndType;
4507
4508typedef struct sSirLPHBEnableStruct
4509{
4510 v_U8_t enable;
4511 v_U8_t item;
4512 v_U8_t session;
4513} tSirLPHBEnableStruct;
4514
4515typedef struct sSirLPHBTcpParamStruct
4516{
4517 v_U32_t srv_ip;
4518 v_U32_t dev_ip;
4519 v_U16_t src_port;
4520 v_U16_t dst_port;
4521 v_U16_t timeout;
4522 v_U8_t session;
4523 tSirMacAddr gateway_mac;
Leo Changd9df8aa2013-09-26 13:32:26 -07004524 uint16 timePeriodSec; // in seconds
4525 uint32 tcpSn;
Leo Chang9056f462013-08-01 19:21:11 -07004526} tSirLPHBTcpParamStruct;
4527
4528typedef struct sSirLPHBTcpFilterStruct
4529{
4530 v_U16_t length;
4531 v_U8_t offset;
4532 v_U8_t session;
4533 v_U8_t filter[SIR_LPHB_FILTER_LEN];
4534} tSirLPHBTcpFilterStruct;
4535
4536typedef struct sSirLPHBUdpParamStruct
4537{
4538 v_U32_t srv_ip;
4539 v_U32_t dev_ip;
4540 v_U16_t src_port;
4541 v_U16_t dst_port;
4542 v_U16_t interval;
4543 v_U16_t timeout;
4544 v_U8_t session;
4545 tSirMacAddr gateway_mac;
4546} tSirLPHBUdpParamStruct;
4547
4548typedef struct sSirLPHBUdpFilterStruct
4549{
4550 v_U16_t length;
4551 v_U8_t offset;
4552 v_U8_t session;
4553 v_U8_t filter[SIR_LPHB_FILTER_LEN];
4554} tSirLPHBUdpFilterStruct;
4555
4556typedef struct sSirLPHBReq
4557{
4558 v_U16_t cmd;
4559 v_U16_t dummy;
4560 union
4561 {
4562 tSirLPHBEnableStruct lphbEnableReq;
4563 tSirLPHBTcpParamStruct lphbTcpParamReq;
4564 tSirLPHBTcpFilterStruct lphbTcpFilterReq;
4565 tSirLPHBUdpParamStruct lphbUdpParamReq;
4566 tSirLPHBUdpFilterStruct lphbUdpFilterReq;
4567 } params;
4568} tSirLPHBReq;
4569
Leo Changd9df8aa2013-09-26 13:32:26 -07004570typedef struct sSirLPHBInd
Leo Chang9056f462013-08-01 19:21:11 -07004571{
4572 v_U8_t sessionIdx;
4573 v_U8_t protocolType; /*TCP or UDP*/
4574 v_U8_t eventReason;
Leo Changd9df8aa2013-09-26 13:32:26 -07004575} tSirLPHBInd;
Leo Chang9056f462013-08-01 19:21:11 -07004576#endif /* FEATURE_WLAN_LPHB */
4577
Yue Mab9c86f42013-08-14 15:59:08 -07004578typedef struct sSirAddPeriodicTxPtrn
4579{
4580 /* MAC Address for the adapter */
4581 tSirMacAddr macAddress;
4582
4583 tANI_U8 ucPtrnId; // Pattern ID
4584 tANI_U16 ucPtrnSize; // Pattern size
4585 tANI_U32 usPtrnIntervalMs; // In msec
4586 tANI_U8 ucPattern[PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4587} tSirAddPeriodicTxPtrn, *tpSirAddPeriodicTxPtrn;
4588
4589typedef struct sSirDelPeriodicTxPtrn
4590{
4591 /* MAC Address for the adapter */
4592 tSirMacAddr macAddress;
4593
4594 /* Bitmap of pattern IDs that need to be deleted */
4595 tANI_U32 ucPatternIdBitmap;
4596} tSirDelPeriodicTxPtrn, *tpSirDelPeriodicTxPtrn;
4597
Chittajit Mitraf5413a42013-10-18 14:20:08 -07004598typedef struct sSirRateUpdateInd
4599{
4600 /* 0 implies RA, positive value implies fixed rate, -1 implies ignore this
4601 * param.
4602 */
4603 tANI_S32 ucastDataRate;
4604
4605 /* TX flag to differentiate between HT20, HT40 etc */
4606 tTxrateinfoflags ucastDataRateTxFlag;
4607
4608 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
4609 tSirMacAddr bssid;
4610
4611 /*
4612 * 0 implies MCAST RA, positive value implies fixed rate,
4613 * -1 implies ignore this param
4614 */
4615 tANI_S32 reliableMcastDataRate;//unit Mbpsx10
4616
4617 /* TX flag to differentiate between HT20, HT40 etc */
4618 tTxrateinfoflags reliableMcastDataRateTxFlag;
4619
4620 /*
4621 * MCAST(or BCAST) fixed data rate in 2.4 GHz, unit Mbpsx10,
4622 * 0 implies ignore
4623 */
4624 tANI_U32 mcastDataRate24GHz;
4625
4626 /* TX flag to differentiate between HT20, HT40 etc */
4627 tTxrateinfoflags mcastDataRate24GHzTxFlag;
4628
4629 /*
4630 * MCAST(or BCAST) fixed data rate in 5 GHz,
4631 * unit Mbpsx10, 0 implies ignore
4632 */
4633 tANI_U32 mcastDataRate5GHz;
4634
4635 /* TX flag to differentiate between HT20, HT40 etc */
4636 tTxrateinfoflags mcastDataRate5GHzTxFlag;
4637
4638} tSirRateUpdateInd, *tpSirRateUpdateInd;
4639
Rajeev79dbe4c2013-10-05 11:03:42 +05304640#ifdef FEATURE_WLAN_BATCH_SCAN
4641// Set batch scan resposne from FW
4642typedef struct
4643{
4644 /*maximum number of scans which FW can cache*/
4645 tANI_U32 nScansToBatch;
4646} tSirSetBatchScanRsp, *tpSirSetBatchScanRsp;
4647
4648// Set batch scan request to FW
4649typedef struct
4650{
4651 tANI_U32 scanFrequency; /* how frequent to do scan - default 30Sec*/
4652 tANI_U32 numberOfScansToBatch; /* number of scans to batch */
4653 tANI_U32 bestNetwork; /* best networks in terms of rssi */
4654 tANI_U8 rfBand; /* band to scan :
4655 0 ->both Band, 1->2.4Ghz Only
4656 and 2-> 5GHz Only */
4657 tANI_U32 rtt; /* set if required to do RTT it is not
4658 supported in current version */
4659} tSirSetBatchScanReq, *tpSirSetBatchScanReq;
4660
4661
4662// Stop batch scan request to FW
4663typedef struct
4664{
4665 tANI_U32 param;
4666} tSirStopBatchScanInd, *tpSirStopBatchScanInd;
4667
4668// Trigger batch scan result indication to FW
4669typedef struct
4670{
4671 tANI_U32 param;
4672} tSirTriggerBatchScanResultInd, *tpSirTriggerBatchScanResultInd;
4673
4674// Batch scan result indication from FW
4675typedef PACKED_PRE struct PACKED_POST
4676{
4677 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004678 tANI_U8 ssid[33]; /* SSID */
Rajeev79dbe4c2013-10-05 11:03:42 +05304679 tANI_U8 ch; /* Channel */
4680 tANI_U8 rssi; /* RSSI or Level */
4681 /*Timestamp when Network was found. Used to calculate age based on timestamp
4682 in GET_RSP msg header */
4683 tANI_U32 timestamp;
4684} tSirBatchScanNetworkInfo, *tpSirBatchScanNetworkInfo;
4685
4686typedef PACKED_PRE struct PACKED_POST
4687{
4688 tANI_U32 scanId; /* Scan List ID. */
4689 /*No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg*/
4690 tANI_U32 numNetworksInScanList;
4691 /*Variable data ptr: Number of AP in Scan List*/
4692 /*Following numNetworkInScanList is data of type tSirBatchScanNetworkInfo
4693 *of sizeof(tSirBatchScanNetworkInfo) * numNetworkInScanList */
4694 tANI_U8 scanList[1];
4695} tSirBatchScanList, *tpSirBatchScanList;
4696
4697typedef PACKED_PRE struct PACKED_POST
4698{
4699 tANI_U32 timestamp;
4700 tANI_U32 numScanLists;
4701 boolean isLastResult;
4702 /* Variable Data ptr: Number of Scan Lists*/
4703 /* following isLastResult is data of type tSirBatchScanList
4704 * of sizeof(tSirBatchScanList) * numScanLists*/
4705 tANI_U8 scanResults[1];
4706} tSirBatchScanResultIndParam, *tpSirBatchScanResultIndParam;
4707
4708#endif // FEATURE_WLAN_BATCH_SCAN
4709
Leo Chang0b0e45a2013-12-15 15:18:55 -08004710#ifdef FEATURE_WLAN_CH_AVOID
4711#define SIR_CH_AVOID_MAX_RANGE 4
4712
4713typedef struct sSirChAvoidFreqType
4714{
4715 tANI_U32 startFreq;
4716 tANI_U32 endFreq;
4717} tSirChAvoidFreqType;
4718
4719typedef struct sSirChAvoidIndType
4720{
4721 tANI_U32 avoidRangeCount;
4722 tSirChAvoidFreqType avoidFreqRange[SIR_CH_AVOID_MAX_RANGE];
4723} tSirChAvoidIndType;
4724#endif /* FEATURE_WLAN_CH_AVOID */
Rajeev79dbe4c2013-10-05 11:03:42 +05304725
Jeff Johnson295189b2012-06-20 16:38:30 -07004726#endif /* __SIR_API_H */