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