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