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