blob: 1181b766a879ef0b1fe5de9c15d83aba99cd0a84 [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
Jeff Johnson295189b2012-06-20 16:38:30 -0700650 tSirRSNie rsnIE; // RSN IE to be sent in
651 // Beacon and Probe
652 // Response frames
653 tSirNwType nwType; // Indicates 11a/b/g
654 tSirMacRateSet operationalRateSet;// Has 11a or 11b rates
655 tSirMacRateSet extendedRateSet; // Has 11g rates
656
Jeff Johnson295189b2012-06-20 16:38:30 -0700657} tSirSmeStartBssReq, *tpSirSmeStartBssReq;
658
659#define GET_IE_LEN_IN_BSS(lenInBss) ( lenInBss + sizeof(lenInBss) - \
660 ((int) OFFSET_OF( tSirBssDescription, ieFields)))
661
662#define WSCIE_PROBE_RSP_LEN (317 + 2)
663
664typedef struct sSirBssDescription
665{
666 //offset of the ieFields from bssId.
667 tANI_U16 length;
668 tSirMacAddr bssId;
669 v_TIME_t scanSysTimeMsec;
670 tANI_U32 timeStamp[2];
671 tANI_U16 beaconInterval;
672 tANI_U16 capabilityInfo;
673 tSirNwType nwType; // Indicates 11a/b/g
674 tANI_U8 aniIndicator;
675 tANI_S8 rssi;
676 tANI_S8 sinr;
677 //channelId what peer sent in beacon/probersp.
678 tANI_U8 channelId;
679 //channelId on which we are parked at.
680 //used only in scan case.
681 tANI_U8 channelIdSelf;
682 tANI_U8 sSirBssDescriptionRsvd[3];
Jeff Johnson295189b2012-06-20 16:38:30 -0700683 tANI_TIMESTAMP nReceivedTime; //base on a tick count. It is a time stamp, not a relative time.
684#if defined WLAN_FEATURE_VOWIFI
685 tANI_U32 parentTSF;
686 tANI_U32 startTSF[2];
687#endif
688#ifdef WLAN_FEATURE_VOWIFI_11R
689 tANI_U8 mdiePresent;
690 tANI_U8 mdie[SIR_MDIE_SIZE]; // MDIE for 11r, picked from the beacons
691#endif
692#ifdef FEATURE_WLAN_CCX
693 tANI_U16 QBSSLoad_present;
694 tANI_U16 QBSSLoad_avail;
695#endif
696 // Please keep the structure 4 bytes aligned above the ieFields
697
698 tANI_U8 fProbeRsp; //whether it is from a probe rsp
Madan Mohan Koyyalamudi2a6ba242012-10-31 17:06:19 -0700699 tANI_U8 reservedPadding1;
700 tANI_U8 reservedPadding2;
701 tANI_U8 reservedPadding3;
Jeff Johnson295189b2012-06-20 16:38:30 -0700702 tANI_U32 WscIeLen;
703 tANI_U8 WscIeProbeRsp[WSCIE_PROBE_RSP_LEN];
Madan Mohan Koyyalamudi2a6ba242012-10-31 17:06:19 -0700704 tANI_U8 reservedPadding4;
Prathyusha Kuntupalli7b8f6aa2012-12-10 13:17:35 -0800705
Jeff Johnson295189b2012-06-20 16:38:30 -0700706 tANI_U32 ieFields[1];
707} tSirBssDescription, *tpSirBssDescription;
708
709/// Definition for response message to previously
710/// issued start BSS request
711/// MAC --->
712typedef struct sSirSmeStartBssRsp
713{
714 tANI_U16 messageType; // eWNI_SME_START_BSS_RSP
715 tANI_U16 length;
716 tANI_U8 sessionId;
717 tANI_U16 transactionId;//transaction ID for cmd
718 tSirResultCodes statusCode;
719 tSirBssType bssType;//Add new type for WDS mode
720 tANI_U16 beaconInterval;//Beacon Interval for both type
721 tANI_U32 staId;//Staion ID for Self
722 tSirBssDescription bssDescription;//Peer BSS description
723} tSirSmeStartBssRsp, *tpSirSmeStartBssRsp;
724
Jeff Johnson295189b2012-06-20 16:38:30 -0700725
726typedef struct sSirChannelList
727{
728 tANI_U8 numChannels;
729 tANI_U8 channelNumber[1];
730} tSirChannelList, *tpSirChannelList;
731
Gopichand Nakkalad492d202013-05-10 02:50:47 +0530732typedef struct sSirDFSChannelList
733{
734 tANI_U32 timeStamp[SIR_MAX_24G_5G_CHANNEL_RANGE];
735
736} tSirDFSChannelList, *tpSirDFSChannelList;
737
Jeff Johnson295189b2012-06-20 16:38:30 -0700738#ifdef FEATURE_WLAN_CCX
739typedef struct sTspecInfo {
740 tANI_U8 valid;
741 tSirMacTspecIE tspec;
742} tTspecInfo;
743
744#define SIR_CCX_MAX_TSPEC_IES 4
745typedef struct sCCXTspecTspecInfo {
746 tANI_U8 numTspecs;
747 tTspecInfo tspec[SIR_CCX_MAX_TSPEC_IES];
748} tCCXTspecInfo;
749#endif
750
Jeff Johnson295189b2012-06-20 16:38:30 -0700751
752/// Definition for Radar Info
753typedef struct sSirRadarInfo
754{
755 tANI_U8 channelNumber;
756 tANI_U16 radarPulseWidth; // in usecond
757 tANI_U16 numRadarPulse;
758} tSirRadarInfo, *tpSirRadarInfo;
759
760#define SIR_RADAR_INFO_SIZE (sizeof(tANI_U8) + 2 *sizeof(tANI_U16))
761
762/// Two Background Scan mode
763typedef enum eSirBackgroundScanMode
764{
765 eSIR_AGGRESSIVE_BACKGROUND_SCAN = 0,
Madan Mohan Koyyalamudi9b876782012-10-11 16:22:51 -0700766 eSIR_NORMAL_BACKGROUND_SCAN = 1,
767 eSIR_ROAMING_SCAN = 2,
Jeff Johnson295189b2012-06-20 16:38:30 -0700768} tSirBackgroundScanMode;
769
770/// Two types of traffic check
771typedef enum eSirLinkTrafficCheck
772{
773 eSIR_DONT_CHECK_LINK_TRAFFIC_BEFORE_SCAN = 0,
Madan Mohan Koyyalamudi9b876782012-10-11 16:22:51 -0700774 eSIR_CHECK_LINK_TRAFFIC_BEFORE_SCAN = 1,
775 eSIR_CHECK_ROAMING_SCAN = 2,
Jeff Johnson295189b2012-06-20 16:38:30 -0700776} tSirLinkTrafficCheck;
777
778#define SIR_BG_SCAN_RETURN_CACHED_RESULTS 0x0
779#define SIR_BG_SCAN_PURGE_RESUTLS 0x80
780#define SIR_BG_SCAN_RETURN_FRESH_RESULTS 0x01
781#define SIR_SCAN_MAX_NUM_SSID 0x09
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700782#define SIR_BG_SCAN_RETURN_LFR_CACHED_RESULTS 0x02
783#define SIR_BG_SCAN_PURGE_LFR_RESULTS 0x40
Jeff Johnson295189b2012-06-20 16:38:30 -0700784
785/// Definition for scan request
786typedef struct sSirSmeScanReq
787{
788 tANI_U16 messageType; // eWNI_SME_SCAN_REQ
789 tANI_U16 length;
790 tANI_U8 sessionId; // Session ID
791 tANI_U16 transactionId; // Transaction ID for cmd
792 tSirMacAddr bssId;
793 tSirMacSSid ssId[SIR_SCAN_MAX_NUM_SSID];
794 tSirMacAddr selfMacAddr; //Added For BT-AMP Support
795 tSirBssType bssType;
796 tANI_U8 dot11mode;
797 tSirScanType scanType;
798 /**
799 * minChannelTime. Not used if scanType is passive.
800 * 0x0 - Dont Use min channel timer. Only max channel timeout will used.
801 * 11k measurements set this to zero to user only single duration for scan.
802 * <valid timeout> - Timeout value used for min channel timeout.
803 */
804 tANI_U32 minChannelTime;
805 /**
806 * maxChannelTime.
807 * 0x0 - Invalid. In case of active scan.
808 * In case of passive scan, MAX( maxChannelTime, WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME) is used.
809 *
810 */
811 tANI_U32 maxChannelTime;
812 /**
813 * returnAfterFirstMatch can take following values:
814 * 0x00 - Return SCAN_RSP message after complete channel scan
815 * 0x01 - Return SCAN_RSP message after collecting BSS description
816 * that matches scan criteria.
817 * 0xC0 - Return after collecting first 11d IE from 2.4 GHz &
818 * 5 GHz band channels
819 * 0x80 - Return after collecting first 11d IE from 5 GHz band
820 * channels
821 * 0x40 - Return after collecting first 11d IE from 2.4 GHz
822 * band channels
823 *
824 * Values of 0xC0, 0x80 & 0x40 are to be used by
825 * Roaming/application when 11d is enabled.
826 */
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -0800827 tANI_U32 minChannelTimeBtc; //in units of milliseconds
828 tANI_U32 maxChannelTimeBtc; //in units of milliseconds
Jeff Johnson295189b2012-06-20 16:38:30 -0700829 tANI_U8 returnAfterFirstMatch;
830
831 /**
832 * returnUniqueResults can take following values:
833 * 0 - Collect & report all received BSS descriptions from same BSS.
834 * 1 - Collect & report unique BSS description from same BSS.
835 */
836 tANI_U8 returnUniqueResults;
837
838 /**
839 * returnFreshResults can take following values:
840 * 0x00 - Return background scan results.
841 * 0x80 - Return & purge background scan results
842 * 0x01 - Trigger fresh scan instead of returning background scan
843 * results.
844 * 0x81 - Trigger fresh scan instead of returning background scan
845 * results and purge background scan results.
846 */
847 tANI_U8 returnFreshResults;
848
849 /* backgroundScanMode can take following values:
850 * 0x0 - agressive scan
851 * 0x1 - normal scan where HAL will check for link traffic
852 * prior to proceeding with the scan
853 */
854 tSirBackgroundScanMode backgroundScanMode;
855
856 tANI_U8 hiddenSsid;
857
858 /* Number of SSIDs to scan */
859 tANI_U8 numSsid;
860
861 //channelList has to be the last member of this structure. Check tSirChannelList for the reason.
862 /* This MUST be the last field of the structure */
863
864
Jeff Johnson295189b2012-06-20 16:38:30 -0700865 tANI_BOOLEAN p2pSearch;
Jeff Johnson295189b2012-06-20 16:38:30 -0700866 tANI_U16 uIEFieldLen;
867 tANI_U16 uIEFieldOffset;
868
869 //channelList MUST be the last field of this structure
870 tSirChannelList channelList;
871 /*-----------------------------
872 tSirSmeScanReq....
873 -----------------------------
874 uIEFiledLen
875 -----------------------------
876 uIEFiledOffset ----+
877 ----------------------------- |
878 channelList.numChannels |
879 ----------------------------- |
880 ... variable size up to |
881 channelNumber[numChannels-1] |
882 This can be zero, if |
883 numChannel is zero. |
884 ----------------------------- <--+
885 ... variable size uIEFiled
886 up to uIEFieldLen (can be 0)
887 -----------------------------*/
888} tSirSmeScanReq, *tpSirSmeScanReq;
889
Madan Mohan Koyyalamudiff3a7152013-06-13 14:47:55 +0530890typedef struct sSirSmeScanAbortReq
891{
892 tANI_U16 type;
893 tANI_U16 msgLen;
894 tANI_U8 sessionId;
895} tSirSmeScanAbortReq, *tpSirSmeScanAbortReq;
896
Madan Mohan Koyyalamudide1b5bc2013-07-12 00:56:04 +0530897typedef struct sSirSmeScanChanReq
898{
899 tANI_U16 type;
900 tANI_U16 msgLen;
901 tANI_U8 sessionId;
902 tANI_U16 transcationId;
903} tSirSmeGetScanChanReq, *tpSirSmeGetScanChanReq;
904
Jeff Johnsone7245742012-09-05 17:12:55 -0700905#ifdef FEATURE_OEM_DATA_SUPPORT
906
907#ifndef OEM_DATA_REQ_SIZE
Madan Mohan Koyyalamudi7a4d9312012-12-04 17:21:36 -0800908#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -0700909#endif
910#ifndef OEM_DATA_RSP_SIZE
Madan Mohan Koyyalamudi7a4d9312012-12-04 17:21:36 -0800911#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -0700912#endif
913
914typedef struct sSirOemDataReq
915{
916 tANI_U16 messageType; //eWNI_SME_OEM_DATA_REQ
917 tSirMacAddr selfMacAddr;
918 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
919} tSirOemDataReq, *tpSirOemDataReq;
920
921typedef struct sSirOemDataRsp
922{
923 tANI_U16 messageType;
924 tANI_U16 length;
925 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
926} tSirOemDataRsp, *tpSirOemDataRsp;
927
928#endif //FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -0700929
930/// Definition for response message to previously issued scan request
931typedef struct sSirSmeScanRsp
932{
933 tANI_U16 messageType; // eWNI_SME_SCAN_RSP
934 tANI_U16 length;
935 tANI_U8 sessionId;
936 tSirResultCodes statusCode;
937 tANI_U16 transcationId;
938 tSirBssDescription bssDescription[1];
939} tSirSmeScanRsp, *tpSirSmeScanRsp;
940
941/// Sme Req message to set the Background Scan mode
942typedef struct sSirSmeBackgroundScanModeReq
943{
944 tANI_U16 messageType; // eWNI_SME_BACKGROUND_SCAN_MODE_REQ
945 tANI_U16 length;
946 tSirBackgroundScanMode mode;
947} tSirSmeBackgroundScanModeReq, *tpSirSmeBackgroundScanModeReq;
948
949/// Background Scan Statisics
950typedef struct sSirBackgroundScanInfo {
951 tANI_U32 numOfScanSuccess;
952 tANI_U32 numOfScanFailure;
953 tANI_U32 reserved;
954} tSirBackgroundScanInfo, *tpSirBackgroundScanInfo;
955
956#define SIR_BACKGROUND_SCAN_INFO_SIZE (3 * sizeof(tANI_U32))
957
958/// Definition for Authentication request
959typedef struct sSirSmeAuthReq
960{
961 tANI_U16 messageType; // eWNI_SME_AUTH_REQ
962 tANI_U16 length;
963 tANI_U8 sessionId; // Session ID
964 tANI_U16 transactionId; // Transaction ID for cmd
965 tSirMacAddr bssId; // Self BSSID
966 tSirMacAddr peerMacAddr;
967 tAniAuthType authType;
968 tANI_U8 channelNumber;
969} tSirSmeAuthReq, *tpSirSmeAuthReq;
970
971/// Definition for reponse message to previously issued Auth request
972typedef struct sSirSmeAuthRsp
973{
974 tANI_U16 messageType; // eWNI_SME_AUTH_RSP
975 tANI_U16 length;
976 tANI_U8 sessionId; // Session ID
977 tANI_U16 transactionId; // Transaction ID for cmd
978 tSirMacAddr peerMacAddr;
979 tAniAuthType authType;
980 tSirResultCodes statusCode;
981 tANI_U16 protStatusCode; //It holds reasonCode when Pre-Auth fails due to deauth frame.
982 //Otherwise it holds status code.
983} tSirSmeAuthRsp, *tpSirSmeAuthRsp;
984
Jeff Johnson295189b2012-06-20 16:38:30 -0700985
Jeff Johnson295189b2012-06-20 16:38:30 -0700986
Jeff Johnson295189b2012-06-20 16:38:30 -0700987/// Definition for Join/Reassoc info - Reshmi: need to check if this is a def which moved from elsehwere.
988typedef struct sJoinReassocInfo
989{
990 tAniTitanCBNeighborInfo cbNeighbors;
991 tAniBool spectrumMgtIndicator;
992 tSirMacPowerCapInfo powerCap;
993 tSirSupChnl supportedChannels;
994} tJoinReassocInfo, *tpJoinReassocInfo;
Jeff Johnson295189b2012-06-20 16:38:30 -0700995
996/// Definition for join request
997/// ---> MAC
998/// WARNING! If you add a field in JOIN REQ.
999/// Make sure to add it in REASSOC REQ
1000/// The Serdes function is the same and its
1001/// shared with REASSOC. So if we add a field
1002// here and dont add it in REASSOC REQ. It will BREAK!!! REASSOC.
1003typedef struct sSirSmeJoinReq
1004{
1005 tANI_U16 messageType; // eWNI_SME_JOIN_REQ
1006 tANI_U16 length;
Jeff Johnsone7245742012-09-05 17:12:55 -07001007 tANI_U8 sessionId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001008 tANI_U16 transactionId;
1009 tSirMacSSid ssId;
1010 tSirMacAddr selfMacAddr; // self Mac address
1011 tSirBssType bsstype; // add new type for BT -AMP STA and AP Modules
1012 tANI_U8 dot11mode; // to support BT-AMP
Jeff Johnsone7245742012-09-05 17:12:55 -07001013 tVOS_CON_MODE staPersona; //Persona
1014 ePhyChanBondState cbMode; // Pass CB mode value in Join.
Jeff Johnson295189b2012-06-20 16:38:30 -07001015
1016 /*This contains the UAPSD Flag for all 4 AC
1017 * B0: AC_VO UAPSD FLAG
1018 * B1: AC_VI UAPSD FLAG
1019 * B2: AC_BK UAPSD FLAG
1020 * B3: AC_BE UASPD FLAG
1021 */
1022 tANI_U8 uapsdPerAcBitmask;
1023
Jeff Johnson295189b2012-06-20 16:38:30 -07001024 tSirMacRateSet operationalRateSet;// Has 11a or 11b rates
1025 tSirMacRateSet extendedRateSet; // Has 11g rates
1026 tSirRSNie rsnIE; // RSN IE to be sent in
1027 // (Re) Association Request
1028#ifdef FEATURE_WLAN_CCX
1029 tSirCCKMie cckmIE; // CCMK IE to be included as handler for join and reassoc is
1030 // the same. The join will never carry cckm, but will be set to
1031 // 0.
1032#endif
1033
1034 tSirAddie addIEScan; // Additional IE to be sent in
1035 // (unicast) Probe Request at the time of join
1036
1037 tSirAddie addIEAssoc; // Additional IE to be sent in
1038 // (Re) Association Request
1039
1040 tAniEdType UCEncryptionType;
1041
1042 tAniEdType MCEncryptionType;
Chet Lanctot186b5732013-03-18 10:26:30 -07001043
1044#ifdef WLAN_FEATURE_11W
1045 tAniEdType MgmtEncryptionType;
1046#endif
1047
Jeff Johnson295189b2012-06-20 16:38:30 -07001048#ifdef WLAN_FEATURE_VOWIFI_11R
1049 tAniBool is11Rconnection;
1050#endif
1051#ifdef FEATURE_WLAN_CCX
Gopichand Nakkala0ae39db2013-06-10 20:35:49 +05301052 tAniBool isCCXFeatureIniEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07001053 tAniBool isCCXconnection;
1054 tCCXTspecInfo ccxTspecInfo;
1055#endif
1056
Jeff Johnson04dd8a82012-06-29 20:41:40 -07001057#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07001058 tAniBool isFastTransitionEnabled;
1059#endif
Jeff Johnson43971f52012-07-17 12:26:56 -07001060#ifdef FEATURE_WLAN_LFR
1061 tAniBool isFastRoamIniFeatureEnabled;
1062#endif
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001063
1064 tANI_U8 txLdpcIniFeatureEnabled;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001065#ifdef WLAN_FEATURE_11AC
1066 tANI_U8 txBFIniFeatureEnabled;
Shailender Karmuchicc3fe442013-02-16 18:18:33 -08001067 tANI_U8 txBFCsnValue;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001068#endif
krunal soni5afa96c2013-09-06 22:19:02 -07001069 tANI_U8 isAmsduSupportInAMPDU;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001070
Jeff Johnson295189b2012-06-20 16:38:30 -07001071 tAniTitanCBNeighborInfo cbNeighbors;
1072 tAniBool spectrumMgtIndicator;
1073 tSirMacPowerCapInfo powerCap;
1074 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001075 tSirBssDescription bssDescription;
Jeff Johnson295189b2012-06-20 16:38:30 -07001076
1077} tSirSmeJoinReq, *tpSirSmeJoinReq;
1078
1079/// Definition for reponse message to previously issued join request
1080/// MAC --->
1081typedef struct sSirSmeJoinRsp
1082{
1083 tANI_U16 messageType; // eWNI_SME_JOIN_RSP
1084 tANI_U16 length;
1085 tANI_U8 sessionId; // Session ID
1086 tANI_U16 transactionId; // Transaction ID for cmd
1087 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001088 tAniAuthType authType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001089 tANI_U16 protStatusCode; //It holds reasonCode when join fails due to deauth/disassoc frame.
1090 //Otherwise it holds status code.
1091 tANI_U16 aid;
1092 tANI_U32 beaconLength;
1093 tANI_U32 assocReqLength;
1094 tANI_U32 assocRspLength;
1095#ifdef WLAN_FEATURE_VOWIFI_11R
1096 tANI_U32 parsedRicRspLen;
1097#endif
1098#ifdef FEATURE_WLAN_CCX
1099 tANI_U32 tspecIeLen;
1100#endif
1101 tANI_U32 staId;//Station ID for peer
1102
1103 /*The DPU signatures will be sent eventually to TL to help it determine the
1104 association to which a packet belongs to*/
1105 /*Unicast DPU signature*/
1106 tANI_U8 ucastSig;
1107
1108 /*Broadcast DPU signature*/
1109 tANI_U8 bcastSig;
1110
1111 tANI_U8 frames[ 1 ];
1112} tSirSmeJoinRsp, *tpSirSmeJoinRsp;
1113
1114/// Definition for Authentication indication from peer
1115typedef struct sSirSmeAuthInd
1116{
1117 tANI_U16 messageType; // eWNI_SME_AUTH_IND
1118 tANI_U16 length;
1119 tANI_U8 sessionId;
1120 tSirMacAddr bssId; // Self BSSID
1121 tSirMacAddr peerMacAddr;
1122 tAniAuthType authType;
1123} tSirSmeAuthInd, *tpSirSmeAuthInd;
1124
1125/// probereq from peer, when wsc is enabled
1126typedef struct sSirSmeProbereq
1127{
1128 tANI_U16 messageType; // eWNI_SME_PROBE_REQ
1129 tANI_U16 length;
1130 tANI_U8 sessionId;
1131 tSirMacAddr peerMacAddr;
1132 tANI_U16 devicePasswdId;
1133} tSirSmeProbeReq, *tpSirSmeProbeReq;
1134
1135/// Definition for Association indication from peer
1136/// MAC --->
1137typedef struct sSirSmeAssocInd
1138{
1139 tANI_U16 messageType; // eWNI_SME_ASSOC_IND
1140 tANI_U16 length;
1141 tANI_U8 sessionId;
1142 tSirMacAddr peerMacAddr;
1143 tANI_U16 aid;
1144 tSirMacAddr bssId; // Self BSSID
1145 tANI_U16 staId; // Station ID for peer
1146 tANI_U8 uniSig; // DPU signature for unicast packets
1147 tANI_U8 bcastSig; // DPU signature for broadcast packets
1148 tAniAuthType authType;
1149 tAniSSID ssId; // SSID used by STA to associate
1150 tSirRSNie rsnIE;// RSN IE received from peer
1151 tSirAddie addIE;// Additional IE received from peer, which possibly include WSC IE and/or P2P IE
1152
Jeff Johnson295189b2012-06-20 16:38:30 -07001153 // powerCap & supportedChannels are present only when
1154 // spectrumMgtIndicator flag is set
1155 tAniBool spectrumMgtIndicator;
1156 tSirMacPowerCapInfo powerCap;
1157 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001158 tAniBool wmmEnabledSta; /* if present - STA is WMM enabled */
1159 tAniBool reassocReq;
1160 // Required for indicating the frames to upper layer
1161 tANI_U32 beaconLength;
1162 tANI_U8* beaconPtr;
1163 tANI_U32 assocReqLength;
1164 tANI_U8* assocReqPtr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001165} tSirSmeAssocInd, *tpSirSmeAssocInd;
1166
1167
1168/// Definition for Association confirm
1169/// ---> MAC
1170typedef struct sSirSmeAssocCnf
1171{
1172 tANI_U16 messageType; // eWNI_SME_ASSOC_CNF
1173 tANI_U16 length;
1174 tSirResultCodes statusCode;
1175 tSirMacAddr bssId; // Self BSSID
1176 tSirMacAddr peerMacAddr;
1177 tANI_U16 aid;
1178 tSirMacAddr alternateBssId;
1179 tANI_U8 alternateChannelId;
1180} tSirSmeAssocCnf, *tpSirSmeAssocCnf;
1181
Jeff Johnson295189b2012-06-20 16:38:30 -07001182/// Definition for Reassociation indication from peer
1183typedef struct sSirSmeReassocInd
1184{
1185 tANI_U16 messageType; // eWNI_SME_REASSOC_IND
1186 tANI_U16 length;
1187 tANI_U8 sessionId; // Session ID
1188 tSirMacAddr peerMacAddr;
1189 tSirMacAddr oldMacAddr;
1190 tANI_U16 aid;
1191 tSirMacAddr bssId; // Self BSSID
1192 tANI_U16 staId; // Station ID for peer
1193 tAniAuthType authType;
1194 tAniSSID ssId; // SSID used by STA to reassociate
1195 tSirRSNie rsnIE; // RSN IE received from peer
1196
1197 tSirAddie addIE; // Additional IE received from peer
1198
Jeff Johnson295189b2012-06-20 16:38:30 -07001199 // powerCap & supportedChannels are present only when
1200 // spectrumMgtIndicator flag is set
1201 tAniBool spectrumMgtIndicator;
1202 tSirMacPowerCapInfo powerCap;
1203 tSirSupChnl supportedChannels;
Jeff Johnson295189b2012-06-20 16:38:30 -07001204 // Required for indicating the frames to upper layer
1205 // TODO: use the appropriate names to distinguish between the other similar names used above for station mode of operation
1206 tANI_U32 beaconLength;
1207 tANI_U8* beaconPtr;
1208 tANI_U32 assocReqLength;
1209 tANI_U8* assocReqPtr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001210} tSirSmeReassocInd, *tpSirSmeReassocInd;
1211
1212/// Definition for Reassociation confirm
1213/// ---> MAC
1214typedef struct sSirSmeReassocCnf
1215{
1216 tANI_U16 messageType; // eWNI_SME_REASSOC_CNF
1217 tANI_U16 length;
1218 tSirResultCodes statusCode;
1219 tSirMacAddr bssId; // Self BSSID
1220 tSirMacAddr peerMacAddr;
1221 tANI_U16 aid;
1222 tSirMacAddr alternateBssId;
1223 tANI_U8 alternateChannelId;
1224} tSirSmeReassocCnf, *tpSirSmeReassocCnf;
1225
Jeff Johnson295189b2012-06-20 16:38:30 -07001226
1227/// Enum definition for Wireless medium status change codes
1228typedef enum eSirSmeStatusChangeCode
1229{
1230 eSIR_SME_DEAUTH_FROM_PEER,
1231 eSIR_SME_DISASSOC_FROM_PEER,
1232 eSIR_SME_LOST_LINK_WITH_PEER,
1233 eSIR_SME_CHANNEL_SWITCH,
1234 eSIR_SME_JOINED_NEW_BSS,
1235 eSIR_SME_LEAVING_BSS,
1236 eSIR_SME_IBSS_ACTIVE,
1237 eSIR_SME_IBSS_INACTIVE,
1238 eSIR_SME_IBSS_PEER_DEPARTED,
1239 eSIR_SME_RADAR_DETECTED,
1240 eSIR_SME_IBSS_NEW_PEER,
1241 eSIR_SME_AP_CAPS_CHANGED,
1242 eSIR_SME_BACKGROUND_SCAN_FAIL,
1243 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_AP,
1244 eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
1245} tSirSmeStatusChangeCode;
1246
1247typedef struct sSirSmeNewBssInfo
1248{
1249 tSirMacAddr bssId;
1250 tANI_U8 channelNumber;
1251 tANI_U8 reserved;
1252 tSirMacSSid ssId;
1253} tSirSmeNewBssInfo, *tpSirSmeNewBssInfo;
1254
1255typedef struct sSirSmeApNewCaps
1256{
1257 tANI_U16 capabilityInfo;
1258 tSirMacAddr bssId;
1259 tANI_U8 channelId;
1260 tANI_U8 reserved[3];
1261 tSirMacSSid ssId;
1262} tSirSmeApNewCaps, *tpSirSmeApNewCaps;
1263
1264/**
1265 * Table below indicates what information is passed for each of
1266 * the Wireless Media status change notifications:
1267 *
1268 * Status Change code Status change info
1269 * ----------------------------------------------------------------------
1270 * eSIR_SME_DEAUTH_FROM_PEER Reason code received in DEAUTH frame
1271 * eSIR_SME_DISASSOC_FROM_PEER Reason code received in DISASSOC frame
1272 * eSIR_SME_LOST_LINK_WITH_PEER None
1273 * eSIR_SME_CHANNEL_SWITCH New channel number
1274 * eSIR_SME_JOINED_NEW_BSS BSSID, SSID and channel number
1275 * eSIR_SME_LEAVING_BSS None
1276 * eSIR_SME_IBSS_ACTIVE Indicates that another STA joined
1277 * IBSS apart from this STA that
1278 * started IBSS
1279 * eSIR_SME_IBSS_INACTIVE Indicates that only this STA is left
1280 * in IBSS
1281 * eSIR_SME_RADAR_DETECTED Indicates that radar is detected
1282 * eSIR_SME_IBSS_NEW_PEER Indicates that a new peer is detected
1283 * eSIR_SME_AP_CAPS_CHANGED Indicates that capabilities of the AP
1284 * that STA is currently associated with
1285 * have changed.
1286 * eSIR_SME_BACKGROUND_SCAN_FAIL Indicates background scan failure
1287 */
1288
1289/// Definition for Wireless medium status change notification
1290typedef struct sSirSmeWmStatusChangeNtf
1291{
1292 tANI_U16 messageType; // eWNI_SME_WM_STATUS_CHANGE_NTF
1293 tANI_U16 length;
1294 tANI_U8 sessionId; // Session ID
1295 tSirSmeStatusChangeCode statusChangeCode;
1296 tSirMacAddr bssId; // Self BSSID
1297 union
1298 {
1299 tANI_U16 deAuthReasonCode; // eSIR_SME_DEAUTH_FROM_PEER
1300 tANI_U16 disassocReasonCode; // eSIR_SME_DISASSOC_FROM_PEER
1301 // none for eSIR_SME_LOST_LINK_WITH_PEER
1302 tANI_U8 newChannelId; // eSIR_SME_CHANNEL_SWITCH
1303 tSirSmeNewBssInfo newBssInfo; // eSIR_SME_JOINED_NEW_BSS
1304 // none for eSIR_SME_LEAVING_BSS
1305 // none for eSIR_SME_IBSS_ACTIVE
1306 // none for eSIR_SME_IBSS_INACTIVE
Jeff Johnson295189b2012-06-20 16:38:30 -07001307 tSirNewIbssPeerInfo newIbssPeerInfo; // eSIR_SME_IBSS_NEW_PEER
1308 tSirSmeApNewCaps apNewCaps; // eSIR_SME_AP_CAPS_CHANGED
1309 tSirBackgroundScanInfo bkgndScanInfo; // eSIR_SME_BACKGROUND_SCAN_FAIL
1310 tAniTitanCBNeighborInfo cbNeighbors; // eSIR_SME_CB_LEGACY_BSS_FOUND_BY_STA
Jeff Johnson295189b2012-06-20 16:38:30 -07001311 } statusChangeInfo;
1312} tSirSmeWmStatusChangeNtf, *tpSirSmeWmStatusChangeNtf;
1313
1314/// Definition for Disassociation request
1315typedef
Jeff Johnson295189b2012-06-20 16:38:30 -07001316__ani_attr_pre_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001317struct sSirSmeDisassocReq
1318{
1319 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1320 tANI_U16 length;
1321 tANI_U8 sessionId; // Session ID
1322 tANI_U16 transactionId; // Transaction ID for cmd
1323 tSirMacAddr bssId; // Peer BSSID
1324 tSirMacAddr peerMacAddr;
1325 tANI_U16 reasonCode;
1326 tANI_U8 doNotSendOverTheAir; //This flag tells LIM whether to send the disassoc OTA or not
1327 //This will be set in while handing off from one AP to other
Jeff Johnson295189b2012-06-20 16:38:30 -07001328}
Jeff Johnson295189b2012-06-20 16:38:30 -07001329__ani_attr_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001330tSirSmeDisassocReq, *tpSirSmeDisassocReq;
1331
1332/// Definition for Tkip countermeasures request
Jeff Johnson295189b2012-06-20 16:38:30 -07001333typedef __ani_attr_pre_packed struct sSirSmeTkipCntrMeasReq
1334{
1335 tANI_U16 messageType; // eWNI_SME_DISASSOC_REQ
1336 tANI_U16 length;
1337 tANI_U8 sessionId; // Session ID
1338 tANI_U16 transactionId; // Transaction ID for cmd
1339 tSirMacAddr bssId; // Peer BSSID
1340 tANI_BOOLEAN bEnable; // Start/stop countermeasures
1341} __ani_attr_packed tSirSmeTkipCntrMeasReq, *tpSirSmeTkipCntrMeasReq;
Jeff Johnson295189b2012-06-20 16:38:30 -07001342
1343typedef struct sAni64BitCounters
1344{
1345 tANI_U32 Hi;
1346 tANI_U32 Lo;
1347}tAni64BitCounters, *tpAni64BitCounters;
1348
1349typedef struct sAniSecurityStat
1350{
1351 tAni64BitCounters txBlks;
1352 tAni64BitCounters rxBlks;
1353 tAni64BitCounters formatErrorCnt;
1354 tAni64BitCounters decryptErr;
1355 tAni64BitCounters protExclCnt;
1356 tAni64BitCounters unDecryptableCnt;
1357 tAni64BitCounters decryptOkCnt;
1358
1359}tAniSecurityStat, *tpAniSecurityStat;
1360
1361typedef struct sAniTxRxCounters
1362{
1363 tANI_U32 txFrames; // Incremented for every packet tx
1364 tANI_U32 rxFrames;
1365 tANI_U32 nRcvBytes;
1366 tANI_U32 nXmitBytes;
1367}tAniTxRxCounters, *tpAniTxRxCounters;
1368
1369typedef struct sAniTxRxStats
1370{
1371 tAni64BitCounters txFrames;
1372 tAni64BitCounters rxFrames;
1373 tAni64BitCounters nRcvBytes;
1374 tAni64BitCounters nXmitBytes;
1375
1376}tAniTxRxStats,*tpAniTxRxStats;
1377
1378typedef struct sAniSecStats
1379{
1380 tAniSecurityStat aes;
1381 tAni64BitCounters aesReplays;
1382 tAniSecurityStat tkip;
1383 tAni64BitCounters tkipReplays;
1384 tAni64BitCounters tkipMicError;
1385
1386 tAniSecurityStat wep;
1387#if defined(FEATURE_WLAN_WAPI) && !defined(LIBRA_WAPI_SUPPORT)
1388 tAniSecurityStat wpi;
1389 tAni64BitCounters wpiReplays;
1390 tAni64BitCounters wpiMicError;
1391#endif
1392}tAniSecStats, *tpAniSecStats;
1393
1394#define SIR_MAX_RX_CHAINS 3
1395
1396typedef struct sAniStaStatStruct
1397{
1398 /* following statistic elements till expandPktRxCntLo are not filled with valid data.
1399 * These are kept as it is, since WSM is using this structure.
1400 * These elements can be removed whenever WSM is updated.
1401 * Phystats is used to hold phystats from BD.
1402 */
1403 tANI_U32 sentAesBlksUcastHi;
1404 tANI_U32 sentAesBlksUcastLo;
1405 tANI_U32 recvAesBlksUcastHi;
1406 tANI_U32 recvAesBlksUcastLo;
1407 tANI_U32 aesFormatErrorUcastCnts;
1408 tANI_U32 aesReplaysUcast;
1409 tANI_U32 aesDecryptErrUcast;
1410 tANI_U32 singleRetryPkts;
1411 tANI_U32 failedTxPkts;
1412 tANI_U32 ackTimeouts;
1413 tANI_U32 multiRetryPkts;
1414 tANI_U32 fragTxCntsHi;
1415 tANI_U32 fragTxCntsLo;
1416 tANI_U32 transmittedPktsHi;
1417 tANI_U32 transmittedPktsLo;
1418 tANI_U32 phyStatHi; //These are used to fill in the phystats.
1419 tANI_U32 phyStatLo; //This is only for private use.
1420
1421 tANI_U32 uplinkRssi;
1422 tANI_U32 uplinkSinr;
1423 tANI_U32 uplinkRate;
1424 tANI_U32 downlinkRssi;
1425 tANI_U32 downlinkSinr;
1426 tANI_U32 downlinkRate;
1427 tANI_U32 nRcvBytes;
1428 tANI_U32 nXmitBytes;
1429
1430 // titan 3c stats
1431 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1432 tANI_U32 chunksTxCntLo;
1433 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1434 tANI_U32 compPktRxCntLo;
1435 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1436 tANI_U32 expanPktRxCntLo;
1437
1438
1439 /* Following elements are valid and filled in correctly. They have valid values.
1440 */
1441
1442 //Unicast frames and bytes.
1443 tAniTxRxStats ucStats;
1444
1445 //Broadcast frames and bytes.
1446 tAniTxRxStats bcStats;
1447
1448 //Multicast frames and bytes.
1449 tAniTxRxStats mcStats;
1450
1451 tANI_U32 currentTxRate;
1452 tANI_U32 currentRxRate; //Rate in 100Kbps
1453
1454 tANI_U32 maxTxRate;
1455 tANI_U32 maxRxRate;
1456
1457 tANI_S8 rssi[SIR_MAX_RX_CHAINS];
1458
1459
1460 tAniSecStats securityStats;
1461
1462 tANI_U8 currentRxRateIdx; //This the softmac rate Index.
1463 tANI_U8 currentTxRateIdx;
1464
1465} tAniStaStatStruct, *tpAniStaStatStruct;
1466
1467//Statistics that are not maintained per stations.
1468typedef struct sAniGlobalStatStruct
1469{
1470 tAni64BitCounters txError;
1471 tAni64BitCounters rxError;
1472 tAni64BitCounters rxDropNoBuffer;
1473 tAni64BitCounters rxDropDup;
1474 tAni64BitCounters rxCRCError;
1475
1476 tAni64BitCounters singleRetryPkts;
1477 tAni64BitCounters failedTxPkts;
1478 tAni64BitCounters ackTimeouts;
1479 tAni64BitCounters multiRetryPkts;
1480 tAni64BitCounters fragTxCnts;
1481 tAni64BitCounters fragRxCnts;
1482
1483 tAni64BitCounters txRTSSuccess;
1484 tAni64BitCounters txCTSSuccess;
1485 tAni64BitCounters rxRTSSuccess;
1486 tAni64BitCounters rxCTSSuccess;
1487
1488 tAniSecStats securityStats;
1489
1490 tAniTxRxStats mcStats;
1491 tAniTxRxStats bcStats;
1492
1493}tAniGlobalStatStruct,*tpAniGlobalStatStruct;
1494
1495typedef enum sPacketType
1496{
1497 ePACKET_TYPE_UNKNOWN,
1498 ePACKET_TYPE_11A,
1499 ePACKET_TYPE_11G,
1500 ePACKET_TYPE_11B,
1501 ePACKET_TYPE_11N
1502
1503}tPacketType, *tpPacketType;
1504
1505typedef struct sAniStatSummaryStruct
1506{
1507 tAniTxRxStats uc; //Unicast counters.
1508 tAniTxRxStats bc; //Broadcast counters.
1509 tAniTxRxStats mc; //Multicast counters.
1510 tAni64BitCounters txError;
1511 tAni64BitCounters rxError;
1512 tANI_S8 rssi[SIR_MAX_RX_CHAINS]; //For each chain.
1513 tANI_U32 rxRate; // Rx rate of the last received packet.
1514 tANI_U32 txRate;
1515 tANI_U16 rxMCSId; //MCS index is valid only when packet type is ePACKET_TYPE_11N
1516 tANI_U16 txMCSId;
1517 tPacketType rxPacketType;
1518 tPacketType txPacketType;
1519 tSirMacAddr macAddr; //Mac Address of the station from which above RSSI and rate is from.
1520}tAniStatSummaryStruct,*tpAniStatSummaryStruct;
1521
Jeff Johnson295189b2012-06-20 16:38:30 -07001522//structure for stats that may be reset, like the ones in sta descriptor
1523//The stats are saved into here before reset. It should be tANI_U32 aligned.
1524typedef struct _sPermStaStats
1525{
1526 //tANI_U32 sentAesBlksUcastHi;
1527 //tANI_U32 sentAesBlksUcastLo;
1528 //tANI_U32 recvAesBlksUcastHi;
1529 //tANI_U32 recvAesBlksUcastLo;
1530 tANI_U32 aesFormatErrorUcastCnts;
1531 tANI_U32 aesReplaysUcast;
1532 tANI_U32 aesDecryptErrUcast;
1533 tANI_U32 singleRetryPkts;
1534 tANI_U32 failedTxPkts;
1535 tANI_U32 ackTimeouts;
1536 tANI_U32 multiRetryPkts;
1537 tANI_U32 fragTxCntsHi;
1538 tANI_U32 fragTxCntsLo;
1539 tANI_U32 transmittedPktsHi;
1540 tANI_U32 transmittedPktsLo;
1541
1542 // titan 3c stats
1543 tANI_U32 chunksTxCntHi; // Number of Chunks Transmitted
1544 tANI_U32 chunksTxCntLo;
1545 tANI_U32 compPktRxCntHi; // Number of Packets Received that were actually compressed
1546 tANI_U32 compPktRxCntLo;
1547 tANI_U32 expanPktRxCntHi; // Number of Packets Received that got expanded
1548 tANI_U32 expanPktRxCntLo;
1549}tPermanentStaStats;
1550
Jeff Johnson295189b2012-06-20 16:38:30 -07001551
1552
1553
1554/// Definition for Disassociation response
1555typedef struct sSirSmeDisassocRsp
1556{
1557 tANI_U16 messageType; // eWNI_SME_DISASSOC_RSP
1558 tANI_U16 length;
1559 tANI_U8 sessionId; // Session ID
1560 tANI_U16 transactionId; // Transaction ID for cmd
1561 tSirResultCodes statusCode;
1562 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001563 tAniStaStatStruct perStaStats; // STA stats
Jeff Johnson295189b2012-06-20 16:38:30 -07001564 tANI_U16 staId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001565}
Jeff Johnson295189b2012-06-20 16:38:30 -07001566__ani_attr_packed
Jeff Johnson295189b2012-06-20 16:38:30 -07001567 tSirSmeDisassocRsp, *tpSirSmeDisassocRsp;
1568
1569/// Definition for Disassociation indication from peer
1570typedef struct sSirSmeDisassocInd
1571{
1572 tANI_U16 messageType; // eWNI_SME_DISASSOC_IND
1573 tANI_U16 length;
1574 tANI_U8 sessionId; // Session Identifier
1575 tANI_U16 transactionId; // Transaction Identifier with PE
1576 tSirResultCodes statusCode;
1577 tSirMacAddr bssId;
1578 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001579 tAniStaStatStruct perStaStats; // STA stats
Jeff Johnson295189b2012-06-20 16:38:30 -07001580 tANI_U16 staId;
Mohit Khanna99d5fd02012-09-11 14:51:20 -07001581 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001582} tSirSmeDisassocInd, *tpSirSmeDisassocInd;
1583
1584/// Definition for Disassociation confirm
1585/// MAC --->
1586typedef struct sSirSmeDisassocCnf
1587{
1588 tANI_U16 messageType; // eWNI_SME_DISASSOC_CNF
1589 tANI_U16 length;
1590 tSirResultCodes statusCode;
1591 tSirMacAddr bssId;
1592 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001593} tSirSmeDisassocCnf, *tpSirSmeDisassocCnf;
1594
1595/// Definition for Deauthetication request
1596typedef struct sSirSmeDeauthReq
1597{
1598 tANI_U16 messageType; // eWNI_SME_DEAUTH_REQ
1599 tANI_U16 length;
1600 tANI_U8 sessionId; // Session ID
1601 tANI_U16 transactionId; // Transaction ID for cmd
1602 tSirMacAddr bssId; // AP BSSID
1603 tSirMacAddr peerMacAddr;
1604 tANI_U16 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001605} tSirSmeDeauthReq, *tpSirSmeDeauthReq;
1606
1607/// Definition for Deauthetication response
1608typedef struct sSirSmeDeauthRsp
1609{
1610 tANI_U16 messageType; // eWNI_SME_DEAUTH_RSP
1611 tANI_U16 length;
1612 tANI_U8 sessionId; // Session ID
1613 tANI_U16 transactionId; // Transaction ID for cmd
1614 tSirResultCodes statusCode;
1615 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001616} tSirSmeDeauthRsp, *tpSirSmeDeauthRsp;
1617
1618/// Definition for Deauthetication indication from peer
1619typedef struct sSirSmeDeauthInd
1620{
1621 tANI_U16 messageType; // eWNI_SME_DEAUTH_IND
1622 tANI_U16 length;
1623 tANI_U8 sessionId; //Added for BT-AMP
1624 tANI_U16 transactionId; //Added for BT-AMP
1625 tSirResultCodes statusCode;
1626 tSirMacAddr bssId;// AP BSSID
1627 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001628
Jeff Johnson295189b2012-06-20 16:38:30 -07001629 tANI_U16 staId;
Mohit Khanna99d5fd02012-09-11 14:51:20 -07001630 tANI_U32 reasonCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001631} tSirSmeDeauthInd, *tpSirSmeDeauthInd;
1632
1633/// Definition for Deauthentication confirm
1634/// MAC --->
1635typedef struct sSirSmeDeauthCnf
1636{
1637 tANI_U16 messageType; // eWNI_SME_DEAUTH_CNF
1638 tANI_U16 length;
1639 tSirResultCodes statusCode;
1640 tSirMacAddr bssId; // AP BSSID
1641 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001642} tSirSmeDeauthCnf, *tpSirSmeDeauthCnf;
1643
1644/// Definition for stop BSS request message
1645typedef struct sSirSmeStopBssReq
1646{
1647 tANI_U16 messageType; // eWNI_SME_STOP_BSS_REQ
1648 tANI_U16 length;
1649 tANI_U8 sessionId; //Session ID
1650 tANI_U16 transactionId; //tranSaction ID for cmd
1651 tSirResultCodes reasonCode;
1652 tSirMacAddr bssId; //Self BSSID
1653} tSirSmeStopBssReq, *tpSirSmeStopBssReq;
1654
1655/// Definition for stop BSS response message
1656typedef struct sSirSmeStopBssRsp
1657{
1658 tANI_U16 messageType; // eWNI_SME_STOP_BSS_RSP
1659 tANI_U16 length;
1660 tSirResultCodes statusCode;
1661 tANI_U8 sessionId; // Session ID
1662 tANI_U16 transactionId; // Transaction ID for cmd
1663} tSirSmeStopBssRsp, *tpSirSmeStopBssRsp;
1664
Jeff Johnson295189b2012-06-20 16:38:30 -07001665
1666
1667/// Definition for Channel Switch indication for station
1668/// MAC --->
1669typedef struct sSirSmeSwitchChannelInd
1670{
1671 tANI_U16 messageType; // eWNI_SME_SWITCH_CHL_REQ
1672 tANI_U16 length;
1673 tANI_U8 sessionId;
1674 tANI_U16 newChannelId;
1675 tSirMacAddr bssId; // BSSID
1676} tSirSmeSwitchChannelInd, *tpSirSmeSwitchChannelInd;
1677
1678/// Definition for ULA complete indication message
1679typedef struct sirUlaCompleteInd
1680{
1681 tANI_U16 messageType; // eWNI_ULA_COMPLETE_IND
1682 tANI_U16 length;
1683 tSirResultCodes statusCode;
1684 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001685} tSirUlaCompleteInd, *tpSirUlaCompleteInd;
1686
1687/// Definition for ULA complete confirmation message
1688typedef struct sirUlaCompleteCnf
1689{
1690 tANI_U16 messageType; // eWNI_ULA_COMPLETE_CNF
1691 tANI_U16 length;
1692 tSirResultCodes statusCode;
1693 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001694} tSirUlaCompleteCnf, *tpSirUlaCompleteCnf;
1695
1696/// Definition for Neighbor BSS indication
1697/// MAC --->
1698/// MAC reports this each time a new I/BSS is detected
1699typedef struct sSirSmeNeighborBssInd
1700{
1701 tANI_U16 messageType; // eWNI_SME_NEIGHBOR_BSS_IND
1702 tANI_U16 length;
1703 tANI_U8 sessionId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001704 tSirBssDescription bssDescription[1];
Jeff Johnson295189b2012-06-20 16:38:30 -07001705} tSirSmeNeighborBssInd, *tpSirSmeNeighborBssInd;
1706
1707/// Definition for MIC failure indication
1708/// MAC --->
1709/// MAC reports this each time a MIC failure occures on Rx TKIP packet
1710typedef struct sSirSmeMicFailureInd
1711{
1712 tANI_U16 messageType; // eWNI_SME_MIC_FAILURE_IND
1713 tANI_U16 length;
1714 tANI_U8 sessionId;
1715 tSirMacAddr bssId; // BSSID
1716 tSirMicFailureInfo info;
1717} tSirSmeMicFailureInd, *tpSirSmeMicFailureInd;
1718
Leela Venkata Kiran Kumar Reddy Chirala3ca17902013-02-27 19:50:05 -08001719typedef struct sSirSmeMissedBeaconInd
1720{
1721 tANI_U16 messageType; // eWNI_SME_MISSED_BEACON_IND
1722 tANI_U16 length;
1723 tANI_U8 bssIdx;
1724} tSirSmeMissedBeaconInd, *tpSirSmeMissedBeaconInd;
Jeff Johnson295189b2012-06-20 16:38:30 -07001725
1726/// Definition for Set Context request
1727/// ---> MAC
1728typedef struct sSirSmeSetContextReq
1729{
1730 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_REQ
1731 tANI_U16 length;
1732 tANI_U8 sessionId; //Session ID
1733 tANI_U16 transactionId; //Transaction ID for cmd
1734 tSirMacAddr peerMacAddr;
1735 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07001736 // TBD Following QOS fields to be uncommented
1737 //tAniBool qosInfoPresent;
1738 //tSirQos qos;
1739 tSirKeyMaterial keyMaterial;
1740} tSirSmeSetContextReq, *tpSirSmeSetContextReq;
1741
1742/// Definition for Set Context response
1743/// MAC --->
1744typedef struct sSirSmeSetContextRsp
1745{
1746 tANI_U16 messageType; // eWNI_SME_SET_CONTEXT_RSP
1747 tANI_U16 length;
1748 tANI_U8 sessionId; // Session ID
1749 tANI_U16 transactionId; // Transaction ID for cmd
1750 tSirResultCodes statusCode;
1751 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001752} tSirSmeSetContextRsp, *tpSirSmeSetContextRsp;
1753
1754/// Definition for Remove Key Context request
1755/// ---> MAC
1756typedef struct sSirSmeRemoveKeyReq
1757{
1758 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_REQ
1759 tANI_U16 length;
1760 tANI_U8 sessionId; // Session ID
1761 tANI_U16 transactionId; // Transaction ID for cmd
1762 tSirMacAddr bssId; // BSSID
1763 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001764 tANI_U8 edType;
1765 tANI_U8 wepType;
1766 tANI_U8 keyId;
1767 tANI_BOOLEAN unicast;
1768} tSirSmeRemoveKeyReq, *tpSirSmeRemoveKeyReq;
1769
1770/// Definition for Remove Key Context response
1771/// MAC --->
1772typedef struct sSirSmeRemoveKeyRsp
1773{
1774 tANI_U16 messageType; // eWNI_SME_REMOVE_KEY_RSP
1775 tANI_U16 length;
1776 tANI_U8 sessionId; // Session ID
1777 tANI_U16 transactionId; // Transaction ID for cmd
1778 tSirResultCodes statusCode;
1779 tSirMacAddr peerMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001780} tSirSmeRemoveKeyRsp, *tpSirSmeRemoveKeyRsp;
1781
1782/// Definition for Set Power request
1783/// ---> MAC
1784typedef struct sSirSmeSetPowerReq
1785{
1786 tANI_U16 messageType; // eWNI_SME_SET_POWER_REQ
1787 tANI_U16 length;
1788 tANI_U16 transactionId; // Transaction ID for cmd
1789 tANI_S8 powerLevel;
1790} tSirSmeSetPowerReq, *tpSirSmeSetPowerReq;
1791
1792/// Definition for Set Power response
1793/// MAC --->
1794typedef struct sSirSmeSetPowerRsp
1795{
1796 tANI_U16 messageType; // eWNI_SME_SET_POWER_RSP
1797 tANI_U16 length;
1798 tSirResultCodes statusCode;
1799 tANI_U16 transactionId; // Transaction ID for cmd
1800} tSirSmeSetPowerRsp, *tpSirSmeSetPowerRsp;
1801
Jeff Johnson295189b2012-06-20 16:38:30 -07001802
1803/// Definition for Link Test Start response
1804/// MAC --->
1805typedef struct sSirSmeLinkTestStartRsp
1806{
1807 tANI_U16 messageType; // eWNI_SME_LINK_TEST_START_RSP
1808 tANI_U16 length;
1809 tSirMacAddr peerMacAddr;
1810 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001811} tSirSmeLinkTestStartRsp, *tpSirSmeLinkTestStartRsp;
1812
1813/// Definition for Link Test Stop response
1814/// WSM ---> MAC
1815typedef struct sSirSmeLinkTestStopRsp
1816{
1817 tANI_U16 messageType; // eWNI_SME_LINK_TEST_STOP_RSP
1818 tANI_U16 length;
1819 tSirMacAddr peerMacAddr;
1820 tSirResultCodes statusCode;
Jeff Johnson295189b2012-06-20 16:38:30 -07001821} tSirSmeLinkTestStopRsp, *tpSirSmeLinkTestStopRsp;
1822
1823/// Definition for kick starting DFS measurements
1824typedef struct sSirSmeDFSreq
1825{
1826 tANI_U16 messageType; // eWNI_SME_DFS_REQ
1827 tANI_U16 length;
1828 tANI_U16 transactionId; // Transaction ID for cmd
1829} tSirSmeDFSrequest, *tpSirSmeDFSrequest;
1830
1831/// Definition for response message to previously
1832/// issued DFS request
1833typedef struct sSirSmeDFSrsp
1834{
1835 tANI_U16 messageType; // eWNI_SME_DFS_RSP
1836 tANI_U16 length;
1837 tSirResultCodes statusCode;
1838 tANI_U16 transactionId; // Transaction ID for cmd
1839 tANI_U32 dfsReport[1];
1840} tSirSmeDFSrsp, *tpSirSmeDFSrsp;
1841
1842/// Statistic definitions
1843//=============================================================
1844// Per STA statistic structure; This same struct will be used for Aggregate
1845// STA stats as well.
1846
1847// Clear radio stats and clear per sta stats
1848typedef enum
1849{
1850 eANI_CLEAR_ALL_STATS, // Clears all stats
1851 eANI_CLEAR_RX_STATS, // Clears RX statistics of the radio interface
1852 eANI_CLEAR_TX_STATS, // Clears TX statistics of the radio interface
1853 eANI_CLEAR_RADIO_STATS, // Clears all the radio stats
1854 eANI_CLEAR_PER_STA_STATS, // Clears Per STA stats
1855 eANI_CLEAR_AGGR_PER_STA_STATS, // Clears aggregate stats
1856
1857 // Used to distinguish between per sta to security stats.
1858 // Used only by AP, FW just returns the same parameter as it received.
1859 eANI_LINK_STATS, // Get Per STA stats
1860 eANI_SECURITY_STATS, // Get Per STA security stats
1861
1862 eANI_CLEAR_STAT_TYPES_END
1863} tAniStatSubTypes;
1864
1865typedef struct sAniTxCtrs
1866{
1867 // add the rate counters here
1868 tANI_U32 tx1Mbps;
1869 tANI_U32 tx2Mbps;
1870 tANI_U32 tx5_5Mbps;
1871 tANI_U32 tx6Mbps;
1872 tANI_U32 tx9Mbps;
1873 tANI_U32 tx11Mbps;
1874 tANI_U32 tx12Mbps;
1875 tANI_U32 tx18Mbps;
1876 tANI_U32 tx24Mbps;
1877 tANI_U32 tx36Mbps;
1878 tANI_U32 tx48Mbps;
1879 tANI_U32 tx54Mbps;
1880 tANI_U32 tx72Mbps;
1881 tANI_U32 tx96Mbps;
1882 tANI_U32 tx108Mbps;
1883
1884 // tx path radio counts
1885 tANI_U32 txFragHi;
1886 tANI_U32 txFragLo;
1887 tANI_U32 txFrameHi;
1888 tANI_U32 txFrameLo;
1889 tANI_U32 txMulticastFrameHi;
1890 tANI_U32 txMulticastFrameLo;
1891 tANI_U32 txFailedHi;
1892 tANI_U32 txFailedLo;
1893 tANI_U32 multipleRetryHi;
1894 tANI_U32 multipleRetryLo;
1895 tANI_U32 singleRetryHi;
1896 tANI_U32 singleRetryLo;
1897 tANI_U32 ackFailureHi;
1898 tANI_U32 ackFailureLo;
1899 tANI_U32 xmitBeacons;
1900
1901 // titan 3c stats
1902 tANI_U32 txCbEscPktCntHi; // Total Number of Channel Bonded/Escort Packet Transmitted
1903 tANI_U32 txCbEscPktCntLo;
1904 tANI_U32 txChunksCntHi; // Total Number of Chunks Transmitted
1905 tANI_U32 txChunksCntLo;
1906 tANI_U32 txCompPktCntHi; // Total Number of Compresssed Packet Transmitted
1907 tANI_U32 txCompPktCntLo;
1908 tANI_U32 tx50PerCompPktCntHi; // Total Number of Packets with 50% or more compression
1909 tANI_U32 tx50PerCompPktCntLo;
1910 tANI_U32 txExpanPktCntHi; // Total Number of Packets Transmitted that got expanded
1911 tANI_U32 txExpanPktCntLo;
1912} tAniTxCtrs, *tpAniTxCtrs;
1913
1914typedef struct sAniRxCtrs
1915{
1916 // receive frame rate counters
1917 tANI_U32 rx1Mbps;
1918 tANI_U32 rx2Mbps;
1919 tANI_U32 rx5_5Mbps;
1920 tANI_U32 rx6Mbps;
1921 tANI_U32 rx9Mbps;
1922 tANI_U32 rx11Mbps;
1923 tANI_U32 rx12Mbps;
1924 tANI_U32 rx18Mbps;
1925 tANI_U32 rx24Mbps;
1926 tANI_U32 rx36Mbps;
1927 tANI_U32 rx48Mbps;
1928 tANI_U32 rx54Mbps;
1929 tANI_U32 rx72Mbps;
1930 tANI_U32 rx96Mbps;
1931 tANI_U32 rx108Mbps;
1932
1933 // receive size counters; 'Lte' = Less than or equal to
1934 tANI_U32 rxLte64;
1935 tANI_U32 rxLte128Gt64;
1936 tANI_U32 rxLte256Gt128;
1937 tANI_U32 rxLte512Gt256;
1938 tANI_U32 rxLte1kGt512;
1939 tANI_U32 rxLte1518Gt1k;
1940 tANI_U32 rxLte2kGt1518;
1941 tANI_U32 rxLte4kGt2k;
1942
1943 // rx radio stats
1944 tANI_U32 rxFrag;
1945 tANI_U32 rxFrame;
1946 tANI_U32 fcsError;
1947 tANI_U32 rxMulticast;
1948 tANI_U32 duplicate;
1949 tANI_U32 rtsSuccess;
1950 tANI_U32 rtsFailed;
1951 tANI_U32 wepUndecryptables;
1952 tANI_U32 drops;
1953 tANI_U32 aesFormatErrorUcastCnts;
1954 tANI_U32 aesReplaysUcast;
1955 tANI_U32 aesDecryptErrUcast;
1956
1957 // titan 3c stats
1958 tANI_U32 rxDecompPktCntHi; // Total Number of Packets that got decompressed
1959 tANI_U32 rxDecompPktCntLo;
1960 tANI_U32 rxCompPktCntHi; // Total Number of Packets received that were actually compressed
1961 tANI_U32 rxCompPktCntLo;
1962 tANI_U32 rxExpanPktCntHi; // Total Number of Packets received that got expanded
1963 tANI_U32 rxExpanPktCntLo;
1964} tAniRxCtrs, *tpAniRxCtrs;
1965
1966// Radio stats
1967typedef struct sAniRadioStats
1968{
1969 tAniTxCtrs tx;
1970 tAniRxCtrs rx;
1971} tAniRadioStats, *tpAniRadioStats;
1972
1973// Get Radio Stats request structure
1974// This structure shall be used for both Radio stats and Aggregate stats
1975// A valid request must contain entire structure with/without valid fields.
1976// Based on the request type, the valid fields will be checked.
1977typedef struct sAniGetStatsReq
1978{
1979 // Common for all types are requests
1980 tANI_U16 msgType; // message type is same as the request type
1981 tANI_U16 msgLen; // length of the entire request
1982 tANI_U8 sessionId; //Session ID
1983 tANI_U16 transactionId;
1984 tSirMacAddr bssId; //BSSID
1985 // only used for clear stats and per sta stats clear
1986 tAniStatSubTypes stat; // Clears the stats of the described types.
1987 tANI_U32 staId; // Per STA stats request must contain valid
1988 // values
1989 tANI_U8 macAddr[6];
1990} tAniGetStatsReq, *tpAniGetStatsReq;
1991
1992// Get Radio Stats response struct
1993typedef struct sAniGetRadioStatsRsp
1994{
1995 tANI_U16 type; // message type is same as the request type
1996 tANI_U16 msgLen; // length of the entire request
1997 tANI_U32 rc;
1998 tANI_U16 transactionId;
1999 tAniRadioStats radio;
2000} tAniGetRadioStatsRsp, *tpAniGetRadioStatsRsp;
2001
2002// Per Sta stats response struct
2003typedef struct sAniGetPerStaStatsRsp
2004{
2005 tANI_U16 type; // message type is same as the request type
2006 tANI_U16 msgLen; // length of the entire request
2007 tANI_U32 rc;
2008 tANI_U16 transactionId;
2009 tAniStatSubTypes stat; // Sub type needed by AP. Returns the same value
2010 tAniStaStatStruct sta;
2011 tANI_U32 staId;
2012 tANI_U8 macAddr[6];
2013} tAniGetPerStaStatsRsp, *tpAniGetPerStaStatsRsp;
2014
2015// Get Aggregate stats
2016typedef struct sAniGetAggrStaStatsRsp
2017{
2018 tANI_U16 type; // message type is same as the request type
2019 tANI_U16 msgLen; // length of the entire request
2020 tANI_U32 rc;
2021 tANI_U16 transactionId;
2022 tAniStaStatStruct sta;
2023} tAniGetAggrStaStatsRsp, *tpAniGetAggrStaStatsRsp;
2024
2025// Clear stats request and response structure. 'rc' field is unused in
2026// request and this field is used in response field.
2027typedef struct sAniClearStatsRsp
2028{
2029 tANI_U16 type; // message type is same as the request type
2030 tANI_U16 msgLen; // length of the entire request
2031 tANI_U32 rc; // return code - will be filled by FW on
2032 // response.
2033 // Same transaction ID will be returned by the FW
2034 tANI_U16 transactionId;
2035 tAniStatSubTypes stat; // Clears the stats of the described types.
2036 tANI_U32 staId; // Applicable only to PER STA stats clearing
2037 tANI_U8 macAddr[6]; // Applicable only to PER STA stats clearing
2038} tAniClearStatsRsp, *tpAniClearStatsRsp;
2039
2040typedef struct sAniGetGlobalStatsRsp
2041{
2042 tANI_U16 type; // message type is same as the request type
2043 tANI_U16 msgLen; // length of the entire request
2044 tANI_U32 rc;
2045 tANI_U16 transactionId;
2046 tAniGlobalStatStruct global;
2047} tAniGetGlobalStatsRsp, *tpAniGetGlobalStatsRsp;
2048
2049typedef struct sAniGetStatSummaryRsp
2050{
2051 tANI_U16 type; // message type is same as the request type
2052 tANI_U16 msgLen; // length of the entire request --Why?
2053 tANI_U32 rc;
2054 tANI_U16 transactionId;
2055 tAniStatSummaryStruct stat;
2056} tAniGetStatSummaryRsp, *tpAniGetStatSummaryRsp;
2057
2058//***************************************************************
2059
2060
2061/*******************PE Statistics*************************/
2062typedef enum
2063{
2064 PE_SUMMARY_STATS_INFO = 0x00000001,
2065 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
2066 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
2067 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
2068 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
2069 PE_PER_STA_STATS_INFO = 0x00000020
2070}ePEStatsMask;
2071
2072/*
2073 * tpAniGetPEStatsReq is tied to
2074 * for SME ==> PE eWNI_SME_GET_STATISTICS_REQ msgId and
2075 * for PE ==> HAL SIR_HAL_GET_STATISTICS_REQ msgId
2076 */
2077typedef struct sAniGetPEStatsReq
2078{
2079 // Common for all types are requests
2080 tANI_U16 msgType; // message type is same as the request type
2081 tANI_U16 msgLen; // length of the entire request
2082 tANI_U32 staId; // Per STA stats request must contain valid
2083 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2084} tAniGetPEStatsReq, *tpAniGetPEStatsReq;
2085
2086/*
2087 * tpAniGetPEStatsRsp is tied to
2088 * for PE ==> SME eWNI_SME_GET_STATISTICS_RSP msgId and
2089 * for HAL ==> PE SIR_HAL_GET_STATISTICS_RSP msgId
2090 */
2091typedef struct sAniGetPEStatsRsp
2092{
2093 // Common for all types are responses
2094 tANI_U16 msgType; // message type is same as the request type
2095 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2096 tANI_U8 sessionId;
2097 tANI_U32 rc; //success/failure
2098 tANI_U32 staId; // Per STA stats request must contain valid
2099 tANI_U32 statsMask; // categories of stats requested. look at ePEStatsMask
2100/**********************************************************************************************
2101 //void *pStatsBuf;
2102 The Stats buffer starts here and can be an aggregate of more than one statistics
2103 structure depending on statsMask.The void pointer "pStatsBuf" is commented out
2104 intentionally and the src code that uses this structure should take that into account.
2105**********************************************************************************************/
2106} tAniGetPEStatsRsp, *tpAniGetPEStatsRsp;
2107
2108typedef struct sAniGetRssiReq
2109{
2110 // Common for all types are requests
2111 tANI_U16 msgType; // message type is same as the request type
2112 tANI_U16 msgLen; // length of the entire request
2113 tANI_U8 sessionId;
2114 tANI_U8 staId;
2115 void *rssiCallback;
2116 void *pDevContext; //device context
2117 void *pVosContext; //voss context
2118
2119} tAniGetRssiReq, *tpAniGetRssiReq;
2120
Madan Mohan Koyyalamudid9383fd2013-08-13 09:27:30 +05302121typedef struct sAniGetSnrReq
2122{
2123 // Common for all types are requests
2124 tANI_U16 msgType; // message type is same as the request type
2125 tANI_U16 msgLen; // length of the entire request
2126 tANI_U8 sessionId;
2127 tANI_U8 staId;
2128 void *snrCallback;
2129 void *pDevContext; //device context
2130} tAniGetSnrReq, *tpAniGetSnrReq;
2131
Srinivas Girigowdad34cedb2013-01-25 13:33:11 -08002132#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR)
2133typedef struct sAniGetRoamRssiRsp
2134{
2135 // Common for all types are responses
2136 tANI_U16 msgType; // message type is same as the request type
2137 tANI_U16 msgLen; // length of the entire request, includes the pStatsBuf length too
2138 tANI_U8 sessionId;
2139 tANI_U32 rc; //success/failure
2140 tANI_U32 staId; // Per STA stats request must contain valid
2141 tANI_S8 rssi;
2142 void *rssiReq; //rssi request backup
2143
2144} tAniGetRoamRssiRsp, *tpAniGetRoamRssiRsp;
2145
2146#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002147/* Change country code request MSG structure */
2148typedef struct sAniChangeCountryCodeReq
2149{
2150 // Common for all types are requests
2151 tANI_U16 msgType; // message type is same as the request type
2152 tANI_U16 msgLen; // length of the entire request
2153 tANI_U8 countryCode[WNI_CFG_COUNTRY_CODE_LEN]; //3 char country code
Gopichand Nakkalaacd94112013-05-29 21:37:47 +05302154 tAniBool countryFromUserSpace;
Jeff Johnson295189b2012-06-20 16:38:30 -07002155 void *changeCCCallback;
2156 void *pDevContext; //device context
2157 void *pVosContext; //voss context
2158
2159} tAniChangeCountryCodeReq, *tpAniChangeCountryCodeReq;
2160
Sundaresan Ramachandran76e48e82013-07-15 13:07:17 +05302161typedef struct sAniDHCPStopInd
2162{
2163 tANI_U16 msgType; // message type is same as the request type
2164 tANI_U16 msgLen; // length of the entire request
2165 tANI_U8 device_mode; // Mode of the device(ex:STA, AP)
2166 tSirMacAddr macAddr;
2167
2168} tAniDHCPInd, *tpAniDHCPInd;
2169
Jeff Johnson295189b2012-06-20 16:38:30 -07002170typedef struct sAniSummaryStatsInfo
2171{
2172 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2173 tANI_U32 multiple_retry_cnt[4];//The number of MSDU packets and MMPDU frames per AC that the 802.11
2174 // station successfully transmitted after more than one retransmission attempt
2175
2176 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2177 //(with and without retries, including multi-cast, broadcast)
2178 //tANI_U32 tx_fail_cnt;
2179 //tANI_U32 num_rx_frm_crc_err; //Total number of received frames with CRC Error
2180 //tANI_U32 num_rx_frm_crc_ok; //Total number of successfully received frames with out CRC Error
2181 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2182 //(after appropriate filter rules including multi-cast, broadcast)
2183 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2184 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2185 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2186 tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
2187 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2188 tANI_U32 rx_discard_cnt; //The sum of the receive error count and dropped-receive-buffer error count.
2189 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2190 tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
2191 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2192 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
2193 //to provide this.
2194#if 0
2195 //providing the following stats, in case of wrap around for tx_byte_cnt
2196 tANI_U32 tx_unicast_lower_byte_cnt;
2197 tANI_U32 tx_unicast_upper_byte_cnt;
2198 tANI_U32 tx_multicast_lower_byte_cnt;
2199 tANI_U32 tx_multicast_upper_byte_cnt;
2200 tANI_U32 tx_broadcast_lower_byte_cnt;
2201 tANI_U32 tx_broadcast_upper_byte_cnt;
2202#endif
2203
2204}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2205
2206typedef enum eTxRateInfo
2207{
2208 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2209 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2210 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2211 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Leo Chang6f8870f2013-03-26 18:11:36 -07002212 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2213 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2214 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 40 rates */
2215 eHAL_TX_RATE_VHT80 = 0x80 /* VHT 80 rates */
Jeff Johnson295189b2012-06-20 16:38:30 -07002216} tTxrateinfoflags;
2217
2218typedef struct sAniGlobalClassAStatsInfo
2219{
2220 tANI_U32 rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2221 //or MMPDU frames
2222 tANI_U32 promiscuous_rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2223 //or MMPDU frames when a promiscuous packet filter was enabled
2224 //tANI_U32 rx_fcs_err; //The number of MPDU frames that the 802.11 station received with FCS errors
2225 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2226 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
2227 //to a supported rate and the order shall be the same as the supporteRates parameter.
2228 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2229 //for eg: if it is 10.5dBm, the value would be 105
2230 //tANI_U32 default_pwr; //The nominal transmit level used after normal power on sequence
2231 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2232 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
2233 tANI_U32 tx_rate; //Legacy transmit rate, in units of
2234 //500 kbit/sec, for the most
2235 //recently transmitted frame
2236 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
2237 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2238 //HT40 rates; short and long guard interval
2239
2240}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2241
2242
2243typedef struct sAniGlobalSecurityStats
2244{
2245 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2246 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
2247 //is enabled
2248 tANI_U32 rx_mic_fail_cnt; //The number of received MSDU packets that that the 802.11 station discarded
2249 //because of MIC failures
2250 tANI_U32 tkip_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2251 //because of a TKIP ICV error
2252 tANI_U32 aes_ccmp_format_err; //The number of received MPDU frames that the 802.11 discarded because of an
2253 //invalid AES-CCMP format
2254 tANI_U32 aes_ccmp_replay_cnt; //The number of received MPDU frames that the 802.11 station discarded because of
2255 //the AES-CCMP replay protection procedure
2256 tANI_U32 aes_ccmp_decrpt_err; //The number of received MPDU frames that the 802.11 station discarded because of
2257 //errors detected by the AES-CCMP decryption algorithm
2258 tANI_U32 wep_undecryptable_cnt; //The number of encrypted MPDU frames received for which a WEP decryption key was
2259 //not available on the 802.11 station
2260 tANI_U32 wep_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2261 //because of a WEP ICV error
2262 tANI_U32 rx_decrypt_succ_cnt; //The number of received encrypted packets that the 802.11 station successfully
2263 //decrypted
2264 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2265
2266}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
2267
2268typedef struct sAniGlobalClassBStatsInfo
2269{
2270 tAniGlobalSecurityStats ucStats;
2271 tAniGlobalSecurityStats mcbcStats;
2272}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2273
2274typedef struct sAniGlobalClassCStatsInfo
2275{
2276 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2277 //MAC address in the address 1 field or an A-MSDU frame with a group address in the
2278 //address 1 field
2279 tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
2280 tANI_U32 tx_20_frm_cnt; //This counter shall be incremented when a Frame is transmitted only on the
2281 //primary channel
2282 tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
2283 tANI_U32 rx_mpdu_in_ampdu_cnt; //This counter shall be incremented by the number of MPDUs received in the A-MPDU
2284 //when an A-MPDU is received
2285 tANI_U32 ampdu_delimiter_crc_err;//This counter shall be incremented when an MPDU delimiter has a CRC error when this
2286 //is the first CRC error in the received AMPDU or when the previous delimiter has been
2287 //decoded correctly
2288
2289}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2290
2291typedef struct sAniPerStaStatsInfo
2292{
2293 tANI_U32 tx_frag_cnt[4]; //The number of MPDU frames that the 802.11 station transmitted and acknowledged
2294 //through a received 802.11 ACK frame
2295 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2296 tANI_U32 tx_mpdu_in_ampdu_cnt; //This counter shall increment by the number of MPDUs in the AMPDU when an A-MPDU
2297 //is transmitted
2298
2299}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2300
2301/**********************PE Statistics end*************************/
2302
2303
2304
2305typedef struct sSirRSSIThresholds
2306{
2307#ifdef ANI_BIG_BYTE_ENDIAN
2308 tANI_S8 ucRssiThreshold1 : 8;
2309 tANI_S8 ucRssiThreshold2 : 8;
2310 tANI_S8 ucRssiThreshold3 : 8;
2311 tANI_U8 bRssiThres1PosNotify : 1;
2312 tANI_U8 bRssiThres1NegNotify : 1;
2313 tANI_U8 bRssiThres2PosNotify : 1;
2314 tANI_U8 bRssiThres2NegNotify : 1;
2315 tANI_U8 bRssiThres3PosNotify : 1;
2316 tANI_U8 bRssiThres3NegNotify : 1;
2317 tANI_U8 bReserved10 : 2;
2318#else
2319 tANI_U8 bReserved10 : 2;
2320 tANI_U8 bRssiThres3NegNotify : 1;
2321 tANI_U8 bRssiThres3PosNotify : 1;
2322 tANI_U8 bRssiThres2NegNotify : 1;
2323 tANI_U8 bRssiThres2PosNotify : 1;
2324 tANI_U8 bRssiThres1NegNotify : 1;
2325 tANI_U8 bRssiThres1PosNotify : 1;
2326 tANI_S8 ucRssiThreshold3 : 8;
2327 tANI_S8 ucRssiThreshold2 : 8;
2328 tANI_S8 ucRssiThreshold1 : 8;
2329#endif
2330
2331}tSirRSSIThresholds, *tpSirRSSIThresholds;
2332
2333typedef struct sSirRSSINotification
2334{
2335#ifdef ANI_BIG_BYTE_ENDIAN
2336 tANI_U32 bRssiThres1PosCross : 1;
2337 tANI_U32 bRssiThres1NegCross : 1;
2338 tANI_U32 bRssiThres2PosCross : 1;
2339 tANI_U32 bRssiThres2NegCross : 1;
2340 tANI_U32 bRssiThres3PosCross : 1;
2341 tANI_U32 bRssiThres3NegCross : 1;
Srinivasdaaec712012-12-12 15:59:44 -08002342 v_S7_t avgRssi : 8;
2343 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07002344#else
Srinivasdaaec712012-12-12 15:59:44 -08002345 tANI_U32 bReserved : 18;
2346 v_S7_t avgRssi : 8;
Jeff Johnson295189b2012-06-20 16:38:30 -07002347 tANI_U32 bRssiThres3NegCross : 1;
2348 tANI_U32 bRssiThres3PosCross : 1;
2349 tANI_U32 bRssiThres2NegCross : 1;
2350 tANI_U32 bRssiThres2PosCross : 1;
2351 tANI_U32 bRssiThres1NegCross : 1;
2352 tANI_U32 bRssiThres1PosCross : 1;
2353#endif
2354
2355}tSirRSSINotification, *tpSirRSSINotification;
2356
Viral Modid86bde22012-12-10 13:09:21 -08002357
2358typedef struct sSirP2PNoaStart
2359{
2360 tANI_U32 status;
2361 tANI_U32 bssIdx;
2362} tSirP2PNoaStart, *tpSirP2PNoaStart;
2363
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05302364typedef struct sSirTdlsInd
2365{
2366 tANI_U16 status;
2367 tANI_U16 assocId;
2368 tANI_U16 staIdx;
2369 tANI_U16 reasonCode;
2370} tSirTdlsInd, *tpSirTdlsInd;
2371
Jeff Johnson295189b2012-06-20 16:38:30 -07002372typedef struct sSirP2PNoaAttr
2373{
2374#ifdef ANI_BIG_BYTE_ENDIAN
2375 tANI_U32 index :8;
2376 tANI_U32 oppPsFlag :1;
2377 tANI_U32 ctWin :7;
2378 tANI_U32 rsvd1: 16;
2379#else
2380 tANI_U32 rsvd1: 16;
2381 tANI_U32 ctWin :7;
2382 tANI_U32 oppPsFlag :1;
2383 tANI_U32 index :8;
2384#endif
2385
2386#ifdef ANI_BIG_BYTE_ENDIAN
2387 tANI_U32 uNoa1IntervalCnt:8;
2388 tANI_U32 rsvd2:24;
2389#else
2390 tANI_U32 rsvd2:24;
2391 tANI_U32 uNoa1IntervalCnt:8;
2392#endif
2393 tANI_U32 uNoa1Duration;
2394 tANI_U32 uNoa1Interval;
2395 tANI_U32 uNoa1StartTime;
2396
2397#ifdef ANI_BIG_BYTE_ENDIAN
2398 tANI_U32 uNoa2IntervalCnt:8;
2399 tANI_U32 rsvd3:24;
2400#else
2401 tANI_U32 rsvd3:24;
2402 tANI_U32 uNoa2IntervalCnt:8;
2403#endif
2404 tANI_U32 uNoa2Duration;
2405 tANI_U32 uNoa2Interval;
2406 tANI_U32 uNoa2StartTime;
2407} tSirP2PNoaAttr, *tpSirP2PNoaAttr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002408
2409typedef __ani_attr_pre_packed struct sSirTclasInfo
2410{
2411 tSirMacTclasIE tclas;
2412 tANI_U8 version; // applies only for classifier type ip
2413 __ani_attr_pre_packed union {
2414 tSirMacTclasParamEthernet eth;
2415 tSirMacTclasParamIPv4 ipv4;
2416 tSirMacTclasParamIPv6 ipv6;
2417 tSirMacTclasParam8021dq t8021dq;
2418 }__ani_attr_packed tclasParams;
2419} __ani_attr_packed tSirTclasInfo;
2420
2421typedef struct sSirAddtsReqInfo
2422{
2423 tANI_U8 dialogToken;
2424 tSirMacTspecIE tspec;
2425
2426 tANI_U8 numTclas; // number of Tclas elements
2427 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2428 tANI_U8 tclasProc;
2429#ifdef FEATURE_WLAN_CCX
2430 tSirMacCCXTSRSIE tsrsIE;
2431 tANI_U8 tsrsPresent:1;
2432#endif
2433 tANI_U8 wmeTspecPresent:1;
2434 tANI_U8 wsmTspecPresent:1;
2435 tANI_U8 lleTspecPresent:1;
2436 tANI_U8 tclasProcPresent:1;
2437} tSirAddtsReqInfo, *tpSirAddtsReqInfo;
2438
2439typedef struct sSirAddtsRspInfo
2440{
2441 tANI_U8 dialogToken;
2442 tSirMacStatusCodes status;
2443 tSirMacTsDelayIE delay;
2444
2445 tSirMacTspecIE tspec;
2446 tANI_U8 numTclas; // number of Tclas elements
2447 tSirTclasInfo tclasInfo[SIR_MAC_TCLASIE_MAXNUM];
2448 tANI_U8 tclasProc;
2449 tSirMacScheduleIE schedule;
2450#ifdef FEATURE_WLAN_CCX
2451 tSirMacCCXTSMIE tsmIE;
2452 tANI_U8 tsmPresent:1;
2453#endif
2454 tANI_U8 wmeTspecPresent:1;
2455 tANI_U8 wsmTspecPresent:1;
2456 tANI_U8 lleTspecPresent:1;
2457 tANI_U8 tclasProcPresent:1;
2458 tANI_U8 schedulePresent:1;
2459} tSirAddtsRspInfo, *tpSirAddtsRspInfo;
2460
2461typedef struct sSirDeltsReqInfo
2462{
2463 tSirMacTSInfo tsinfo;
2464 tSirMacTspecIE tspec;
2465 tANI_U8 wmeTspecPresent:1;
2466 tANI_U8 wsmTspecPresent:1;
2467 tANI_U8 lleTspecPresent:1;
2468} tSirDeltsReqInfo, *tpSirDeltsReqInfo;
2469
2470/// Add a tspec as defined
2471typedef struct sSirAddtsReq
2472{
2473 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2474 tANI_U16 length;
2475 tANI_U8 sessionId; //Session ID
2476 tANI_U16 transactionId;
2477 tSirMacAddr bssId; //BSSID
2478 tANI_U32 timeout; // in ms
2479 tANI_U8 rspReqd;
2480 tSirAddtsReqInfo req;
2481} tSirAddtsReq, *tpSirAddtsReq;
2482
2483typedef struct sSirAddtsRsp
2484{
2485 tANI_U16 messageType; // eWNI_SME_ADDTS_RSP
2486 tANI_U16 length;
2487 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2488 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2489 tANI_U32 rc; // return code
2490 tSirAddtsRspInfo rsp;
2491} tSirAddtsRsp, *tpSirAddtsRsp;
2492
2493typedef struct sSirDeltsReq
2494{
2495 tANI_U16 messageType; // eWNI_SME_DELTS_REQ
2496 tANI_U16 length;
2497 tANI_U8 sessionId;//Session ID
2498 tANI_U16 transactionId;
2499 tSirMacAddr bssId; //BSSID
2500 tANI_U16 aid; // use 0 if macAddr is being specified
2501 tANI_U8 macAddr[6]; // only on AP to specify the STA
2502 tANI_U8 rspReqd;
2503 tSirDeltsReqInfo req;
2504} tSirDeltsReq, *tpSirDeltsReq;
2505
2506typedef struct sSirDeltsRsp
2507{
2508 tANI_U16 messageType; // eWNI_SME_DELTS_RSP
2509 tANI_U16 length;
2510 tANI_U8 sessionId; // sme sessionId Added for BT-AMP support
2511 tANI_U16 transactionId; //sme transaction Id Added for BT-AMP Support
2512 tANI_U32 rc;
2513 tANI_U16 aid; // use 0 if macAddr is being specified
2514 tANI_U8 macAddr[6]; // only on AP to specify the STA
2515 tSirDeltsReqInfo rsp;
2516} tSirDeltsRsp, *tpSirDeltsRsp;
2517
Jeff Johnson04dd8a82012-06-29 20:41:40 -07002518#if defined WLAN_FEATURE_VOWIFI_11R || defined FEATURE_WLAN_CCX || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07002519
2520#define SIR_QOS_NUM_TSPEC_MAX 2
2521#define SIR_QOS_NUM_AC_MAX 4
2522
2523typedef struct sSirAggrQosReqInfo
2524{
2525 tANI_U16 tspecIdx;
2526 tSirAddtsReqInfo aggrAddTsInfo[SIR_QOS_NUM_AC_MAX];
2527}tSirAggrQosReqInfo, *tpSirAggrQosReqInfo;
2528
2529typedef struct sSirAggrQosReq
2530{
2531 tANI_U16 messageType; // eWNI_SME_ADDTS_REQ
2532 tANI_U16 length;
2533 tANI_U8 sessionId; //Session ID
2534 tANI_U16 transactionId;
2535 tSirMacAddr bssId; //BSSID
2536 tANI_U32 timeout; // in ms
2537 tANI_U8 rspReqd;
2538 tSirAggrQosReqInfo aggrInfo;
2539}tSirAggrQosReq, *tpSirAggrQosReq;
2540
2541typedef struct sSirAggrQosRspInfo
2542{
2543 tANI_U16 tspecIdx;
2544 tSirAddtsRspInfo aggrRsp[SIR_QOS_NUM_AC_MAX];
2545} tSirAggrQosRspInfo, *tpSirAggrQosRspInfo;
2546
2547typedef struct sSirAggrQosRsp
2548{
2549 tANI_U16 messageType;
2550 tANI_U16 length;
2551 tANI_U8 sessionId;
2552 tSirAggrQosRspInfo aggrInfo;
2553} tSirAggrQosRsp, *tpSirAggrQosRsp;
2554
2555#endif/*WLAN_FEATURE_VOWIFI_11R || FEATURE_WLAN_CCX*/
2556
2557typedef struct sSirSetTxPowerReq
2558{
schang86c22c42013-03-13 18:41:24 -07002559 tANI_U16 messageType;
2560 tANI_U16 length;
2561 tSirMacAddr bssId;
2562 tANI_U8 mwPower;
2563 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07002564} tSirSetTxPowerReq, *tpSirSetTxPowerReq;
2565
2566typedef struct sSirSetTxPowerRsp
2567{
2568 tANI_U16 messageType;
2569 tANI_U16 length;
2570 tANI_U32 status;
2571} tSirSetTxPowerRsp, *tpSirSetTxPowerRsp;
2572
2573typedef struct sSirGetTxPowerReq
2574{
2575 tANI_U16 messageType;
2576 tANI_U16 length;
2577 tANI_U16 staid;
2578} tSirGetTxPowerReq, *tpSirGetTxPowerReq;
2579
2580typedef struct sSirGetTxPowerRsp
2581{
2582 tANI_U16 messageType;
2583 tANI_U16 length; // length of the entire request
2584 tANI_U32 power; // units of milliwatts
2585 tANI_U32 status;
2586} tSirGetTxPowerRsp, *tpSirGetTxPowerRsp;
2587
2588
2589typedef tANI_U32 tSirMacNoise[3];
2590
2591typedef struct sSirGetNoiseRsp
2592{
2593 tANI_U16 messageType;
2594 tANI_U16 length;
2595 tSirMacNoise noise;
2596} tSirGetNoiseRsp, *tpSirGetNoiseRsp;
2597
2598
2599//
2600// PMC --> PE --> HAL
2601// Power save configuration parameters
2602//
2603typedef struct sSirPowerSaveCfg
2604{
2605 tANI_U16 listenInterval;
2606
2607 /* Number of consecutive missed beacons before
2608 * hardware generates an interrupt to wake up
2609 * the host. In units of listen interval.
2610 */
2611 tANI_U32 HeartBeatCount;
2612
2613 /* specifies which beacons are to be forwarded
2614 * to host when beacon filtering is enabled.
2615 * In units of listen interval.
2616 */
2617 tANI_U32 nthBeaconFilter;
2618
2619 /* Maximum number of PS-Poll send before
2620 * firmware sends data null with PM set to 0.
2621 */
2622 tANI_U32 maxPsPoll;
2623
2624 /* If the average RSSI value falls below the
2625 * minRssiThreshold, then FW will send an
2626 * interrupt to wake up the host.
2627 */
2628 tANI_U32 minRssiThreshold;
2629
2630 /* Number of beacons for which firmware will
2631 * collect the RSSI values and compute the average.
2632 */
2633 tANI_U8 numBeaconPerRssiAverage;
2634
2635 /* FW collects the RSSI stats for this period
2636 * in BMPS mode.
2637 */
2638 tANI_U8 rssiFilterPeriod;
2639
2640 // Enabling/disabling broadcast frame filter feature
2641 tANI_U8 broadcastFrameFilter;
2642
2643 // Enabling/disabling the ignore DTIM feature
2644 tANI_U8 ignoreDtim;
2645
2646 /* The following configuration parameters are kept
2647 * in order to be backward compatible for Gen5.
2648 * These will NOT be used for Gen6 Libra chip
2649 */
2650 tBeaconForwarding beaconFwd;
2651 tANI_U16 nthBeaconFwd;
2652 tANI_U8 fEnablePwrSaveImmediately;
2653 tANI_U8 fPSPoll;
2654
2655 // Enabling/disabling Beacon Early Termination feature
2656 tANI_U8 fEnableBeaconEarlyTermination;
2657 tANI_U8 bcnEarlyTermWakeInterval;
2658
2659}tSirPowerSaveCfg, *tpSirPowerSaveCfg;
2660
2661/* Reason code for requesting Full Power. This reason code is used by
2662 any module requesting full power from PMC and also by PE when it
2663 sends the eWNI_PMC_EXIT_BMPS_IND to PMC*/
2664typedef enum eRequestFullPowerReason
2665{
2666 eSME_MISSED_BEACON_IND_RCVD, /* PE received a MAX_MISSED_BEACON_IND */
2667 eSME_BMPS_STATUS_IND_RCVD, /* PE received a SIR_HAL_BMPS_STATUS_IND */
2668 eSME_BMPS_MODE_DISABLED, /* BMPS mode was disabled by HDD in SME */
2669 eSME_LINK_DISCONNECTED_BY_HDD, /* Link has been disconnected requested by HDD */
2670 eSME_LINK_DISCONNECTED_BY_OTHER,/* Disconnect due to linklost or requested by peer */
2671 eSME_FULL_PWR_NEEDED_BY_HDD, /* HDD request full power for some reason */
2672 eSME_FULL_PWR_NEEDED_BY_BAP, /* BAP request full power for BT_AMP */
2673 eSME_FULL_PWR_NEEDED_BY_CSR, /* CSR requests full power */
2674 eSME_FULL_PWR_NEEDED_BY_QOS, /* QOS requests full power */
2675 eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH, /* channel switch request full power*/
Mohit Khanna698ba2a2012-12-04 15:08:18 -08002676#ifdef FEATURE_WLAN_TDLS
2677 eSME_FULL_PWR_NEEDED_BY_TDLS_PEER_SETUP, /* TDLS peer setup*/
2678#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002679 eSME_REASON_OTHER /* No specific reason. General reason code */
2680} tRequestFullPowerReason, tExitBmpsReason;
2681
2682
2683
2684//This is sent alongwith eWNI_PMC_EXIT_BMPS_REQ message
2685typedef struct sExitBmpsInfo
2686{
2687 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
2688}tExitBmpsInfo, *tpExitBmpsInfo;
2689
2690
2691// MAC SW --> SME
2692// Message indicating to SME to exit BMPS sleep mode
2693typedef struct sSirSmeExitBmpsInd
2694{
2695 tANI_U16 mesgType; /* eWNI_PMC_EXIT_BMPS_IND */
2696 tANI_U16 mesgLen;
2697 tSirResultCodes statusCode;
2698 tExitBmpsReason exitBmpsReason; /*Reason for exiting BMPS */
2699
2700} tSirSmeExitBmpsInd, *tpSirSmeExitBmpsInd;
2701
2702
2703//
2704// HDD -> LIM
2705// tSirMsgQ.type = eWNI_SME_DEL_BA_PEER_IND
2706// tSirMsgQ.reserved = 0
2707// tSirMsgQ.body = instance of tDelBAParams
2708//
2709typedef struct sSmeDelBAPeerInd
2710{
2711 // Message Type
2712 tANI_U16 mesgType;
2713
2714 tSirMacAddr bssId;//BSSID
2715
2716 // Message Length
2717 tANI_U16 mesgLen;
2718
2719 // Station Index
2720 tANI_U16 staIdx;
2721
2722 // TID for which the BA session is being deleted
2723 tANI_U8 baTID;
2724
2725 // DELBA direction
2726 // eBA_INITIATOR - Originator
2727 // eBA_RECEIPIENT - Recipient
2728 tANI_U8 baDirection;
2729} tSmeDelBAPeerInd, *tpSmeDelBAPeerInd;
2730
2731typedef struct sSmeIbssPeerInd
2732{
2733 tANI_U16 mesgType;
2734 tANI_U16 mesgLen;
2735 tANI_U8 sessionId;
2736
2737 tSirMacAddr peerAddr;
2738 tANI_U16 staId;
2739
2740 /*The DPU signatures will be sent eventually to TL to help it determine the
2741 association to which a packet belongs to*/
2742 /*Unicast DPU signature*/
2743 tANI_U8 ucastSig;
2744
2745 /*Broadcast DPU signature*/
2746 tANI_U8 bcastSig;
2747
2748 //Beacon will be appended for new Peer indication.
2749}tSmeIbssPeerInd, *tpSmeIbssPeerInd;
2750
Ravi Joshid2ca7c42013-07-23 08:37:49 -07002751typedef struct sSirIbssPeerInactivityInd
2752{
2753 tANI_U8 bssIdx;
2754 tANI_U8 staIdx;
2755 tSirMacAddr peerAddr;
2756}tSirIbssPeerInactivityInd, *tpSirIbssPeerInactivityInd;
2757
2758
Jeff Johnson295189b2012-06-20 16:38:30 -07002759typedef struct sLimScanChn
2760{
2761 tANI_U16 numTimeScan; //how many time this channel is scan
2762 tANI_U8 channelId;
2763}tLimScanChn;
2764
2765typedef struct sSmeGetScanChnRsp
2766{
2767 // Message Type
2768 tANI_U16 mesgType;
2769 // Message Length
2770 tANI_U16 mesgLen;
2771 tANI_U8 sessionId;
2772 tANI_U8 numChn;
2773 tLimScanChn scanChn[1];
2774} tSmeGetScanChnRsp, *tpSmeGetScanChnRsp;
2775
2776typedef struct sLimScanChnInfo
2777{
2778 tANI_U8 numChnInfo; //number of channels in scanChn
2779 tLimScanChn scanChn[SIR_MAX_SUPPORTED_CHANNEL_LIST];
2780}tLimScanChnInfo;
2781
Jeff Johnson295189b2012-06-20 16:38:30 -07002782typedef struct sSirSmeGetAssocSTAsReq
2783{
2784 tANI_U16 messageType; // eWNI_SME_GET_ASSOC_STAS_REQ
2785 tANI_U16 length;
2786 tSirMacAddr bssId; // BSSID
2787 tANI_U16 modId;
2788 void *pUsrContext;
2789 void *pSapEventCallback;
2790 void *pAssocStasArray;// Pointer to allocated memory passed in WLANSAP_GetAssocStations API
2791} tSirSmeGetAssocSTAsReq, *tpSirSmeGetAssocSTAsReq;
Jeff Johnson295189b2012-06-20 16:38:30 -07002792
2793typedef struct sSmeMaxAssocInd
2794{
2795 tANI_U16 mesgType; // eWNI_SME_MAX_ASSOC_EXCEEDED
2796 tANI_U16 mesgLen;
2797 tANI_U8 sessionId;
2798 tSirMacAddr peerMac; // the new peer that got rejected due to softap max assoc limit reached
2799} tSmeMaxAssocInd, *tpSmeMaxAssocInd;
2800
2801/*--------------------------------------------------------------------*/
2802/* BootLoader message definition */
2803/*--------------------------------------------------------------------*/
2804
2805/*--------------------------------------------------------------------*/
2806/* FW image size */
2807/*--------------------------------------------------------------------*/
2808#define SIR_FW_IMAGE_SIZE 146332
2809
2810
2811#define SIR_BOOT_MODULE_ID 1
2812
2813#define SIR_BOOT_SETUP_IND ((SIR_BOOT_MODULE_ID << 8) | 0x11)
2814#define SIR_BOOT_POST_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x12)
2815#define SIR_BOOT_DNLD_RESULT_IND ((SIR_BOOT_MODULE_ID << 8) | 0x13)
2816#define SIR_BOOT_DNLD_DEV_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x41)
2817#define SIR_BOOT_DNLD_DEV_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x81)
2818#define SIR_BOOT_DNLD_REQ ((SIR_BOOT_MODULE_ID << 8) | 0x42)
2819#define SIR_BOOT_DNLD_RSP ((SIR_BOOT_MODULE_ID << 8) | 0x82)
2820
2821/*--------------------------------------------------------------------*/
2822/* Bootloader message syntax */
2823/*--------------------------------------------------------------------*/
2824
2825// Message header
2826#define SIR_BOOT_MB_HEADER 0
2827#define SIR_BOOT_MB_HEADER2 1
2828
2829#define SIR_BOOT_MSG_HDR_MASK 0xffff0000
2830#define SIR_BOOT_MSG_LEN_MASK 0x0000ffff
2831
2832// BOOT_SETUP_IND parameter indices
2833#define SIR_BOOT_SETUP_IND_MBADDR 2
2834#define SIR_BOOT_SETUP_IND_MBSIZE 3
2835#define SIR_BOOT_SETUP_IND_MEMOPT 4
2836#define SIR_BOOT_SETUP_IND_LEN \
2837 ((SIR_BOOT_SETUP_IND_MEMOPT+1)<<2)
2838
2839// BOOT_POST_RESULT_IND parameter indices
2840#define SIR_BOOT_POST_RESULT_IND_RES 2
2841#define SIR_BOOT_POST_RESULT_IND_LEN \
2842 ((SIR_BOOT_POST_RESULT_IND_RES+1)<<2)
2843
2844#define SIR_BOOT_POST_RESULT_IND_SUCCESS 1
2845#define SIR_BOOT_POST_RESULT_IND_MB_FAILED 2
2846#define SIR_BOOT_POST_RESULT_IND_SDRAM_FAILED 3
2847#define SIR_BOOT_POST_RESULT_IND_ESRAM_FAILED 4
2848
2849
2850// BOOT_DNLD_RESULT_IND parameter indices
2851#define SIR_BOOT_DNLD_RESULT_IND_RES 2
2852#define SIR_BOOT_DNLD_RESULT_IND_LEN \
2853 ((SIR_BOOT_DNLD_RESULT_IND_RES+1)<<2)
2854
2855#define SIR_BOOT_DNLD_RESULT_IND_SUCCESS 1
2856#define SIR_BOOT_DNLD_RESULT_IND_HDR_ERR 2
2857#define SIR_BOOT_DNLD_RESULT_IND_ERR 3
2858
2859// BOOT_DNLD_DEV_REQ
2860#define SIR_BOOT_DNLD_DEV_REQ_SDRAMSIZE 2
2861#define SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE 3
2862#define SIR_BOOT_DNLD_DEV_REQ_LEN \
2863 ((SIR_BOOT_DNLD_DEV_REQ_FLASHSIZE+1)<<2)
2864
2865// BOOT_DNLD_DEV_RSP
2866#define SIR_BOOT_DNLD_DEV_RSP_DEVTYPE 2
2867#define SIR_BOOT_DNLD_DEV_RSP_LEN \
2868 ((SIR_BOOT_DNLD_DEV_RSP_DEVTYPE+1)<<2)
2869
2870#define SIR_BOOT_DNLD_DEV_RSP_SRAM 1
2871#define SIR_BOOT_DNLD_DEV_RSP_FLASH 2
2872
2873// BOOT_DNLD_REQ
2874#define SIR_BOOT_DNLD_REQ_OFFSET 2
2875#define SIR_BOOT_DNLD_REQ_WRADDR 3
2876#define SIR_BOOT_DNLD_REQ_SIZE 4
2877#define SIR_BOOT_DNLD_REQ_LEN ((SIR_BOOT_DNLD_REQ_SIZE+1)<<2)
2878
2879// BOOT_DNLD_RSP
2880#define SIR_BOOT_DNLD_RSP_SIZE 2
2881#define SIR_BOOT_DNLD_RSP_LEN ((SIR_BOOT_DNLD_RSP_SIZE+1)<<2)
2882
Jeff Johnson295189b2012-06-20 16:38:30 -07002883
2884// board capabilities fields are defined here.
2885typedef __ani_attr_pre_packed struct sSirBoardCapabilities
2886{
2887#ifndef ANI_LITTLE_BIT_ENDIAN
2888 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
2889 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
2890 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
2891 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
2892 tANI_U32 rsvd1:2;
2893 // (productId derives sub-category in the following three families)
2894 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
2895 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
2896 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
2897 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
2898 tANI_U32 bbChipVer:4; // Baseband chip version
2899 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
2900 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
2901 tANI_U32 nReceivers:2; // 0 based.
2902 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
2903 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
2904 tANI_U32 rsvd:1;
2905 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
2906#else
2907
2908 tANI_U32 extVsIntAnt:1; // 0 = ext antenna, 1 = internal antenna
2909 tANI_U32 rsvd:1;
2910 tANI_U32 sdram:1; // 0 = no SDRAM, 1 = SDRAM
2911 tANI_U32 nTransmitters:1; // 0 = 1 transmitter, 1 = 2 transmitters
2912 tANI_U32 nReceivers:2; // 0 based.
2913 tANI_U32 radioOn:2; // Not supported is 3 or 2, 0 = Off and 1 = On
2914 tANI_U32 loType:2; // 0 = no LO, 1 = SILABS, 2 = ORION
2915 tANI_U32 bbChipVer:4; // Baseband chip version
2916 tANI_U32 bgOnly:1; // 0 - default a/b/g; 1 - b/g only
2917 // (productId derives sub-category in the following three families)
2918 tANI_U32 mpciFamily:1; // 0 - Not MPCI family, 1 - MPCI
2919 tANI_U32 apFamily:1; // 0 - Not AP family, 1 - AP
2920 tANI_U32 cbFamily:1; // 0 - Not CB family, 1 - Cardbus
2921 tANI_U32 rsvd1:2;
2922 tANI_U32 reverseFCS:1; // 0 - Reverse FCS is not supported, 1 - Reverse FCS is supported
2923 tANI_U32 chnlBonding:1; // 0 - Channel Bonding is not supported, 1 - Channel Bonding is supported
2924 tANI_U32 compression:1; // 0 - Compression is not supported, 1 - Compression is supported
2925 tANI_U32 concat:1; // 0 - Concat is not supported, 1 - Concat is supported
2926#endif
2927} __ani_attr_packed tSirBoardCapabilities, *tpSirBoardCapabilities;
2928
2929# define ANI_BCAP_EXT_VS_INT_ANT_MASK 0x1
2930# define ANI_BCAP_EXT_VS_INT_ANT_OFFSET 0
2931
2932# define ANI_BCAP_GAL_ON_BOARD_MASK 0x2
2933# define ANI_BCAP_GAL_ON_BOARD_OFFSET 1
2934
2935# define ANI_BCAP_SDRAM_MASK 0x4
2936# define ANI_BCAP_SDRAM_OFFSET 2
2937
2938# define ANI_BCAP_NUM_TRANSMITTERS_MASK 0x8
2939# define ANI_BCAP_NUM_TRANSMITTERS_OFFSET 3
2940
2941# define ANI_BCAP_NUM_RECEIVERS_MASK 0x30
2942# define ANI_BCAP_NUM_RECEIVERS_OFFSET 4
2943
2944# define ANI_BCAP_RADIO_ON_MASK 0xC0
2945# define ANI_BCAP_RADIO_ON_OFFSET 6
2946
2947# define ANI_BCAP_LO_TYPE_MASK 0x300
2948# define ANI_BCAP_LO_TYPE_OFFSET 8
2949
2950# define ANI_BCAP_BB_CHIP_VER_MASK 0xC00
2951# define ANI_BCAP_BB_CHIP_VER_OFFSET 10
2952
2953# define ANI_BCAP_CYG_DATE_CODE_MASK 0xFF000
2954# define ANI_BCAP_CYG_DATE_CODE_OFFSET 12
2955
2956# define ANI_BCAP_RADIO_OFF 0
2957# define ANI_BCAP_RADIO_ON 1
2958# define ANI_BCAP_RADIO_ON_NOT_SUPPORTED 3
2959
2960
2961/// WOW related structures
2962// SME -> PE <-> HAL
2963#define SIR_WOWL_BCAST_PATTERN_MAX_SIZE 128
2964#define SIR_WOWL_BCAST_MAX_NUM_PATTERNS 16
2965
2966// SME -> PE -> HAL - This is to add WOWL BCAST wake-up pattern.
2967// SME/HDD maintains the list of the BCAST wake-up patterns.
2968// This is a pass through message for PE
2969typedef struct sSirWowlAddBcastPtrn
2970{
2971 tANI_U8 ucPatternId; // Pattern ID
2972 // Pattern byte offset from beginning of the 802.11 packet to start of the
2973 // wake-up pattern
2974 tANI_U8 ucPatternByteOffset;
2975 tANI_U8 ucPatternSize; // Non-Zero Pattern size
2976 tANI_U8 ucPattern[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
2977 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
2978 tANI_U8 ucPatternMask[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
2979 // Extra pattern data beyond 128 bytes
2980 tANI_U8 ucPatternExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern
2981 tANI_U8 ucPatternMaskExt[SIR_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra Pattern mask
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002982 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07002983} tSirWowlAddBcastPtrn, *tpSirWowlAddBcastPtrn;
2984
2985
2986// SME -> PE -> HAL - This is to delete WOWL BCAST wake-up pattern.
2987// SME/HDD maintains the list of the BCAST wake-up patterns.
2988// This is a pass through message for PE
2989typedef struct sSirWowlDelBcastPtrn
2990{
2991 /* Pattern ID of the wakeup pattern to be deleted */
2992 tANI_U8 ucPatternId;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07002993 tSirMacAddr bssId; // BSSID
Jeff Johnson295189b2012-06-20 16:38:30 -07002994}tSirWowlDelBcastPtrn, *tpSirWowlDelBcastPtrn;
2995
2996
2997// SME->PE: Enter WOWLAN parameters
2998typedef struct sSirSmeWowlEnterParams
2999{
3000 /* Enables/disables magic packet filtering */
3001 tANI_U8 ucMagicPktEnable;
3002
3003 /* Magic pattern */
3004 tSirMacAddr magicPtrn;
3005
3006 /* Enables/disables packet pattern filtering */
3007 tANI_U8 ucPatternFilteringEnable;
3008
3009#ifdef WLAN_WAKEUP_EVENTS
3010 /* This configuration directs the WoW packet filtering to look for EAP-ID
3011 * requests embedded in EAPOL frames and use this as a wake source.
3012 */
3013 tANI_U8 ucWoWEAPIDRequestEnable;
3014
3015 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3016 * requests and use this as a wake source.
3017 */
3018 tANI_U8 ucWoWEAPOL4WayEnable;
3019
3020 /* This configuration allows a host wakeup on an network scan offload match.
3021 */
3022 tANI_U8 ucWowNetScanOffloadMatch;
3023
3024 /* This configuration allows a host wakeup on any GTK rekeying error.
3025 */
3026 tANI_U8 ucWowGTKRekeyError;
3027
3028 /* This configuration allows a host wakeup on BSS connection loss.
3029 */
3030 tANI_U8 ucWoWBSSConnLoss;
3031#endif // WLAN_WAKEUP_EVENTS
3032
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003033 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003034} tSirSmeWowlEnterParams, *tpSirSmeWowlEnterParams;
3035
3036
3037// PE<->HAL: Enter WOWLAN parameters
3038typedef struct sSirHalWowlEnterParams
3039{
3040 /* Enables/disables magic packet filtering */
3041 tANI_U8 ucMagicPktEnable;
3042
3043 /* Magic pattern */
3044 tSirMacAddr magicPtrn;
3045
3046 /* Enables/disables packet pattern filtering in firmware.
3047 Enabling this flag enables broadcast pattern matching
3048 in Firmware. If unicast pattern matching is also desired,
3049 ucUcastPatternFilteringEnable flag must be set tot true
3050 as well
3051 */
3052 tANI_U8 ucPatternFilteringEnable;
3053
3054 /* Enables/disables unicast packet pattern filtering.
3055 This flag specifies whether we want to do pattern match
3056 on unicast packets as well and not just broadcast packets.
3057 This flag has no effect if the ucPatternFilteringEnable
3058 (main controlling flag) is set to false
3059 */
3060 tANI_U8 ucUcastPatternFilteringEnable;
3061
3062 /* This configuration is valid only when magicPktEnable=1.
3063 * It requests hardware to wake up when it receives the
3064 * Channel Switch Action Frame.
3065 */
3066 tANI_U8 ucWowChnlSwitchRcv;
3067
3068 /* This configuration is valid only when magicPktEnable=1.
3069 * It requests hardware to wake up when it receives the
3070 * Deauthentication Frame.
3071 */
3072 tANI_U8 ucWowDeauthRcv;
3073
3074 /* This configuration is valid only when magicPktEnable=1.
3075 * It requests hardware to wake up when it receives the
3076 * Disassociation Frame.
3077 */
3078 tANI_U8 ucWowDisassocRcv;
3079
3080 /* This configuration is valid only when magicPktEnable=1.
3081 * It requests hardware to wake up when it has missed
3082 * consecutive beacons. This is a hardware register
3083 * configuration (NOT a firmware configuration).
3084 */
3085 tANI_U8 ucWowMaxMissedBeacons;
3086
3087 /* This configuration is valid only when magicPktEnable=1.
3088 * This is a timeout value in units of microsec. It requests
3089 * hardware to unconditionally wake up after it has stayed
3090 * in WoWLAN mode for some time. Set 0 to disable this feature.
3091 */
3092 tANI_U8 ucWowMaxSleepUsec;
3093
3094#ifdef WLAN_WAKEUP_EVENTS
3095 /* This configuration directs the WoW packet filtering to look for EAP-ID
3096 * requests embedded in EAPOL frames and use this as a wake source.
3097 */
3098 tANI_U8 ucWoWEAPIDRequestEnable;
3099
3100 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3101 * requests and use this as a wake source.
3102 */
3103 tANI_U8 ucWoWEAPOL4WayEnable;
3104
3105 /* This configuration allows a host wakeup on an network scan offload match.
3106 */
3107 tANI_U8 ucWowNetScanOffloadMatch;
3108
3109 /* This configuration allows a host wakeup on any GTK rekeying error.
3110 */
3111 tANI_U8 ucWowGTKRekeyError;
3112
3113 /* This configuration allows a host wakeup on BSS connection loss.
3114 */
3115 tANI_U8 ucWoWBSSConnLoss;
3116#endif // WLAN_WAKEUP_EVENTS
3117
3118 /* Status code to be filled by HAL when it sends
3119 * SIR_HAL_WOWL_ENTER_RSP to PE.
3120 */
3121 eHalStatus status;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003122
3123 /*BSSID to find the current session
3124 */
3125 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003126} tSirHalWowlEnterParams, *tpSirHalWowlEnterParams;
3127
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003128// PE<->HAL: Exit WOWLAN parameters
3129typedef struct sSirHalWowlExitParams
3130{
3131 /* Status code to be filled by HAL when it sends
3132 * SIR_HAL_WOWL_EXIT_RSP to PE.
3133 */
3134 eHalStatus status;
3135
3136 /*BSSIDX to find the current session
3137 */
3138 tANI_U8 bssIdx;
3139} tSirHalWowlExitParams, *tpSirHalWowlExitParams;
3140
Jeff Johnson295189b2012-06-20 16:38:30 -07003141
3142#define SIR_MAX_NAME_SIZE 64
3143#define SIR_MAX_TEXT_SIZE 32
3144
3145typedef struct sSirName {
3146 v_U8_t num_name;
3147 v_U8_t name[SIR_MAX_NAME_SIZE];
3148} tSirName;
3149
3150typedef struct sSirText {
3151 v_U8_t num_text;
3152 v_U8_t text[SIR_MAX_TEXT_SIZE];
3153} tSirText;
3154
3155
3156#define SIR_WPS_PROBRSP_VER_PRESENT 0x00000001
3157#define SIR_WPS_PROBRSP_STATE_PRESENT 0x00000002
3158#define SIR_WPS_PROBRSP_APSETUPLOCK_PRESENT 0x00000004
3159#define SIR_WPS_PROBRSP_SELECTEDREGISTRA_PRESENT 0x00000008
3160#define SIR_WPS_PROBRSP_DEVICEPASSWORDID_PRESENT 0x00000010
3161#define SIR_WPS_PROBRSP_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3162#define SIR_WPS_PROBRSP_RESPONSETYPE_PRESENT 0x00000040
3163#define SIR_WPS_PROBRSP_UUIDE_PRESENT 0x00000080
3164#define SIR_WPS_PROBRSP_MANUFACTURE_PRESENT 0x00000100
3165#define SIR_WPS_PROBRSP_MODELNAME_PRESENT 0x00000200
3166#define SIR_WPS_PROBRSP_MODELNUMBER_PRESENT 0x00000400
3167#define SIR_WPS_PROBRSP_SERIALNUMBER_PRESENT 0x00000800
3168#define SIR_WPS_PROBRSP_PRIMARYDEVICETYPE_PRESENT 0x00001000
3169#define SIR_WPS_PROBRSP_DEVICENAME_PRESENT 0x00002000
3170#define SIR_WPS_PROBRSP_CONFIGMETHODS_PRESENT 0x00004000
3171#define SIR_WPS_PROBRSP_RF_BANDS_PRESENT 0x00008000
3172
3173
3174typedef struct sSirWPSProbeRspIE {
3175 v_U32_t FieldPresent;
3176 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3177 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3178 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3179 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3180 v_U16_t DevicePasswordID; // Device Password ID
3181 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3182 v_U8_t ResponseType; // Response type
3183 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3184 tSirName Manufacture;
3185 tSirText ModelName;
3186 tSirText ModelNumber;
3187 tSirText SerialNumber;
3188 v_U32_t PrimaryDeviceCategory ; // Device Category ID: 1Computer, 2Input Device, ...
3189 v_U8_t PrimaryDeviceOUI[4] ; // Vendor specific OUI for Device Sub Category
3190 v_U32_t DeviceSubCategory ; // Device Sub Category ID: 1-PC, 2-Server if Device Category ID is computer
3191 tSirText DeviceName;
3192 v_U16_t ConfigMethod; // Configuaration method
3193 v_U8_t RFBand; // RF bands available on the AP
3194} tSirWPSProbeRspIE;
3195
3196#define SIR_WPS_BEACON_VER_PRESENT 0x00000001
3197#define SIR_WPS_BEACON_STATE_PRESENT 0x00000002
3198#define SIR_WPS_BEACON_APSETUPLOCK_PRESENT 0x00000004
3199#define SIR_WPS_BEACON_SELECTEDREGISTRA_PRESENT 0x00000008
3200#define SIR_WPS_BEACON_DEVICEPASSWORDID_PRESENT 0x00000010
3201#define SIR_WPS_BEACON_SELECTEDREGISTRACFGMETHOD_PRESENT 0x00000020
3202#define SIR_WPS_BEACON_UUIDE_PRESENT 0x00000080
3203#define SIR_WPS_BEACON_RF_BANDS_PRESENT 0x00000100
3204
3205typedef struct sSirWPSBeaconIE {
3206 v_U32_t FieldPresent;
3207 v_U32_t Version; // Version. 0x10 = version 1.0, 0x11 = etc.
3208 v_U32_t wpsState; // 1 = unconfigured, 2 = configured.
3209 v_BOOL_t APSetupLocked; // Must be included if value is TRUE
3210 v_BOOL_t SelectedRegistra; //BOOL: indicates if the user has recently activated a Registrar to add an Enrollee.
3211 v_U16_t DevicePasswordID; // Device Password ID
3212 v_U16_t SelectedRegistraCfgMethod; // Selected Registrar config method
3213 v_U8_t UUID_E[16]; // Unique identifier of the AP.
3214 v_U8_t RFBand; // RF bands available on the AP
3215} tSirWPSBeaconIE;
3216
3217#define SIR_WPS_ASSOCRSP_VER_PRESENT 0x00000001
3218#define SIR_WPS_ASSOCRSP_RESPONSETYPE_PRESENT 0x00000002
3219
3220typedef struct sSirWPSAssocRspIE {
3221 v_U32_t FieldPresent;
3222 v_U32_t Version;
3223 v_U8_t ResposeType;
3224} tSirWPSAssocRspIE;
3225
3226typedef struct sSirAPWPSIEs {
3227 tSirWPSProbeRspIE SirWPSProbeRspIE; /*WPS Set Probe Respose IE*/
3228 tSirWPSBeaconIE SirWPSBeaconIE; /*WPS Set Beacon IE*/
3229 tSirWPSAssocRspIE SirWPSAssocRspIE; /*WPS Set Assoc Response IE*/
3230} tSirAPWPSIEs, *tpSiriAPWPSIEs;
3231
3232typedef struct sSirUpdateAPWPSIEsReq
3233{
3234 tANI_U16 messageType; // eWNI_SME_UPDATE_APWPSIE_REQ
3235 tANI_U16 length;
3236 tANI_U16 transactionId; //Transaction ID for cmd
3237 tSirMacAddr bssId; // BSSID
3238 tANI_U8 sessionId; //Session ID
3239 tSirAPWPSIEs APWPSIEs;
3240} tSirUpdateAPWPSIEsReq, *tpSirUpdateAPWPSIEsReq;
3241
3242typedef struct sSirUpdateParams
3243{
3244 tANI_U16 messageType;
3245 tANI_U16 length;
3246 tANI_U8 sessionId; // Session ID
3247 tANI_U8 ssidHidden; // Hide SSID
3248} tSirUpdateParams, *tpSirUpdateParams;
3249
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08003250//Beacon Interval
3251typedef struct sSirChangeBIParams
3252{
3253 tANI_U16 messageType;
3254 tANI_U16 length;
3255 tANI_U16 beaconInterval; // Beacon Interval
3256 tSirMacAddr bssId;
3257 tANI_U8 sessionId; // Session ID
3258} tSirChangeBIParams, *tpSirChangeBIParams;
3259
Jeff Johnson295189b2012-06-20 16:38:30 -07003260#define SIR_WPS_UUID_LEN 16
3261#define SIR_WPS_PBC_WALK_TIME 120 // 120 Second
3262
3263typedef struct sSirWPSPBCSession {
3264 struct sSirWPSPBCSession *next;
3265 tSirMacAddr addr;
3266 tANI_U8 uuid_e[SIR_WPS_UUID_LEN];
3267 tANI_TIMESTAMP timestamp;
3268} tSirWPSPBCSession;
3269
3270typedef struct sSirSmeGetWPSPBCSessionsReq
3271{
3272 tANI_U16 messageType; // eWNI_SME_GET_WPSPBC_SESSION_REQ
3273 tANI_U16 length;
3274 void *pUsrContext;
3275 void *pSapEventCallback;
3276 tSirMacAddr bssId; // BSSID
3277 tSirMacAddr pRemoveMac; // MAC Address of STA in WPS Session to be removed
3278} tSirSmeGetWPSPBCSessionsReq, *tpSirSmeGetWPSPBCSessionsReq;
3279
3280typedef struct sSirWPSPBCProbeReq
3281{
3282 tSirMacAddr peerMacAddr;
3283 tANI_U16 probeReqIELen;
3284 tANI_U8 probeReqIE[512];
3285} tSirWPSPBCProbeReq, *tpSirWPSPBCProbeReq;
3286
3287// probereq from peer, when wsc is enabled
3288typedef struct sSirSmeProbeReqInd
3289{
3290 tANI_U16 messageType; // eWNI_SME_WPS_PBC_PROBE_REQ_IND
3291 tANI_U16 length;
3292 tANI_U8 sessionId;
3293 tSirMacAddr bssId;
3294 tSirWPSPBCProbeReq WPSPBCProbeReq;
3295} tSirSmeProbeReqInd, *tpSirSmeProbeReqInd;
3296
3297typedef struct sSirUpdateAPWPARSNIEsReq
3298{
3299 tANI_U16 messageType; // eWNI_SME_SET_APWPARSNIEs_REQ
3300 tANI_U16 length;
3301 tANI_U16 transactionId; //Transaction ID for cmd
3302 tSirMacAddr bssId; // BSSID
3303 tANI_U8 sessionId; //Session ID
3304 tSirRSNie APWPARSNIEs;
3305} tSirUpdateAPWPARSNIEsReq, *tpSirUpdateAPWPARSNIEsReq;
3306
Jeff Johnson295189b2012-06-20 16:38:30 -07003307
3308// SME -> HAL - This is the host offload request.
3309#define SIR_IPV4_ARP_REPLY_OFFLOAD 0
3310#define SIR_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3311#define SIR_IPV6_NS_OFFLOAD 2
3312#define SIR_OFFLOAD_DISABLE 0
3313#define SIR_OFFLOAD_ENABLE 1
3314#define SIR_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudibadffe72013-09-11 13:09:14 +05303315#define SIR_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003316#define SIR_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudibadffe72013-09-11 13:09:14 +05303317#define SIR_OFFLOAD_NS_AND_MCAST_FILTER_ENABLE (SIR_OFFLOAD_ENABLE|SIR_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003318
3319#ifdef WLAN_NS_OFFLOAD
3320typedef struct sSirNsOffloadReq
3321{
3322 tANI_U8 srcIPv6Addr[16];
3323 tANI_U8 selfIPv6Addr[16];
3324 //Only support 2 possible Network Advertisement IPv6 address
3325 tANI_U8 targetIPv6Addr[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][16];
3326 tANI_U8 selfMacAddr[6];
3327 tANI_U8 srcIPv6AddrValid;
3328 tANI_U8 targetIPv6AddrValid[SIR_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA];
Gopichand Nakkala746a9452013-06-11 12:45:54 +05303329 tANI_U8 slotIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003330} tSirNsOffloadReq, *tpSirNsOffloadReq;
3331#endif //WLAN_NS_OFFLOAD
3332
3333typedef struct sSirHostOffloadReq
3334{
3335 tANI_U8 offloadType;
3336 tANI_U8 enableOrDisable;
3337 union
3338 {
3339 tANI_U8 hostIpv4Addr [4];
3340 tANI_U8 hostIpv6Addr [16];
3341 } params;
3342#ifdef WLAN_NS_OFFLOAD
3343 tSirNsOffloadReq nsOffloadInfo;
3344#endif //WLAN_NS_OFFLOAD
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003345 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003346} tSirHostOffloadReq, *tpSirHostOffloadReq;
3347
3348/* Packet Types. */
3349#define SIR_KEEP_ALIVE_NULL_PKT 1
3350#define SIR_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3351
3352/* Enable or disable offload. */
3353#define SIR_KEEP_ALIVE_DISABLE 0
3354#define SIR_KEEP_ALIVE_ENABLE 1
3355
3356/* Keep Alive request. */
3357typedef struct sSirKeepAliveReq
3358{
3359 v_U8_t packetType;
3360 v_U32_t timePeriod;
3361 tSirIpv4Addr hostIpv4Addr;
3362 tSirIpv4Addr destIpv4Addr;
3363 tSirMacAddr destMacAddr;
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003364 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003365} tSirKeepAliveReq, *tpSirKeepAliveReq;
3366
3367typedef struct sSirSmeAddStaSelfReq
3368{
3369 tANI_U16 mesgType;
3370 tANI_U16 mesgLen;
3371 tSirMacAddr selfMacAddr;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07003372 tVOS_CON_MODE currDeviceMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07003373}tSirSmeAddStaSelfReq, *tpSirSmeAddStaSelfReq;
3374
3375typedef struct sSirSmeDelStaSelfReq
3376{
3377 tANI_U16 mesgType;
3378 tANI_U16 mesgLen;
3379 tSirMacAddr selfMacAddr;
3380}tSirSmeDelStaSelfReq, *tpSirSmeDelStaSelfReq;
3381
3382typedef struct sSirSmeAddStaSelfRsp
3383{
3384 tANI_U16 mesgType;
3385 tANI_U16 mesgLen;
3386 tANI_U16 status;
3387 tSirMacAddr selfMacAddr;
3388}tSirSmeAddStaSelfRsp, *tpSirSmeAddStaSelfRsp;
3389
3390typedef struct sSirSmeDelStaSelfRsp
3391{
3392 tANI_U16 mesgType;
3393 tANI_U16 mesgLen;
3394 tANI_U16 status;
3395 tSirMacAddr selfMacAddr;
3396}tSirSmeDelStaSelfRsp, *tpSirSmeDelStaSelfRsp;
3397
3398/* Coex Indication defines -
3399 should match WLAN_COEX_IND_DATA_SIZE
3400 should match WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR
3401 should match WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR */
3402#define SIR_COEX_IND_DATA_SIZE (4)
3403#define SIR_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
3404#define SIR_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Kiran Kumar Lokere3527f0c2013-02-24 22:21:28 -08003405#define SIR_COEX_IND_TYPE_SCAN_COMPROMISED (2)
3406#define SIR_COEX_IND_TYPE_SCAN_NOT_COMPROMISED (3)
Kiran Kumar Lokere458d7322013-05-29 14:29:43 -07003407#define SIR_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
3408#define SIR_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07003409
3410typedef struct sSirSmeCoexInd
3411{
3412 tANI_U16 mesgType;
3413 tANI_U16 mesgLen;
3414 tANI_U32 coexIndType;
3415 tANI_U32 coexIndData[SIR_COEX_IND_DATA_SIZE];
3416}tSirSmeCoexInd, *tpSirSmeCoexInd;
3417
Jeff Johnson295189b2012-06-20 16:38:30 -07003418typedef struct sSirSmeMgmtFrameInd
3419{
3420 tANI_U16 mesgType;
3421 tANI_U16 mesgLen;
Chilam NG571c65a2013-01-19 12:27:36 +05303422 tANI_U32 rxChan;
Jeff Johnson295189b2012-06-20 16:38:30 -07003423 tANI_U8 sessionId;
3424 tANI_U8 frameType;
Chilam NG571c65a2013-01-19 12:27:36 +05303425 tANI_S8 rxRssi;
Jeff Johnson295189b2012-06-20 16:38:30 -07003426 tANI_U8 frameBuf[1]; //variable
3427}tSirSmeMgmtFrameInd, *tpSirSmeMgmtFrameInd;
Jeff Johnson295189b2012-06-20 16:38:30 -07003428
Chet Lanctot186b5732013-03-18 10:26:30 -07003429#ifdef WLAN_FEATURE_11W
3430typedef struct sSirSmeUnprotMgmtFrameInd
3431{
3432 tANI_U8 sessionId;
3433 tANI_U8 frameType;
3434 tANI_U8 frameLen;
3435 tANI_U8 frameBuf[1]; //variable
3436}tSirSmeUnprotMgmtFrameInd, *tpSirSmeUnprotMgmtFrameInd;
3437#endif
3438
Jeff Johnson295189b2012-06-20 16:38:30 -07003439#define SIR_IS_FULL_POWER_REASON_DISCONNECTED(eReason) \
3440 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || \
3441 ( eSME_LINK_DISCONNECTED_BY_OTHER == (eReason) ) || \
3442 (eSME_FULL_PWR_NEEDED_BY_CHANNEL_SWITCH == (eReason)))
3443#define SIR_IS_FULL_POWER_NEEDED_BY_HDD(eReason) \
3444 ( ( eSME_LINK_DISCONNECTED_BY_HDD == (eReason) ) || ( eSME_FULL_PWR_NEEDED_BY_HDD == (eReason) ) )
3445
3446/* P2P Power Save Related */
Jeff Johnson295189b2012-06-20 16:38:30 -07003447typedef struct sSirNoAParam
3448{
3449 tANI_U8 ctWindow:7;
3450 tANI_U8 OppPS:1;
3451 tANI_U8 count;
3452 tANI_U32 duration;
3453 tANI_U32 interval;
3454 tANI_U32 singleNoADuration;
3455 tANI_U8 psSelection;
3456}tSirNoAParam, *tpSirNoAParam;
Jeff Johnson295189b2012-06-20 16:38:30 -07003457
Jeff Johnson295189b2012-06-20 16:38:30 -07003458typedef struct sSirWlanSuspendParam
3459{
3460 tANI_U8 configuredMcstBcstFilterSetting;
3461}tSirWlanSuspendParam,*tpSirWlanSuspendParam;
3462
3463typedef struct sSirWlanResumeParam
3464{
3465 tANI_U8 configuredMcstBcstFilterSetting;
3466}tSirWlanResumeParam,*tpSirWlanResumeParam;
3467
3468typedef struct sSirWlanSetRxpFilters
3469{
3470 tANI_U8 configuredMcstBcstFilterSetting;
3471 tANI_U8 setMcstBcstFilter;
3472}tSirWlanSetRxpFilters,*tpSirWlanSetRxpFilters;
Jeff Johnson295189b2012-06-20 16:38:30 -07003473
3474
3475#ifdef FEATURE_WLAN_SCAN_PNO
3476//
3477// PNO Messages
3478//
3479
3480// Set PNO
3481#define SIR_PNO_MAX_NETW_CHANNELS 26
Pratik Bhalgatd4404592012-11-22 17:49:14 +05303482#define SIR_PNO_MAX_NETW_CHANNELS_EX 60
Jeff Johnson295189b2012-06-20 16:38:30 -07003483#define SIR_PNO_MAX_SUPP_NETWORKS 16
3484#define SIR_PNO_MAX_SCAN_TIMERS 10
3485
3486/*size based of dot11 declaration without extra IEs as we will not carry those for PNO*/
3487#define SIR_PNO_MAX_PB_REQ_SIZE 450
3488
3489#define SIR_PNO_24G_DEFAULT_CH 1
3490#define SIR_PNO_5G_DEFAULT_CH 36
3491
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003492#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
3493#define SIR_ROAM_MAX_CHANNELS NUM_RF_CHANNELS
3494#define SIR_ROAM_SCAN_MAX_PB_REQ_SIZE 450
3495#define CHANNEL_LIST_STATIC 1 /* Occupied channel list remains static */
3496#define CHANNEL_LIST_DYNAMIC_INIT 2 /* Occupied channel list can be learnt after init */
3497#define CHANNEL_LIST_DYNAMIC_FLUSH 3 /* Occupied channel list can be learnt after flush */
3498#define CHANNEL_LIST_DYNAMIC_UPDATE 4 /* Occupied channel list can be learnt after update */
3499#define SIR_ROAM_SCAN_24G_DEFAULT_CH 1
3500#define SIR_ROAM_SCAN_5G_DEFAULT_CH 36
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07003501#define SIR_ROAM_SCAN_RESERVED_BYTES 61
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003502#endif
3503
Jeff Johnson295189b2012-06-20 16:38:30 -07003504typedef enum
3505{
3506 SIR_PNO_MODE_IMMEDIATE,
3507 SIR_PNO_MODE_ON_SUSPEND,
3508 SIR_PNO_MODE_ON_RESUME,
3509 SIR_PNO_MODE_MAX
3510} eSirPNOMode;
3511
3512typedef struct
3513{
3514 tSirMacSSid ssId;
3515 tANI_U32 authentication;
3516 tANI_U32 encryption;
3517 tANI_U32 bcastNetwType;
3518 tANI_U8 ucChannelCount;
Gopichand Nakkala8e93fde2013-05-10 17:40:12 +05303519 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS_EX];
Jeff Johnson295189b2012-06-20 16:38:30 -07003520 tANI_U8 rssiThreshold;
3521} tSirNetworkType;
3522
3523typedef struct
3524{
3525 tANI_U32 uTimerValue;
3526 tANI_U32 uTimerRepeat;
3527}tSirScanTimer;
3528
3529typedef struct
3530{
3531 tANI_U8 ucScanTimersCount;
3532 tSirScanTimer aTimerValues[SIR_PNO_MAX_SCAN_TIMERS];
3533} tSirScanTimersType;
3534
3535typedef struct sSirPNOScanReq
3536{
3537 tANI_U8 enable;
3538 eSirPNOMode modePNO;
3539 tANI_U8 ucNetworksCount;
3540 tSirNetworkType aNetworks[SIR_PNO_MAX_SUPP_NETWORKS];
3541 tSirScanTimersType scanTimers;
3542
3543 /*added by SME*/
3544 tANI_U16 us24GProbeTemplateLen;
3545 tANI_U8 p24GProbeTemplate[SIR_PNO_MAX_PB_REQ_SIZE];
3546 tANI_U16 us5GProbeTemplateLen;
3547 tANI_U8 p5GProbeTemplate[SIR_PNO_MAX_PB_REQ_SIZE];
3548} tSirPNOScanReq, *tpSirPNOScanReq;
3549
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003550#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
3551typedef struct
3552{
3553 tSirMacSSid ssId;
3554 tANI_U8 currAPbssid[WNI_CFG_BSSID_LEN];
3555 tANI_U32 authentication;
3556 tANI_U8 encryption;
3557 tANI_U8 mcencryption;
3558 tANI_U8 ChannelCount;
3559 tANI_U8 ChannelCache[SIR_ROAM_MAX_CHANNELS];
3560
3561} tSirRoamNetworkType;
3562
3563typedef struct SirMobilityDomainInfo
3564{
3565 tANI_U8 mdiePresent;
3566 tANI_U16 mobilityDomain;
3567} tSirMobilityDomainInfo;
3568
3569typedef struct sSirRoamOffloadScanReq
3570{
3571 eAniBoolean RoamScanOffloadEnabled;
3572 tANI_S8 LookupThreshold;
3573 tANI_U8 RoamRssiDiff;
3574 tANI_U8 ChannelCacheType;
3575 tANI_U8 Command;
3576 tANI_U8 StartScanReason;
3577 tANI_U16 NeighborScanTimerPeriod;
3578 tANI_U16 NeighborRoamScanRefreshPeriod;
3579 tANI_U16 NeighborScanChannelMinTime;
3580 tANI_U16 NeighborScanChannelMaxTime;
3581 tANI_U16 EmptyRefreshScanPeriod;
3582 tANI_U8 ValidChannelCount;
3583 tANI_U8 ValidChannelList[SIR_ROAM_MAX_CHANNELS];
3584 eAniBoolean IsCCXEnabled;
3585 tANI_U16 us24GProbeTemplateLen;
3586 tANI_U8 p24GProbeTemplate[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
3587 tANI_U16 us5GProbeTemplateLen;
3588 tANI_U8 p5GProbeTemplate[SIR_ROAM_SCAN_MAX_PB_REQ_SIZE];
Varun Reddy Yeturu920df212013-05-22 08:07:23 -07003589 tANI_U8 ReservedBytes[SIR_ROAM_SCAN_RESERVED_BYTES];
3590 /*ReservedBytes is to add any further params in future
3591 without changing the interface params on Host
3592 and firmware.The firmware right now checks
3593 if the size of this structure matches and then
3594 proceeds with the processing of the command.
3595 So, in future, if there is any need to add
3596 more params, pick the memory from reserved
3597 bytes and keep deducting the reserved bytes
3598 by the amount of bytes picked.*/
3599 tANI_U8 nProbes;
3600 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07003601 tSirRoamNetworkType ConnectedNetwork;
3602 tSirMobilityDomainInfo MDID;
3603} tSirRoamOffloadScanReq, *tpSirRoamOffloadScanReq;
3604#endif
3605
Jeff Johnson295189b2012-06-20 16:38:30 -07003606typedef struct sSirSetRSSIFilterReq
3607{
3608 tANI_U8 rssiThreshold;
3609} tSirSetRSSIFilterReq, *tpSirSetRSSIFilterReq;
3610
3611
3612// Update Scan Params
3613typedef struct {
3614 tANI_U8 b11dEnabled;
3615 tANI_U8 b11dResolved;
3616 tANI_U8 ucChannelCount;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05303617 tANI_U8 aChannels[SIR_PNO_MAX_NETW_CHANNELS_EX];
Jeff Johnson295189b2012-06-20 16:38:30 -07003618 tANI_U16 usPassiveMinChTime;
3619 tANI_U16 usPassiveMaxChTime;
3620 tANI_U16 usActiveMinChTime;
3621 tANI_U16 usActiveMaxChTime;
3622 tANI_U8 ucCBState;
3623} tSirUpdateScanParams, * tpSirUpdateScanParams;
3624
3625// Preferred Network Found Indication
3626typedef struct
3627{
Srikant Kuppa066904f2013-05-07 13:56:02 -07003628 tANI_U16 mesgType;
3629 tANI_U16 mesgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003630 /* Network that was found with the highest RSSI*/
Srikant Kuppa066904f2013-05-07 13:56:02 -07003631 tSirMacSSid ssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003632 /* Indicates the RSSI */
Srikant Kuppa066904f2013-05-07 13:56:02 -07003633 tANI_U8 rssi;
3634 /* Length of the beacon or probe response
3635 * corresponding to the candidate found by PNO */
3636 tANI_U32 frameLength;
3637 /* Index to memory location where the contents of
3638 * beacon or probe response frame will be copied */
3639 tANI_U8 data[1];
Jeff Johnson295189b2012-06-20 16:38:30 -07003640} tSirPrefNetworkFoundInd, *tpSirPrefNetworkFoundInd;
3641#endif // FEATURE_WLAN_SCAN_PNO
3642
3643#define SIR_NOCHANGE_POWER_VALUE 0xFFFFFFFF
3644
3645//Power Parameters Type
3646typedef enum
3647{
3648 eSIR_IGNORE_DTIM = 1,
3649 eSIR_LISTEN_INTERVAL = 2,
3650 eSIR_MCAST_BCAST_FILTER = 3,
3651 eSIR_ENABLE_BET = 4,
3652 eSIR_BET_INTERVAL = 5
3653}tPowerParamType;
3654
3655//Power Parameters Value s
3656typedef struct
3657{
3658 /* Ignore DTIM */
3659 tANI_U32 uIgnoreDTIM;
3660
3661 /* DTIM Period */
3662 tANI_U32 uDTIMPeriod;
3663
3664 /* Listen Interval */
3665 tANI_U32 uListenInterval;
3666
3667 /* Broadcast Multicas Filter */
3668 tANI_U32 uBcastMcastFilter;
3669
3670 /* Beacon Early Termination */
3671 tANI_U32 uEnableBET;
3672
3673 /* Beacon Early Termination Interval */
3674 tANI_U32 uBETInterval;
3675
Yue Mac24062f2013-05-13 17:01:29 -07003676 /* MAX LI for modulated DTIM */
3677 tANI_U32 uMaxLIModulatedDTIM;
3678
Jeff Johnson295189b2012-06-20 16:38:30 -07003679}tSirSetPowerParamsReq, *tpSirSetPowerParamsReq;
3680
3681typedef struct sSirTxPerTrackingParam
3682{
3683 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
3684 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. Once tx_stat_chk enable, firmware will check PER in this period periodically */
3685 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 */
3686 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
3687}tSirTxPerTrackingParam, *tpSirTxPerTrackingParam;
3688
3689#ifdef WLAN_FEATURE_PACKET_FILTERING
3690/*---------------------------------------------------------------------------
3691 Packet Filtering Parameters
3692---------------------------------------------------------------------------*/
3693#define SIR_IPV4_ADDR_LEN 4
3694#define SIR_MAC_ADDR_LEN 6
3695#define SIR_MAX_FILTER_TEST_DATA_LEN 8
3696#define SIR_MAX_NUM_MULTICAST_ADDRESS 240
3697#define SIR_MAX_NUM_FILTERS 20
3698#define SIR_MAX_NUM_TESTS_PER_FILTER 10
3699
3700//
3701// Receive Filter Parameters
3702//
3703typedef enum
3704{
3705 SIR_RCV_FILTER_TYPE_INVALID,
3706 SIR_RCV_FILTER_TYPE_FILTER_PKT,
3707 SIR_RCV_FILTER_TYPE_BUFFER_PKT,
3708 SIR_RCV_FILTER_TYPE_MAX_ENUM_SIZE
3709}eSirReceivePacketFilterType;
3710
3711typedef enum
3712{
3713 SIR_FILTER_HDR_TYPE_INVALID,
3714 SIR_FILTER_HDR_TYPE_MAC,
3715 SIR_FILTER_HDR_TYPE_ARP,
3716 SIR_FILTER_HDR_TYPE_IPV4,
3717 SIR_FILTER_HDR_TYPE_IPV6,
3718 SIR_FILTER_HDR_TYPE_UDP,
3719 SIR_FILTER_HDR_TYPE_MAX
3720}eSirRcvPktFltProtocolType;
3721
3722typedef enum
3723{
3724 SIR_FILTER_CMP_TYPE_INVALID,
3725 SIR_FILTER_CMP_TYPE_EQUAL,
3726 SIR_FILTER_CMP_TYPE_MASK_EQUAL,
3727 SIR_FILTER_CMP_TYPE_NOT_EQUAL,
3728 SIR_FILTER_CMP_TYPE_MASK_NOT_EQUAL,
3729 SIR_FILTER_CMP_TYPE_MAX
3730}eSirRcvPktFltCmpFlagType;
3731
3732typedef struct sSirRcvPktFilterFieldParams
3733{
3734 eSirRcvPktFltProtocolType protocolLayer;
3735 eSirRcvPktFltCmpFlagType cmpFlag;
3736 /* Length of the data to compare */
3737 tANI_U16 dataLength;
3738 /* from start of the respective frame header */
3739 tANI_U8 dataOffset;
3740 /* Reserved field */
3741 tANI_U8 reserved;
3742 /* Data to compare */
3743 tANI_U8 compareData[SIR_MAX_FILTER_TEST_DATA_LEN];
3744 /* Mask to be applied on the received packet data before compare */
3745 tANI_U8 dataMask[SIR_MAX_FILTER_TEST_DATA_LEN];
3746}tSirRcvPktFilterFieldParams, *tpSirRcvPktFilterFieldParams;
3747
3748typedef struct sSirRcvPktFilterCfg
3749{
3750 tANI_U8 filterId;
3751 eSirReceivePacketFilterType filterType;
3752 tANI_U32 numFieldParams;
3753 tANI_U32 coalesceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07003754 tSirMacAddr selfMacAddr;
3755 tSirMacAddr bssId; //Bssid of the connected AP
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003756 tSirRcvPktFilterFieldParams paramsData[SIR_MAX_NUM_TESTS_PER_FILTER];
Jeff Johnson295189b2012-06-20 16:38:30 -07003757}tSirRcvPktFilterCfgType, *tpSirRcvPktFilterCfgType;
3758
3759//
3760// Filter Packet Match Count Parameters
3761//
3762typedef struct sSirRcvFltPktMatchCnt
3763{
3764 tANI_U8 filterId;
3765 tANI_U32 matchCnt;
3766} tSirRcvFltPktMatchCnt, tpSirRcvFltPktMatchCnt;
3767
3768typedef struct sSirRcvFltPktMatchRsp
3769{
3770 tANI_U16 mesgType;
3771 tANI_U16 mesgLen;
3772
3773 /* Success or Failure */
3774 tANI_U32 status;
3775 tSirRcvFltPktMatchCnt filterMatchCnt[SIR_MAX_NUM_FILTERS];
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003776 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003777} tSirRcvFltPktMatchRsp, *tpSirRcvFltPktMatchRsp;
3778
3779//
3780// Receive Filter Clear Parameters
3781//
3782typedef struct sSirRcvFltPktClearParam
3783{
3784 tANI_U32 status; /* only valid for response message */
3785 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003786 tSirMacAddr selfMacAddr;
3787 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003788}tSirRcvFltPktClearParam, *tpSirRcvFltPktClearParam;
3789
3790//
3791// Multicast Address List Parameters
3792//
3793typedef struct sSirRcvFltMcAddrList
3794{
3795 tANI_U32 ulMulticastAddrCnt;
3796 tSirMacAddr multicastAddr[SIR_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07003797 tSirMacAddr selfMacAddr;
3798 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003799} tSirRcvFltMcAddrList, *tpSirRcvFltMcAddrList;
3800#endif // WLAN_FEATURE_PACKET_FILTERING
3801
3802//
3803// Generic version information
3804//
3805typedef struct
3806{
3807 tANI_U8 revision;
3808 tANI_U8 version;
3809 tANI_U8 minor;
3810 tANI_U8 major;
3811} tSirVersionType;
3812
3813typedef struct sAniBtAmpLogLinkReq
3814{
3815 // Common for all types are requests
3816 tANI_U16 msgType; // message type is same as the request type
3817 tANI_U16 msgLen; // length of the entire request
3818 tANI_U8 sessionId; //sme Session Id
3819 void *btampHandle; //AMP context
3820
3821} tAniBtAmpLogLinkReq, *tpAniBtAmpLogLinkReq;
3822
3823#ifdef WLAN_FEATURE_GTK_OFFLOAD
3824/*---------------------------------------------------------------------------
3825* WDA_GTK_OFFLOAD_REQ
3826*--------------------------------------------------------------------------*/
3827typedef struct
3828{
3829 tANI_U32 ulFlags; /* optional flags */
3830 tANI_U8 aKCK[16]; /* Key confirmation key */
3831 tANI_U8 aKEK[16]; /* key encryption key */
3832 tANI_U64 ullKeyReplayCounter; /* replay counter */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003833 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003834} tSirGtkOffloadParams, *tpSirGtkOffloadParams;
3835
3836/*---------------------------------------------------------------------------
3837* WDA_GTK_OFFLOAD_GETINFO_REQ
3838*--------------------------------------------------------------------------*/
3839typedef struct
3840{
3841 tANI_U16 mesgType;
3842 tANI_U16 mesgLen;
3843
3844 tANI_U32 ulStatus; /* success or failure */
3845 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
3846 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
3847 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
3848 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Madan Mohan Koyyalamudi96dd30d2012-10-05 17:24:51 -07003849 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003850} tSirGtkOffloadGetInfoRspParams, *tpSirGtkOffloadGetInfoRspParams;
3851#endif // WLAN_FEATURE_GTK_OFFLOAD
3852
3853#ifdef WLAN_WAKEUP_EVENTS
3854/*---------------------------------------------------------------------------
3855 tSirWakeReasonInd
3856---------------------------------------------------------------------------*/
3857typedef struct
3858{
3859 tANI_U16 mesgType;
3860 tANI_U16 mesgLen;
3861 tANI_U32 ulReason; /* see tWakeReasonType */
3862 tANI_U32 ulReasonArg; /* argument specific to the reason type */
3863 tANI_U32 ulStoredDataLen; /* length of optional data stored in this message, in case
3864 HAL truncates the data (i.e. data packets) this length
3865 will be less than the actual length */
3866 tANI_U32 ulActualDataLen; /* actual length of data */
3867 tANI_U8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
3868 see specific wake type */
3869} tSirWakeReasonInd, *tpSirWakeReasonInd;
3870#endif // WLAN_WAKEUP_EVENTS
3871
3872/*---------------------------------------------------------------------------
3873 sAniSetTmLevelReq
3874---------------------------------------------------------------------------*/
3875typedef struct sAniSetTmLevelReq
3876{
3877 tANI_U16 tmMode;
3878 tANI_U16 newTmLevel;
3879} tAniSetTmLevelReq, *tpAniSetTmLevelReq;
3880
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003881#ifdef FEATURE_WLAN_TDLS
3882/* TDLS Request struct SME-->PE */
3883typedef struct sSirTdlsSendMgmtReq
3884{
3885 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
3886 tANI_U16 length;
3887 tANI_U8 sessionId; // Session ID
3888 tANI_U16 transactionId; // Transaction ID for cmd
3889 tANI_U8 reqType;
3890 tANI_U8 dialog;
3891 tANI_U16 statusCode;
Hoonki Leea34dd892013-02-05 22:56:02 -08003892 tANI_U8 responder;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003893 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
3894 tSirMacAddr peerMac;
3895 tANI_U8 addIe[1]; //Variable lenght. Dont add any field after this.
3896} tSirTdlsSendMgmtReq, *tpSirSmeTdlsSendMgmtReq ;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003897
3898typedef enum TdlsAddOper
3899{
3900 TDLS_OPER_NONE,
3901 TDLS_OPER_ADD,
3902 TDLS_OPER_UPDATE
3903} eTdlsAddOper;
3904
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003905/* TDLS Request struct SME-->PE */
3906typedef struct sSirTdlsAddStaReq
3907{
3908 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
3909 tANI_U16 length;
3910 tANI_U8 sessionId; // Session ID
3911 tANI_U16 transactionId; // Transaction ID for cmd
3912 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003913 eTdlsAddOper tdlsAddOper;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003914 tSirMacAddr peerMac;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003915 tANI_U16 capability;
3916 tANI_U8 extn_capability[SIR_MAC_MAX_EXTN_CAP];
3917 tANI_U8 supported_rates_length;
3918 tANI_U8 supported_rates[SIR_MAC_MAX_SUPP_RATES];
Hoonki Lee66b75f32013-04-16 18:30:07 -07003919 tANI_U8 htcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003920 tSirHTCap htCap;
Hoonki Lee66b75f32013-04-16 18:30:07 -07003921 tANI_U8 vhtcap_present;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003922 tSirVHTCap vhtCap;
3923 tANI_U8 uapsd_queues;
3924 tANI_U8 max_sp;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003925} tSirTdlsAddStaReq, *tpSirSmeTdlsAddStaReq ;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003926
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003927/* TDLS Response struct PE-->SME */
3928typedef struct sSirTdlsAddStaRsp
3929{
3930 tANI_U16 messageType;
3931 tANI_U16 length;
3932 tSirResultCodes statusCode;
3933 tSirMacAddr peerMac;
3934 tANI_U8 sessionId; // Session ID
3935 tANI_U16 staId ;
3936 tANI_U16 staType ;
3937 tANI_U8 ucastSig;
3938 tANI_U8 bcastSig;
Gopichand Nakkala681989c2013-03-06 22:27:48 -08003939 eTdlsAddOper tdlsAddOper;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003940} tSirTdlsAddStaRsp ;
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05303941
3942/* TDLS Request struct SME-->PE */
3943typedef struct
3944{
3945 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_ESTABLISH_REQ
3946 tANI_U16 length;
3947 tANI_U8 sessionId; // Session ID
3948 tANI_U16 transactionId; // Transaction ID for cmd
3949 tANI_U8 uapsdQueues; // Peer's uapsd Queues Information
3950 tANI_U8 maxSp; // Peer's Supported Maximum Service Period
3951 tANI_U8 isBufSta; // Does Peer Support as Buffer Station.
3952 tANI_U8 isResponder; // Is Peer a responder.
3953 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
3954 tSirMacAddr peerMac;
3955}tSirTdlsLinkEstablishReq, *tpSirTdlsLinkEstablishReq;
3956
3957/* TDLS Request struct SME-->PE */
3958typedef struct
3959{
3960 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_ESTABLISH_RSP
3961 tANI_U16 length;
3962 tANI_U8 sessionId; // Session ID
3963 tANI_U16 transactionId; // Transaction ID for cmd
3964 tSirResultCodes statusCode;
3965 tSirMacAddr peerMac;
3966}tSirTdlsLinkEstablishReqRsp, *tpSirTdlsLinkEstablishReqRsp;
3967
Mohit Khanna698ba2a2012-12-04 15:08:18 -08003968/* TDLS Request struct SME-->PE */
3969typedef struct sSirTdlsDelStaReq
3970{
3971 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
3972 tANI_U16 length;
3973 tANI_U8 sessionId; // Session ID
3974 tANI_U16 transactionId; // Transaction ID for cmd
3975 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
3976 tSirMacAddr peerMac;
3977} tSirTdlsDelStaReq, *tpSirSmeTdlsDelStaReq ;
3978/* TDLS Response struct PE-->SME */
3979typedef struct sSirTdlsDelStaRsp
3980{
3981 tANI_U16 messageType;
3982 tANI_U16 length;
3983 tANI_U8 sessionId; // Session ID
3984 tSirResultCodes statusCode;
3985 tSirMacAddr peerMac;
3986 tANI_U16 staId;
3987} tSirTdlsDelStaRsp, *tpSirTdlsDelStaRsp;
Hoonki Leee6bfe942013-02-05 15:01:19 -08003988/* TDLS Delete Indication struct PE-->SME */
3989typedef struct sSirTdlsDelStaInd
3990{
3991 tANI_U16 messageType;
3992 tANI_U16 length;
3993 tANI_U8 sessionId; // Session ID
3994 tSirMacAddr peerMac;
3995 tANI_U16 staId;
3996 tANI_U16 reasonCode;
3997} tSirTdlsDelStaInd, *tpSirTdlsDelStaInd;
Gopichand Nakkala2a0a1572013-02-10 21:39:16 -08003998typedef struct sSirTdlsDelAllPeerInd
3999{
4000 tANI_U16 messageType;
4001 tANI_U16 length;
4002 tANI_U8 sessionId; // Session ID
4003} tSirTdlsDelAllPeerInd, *tpSirTdlsDelAllPeerInd;
Gopichand Nakkalab977a972013-02-18 19:15:09 -08004004typedef struct sSirMgmtTxCompletionInd
4005{
4006 tANI_U16 messageType;
4007 tANI_U16 length;
4008 tANI_U8 sessionId; // Session ID
4009 tANI_U32 txCompleteStatus;
4010} tSirMgmtTxCompletionInd, *tpSirMgmtTxCompletionInd;
Mohit Khanna698ba2a2012-12-04 15:08:18 -08004011#endif /* FEATURE_WLAN_TDLS */
4012
4013#ifdef FEATURE_WLAN_TDLS_INTERNAL
4014typedef enum tdlsListType
4015{
4016 TDLS_DIS_LIST,
4017 TDLS_SETUP_LIST
4018}eTdlsListType ;
4019
4020typedef enum tdlsStates
4021{
4022 TDLS_LINK_IDLE_STATE,
4023 TDLS_LINK_DIS_INIT_STATE,
4024 TDLS_LINK_DIS_RSP_WAIT_STATE,
4025 TDLS_DIS_REQ_PROCESS_STATE,
4026 TDLS_DIS_RSP_SENT_WAIT_STATE,
4027 TDLS_DIS_RSP_SENT_DONE_STATE,
4028 TDLS_LINK_DIS_DONE_STATE,
4029 TDLS_LINK_SETUP_START_STATE,
4030 TDLS_LINK_SETUP_WAIT_STATE,
4031 TDLS_LINK_SETUP_RSP_WAIT_STATE,
4032 TDLS_LINK_SETUP_DONE_STATE,
4033 TDLS_LINK_TEARDOWN_START_STATE,
4034 TDLS_LINK_TEARDOWN_DONE_STATE,
4035 TDLS_LINK_SETUP_STATE
4036}eSirTdlsStates ;
4037
4038typedef struct sSirTdlsPeerInfo
4039{
4040 tSirMacAddr peerMac;
4041 tANI_U8 sessionId;
4042 tANI_U8 dialog ;
4043 tSirMacCapabilityInfo capabilityInfo ;
4044 tSirMacRateSet tdlsPeerSuppRates ;
4045 tSirMacRateSet tdlsPeerExtRates ;
4046 //tDot11fIEHTCaps tdlsPeerHtCaps ;
4047 tSirMacHTCapabilityInfo tdlsPeerHtCaps ;
4048 tSirMacHTParametersInfo tdlsPeerHtParams ;
4049 tSirMacExtendedHTCapabilityInfo tdlsPeerHtExtCaps ;
4050 tANI_U8 supportedMCSSet[SIZE_OF_SUPPORTED_MCS_SET];
4051
4052 //tDot11fIEExtCapability tdlsPeerExtenCaps ;
4053 tSirMacRsnInfo tdlsPeerRsn ;
4054 tANI_U16 tdlsPeerFtIe ;
4055 tANI_U16 tdlsPeerTimeoutIntvl ;
4056 tANI_U16 tdlsPeerSuppChan ;
4057 tANI_U16 tdlsPeerSuppReguClass ;
4058 tANI_S8 tdlsPeerRssi ;
4059 tANI_U16 tdlsPeerState ;
4060 /* flags to indicate optional IE's are in */
4061 tANI_U8 ExtRatesPresent ;
4062 tANI_U8 rsnIePresent ;
4063 tANI_U8 htCapPresent ;
4064 tANI_U8 delStaNeeded ;
4065
4066} tSirTdlsPeerInfo, *tpSirSmeTdlsPeerInfo ;
4067
4068/* TDLS Request struct SME-->PE */
4069typedef struct sSirTdlsDiscoveryReq
4070{
4071 tANI_U16 messageType; // eWNI_SME_TDLS_DISCOVERY_START_REQ
4072 tANI_U16 length;
4073 tANI_U8 sessionId; // Session ID
4074 tANI_U16 transactionId; // Transaction ID for cmd
4075 tANI_U8 reqType;
4076 tANI_U8 dialog;
4077 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4078 tSirMacAddr peerMac;
4079} tSirTdlsDisReq, *tpSirSmeTdlsDisReq ;
4080
4081typedef struct sSirTdlsLinkSetupReq
4082{
4083 tANI_U16 messageType; // eWNI_SME_TDLS_LINK_START_REQ
4084 tANI_U16 length;
4085 tANI_U8 sessionId; // Session ID
4086 tANI_U16 transactionId; // Transaction ID for cmd
4087 tANI_U8 dialog;
4088 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4089 tSirMacAddr peerMac;
4090} tSirTdlsSetupReq, *tpSirSmeTdlsSetupReq ;
4091
4092typedef struct sSirTdlsTeardownReq
4093{
4094 tANI_U16 messageType; // eWNI_SME_TDLS_TEARDOWN_REQ
4095 tANI_U16 length;
4096 tANI_U8 sessionId; // Session ID
4097 tANI_U16 transactionId; // Transaction ID for cmd
4098 tSirMacAddr bssid; // For multi-session, for PE to locate peSession ID
4099 tSirMacAddr peerMac;
4100} tSirTdlsTeardownReq, *tpSirSmeTdlsTeardownReq ;
4101
4102
4103/* TDLS response struct PE-->SME */
4104typedef struct sSirTdlsDiscoveryRsp
4105{
4106 tANI_U16 messageType;
4107 tANI_U16 length;
4108 tSirResultCodes statusCode;
4109 tANI_U16 numDisSta ;
4110 tSirTdlsPeerInfo tdlsDisPeerInfo[0];
4111} tSirTdlsDisRsp, *tpSirSmeTdlsDiscoveryRsp;
4112
4113typedef struct sSirTdlsLinkSetupRsp
4114{
4115 tANI_U16 messageType;
4116 tANI_U16 length;
4117 tSirResultCodes statusCode;
4118 tSirMacAddr peerMac;
4119} tSirTdlsLinksetupRsp ;
4120
4121typedef struct sSirTdlsLinkSetupInd
4122{
4123 tANI_U16 messageType;
4124 tANI_U16 length;
4125 tSirResultCodes statusCode;
4126 tSirMacAddr peerMac;
4127} tSirTdlsLinkSetupInd ;
4128
4129
4130typedef struct sSirTdlsTeardownRsp
4131{
4132 tANI_U16 messageType;
4133 tANI_U16 length;
4134 tSirResultCodes statusCode;
4135 tSirMacAddr peerMac;
4136} tSirTdlsTeardownRsp ;
4137
4138typedef struct sSirTdlsPeerInd
4139{
4140 tANI_U16 messageType;
4141 tANI_U16 length;
4142 tSirMacAddr peerMac;
4143 tANI_U8 sessionId; // Session ID
4144 tANI_U16 staId ;
4145 tANI_U16 staType ;
4146 tANI_U8 ucastSig;
4147 tANI_U8 bcastSig;
4148} tSirTdlsPeerInd ;
4149
4150typedef struct sSirTdlsLinkEstablishInd
4151{
4152 tANI_U16 messageType;
4153 tANI_U16 length;
4154 tANI_U8 bIsResponder; /* if this is 1, self is initiator and peer is reponder */
4155 tANI_U8 linkIdenOffset; /* offset of LinkIdentifierIE.bssid[0] from ptiTemplateBuf */
4156 tANI_U8 ptiBufStatusOffset; /* offset of BufferStatus from ptiTemplateBuf */
4157 tANI_U8 ptiTemplateLen;
4158 tANI_U8 ptiTemplateBuf[64];
4159 tANI_U8 extCapability[8];
4160/* This will be part of PTI template when sent by PE
4161 tANI_U8 linkIdentifier[20];
4162*/
4163} tSirTdlsLinkEstablishInd, *tpSirTdlsLinkEstablishInd;
4164
4165typedef struct sSirTdlsLinkTeardownInd
4166{
4167 tANI_U16 messageType;
4168 tANI_U16 length;
4169 tANI_U16 staId;
4170} tSirTdlsLinkTeardownInd, *tpSirTdlsLinkTeardownInd;
4171
4172#endif /* FEATURE_WLAN_TDLS_INTERNAL */
4173
Yathish9f22e662012-12-10 14:21:35 -08004174typedef struct sSirActiveModeSetBcnFilterReq
4175{
4176 tANI_U16 messageType;
4177 tANI_U16 length;
4178 tANI_U8 seesionId;
4179} tSirSetActiveModeSetBncFilterReq, *tpSirSetActiveModeSetBncFilterReq;
4180
Gopichand Nakkalacca24d12013-03-07 17:05:07 +05304181//Reset AP Caps Changed
4182typedef struct sSirResetAPCapsChange
4183{
4184 tANI_U16 messageType;
4185 tANI_U16 length;
4186 tSirMacAddr bssId;
4187} tSirResetAPCapsChange, *tpSirResetAPCapsChange;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004188/// Definition for Candidate found indication from FW
4189typedef struct sSirSmeCandidateFoundInd
4190{
4191 tANI_U16 messageType; // eWNI_SME_CANDIDATE_FOUND_IND
4192 tANI_U16 length;
4193 tANI_U8 sessionId; // Session Identifier
4194} tSirSmeCandidateFoundInd, *tpSirSmeCandidateFoundInd;
Yathish9f22e662012-12-10 14:21:35 -08004195
Chet Lanctot186b5732013-03-18 10:26:30 -07004196#ifdef WLAN_FEATURE_11W
4197typedef struct sSirWlanExcludeUnencryptParam
4198{
4199 tANI_BOOLEAN excludeUnencrypt;
4200 tSirMacAddr bssId;
4201}tSirWlanExcludeUnencryptParam,*tpSirWlanExcludeUnencryptParam;
4202#endif
4203
Varun Reddy Yeturucc661d22013-05-20 11:47:10 -07004204typedef struct sAniHandoffReq
4205{
4206 // Common for all types are requests
4207 tANI_U16 msgType; // message type is same as the request type
4208 tANI_U16 msgLen; // length of the entire request
4209 tANI_U8 sessionId;
4210 tANI_U8 bssid[WNI_CFG_BSSID_LEN];
4211 tANI_U8 channel;
4212} tAniHandoffReq, *tpAniHandoffReq;
4213
Ganesh Kondabattinif0fa07c2013-06-11 17:47:49 +05304214typedef struct sSirScanOffloadReq {
4215 tANI_U8 sessionId;
4216 tSirMacAddr bssId;
4217 tANI_U8 numSsid;
4218 tSirMacSSid ssId[SIR_SCAN_MAX_NUM_SSID];
4219 tANI_U8 hiddenSsid;
4220 tSirMacAddr selfMacAddr;
4221 tSirBssType bssType;
4222 tANI_U8 dot11mode;
4223 tSirScanType scanType;
4224 tANI_U32 minChannelTime;
4225 tANI_U32 maxChannelTime;
4226 tANI_BOOLEAN p2pSearch;
4227 tANI_U16 uIEFieldLen;
4228 tANI_U16 uIEFieldOffset;
4229 tSirChannelList channelList;
4230 /*-----------------------------
4231 sSirScanOffloadReq....
4232 -----------------------------
4233 uIEFieldLen
4234 -----------------------------
4235 uIEFieldOffset ----+
4236 ----------------------------- |
4237 channelList.numChannels |
4238 ----------------------------- |
4239 ... variable size up to |
4240 channelNumber[numChannels-1] |
4241 This can be zero, if |
4242 numChannel is zero. |
4243 ----------------------------- <--+
4244 ... variable size uIEField
4245 up to uIEFieldLen (can be 0)
4246 -----------------------------*/
4247} tSirScanOffloadReq, *tpSirScanOffloadReq;
Gopichand Nakkala2c231c82013-06-11 17:49:16 +05304248
4249typedef enum sSirScanEventType {
4250 SCAN_EVENT_STARTED=0x1, /* Scan command accepted by FW */
4251 SCAN_EVENT_COMPLETED=0x2, /* Scan has been completed by FW */
4252 SCAN_EVENT_BSS_CHANNEL=0x4, /* FW is going to move to HOME channel */
4253 SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
4254 SCAN_EVENT_DEQUEUED=0x10, /* scan request got dequeued */
4255 SCAN_EVENT_PREEMPTED=0x20, /* preempted by other high priority scan */
4256 SCAN_EVENT_START_FAILED=0x40, /* scan start failed */
4257 SCAN_EVENT_RESTARTED=0x80, /*scan restarted*/
4258 SCAN_EVENT_MAX=0x8000
4259} tSirScanEventType;
4260
4261typedef struct sSirScanOffloadEvent{
4262 tSirScanEventType event;
4263 tSirResultCodes reasonCode;
4264 tANI_U32 chanFreq;
4265 tANI_U32 requestor;
4266 tANI_U32 scanId;
4267} tSirScanOffloadEvent, *tpSirScanOffloadEvent;
4268
Gopichand Nakkalaf72a3872013-06-11 17:51:13 +05304269typedef struct sSirUpdateChanParam
4270{
4271 tANI_U8 chanId;
4272 tANI_U8 pwr;
4273} tSirUpdateChanParam, *tpSirUpdateChanParam;
4274
4275typedef struct sSirUpdateChan
4276{
4277 tANI_U8 numChan;
4278 tSirUpdateChanParam chanParam[1];
4279} tSirUpdateChanList, *tpSirUpdateChanList;
4280
Leo Chang9056f462013-08-01 19:21:11 -07004281#ifdef FEATURE_WLAN_LPHB
4282#define SIR_LPHB_FILTER_LEN 64
4283
4284typedef enum
4285{
4286 LPHB_SET_EN_PARAMS_INDID,
4287 LPHB_SET_TCP_PARAMS_INDID,
4288 LPHB_SET_TCP_PKT_FILTER_INDID,
4289 LPHB_SET_UDP_PARAMS_INDID,
4290 LPHB_SET_UDP_PKT_FILTER_INDID,
4291 LPHB_SET_NETWORK_INFO_INDID,
4292} LPHBIndType;
4293
4294typedef struct sSirLPHBEnableStruct
4295{
4296 v_U8_t enable;
4297 v_U8_t item;
4298 v_U8_t session;
4299} tSirLPHBEnableStruct;
4300
4301typedef struct sSirLPHBTcpParamStruct
4302{
4303 v_U32_t srv_ip;
4304 v_U32_t dev_ip;
4305 v_U16_t src_port;
4306 v_U16_t dst_port;
4307 v_U16_t timeout;
4308 v_U8_t session;
4309 tSirMacAddr gateway_mac;
4310} tSirLPHBTcpParamStruct;
4311
4312typedef struct sSirLPHBTcpFilterStruct
4313{
4314 v_U16_t length;
4315 v_U8_t offset;
4316 v_U8_t session;
4317 v_U8_t filter[SIR_LPHB_FILTER_LEN];
4318} tSirLPHBTcpFilterStruct;
4319
4320typedef struct sSirLPHBUdpParamStruct
4321{
4322 v_U32_t srv_ip;
4323 v_U32_t dev_ip;
4324 v_U16_t src_port;
4325 v_U16_t dst_port;
4326 v_U16_t interval;
4327 v_U16_t timeout;
4328 v_U8_t session;
4329 tSirMacAddr gateway_mac;
4330} tSirLPHBUdpParamStruct;
4331
4332typedef struct sSirLPHBUdpFilterStruct
4333{
4334 v_U16_t length;
4335 v_U8_t offset;
4336 v_U8_t session;
4337 v_U8_t filter[SIR_LPHB_FILTER_LEN];
4338} tSirLPHBUdpFilterStruct;
4339
4340typedef struct sSirLPHBReq
4341{
4342 v_U16_t cmd;
4343 v_U16_t dummy;
4344 union
4345 {
4346 tSirLPHBEnableStruct lphbEnableReq;
4347 tSirLPHBTcpParamStruct lphbTcpParamReq;
4348 tSirLPHBTcpFilterStruct lphbTcpFilterReq;
4349 tSirLPHBUdpParamStruct lphbUdpParamReq;
4350 tSirLPHBUdpFilterStruct lphbUdpFilterReq;
4351 } params;
4352} tSirLPHBReq;
4353
4354typedef struct sSirLPHBTimeoutInd
4355{
4356 v_U8_t sessionIdx;
4357 v_U8_t protocolType; /*TCP or UDP*/
4358 v_U8_t eventReason;
4359} tSirLPHBTimeoutInd;
4360#endif /* FEATURE_WLAN_LPHB */
4361
Yue Mab9c86f42013-08-14 15:59:08 -07004362typedef struct sSirAddPeriodicTxPtrn
4363{
4364 /* MAC Address for the adapter */
4365 tSirMacAddr macAddress;
4366
4367 tANI_U8 ucPtrnId; // Pattern ID
4368 tANI_U16 ucPtrnSize; // Pattern size
4369 tANI_U32 usPtrnIntervalMs; // In msec
4370 tANI_U8 ucPattern[PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4371} tSirAddPeriodicTxPtrn, *tpSirAddPeriodicTxPtrn;
4372
4373typedef struct sSirDelPeriodicTxPtrn
4374{
4375 /* MAC Address for the adapter */
4376 tSirMacAddr macAddress;
4377
4378 /* Bitmap of pattern IDs that need to be deleted */
4379 tANI_U32 ucPatternIdBitmap;
4380} tSirDelPeriodicTxPtrn, *tpSirDelPeriodicTxPtrn;
4381
Jeff Johnson295189b2012-06-20 16:38:30 -07004382#endif /* __SIR_API_H */