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