blob: d1942a7776eb0bc429a87c2d7b2c4b30c50be0b1 [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;
Madan Mohan Koyyalamudi1bed5982012-10-22 14:38:06 -0700393 /*Indicates the Maximum MCS that can be transmitted for each number
Jeff Johnsone7245742012-09-05 17:12:55 -0700394 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,
Madan Mohan Koyyalamudi9b876782012-10-11 16:22:51 -0700940 eSIR_NORMAL_BACKGROUND_SCAN = 1,
941 eSIR_ROAMING_SCAN = 2,
Jeff Johnson295189b2012-06-20 16:38:30 -0700942} tSirBackgroundScanMode;
943
944/// Two types of traffic check
945typedef enum eSirLinkTrafficCheck
946{
947 eSIR_DONT_CHECK_LINK_TRAFFIC_BEFORE_SCAN = 0,
Madan Mohan Koyyalamudi9b876782012-10-11 16:22:51 -0700948 eSIR_CHECK_LINK_TRAFFIC_BEFORE_SCAN = 1,
949 eSIR_CHECK_ROAMING_SCAN = 2,
Jeff Johnson295189b2012-06-20 16:38:30 -0700950} tSirLinkTrafficCheck;
951
952#define SIR_BG_SCAN_RETURN_CACHED_RESULTS 0x0
953#define SIR_BG_SCAN_PURGE_RESUTLS 0x80
954#define SIR_BG_SCAN_RETURN_FRESH_RESULTS 0x01
955#define SIR_SCAN_MAX_NUM_SSID 0x09
956
957/// Definition for scan request
958typedef struct sSirSmeScanReq
959{
960 tANI_U16 messageType; // eWNI_SME_SCAN_REQ
961 tANI_U16 length;
962 tANI_U8 sessionId; // Session ID
963 tANI_U16 transactionId; // Transaction ID for cmd
964 tSirMacAddr bssId;
965 tSirMacSSid ssId[SIR_SCAN_MAX_NUM_SSID];
966 tSirMacAddr selfMacAddr; //Added For BT-AMP Support
967 tSirBssType bssType;
968 tANI_U8 dot11mode;
969 tSirScanType scanType;
970 /**
971 * minChannelTime. Not used if scanType is passive.
972 * 0x0 - Dont Use min channel timer. Only max channel timeout will used.
973 * 11k measurements set this to zero to user only single duration for scan.
974 * <valid timeout> - Timeout value used for min channel timeout.
975 */
976 tANI_U32 minChannelTime;
977 /**
978 * maxChannelTime.
979 * 0x0 - Invalid. In case of active scan.
980 * In case of passive scan, MAX( maxChannelTime, WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME) is used.
981 *
982 */
983 tANI_U32 maxChannelTime;
984 /**
985 * returnAfterFirstMatch can take following values:
986 * 0x00 - Return SCAN_RSP message after complete channel scan
987 * 0x01 - Return SCAN_RSP message after collecting BSS description
988 * that matches scan criteria.
989 * 0xC0 - Return after collecting first 11d IE from 2.4 GHz &
990 * 5 GHz band channels
991 * 0x80 - Return after collecting first 11d IE from 5 GHz band
992 * channels
993 * 0x40 - Return after collecting first 11d IE from 2.4 GHz
994 * band channels
995 *
996 * Values of 0xC0, 0x80 & 0x40 are to be used by
997 * Roaming/application when 11d is enabled.
998 */
999 tANI_U8 returnAfterFirstMatch;
1000
1001 /**
1002 * returnUniqueResults can take following values:
1003 * 0 - Collect & report all received BSS descriptions from same BSS.
1004 * 1 - Collect & report unique BSS description from same BSS.
1005 */
1006 tANI_U8 returnUniqueResults;
1007
1008 /**
1009 * returnFreshResults can take following values:
1010 * 0x00 - Return background scan results.
1011 * 0x80 - Return & purge background scan results
1012 * 0x01 - Trigger fresh scan instead of returning background scan
1013 * results.
1014 * 0x81 - Trigger fresh scan instead of returning background scan
1015 * results and purge background scan results.
1016 */
1017 tANI_U8 returnFreshResults;
1018
1019 /* backgroundScanMode can take following values:
1020 * 0x0 - agressive scan
1021 * 0x1 - normal scan where HAL will check for link traffic
1022 * prior to proceeding with the scan
1023 */
1024 tSirBackgroundScanMode backgroundScanMode;
1025
1026 tANI_U8 hiddenSsid;
1027
1028 /* Number of SSIDs to scan */
1029 tANI_U8 numSsid;
1030
1031 //channelList has to be the last member of this structure. Check tSirChannelList for the reason.
1032 /* This MUST be the last field of the structure */
1033
1034
1035#ifdef WLAN_FEATURE_P2P
1036 tANI_BOOLEAN p2pSearch;
Jeff Johnsone7245742012-09-05 17:12:55 -07001037 tANI_BOOLEAN skipDfsChnlInP2pSearch;
Jeff Johnson295189b2012-06-20 16:38:30 -07001038#endif
1039 tANI_U16 uIEFieldLen;
1040 tANI_U16 uIEFieldOffset;
1041
1042 //channelList MUST be the last field of this structure
1043 tSirChannelList channelList;
1044 /*-----------------------------
1045 tSirSmeScanReq....
1046 -----------------------------
1047 uIEFiledLen
1048 -----------------------------
1049 uIEFiledOffset ----+
1050 ----------------------------- |
1051 channelList.numChannels |
1052 ----------------------------- |
1053 ... variable size up to |
1054 channelNumber[numChannels-1] |
1055 This can be zero, if |
1056 numChannel is zero. |
1057 ----------------------------- <--+
1058 ... variable size uIEFiled
1059 up to uIEFieldLen (can be 0)
1060 -----------------------------*/
1061} tSirSmeScanReq, *tpSirSmeScanReq;
1062
Jeff Johnsone7245742012-09-05 17:12:55 -07001063#ifdef FEATURE_OEM_DATA_SUPPORT
1064
1065#ifndef OEM_DATA_REQ_SIZE
1066#define OEM_DATA_REQ_SIZE 70
1067#endif
1068#ifndef OEM_DATA_RSP_SIZE
1069#define OEM_DATA_RSP_SIZE 968
1070#endif
1071
1072typedef struct sSirOemDataReq
1073{
1074 tANI_U16 messageType; //eWNI_SME_OEM_DATA_REQ
1075 tSirMacAddr selfMacAddr;
1076 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
1077} tSirOemDataReq, *tpSirOemDataReq;
1078
1079typedef struct sSirOemDataRsp
1080{
1081 tANI_U16 messageType;
1082 tANI_U16 length;
1083 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
1084} tSirOemDataRsp, *tpSirOemDataRsp;
1085
1086#endif //FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07001087
1088/// Definition for response message to previously issued scan request
1089typedef struct sSirSmeScanRsp
1090{
1091 tANI_U16 messageType; // eWNI_SME_SCAN_RSP
1092 tANI_U16 length;
1093 tANI_U8 sessionId;
1094 tSirResultCodes statusCode;
1095 tANI_U16 transcationId;
1096 tSirBssDescription bssDescription[1];
1097} tSirSmeScanRsp, *tpSirSmeScanRsp;
1098
1099/// Sme Req message to set the Background Scan mode
1100typedef struct sSirSmeBackgroundScanModeReq
1101{
1102 tANI_U16 messageType; // eWNI_SME_BACKGROUND_SCAN_MODE_REQ
1103 tANI_U16 length;
1104 tSirBackgroundScanMode mode;
1105} tSirSmeBackgroundScanModeReq, *tpSirSmeBackgroundScanModeReq;
1106
1107/// Background Scan Statisics
1108typedef struct sSirBackgroundScanInfo {
1109 tANI_U32 numOfScanSuccess;
1110 tANI_U32 numOfScanFailure;
1111 tANI_U32 reserved;
1112} tSirBackgroundScanInfo, *tpSirBackgroundScanInfo;
1113
1114#define SIR_BACKGROUND_SCAN_INFO_SIZE (3 * sizeof(tANI_U32))
1115
1116/// Definition for Authentication request
1117typedef struct sSirSmeAuthReq
1118{
1119 tANI_U16 messageType; // eWNI_SME_AUTH_REQ
1120 tANI_U16 length;
1121 tANI_U8 sessionId; // Session ID
1122 tANI_U16 transactionId; // Transaction ID for cmd
1123 tSirMacAddr bssId; // Self BSSID
1124 tSirMacAddr peerMacAddr;
1125 tAniAuthType authType;
1126 tANI_U8 channelNumber;
1127} tSirSmeAuthReq, *tpSirSmeAuthReq;
1128
1129/// Definition for reponse message to previously issued Auth request
1130typedef struct sSirSmeAuthRsp
1131{
1132 tANI_U16 messageType; // eWNI_SME_AUTH_RSP
1133 tANI_U16 length;
1134 tANI_U8 sessionId; // Session ID
1135 tANI_U16 transactionId; // Transaction ID for cmd
1136 tSirMacAddr peerMacAddr;
1137 tAniAuthType authType;
1138 tSirResultCodes statusCode;
1139 tANI_U16 protStatusCode; //It holds reasonCode when Pre-Auth fails due to deauth frame.
1140 //Otherwise it holds status code.
1141} tSirSmeAuthRsp, *tpSirSmeAuthRsp;
1142
1143#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
1144/// Association type
1145typedef enum eSirAssocType
1146{
1147 eSIR_NORMAL,
1148 eSIR_TRANSFERRED,
1149 eSIR_DONOT_USE_ASSOC_TYPE = SIR_MAX_ENUM_SIZE
1150} tSirAssocType;
1151#endif
1152
1153#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
1154typedef enum eSirBpIndicatorType
1155{
1156 eSIR_WIRELESS_BP,
1157 eSIR_WIRED_BP
1158} tSirBpIndicatorType;
1159
1160#endif
1161
1162#ifdef FEATURE_WLAN_INTEGRATED_SOC
1163/// Definition for Join/Reassoc info - Reshmi: need to check if this is a def which moved from elsehwere.
1164typedef struct sJoinReassocInfo
1165{
1166 tAniTitanCBNeighborInfo cbNeighbors;
1167 tAniBool spectrumMgtIndicator;
1168 tSirMacPowerCapInfo powerCap;
1169 tSirSupChnl supportedChannels;
1170} tJoinReassocInfo, *tpJoinReassocInfo;
1171#endif
1172
1173/// Definition for join request
1174/// ---> MAC
1175/// WARNING! If you add a field in JOIN REQ.
1176/// Make sure to add it in REASSOC REQ
1177/// The Serdes function is the same and its
1178/// shared with REASSOC. So if we add a field
1179// here and dont add it in REASSOC REQ. It will BREAK!!! REASSOC.
1180typedef struct sSirSmeJoinReq
1181{
1182 tANI_U16 messageType; // eWNI_SME_JOIN_REQ
1183 tANI_U16 length;
Jeff Johnsone7245742012-09-05 17:12:55 -07001184 tANI_U8 sessionId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001185 tANI_U16 transactionId;
1186 tSirMacSSid ssId;
1187 tSirMacAddr selfMacAddr; // self Mac address
1188 tSirBssType bsstype; // add new type for BT -AMP STA and AP Modules
1189 tANI_U8 dot11mode; // to support BT-AMP
Jeff Johnsone7245742012-09-05 17:12:55 -07001190 tVOS_CON_MODE staPersona; //Persona
1191 ePhyChanBondState cbMode; // Pass CB mode value in Join.
Jeff Johnson295189b2012-06-20 16:38:30 -07001192
1193 /*This contains the UAPSD Flag for all 4 AC
1194 * B0: AC_VO UAPSD FLAG
1195 * B1: AC_VI UAPSD FLAG
1196 * B2: AC_BK UAPSD FLAG
1197 * B3: AC_BE UASPD FLAG
1198 */
1199 tANI_U8 uapsdPerAcBitmask;
1200
1201#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
1202 tSirAssocType assocType; // Indicates whether STA is
1203 // sending (Re) Association
1204 // due to load balance or not
1205#endif
1206 tSirMacRateSet operationalRateSet;// Has 11a or 11b rates
1207 tSirMacRateSet extendedRateSet; // Has 11g rates
1208 tSirRSNie rsnIE; // RSN IE to be sent in
1209 // (Re) Association Request
1210#ifdef FEATURE_WLAN_CCX
1211 tSirCCKMie cckmIE; // CCMK IE to be included as handler for join and reassoc is
1212 // the same. The join will never carry cckm, but will be set to
1213 // 0.
1214#endif
1215
1216 tSirAddie addIEScan; // Additional IE to be sent in
1217 // (unicast) Probe Request at the time of join
1218
1219 tSirAddie addIEAssoc; // Additional IE to be sent in
1220 // (Re) Association Request
1221
1222 tAniEdType UCEncryptionType;
1223
1224 tAniEdType MCEncryptionType;
1225#ifdef WLAN_FEATURE_VOWIFI_11R
1226 tAniBool is11Rconnection;
1227#endif
1228#ifdef FEATURE_WLAN_CCX
1229 tAniBool isCCXconnection;
1230 tCCXTspecInfo ccxTspecInfo;
1231#endif
1232
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001233#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07001234 tAniBool isFastTransitionEnabled;
1235#endif
Jeff Johnson43971f52012-07-17 12:26:56 -07001236#ifdef FEATURE_WLAN_LFR
1237 tAniBool isFastRoamIniFeatureEnabled;
1238#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001239
1240#if (WNI_POLARIS_FW_PACKAGE == ADVANCED) && (WNI_POLARIS_FW_PRODUCT == AP)
1241 tAniBool bpIndicator;
1242 tSirBpIndicatorType bpType;
1243 tSirNeighborBssList neighborBssList; // TBD Move this outside 'AP'
1244 // flag
1245#endif
1246 tAniTitanCBNeighborInfo cbNeighbors;
1247 tAniBool spectrumMgtIndicator;
1248 tSirMacPowerCapInfo powerCap;
1249 tSirSupChnl supportedChannels;
1250//#if (WNI_POLARIS_FW_PRODUCT == WLAN_STA )
1251 tSirBssDescription bssDescription;
1252//#endif
1253
1254} tSirSmeJoinReq, *tpSirSmeJoinReq;
1255
1256/// Definition for reponse message to previously issued join request
1257/// MAC --->
1258typedef struct sSirSmeJoinRsp
1259{
1260 tANI_U16 messageType; // eWNI_SME_JOIN_RSP
1261 tANI_U16 length;
1262 tANI_U8 sessionId; // Session ID
1263 tANI_U16 transactionId; // Transaction ID for cmd
1264 tSirResultCodes statusCode;
1265#if (WNI_POLARIS_FW_PRODUCT == WLAN_STA)
1266 tAniAuthType authType;
1267// tANI_U16 staId; // Station ID for peer
1268#endif
1269#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
1270 // Following are needed for Roaming algorithm
1271 // to 'associate' with an alternate BSS.
1272 tSirMacAddr alternateBssId;
1273 tANI_U8 alternateChannelId;
1274#endif
1275 tANI_U16 protStatusCode; //It holds reasonCode when join fails due to deauth/disassoc frame.
1276 //Otherwise it holds status code.
1277 tANI_U16 aid;
1278 tANI_U32 beaconLength;
1279 tANI_U32 assocReqLength;
1280 tANI_U32 assocRspLength;
1281#ifdef WLAN_FEATURE_VOWIFI_11R
1282 tANI_U32 parsedRicRspLen;
1283#endif
1284#ifdef FEATURE_WLAN_CCX
1285 tANI_U32 tspecIeLen;
1286#endif
1287 tANI_U32 staId;//Station ID for peer
1288
1289 /*The DPU signatures will be sent eventually to TL to help it determine the
1290 association to which a packet belongs to*/
1291 /*Unicast DPU signature*/
1292 tANI_U8 ucastSig;
1293
1294 /*Broadcast DPU signature*/
1295 tANI_U8 bcastSig;
1296
1297 tANI_U8 frames[ 1 ];
1298} tSirSmeJoinRsp, *tpSirSmeJoinRsp;
1299
1300/// Definition for Authentication indication from peer
1301typedef struct sSirSmeAuthInd
1302{
1303 tANI_U16 messageType; // eWNI_SME_AUTH_IND
1304 tANI_U16 length;
1305 tANI_U8 sessionId;
1306 tSirMacAddr bssId; // Self BSSID
1307 tSirMacAddr peerMacAddr;
1308 tAniAuthType authType;
1309} tSirSmeAuthInd, *tpSirSmeAuthInd;
1310
1311/// probereq from peer, when wsc is enabled
1312typedef struct sSirSmeProbereq
1313{
1314 tANI_U16 messageType; // eWNI_SME_PROBE_REQ
1315 tANI_U16 length;
1316 tANI_U8 sessionId;
1317 tSirMacAddr peerMacAddr;
1318 tANI_U16 devicePasswdId;
1319} tSirSmeProbeReq, *tpSirSmeProbeReq;
1320
1321/// Definition for Association indication from peer
1322/// MAC --->
1323typedef struct sSirSmeAssocInd
1324{
1325 tANI_U16 messageType; // eWNI_SME_ASSOC_IND
1326 tANI_U16 length;
1327 tANI_U8 sessionId;
1328 tSirMacAddr peerMacAddr;
1329 tANI_U16 aid;
1330 tSirMacAddr bssId; // Self BSSID
1331 tANI_U16 staId; // Station ID for peer
1332 tANI_U8 uniSig; // DPU signature for unicast packets
1333 tANI_U8 bcastSig; // DPU signature for broadcast packets
1334 tAniAuthType authType;
1335 tAniSSID ssId; // SSID used by STA to associate
1336 tSirRSNie rsnIE;// RSN IE received from peer
1337 tSirAddie addIE;// Additional IE received from peer, which possibly include WSC IE and/or P2P IE
1338
1339#if defined (ANI_PRODUCT_TYPE_AP)
1340 tANI_U16 seqNum;
1341 tAniBool wniIndicator;
1342 tAniBool bpIndicator;
1343 tSirBpIndicatorType bpType;
1344 tSirAssocType assocType; // Indicates whether STA is LB'ed or not
1345 tSirLoad load; // Current load on the radio for LB
1346 tSirNeighborBssList neighborList; // List received from STA
1347 tANI_U16 capabilityInfo; // STA capability
1348 tSirNwType nwType; // Indicates 11a/b/g
1349#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001350 // powerCap & supportedChannels are present only when
1351 // spectrumMgtIndicator flag is set
1352 tAniBool spectrumMgtIndicator;
1353 tSirMacPowerCapInfo powerCap;
1354 tSirSupChnl supportedChannels;
1355#ifdef WLAN_SOFTAP_FEATURE
1356 tAniBool wmmEnabledSta; /* if present - STA is WMM enabled */
1357 tAniBool reassocReq;
1358 // Required for indicating the frames to upper layer
1359 tANI_U32 beaconLength;
1360 tANI_U8* beaconPtr;
1361 tANI_U32 assocReqLength;
1362 tANI_U8* assocReqPtr;
1363#endif
1364} tSirSmeAssocInd, *tpSirSmeAssocInd;
1365
1366
1367/// Definition for Association confirm
1368/// ---> MAC
1369typedef struct sSirSmeAssocCnf
1370{
1371 tANI_U16 messageType; // eWNI_SME_ASSOC_CNF
1372 tANI_U16 length;
1373 tSirResultCodes statusCode;
1374 tSirMacAddr bssId; // Self BSSID
1375 tSirMacAddr peerMacAddr;
1376 tANI_U16 aid;
1377 tSirMacAddr alternateBssId;
1378 tANI_U8 alternateChannelId;
1379} tSirSmeAssocCnf, *tpSirSmeAssocCnf;
1380
1381/// Definition for Reassociation request
1382/// ---> MAC
1383/// WARNING! If you add a field in REASSOC REQ.
1384/// Make sure to add it in JOIN REQ
1385/// The Serdes function is the same and its
1386/// shared with REASSOC. So if we add a field
1387// here and dont add it in JOIN REQ. It will BREAK!!! JOIN.
1388typedef struct sSirSmeReassocReq
1389{
1390 tANI_U16 messageType; // eWNI_SME_REASSOC_REQ
1391 tANI_U16 length;
1392 tANI_U8 sessionId;
1393 tANI_U16 transactionId;
1394 tSirMacSSid ssId;
1395 tSirMacAddr selfMacAddr; // self Mac address
1396 tSirBssType bsstype; // add new type for BT -AMP STA and AP Modules
1397 tANI_U8 dot11mode; // to support BT-AMP
Jeff Johnsone7245742012-09-05 17:12:55 -07001398 tVOS_CON_MODE staPersona; //Persona
1399 ePhyChanBondState cbMode; // CBMode value to be passed with reassoc req
Jeff Johnson295189b2012-06-20 16:38:30 -07001400
1401 /*This contains the UAPSD Flag for all 4 AC
1402 * B0: AC_VO UAPSD FLAG
1403 * B1: AC_VI UAPSD FLAG
1404 * B2: AC_BK UAPSD FLAG
1405 * B3: AC_BE UASPD FLAG
1406 */
1407 tANI_U8 uapsdPerAcBitmask;
1408
1409#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
1410 tSirAssocType assocType; // Indicates whether STA is
1411 // sending (Re) Association
1412 // due to load balance or not
1413#endif
1414
1415 tSirMacRateSet operationalRateSet;// Has 11a or 11b rates
1416 tSirMacRateSet extendedRateSet; // Has 11g rates
1417
1418 tSirRSNie rsnIE; // RSN IE to be sent in
1419 // (Re) Association Request
1420
1421#ifdef FEATURE_WLAN_CCX
1422 tSirCCKMie cckmIE; // CCMK IE to be included in ReAssoc if length != 0.
1423#endif
1424 tSirAddie addIEScan; // Addtional IE to be sent in
1425 // (unicast) Probe Request at the time of join
1426
1427 tSirAddie addIEAssoc; // Additional IE to be sent in
1428 // (Re) Association Request
1429
1430 tAniEdType UCEncryptionType;
1431 tAniEdType MCEncryptionType;
1432#ifdef WLAN_FEATURE_VOWIFI_11R
1433 tAniBool is11Rconnection;
1434#endif
1435#ifdef FEATURE_WLAN_CCX
1436 tAniBool isCCXconnection;
1437 tCCXTspecInfo ccxTspecInfo;
1438#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001439#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07001440 tAniBool isFastTransitionEnabled;
1441#endif
Jeff Johnson43971f52012-07-17 12:26:56 -07001442#ifdef FEATURE_WLAN_LFR
1443 tAniBool isFastRoamIniFeatureEnabled;
1444#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001445
1446#if (WNI_POLARIS_FW_PACKAGE == ADVANCED) && (WNI_POLARIS_FW_PRODUCT == AP)
1447 tAniBool bpIndicator;
1448 tSirBpIndicatorType bpType;
1449 tSirNeighborBssList neighborBssList;
1450#endif
1451 tAniTitanCBNeighborInfo cbNeighbors;
1452 tAniBool spectrumMgtIndicator;
1453 tSirMacPowerCapInfo powerCap;
1454 tSirSupChnl supportedChannels;
1455//#if (WNI_POLARIS_FW_PRODUCT == WLAN_STA )
1456 tSirBssDescription bssDescription;
1457//#endif
1458} tSirSmeReassocReq, *tpSirSmeReassocReq;
1459
1460/// Definition for reponse message to previously issued
1461/// Reassociation request
1462typedef struct sSirSmeReassocRsp
1463{
1464 tANI_U16 messageType; // eWNI_SME_REASSOC_RSP
1465 tANI_U16 length;
1466 tANI_U8 sessionId; // Session ID
1467 tANI_U16 transactionId; // Transaction ID for cmd
1468 tSirResultCodes statusCode;
1469 tANI_U8 staId; // Station ID for peer
1470#if (WNI_POLARIS_FW_PRODUCT == WLAN_STA)
1471 tAniAuthType authType;
1472#endif
1473#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
1474 tSirMacAddr alternateBssId;
1475 tANI_U8 alternateChannelId;
1476#endif
1477} tSirSmeReassocRsp, *tpSirSmeReassocRsp;
1478
1479/// Definition for Reassociation indication from peer
1480typedef struct sSirSmeReassocInd
1481{
1482 tANI_U16 messageType; // eWNI_SME_REASSOC_IND
1483 tANI_U16 length;
1484 tANI_U8 sessionId; // Session ID
1485 tSirMacAddr peerMacAddr;
1486 tSirMacAddr oldMacAddr;
1487 tANI_U16 aid;
1488 tSirMacAddr bssId; // Self BSSID
1489 tANI_U16 staId; // Station ID for peer
1490 tAniAuthType authType;
1491 tAniSSID ssId; // SSID used by STA to reassociate
1492 tSirRSNie rsnIE; // RSN IE received from peer
1493
1494 tSirAddie addIE; // Additional IE received from peer
1495
1496#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
1497 tANI_U16 seqNum;
1498 tAniBool wniIndicator;
1499 tAniBool bpIndicator;
1500 tSirBpIndicatorType bpType;
1501 tSirAssocType reassocType; // Indicates whether STA is LB'ed or not
1502 tSirLoad load; // Current load on the radio for LB
1503 tSirNeighborBssList neighborList; // List received from STA
1504 tANI_U16 capabilityInfo; // STA capability
1505 tSirNwType nwType; // Indicates 11a/b/g
1506#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001507 // powerCap & supportedChannels are present only when
1508 // spectrumMgtIndicator flag is set
1509 tAniBool spectrumMgtIndicator;
1510 tSirMacPowerCapInfo powerCap;
1511 tSirSupChnl supportedChannels;
1512#ifdef WLAN_SOFTAP_FEATURE
1513 // Required for indicating the frames to upper layer
1514 // TODO: use the appropriate names to distinguish between the other similar names used above for station mode of operation
1515 tANI_U32 beaconLength;
1516 tANI_U8* beaconPtr;
1517 tANI_U32 assocReqLength;
1518 tANI_U8* assocReqPtr;
1519#endif
1520} tSirSmeReassocInd, *tpSirSmeReassocInd;
1521
1522/// Definition for Reassociation confirm
1523/// ---> MAC
1524typedef struct sSirSmeReassocCnf
1525{
1526 tANI_U16 messageType; // eWNI_SME_REASSOC_CNF
1527 tANI_U16 length;
1528 tSirResultCodes statusCode;
1529 tSirMacAddr bssId; // Self BSSID
1530 tSirMacAddr peerMacAddr;
1531 tANI_U16 aid;
1532 tSirMacAddr alternateBssId;
1533 tANI_U8 alternateChannelId;
1534} tSirSmeReassocCnf, *tpSirSmeReassocCnf;
1535
1536#if (WNI_POLARIS_FW_PACKAGE == ADVANCED) && (WNI_POLARIS_FW_PRODUCT == AP)
1537typedef enum {
1538 // Based on Periodic evaluation
1539 eSIR_PERIODIC_EVALATION,
1540
1541 // Dectection of primary users such as RADARs
1542 eSIR_DETECTION_OF_RADAR,
1543
1544 // Degradation in system performance (eg. Triggered by
1545 // increase in PER beyond a certain threshold)
1546 eSIR_PERFORMANCE_DEGRADATION,
1547
1548 // Frequency changed due to previously issued SWITCH_CHANNEL_REQ
1549 eSIR_UPPER_LAYER_TRIGGERED
1550}tSirFreqChangeReason;
1551#endif
1552
1553/// Enum definition for Wireless medium status change codes
1554typedef enum eSirSmeStatusChangeCode
1555{
1556 eSIR_SME_DEAUTH_FROM_PEER,
1557 eSIR_SME_DISASSOC_FROM_PEER,
1558 eSIR_SME_LOST_LINK_WITH_PEER,
1559 eSIR_SME_CHANNEL_SWITCH,
1560 eSIR_SME_JOINED_NEW_BSS,
1561 eSIR_SME_LEAVING_BSS,
1562 eSIR_SME_IBSS_ACTIVE,
1563 eSIR_SME_IBSS_INACTIVE,
1564 eSIR_SME_IBSS_PEER_DEPARTED,
1565 eSIR_SME_RADAR_DETECTED,
1566 eSIR_SME_IBSS_NEW_PEER,
1567 eSIR_SME_AP_CAPS_CHANGED,
1568 eSIR_SME_BACKGROUND_SCAN_FAIL,
1569 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_AP,
1570 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
1571} tSirSmeStatusChangeCode;
1572
1573typedef struct sSirSmeNewBssInfo
1574{
1575 tSirMacAddr bssId;
1576 tANI_U8 channelNumber;
1577 tANI_U8 reserved;
1578 tSirMacSSid ssId;
1579} tSirSmeNewBssInfo, *tpSirSmeNewBssInfo;
1580
1581typedef struct sSirSmeApNewCaps
1582{
1583 tANI_U16 capabilityInfo;
1584 tSirMacAddr bssId;
1585 tANI_U8 channelId;
1586 tANI_U8 reserved[3];
1587 tSirMacSSid ssId;
1588} tSirSmeApNewCaps, *tpSirSmeApNewCaps;
1589
1590/**
1591 * Table below indicates what information is passed for each of
1592 * the Wireless Media status change notifications:
1593 *
1594 * Status Change code Status change info
1595 * ----------------------------------------------------------------------
1596 * eSIR_SME_DEAUTH_FROM_PEER Reason code received in DEAUTH frame
1597 * eSIR_SME_DISASSOC_FROM_PEER Reason code received in DISASSOC frame
1598 * eSIR_SME_LOST_LINK_WITH_PEER None
1599 * eSIR_SME_CHANNEL_SWITCH New channel number
1600 * eSIR_SME_JOINED_NEW_BSS BSSID, SSID and channel number
1601 * eSIR_SME_LEAVING_BSS None
1602 * eSIR_SME_IBSS_ACTIVE Indicates that another STA joined
1603 * IBSS apart from this STA that
1604 * started IBSS
1605 * eSIR_SME_IBSS_INACTIVE Indicates that only this STA is left
1606 * in IBSS
1607 * eSIR_SME_RADAR_DETECTED Indicates that radar is detected
1608 * eSIR_SME_IBSS_NEW_PEER Indicates that a new peer is detected
1609 * eSIR_SME_AP_CAPS_CHANGED Indicates that capabilities of the AP
1610 * that STA is currently associated with
1611 * have changed.
1612 * eSIR_SME_BACKGROUND_SCAN_FAIL Indicates background scan failure
1613 */
1614
1615/// Definition for Wireless medium status change notification
1616typedef struct sSirSmeWmStatusChangeNtf
1617{
1618 tANI_U16 messageType; // eWNI_SME_WM_STATUS_CHANGE_NTF
1619 tANI_U16 length;
1620 tANI_U8 sessionId; // Session ID
1621 tSirSmeStatusChangeCode statusChangeCode;
1622 tSirMacAddr bssId; // Self BSSID
1623 union
1624 {
1625 tANI_U16 deAuthReasonCode; // eSIR_SME_DEAUTH_FROM_PEER
1626 tANI_U16 disassocReasonCode; // eSIR_SME_DISASSOC_FROM_PEER
1627 // none for eSIR_SME_LOST_LINK_WITH_PEER
1628 tANI_U8 newChannelId; // eSIR_SME_CHANNEL_SWITCH
1629 tSirSmeNewBssInfo newBssInfo; // eSIR_SME_JOINED_NEW_BSS
1630 // none for eSIR_SME_LEAVING_BSS
1631 // none for eSIR_SME_IBSS_ACTIVE
1632 // none for eSIR_SME_IBSS_INACTIVE
1633#if (WNI_POLARIS_FW_PACKAGE == ADVANCED) && (WNI_POLARIS_FW_PRODUCT == AP)
1634 tSirRadarInfo radarInfo; // eSIR_SME_RADAR_DETECTED
1635#endif
1636 tSirNewIbssPeerInfo newIbssPeerInfo; // eSIR_SME_IBSS_NEW_PEER
1637 tSirSmeApNewCaps apNewCaps; // eSIR_SME_AP_CAPS_CHANGED
1638 tSirBackgroundScanInfo bkgndScanInfo; // eSIR_SME_BACKGROUND_SCAN_FAIL
1639 tAniTitanCBNeighborInfo cbNeighbors; // eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
1640#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
1641 tSirNeighborBssWdsInfo neighborWdsInfo; // eSIR_SME_CB_LEGACY_BSS_FOUND_BY_AP
1642#endif
1643 } statusChangeInfo;
1644} tSirSmeWmStatusChangeNtf, *tpSirSmeWmStatusChangeNtf;
1645
1646/// Definition for Disassociation request
1647typedef
1648#ifdef WLAN_SOFTAP_FEATURE
1649__ani_attr_pre_packed
1650#endif
1651struct sSirSmeDisassocReq
1652{
1653 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1654 tANI_U16 length;
1655 tANI_U8 sessionId; // Session ID
1656 tANI_U16 transactionId; // Transaction ID for cmd
1657 tSirMacAddr bssId; // Peer BSSID
1658 tSirMacAddr peerMacAddr;
1659 tANI_U16 reasonCode;
1660 tANI_U8 doNotSendOverTheAir; //This flag tells LIM whether to send the disassoc OTA or not
1661 //This will be set in while handing off from one AP to other
1662#if (WNI_POLARIS_FW_PRODUCT == AP)
1663 tANI_U16 aid;
1664#if (WNI_POLARIS_FW_PACKAGE == ADVANCED)
1665 tANI_U16 seqNum;
1666#endif
1667#endif
1668}
1669#ifdef WLAN_SOFTAP_FEATURE
1670__ani_attr_packed
1671#endif
1672tSirSmeDisassocReq, *tpSirSmeDisassocReq;
1673
1674/// Definition for Tkip countermeasures request
1675#ifdef WLAN_SOFTAP_FEATURE
1676typedef __ani_attr_pre_packed struct sSirSmeTkipCntrMeasReq
1677{
1678 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1679 tANI_U16 length;
1680 tANI_U8 sessionId; // Session ID
1681 tANI_U16 transactionId; // Transaction ID for cmd
1682 tSirMacAddr bssId; // Peer BSSID
1683 tANI_BOOLEAN bEnable; // Start/stop countermeasures
1684} __ani_attr_packed tSirSmeTkipCntrMeasReq, *tpSirSmeTkipCntrMeasReq;
1685#endif
1686
1687typedef struct sAni64BitCounters
1688{
1689 tANI_U32 Hi;
1690 tANI_U32 Lo;
1691}tAni64BitCounters, *tpAni64BitCounters;
1692
1693typedef struct sAniSecurityStat
1694{
1695 tAni64BitCounters txBlks;
1696 tAni64BitCounters rxBlks;
1697 tAni64BitCounters formatErrorCnt;
1698 tAni64BitCounters decryptErr;
1699 tAni64BitCounters protExclCnt;
1700 tAni64BitCounters unDecryptableCnt;
1701 tAni64BitCounters decryptOkCnt;
1702
1703}tAniSecurityStat, *tpAniSecurityStat;
1704
1705typedef struct sAniTxRxCounters
1706{
1707 tANI_U32 txFrames; // Incremented for every packet tx
1708 tANI_U32 rxFrames;
1709 tANI_U32 nRcvBytes;
1710 tANI_U32 nXmitBytes;
1711}tAniTxRxCounters, *tpAniTxRxCounters;
1712
1713typedef struct sAniTxRxStats
1714{
1715 tAni64BitCounters txFrames;
1716 tAni64BitCounters rxFrames;
1717 tAni64BitCounters nRcvBytes;
1718 tAni64BitCounters nXmitBytes;
1719
1720}tAniTxRxStats,*tpAniTxRxStats;
1721
1722typedef struct sAniSecStats
1723{
1724 tAniSecurityStat aes;
1725 tAni64BitCounters aesReplays;
1726 tAniSecurityStat tkip;
1727 tAni64BitCounters tkipReplays;
1728 tAni64BitCounters tkipMicError;
1729
1730 tAniSecurityStat wep;
1731#if defined(FEATURE_WLAN_WAPI) && !defined(LIBRA_WAPI_SUPPORT)
1732 tAniSecurityStat wpi;
1733 tAni64BitCounters wpiReplays;
1734 tAni64BitCounters wpiMicError;
1735#endif
1736}tAniSecStats, *tpAniSecStats;
1737
1738#define SIR_MAX_RX_CHAINS 3
1739
1740typedef struct sAniStaStatStruct
1741{
1742 /* following statistic elements till expandPktRxCntLo are not filled with valid data.
1743 * These are kept as it is, since WSM is using this structure.
1744 * These elements can be removed whenever WSM is updated.
1745 * Phystats is used to hold phystats from BD.
1746 */
1747 tANI_U32 sentAesBlksUcastHi;
1748 tANI_U32 sentAesBlksUcastLo;
1749 tANI_U32 recvAesBlksUcastHi;
1750 tANI_U32 recvAesBlksUcastLo;
1751 tANI_U32 aesFormatErrorUcastCnts;
1752 tANI_U32 aesReplaysUcast;
1753 tANI_U32 aesDecryptErrUcast;
1754 tANI_U32 singleRetryPkts;
1755 tANI_U32 failedTxPkts;
1756 tANI_U32 ackTimeouts;
1757 tANI_U32 multiRetryPkts;
1758 tANI_U32 fragTxCntsHi;
1759 tANI_U32 fragTxCntsLo;
1760 tANI_U32 transmittedPktsHi;
1761 tANI_U32 transmittedPktsLo;
1762 tANI_U32 phyStatHi; //These are used to fill in the phystats.
1763 tANI_U32 phyStatLo; //This is only for private use.
1764
1765 tANI_U32 uplinkRssi;
1766 tANI_U32 uplinkSinr;
1767 tANI_U32 uplinkRate;
1768 tANI_U32 downlinkRssi;
1769 tANI_U32 downlinkSinr;
1770 tANI_U32 downlinkRate;
1771 tANI_U32 nRcvBytes;
1772 tANI_U32 nXmitBytes;
1773
1774 // titan 3c stats
1775 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1776 tANI_U32 chunksTxCntLo;
1777 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1778 tANI_U32 compPktRxCntLo;
1779 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1780 tANI_U32 expanPktRxCntLo;
1781
1782
1783 /* Following elements are valid and filled in correctly. They have valid values.
1784 */
1785
1786 //Unicast frames and bytes.
1787 tAniTxRxStats ucStats;
1788
1789 //Broadcast frames and bytes.
1790 tAniTxRxStats bcStats;
1791
1792 //Multicast frames and bytes.
1793 tAniTxRxStats mcStats;
1794
1795 tANI_U32 currentTxRate;
1796 tANI_U32 currentRxRate; //Rate in 100Kbps
1797
1798 tANI_U32 maxTxRate;
1799 tANI_U32 maxRxRate;
1800
1801 tANI_S8 rssi[SIR_MAX_RX_CHAINS];
1802
1803
1804 tAniSecStats securityStats;
1805
1806 tANI_U8 currentRxRateIdx; //This the softmac rate Index.
1807 tANI_U8 currentTxRateIdx;
1808
1809} tAniStaStatStruct, *tpAniStaStatStruct;
1810
1811//Statistics that are not maintained per stations.
1812typedef struct sAniGlobalStatStruct
1813{
1814 tAni64BitCounters txError;
1815 tAni64BitCounters rxError;
1816 tAni64BitCounters rxDropNoBuffer;
1817 tAni64BitCounters rxDropDup;
1818 tAni64BitCounters rxCRCError;
1819
1820 tAni64BitCounters singleRetryPkts;
1821 tAni64BitCounters failedTxPkts;
1822 tAni64BitCounters ackTimeouts;
1823 tAni64BitCounters multiRetryPkts;
1824 tAni64BitCounters fragTxCnts;
1825 tAni64BitCounters fragRxCnts;
1826
1827 tAni64BitCounters txRTSSuccess;
1828 tAni64BitCounters txCTSSuccess;
1829 tAni64BitCounters rxRTSSuccess;
1830 tAni64BitCounters rxCTSSuccess;
1831
1832 tAniSecStats securityStats;
1833
1834 tAniTxRxStats mcStats;
1835 tAniTxRxStats bcStats;
1836
1837}tAniGlobalStatStruct,*tpAniGlobalStatStruct;
1838
1839typedef enum sPacketType
1840{
1841 ePACKET_TYPE_UNKNOWN,
1842 ePACKET_TYPE_11A,
1843 ePACKET_TYPE_11G,
1844 ePACKET_TYPE_11B,
1845 ePACKET_TYPE_11N
1846
1847}tPacketType, *tpPacketType;
1848
1849typedef struct sAniStatSummaryStruct
1850{
1851 tAniTxRxStats uc; //Unicast counters.
1852 tAniTxRxStats bc; //Broadcast counters.
1853 tAniTxRxStats mc; //Multicast counters.
1854 tAni64BitCounters txError;
1855 tAni64BitCounters rxError;
1856 tANI_S8 rssi[SIR_MAX_RX_CHAINS]; //For each chain.
1857 tANI_U32 rxRate; // Rx rate of the last received packet.
1858 tANI_U32 txRate;
1859 tANI_U16 rxMCSId; //MCS index is valid only when packet type is ePACKET_TYPE_11N
1860 tANI_U16 txMCSId;
1861 tPacketType rxPacketType;
1862 tPacketType txPacketType;
1863 tSirMacAddr macAddr; //Mac Address of the station from which above RSSI and rate is from.
1864}tAniStatSummaryStruct,*tpAniStatSummaryStruct;
1865
1866#if (WNI_POLARIS_FW_PRODUCT == WLAN_STA)
1867//structure for stats that may be reset, like the ones in sta descriptor
1868//The stats are saved into here before reset. It should be tANI_U32 aligned.
1869typedef struct _sPermStaStats
1870{
1871 //tANI_U32 sentAesBlksUcastHi;
1872 //tANI_U32 sentAesBlksUcastLo;
1873 //tANI_U32 recvAesBlksUcastHi;
1874 //tANI_U32 recvAesBlksUcastLo;
1875 tANI_U32 aesFormatErrorUcastCnts;
1876 tANI_U32 aesReplaysUcast;
1877 tANI_U32 aesDecryptErrUcast;
1878 tANI_U32 singleRetryPkts;
1879 tANI_U32 failedTxPkts;
1880 tANI_U32 ackTimeouts;
1881 tANI_U32 multiRetryPkts;
1882 tANI_U32 fragTxCntsHi;
1883 tANI_U32 fragTxCntsLo;
1884 tANI_U32 transmittedPktsHi;
1885 tANI_U32 transmittedPktsLo;
1886
1887 // titan 3c stats
1888 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1889 tANI_U32 chunksTxCntLo;
1890 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1891 tANI_U32 compPktRxCntLo;
1892 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1893 tANI_U32 expanPktRxCntLo;
1894}tPermanentStaStats;
1895
1896#endif//#if (WNI_POLARIS_FW_PRODUCT == WLAN_STA)
1897
1898
1899
1900/// Definition for Disassociation response
1901typedef struct sSirSmeDisassocRsp
1902{
1903 tANI_U16 messageType; // eWNI_SME_DISASSOC_RSP
1904 tANI_U16 length;
1905 tANI_U8 sessionId; // Session ID
1906 tANI_U16 transactionId; // Transaction ID for cmd
1907 tSirResultCodes statusCode;
1908 tSirMacAddr peerMacAddr;
1909#if (WNI_POLARIS_FW_PRODUCT == AP)
1910 tANI_U16 aid;
1911#endif
1912 tAniStaStatStruct perStaStats; // STA stats
1913#ifdef WLAN_SOFTAP_FEATURE
1914 tANI_U16 staId;
1915#endif
1916}
1917#ifdef WLAN_SOFTAP_FEATURE
1918__ani_attr_packed
1919#endif
1920 tSirSmeDisassocRsp, *tpSirSmeDisassocRsp;
1921
1922/// Definition for Disassociation indication from peer
1923typedef struct sSirSmeDisassocInd
1924{
1925 tANI_U16 messageType; // eWNI_SME_DISASSOC_IND
1926 tANI_U16 length;
1927 tANI_U8 sessionId; // Session Identifier
1928 tANI_U16 transactionId; // Transaction Identifier with PE
1929 tSirResultCodes statusCode;
1930 tSirMacAddr bssId;
1931 tSirMacAddr peerMacAddr;
1932#if (WNI_POLARIS_FW_PRODUCT == AP)
1933 tANI_U16 aid;
1934#endif
1935 tAniStaStatStruct perStaStats; // STA stats
1936#ifdef WLAN_SOFTAP_FEATURE
1937 tANI_U16 staId;
1938#endif
Mohit Khanna99d5fd02012-09-11 14:51:20 -07001939 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001940} tSirSmeDisassocInd, *tpSirSmeDisassocInd;
1941
1942/// Definition for Disassociation confirm
1943/// MAC --->
1944typedef struct sSirSmeDisassocCnf
1945{
1946 tANI_U16 messageType; // eWNI_SME_DISASSOC_CNF
1947 tANI_U16 length;
1948 tSirResultCodes statusCode;
1949 tSirMacAddr bssId;
1950 tSirMacAddr peerMacAddr;
1951#if (WNI_POLARIS_FW_PRODUCT == AP)
1952 tANI_U16 aid;
1953#endif
1954} tSirSmeDisassocCnf, *tpSirSmeDisassocCnf;
1955
1956/// Definition for Deauthetication request
1957typedef struct sSirSmeDeauthReq
1958{
1959 tANI_U16 messageType; // eWNI_SME_DEAUTH_REQ
1960 tANI_U16 length;
1961 tANI_U8 sessionId; // Session ID
1962 tANI_U16 transactionId; // Transaction ID for cmd
1963 tSirMacAddr bssId; // AP BSSID
1964 tSirMacAddr peerMacAddr;
1965 tANI_U16 reasonCode;
1966#if (WNI_POLARIS_FW_PRODUCT == AP)
1967 tANI_U16 aid;
1968#endif
1969} tSirSmeDeauthReq, *tpSirSmeDeauthReq;
1970
1971/// Definition for Deauthetication response
1972typedef struct sSirSmeDeauthRsp
1973{
1974 tANI_U16 messageType; // eWNI_SME_DEAUTH_RSP
1975 tANI_U16 length;
1976 tANI_U8 sessionId; // Session ID
1977 tANI_U16 transactionId; // Transaction ID for cmd
1978 tSirResultCodes statusCode;
1979 tSirMacAddr peerMacAddr;
1980#if (WNI_POLARIS_FW_PRODUCT == AP)
1981 tANI_U16 aid;
1982#endif
1983} tSirSmeDeauthRsp, *tpSirSmeDeauthRsp;
1984
1985/// Definition for Deauthetication indication from peer
1986typedef struct sSirSmeDeauthInd
1987{
1988 tANI_U16 messageType; // eWNI_SME_DEAUTH_IND
1989 tANI_U16 length;
1990 tANI_U8 sessionId; //Added for BT-AMP
1991 tANI_U16 transactionId; //Added for BT-AMP
1992 tSirResultCodes statusCode;
1993 tSirMacAddr bssId;// AP BSSID
1994 tSirMacAddr peerMacAddr;
1995#if (WNI_POLARIS_FW_PRODUCT == AP)
1996 tANI_U16 aid;
1997#endif
1998
1999#ifdef WLAN_SOFTAP_FEATURE
2000 tANI_U16 staId;
2001#endif
Mohit Khanna99d5fd02012-09-11 14:51:20 -07002002 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07002003} tSirSmeDeauthInd, *tpSirSmeDeauthInd;
2004
2005/// Definition for Deauthentication confirm
2006/// MAC --->
2007typedef struct sSirSmeDeauthCnf
2008{
2009 tANI_U16 messageType; // eWNI_SME_DEAUTH_CNF
2010 tANI_U16 length;
2011 tSirResultCodes statusCode;
2012 tSirMacAddr bssId; // AP BSSID
2013 tSirMacAddr peerMacAddr;
2014#if (WNI_POLARIS_FW_PRODUCT == AP)
2015 tANI_U16 aid;
2016#endif
2017} tSirSmeDeauthCnf, *tpSirSmeDeauthCnf;
2018
2019/// Definition for stop BSS request message
2020typedef struct sSirSmeStopBssReq
2021{
2022 tANI_U16 messageType; // eWNI_SME_STOP_BSS_REQ
2023 tANI_U16 length;
2024 tANI_U8 sessionId; //Session ID
2025 tANI_U16 transactionId; //tranSaction ID for cmd
2026 tSirResultCodes reasonCode;
2027 tSirMacAddr bssId; //Self BSSID
2028} tSirSmeStopBssReq, *tpSirSmeStopBssReq;
2029
2030/// Definition for stop BSS response message
2031typedef struct sSirSmeStopBssRsp
2032{
2033 tANI_U16 messageType; // eWNI_SME_STOP_BSS_RSP
2034 tANI_U16 length;
2035 tSirResultCodes statusCode;
2036 tANI_U8 sessionId; // Session ID
2037 tANI_U16 transactionId; // Transaction ID for cmd
2038} tSirSmeStopBssRsp, *tpSirSmeStopBssRsp;
2039
2040#if (WNI_POLARIS_FW_PACKAGE == ADVANCED) && (WNI_POLARIS_FW_PRODUCT == AP)
2041/// Definition for Channel Select request
2042/// ---> MAC
2043typedef struct sSirSmeSelectChannelReq
2044{
2045 tANI_U16 messageType; // eWNI_SME_SELECT_CHL_REQ
2046 tANI_U16 length;
2047 tANI_U16 transactionId; // Transaction ID for cmd
2048 tANI_U8 channelId;
2049} tSirSmeSelectChannelReq, *tpSirSmeSelectChannelReq;
2050
2051/// Definition for Channel Select response
2052/// MAC --->
2053typedef struct sSirSmeSelectChannelRsp
2054{
2055 tANI_U16 messageType; // eWNI_SME_SELECT_CHL_RSP
2056 tANI_U16 length;
2057 tSirResultCodes statusCode;
2058 tANI_U16 transactionId; // Transaction ID for cmd
2059} tSirSmeSelectChannelRsp, *tpSirSmeSelectChannelRsp;
2060
2061/// Definition for Channel Switch request
2062/// ---> MAC
2063typedef struct sSirSmeSwitchChannelReq
2064{
2065 // eWNI_SME_SWITCH_CHL_REQ,
2066 // eWNI_SME_SWITCH_CHL_CB_PRIMARY_REQ,
2067 // eWNI_SME_SWITCH_CHL_CB_SECONDARY_REQ
2068 tANI_U16 messageType;
2069
2070 tANI_U16 length;
2071 tANI_U16 transactionId; // Transaction ID for cmd
2072 tANI_U8 channelId;
2073 //
2074 // The cbMode field is applicable to TITAN only.
2075 // This indicates as to how the CB secondary
2076 // channel will be used (if at all).
2077 //
2078 // In a non-CB environment, with 11H enabled,
2079 // this field will be ignored
2080 //
Jeff Johnsone7245742012-09-05 17:12:55 -07002081 ePhyChanBondState cbMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07002082
2083 // dtimFactor indicates the number of DTIM
2084 // Beacon before LIM switches channel
2085 tANI_U32 dtimFactor;
2086} tSirSmeSwitchChannelReq, *tpSirSmeSwitchChannelReq;
2087
2088/// Definition for Channel Switch response
2089/// MAC --->
2090typedef struct sSirSmeSwitchChannelRsp
2091{
2092 tANI_U16 messageType; // eWNI_SME_SWITCH_CHL_RSP
2093 tANI_U16 length;
2094 tSirResultCodes statusCode;
2095 tANI_U16 transactionId; // Transaction ID for cmd
2096} tSirSmeSwitchChannelRsp, *tpSirSmeSwitchChannelRsp;
2097
2098#endif
2099
2100
2101/// Definition for Channel Switch indication for station
2102/// MAC --->
2103typedef struct sSirSmeSwitchChannelInd
2104{
2105 tANI_U16 messageType; // eWNI_SME_SWITCH_CHL_REQ
2106 tANI_U16 length;
2107 tANI_U8 sessionId;
2108 tANI_U16 newChannelId;
2109 tSirMacAddr bssId; // BSSID
2110} tSirSmeSwitchChannelInd, *tpSirSmeSwitchChannelInd;
2111
2112/// Definition for ULA complete indication message
2113typedef struct sirUlaCompleteInd
2114{
2115 tANI_U16 messageType; // eWNI_ULA_COMPLETE_IND
2116 tANI_U16 length;
2117 tSirResultCodes statusCode;
2118 tSirMacAddr peerMacAddr;
2119#if (WNI_POLARIS_FW_PRODUCT == AP)
2120 tANI_U16 aid;
2121#endif
2122} tSirUlaCompleteInd, *tpSirUlaCompleteInd;
2123
2124/// Definition for ULA complete confirmation message
2125typedef struct sirUlaCompleteCnf
2126{
2127 tANI_U16 messageType; // eWNI_ULA_COMPLETE_CNF
2128 tANI_U16 length;
2129 tSirResultCodes statusCode;
2130 tSirMacAddr peerMacAddr;
2131#if (WNI_POLARIS_FW_PRODUCT == AP)
2132 tANI_U16 aid;
2133#endif
2134} tSirUlaCompleteCnf, *tpSirUlaCompleteCnf;
2135
2136/// Definition for Neighbor BSS indication
2137/// MAC --->
2138/// MAC reports this each time a new I/BSS is detected
2139typedef struct sSirSmeNeighborBssInd
2140{
2141 tANI_U16 messageType; // eWNI_SME_NEIGHBOR_BSS_IND
2142 tANI_U16 length;
2143 tANI_U8 sessionId;
2144#if (WNI_POLARIS_FW_PACKAGE == ADVANCED) && (WNI_POLARIS_FW_PRODUCT == AP)
2145 tSirNeighborBssInfo neighborInfo;
2146 tSirWdsInfo wdsInfo;
2147#else
2148 tSirBssDescription bssDescription[1];
2149#endif
2150} tSirSmeNeighborBssInd, *tpSirSmeNeighborBssInd;
2151
2152/// Definition for MIC failure indication
2153/// MAC --->
2154/// MAC reports this each time a MIC failure occures on Rx TKIP packet
2155typedef struct sSirSmeMicFailureInd
2156{
2157 tANI_U16 messageType; // eWNI_SME_MIC_FAILURE_IND
2158 tANI_U16 length;
2159 tANI_U8 sessionId;
2160 tSirMacAddr bssId; // BSSID
2161 tSirMicFailureInfo info;
2162} tSirSmeMicFailureInd, *tpSirSmeMicFailureInd;
2163
2164
2165/// Definition for Set Context request
2166/// ---> MAC
2167typedef struct sSirSmeSetContextReq
2168{
2169 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_REQ
2170 tANI_U16 length;
2171 tANI_U8 sessionId; //Session ID
2172 tANI_U16 transactionId; //Transaction ID for cmd
2173 tSirMacAddr peerMacAddr;
2174 tSirMacAddr bssId; // BSSID
2175#if (WNI_POLARIS_FW_PRODUCT == AP)
2176 tANI_U16 aid;
2177#endif
2178 // TBD Following QOS fields to be uncommented
2179 //tAniBool qosInfoPresent;
2180 //tSirQos qos;
2181 tSirKeyMaterial keyMaterial;
2182} tSirSmeSetContextReq, *tpSirSmeSetContextReq;
2183
2184/// Definition for Set Context response
2185/// MAC --->
2186typedef struct sSirSmeSetContextRsp
2187{
2188 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_RSP
2189 tANI_U16 length;
2190 tANI_U8 sessionId; // Session ID
2191 tANI_U16 transactionId; // Transaction ID for cmd
2192 tSirResultCodes statusCode;
2193 tSirMacAddr peerMacAddr;
2194#if (WNI_POLARIS_FW_PRODUCT == AP)
2195 tANI_U16 aid;
2196#endif
2197} tSirSmeSetContextRsp, *tpSirSmeSetContextRsp;
2198
2199/// Definition for Remove Key Context request
2200/// ---> MAC
2201typedef struct sSirSmeRemoveKeyReq
2202{
2203 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_REQ
2204 tANI_U16 length;
2205 tANI_U8 sessionId; // Session ID
2206 tANI_U16 transactionId; // Transaction ID for cmd
2207 tSirMacAddr bssId; // BSSID
2208 tSirMacAddr peerMacAddr;
2209#if (WNI_POLARIS_FW_PRODUCT == AP)
2210 tANI_U16 aid;
2211#endif
2212 tANI_U8 edType;
2213 tANI_U8 wepType;
2214 tANI_U8 keyId;
2215 tANI_BOOLEAN unicast;
2216} tSirSmeRemoveKeyReq, *tpSirSmeRemoveKeyReq;
2217
2218/// Definition for Remove Key Context response
2219/// MAC --->
2220typedef struct sSirSmeRemoveKeyRsp
2221{
2222 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_RSP
2223 tANI_U16 length;
2224 tANI_U8 sessionId; // Session ID
2225 tANI_U16 transactionId; // Transaction ID for cmd
2226 tSirResultCodes statusCode;
2227 tSirMacAddr peerMacAddr;
2228#if (WNI_POLARIS_FW_PRODUCT == AP)
2229 tANI_U16 aid;
2230#endif
2231} tSirSmeRemoveKeyRsp, *tpSirSmeRemoveKeyRsp;
2232
2233/// Definition for Set Power request
2234/// ---> MAC
2235typedef struct sSirSmeSetPowerReq
2236{
2237 tANI_U16 messageType; // eWNI_SME_SET_POWER_REQ
2238 tANI_U16 length;
2239 tANI_U16 transactionId; // Transaction ID for cmd
2240 tANI_S8 powerLevel;
2241} tSirSmeSetPowerReq, *tpSirSmeSetPowerReq;
2242
2243/// Definition for Set Power response
2244/// MAC --->
2245typedef struct sSirSmeSetPowerRsp
2246{
2247 tANI_U16 messageType; // eWNI_SME_SET_POWER_RSP
2248 tANI_U16 length;
2249 tSirResultCodes statusCode;
2250 tANI_U16 transactionId; // Transaction ID for cmd
2251} tSirSmeSetPowerRsp, *tpSirSmeSetPowerRsp;
2252
2253#if (WNI_POLARIS_FW_PACKAGE == ADVANCED) && (WNI_POLARIS_FW_PRODUCT == AP)
2254/// Definition for Client Side Load Balancing request
2255/// ---> MAC
2256typedef struct sSirSmeSetClientLoadBalanceReq
2257{
2258 tANI_U16 messageType; // eWNI_SME_CLIENT_LOAD_BALANCE_REQ
2259 tANI_U16 length;
2260 tANI_U16 transactionId; // Transaction ID for cmd
2261 tSirMacAddr alternateBssId;
2262 tANI_U8 alternateChannelId;
2263 tANI_U8 numberStas;
2264} tSirSmeClientLoadBalanceReq, *tpSirSmeClientLoadBalanceReq;
2265
2266/// Definition for Client Side Load Balancing response
2267/// MAC --->
2268typedef struct sSirSmeSetClientLoadBalanceRsp
2269{
2270 tANI_U16 messageType; // eWNI_SME_CLIENT_LOAD_BALANCE_RSP
2271 tANI_U16 length;
2272 tANI_U16 transactionId; // Transaction ID for cmd
2273 tSirResultCodes statusCode;
2274} tSirSmeClientLoadBalanceRsp, *tpSirSmeClientLoadBalanceRsp;
2275#endif
2276
2277/// Definition for Link Test Start response
2278/// MAC --->
2279typedef struct sSirSmeLinkTestStartRsp
2280{
2281 tANI_U16 messageType; // eWNI_SME_LINK_TEST_START_RSP
2282 tANI_U16 length;
2283 tSirMacAddr peerMacAddr;
2284 tSirResultCodes statusCode;
2285#if (WNI_POLARIS_FW_PRODUCT == AP)
2286 tANI_U16 aid;
2287#endif
2288} tSirSmeLinkTestStartRsp, *tpSirSmeLinkTestStartRsp;
2289
2290/// Definition for Link Test Stop response
2291/// WSM ---> MAC
2292typedef struct sSirSmeLinkTestStopRsp
2293{
2294 tANI_U16 messageType; // eWNI_SME_LINK_TEST_STOP_RSP
2295 tANI_U16 length;
2296 tSirMacAddr peerMacAddr;
2297 tSirResultCodes statusCode;
2298#if (WNI_POLARIS_FW_PRODUCT == AP)
2299 tANI_U16 aid;
2300#endif
2301} tSirSmeLinkTestStopRsp, *tpSirSmeLinkTestStopRsp;
2302
2303/// Definition for kick starting DFS measurements
2304typedef struct sSirSmeDFSreq
2305{
2306 tANI_U16 messageType; // eWNI_SME_DFS_REQ
2307 tANI_U16 length;
2308 tANI_U16 transactionId; // Transaction ID for cmd
2309} tSirSmeDFSrequest, *tpSirSmeDFSrequest;
2310
2311/// Definition for response message to previously
2312/// issued DFS request
2313typedef struct sSirSmeDFSrsp
2314{
2315 tANI_U16 messageType; // eWNI_SME_DFS_RSP
2316 tANI_U16 length;
2317 tSirResultCodes statusCode;
2318 tANI_U16 transactionId; // Transaction ID for cmd
2319 tANI_U32 dfsReport[1];
2320} tSirSmeDFSrsp, *tpSirSmeDFSrsp;
2321
2322/// Statistic definitions
2323//=============================================================
2324// Per STA statistic structure; This same struct will be used for Aggregate
2325// STA stats as well.
2326
2327// Clear radio stats and clear per sta stats
2328typedef enum
2329{
2330 eANI_CLEAR_ALL_STATS, // Clears all stats
2331 eANI_CLEAR_RX_STATS, // Clears RX statistics of the radio interface
2332 eANI_CLEAR_TX_STATS, // Clears TX statistics of the radio interface
2333 eANI_CLEAR_RADIO_STATS, // Clears all the radio stats
2334 eANI_CLEAR_PER_STA_STATS, // Clears Per STA stats
2335 eANI_CLEAR_AGGR_PER_STA_STATS, // Clears aggregate stats
2336
2337 // Used to distinguish between per sta to security stats.
2338 // Used only by AP, FW just returns the same parameter as it received.
2339 eANI_LINK_STATS, // Get Per STA stats
2340 eANI_SECURITY_STATS, // Get Per STA security stats
2341
2342 eANI_CLEAR_STAT_TYPES_END
2343} tAniStatSubTypes;
2344
2345typedef struct sAniTxCtrs
2346{
2347 // add the rate counters here
2348 tANI_U32 tx1Mbps;
2349 tANI_U32 tx2Mbps;
2350 tANI_U32 tx5_5Mbps;
2351 tANI_U32 tx6Mbps;
2352 tANI_U32 tx9Mbps;
2353 tANI_U32 tx11Mbps;
2354 tANI_U32 tx12Mbps;
2355 tANI_U32 tx18Mbps;
2356 tANI_U32 tx24Mbps;
2357 tANI_U32 tx36Mbps;
2358 tANI_U32 tx48Mbps;
2359 tANI_U32 tx54Mbps;
2360 tANI_U32 tx72Mbps;
2361 tANI_U32 tx96Mbps;
2362 tANI_U32 tx108Mbps;
2363
2364 // tx path radio counts
2365 tANI_U32 txFragHi;
2366 tANI_U32 txFragLo;
2367 tANI_U32 txFrameHi;
2368 tANI_U32 txFrameLo;
2369 tANI_U32 txMulticastFrameHi;
2370 tANI_U32 txMulticastFrameLo;
2371 tANI_U32 txFailedHi;
2372 tANI_U32 txFailedLo;
2373 tANI_U32 multipleRetryHi;
2374 tANI_U32 multipleRetryLo;
2375 tANI_U32 singleRetryHi;
2376 tANI_U32 singleRetryLo;
2377 tANI_U32 ackFailureHi;
2378 tANI_U32 ackFailureLo;
2379 tANI_U32 xmitBeacons;
2380
2381 // titan 3c stats
2382 tANI_U32 txCbEscPktCntHi; // Total Number of Channel Bonded/Escort Packet Transmitted
2383 tANI_U32 txCbEscPktCntLo;
2384 tANI_U32 txChunksCntHi; // Total Number of Chunks Transmitted
2385 tANI_U32 txChunksCntLo;
2386 tANI_U32 txCompPktCntHi; // Total Number of Compresssed Packet Transmitted
2387 tANI_U32 txCompPktCntLo;
2388 tANI_U32 tx50PerCompPktCntHi; // Total Number of Packets with 50% or more compression
2389 tANI_U32 tx50PerCompPktCntLo;
2390 tANI_U32 txExpanPktCntHi; // Total Number of Packets Transmitted that got expanded
2391 tANI_U32 txExpanPktCntLo;
2392} tAniTxCtrs, *tpAniTxCtrs;
2393
2394typedef struct sAniRxCtrs
2395{
2396 // receive frame rate counters
2397 tANI_U32 rx1Mbps;
2398 tANI_U32 rx2Mbps;
2399 tANI_U32 rx5_5Mbps;
2400 tANI_U32 rx6Mbps;
2401 tANI_U32 rx9Mbps;
2402 tANI_U32 rx11Mbps;
2403 tANI_U32 rx12Mbps;
2404 tANI_U32 rx18Mbps;
2405 tANI_U32 rx24Mbps;
2406 tANI_U32 rx36Mbps;
2407 tANI_U32 rx48Mbps;
2408 tANI_U32 rx54Mbps;
2409 tANI_U32 rx72Mbps;
2410 tANI_U32 rx96Mbps;
2411 tANI_U32 rx108Mbps;
2412
2413 // receive size counters; 'Lte' = Less than or equal to
2414 tANI_U32 rxLte64;
2415 tANI_U32 rxLte128Gt64;
2416 tANI_U32 rxLte256Gt128;
2417 tANI_U32 rxLte512Gt256;
2418 tANI_U32 rxLte1kGt512;
2419 tANI_U32 rxLte1518Gt1k;
2420 tANI_U32 rxLte2kGt1518;
2421 tANI_U32 rxLte4kGt2k;
2422
2423 // rx radio stats
2424 tANI_U32 rxFrag;
2425 tANI_U32 rxFrame;
2426 tANI_U32 fcsError;
2427 tANI_U32 rxMulticast;
2428 tANI_U32 duplicate;
2429 tANI_U32 rtsSuccess;
2430 tANI_U32 rtsFailed;
2431 tANI_U32 wepUndecryptables;
2432 tANI_U32 drops;
2433 tANI_U32 aesFormatErrorUcastCnts;
2434 tANI_U32 aesReplaysUcast;
2435 tANI_U32 aesDecryptErrUcast;
2436
2437 // titan 3c stats
2438 tANI_U32 rxDecompPktCntHi; // Total Number of Packets that got decompressed
2439 tANI_U32 rxDecompPktCntLo;
2440 tANI_U32 rxCompPktCntHi; // Total Number of Packets received that were actually compressed
2441 tANI_U32 rxCompPktCntLo;
2442 tANI_U32 rxExpanPktCntHi; // Total Number of Packets received that got expanded
2443 tANI_U32 rxExpanPktCntLo;
2444} tAniRxCtrs, *tpAniRxCtrs;
2445
2446// Radio stats
2447typedef struct sAniRadioStats
2448{
2449 tAniTxCtrs tx;
2450 tAniRxCtrs rx;
2451} tAniRadioStats, *tpAniRadioStats;
2452
2453// Get Radio Stats request structure
2454// This structure shall be used for both Radio stats and Aggregate stats
2455// A valid request must contain entire structure with/without valid fields.
2456// Based on the request type, the valid fields will be checked.
2457typedef struct sAniGetStatsReq
2458{
2459 // Common for all types are requests
2460 tANI_U16 msgType; // message type is same as the request type
2461 tANI_U16 msgLen; // length of the entire request
2462 tANI_U8 sessionId; //Session ID
2463 tANI_U16 transactionId;
2464 tSirMacAddr bssId; //BSSID
2465 // only used for clear stats and per sta stats clear
2466 tAniStatSubTypes stat; // Clears the stats of the described types.
2467 tANI_U32 staId; // Per STA stats request must contain valid
2468 // values
2469 tANI_U8 macAddr[6];
2470} tAniGetStatsReq, *tpAniGetStatsReq;
2471
2472// Get Radio Stats response struct
2473typedef struct sAniGetRadioStatsRsp
2474{
2475 tANI_U16 type; // message type is same as the request type
2476 tANI_U16 msgLen; // length of the entire request
2477 tANI_U32 rc;
2478 tANI_U16 transactionId;
2479 tAniRadioStats radio;
2480} tAniGetRadioStatsRsp, *tpAniGetRadioStatsRsp;
2481
2482// Per Sta stats response struct
2483typedef struct sAniGetPerStaStatsRsp
2484{
2485 tANI_U16 type; // message type is same as the request type
2486 tANI_U16 msgLen; // length of the entire request
2487 tANI_U32 rc;
2488 tANI_U16 transactionId;
2489 tAniStatSubTypes stat; // Sub type needed by AP. Returns the same value
2490 tAniStaStatStruct sta;
2491 tANI_U32 staId;
2492 tANI_U8 macAddr[6];
2493} tAniGetPerStaStatsRsp, *tpAniGetPerStaStatsRsp;
2494
2495// Get Aggregate stats
2496typedef struct sAniGetAggrStaStatsRsp
2497{
2498 tANI_U16 type; // message type is same as the request type
2499 tANI_U16 msgLen; // length of the entire request
2500 tANI_U32 rc;
2501 tANI_U16 transactionId;
2502 tAniStaStatStruct sta;
2503} tAniGetAggrStaStatsRsp, *tpAniGetAggrStaStatsRsp;
2504
2505// Clear stats request and response structure. 'rc' field is unused in
2506// request and this field is used in response field.
2507typedef struct sAniClearStatsRsp
2508{
2509 tANI_U16 type; // message type is same as the request type
2510 tANI_U16 msgLen; // length of the entire request
2511 tANI_U32 rc; // return code - will be filled by FW on
2512 // response.
2513 // Same transaction ID will be returned by the FW
2514 tANI_U16 transactionId;
2515 tAniStatSubTypes stat; // Clears the stats of the described types.
2516 tANI_U32 staId; // Applicable only to PER STA stats clearing
2517 tANI_U8 macAddr[6]; // Applicable only to PER STA stats clearing
2518} tAniClearStatsRsp, *tpAniClearStatsRsp;
2519
2520typedef struct sAniGetGlobalStatsRsp
2521{
2522 tANI_U16 type; // message type is same as the request type
2523 tANI_U16 msgLen; // length of the entire request
2524 tANI_U32 rc;
2525 tANI_U16 transactionId;
2526 tAniGlobalStatStruct global;
2527} tAniGetGlobalStatsRsp, *tpAniGetGlobalStatsRsp;
2528
2529typedef struct sAniGetStatSummaryRsp
2530{
2531 tANI_U16 type; // message type is same as the request type
2532 tANI_U16 msgLen; // length of the entire request --Why?
2533 tANI_U32 rc;
2534 tANI_U16 transactionId;
2535 tAniStatSummaryStruct stat;
2536} tAniGetStatSummaryRsp, *tpAniGetStatSummaryRsp;
2537
2538//***************************************************************
2539
2540
2541/*******************PE Statistics*************************/
2542typedef enum
2543{
2544 PE_SUMMARY_STATS_INFO = 0x00000001,
2545 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
2546 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
2547 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
2548 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
2549 PE_PER_STA_STATS_INFO = 0x00000020
2550}ePEStatsMask;
2551
2552/*
2553 * tpAniGetPEStatsReq is tied to
2554 * for SME ==> PE eWNI_SME_GET_STATISTICS_REQ msgId and
2555 * for PE ==> HAL SIR_HAL_GET_STATISTICS_REQ msgId
2556 */
2557typedef struct sAniGetPEStatsReq
2558{
2559 // Common for all types are requests
2560 tANI_U16 msgType; // message type is same as the request type
2561 tANI_U16 msgLen; // length of the entire request
2562 tANI_U32 staId; // Per STA stats request must contain valid
2563 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2564} tAniGetPEStatsReq, *tpAniGetPEStatsReq;
2565
2566/*
2567 * tpAniGetPEStatsRsp is tied to
2568 * for PE ==> SME eWNI_SME_GET_STATISTICS_RSP msgId and
2569 * for HAL ==> PE SIR_HAL_GET_STATISTICS_RSP msgId
2570 */
2571typedef struct sAniGetPEStatsRsp
2572{
2573 // Common for all types are responses
2574 tANI_U16 msgType; // message type is same as the request type
2575 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2576 tANI_U8 sessionId;
2577 tANI_U32 rc; //success/failure
2578 tANI_U32 staId; // Per STA stats request must contain valid
2579 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2580/**********************************************************************************************
2581 //void *pStatsBuf;
2582 The Stats buffer starts here and can be an aggregate of more than one statistics
2583 structure depending on statsMask.The void pointer "pStatsBuf" is commented out
2584 intentionally and the src code that uses this structure should take that into account.
2585**********************************************************************************************/
2586} tAniGetPEStatsRsp, *tpAniGetPEStatsRsp;
2587
2588typedef struct sAniGetRssiReq
2589{
2590 // Common for all types are requests
2591 tANI_U16 msgType; // message type is same as the request type
2592 tANI_U16 msgLen; // length of the entire request
2593 tANI_U8 sessionId;
2594 tANI_U8 staId;
2595 void *rssiCallback;
2596 void *pDevContext; //device context
2597 void *pVosContext; //voss context
2598
2599} tAniGetRssiReq, *tpAniGetRssiReq;
2600
2601/* Change country code request MSG structure */
2602typedef struct sAniChangeCountryCodeReq
2603{
2604 // Common for all types are requests
2605 tANI_U16 msgType; // message type is same as the request type
2606 tANI_U16 msgLen; // length of the entire request
2607 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //3 char country code
2608 void *changeCCCallback;
2609 void *pDevContext; //device context
2610 void *pVosContext; //voss context
2611
2612} tAniChangeCountryCodeReq, *tpAniChangeCountryCodeReq;
2613
2614typedef struct sAniSummaryStatsInfo
2615{
2616 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2617 tANI_U32 multiple_retry_cnt[4];//The number of MSDU packets and MMPDU frames per AC that the 802.11
2618 // station successfully transmitted after more than one retransmission attempt
2619
2620 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2621 //(with and without retries, including multi-cast, broadcast)
2622 //tANI_U32 tx_fail_cnt;
2623 //tANI_U32 num_rx_frm_crc_err; //Total number of received frames with CRC Error
2624 //tANI_U32 num_rx_frm_crc_ok; //Total number of successfully received frames with out CRC Error
2625 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2626 //(after appropriate filter rules including multi-cast, broadcast)
2627 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2628 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2629 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2630 tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
2631 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2632 tANI_U32 rx_discard_cnt; //The sum of the receive error count and dropped-receive-buffer error count.
2633 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2634 tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
2635 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2636 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
2637 //to provide this.
2638#if 0
2639 //providing the following stats, in case of wrap around for tx_byte_cnt
2640 tANI_U32 tx_unicast_lower_byte_cnt;
2641 tANI_U32 tx_unicast_upper_byte_cnt;
2642 tANI_U32 tx_multicast_lower_byte_cnt;
2643 tANI_U32 tx_multicast_upper_byte_cnt;
2644 tANI_U32 tx_broadcast_lower_byte_cnt;
2645 tANI_U32 tx_broadcast_upper_byte_cnt;
2646#endif
2647
2648}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2649
2650typedef enum eTxRateInfo
2651{
2652 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2653 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2654 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2655 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2656 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2657} tTxrateinfoflags;
2658
2659typedef struct sAniGlobalClassAStatsInfo
2660{
2661 tANI_U32 rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2662 //or MMPDU frames
2663 tANI_U32 promiscuous_rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2664 //or MMPDU frames when a promiscuous packet filter was enabled
2665 //tANI_U32 rx_fcs_err; //The number of MPDU frames that the 802.11 station received with FCS errors
2666 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2667 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
2668 //to a supported rate and the order shall be the same as the supporteRates parameter.
2669 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2670 //for eg: if it is 10.5dBm, the value would be 105
2671 //tANI_U32 default_pwr; //The nominal transmit level used after normal power on sequence
2672 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2673 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
2674 tANI_U32 tx_rate; //Legacy transmit rate, in units of
2675 //500 kbit/sec, for the most
2676 //recently transmitted frame
2677 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
2678 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2679 //HT40 rates; short and long guard interval
2680
2681}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2682
2683
2684typedef struct sAniGlobalSecurityStats
2685{
2686 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2687 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
2688 //is enabled
2689 tANI_U32 rx_mic_fail_cnt; //The number of received MSDU packets that that the 802.11 station discarded
2690 //because of MIC failures
2691 tANI_U32 tkip_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2692 //because of a TKIP ICV error
2693 tANI_U32 aes_ccmp_format_err; //The number of received MPDU frames that the 802.11 discarded because of an
2694 //invalid AES-CCMP format
2695 tANI_U32 aes_ccmp_replay_cnt; //The number of received MPDU frames that the 802.11 station discarded because of
2696 //the AES-CCMP replay protection procedure
2697 tANI_U32 aes_ccmp_decrpt_err; //The number of received MPDU frames that the 802.11 station discarded because of
2698 //errors detected by the AES-CCMP decryption algorithm
2699 tANI_U32 wep_undecryptable_cnt; //The number of encrypted MPDU frames received for which a WEP decryption key was
2700 //not available on the 802.11 station
2701 tANI_U32 wep_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2702 //because of a WEP ICV error
2703 tANI_U32 rx_decrypt_succ_cnt; //The number of received encrypted packets that the 802.11 station successfully
2704 //decrypted
2705 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2706
2707}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
2708
2709typedef struct sAniGlobalClassBStatsInfo
2710{
2711 tAniGlobalSecurityStats ucStats;
2712 tAniGlobalSecurityStats mcbcStats;
2713}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2714
2715typedef struct sAniGlobalClassCStatsInfo
2716{
2717 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2718 //MAC address in the address 1 field or an A-MSDU frame with a group address in the
2719 //address 1 field
2720 tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
2721 tANI_U32 tx_20_frm_cnt; //This counter shall be incremented when a Frame is transmitted only on the
2722 //primary channel
2723 tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
2724 tANI_U32 rx_mpdu_in_ampdu_cnt; //This counter shall be incremented by the number of MPDUs received in the A-MPDU
2725 //when an A-MPDU is received
2726 tANI_U32 ampdu_delimiter_crc_err;//This counter shall be incremented when an MPDU delimiter has a CRC error when this
2727 //is the first CRC error in the received AMPDU or when the previous delimiter has been
2728 //decoded correctly
2729
2730}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2731
2732typedef struct sAniPerStaStatsInfo
2733{
2734 tANI_U32 tx_frag_cnt[4]; //The number of MPDU frames that the 802.11 station transmitted and acknowledged
2735 //through a received 802.11 ACK frame
2736 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2737 tANI_U32 tx_mpdu_in_ampdu_cnt; //This counter shall increment by the number of MPDUs in the AMPDU when an A-MPDU
2738 //is transmitted
2739
2740}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2741
2742/**********************PE Statistics end*************************/
2743
2744
2745
2746typedef struct sSirRSSIThresholds
2747{
2748#ifdef ANI_BIG_BYTE_ENDIAN
2749 tANI_S8 ucRssiThreshold1 : 8;
2750 tANI_S8 ucRssiThreshold2 : 8;
2751 tANI_S8 ucRssiThreshold3 : 8;
2752 tANI_U8 bRssiThres1PosNotify : 1;
2753 tANI_U8 bRssiThres1NegNotify : 1;
2754 tANI_U8 bRssiThres2PosNotify : 1;
2755 tANI_U8 bRssiThres2NegNotify : 1;
2756 tANI_U8 bRssiThres3PosNotify : 1;
2757 tANI_U8 bRssiThres3NegNotify : 1;
2758 tANI_U8 bReserved10 : 2;
2759#else
2760 tANI_U8 bReserved10 : 2;
2761 tANI_U8 bRssiThres3NegNotify : 1;
2762 tANI_U8 bRssiThres3PosNotify : 1;
2763 tANI_U8 bRssiThres2NegNotify : 1;
2764 tANI_U8 bRssiThres2PosNotify : 1;
2765 tANI_U8 bRssiThres1NegNotify : 1;
2766 tANI_U8 bRssiThres1PosNotify : 1;
2767 tANI_S8 ucRssiThreshold3 : 8;
2768 tANI_S8 ucRssiThreshold2 : 8;
2769 tANI_S8 ucRssiThreshold1 : 8;
2770#endif
2771
2772}tSirRSSIThresholds, *tpSirRSSIThresholds;
2773
2774typedef struct sSirRSSINotification
2775{
2776#ifdef ANI_BIG_BYTE_ENDIAN
2777 tANI_U32 bRssiThres1PosCross : 1;
2778 tANI_U32 bRssiThres1NegCross : 1;
2779 tANI_U32 bRssiThres2PosCross : 1;
2780 tANI_U32 bRssiThres2NegCross : 1;
2781 tANI_U32 bRssiThres3PosCross : 1;
2782 tANI_U32 bRssiThres3NegCross : 1;
2783 tANI_U32 bReserved : 26;
2784#else
2785 tANI_U32 bReserved : 26;
2786 tANI_U32 bRssiThres3NegCross : 1;
2787 tANI_U32 bRssiThres3PosCross : 1;
2788 tANI_U32 bRssiThres2NegCross : 1;
2789 tANI_U32 bRssiThres2PosCross : 1;
2790 tANI_U32 bRssiThres1NegCross : 1;
2791 tANI_U32 bRssiThres1PosCross : 1;
2792#endif
2793
2794}tSirRSSINotification, *tpSirRSSINotification;
2795
2796#ifdef WLAN_FEATURE_P2P
2797typedef struct sSirP2PNoaAttr
2798{
2799#ifdef ANI_BIG_BYTE_ENDIAN
2800 tANI_U32 index :8;
2801 tANI_U32 oppPsFlag :1;
2802 tANI_U32 ctWin :7;
2803 tANI_U32 rsvd1: 16;
2804#else
2805 tANI_U32 rsvd1: 16;
2806 tANI_U32 ctWin :7;
2807 tANI_U32 oppPsFlag :1;
2808 tANI_U32 index :8;
2809#endif
2810
2811#ifdef ANI_BIG_BYTE_ENDIAN
2812 tANI_U32 uNoa1IntervalCnt:8;
2813 tANI_U32 rsvd2:24;
2814#else
2815 tANI_U32 rsvd2:24;
2816 tANI_U32 uNoa1IntervalCnt:8;
2817#endif
2818 tANI_U32 uNoa1Duration;
2819 tANI_U32 uNoa1Interval;
2820 tANI_U32 uNoa1StartTime;
2821
2822#ifdef ANI_BIG_BYTE_ENDIAN
2823 tANI_U32 uNoa2IntervalCnt:8;
2824 tANI_U32 rsvd3:24;
2825#else
2826 tANI_U32 rsvd3:24;
2827 tANI_U32 uNoa2IntervalCnt:8;
2828#endif
2829 tANI_U32 uNoa2Duration;
2830 tANI_U32 uNoa2Interval;
2831 tANI_U32 uNoa2StartTime;
2832} tSirP2PNoaAttr, *tpSirP2PNoaAttr;
2833#endif
2834
2835typedef __ani_attr_pre_packed struct sSirTclasInfo
2836{
2837 tSirMacTclasIE tclas;
2838 tANI_U8 version; // applies only for classifier type ip
2839 __ani_attr_pre_packed union {
2840 tSirMacTclasParamEthernet eth;
2841 tSirMacTclasParamIPv4 ipv4;
2842 tSirMacTclasParamIPv6 ipv6;
2843 tSirMacTclasParam8021dq t8021dq;
2844 }__ani_attr_packed tclasParams;
2845} __ani_attr_packed tSirTclasInfo;
2846
2847typedef struct sSirAddtsReqInfo
2848{
2849 tANI_U8 dialogToken;
2850 tSirMacTspecIE tspec;
2851
2852 tANI_U8 numTclas; // number of Tclas elements
2853 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2854 tANI_U8 tclasProc;
2855#ifdef FEATURE_WLAN_CCX
2856 tSirMacCCXTSRSIE tsrsIE;
2857 tANI_U8 tsrsPresent:1;
2858#endif
2859 tANI_U8 wmeTspecPresent:1;
2860 tANI_U8 wsmTspecPresent:1;
2861 tANI_U8 lleTspecPresent:1;
2862 tANI_U8 tclasProcPresent:1;
2863} tSirAddtsReqInfo, *tpSirAddtsReqInfo;
2864
2865typedef struct sSirAddtsRspInfo
2866{
2867 tANI_U8 dialogToken;
2868 tSirMacStatusCodes status;
2869 tSirMacTsDelayIE delay;
2870
2871 tSirMacTspecIE tspec;
2872 tANI_U8 numTclas; // number of Tclas elements
2873 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2874 tANI_U8 tclasProc;
2875 tSirMacScheduleIE schedule;
2876#ifdef FEATURE_WLAN_CCX
2877 tSirMacCCXTSMIE tsmIE;
2878 tANI_U8 tsmPresent:1;
2879#endif
2880 tANI_U8 wmeTspecPresent:1;
2881 tANI_U8 wsmTspecPresent:1;
2882 tANI_U8 lleTspecPresent:1;
2883 tANI_U8 tclasProcPresent:1;
2884 tANI_U8 schedulePresent:1;
2885} tSirAddtsRspInfo, *tpSirAddtsRspInfo;
2886
2887typedef struct sSirDeltsReqInfo
2888{
2889 tSirMacTSInfo tsinfo;
2890 tSirMacTspecIE tspec;
2891 tANI_U8 wmeTspecPresent:1;
2892 tANI_U8 wsmTspecPresent:1;
2893 tANI_U8 lleTspecPresent:1;
2894} tSirDeltsReqInfo, *tpSirDeltsReqInfo;
2895
2896/// Add a tspec as defined
2897typedef struct sSirAddtsReq
2898{
2899 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2900 tANI_U16 length;
2901 tANI_U8 sessionId; //Session ID
2902 tANI_U16 transactionId;
2903 tSirMacAddr bssId; //BSSID
2904 tANI_U32 timeout; // in ms
2905 tANI_U8 rspReqd;
2906 tSirAddtsReqInfo req;
2907} tSirAddtsReq, *tpSirAddtsReq;
2908
2909typedef struct sSirAddtsRsp
2910{
2911 tANI_U16 messageType; // eWNI_SME_ADDTS_RSP
2912 tANI_U16 length;
2913 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2914 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2915 tANI_U32 rc; // return code
2916 tSirAddtsRspInfo rsp;
2917} tSirAddtsRsp, *tpSirAddtsRsp;
2918
2919typedef struct sSirDeltsReq
2920{
2921 tANI_U16 messageType; // eWNI_SME_DELTS_REQ
2922 tANI_U16 length;
2923 tANI_U8 sessionId;//Session ID
2924 tANI_U16 transactionId;
2925 tSirMacAddr bssId; //BSSID
2926 tANI_U16 aid; // use 0 if macAddr is being specified
2927 tANI_U8 macAddr[6]; // only on AP to specify the STA
2928 tANI_U8 rspReqd;
2929 tSirDeltsReqInfo req;
2930} tSirDeltsReq, *tpSirDeltsReq;
2931
2932typedef struct sSirDeltsRsp
2933{
2934 tANI_U16 messageType; // eWNI_SME_DELTS_RSP
2935 tANI_U16 length;
2936 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2937 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2938 tANI_U32 rc;
2939 tANI_U16 aid; // use 0 if macAddr is being specified
2940 tANI_U8 macAddr[6]; // only on AP to specify the STA
2941 tSirDeltsReqInfo rsp;
2942} tSirDeltsRsp, *tpSirDeltsRsp;
2943
Jeff Johnson04dd8a82012-06-29 20:41:40 -07002944#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07002945
2946#define SIR_QOS_NUM_TSPEC_MAX 2
2947#define SIR_QOS_NUM_AC_MAX 4
2948
2949typedef struct sSirAggrQosReqInfo
2950{
2951 tANI_U16 tspecIdx;
2952 tSirAddtsReqInfo aggrAddTsInfo[SIR_QOS_NUM_AC_MAX];
2953}tSirAggrQosReqInfo, *tpSirAggrQosReqInfo;
2954
2955typedef struct sSirAggrQosReq
2956{
2957 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2958 tANI_U16 length;
2959 tANI_U8 sessionId; //Session ID
2960 tANI_U16 transactionId;
2961 tSirMacAddr bssId; //BSSID
2962 tANI_U32 timeout; // in ms
2963 tANI_U8 rspReqd;
2964 tSirAggrQosReqInfo aggrInfo;
2965}tSirAggrQosReq, *tpSirAggrQosReq;
2966
2967typedef struct sSirAggrQosRspInfo
2968{
2969 tANI_U16 tspecIdx;
2970 tSirAddtsRspInfo aggrRsp[SIR_QOS_NUM_AC_MAX];
2971} tSirAggrQosRspInfo, *tpSirAggrQosRspInfo;
2972
2973typedef struct sSirAggrQosRsp
2974{
2975 tANI_U16 messageType;
2976 tANI_U16 length;
2977 tANI_U8 sessionId;
2978 tSirAggrQosRspInfo aggrInfo;
2979} tSirAggrQosRsp, *tpSirAggrQosRsp;
2980
2981#endif/*WLAN_FEATURE_VOWIFI_11R || FEATURE_WLAN_CCX*/
2982
2983typedef struct sSirSetTxPowerReq
2984{
2985 tANI_U16 messageType;
2986 tANI_U16 length;
2987 tANI_U32 txPower;
2988} tSirSetTxPowerReq, *tpSirSetTxPowerReq;
2989
2990typedef struct sSirSetTxPowerRsp
2991{
2992 tANI_U16 messageType;
2993 tANI_U16 length;
2994 tANI_U32 status;
2995} tSirSetTxPowerRsp, *tpSirSetTxPowerRsp;
2996
2997typedef struct sSirGetTxPowerReq
2998{
2999 tANI_U16 messageType;
3000 tANI_U16 length;
3001 tANI_U16 staid;
3002} tSirGetTxPowerReq, *tpSirGetTxPowerReq;
3003
3004typedef struct sSirGetTxPowerRsp
3005{
3006 tANI_U16 messageType;
3007 tANI_U16 length; // length of the entire request
3008 tANI_U32 power; // units of milliwatts
3009 tANI_U32 status;
3010} tSirGetTxPowerRsp, *tpSirGetTxPowerRsp;
3011
3012
3013typedef tANI_U32 tSirMacNoise[3];
3014
3015typedef struct sSirGetNoiseRsp
3016{
3017 tANI_U16 messageType;
3018 tANI_U16 length;
3019 tSirMacNoise noise;
3020} tSirGetNoiseRsp, *tpSirGetNoiseRsp;
3021
3022
3023//
3024// PMC --> PE --> HAL
3025// Power save configuration parameters
3026//
3027typedef struct sSirPowerSaveCfg
3028{
3029 tANI_U16 listenInterval;
3030
3031 /* Number of consecutive missed beacons before
3032 * hardware generates an interrupt to wake up
3033 * the host. In units of listen interval.
3034 */
3035 tANI_U32 HeartBeatCount;
3036
3037 /* specifies which beacons are to be forwarded
3038 * to host when beacon filtering is enabled.
3039 * In units of listen interval.
3040 */
3041 tANI_U32 nthBeaconFilter;
3042
3043 /* Maximum number of PS-Poll send before
3044 * firmware sends data null with PM set to 0.
3045 */
3046 tANI_U32 maxPsPoll;
3047
3048 /* If the average RSSI value falls below the
3049 * minRssiThreshold, then FW will send an
3050 * interrupt to wake up the host.
3051 */
3052 tANI_U32 minRssiThreshold;
3053
3054 /* Number of beacons for which firmware will
3055 * collect the RSSI values and compute the average.
3056 */
3057 tANI_U8 numBeaconPerRssiAverage;
3058
3059 /* FW collects the RSSI stats for this period
3060 * in BMPS mode.
3061 */
3062 tANI_U8 rssiFilterPeriod;
3063
3064 // Enabling/disabling broadcast frame filter feature
3065 tANI_U8 broadcastFrameFilter;
3066
3067 // Enabling/disabling the ignore DTIM feature
3068 tANI_U8 ignoreDtim;
3069
3070 /* The following configuration parameters are kept
3071 * in order to be backward compatible for Gen5.
3072 * These will NOT be used for Gen6 Libra chip
3073 */
3074 tBeaconForwarding beaconFwd;
3075 tANI_U16 nthBeaconFwd;
3076 tANI_U8 fEnablePwrSaveImmediately;
3077 tANI_U8 fPSPoll;
3078
3079 // Enabling/disabling Beacon Early Termination feature
3080 tANI_U8 fEnableBeaconEarlyTermination;
3081 tANI_U8 bcnEarlyTermWakeInterval;
3082
3083}tSirPowerSaveCfg, *tpSirPowerSaveCfg;
3084
3085/* Reason code for requesting Full Power. This reason code is used by
3086 any module requesting full power from PMC and also by PE when it
3087 sends the eWNI_PMC_EXIT_BMPS_IND to PMC*/
3088typedef enum eRequestFullPowerReason
3089{
3090 eSME_MISSED_BEACON_IND_RCVD, /* PE received a MAX_MISSED_BEACON_IND */
3091 eSME_BMPS_STATUS_IND_RCVD, /* PE received a SIR_HAL_BMPS_STATUS_IND */
3092 eSME_BMPS_MODE_DISABLED, /* BMPS mode was disabled by HDD in SME */
3093 eSME_LINK_DISCONNECTED_BY_HDD, /* Link has been disconnected requested by HDD */
3094 eSME_LINK_DISCONNECTED_BY_OTHER,/* Disconnect due to linklost or requested by peer */
3095 eSME_FULL_PWR_NEEDED_BY_HDD, /* HDD request full power for some reason */
3096 eSME_FULL_PWR_NEEDED_BY_BAP, /* BAP request full power for BT_AMP */
3097 eSME_FULL_PWR_NEEDED_BY_CSR, /* CSR requests full power */
3098 eSME_FULL_PWR_NEEDED_BY_QOS, /* QOS requests full power */
3099 eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH, /* channel switch request full power*/
3100 eSME_REASON_OTHER /* No specific reason. General reason code */
3101} tRequestFullPowerReason, tExitBmpsReason;
3102
3103
3104
3105//This is sent alongwith eWNI_PMC_EXIT_BMPS_REQ message
3106typedef struct sExitBmpsInfo
3107{
3108 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
3109}tExitBmpsInfo, *tpExitBmpsInfo;
3110
3111
3112// MAC SW --> SME
3113// Message indicating to SME to exit BMPS sleep mode
3114typedef struct sSirSmeExitBmpsInd
3115{
3116 tANI_U16 mesgType; /* eWNI_PMC_EXIT_BMPS_IND */
3117 tANI_U16 mesgLen;
3118 tSirResultCodes statusCode;
3119 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
3120
3121} tSirSmeExitBmpsInd, *tpSirSmeExitBmpsInd;
3122
3123
3124//
3125// HDD -> LIM
3126// tSirMsgQ.type = eWNI_SME_DEL_BA_PEER_IND
3127// tSirMsgQ.reserved = 0
3128// tSirMsgQ.body = instance of tDelBAParams
3129//
3130typedef struct sSmeDelBAPeerInd
3131{
3132 // Message Type
3133 tANI_U16 mesgType;
3134
3135 tSirMacAddr bssId;//BSSID
3136
3137 // Message Length
3138 tANI_U16 mesgLen;
3139
3140 // Station Index
3141 tANI_U16 staIdx;
3142
3143 // TID for which the BA session is being deleted
3144 tANI_U8 baTID;
3145
3146 // DELBA direction
3147 // eBA_INITIATOR - Originator
3148 // eBA_RECEIPIENT - Recipient
3149 tANI_U8 baDirection;
3150} tSmeDelBAPeerInd, *tpSmeDelBAPeerInd;
3151
3152typedef struct sSmeIbssPeerInd
3153{
3154 tANI_U16 mesgType;
3155 tANI_U16 mesgLen;
3156 tANI_U8 sessionId;
3157
3158 tSirMacAddr peerAddr;
3159 tANI_U16 staId;
3160
3161 /*The DPU signatures will be sent eventually to TL to help it determine the
3162 association to which a packet belongs to*/
3163 /*Unicast DPU signature*/
3164 tANI_U8 ucastSig;
3165
3166 /*Broadcast DPU signature*/
3167 tANI_U8 bcastSig;
3168
3169 //Beacon will be appended for new Peer indication.
3170}tSmeIbssPeerInd, *tpSmeIbssPeerInd;
3171
3172typedef struct sLimScanChn
3173{
3174 tANI_U16 numTimeScan; //how many time this channel is scan
3175 tANI_U8 channelId;
3176}tLimScanChn;
3177
3178typedef struct sSmeGetScanChnRsp
3179{
3180 // Message Type
3181 tANI_U16 mesgType;
3182 // Message Length
3183 tANI_U16 mesgLen;
3184 tANI_U8 sessionId;
3185 tANI_U8 numChn;
3186 tLimScanChn scanChn[1];
3187} tSmeGetScanChnRsp, *tpSmeGetScanChnRsp;
3188
3189typedef struct sLimScanChnInfo
3190{
3191 tANI_U8 numChnInfo; //number of channels in scanChn
3192 tLimScanChn scanChn[SIR_MAX_SUPPORTED_CHANNEL_LIST];
3193}tLimScanChnInfo;
3194
3195#ifdef WLAN_SOFTAP_FEATURE
3196typedef struct sSirSmeGetAssocSTAsReq
3197{
3198 tANI_U16 messageType; // eWNI_SME_GET_ASSOC_STAS_REQ
3199 tANI_U16 length;
3200 tSirMacAddr bssId; // BSSID
3201 tANI_U16 modId;
3202 void *pUsrContext;
3203 void *pSapEventCallback;
3204 void *pAssocStasArray;// Pointer to allocated memory passed in WLANSAP_GetAssocStations API
3205} tSirSmeGetAssocSTAsReq, *tpSirSmeGetAssocSTAsReq;
3206#endif
3207
3208typedef struct sSmeMaxAssocInd
3209{
3210 tANI_U16 mesgType; // eWNI_SME_MAX_ASSOC_EXCEEDED
3211 tANI_U16 mesgLen;
3212 tANI_U8 sessionId;
3213 tSirMacAddr peerMac; // the new peer that got rejected due to softap max assoc limit reached
3214} tSmeMaxAssocInd, *tpSmeMaxAssocInd;
3215
3216/*--------------------------------------------------------------------*/
3217/* BootLoader message definition */
3218/*--------------------------------------------------------------------*/
3219
3220/*--------------------------------------------------------------------*/
3221/* FW image size */
3222/*--------------------------------------------------------------------*/
3223#define SIR_FW_IMAGE_SIZE 146332
3224
3225
3226#define SIR_BOOT_MODULE_ID 1
3227
3228#define SIR_BOOT_SETUP_IND ((SIR_BOOT_MODULE_ID << 8) | 0x11)
3229#define SIR_BOOT_POST_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x12)
3230#define SIR_BOOT_DNLD_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x13)
3231#define SIR_BOOT_DNLD_DEV_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x41)
3232#define SIR_BOOT_DNLD_DEV_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x81)
3233#define SIR_BOOT_DNLD_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x42)
3234#define SIR_BOOT_DNLD_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x82)
3235
3236/*--------------------------------------------------------------------*/
3237/* Bootloader message syntax */
3238/*--------------------------------------------------------------------*/
3239
3240// Message header
3241#define SIR_BOOT_MB_HEADER 0
3242#define SIR_BOOT_MB_HEADER2 1
3243
3244#define SIR_BOOT_MSG_HDR_MASK 0xffff0000
3245#define SIR_BOOT_MSG_LEN_MASK 0x0000ffff
3246
3247// BOOT_SETUP_IND parameter indices
3248#define SIR_BOOT_SETUP_IND_MBADDR 2
3249#define SIR_BOOT_SETUP_IND_MBSIZE 3
3250#define SIR_BOOT_SETUP_IND_MEMOPT 4
3251#define SIR_BOOT_SETUP_IND_LEN \
3252 ((SIR_BOOT_SETUP_IND_MEMOPT+1)<<2)
3253
3254// BOOT_POST_RESULT_IND parameter indices
3255#define SIR_BOOT_POST_RESULT_IND_RES 2
3256#define SIR_BOOT_POST_RESULT_IND_LEN \
3257 ((SIR_BOOT_POST_RESULT_IND_RES+1)<<2)
3258
3259#define SIR_BOOT_POST_RESULT_IND_SUCCESS 1
3260#define SIR_BOOT_POST_RESULT_IND_MB_FAILED 2
3261#define SIR_BOOT_POST_RESULT_IND_SDRAM_FAILED 3
3262#define SIR_BOOT_POST_RESULT_IND_ESRAM_FAILED 4
3263
3264
3265// BOOT_DNLD_RESULT_IND parameter indices
3266#define SIR_BOOT_DNLD_RESULT_IND_RES 2
3267#define SIR_BOOT_DNLD_RESULT_IND_LEN \
3268 ((SIR_BOOT_DNLD_RESULT_IND_RES+1)<<2)
3269
3270#define SIR_BOOT_DNLD_RESULT_IND_SUCCESS 1
3271#define SIR_BOOT_DNLD_RESULT_IND_HDR_ERR 2
3272#define SIR_BOOT_DNLD_RESULT_IND_ERR 3
3273
3274// BOOT_DNLD_DEV_REQ
3275#define SIR_BOOT_DNLD_DEV_REQ_SDRAMSIZE 2
3276#define SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE 3
3277#define SIR_BOOT_DNLD_DEV_REQ_LEN \
3278 ((SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE+1)<<2)
3279
3280// BOOT_DNLD_DEV_RSP
3281#define SIR_BOOT_DNLD_DEV_RSP_DEVTYPE 2
3282#define SIR_BOOT_DNLD_DEV_RSP_LEN \
3283 ((SIR_BOOT_DNLD_DEV_RSP_DEVTYPE+1)<<2)
3284
3285#define SIR_BOOT_DNLD_DEV_RSP_SRAM 1
3286#define SIR_BOOT_DNLD_DEV_RSP_FLASH 2
3287
3288// BOOT_DNLD_REQ
3289#define SIR_BOOT_DNLD_REQ_OFFSET 2
3290#define SIR_BOOT_DNLD_REQ_WRADDR 3
3291#define SIR_BOOT_DNLD_REQ_SIZE 4
3292#define SIR_BOOT_DNLD_REQ_LEN ((SIR_BOOT_DNLD_REQ_SIZE+1)<<2)
3293
3294// BOOT_DNLD_RSP
3295#define SIR_BOOT_DNLD_RSP_SIZE 2
3296#define SIR_BOOT_DNLD_RSP_LEN ((SIR_BOOT_DNLD_RSP_SIZE+1)<<2)
3297
3298#if defined(ANI_OS_TYPE_RTAI_LINUX)
3299// RTAI WRAPPER definition - Buffer block control entry
3300// the new block Control entry is initialized by HDD
3301// memory buffers (blkPool) are allocated by HDD
3302// The table resides in plmac_rtai.c
3303#define BLOCK_ALLOCATED_BY_HDD 1
3304#define RED_ZONE 16 // 16 bytes between buffers
3305#define NUM_POOL 16 // NUM_POOL defined here for now, not
3306 // so good
3307typedef struct
3308{
3309 tANI_U16 blkSize;
3310 tANI_U16 blkNum;
3311 void *blkPool; // pointer to memory buffer
3312
3313} t_mac_block_table;
3314
3315#endif
3316
3317// board capabilities fields are defined here.
3318typedef __ani_attr_pre_packed struct sSirBoardCapabilities
3319{
3320#ifndef ANI_LITTLE_BIT_ENDIAN
3321 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
3322 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
3323 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
3324 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
3325 tANI_U32 rsvd1:2;
3326 // (productId derives sub-category in the following three families)
3327 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
3328 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
3329 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
3330 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
3331 tANI_U32 bbChipVer:4; // Baseband chip version
3332 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
3333 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
3334 tANI_U32 nReceivers:2; // 0 based.
3335 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
3336 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
3337 tANI_U32 rsvd:1;
3338 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
3339#else
3340
3341 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
3342 tANI_U32 rsvd:1;
3343 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
3344 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
3345 tANI_U32 nReceivers:2; // 0 based.
3346 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
3347 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
3348 tANI_U32 bbChipVer:4; // Baseband chip version
3349 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
3350 // (productId derives sub-category in the following three families)
3351 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
3352 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
3353 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
3354 tANI_U32 rsvd1:2;
3355 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
3356 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
3357 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
3358 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
3359#endif
3360} __ani_attr_packed tSirBoardCapabilities, *tpSirBoardCapabilities;
3361
3362# define ANI_BCAP_EXT_VS_INT_ANT_MASK 0x1
3363# define ANI_BCAP_EXT_VS_INT_ANT_OFFSET 0
3364
3365# define ANI_BCAP_GAL_ON_BOARD_MASK 0x2
3366# define ANI_BCAP_GAL_ON_BOARD_OFFSET 1
3367
3368# define ANI_BCAP_SDRAM_MASK 0x4
3369# define ANI_BCAP_SDRAM_OFFSET 2
3370
3371# define ANI_BCAP_NUM_TRANSMITTERS_MASK 0x8
3372# define ANI_BCAP_NUM_TRANSMITTERS_OFFSET 3
3373
3374# define ANI_BCAP_NUM_RECEIVERS_MASK 0x30
3375# define ANI_BCAP_NUM_RECEIVERS_OFFSET 4
3376
3377# define ANI_BCAP_RADIO_ON_MASK 0xC0
3378# define ANI_BCAP_RADIO_ON_OFFSET 6
3379
3380# define ANI_BCAP_LO_TYPE_MASK 0x300
3381# define ANI_BCAP_LO_TYPE_OFFSET 8
3382
3383# define ANI_BCAP_BB_CHIP_VER_MASK 0xC00
3384# define ANI_BCAP_BB_CHIP_VER_OFFSET 10
3385
3386# define ANI_BCAP_CYG_DATE_CODE_MASK 0xFF000
3387# define ANI_BCAP_CYG_DATE_CODE_OFFSET 12
3388
3389# define ANI_BCAP_RADIO_OFF 0
3390# define ANI_BCAP_RADIO_ON 1
3391# define ANI_BCAP_RADIO_ON_NOT_SUPPORTED 3
3392
3393
3394/// WOW related structures
3395// SME -> PE <-> HAL
3396#define SIR_WOWL_BCAST_PATTERN_MAX_SIZE 128
3397#define SIR_WOWL_BCAST_MAX_NUM_PATTERNS 16
3398
3399// SME -> PE -> HAL - This is to add WOWL BCAST wake-up pattern.
3400// SME/HDD maintains the list of the BCAST wake-up patterns.
3401// This is a pass through message for PE
3402typedef struct sSirWowlAddBcastPtrn
3403{
3404 tANI_U8 ucPatternId; // Pattern ID
3405 // Pattern byte offset from beginning of the 802.11 packet to start of the
3406 // wake-up pattern
3407 tANI_U8 ucPatternByteOffset;
3408 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3409 tANI_U8 ucPattern[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3410 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3411 tANI_U8 ucPatternMask[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3412 // Extra pattern data beyond 128 bytes
3413 tANI_U8 ucPatternExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern
3414 tANI_U8 ucPatternMaskExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern mask
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003415 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07003416} tSirWowlAddBcastPtrn, *tpSirWowlAddBcastPtrn;
3417
3418
3419// SME -> PE -> HAL - This is to delete WOWL BCAST wake-up pattern.
3420// SME/HDD maintains the list of the BCAST wake-up patterns.
3421// This is a pass through message for PE
3422typedef struct sSirWowlDelBcastPtrn
3423{
3424 /* Pattern ID of the wakeup pattern to be deleted */
3425 tANI_U8 ucPatternId;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003426 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07003427}tSirWowlDelBcastPtrn, *tpSirWowlDelBcastPtrn;
3428
3429
3430// SME->PE: Enter WOWLAN parameters
3431typedef struct sSirSmeWowlEnterParams
3432{
3433 /* Enables/disables magic packet filtering */
3434 tANI_U8 ucMagicPktEnable;
3435
3436 /* Magic pattern */
3437 tSirMacAddr magicPtrn;
3438
3439 /* Enables/disables packet pattern filtering */
3440 tANI_U8 ucPatternFilteringEnable;
3441
3442#ifdef WLAN_WAKEUP_EVENTS
3443 /* This configuration directs the WoW packet filtering to look for EAP-ID
3444 * requests embedded in EAPOL frames and use this as a wake source.
3445 */
3446 tANI_U8 ucWoWEAPIDRequestEnable;
3447
3448 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3449 * requests and use this as a wake source.
3450 */
3451 tANI_U8 ucWoWEAPOL4WayEnable;
3452
3453 /* This configuration allows a host wakeup on an network scan offload match.
3454 */
3455 tANI_U8 ucWowNetScanOffloadMatch;
3456
3457 /* This configuration allows a host wakeup on any GTK rekeying error.
3458 */
3459 tANI_U8 ucWowGTKRekeyError;
3460
3461 /* This configuration allows a host wakeup on BSS connection loss.
3462 */
3463 tANI_U8 ucWoWBSSConnLoss;
3464#endif // WLAN_WAKEUP_EVENTS
3465
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003466 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003467} tSirSmeWowlEnterParams, *tpSirSmeWowlEnterParams;
3468
3469
3470// PE<->HAL: Enter WOWLAN parameters
3471typedef struct sSirHalWowlEnterParams
3472{
3473 /* Enables/disables magic packet filtering */
3474 tANI_U8 ucMagicPktEnable;
3475
3476 /* Magic pattern */
3477 tSirMacAddr magicPtrn;
3478
3479 /* Enables/disables packet pattern filtering in firmware.
3480 Enabling this flag enables broadcast pattern matching
3481 in Firmware. If unicast pattern matching is also desired,
3482 ucUcastPatternFilteringEnable flag must be set tot true
3483 as well
3484 */
3485 tANI_U8 ucPatternFilteringEnable;
3486
3487 /* Enables/disables unicast packet pattern filtering.
3488 This flag specifies whether we want to do pattern match
3489 on unicast packets as well and not just broadcast packets.
3490 This flag has no effect if the ucPatternFilteringEnable
3491 (main controlling flag) is set to false
3492 */
3493 tANI_U8 ucUcastPatternFilteringEnable;
3494
3495 /* This configuration is valid only when magicPktEnable=1.
3496 * It requests hardware to wake up when it receives the
3497 * Channel Switch Action Frame.
3498 */
3499 tANI_U8 ucWowChnlSwitchRcv;
3500
3501 /* This configuration is valid only when magicPktEnable=1.
3502 * It requests hardware to wake up when it receives the
3503 * Deauthentication Frame.
3504 */
3505 tANI_U8 ucWowDeauthRcv;
3506
3507 /* This configuration is valid only when magicPktEnable=1.
3508 * It requests hardware to wake up when it receives the
3509 * Disassociation Frame.
3510 */
3511 tANI_U8 ucWowDisassocRcv;
3512
3513 /* This configuration is valid only when magicPktEnable=1.
3514 * It requests hardware to wake up when it has missed
3515 * consecutive beacons. This is a hardware register
3516 * configuration (NOT a firmware configuration).
3517 */
3518 tANI_U8 ucWowMaxMissedBeacons;
3519
3520 /* This configuration is valid only when magicPktEnable=1.
3521 * This is a timeout value in units of microsec. It requests
3522 * hardware to unconditionally wake up after it has stayed
3523 * in WoWLAN mode for some time. Set 0 to disable this feature.
3524 */
3525 tANI_U8 ucWowMaxSleepUsec;
3526
3527#ifdef WLAN_WAKEUP_EVENTS
3528 /* This configuration directs the WoW packet filtering to look for EAP-ID
3529 * requests embedded in EAPOL frames and use this as a wake source.
3530 */
3531 tANI_U8 ucWoWEAPIDRequestEnable;
3532
3533 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3534 * requests and use this as a wake source.
3535 */
3536 tANI_U8 ucWoWEAPOL4WayEnable;
3537
3538 /* This configuration allows a host wakeup on an network scan offload match.
3539 */
3540 tANI_U8 ucWowNetScanOffloadMatch;
3541
3542 /* This configuration allows a host wakeup on any GTK rekeying error.
3543 */
3544 tANI_U8 ucWowGTKRekeyError;
3545
3546 /* This configuration allows a host wakeup on BSS connection loss.
3547 */
3548 tANI_U8 ucWoWBSSConnLoss;
3549#endif // WLAN_WAKEUP_EVENTS
3550
3551 /* Status code to be filled by HAL when it sends
3552 * SIR_HAL_WOWL_ENTER_RSP to PE.
3553 */
3554 eHalStatus status;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003555
3556 /*BSSID to find the current session
3557 */
3558 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003559} tSirHalWowlEnterParams, *tpSirHalWowlEnterParams;
3560
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003561// PE<->HAL: Exit WOWLAN parameters
3562typedef struct sSirHalWowlExitParams
3563{
3564 /* Status code to be filled by HAL when it sends
3565 * SIR_HAL_WOWL_EXIT_RSP to PE.
3566 */
3567 eHalStatus status;
3568
3569 /*BSSIDX to find the current session
3570 */
3571 tANI_U8 bssIdx;
3572} tSirHalWowlExitParams, *tpSirHalWowlExitParams;
3573
Jeff Johnson295189b2012-06-20 16:38:30 -07003574#ifdef WLAN_SOFTAP_FEATURE
3575
3576#define SIR_MAX_NAME_SIZE 64
3577#define SIR_MAX_TEXT_SIZE 32
3578
3579typedef struct sSirName {
3580 v_U8_t num_name;
3581 v_U8_t name[SIR_MAX_NAME_SIZE];
3582} tSirName;
3583
3584typedef struct sSirText {
3585 v_U8_t num_text;
3586 v_U8_t text[SIR_MAX_TEXT_SIZE];
3587} tSirText;
3588
3589
3590#define SIR_WPS_PROBRSP_VER_PRESENT 0x00000001
3591#define SIR_WPS_PROBRSP_STATE_PRESENT 0x00000002
3592#define SIR_WPS_PROBRSP_APSETUPLOCK_PRESENT 0x00000004
3593#define SIR_WPS_PROBRSP_SELECTEDREGISTRA_PRESENT 0x00000008
3594#define SIR_WPS_PROBRSP_DEVICEPASSWORDID_PRESENT 0x00000010
3595#define SIR_WPS_PROBRSP_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3596#define SIR_WPS_PROBRSP_RESPONSETYPE_PRESENT 0x00000040
3597#define SIR_WPS_PROBRSP_UUIDE_PRESENT 0x00000080
3598#define SIR_WPS_PROBRSP_MANUFACTURE_PRESENT 0x00000100
3599#define SIR_WPS_PROBRSP_MODELNAME_PRESENT 0x00000200
3600#define SIR_WPS_PROBRSP_MODELNUMBER_PRESENT 0x00000400
3601#define SIR_WPS_PROBRSP_SERIALNUMBER_PRESENT 0x00000800
3602#define SIR_WPS_PROBRSP_PRIMARYDEVICETYPE_PRESENT 0x00001000
3603#define SIR_WPS_PROBRSP_DEVICENAME_PRESENT 0x00002000
3604#define SIR_WPS_PROBRSP_CONFIGMETHODS_PRESENT 0x00004000
3605#define SIR_WPS_PROBRSP_RF_BANDS_PRESENT 0x00008000
3606
3607
3608typedef struct sSirWPSProbeRspIE {
3609 v_U32_t FieldPresent;
3610 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3611 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3612 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3613 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3614 v_U16_t DevicePasswordID; // Device Password ID
3615 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3616 v_U8_t ResponseType; // Response type
3617 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3618 tSirName Manufacture;
3619 tSirText ModelName;
3620 tSirText ModelNumber;
3621 tSirText SerialNumber;
3622 v_U32_t PrimaryDeviceCategory ; // Device Category ID: 1Computer, 2Input Device, ...
3623 v_U8_t PrimaryDeviceOUI[4] ; // Vendor specific OUI for Device Sub Category
3624 v_U32_t DeviceSubCategory ; // Device Sub Category ID: 1-PC, 2-Server if Device Category ID is computer
3625 tSirText DeviceName;
3626 v_U16_t ConfigMethod; // Configuaration method
3627 v_U8_t RFBand; // RF bands available on the AP
3628} tSirWPSProbeRspIE;
3629
3630#define SIR_WPS_BEACON_VER_PRESENT 0x00000001
3631#define SIR_WPS_BEACON_STATE_PRESENT 0x00000002
3632#define SIR_WPS_BEACON_APSETUPLOCK_PRESENT 0x00000004
3633#define SIR_WPS_BEACON_SELECTEDREGISTRA_PRESENT 0x00000008
3634#define SIR_WPS_BEACON_DEVICEPASSWORDID_PRESENT 0x00000010
3635#define SIR_WPS_BEACON_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3636#define SIR_WPS_BEACON_UUIDE_PRESENT 0x00000080
3637#define SIR_WPS_BEACON_RF_BANDS_PRESENT 0x00000100
3638
3639typedef struct sSirWPSBeaconIE {
3640 v_U32_t FieldPresent;
3641 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3642 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3643 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3644 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3645 v_U16_t DevicePasswordID; // Device Password ID
3646 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3647 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3648 v_U8_t RFBand; // RF bands available on the AP
3649} tSirWPSBeaconIE;
3650
3651#define SIR_WPS_ASSOCRSP_VER_PRESENT 0x00000001
3652#define SIR_WPS_ASSOCRSP_RESPONSETYPE_PRESENT 0x00000002
3653
3654typedef struct sSirWPSAssocRspIE {
3655 v_U32_t FieldPresent;
3656 v_U32_t Version;
3657 v_U8_t ResposeType;
3658} tSirWPSAssocRspIE;
3659
3660typedef struct sSirAPWPSIEs {
3661 tSirWPSProbeRspIE SirWPSProbeRspIE; /*WPS Set Probe Respose IE*/
3662 tSirWPSBeaconIE SirWPSBeaconIE; /*WPS Set Beacon IE*/
3663 tSirWPSAssocRspIE SirWPSAssocRspIE; /*WPS Set Assoc Response IE*/
3664} tSirAPWPSIEs, *tpSiriAPWPSIEs;
3665
3666typedef struct sSirUpdateAPWPSIEsReq
3667{
3668 tANI_U16 messageType; // eWNI_SME_UPDATE_APWPSIE_REQ
3669 tANI_U16 length;
3670 tANI_U16 transactionId; //Transaction ID for cmd
3671 tSirMacAddr bssId; // BSSID
3672 tANI_U8 sessionId; //Session ID
3673 tSirAPWPSIEs APWPSIEs;
3674} tSirUpdateAPWPSIEsReq, *tpSirUpdateAPWPSIEsReq;
3675
3676typedef struct sSirUpdateParams
3677{
3678 tANI_U16 messageType;
3679 tANI_U16 length;
3680 tANI_U8 sessionId; // Session ID
3681 tANI_U8 ssidHidden; // Hide SSID
3682} tSirUpdateParams, *tpSirUpdateParams;
3683
3684#define SIR_WPS_UUID_LEN 16
3685#define SIR_WPS_PBC_WALK_TIME 120 // 120 Second
3686
3687typedef struct sSirWPSPBCSession {
3688 struct sSirWPSPBCSession *next;
3689 tSirMacAddr addr;
3690 tANI_U8 uuid_e[SIR_WPS_UUID_LEN];
3691 tANI_TIMESTAMP timestamp;
3692} tSirWPSPBCSession;
3693
3694typedef struct sSirSmeGetWPSPBCSessionsReq
3695{
3696 tANI_U16 messageType; // eWNI_SME_GET_WPSPBC_SESSION_REQ
3697 tANI_U16 length;
3698 void *pUsrContext;
3699 void *pSapEventCallback;
3700 tSirMacAddr bssId; // BSSID
3701 tSirMacAddr pRemoveMac; // MAC Address of STA in WPS Session to be removed
3702} tSirSmeGetWPSPBCSessionsReq, *tpSirSmeGetWPSPBCSessionsReq;
3703
3704typedef struct sSirWPSPBCProbeReq
3705{
3706 tSirMacAddr peerMacAddr;
3707 tANI_U16 probeReqIELen;
3708 tANI_U8 probeReqIE[512];
3709} tSirWPSPBCProbeReq, *tpSirWPSPBCProbeReq;
3710
3711// probereq from peer, when wsc is enabled
3712typedef struct sSirSmeProbeReqInd
3713{
3714 tANI_U16 messageType; // eWNI_SME_WPS_PBC_PROBE_REQ_IND
3715 tANI_U16 length;
3716 tANI_U8 sessionId;
3717 tSirMacAddr bssId;
3718 tSirWPSPBCProbeReq WPSPBCProbeReq;
3719} tSirSmeProbeReqInd, *tpSirSmeProbeReqInd;
3720
3721typedef struct sSirUpdateAPWPARSNIEsReq
3722{
3723 tANI_U16 messageType; // eWNI_SME_SET_APWPARSNIEs_REQ
3724 tANI_U16 length;
3725 tANI_U16 transactionId; //Transaction ID for cmd
3726 tSirMacAddr bssId; // BSSID
3727 tANI_U8 sessionId; //Session ID
3728 tSirRSNie APWPARSNIEs;
3729} tSirUpdateAPWPARSNIEsReq, *tpSirUpdateAPWPARSNIEsReq;
3730
3731#endif
3732
3733// SME -> HAL - This is the host offload request.
3734#define SIR_IPV4_ARP_REPLY_OFFLOAD 0
3735#define SIR_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3736#define SIR_IPV6_NS_OFFLOAD 2
3737#define SIR_OFFLOAD_DISABLE 0
3738#define SIR_OFFLOAD_ENABLE 1
3739#define SIR_OFFLOAD_BCAST_FILTER_ENABLE 0x2
3740#define SIR_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_BCAST_FILTER_ENABLE)
3741
3742#ifdef WLAN_NS_OFFLOAD
3743typedef struct sSirNsOffloadReq
3744{
3745 tANI_U8 srcIPv6Addr[16];
3746 tANI_U8 selfIPv6Addr[16];
3747 //Only support 2 possible Network Advertisement IPv6 address
3748 tANI_U8 targetIPv6Addr[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][16];
3749 tANI_U8 selfMacAddr[6];
3750 tANI_U8 srcIPv6AddrValid;
3751 tANI_U8 targetIPv6AddrValid[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA];
3752} tSirNsOffloadReq, *tpSirNsOffloadReq;
3753#endif //WLAN_NS_OFFLOAD
3754
3755typedef struct sSirHostOffloadReq
3756{
3757 tANI_U8 offloadType;
3758 tANI_U8 enableOrDisable;
3759 union
3760 {
3761 tANI_U8 hostIpv4Addr [4];
3762 tANI_U8 hostIpv6Addr [16];
3763 } params;
3764#ifdef WLAN_NS_OFFLOAD
3765 tSirNsOffloadReq nsOffloadInfo;
3766#endif //WLAN_NS_OFFLOAD
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003767 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003768} tSirHostOffloadReq, *tpSirHostOffloadReq;
3769
3770/* Packet Types. */
3771#define SIR_KEEP_ALIVE_NULL_PKT 1
3772#define SIR_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3773
3774/* Enable or disable offload. */
3775#define SIR_KEEP_ALIVE_DISABLE 0
3776#define SIR_KEEP_ALIVE_ENABLE 1
3777
3778/* Keep Alive request. */
3779typedef struct sSirKeepAliveReq
3780{
3781 v_U8_t packetType;
3782 v_U32_t timePeriod;
3783 tSirIpv4Addr hostIpv4Addr;
3784 tSirIpv4Addr destIpv4Addr;
3785 tSirMacAddr destMacAddr;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003786 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003787} tSirKeepAliveReq, *tpSirKeepAliveReq;
3788
3789typedef struct sSirSmeAddStaSelfReq
3790{
3791 tANI_U16 mesgType;
3792 tANI_U16 mesgLen;
3793 tSirMacAddr selfMacAddr;
3794}tSirSmeAddStaSelfReq, *tpSirSmeAddStaSelfReq;
3795
3796typedef struct sSirSmeDelStaSelfReq
3797{
3798 tANI_U16 mesgType;
3799 tANI_U16 mesgLen;
3800 tSirMacAddr selfMacAddr;
3801}tSirSmeDelStaSelfReq, *tpSirSmeDelStaSelfReq;
3802
3803typedef struct sSirSmeAddStaSelfRsp
3804{
3805 tANI_U16 mesgType;
3806 tANI_U16 mesgLen;
3807 tANI_U16 status;
3808 tSirMacAddr selfMacAddr;
3809}tSirSmeAddStaSelfRsp, *tpSirSmeAddStaSelfRsp;
3810
3811typedef struct sSirSmeDelStaSelfRsp
3812{
3813 tANI_U16 mesgType;
3814 tANI_U16 mesgLen;
3815 tANI_U16 status;
3816 tSirMacAddr selfMacAddr;
3817}tSirSmeDelStaSelfRsp, *tpSirSmeDelStaSelfRsp;
3818
3819/* Coex Indication defines -
3820 should match WLAN_COEX_IND_DATA_SIZE
3821 should match WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR
3822 should match WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR */
3823#define SIR_COEX_IND_DATA_SIZE (4)
3824#define SIR_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
3825#define SIR_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
3826
3827typedef struct sSirSmeCoexInd
3828{
3829 tANI_U16 mesgType;
3830 tANI_U16 mesgLen;
3831 tANI_U32 coexIndType;
3832 tANI_U32 coexIndData[SIR_COEX_IND_DATA_SIZE];
3833}tSirSmeCoexInd, *tpSirSmeCoexInd;
3834
3835#ifdef WLAN_FEATURE_P2P
3836typedef struct sSirSmeMgmtFrameInd
3837{
3838 tANI_U16 mesgType;
3839 tANI_U16 mesgLen;
3840 tANI_U8 sessionId;
3841 tANI_U8 frameType;
3842 tANI_U32 rxChan;
3843 tANI_U8 frameBuf[1]; //variable
3844}tSirSmeMgmtFrameInd, *tpSirSmeMgmtFrameInd;
3845#endif
3846
3847#define SIR_IS_FULL_POWER_REASON_DISCONNECTED(eReason) \
3848 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || \
3849 ( eSME_LINK_DISCONNECTED_BY_OTHER == (eReason) ) || \
3850 (eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH == (eReason)))
3851#define SIR_IS_FULL_POWER_NEEDED_BY_HDD(eReason) \
3852 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || ( eSME_FULL_PWR_NEEDED_BY_HDD == (eReason) ) )
3853
3854/* P2P Power Save Related */
3855#ifdef WLAN_FEATURE_P2P
3856typedef struct sSirNoAParam
3857{
3858 tANI_U8 ctWindow:7;
3859 tANI_U8 OppPS:1;
3860 tANI_U8 count;
3861 tANI_U32 duration;
3862 tANI_U32 interval;
3863 tANI_U32 singleNoADuration;
3864 tANI_U8 psSelection;
3865}tSirNoAParam, *tpSirNoAParam;
3866#endif
3867
3868#ifdef FEATURE_WLAN_INTEGRATED_SOC
3869typedef struct sSirWlanSuspendParam
3870{
3871 tANI_U8 configuredMcstBcstFilterSetting;
3872}tSirWlanSuspendParam,*tpSirWlanSuspendParam;
3873
3874typedef struct sSirWlanResumeParam
3875{
3876 tANI_U8 configuredMcstBcstFilterSetting;
3877}tSirWlanResumeParam,*tpSirWlanResumeParam;
3878
3879typedef struct sSirWlanSetRxpFilters
3880{
3881 tANI_U8 configuredMcstBcstFilterSetting;
3882 tANI_U8 setMcstBcstFilter;
3883}tSirWlanSetRxpFilters,*tpSirWlanSetRxpFilters;
3884#endif
3885
3886
3887#ifdef FEATURE_WLAN_SCAN_PNO
3888//
3889// PNO Messages
3890//
3891
3892// Set PNO
3893#define SIR_PNO_MAX_NETW_CHANNELS 26
3894#define SIR_PNO_MAX_SUPP_NETWORKS 16
3895#define SIR_PNO_MAX_SCAN_TIMERS 10
3896
3897/*size based of dot11 declaration without extra IEs as we will not carry those for PNO*/
3898#define SIR_PNO_MAX_PB_REQ_SIZE 450
3899
3900#define SIR_PNO_24G_DEFAULT_CH 1
3901#define SIR_PNO_5G_DEFAULT_CH 36
3902
3903typedef enum
3904{
3905 SIR_PNO_MODE_IMMEDIATE,
3906 SIR_PNO_MODE_ON_SUSPEND,
3907 SIR_PNO_MODE_ON_RESUME,
3908 SIR_PNO_MODE_MAX
3909} eSirPNOMode;
3910
3911typedef struct
3912{
3913 tSirMacSSid ssId;
3914 tANI_U32 authentication;
3915 tANI_U32 encryption;
3916 tANI_U32 bcastNetwType;
3917 tANI_U8 ucChannelCount;
3918 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS];
3919 tANI_U8 rssiThreshold;
3920} tSirNetworkType;
3921
3922typedef struct
3923{
3924 tANI_U32 uTimerValue;
3925 tANI_U32 uTimerRepeat;
3926}tSirScanTimer;
3927
3928typedef struct
3929{
3930 tANI_U8 ucScanTimersCount;
3931 tSirScanTimer aTimerValues[SIR_PNO_MAX_SCAN_TIMERS];
3932} tSirScanTimersType;
3933
3934typedef struct sSirPNOScanReq
3935{
3936 tANI_U8 enable;
3937 eSirPNOMode modePNO;
3938 tANI_U8 ucNetworksCount;
3939 tSirNetworkType aNetworks[SIR_PNO_MAX_SUPP_NETWORKS];
3940 tSirScanTimersType scanTimers;
3941
3942 /*added by SME*/
3943 tANI_U16 us24GProbeTemplateLen;
3944 tANI_U8 p24GProbeTemplate[SIR_PNO_MAX_PB_REQ_SIZE];
3945 tANI_U16 us5GProbeTemplateLen;
3946 tANI_U8 p5GProbeTemplate[SIR_PNO_MAX_PB_REQ_SIZE];
3947} tSirPNOScanReq, *tpSirPNOScanReq;
3948
3949typedef struct sSirSetRSSIFilterReq
3950{
3951 tANI_U8 rssiThreshold;
3952} tSirSetRSSIFilterReq, *tpSirSetRSSIFilterReq;
3953
3954
3955// Update Scan Params
3956typedef struct {
3957 tANI_U8 b11dEnabled;
3958 tANI_U8 b11dResolved;
3959 tANI_U8 ucChannelCount;
3960 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS];
3961 tANI_U16 usPassiveMinChTime;
3962 tANI_U16 usPassiveMaxChTime;
3963 tANI_U16 usActiveMinChTime;
3964 tANI_U16 usActiveMaxChTime;
3965 tANI_U8 ucCBState;
3966} tSirUpdateScanParams, * tpSirUpdateScanParams;
3967
3968// Preferred Network Found Indication
3969typedef struct
3970{
3971 tANI_U16 mesgType;
3972 tANI_U16 mesgLen;
3973 /* Network that was found with the highest RSSI*/
3974 tSirMacSSid ssId;
3975 /* Indicates the RSSI */
3976 tANI_U8 rssi;
3977} tSirPrefNetworkFoundInd, *tpSirPrefNetworkFoundInd;
3978#endif // FEATURE_WLAN_SCAN_PNO
3979
3980#define SIR_NOCHANGE_POWER_VALUE 0xFFFFFFFF
3981
3982//Power Parameters Type
3983typedef enum
3984{
3985 eSIR_IGNORE_DTIM = 1,
3986 eSIR_LISTEN_INTERVAL = 2,
3987 eSIR_MCAST_BCAST_FILTER = 3,
3988 eSIR_ENABLE_BET = 4,
3989 eSIR_BET_INTERVAL = 5
3990}tPowerParamType;
3991
3992//Power Parameters Value s
3993typedef struct
3994{
3995 /* Ignore DTIM */
3996 tANI_U32 uIgnoreDTIM;
3997
3998 /* DTIM Period */
3999 tANI_U32 uDTIMPeriod;
4000
4001 /* Listen Interval */
4002 tANI_U32 uListenInterval;
4003
4004 /* Broadcast Multicas Filter */
4005 tANI_U32 uBcastMcastFilter;
4006
4007 /* Beacon Early Termination */
4008 tANI_U32 uEnableBET;
4009
4010 /* Beacon Early Termination Interval */
4011 tANI_U32 uBETInterval;
4012
4013}tSirSetPowerParamsReq, *tpSirSetPowerParamsReq;
4014
4015typedef struct sSirTxPerTrackingParam
4016{
4017 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
4018 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. Once tx_stat_chk enable, firmware will check PER in this period periodically */
4019 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 */
4020 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
4021}tSirTxPerTrackingParam, *tpSirTxPerTrackingParam;
4022
4023#ifdef WLAN_FEATURE_PACKET_FILTERING
4024/*---------------------------------------------------------------------------
4025 Packet Filtering Parameters
4026---------------------------------------------------------------------------*/
4027#define SIR_IPV4_ADDR_LEN 4
4028#define SIR_MAC_ADDR_LEN 6
4029#define SIR_MAX_FILTER_TEST_DATA_LEN 8
4030#define SIR_MAX_NUM_MULTICAST_ADDRESS 240
4031#define SIR_MAX_NUM_FILTERS 20
4032#define SIR_MAX_NUM_TESTS_PER_FILTER 10
4033
4034//
4035// Receive Filter Parameters
4036//
4037typedef enum
4038{
4039 SIR_RCV_FILTER_TYPE_INVALID,
4040 SIR_RCV_FILTER_TYPE_FILTER_PKT,
4041 SIR_RCV_FILTER_TYPE_BUFFER_PKT,
4042 SIR_RCV_FILTER_TYPE_MAX_ENUM_SIZE
4043}eSirReceivePacketFilterType;
4044
4045typedef enum
4046{
4047 SIR_FILTER_HDR_TYPE_INVALID,
4048 SIR_FILTER_HDR_TYPE_MAC,
4049 SIR_FILTER_HDR_TYPE_ARP,
4050 SIR_FILTER_HDR_TYPE_IPV4,
4051 SIR_FILTER_HDR_TYPE_IPV6,
4052 SIR_FILTER_HDR_TYPE_UDP,
4053 SIR_FILTER_HDR_TYPE_MAX
4054}eSirRcvPktFltProtocolType;
4055
4056typedef enum
4057{
4058 SIR_FILTER_CMP_TYPE_INVALID,
4059 SIR_FILTER_CMP_TYPE_EQUAL,
4060 SIR_FILTER_CMP_TYPE_MASK_EQUAL,
4061 SIR_FILTER_CMP_TYPE_NOT_EQUAL,
4062 SIR_FILTER_CMP_TYPE_MASK_NOT_EQUAL,
4063 SIR_FILTER_CMP_TYPE_MAX
4064}eSirRcvPktFltCmpFlagType;
4065
4066typedef struct sSirRcvPktFilterFieldParams
4067{
4068 eSirRcvPktFltProtocolType protocolLayer;
4069 eSirRcvPktFltCmpFlagType cmpFlag;
4070 /* Length of the data to compare */
4071 tANI_U16 dataLength;
4072 /* from start of the respective frame header */
4073 tANI_U8 dataOffset;
4074 /* Reserved field */
4075 tANI_U8 reserved;
4076 /* Data to compare */
4077 tANI_U8 compareData[SIR_MAX_FILTER_TEST_DATA_LEN];
4078 /* Mask to be applied on the received packet data before compare */
4079 tANI_U8 dataMask[SIR_MAX_FILTER_TEST_DATA_LEN];
4080}tSirRcvPktFilterFieldParams, *tpSirRcvPktFilterFieldParams;
4081
4082typedef struct sSirRcvPktFilterCfg
4083{
4084 tANI_U8 filterId;
4085 eSirReceivePacketFilterType filterType;
4086 tANI_U32 numFieldParams;
4087 tANI_U32 coalesceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07004088 tSirMacAddr selfMacAddr;
4089 tSirMacAddr bssId; //Bssid of the connected AP
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004090 tSirRcvPktFilterFieldParams paramsData[SIR_MAX_NUM_TESTS_PER_FILTER];
Jeff Johnson295189b2012-06-20 16:38:30 -07004091}tSirRcvPktFilterCfgType, *tpSirRcvPktFilterCfgType;
4092
4093//
4094// Filter Packet Match Count Parameters
4095//
4096typedef struct sSirRcvFltPktMatchCnt
4097{
4098 tANI_U8 filterId;
4099 tANI_U32 matchCnt;
4100} tSirRcvFltPktMatchCnt, tpSirRcvFltPktMatchCnt;
4101
4102typedef struct sSirRcvFltPktMatchRsp
4103{
4104 tANI_U16 mesgType;
4105 tANI_U16 mesgLen;
4106
4107 /* Success or Failure */
4108 tANI_U32 status;
4109 tSirRcvFltPktMatchCnt filterMatchCnt[SIR_MAX_NUM_FILTERS];
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004110 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004111} tSirRcvFltPktMatchRsp, *tpSirRcvFltPktMatchRsp;
4112
4113//
4114// Receive Filter Clear Parameters
4115//
4116typedef struct sSirRcvFltPktClearParam
4117{
4118 tANI_U32 status; /* only valid for response message */
4119 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004120 tSirMacAddr selfMacAddr;
4121 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004122}tSirRcvFltPktClearParam, *tpSirRcvFltPktClearParam;
4123
4124//
4125// Multicast Address List Parameters
4126//
4127typedef struct sSirRcvFltMcAddrList
4128{
4129 tANI_U32 ulMulticastAddrCnt;
4130 tSirMacAddr multicastAddr[SIR_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07004131 tSirMacAddr selfMacAddr;
4132 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004133} tSirRcvFltMcAddrList, *tpSirRcvFltMcAddrList;
4134#endif // WLAN_FEATURE_PACKET_FILTERING
4135
4136//
4137// Generic version information
4138//
4139typedef struct
4140{
4141 tANI_U8 revision;
4142 tANI_U8 version;
4143 tANI_U8 minor;
4144 tANI_U8 major;
4145} tSirVersionType;
4146
4147typedef struct sAniBtAmpLogLinkReq
4148{
4149 // Common for all types are requests
4150 tANI_U16 msgType; // message type is same as the request type
4151 tANI_U16 msgLen; // length of the entire request
4152 tANI_U8 sessionId; //sme Session Id
4153 void *btampHandle; //AMP context
4154
4155} tAniBtAmpLogLinkReq, *tpAniBtAmpLogLinkReq;
4156
4157#ifdef WLAN_FEATURE_GTK_OFFLOAD
4158/*---------------------------------------------------------------------------
4159* WDA_GTK_OFFLOAD_REQ
4160*--------------------------------------------------------------------------*/
4161typedef struct
4162{
4163 tANI_U32 ulFlags; /* optional flags */
4164 tANI_U8 aKCK[16]; /* Key confirmation key */
4165 tANI_U8 aKEK[16]; /* key encryption key */
4166 tANI_U64 ullKeyReplayCounter; /* replay counter */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004167 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004168} tSirGtkOffloadParams, *tpSirGtkOffloadParams;
4169
4170/*---------------------------------------------------------------------------
4171* WDA_GTK_OFFLOAD_GETINFO_REQ
4172*--------------------------------------------------------------------------*/
4173typedef struct
4174{
4175 tANI_U16 mesgType;
4176 tANI_U16 mesgLen;
4177
4178 tANI_U32 ulStatus; /* success or failure */
4179 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
4180 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
4181 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
4182 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07004183 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004184} tSirGtkOffloadGetInfoRspParams, *tpSirGtkOffloadGetInfoRspParams;
4185#endif // WLAN_FEATURE_GTK_OFFLOAD
4186
4187#ifdef WLAN_WAKEUP_EVENTS
4188/*---------------------------------------------------------------------------
4189 tSirWakeReasonInd
4190---------------------------------------------------------------------------*/
4191typedef struct
4192{
4193 tANI_U16 mesgType;
4194 tANI_U16 mesgLen;
4195 tANI_U32 ulReason; /* see tWakeReasonType */
4196 tANI_U32 ulReasonArg; /* argument specific to the reason type */
4197 tANI_U32 ulStoredDataLen; /* length of optional data stored in this message, in case
4198 HAL truncates the data (i.e. data packets) this length
4199 will be less than the actual length */
4200 tANI_U32 ulActualDataLen; /* actual length of data */
4201 tANI_U8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
4202 see specific wake type */
4203} tSirWakeReasonInd, *tpSirWakeReasonInd;
4204#endif // WLAN_WAKEUP_EVENTS
4205
4206/*---------------------------------------------------------------------------
4207 sAniSetTmLevelReq
4208---------------------------------------------------------------------------*/
4209typedef struct sAniSetTmLevelReq
4210{
4211 tANI_U16 tmMode;
4212 tANI_U16 newTmLevel;
4213} tAniSetTmLevelReq, *tpAniSetTmLevelReq;
4214
4215#endif /* __SIR_API_H */