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