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