blob: 336cad0015cf81fcca81e9cee79893685e33beb8 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
2 * Copyright (c) 2012, Code Aurora Forum. 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
22/*==========================================================================
23 *
24 * @file: wlan_hal_msg.h
25 *
26 * @brief: Exports and types for messages sent to HAL from WDI
27 *
28 * @author: Kumar Anand
29 *
30 * Copyright (C) 2010, Qualcomm, Inc.
31 * All rights reserved.
32 *
33 *=========================================================================*/
34
35#ifndef _WLAN_HAL_MSG_H_
36#define _WLAN_HAL_MSG_H_
37
38#include "halLegacyPalTypes.h"
39#include "halCompiler.h"
40#include "wlan_qct_dev_defs.h"
41#include "wlan_nv.h"
42
43/*---------------------------------------------------------------------------
44 API VERSIONING INFORMATION
45
46 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
47 The MAJOR is incremented for major product/architecture changes
48 (and then MINOR/VERSION/REVISION are zeroed)
49 The MINOR is incremented for minor product/architecture changes
50 (and then VERSION/REVISION are zeroed)
51 The VERSION is incremented if a significant API change occurs
52 (and then REVISION is zeroed)
53 The REVISION is incremented if an insignificant API change occurs
54 or if a new API is added
55 All values are in the range 0..255 (ie they are 8-bit values)
56 ---------------------------------------------------------------------------*/
57#define WLAN_HAL_VER_MAJOR 0
58#define WLAN_HAL_VER_MINOR 1
59#define WLAN_HAL_VER_VERSION 1
60#define WLAN_HAL_VER_REVISION 0
61
62/*---------------------------------------------------------------------------
63 Commom Type definitons
64 ---------------------------------------------------------------------------*/
65
66//This is to force compiler to use the maximum of an int ( 4 bytes )
67#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
68
69//Max no. of transmit categories
70#define STACFG_MAX_TC 8
71
72//The maximum value of access category
73#define WLAN_HAL_MAX_AC 4
74
75typedef tANI_U8 tSirMacAddr[6];
76typedef tANI_U8 tHalIpv4Addr[4];
77
78#define HAL_MAC_ADDR_LEN 6
79#define HAL_IPV4_ADDR_LEN 4
80
81#define WALN_HAL_STA_INVALID_IDX 0xFF
82#define WLAN_HAL_BSS_INVALID_IDX 0xFF
83
84//Default Beacon template size
85#define BEACON_TEMPLATE_SIZE 0x180
86
87//Param Change Bitmap sent to HAL
88#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
89#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
90#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
91#define PARAM_llACOEXIST_CHANGED (1 << 3)
92#define PARAM_llBCOEXIST_CHANGED (1 << 4)
93#define PARAM_llGCOEXIST_CHANGED (1 << 5)
94#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
95#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
96#define PARAM_RIFS_MODE_CHANGED (1<<8)
97#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
98#define PARAM_OBSS_MODE_CHANGED (1<<10)
99#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
100 PARAM_llGCOEXIST_CHANGED|PARAM_HT20MHZCOEXIST_CHANGED|PARAM_NON_GF_DEVICES_PRESENT_CHANGED|PARAM_RIFS_MODE_CHANGED|PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED| PARAM_OBSS_MODE_CHANGED)
101
102/*Dump command response Buffer size*/
103#define DUMPCMD_RSP_BUFFER 100
104
105/*Version string max length (including NUL) */
106#define WLAN_HAL_VERSION_LENGTH 64
107
108/*Max Num Of BSSIDS in INNAV_MEAS_REQ*/
109#define MAX_BSSIDS_IN_INNAV_MEAS_REQ 1
110
111/* Message types for messages exchanged between WDI and HAL */
112typedef enum
113{
114 //Init/De-Init
115 WLAN_HAL_START_REQ = 0,
116 WLAN_HAL_START_RSP = 1,
117 WLAN_HAL_STOP_REQ = 2,
118 WLAN_HAL_STOP_RSP = 3,
119
120 //Scan
121 WLAN_HAL_INIT_SCAN_REQ = 4,
122 WLAN_HAL_INIT_SCAN_RSP = 5,
123 WLAN_HAL_START_SCAN_REQ = 6,
124 WLAN_HAL_START_SCAN_RSP = 7 ,
125 WLAN_HAL_END_SCAN_REQ = 8,
126 WLAN_HAL_END_SCAN_RSP = 9,
127 WLAN_HAL_FINISH_SCAN_REQ = 10,
128 WLAN_HAL_FINISH_SCAN_RSP = 11,
129
130 // HW STA configuration/deconfiguration
131 WLAN_HAL_CONFIG_STA_REQ = 12,
132 WLAN_HAL_CONFIG_STA_RSP = 13,
133 WLAN_HAL_DELETE_STA_REQ = 14,
134 WLAN_HAL_DELETE_STA_RSP = 15,
135 WLAN_HAL_CONFIG_BSS_REQ = 16,
136 WLAN_HAL_CONFIG_BSS_RSP = 17,
137 WLAN_HAL_DELETE_BSS_REQ = 18,
138 WLAN_HAL_DELETE_BSS_RSP = 19,
139
140 //Infra STA asscoiation
141 WLAN_HAL_JOIN_REQ = 20,
142 WLAN_HAL_JOIN_RSP = 21,
143 WLAN_HAL_POST_ASSOC_REQ = 22,
144 WLAN_HAL_POST_ASSOC_RSP = 23,
145
146 //Security
147 WLAN_HAL_SET_BSSKEY_REQ = 24,
148 WLAN_HAL_SET_BSSKEY_RSP = 25,
149 WLAN_HAL_SET_STAKEY_REQ = 26,
150 WLAN_HAL_SET_STAKEY_RSP = 27,
151 WLAN_HAL_RMV_BSSKEY_REQ = 28,
152 WLAN_HAL_RMV_BSSKEY_RSP = 29,
153 WLAN_HAL_RMV_STAKEY_REQ = 30,
154 WLAN_HAL_RMV_STAKEY_RSP = 31,
155
156 //Qos Related
157 WLAN_HAL_ADD_TS_REQ = 32,
158 WLAN_HAL_ADD_TS_RSP = 33,
159 WLAN_HAL_DEL_TS_REQ = 34,
160 WLAN_HAL_DEL_TS_RSP = 35,
161 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
162 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
163 WLAN_HAL_ADD_BA_REQ = 38,
164 WLAN_HAL_ADD_BA_RSP = 39,
165 WLAN_HAL_DEL_BA_REQ = 40,
166 WLAN_HAL_DEL_BA_RSP = 41,
167
168 WLAN_HAL_CH_SWITCH_REQ = 42,
169 WLAN_HAL_CH_SWITCH_RSP = 43,
170 WLAN_HAL_SET_LINK_ST_REQ = 44,
171 WLAN_HAL_SET_LINK_ST_RSP = 45,
172 WLAN_HAL_GET_STATS_REQ = 46,
173 WLAN_HAL_GET_STATS_RSP = 47,
174 WLAN_HAL_UPDATE_CFG_REQ = 48,
175 WLAN_HAL_UPDATE_CFG_RSP = 49,
176
177 WLAN_HAL_MISSED_BEACON_IND = 50,
178 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
179 WLAN_HAL_MIC_FAILURE_IND = 52,
180 WLAN_HAL_FATAL_ERROR_IND = 53,
181 WLAN_HAL_SET_KEYDONE_MSG = 54,
182
183 //NV Interface
184 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
185 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
186
187 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
188 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
189 WLAN_HAL_TRIGGER_BA_REQ = 59,
190 WLAN_HAL_TRIGGER_BA_RSP = 60,
191 WLAN_HAL_UPDATE_BEACON_REQ = 61,
192 WLAN_HAL_UPDATE_BEACON_RSP = 62,
193 WLAN_HAL_SEND_BEACON_REQ = 63,
194 WLAN_HAL_SEND_BEACON_RSP = 64,
195
196 WLAN_HAL_SET_BCASTKEY_REQ = 65,
197 WLAN_HAL_SET_BCASTKEY_RSP = 66,
198 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
199 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
200 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
201
202 // PTT interface support
203 WLAN_HAL_PROCESS_PTT_REQ = 70,
204 WLAN_HAL_PROCESS_PTT_RSP = 71,
205
206 // BTAMP related events
207 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
208 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
209 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
210 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
211
212 WLAN_HAL_ENTER_IMPS_REQ = 76,
213 WLAN_HAL_EXIT_IMPS_REQ = 77,
214 WLAN_HAL_ENTER_BMPS_REQ = 78,
215 WLAN_HAL_EXIT_BMPS_REQ = 79,
216 WLAN_HAL_ENTER_UAPSD_REQ = 80,
217 WLAN_HAL_EXIT_UAPSD_REQ = 81,
218 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
219 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
220 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
221 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
222 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
223 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
224 WLAN_HAL_ENTER_WOWL_REQ = 88,
225 WLAN_HAL_EXIT_WOWL_REQ = 89,
226 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
227 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
228 WLAN_HAL_GET_RSSI_REQ = 92,
229 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
230 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
231
232 WLAN_HAL_ENTER_IMPS_RSP = 95,
233 WLAN_HAL_EXIT_IMPS_RSP = 96,
234 WLAN_HAL_ENTER_BMPS_RSP = 97,
235 WLAN_HAL_EXIT_BMPS_RSP = 98,
236 WLAN_HAL_ENTER_UAPSD_RSP = 99,
237 WLAN_HAL_EXIT_UAPSD_RSP = 100,
238 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
239 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
240 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
241 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
242 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
243 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
244 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
245 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
246 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
247 WLAN_HAL_ENTER_WOWL_RSP = 110,
248 WLAN_HAL_EXIT_WOWL_RSP = 111,
249 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
250 WLAN_HAL_GET_RSSI_RSP = 113,
251 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
252
253 //11k related events
254 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
255 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
256
257 //11R related msgs
258 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
259 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
260
261 //P2P WLAN_FEATURE_P2P
262 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
263 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
264
265 //WLAN Dump commands
266 WLAN_HAL_DUMP_COMMAND_REQ = 121,
267 WLAN_HAL_DUMP_COMMAND_RSP = 122,
268
269 //INNAV FEATURE SUPPORT
270 WLAN_HAL_START_INNAV_MEAS_REQ = 123,
271 WLAN_HAL_START_INNAV_MEAS_RSP = 124,
272
273 //ADD SELF STA REQ and RSP
274 WLAN_HAL_ADD_STA_SELF_REQ = 125,
275 WLAN_HAL_ADD_STA_SELF_RSP = 126,
276
277 //DEL SELF STA SUPPORT
278 WLAN_HAL_DEL_STA_SELF_REQ = 127,
279 WLAN_HAL_DEL_STA_SELF_RSP = 128,
280
281 // Coex Indication
282 WLAN_HAL_COEX_IND = 129,
283
284 // Tx Complete Indication
285 WLAN_HAL_OTA_TX_COMPL_IND = 130,
286
287 //Host Suspend/resume messages
288 WLAN_HAL_HOST_SUSPEND_IND = 131,
289 WLAN_HAL_HOST_RESUME_REQ = 132,
290 WLAN_HAL_HOST_RESUME_RSP = 133,
291
292 WLAN_HAL_SET_TX_POWER_REQ = 134,
293 WLAN_HAL_SET_TX_POWER_RSP = 135,
294 WLAN_HAL_GET_TX_POWER_REQ = 136,
295 WLAN_HAL_GET_TX_POWER_RSP = 137,
296
297 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
298
299 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
300 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
301 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
302 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
303 WLAN_HAL_RADAR_DETECT_IND = 143,
304 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
305 WLAN_HAL_KEEP_ALIVE_REQ = 145,
306 WLAN_HAL_KEEP_ALIVE_RSP = 146,
307
308 /*PNO messages*/
309 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
310 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
311 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
312 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
313 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
314 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
315 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
316
317 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
318 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
319 WLAN_HAL_TX_PER_HIT_IND = 156,
320
321 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
322 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
323
324 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
325 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
326 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
327 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
328 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
329 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
330 /*This is temp fix. Should be removed once
331 * Host and Riva code is in sync*/
332 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
333
334 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
335 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
336
337 WLAN_HAL_TSM_STATS_REQ = 168,
338 WLAN_HAL_TSM_STATS_RSP = 169,
339
340 // wake reason indication (WOW)
341 WLAN_HAL_WAKE_REASON_IND = 170,
342 // GTK offload support
343 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
344 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
345 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
346 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
347
348 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
349 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
350 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
351
352 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
353 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
354
355 WLAN_HAL_MSG_MAX = WLAN_HAL_MAX_ENUM_SIZE
356}tHalHostMsgType;
357
358/* Enumeration for Boolean - False/True, On/Off */
359typedef enum tagAniBoolean
360{
361 eANI_BOOLEAN_FALSE = 0,
362 eANI_BOOLEAN_TRUE,
363 eANI_BOOLEAN_OFF = 0,
364 eANI_BOOLEAN_ON = 1,
365 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
366} eAniBoolean;
367
368typedef enum
369{
370 eDRIVER_TYPE_PRODUCTION = 0,
371 eDRIVER_TYPE_MFG = 1,
372 eDRIVER_TYPE_DVT = 2,
373 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
374} tDriverType;
375
376typedef enum
377{
378 HAL_STOP_TYPE_SYS_RESET,
379 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
380 HAL_STOP_TYPE_RF_KILL,
381 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
382}tHalStopType;
383
384typedef enum
385{
386 eHAL_SYS_MODE_NORMAL,
387 eHAL_SYS_MODE_LEARN,
388 eHAL_SYS_MODE_SCAN,
389 eHAL_SYS_MODE_PROMISC,
390 eHAL_SYS_MODE_SUSPEND_LINK,
391 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
392} eHalSysMode;
393
394typedef enum
395{
396 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
397 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
398 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
399 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
400 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
401}ePhyChanBondState;
402
403// Spatial Multiplexing(SM) Power Save mode
404typedef enum eSirMacHTMIMOPowerSaveState
405{
406 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
407 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
408 eSIR_HT_MIMO_PS_NA = 2, // reserved
409 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
410 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
411} tSirMacHTMIMOPowerSaveState;
412
413/* each station added has a rate mode which specifies the sta attributes */
414typedef enum eStaRateMode {
415 eSTA_TAURUS = 0,
416 eSTA_TITAN,
417 eSTA_POLARIS,
418 eSTA_11b,
419 eSTA_11bg,
420 eSTA_11a,
421 eSTA_11n,
422 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
423} tStaRateMode, *tpStaRateMode;
424
425#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
426#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
427#define SIR_NUM_POLARIS_RATES 3 //72,96,108
428
429#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
430
431
432typedef enum eSirBssType
433{
434 eSIR_INFRASTRUCTURE_MODE,
435 eSIR_INFRA_AP_MODE, //Added for softAP support
436 eSIR_IBSS_MODE,
437 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
438 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
439 eSIR_AUTO_MODE,
440 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
441} tSirBssType;
442
443typedef enum eSirNwType
444{
445 eSIR_11A_NW_TYPE,
446 eSIR_11B_NW_TYPE,
447 eSIR_11G_NW_TYPE,
448 eSIR_11N_NW_TYPE,
449 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
450} tSirNwType;
451
452typedef tANI_U16 tSirMacBeaconInterval;
453
454#define SIR_MAC_RATESET_EID_MAX 12
455
456typedef enum eSirMacHTOperatingMode
457{
458 eSIR_HT_OP_MODE_PURE, // No Protection
459 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
460 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
461 eSIR_HT_OP_MODE_MIXED, // Protection is required
462 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
463} tSirMacHTOperatingMode;
464
465typedef enum eSirMacHTSecondaryChannelOffset
466{
467 eHT_SECONDARY_CHANNEL_OFFSET_NONE = 0,
468 eHT_SECONDARY_CHANNEL_OFFSET_UP = 1,
469 eHT_SECONDARY_CHANNEL_OFFSET_DOWN = 3,
470 eHT_SECONDARY_CHANNEL_OFFSET_MAX = WLAN_HAL_MAX_ENUM_SIZE
471} tSirMacHTSecondaryChannelOffset;
472
473/// Encryption type enum used with peer
474typedef enum eAniEdType
475{
476 eSIR_ED_NONE,
477 eSIR_ED_WEP40,
478 eSIR_ED_WEP104,
479 eSIR_ED_TKIP,
480 eSIR_ED_CCMP,
481 eSIR_ED_WPI,
482 eSIR_ED_AES_128_CMAC,
483 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
484} tAniEdType;
485
486#define WLAN_MAX_KEY_RSC_LEN 16
487#define WLAN_WAPI_KEY_RSC_LEN 16
488
489/// MAX key length when ULA is used
490#define SIR_MAC_MAX_KEY_LENGTH 32
491#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
492
493/// Enum to specify whether key is used
494/// for TX only, RX only or both
495typedef enum eAniKeyDirection
496{
497 eSIR_TX_ONLY,
498 eSIR_RX_ONLY,
499 eSIR_TX_RX,
500#ifdef WLAN_SOFTAP_FEATURE
501 eSIR_TX_DEFAULT,
502#endif
503 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
504} tAniKeyDirection;
505
506typedef enum eAniWepType
507{
508 eSIR_WEP_STATIC,
509 eSIR_WEP_DYNAMIC,
510 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
511} tAniWepType;
512
513typedef enum eSriLinkState {
514
515 eSIR_LINK_IDLE_STATE = 0,
516 eSIR_LINK_PREASSOC_STATE = 1,
517 eSIR_LINK_POSTASSOC_STATE = 2,
518 eSIR_LINK_AP_STATE = 3,
519 eSIR_LINK_IBSS_STATE = 4,
520
521 /* BT-AMP Case */
522 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
523 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
524 eSIR_LINK_BTAMP_AP_STATE = 7,
525 eSIR_LINK_BTAMP_STA_STATE = 8,
526
527 /* Reserved for HAL Internal Use */
528 eSIR_LINK_LEARN_STATE = 9,
529 eSIR_LINK_SCAN_STATE = 10,
530 eSIR_LINK_FINISH_SCAN_STATE = 11,
531 eSIR_LINK_INIT_CAL_STATE = 12,
532 eSIR_LINK_FINISH_CAL_STATE = 13,
533#ifdef WLAN_FEATURE_P2P
534 eSIR_LINK_LISTEN_STATE = 14,
535#endif
536 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
537} tSirLinkState;
538
539typedef enum
540{
541 HAL_SUMMARY_STATS_INFO = 0x00000001,
542 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
543 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
544 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
545 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
546 HAL_PER_STA_STATS_INFO = 0x00000020
547}eHalStatsMask;
548
549/* BT-AMP events type */
550typedef enum
551{
552 BTAMP_EVENT_CONNECTION_START,
553 BTAMP_EVENT_CONNECTION_STOP,
554 BTAMP_EVENT_CONNECTION_TERMINATED,
555 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
556} tBtAmpEventType;
557
558//***************************************************************
559
560
561/*******************PE Statistics*************************/
562typedef enum
563{
564 PE_SUMMARY_STATS_INFO = 0x00000001,
565 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
566 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
567 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
568 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
569 PE_PER_STA_STATS_INFO = 0x00000020,
570 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
571}ePEStatsMask;
572
573/*---------------------------------------------------------------------------
574 Message definitons - All the messages below need to be packed
575 ---------------------------------------------------------------------------*/
576
577#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
578#pragma pack(push, 1)
579#elif defined(__ANI_COMPILER_PRAGMA_PACK)
580#pragma pack(1)
581#else
582#endif
583
584/// Definition for HAL API Version.
585typedef PACKED_PRE struct PACKED_POST
586{
587 tANI_U8 revision;
588 tANI_U8 version;
589 tANI_U8 minor;
590 tANI_U8 major;
591} tWcnssWlanVersion, *tpWcnssWlanVersion;
592
593/// Definition for Encryption Keys
594typedef PACKED_PRE struct PACKED_POST
595{
596 tANI_U8 keyId;
597 tANI_U8 unicast; // 0 for multicast
598 tAniKeyDirection keyDirection;
599 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
600 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
601 tANI_U16 keyLength;
602 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
603} tSirKeys, *tpSirKeys;
604
605
606//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
607typedef PACKED_PRE struct PACKED_POST
608{
609 /*STA Index*/
610 tANI_U16 staIdx;
611
612 /*Encryption Type used with peer*/
613 tAniEdType encType;
614
615 /*STATIC/DYNAMIC - valid only for WEP*/
616 tAniWepType wepType;
617
618 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
619 tANI_U8 defWEPIdx;
620
621#ifdef WLAN_SOFTAP_FEATURE
622 /* valid only for non-static WEP encyrptions */
623 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
624#else
625 tSirKeys key;
626#endif
627
628 /*Control for Replay Count, 1= Single TID based replay count on Tx
629 0 = Per TID based replay count on TX */
630 tANI_U8 singleTidRc;
631
632} tSetStaKeyParams, *tpSetStaKeyParams;
633
634
635
636/* 4-byte control message header used by HAL*/
637typedef PACKED_PRE struct PACKED_POST
638{
639 tHalHostMsgType msgType;
640 tANI_U32 msgLen;
641} tHalMsgHeader, *tpHalMsgHeader;
642
643/* Config format required by HAL for each CFG item*/
644typedef PACKED_PRE struct PACKED_POST
645{
646 /* Cfg Id. The Id required by HAL is exported by HAL
647 * in shared header file between UMAC and HAL.*/
648 tANI_U16 uCfgId;
649
650 /* Length of the Cfg. This parameter is used to go to next cfg
651 * in the TLV format.*/
652 tANI_U16 uCfgLen;
653
654 /* Padding bytes for unaligned address's */
655 tANI_U16 uCfgPadBytes;
656
657 /* Reserve bytes for making cfgVal to align address */
658 tANI_U16 uCfgReserve;
659
660 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
661 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
662} tHalCfg, *tpHalCfg;
663
664/*---------------------------------------------------------------------------
665 WLAN_HAL_START_REQ
666---------------------------------------------------------------------------*/
667
668typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
669{
670 /* Drive Type - Production or FTM etc */
671 tDriverType driverType;
672
673 /*Length of the config buffer*/
674 tANI_U32 uConfigBufferLen;
675
676 /* Following this there is a TLV formatted buffer of length
677 * "uConfigBufferLen" bytes containing all config values.
678 * The TLV is expected to be formatted like this:
679 * 0 15 31 31+CFG_LEN-1 length-1
680 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
681 */
682} tHalMacStartParameters, *tpHalMacStartParameters;
683
684typedef PACKED_PRE struct PACKED_POST
685{
686 /* Note: The length specified in tHalMacStartReqMsg messages should be
687 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
688 tHalMsgHeader header;
689 tHalMacStartParameters startReqParams;
690} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
691
692/*---------------------------------------------------------------------------
693 WLAN_HAL_START_RSP
694---------------------------------------------------------------------------*/
695
696typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
697{
698 /*success or failure */
699 tANI_U16 status;
700
701 /*Max number of STA supported by the device*/
702 tANI_U8 ucMaxStations;
703
704 /*Max number of BSS supported by the device*/
705 tANI_U8 ucMaxBssids;
706
707 /*API Version */
708 tWcnssWlanVersion wcnssWlanVersion;
709
710 /*CRM build information */
711 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
712
713 /*hardware/chipset/misc version information */
714 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
715
716} tHalMacStartRspParams, *tpHalMacStartRspParams;
717
718typedef PACKED_PRE struct PACKED_POST
719{
720 tHalMsgHeader header;
721 tHalMacStartRspParams startRspParams;
722} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
723
724/*---------------------------------------------------------------------------
725 WLAN_HAL_STOP_REQ
726---------------------------------------------------------------------------*/
727
728typedef PACKED_PRE struct PACKED_POST
729{
730 /*The reason for which the device is being stopped*/
731 tHalStopType reason;
732
733}tHalMacStopReqParams, *tpHalMacStopReqParams;
734
735typedef PACKED_PRE struct PACKED_POST
736{
737 tHalMsgHeader header;
738 tHalMacStopReqParams stopReqParams;
739} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
740
741/*---------------------------------------------------------------------------
742 WLAN_HAL_STOP_RSP
743---------------------------------------------------------------------------*/
744
745typedef PACKED_PRE struct PACKED_POST
746{
747 /*success or failure */
748 tANI_U32 status;
749
750}tHalMacStopRspParams, *tpHalMacStopRspParams;
751
752typedef PACKED_PRE struct PACKED_POST
753{
754 tHalMsgHeader header;
755 tHalMacStopRspParams stopRspParams;
756} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
757
758/*---------------------------------------------------------------------------
759 WLAN_HAL_UPDATE_CFG_REQ
760---------------------------------------------------------------------------*/
761
762typedef PACKED_PRE struct PACKED_POST
763{
764 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
765 tANI_U32 uConfigBufferLen;
766
767 /* Following this there is a TLV formatted buffer of length
768 * "uConfigBufferLen" bytes containing all config values.
769 * The TLV is expected to be formatted like this:
770 * 0 15 31 31+CFG_LEN-1 length-1
771 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
772 */
773} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
774
775typedef PACKED_PRE struct PACKED_POST
776{
777 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
778 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
779 tHalMsgHeader header;
780 tHalUpdateCfgReqParams updateCfgReqParams;
781} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
782
783/*---------------------------------------------------------------------------
784 WLAN_HAL_UPDATE_CFG_RSP
785---------------------------------------------------------------------------*/
786
787typedef PACKED_PRE struct PACKED_POST
788{
789 /* success or failure */
790 tANI_U32 status;
791
792}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
793
794typedef PACKED_PRE struct PACKED_POST
795{
796 tHalMsgHeader header;
797 tHalUpdateCfgRspParams updateCfgRspParams;
798} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
799
800/*---------------------------------------------------------------------------
801 WLAN_HAL_INIT_SCAN_REQ
802---------------------------------------------------------------------------*/
803
804/// Frame control field format (2 bytes)
805typedef __ani_attr_pre_packed struct sSirMacFrameCtl
806{
807
808#ifndef ANI_LITTLE_BIT_ENDIAN
809
810 tANI_U8 subType :4;
811 tANI_U8 type :2;
812 tANI_U8 protVer :2;
813
814 tANI_U8 order :1;
815 tANI_U8 wep :1;
816 tANI_U8 moreData :1;
817 tANI_U8 powerMgmt :1;
818 tANI_U8 retry :1;
819 tANI_U8 moreFrag :1;
820 tANI_U8 fromDS :1;
821 tANI_U8 toDS :1;
822
823#else
824
825 tANI_U8 protVer :2;
826 tANI_U8 type :2;
827 tANI_U8 subType :4;
828
829 tANI_U8 toDS :1;
830 tANI_U8 fromDS :1;
831 tANI_U8 moreFrag :1;
832 tANI_U8 retry :1;
833 tANI_U8 powerMgmt :1;
834 tANI_U8 moreData :1;
835 tANI_U8 wep :1;
836 tANI_U8 order :1;
837
838#endif
839
840} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
841
842/// Sequence control field
843typedef __ani_attr_pre_packed struct sSirMacSeqCtl
844{
845 tANI_U8 fragNum : 4;
846 tANI_U8 seqNumLo : 4;
847 tANI_U8 seqNumHi : 8;
848} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
849
850/// Management header format
851typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
852{
853 tSirMacFrameCtl fc;
854 tANI_U8 durationLo;
855 tANI_U8 durationHi;
856 tANI_U8 da[6];
857 tANI_U8 sa[6];
858 tANI_U8 bssId[6];
859 tSirMacSeqCtl seqControl;
860} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
861
862/// Scan Entry to hold active BSS idx's
863typedef __ani_attr_pre_packed struct sSirScanEntry
864{
865 tANI_U8 bssIdx[HAL_NUM_BSSID];
866 tANI_U8 activeBSScnt;
867}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
868
869typedef PACKED_PRE struct PACKED_POST {
870
871 /*LEARN - AP Role
872 SCAN - STA Role*/
873 eHalSysMode scanMode;
874
875 /*BSSID of the BSS*/
876 tSirMacAddr bssid;
877
878 /*Whether BSS needs to be notified*/
879 tANI_U8 notifyBss;
880
881 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
882 CTS to Self). Must always be a valid frame type.*/
883 tANI_U8 frameType;
884
885 /*UMAC has the option of passing the MAC frame to be used for notifying
886 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
887 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
888 frameType.*/
889 tANI_U8 frameLength;
890
891 /* Following the framelength there is a MAC frame buffer if frameLength
892 is non-zero. */
893 tSirMacMgmtHdr macMgmtHdr;
894
895 /*Entry to hold number of active BSS idx's*/
896 tSirScanEntry scanEntry;
897
898} tInitScanParams, * tpInitScanParams;
899
900typedef PACKED_PRE struct PACKED_POST
901{
902 tHalMsgHeader header;
903 tInitScanParams initScanParams;
904} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
905
906typedef PACKED_PRE struct PACKED_POST {
907
908 /*LEARN - AP Role
909 SCAN - STA Role*/
910 eHalSysMode scanMode;
911
912 /*BSSID of the BSS*/
913 tSirMacAddr bssid;
914
915 /*Whether BSS needs to be notified*/
916 tANI_U8 notifyBss;
917
918 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
919 CTS to Self). Must always be a valid frame type.*/
920 tANI_U8 frameType;
921
922 /*UMAC has the option of passing the MAC frame to be used for notifying
923 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
924 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
925 frameType.*/
926 tANI_U8 frameLength;
927
928 /* Following the framelength there is a MAC frame buffer if frameLength
929 is non-zero. */
930 tSirMacMgmtHdr macMgmtHdr;
931
932 /*Entry to hold number of active BSS idx's*/
933 tSirScanEntry scanEntry;
934
935 /* Single NoA usage in Scanning */
936 tANI_U8 useNoA;
937
938 /* Indicates the scan duration (in ms) */
939 tANI_U16 scanDuration;
940
941} tInitScanConParams, * tpInitScanConParams;
942
943typedef PACKED_PRE struct PACKED_POST
944{
945 tHalMsgHeader header;
946 tInitScanConParams initScanParams;
947} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
948
949
950/*---------------------------------------------------------------------------
951 WLAN_HAL_INIT_SCAN_RSP
952---------------------------------------------------------------------------*/
953
954typedef PACKED_PRE struct PACKED_POST
955{
956 /*success or failure */
957 tANI_U32 status;
958
959}tHalInitScanRspParams, *tpHalInitScanRspParams;
960
961typedef PACKED_PRE struct PACKED_POST
962{
963 tHalMsgHeader header;
964 tHalInitScanRspParams initScanRspParams;
965} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
966
967/*---------------------------------------------------------------------------
968 WLAN_HAL_START_SCAN_REQ
969---------------------------------------------------------------------------*/
970
971typedef PACKED_PRE struct PACKED_POST
972{
973 /*Indicates the channel to scan*/
974 tANI_U8 scanChannel;
975
976 } tStartScanParams, * tpStartScanParams;
977
978typedef PACKED_PRE struct PACKED_POST
979{
980 tHalMsgHeader header;
981 tStartScanParams startScanParams;
982} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
983
984/*---------------------------------------------------------------------------
985 WLAN_HAL_START_SCAN_RSP
986---------------------------------------------------------------------------*/
987
988typedef PACKED_PRE struct PACKED_POST
989{
990 /*success or failure */
991 tANI_U32 status;
992
993 tANI_U32 startTSF[2];
994 tPowerdBm txMgmtPower;
995
996}tHalStartScanRspParams, *tpHalStartScanRspParams;
997
998typedef PACKED_PRE struct PACKED_POST
999{
1000 tHalMsgHeader header;
1001 tHalStartScanRspParams startScanRspParams;
1002} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1003
1004/*---------------------------------------------------------------------------
1005 WLAN_HAL_END_SCAN_REQ
1006---------------------------------------------------------------------------*/
1007
1008typedef PACKED_PRE struct PACKED_POST
1009{
1010 /*Indicates the channel to stop scanning. Not used really. But retained
1011 for symmetry with "start Scan" message. It can also help in error
1012 check if needed.*/
1013 tANI_U8 scanChannel;
1014
1015} tEndScanParams, *tpEndScanParams;
1016
1017typedef PACKED_PRE struct PACKED_POST
1018{
1019 tHalMsgHeader header;
1020 tEndScanParams endScanParams;
1021} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1022
1023/*---------------------------------------------------------------------------
1024 WLAN_HAL_END_SCAN_RSP
1025---------------------------------------------------------------------------*/
1026
1027typedef PACKED_PRE struct PACKED_POST
1028{
1029 /*success or failure */
1030 tANI_U32 status;
1031
1032}tHalEndScanRspParams, *tpHalEndScanRspParams;
1033
1034typedef PACKED_PRE struct PACKED_POST
1035{
1036 tHalMsgHeader header;
1037 tHalEndScanRspParams endScanRspParams;
1038} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1039
1040/*---------------------------------------------------------------------------
1041 WLAN_HAL_FINISH_SCAN_REQ
1042---------------------------------------------------------------------------*/
1043
1044typedef PACKED_PRE struct PACKED_POST
1045{
1046 /* Identifies the operational state of the AP/STA
1047 * LEARN - AP Role SCAN - STA Role */
1048 eHalSysMode scanMode;
1049
1050 /*Operating channel to tune to.*/
1051 tANI_U8 currentOperChannel;
1052
1053 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1054 40 MHz extension channel in combination with the control channel*/
1055 ePhyChanBondState cbState;
1056
1057 /*BSSID of the BSS*/
1058 tSirMacAddr bssid;
1059
1060 /*Whether BSS needs to be notified*/
1061 tANI_U8 notifyBss;
1062
1063 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1064 CTS to Self). Must always be a valid frame type.*/
1065 tANI_U8 frameType;
1066
1067 /*UMAC has the option of passing the MAC frame to be used for notifying
1068 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1069 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1070 frameType.*/
1071 tANI_U8 frameLength;
1072
1073 /*Following the framelength there is a MAC frame buffer if frameLength
1074 is non-zero.*/
1075 tSirMacMgmtHdr macMgmtHdr;
1076
1077 /*Entry to hold number of active BSS idx's*/
1078 tSirScanEntry scanEntry;
1079
1080} tFinishScanParams, *tpFinishScanParams;
1081
1082typedef PACKED_PRE struct PACKED_POST
1083{
1084 tHalMsgHeader header;
1085 tFinishScanParams finishScanParams;
1086} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1087
1088/*---------------------------------------------------------------------------
1089 WLAN_HAL_FINISH_SCAN_RSP
1090---------------------------------------------------------------------------*/
1091
1092typedef PACKED_PRE struct PACKED_POST
1093{
1094 /*success or failure */
1095 tANI_U32 status;
1096
1097}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1098
1099typedef PACKED_PRE struct PACKED_POST
1100{
1101 tHalMsgHeader header;
1102 tHalFinishScanRspParams finishScanRspParams;
1103} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1104
1105/*---------------------------------------------------------------------------
1106 WLAN_HAL_CONFIG_STA_REQ
1107---------------------------------------------------------------------------*/
1108
1109typedef PACKED_PRE struct PACKED_POST {
1110 /*
1111 * For Self STA Entry: this represents Self Mode.
1112 * For Peer Stations, this represents the mode of the peer.
1113 * On Station:
1114 * --this mode is updated when PE adds the Self Entry.
1115 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1116 * ON AP:
1117 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1118 * to indicate the self mode of the AP.
1119 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1120 */
1121
1122 tStaRateMode opRateMode;
1123 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1124 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1125 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1126 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1127 tANI_U16 reserved;
1128
1129 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1130 //First 26 bits are reserved for those Titan rates and
1131 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1132 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1133
1134 /*
1135 * 0-76 bits used, remaining reserved
1136 * bits 0-15 and 32 should be set.
1137 */
1138 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1139
1140 /*
1141 * RX Highest Supported Data Rate defines the highest data
1142 * rate that the STA is able to receive, in unites of 1Mbps.
1143 * This value is derived from "Supported MCS Set field" inside
1144 * the HT capability element.
1145 */
1146 tANI_U16 rxHighestDataRate;
1147
1148} tSirSupportedRates, *tpSirSupportedRates;
1149
1150typedef PACKED_PRE struct PACKED_POST
1151{
1152 /*BSSID of STA*/
1153 tSirMacAddr bssId;
1154
1155 /*ASSOC ID, as assigned by UMAC*/
1156 tANI_U16 assocId;
1157
1158 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1159 tANI_U8 staType;
1160
1161 /*Short Preamble Supported.*/
1162 tANI_U8 shortPreambleSupported;
1163
1164 /*MAC Address of STA*/
1165 tSirMacAddr staMac;
1166
1167 /*Listen interval of the STA*/
1168 tANI_U16 listenInterval;
1169
1170 /*Support for 11e/WMM*/
1171 tANI_U8 wmmEnabled;
1172
1173 /*11n HT capable STA*/
1174 tANI_U8 htCapable;
1175
1176 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1177 tANI_U8 txChannelWidthSet;
1178
1179 /*RIFS mode 0 - NA, 1 - Allowed */
1180 tANI_U8 rifsMode;
1181
1182 /*L-SIG TXOP Protection mechanism
1183 0 - No Support, 1 - Supported
1184 SG - there is global field */
1185 tANI_U8 lsigTxopProtection;
1186
1187 /*Max Ampdu Size supported by STA. TPE programming.
1188 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1189 tANI_U8 maxAmpduSize;
1190
1191 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1192 tANI_U8 maxAmpduDensity;
1193
1194 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1195 tANI_U8 maxAmsduSize;
1196
1197 /*Short GI support for 40Mhz packets*/
1198 tANI_U8 fShortGI40Mhz;
1199
1200 /*Short GI support for 20Mhz packets*/
1201 tANI_U8 fShortGI20Mhz;
1202
1203 /*These rates are the intersection of peer and self capabilities.*/
1204 tSirSupportedRates supportedRates;
1205
1206 /*Robust Management Frame (RMF) enabled/disabled*/
1207 tANI_U8 rmfEnabled;
1208
1209 /* The unicast encryption type in the association */
1210 tANI_U32 encryptType;
1211
1212 /*HAL should update the existing STA entry, if this flag is set. UMAC
1213 will set this flag in case of RE-ASSOC, where we want to reuse the old
1214 STA ID. 0 = Add, 1 = Update*/
1215 tANI_U8 action;
1216
1217 /*U-APSD Flags: 1b per AC. Encoded as follows:
1218 b7 b6 b5 b4 b3 b2 b1 b0 =
1219 X X X X BE BK VI VO */
1220 tANI_U8 uAPSD;
1221
1222 /*Max SP Length*/
1223 tANI_U8 maxSPLen;
1224
1225 /*11n Green Field preamble support
1226 0 - Not supported, 1 - Supported */
1227 tANI_U8 greenFieldCapable;
1228
1229 /*MIMO Power Save mode*/
1230 tSirMacHTMIMOPowerSaveState mimoPS;
1231
1232 /*Delayed BA Support*/
1233 tANI_U8 delayedBASupport;
1234
1235 /*Max AMPDU duration in 32us*/
1236 tANI_U8 us32MaxAmpduDuration;
1237
1238 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1239 it to 0 if AP does not support it. This indication is sent to HAL and
1240 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1241 tANI_U8 fDsssCckMode40Mhz;
1242
1243 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1244 Retained for backward compalibity with existing HAL code*/
1245 tANI_U8 staIdx;
1246
1247 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1248 Retained for backward compalibity with existing HAL code*/
1249 tANI_U8 bssIdx;
1250
1251 tANI_U8 p2pCapableSta;
1252
1253} tConfigStaParams, *tpConfigStaParams;
1254
1255typedef PACKED_PRE struct PACKED_POST
1256{
1257 tHalMsgHeader header;
1258 tConfigStaParams configStaParams;
1259} tConfigStaReqMsg, *tpConfigStaReqMsg;
1260
1261/*---------------------------------------------------------------------------
1262 WLAN_HAL_CONFIG_STA_RSP
1263---------------------------------------------------------------------------*/
1264
1265typedef PACKED_PRE struct PACKED_POST
1266{
1267 /*success or failure */
1268 tANI_U32 status;
1269
1270 /* Station index; valid only when 'status' field value SUCCESS */
1271 tANI_U8 staIdx;
1272
1273 /* BSSID Index of BSS to which the station is associated */
1274 tANI_U8 bssIdx;
1275
1276 /* DPU Index for PTK */
1277 tANI_U8 dpuIndex;
1278
1279 /* DPU Index for GTK */
1280 tANI_U8 bcastDpuIndex;
1281
1282 /*DPU Index for IGTK */
1283 tANI_U8 bcastMgmtDpuIdx;
1284
1285 /*PTK DPU signature*/
1286 tANI_U8 ucUcastSig;
1287
1288 /*GTK DPU isignature*/
1289 tANI_U8 ucBcastSig;
1290
1291 /* IGTK DPU signature*/
1292 tANI_U8 ucMgmtSig;
1293
1294 tANI_U8 p2pCapableSta;
1295
1296}tConfigStaRspParams, *tpConfigStaRspParams;
1297
1298typedef PACKED_PRE struct PACKED_POST
1299{
1300 tHalMsgHeader header;
1301 tConfigStaRspParams configStaRspParams;
1302}tConfigStaRspMsg, *tpConfigStaRspMsg;
1303
1304/*---------------------------------------------------------------------------
1305 WLAN_HAL_DELETE_STA_REQ
1306---------------------------------------------------------------------------*/
1307
1308/* Delete STA Request params */
1309typedef PACKED_PRE struct PACKED_POST
1310{
1311 /* Index of STA to delete */
1312 tANI_U8 staIdx;
1313} tDeleteStaParams, *tpDeleteStaParams;
1314
1315/* Delete STA Request message*/
1316typedef PACKED_PRE struct PACKED_POST
1317{
1318 tHalMsgHeader header;
1319 tDeleteStaParams delStaParams;
1320} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1321
1322/*---------------------------------------------------------------------------
1323 WLAN_HAL_DELETE_STA_RSP
1324---------------------------------------------------------------------------*/
1325
1326/* Delete STA Response Params */
1327typedef PACKED_PRE struct PACKED_POST
1328{
1329 /*success or failure */
1330 tANI_U32 status;
1331
1332 /* Index of STA deleted */
1333 tANI_U8 staId;
1334} tDeleteStaRspParams, *tpDeleteStaRspParams;
1335
1336/* Delete STA Response message*/
1337typedef PACKED_PRE struct PACKED_POST
1338{
1339 tHalMsgHeader header;
1340 tDeleteStaRspParams delStaRspParams;
1341} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1342
1343/*---------------------------------------------------------------------------
1344 WLAN_HAL_CONFIG_BSS_REQ
1345---------------------------------------------------------------------------*/
1346
1347//12 Bytes long because this structure can be used to represent rate
1348//and extended rate set IEs. The parser assume this to be at least 12
1349typedef __ani_attr_pre_packed struct sSirMacRateSet
1350{
1351 tANI_U8 numRates;
1352 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1353} __ani_attr_packed tSirMacRateSet;
1354
1355// access category record
1356typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1357{
1358#ifndef ANI_LITTLE_BIT_ENDIAN
1359 tANI_U8 rsvd : 1;
1360 tANI_U8 aci : 2;
1361 tANI_U8 acm : 1;
1362 tANI_U8 aifsn : 4;
1363#else
1364 tANI_U8 aifsn : 4;
1365 tANI_U8 acm : 1;
1366 tANI_U8 aci : 2;
1367 tANI_U8 rsvd : 1;
1368#endif
1369} __ani_attr_packed tSirMacAciAifsn;
1370
1371// contention window size
1372typedef __ani_attr_pre_packed struct sSirMacCW
1373{
1374#ifndef ANI_LITTLE_BIT_ENDIAN
1375 tANI_U8 max : 4;
1376 tANI_U8 min : 4;
1377#else
1378 tANI_U8 min : 4;
1379 tANI_U8 max : 4;
1380#endif
1381} __ani_attr_packed tSirMacCW;
1382
1383typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1384{
1385 tSirMacAciAifsn aci;
1386 tSirMacCW cw;
1387 tANI_U16 txoplimit;
1388} __ani_attr_packed tSirMacEdcaParamRecord;
1389
1390typedef __ani_attr_pre_packed struct sSirMacSSid
1391{
1392 tANI_U8 length;
1393 tANI_U8 ssId[32];
1394} __ani_attr_packed tSirMacSSid;
1395
1396// Concurrency role. These are generic IDs that identify the various roles
1397// in the software system.
1398typedef enum {
1399 HAL_STA_MODE=0,
1400 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
1401 HAL_P2P_CLIENT_MODE,
1402 HAL_P2P_GO_MODE,
1403 HAL_MONITOR_MODE,
1404} tHalConMode;
1405
1406//This is a bit pattern to be set for each mode
1407//bit 0 - sta mode
1408//bit 1 - ap mode
1409//bit 2 - p2p client mode
1410//bit 3 - p2p go mode
1411typedef enum
1412{
1413 HAL_STA=1,
1414 HAL_SAP=2,
1415 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1416 HAL_P2P_CLIENT=4,
1417 HAL_P2P_GO=8,
1418 HAL_MAX_CONCURRENCY_PERSONA=4
1419} tHalConcurrencyMode;
1420
1421typedef PACKED_PRE struct PACKED_POST
1422{
1423 /* BSSID */
1424 tSirMacAddr bssId;
1425
1426#ifdef HAL_SELF_STA_PER_BSS
1427 /* Self Mac Address */
1428 tSirMacAddr selfMacAddr;
1429#endif
1430
1431 /* BSS type */
1432 tSirBssType bssType;
1433
1434 /*Operational Mode: AP =0, STA = 1*/
1435 tANI_U8 operMode;
1436
1437 /*Network Type*/
1438 tSirNwType nwType;
1439
1440 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1441 tANI_U8 shortSlotTimeSupported;
1442
1443 /*Co-exist with 11a STA*/
1444 tANI_U8 llaCoexist;
1445
1446 /*Co-exist with 11b STA*/
1447 tANI_U8 llbCoexist;
1448
1449 /*Co-exist with 11g STA*/
1450 tANI_U8 llgCoexist;
1451
1452 /*Coexistence with 11n STA*/
1453 tANI_U8 ht20Coexist;
1454
1455 /*Non GF coexist flag*/
1456 tANI_U8 llnNonGFCoexist;
1457
1458 /*TXOP protection support*/
1459 tANI_U8 fLsigTXOPProtectionFullSupport;
1460
1461 /*RIFS mode*/
1462 tANI_U8 fRIFSMode;
1463
1464 /*Beacon Interval in TU*/
1465 tSirMacBeaconInterval beaconInterval;
1466
1467 /*DTIM period*/
1468 tANI_U8 dtimPeriod;
1469
1470 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1471 tANI_U8 txChannelWidthSet;
1472
1473 /*Operating channel*/
1474 tANI_U8 currentOperChannel;
1475
1476 /*Extension channel for channel bonding*/
1477 tANI_U8 currentExtChannel;
1478
1479 /*Reserved to align next field on a dword boundary*/
1480 tANI_U8 reserved;
1481
1482 /*Context of the station being added in HW
1483 Add a STA entry for "itself" -
1484 On AP - Add the AP itself in an "STA context"
1485 On STA - Add the AP to which this STA is joining in an "STA context" */
1486 tConfigStaParams staContext;
1487
1488 /*SSID of the BSS*/
1489 tSirMacSSid ssId;
1490
1491 /*HAL should update the existing BSS entry, if this flag is set.
1492 UMAC will set this flag in case of reassoc, where we want to resue the
1493 the old BSSID and still return success 0 = Add, 1 = Update*/
1494 tANI_U8 action;
1495
1496 /* MAC Rate Set */
1497 tSirMacRateSet rateSet;
1498
1499 /*Enable/Disable HT capabilities of the BSS*/
1500 tANI_U8 htCapable;
1501
1502 // Enable/Disable OBSS protection
1503 tANI_U8 obssProtEnabled;
1504
1505 /*RMF enabled/disabled*/
1506 tANI_U8 rmfEnabled;
1507
1508 /*HT Operating Mode operating mode of the 802.11n STA*/
1509 tSirMacHTOperatingMode htOperMode;
1510
1511 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1512 tANI_U8 dualCTSProtection;
1513
1514 /* Probe Response Max retries */
1515 tANI_U8 ucMaxProbeRespRetryLimit;
1516
1517 /* To Enable Hidden ssid */
1518 tANI_U8 bHiddenSSIDEn;
1519
1520 /* To Enable Disable FW Proxy Probe Resp */
1521 tANI_U8 bProxyProbeRespEn;
1522
1523 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1524 EDCA params or might not desire to apply EDCA params during config BSS.
1525 0 implies Not Valid ; Non-Zero implies valid*/
1526 tANI_U8 edcaParamsValid;
1527
1528 /*EDCA Parameters for Best Effort Access Category*/
1529 tSirMacEdcaParamRecord acbe;
1530
1531 /*EDCA Parameters forBackground Access Category*/
1532 tSirMacEdcaParamRecord acbk;
1533
1534 /*EDCA Parameters for Video Access Category*/
1535 tSirMacEdcaParamRecord acvi;
1536
1537 /*EDCA Parameters for Voice Access Category*/
1538 tSirMacEdcaParamRecord acvo;
1539
1540#ifdef WLAN_FEATURE_VOWIFI_11R
1541 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1542 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1543#endif
1544
1545 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1546 tANI_U8 halPersona;
1547
1548 tANI_U8 bSpectrumMgtEnable;
1549
1550 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1551 tANI_S8 txMgmtPower;
1552 /*maxTxPower has max power to be used after applying the power constraint if any */
1553 tANI_S8 maxTxPower;
1554
1555} tConfigBssParams, * tpConfigBssParams;
1556
1557typedef PACKED_PRE struct PACKED_POST
1558{
1559 tHalMsgHeader header;
1560 tConfigBssParams configBssParams;
1561} tConfigBssReqMsg, *tpConfigBssReqMsg;
1562
1563/*---------------------------------------------------------------------------
1564 WLAN_HAL_CONFIG_BSS_RSP
1565---------------------------------------------------------------------------*/
1566
1567typedef PACKED_PRE struct PACKED_POST
1568{
1569 /* Success or Failure */
1570 tANI_U32 status;
1571
1572 /* BSS index allocated by HAL */
1573 tANI_U8 bssIdx;
1574
1575 /* DPU descriptor index for PTK */
1576 tANI_U8 dpuDescIndx;
1577
1578 /* PTK DPU signature */
1579 tANI_U8 ucastDpuSignature;
1580
1581 /* DPU descriptor index for GTK*/
1582 tANI_U8 bcastDpuDescIndx;
1583
1584 /* GTK DPU signature */
1585 tANI_U8 bcastDpuSignature;
1586
1587 /*DPU descriptor for IGTK*/
1588 tANI_U8 mgmtDpuDescIndx;
1589
1590 /* IGTK DPU signature */
1591 tANI_U8 mgmtDpuSignature;
1592
1593 /* Station Index for BSS entry*/
1594 tANI_U8 bssStaIdx;
1595
1596 /* Self station index for this BSS */
1597 tANI_U8 bssSelfStaIdx;
1598
1599 /* Bcast station for buffering bcast frames in AP role */
1600 tANI_U8 bssBcastStaIdx;
1601
1602 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1603 tSirMacAddr staMac;
1604
1605 /*HAL fills in the tx power used for mgmt frames in this field. */
1606 tANI_S8 txMgmtPower;
1607
1608} tConfigBssRspParams, * tpConfigBssRspParams;
1609
1610typedef PACKED_PRE struct PACKED_POST
1611{
1612 tHalMsgHeader header;
1613 tConfigBssRspParams configBssRspParams;
1614} tConfigBssRspMsg, *tpConfigBssRspMsg;
1615
1616/*---------------------------------------------------------------------------
1617 WLAN_HAL_DELETE_BSS_REQ
1618---------------------------------------------------------------------------*/
1619
1620typedef PACKED_PRE struct PACKED_POST
1621{
1622 /* BSS index to be deleted */
1623 tANI_U8 bssIdx;
1624
1625} tDeleteBssParams, *tpDeleteBssParams;
1626
1627typedef PACKED_PRE struct PACKED_POST
1628{
1629 tHalMsgHeader header;
1630 tDeleteBssParams deleteBssParams;
1631} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1632
1633/*---------------------------------------------------------------------------
1634 WLAN_HAL_DELETE_BSS_RSP
1635---------------------------------------------------------------------------*/
1636
1637typedef PACKED_PRE struct PACKED_POST
1638{
1639 /* Success or Failure */
1640 tANI_U32 status;
1641
1642 /* BSS index that has been deleted */
1643 tANI_U8 bssIdx;
1644
1645} tDeleteBssRspParams, *tpDeleteBssRspParams;
1646
1647typedef PACKED_PRE struct PACKED_POST
1648{
1649 tHalMsgHeader header;
1650 tDeleteBssRspParams deleteBssRspParams;
1651} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
1652
1653/*---------------------------------------------------------------------------
1654 WLAN_HAL_JOIN_REQ
1655---------------------------------------------------------------------------*/
1656
1657typedef PACKED_PRE struct PACKED_POST
1658{
1659 /*Indicates the BSSID to which STA is going to associate*/
1660 tSirMacAddr bssId;
1661
1662 /*Indicates the channel to switch to.*/
1663 tANI_U8 ucChannel;
1664
1665 /* Self STA MAC */
1666 tSirMacAddr selfStaMacAddr;
1667
1668 /*Local power constraint*/
1669 tANI_U8 ucLocalPowerConstraint;
1670
1671 /*Secondary channel offset */
1672 tSirMacHTSecondaryChannelOffset secondaryChannelOffset;
1673
1674 /*link State*/
1675 tSirLinkState linkState;
1676
1677 /* Max TX power */
1678 tANI_S8 maxTxPower;
1679
1680} tHalJoinReqParams, *tpHalJoinReqParams;
1681
1682typedef PACKED_PRE struct PACKED_POST
1683{
1684 tHalMsgHeader header;
1685 tHalJoinReqParams joinReqParams;
1686} tHalJoinReqMsg, *tpHalJoinReqMsg;
1687
1688/*---------------------------------------------------------------------------
1689 WLAN_HAL_JOIN_RSP
1690---------------------------------------------------------------------------*/
1691
1692typedef PACKED_PRE struct PACKED_POST
1693{
1694 /*success or failure */
1695 tANI_U32 status;
1696
1697 /* HAL fills in the tx power used for mgmt frames in this field */
1698 tPowerdBm txMgmtPower;
1699
1700}tHalJoinRspParams, *tpHalJoinRspParams;
1701
1702typedef PACKED_PRE struct PACKED_POST
1703{
1704 tHalMsgHeader header;
1705 tHalJoinRspParams joinRspParams;
1706}tHalJoinRspMsg, *tpHalJoinRspMsg;
1707
1708/*---------------------------------------------------------------------------
1709 WLAN_HAL_POST_ASSOC_REQ
1710---------------------------------------------------------------------------*/
1711
1712typedef PACKED_PRE struct PACKED_POST
1713{
1714 tConfigStaParams configStaParams;
1715 tConfigBssParams configBssParams;
1716} tPostAssocReqParams, *tpPostAssocReqParams;
1717
1718typedef PACKED_PRE struct PACKED_POST
1719{
1720 tHalMsgHeader header;
1721 tPostAssocReqParams postAssocReqParams;
1722} tPostAssocReqMsg, *tpPostAssocReqMsg;
1723
1724/*---------------------------------------------------------------------------
1725 WLAN_HAL_POST_ASSOC_RSP
1726---------------------------------------------------------------------------*/
1727
1728typedef PACKED_PRE struct PACKED_POST
1729{
1730 tConfigStaRspParams configStaRspParams;
1731 tConfigBssRspParams configBssRspParams;
1732} tPostAssocRspParams, *tpPostAssocRspParams;
1733
1734typedef PACKED_PRE struct PACKED_POST
1735{
1736 tHalMsgHeader header;
1737 tPostAssocRspParams postAssocRspParams;
1738} tPostAssocRspMsg, *tpPostAssocRspMsg;
1739
1740/*---------------------------------------------------------------------------
1741 WLAN_HAL_SET_BSSKEY_REQ
1742---------------------------------------------------------------------------*/
1743
1744/*
1745 * This is used by PE to create a set of WEP keys for a given BSS.
1746 */
1747typedef PACKED_PRE struct PACKED_POST
1748{
1749 /*BSS Index of the BSS*/
1750 tANI_U8 bssIdx;
1751
1752 /*Encryption Type used with peer*/
1753 tAniEdType encType;
1754
1755 /*Number of keys*/
1756 tANI_U8 numKeys;
1757
1758 /*Array of keys.*/
1759 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1760
1761 /*Control for Replay Count, 1= Single TID based replay count on Tx
1762 0 = Per TID based replay count on TX */
1763 tANI_U8 singleTidRc;
1764} tSetBssKeyParams, *tpSetBssKeyParams;
1765
1766typedef PACKED_PRE struct PACKED_POST
1767{
1768 tHalMsgHeader header;
1769 tSetBssKeyParams setBssKeyParams;
1770} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
1771
1772/*---------------------------------------------------------------------------
1773 WLAN_HAL_SET_BSSKEY_RSP
1774---------------------------------------------------------------------------*/
1775typedef PACKED_PRE struct PACKED_POST
1776{
1777 /*success or failure */
1778 tANI_U32 status;
1779
1780} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
1781
1782typedef PACKED_PRE struct PACKED_POST
1783{
1784 tHalMsgHeader header;
1785 tSetBssKeyRspParams setBssKeyRspParams;
1786} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
1787
1788/*---------------------------------------------------------------------------
1789 WLAN_HAL_SET_STAKEY_REQ,
1790---------------------------------------------------------------------------*/
1791
1792/*
1793 * This is used by PE to configure the key information on a given station.
1794 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
1795 * a preconfigured key from a BSS the station assoicated with; otherwise
1796 * a new key descriptor is created based on the key field.
1797 */
1798
1799typedef PACKED_PRE struct PACKED_POST
1800{
1801 tHalMsgHeader header;
1802 tSetStaKeyParams setStaKeyParams;
1803} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
1804
1805/*---------------------------------------------------------------------------
1806 WLAN_HAL_SET_STAKEY_RSP,
1807---------------------------------------------------------------------------*/
1808typedef PACKED_PRE struct PACKED_POST
1809{
1810 /*success or failure */
1811 tANI_U32 status;
1812
1813} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
1814
1815typedef PACKED_PRE struct PACKED_POST
1816{
1817 tHalMsgHeader header;
1818 tSetStaKeyRspParams setStaKeyRspParams;
1819} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
1820
1821/*---------------------------------------------------------------------------
1822 WLAN_HAL_RMV_BSSKEY_REQ,
1823---------------------------------------------------------------------------*/
1824/*
1825 * This is used by PE to remove keys for a given BSS.
1826 */
1827typedef PACKED_PRE struct PACKED_POST
1828
1829{
1830 /*BSS Index of the BSS*/
1831 tANI_U8 bssIdx;
1832
1833 /*Encryption Type used with peer*/
1834 tAniEdType encType;
1835
1836 /*Key Id*/
1837 tANI_U8 keyId;
1838
1839 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
1840 tAniWepType wepType;
1841
1842} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
1843
1844typedef PACKED_PRE struct PACKED_POST
1845{
1846 tHalMsgHeader header;
1847 tRemoveBssKeyParams removeBssKeyParams;
1848} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
1849
1850/*---------------------------------------------------------------------------
1851 WLAN_HAL_RMV_BSSKEY_RSP,
1852---------------------------------------------------------------------------*/
1853typedef PACKED_PRE struct PACKED_POST
1854{
1855 /*success or failure */
1856 tANI_U32 status;
1857
1858} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
1859
1860typedef PACKED_PRE struct PACKED_POST
1861{
1862 tHalMsgHeader header;
1863 tRemoveBssKeyRspParams removeBssKeyRspParams;
1864} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
1865
1866/*---------------------------------------------------------------------------
1867 WLAN_HAL_RMV_STAKEY_REQ,
1868---------------------------------------------------------------------------*/
1869/*
1870 * This is used by PE to Remove the key information on a given station.
1871 */
1872typedef PACKED_PRE struct PACKED_POST
1873{
1874 /*STA Index*/
1875 tANI_U16 staIdx;
1876
1877 /*Encryption Type used with peer*/
1878 tAniEdType encType;
1879
1880 /*Key Id*/
1881 tANI_U8 keyId;
1882
1883 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
1884 the same key is used for both broadcast and unicast.*/
1885 tANI_BOOLEAN unicast;
1886
1887} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
1888
1889typedef PACKED_PRE struct PACKED_POST
1890{
1891 tHalMsgHeader header;
1892 tRemoveStaKeyParams removeStaKeyParams;
1893} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
1894
1895/*---------------------------------------------------------------------------
1896 WLAN_HAL_RMV_STAKEY_RSP,
1897---------------------------------------------------------------------------*/
1898typedef PACKED_PRE struct PACKED_POST
1899{
1900 /*success or failure */
1901 tANI_U32 status;
1902} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
1903
1904typedef PACKED_PRE struct PACKED_POST
1905{
1906 tHalMsgHeader header;
1907 tRemoveStaKeyRspParams removeStaKeyRspParams;
1908} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
1909
1910
1911
1912
1913
1914/*---------------------------------------------------------------------------
1915WLAN_HAL_CH_SWITCH_REQ
1916---------------------------------------------------------------------------*/
1917
1918typedef PACKED_PRE struct PACKED_POST
1919{
1920 /* Channel number */
1921 tANI_U8 channelNumber;
1922
1923 /* Local power constraint */
1924 tANI_U8 localPowerConstraint;
1925
1926 /*Secondary channel offset */
1927 tSirMacHTSecondaryChannelOffset secondaryChannelOffset;
1928
1929 //HAL fills in the tx power used for mgmt frames in this field.
1930 tPowerdBm txMgmtPower;
1931
1932 /* Max TX power */
1933 tPowerdBm maxTxPower;
1934
1935 /* Self STA MAC */
1936 tSirMacAddr selfStaMacAddr;
1937
1938 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
1939 this should be applied only to that session*/
1940 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
1941 * bssid needs to be out of the VOWifi feature flag */
1942 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
1943 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
1944 */
1945 tSirMacAddr bssId;
1946
1947}tSwitchChannelParams, *tpSwitchChannelParams;
1948
1949typedef PACKED_PRE struct PACKED_POST
1950{
1951 tHalMsgHeader header;
1952 tSwitchChannelParams switchChannelParams;
1953} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
1954
1955/*---------------------------------------------------------------------------
1956WLAN_HAL_CH_SWITCH_RSP
1957---------------------------------------------------------------------------*/
1958
1959typedef PACKED_PRE struct PACKED_POST
1960{
1961 /* Status */
1962 tANI_U32 status;
1963
1964 /* Channel number - same as in request*/
1965 tANI_U8 channelNumber;
1966
1967 /* HAL fills in the tx power used for mgmt frames in this field */
1968 tPowerdBm txMgmtPower;
1969
1970 /* BSSID needed to identify session - same as in request*/
1971 tSirMacAddr bssId;
1972
1973}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
1974
1975typedef PACKED_PRE struct PACKED_POST
1976{
1977 tHalMsgHeader header;
1978 tSwitchChannelRspParams switchChannelRspParams;
1979} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
1980
1981/*---------------------------------------------------------------------------
1982WLAN_HAL_UPD_EDCA_PARAMS_REQ
1983---------------------------------------------------------------------------*/
1984
1985typedef PACKED_PRE struct PACKED_POST
1986{
1987 /*BSS Index*/
1988 tANI_U16 bssIdx;
1989
1990 /* Best Effort */
1991 tSirMacEdcaParamRecord acbe;
1992
1993 /* Background */
1994 tSirMacEdcaParamRecord acbk;
1995
1996 /* Video */
1997 tSirMacEdcaParamRecord acvi;
1998
1999 /* Voice */
2000 tSirMacEdcaParamRecord acvo;
2001
2002} tEdcaParams, *tpEdcaParams;
2003
2004typedef PACKED_PRE struct PACKED_POST
2005{
2006 tHalMsgHeader header;
2007 tEdcaParams edcaParams;
2008} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2009
2010/*---------------------------------------------------------------------------
2011WLAN_HAL_UPD_EDCA_PARAMS_RSP
2012---------------------------------------------------------------------------*/
2013typedef PACKED_PRE struct PACKED_POST
2014{
2015 /*success or failure */
2016 tANI_U32 status;
2017} tEdcaRspParams, *tpEdcaRspParams;
2018
2019typedef PACKED_PRE struct PACKED_POST
2020{
2021 tHalMsgHeader header;
2022 tEdcaRspParams edcaRspParams;
2023} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2024
2025
2026
2027/*---------------------------------------------------------------------------
2028 * WLAN_HAL_GET_STATS_REQ
2029 *--------------------------------------------------------------------------*/
2030typedef PACKED_PRE struct PACKED_POST
2031
2032{
2033 /* Index of STA to which the statistics */
2034 tANI_U16 staIdx;
2035
2036 /* Encryption mode */
2037 tANI_U8 encMode;
2038
2039 /* status */
2040 tANI_U32 status;
2041
2042 /* Statistics */
2043 tANI_U32 sendBlocks;
2044 tANI_U32 recvBlocks;
2045 tANI_U32 replays;
2046 tANI_U8 micErrorCnt;
2047 tANI_U32 protExclCnt;
2048 tANI_U16 formatErrCnt;
2049 tANI_U16 unDecryptableCnt;
2050 tANI_U32 decryptErrCnt;
2051 tANI_U32 decryptOkCnt;
2052} tDpuStatsParams, * tpDpuStatsParams;
2053
2054typedef PACKED_PRE struct PACKED_POST
2055{
2056 /* Valid STA Idx for per STA stats request */
2057 tANI_U32 staId;
2058
2059 /* Categories of stats requested as specified in eHalStatsMask*/
2060 tANI_U32 statsMask;
2061}tHalStatsReqParams, *tpHalStatsReqParams;
2062
2063typedef PACKED_PRE struct PACKED_POST
2064{
2065 tHalMsgHeader header;
2066 tHalStatsReqParams statsReqParams;
2067} tHalStatsReqMsg, *tpHalStatsReqMsg;
2068
2069/*---------------------------------------------------------------------------
2070 * WLAN_HAL_GET_STATS_RSP
2071 *--------------------------------------------------------------------------*/
2072
2073typedef PACKED_PRE struct PACKED_POST
2074{
2075 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2076 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2077 // station successfully transmitted after more than one retransmission attempt
2078
2079 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2080 //(with and without retries, including multi-cast, broadcast)
2081 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2082 //(after appropriate filter rules including multi-cast, broadcast)
2083 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2084 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2085 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2086 tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
2087 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2088 tANI_U32 rx_discard_cnt; //The sum of the receive error count and dropped-receive-buffer error count.
2089 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2090 tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
2091 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2092 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
2093 //to provide this.
2094}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2095
2096
2097// defines tx_rate_flags
2098typedef enum eTxRateInfo
2099{
2100 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2101 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2102 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2103 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2104 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2105} tTxrateinfoflags;
2106
2107
2108typedef PACKED_PRE struct PACKED_POST
2109{
2110 tANI_U32 rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2111 //or MMPDU frames
2112 tANI_U32 promiscuous_rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
2113 //or MMPDU frames when a promiscuous packet filter was enabled
2114 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2115 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
2116 //to a supported rate and the order shall be the same as the supporteRates parameter.
2117 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2118 //for eg: if it is 10.5dBm, the value would be 105
2119 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2120 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
2121
2122 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2123 //recently transmitted frame
2124 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
2125 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2126 //HT40 rates; short and long guard interval
2127}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2128
2129typedef PACKED_PRE struct PACKED_POST
2130{
2131 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2132 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
2133 //is enabled
2134 tANI_U32 rx_mic_fail_cnt; //The number of received MSDU packets that that the 802.11 station discarded
2135 //because of MIC failures
2136 tANI_U32 tkip_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2137 //because of a TKIP ICV error
2138 tANI_U32 aes_ccmp_format_err; //The number of received MPDU frames that the 802.11 discarded because of an
2139 //invalid AES-CCMP format
2140 tANI_U32 aes_ccmp_replay_cnt; //The number of received MPDU frames that the 802.11 station discarded because of
2141 //the AES-CCMP replay protection procedure
2142 tANI_U32 aes_ccmp_decrpt_err; //The number of received MPDU frames that the 802.11 station discarded because of
2143 //errors detected by the AES-CCMP decryption algorithm
2144 tANI_U32 wep_undecryptable_cnt; //The number of encrypted MPDU frames received for which a WEP decryption key was
2145 //not available on the 802.11 station
2146 tANI_U32 wep_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
2147 //because of a WEP ICV error
2148 tANI_U32 rx_decrypt_succ_cnt; //The number of received encrypted packets that the 802.11 station successfully
2149 //decrypted
2150 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2151
2152}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
2153
2154typedef PACKED_PRE struct PACKED_POST
2155{
2156 tAniGlobalSecurityStats ucStats;
2157 tAniGlobalSecurityStats mcbcStats;
2158}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2159
2160typedef PACKED_PRE struct PACKED_POST
2161{
2162 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2163 //MAC address in the address 1 field or an A-MSDU frame with a group address in the
2164 //address 1 field
2165 tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
2166 tANI_U32 tx_20_frm_cnt; //This counter shall be incremented when a Frame is transmitted only on the
2167 //primary channel
2168 tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
2169 tANI_U32 rx_mpdu_in_ampdu_cnt; //This counter shall be incremented by the number of MPDUs received in the A-MPDU
2170 //when an A-MPDU is received
2171 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2172 //is the first CRC error in the received AMPDU or when the previous delimiter has been
2173 //decoded correctly
2174}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2175
2176typedef PACKED_PRE struct PACKED_POST
2177{
2178 tANI_U32 tx_frag_cnt[4]; //The number of MPDU frames that the 802.11 station transmitted and acknowledged
2179 //through a received 802.11 ACK frame
2180 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2181 tANI_U32 tx_mpdu_in_ampdu_cnt; //This counter shall increment by the number of MPDUs in the AMPDU when an A-MPDU
2182 //is transmitted
2183}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2184
2185typedef PACKED_PRE struct PACKED_POST
2186{
2187 /* Success or Failure */
2188 tANI_U32 status;
2189
2190 /* STA Idx */
2191 tANI_U32 staId;
2192
2193 /* Categories of STATS being returned as per eHalStatsMask*/
2194 tANI_U32 statsMask;
2195
2196 /* message type is same as the request type */
2197 tANI_U16 msgType;
2198
2199 /* length of the entire request, includes the pStatsBuf length too */
2200 tANI_U16 msgLen;
2201
2202} tHalStatsRspParams, *tpHalStatsRspParams;
2203
2204
2205
2206typedef PACKED_PRE struct PACKED_POST
2207{
2208 tHalMsgHeader header;
2209 tHalStatsRspParams statsRspParams;
2210} tHalStatsRspMsg, *tpHalStatsRspMsg;
2211
2212/*---------------------------------------------------------------------------
2213 * WLAN_HAL_SET_LINK_ST_REQ
2214 *--------------------------------------------------------------------------*/
2215typedef PACKED_PRE struct PACKED_POST
2216{
2217 tSirMacAddr bssid;
2218 tSirLinkState state;
2219 tSirMacAddr selfMacAddr;
2220} tLinkStateParams, *tpLinkStateParams;
2221
2222typedef PACKED_PRE struct PACKED_POST
2223{
2224 tHalMsgHeader header;
2225 tLinkStateParams linkStateParams;
2226} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2227
2228/*---------------------------------------------------------------------------
2229 * WLAN_HAL_SET_LINK_ST_RSP
2230 *--------------------------------------------------------------------------*/
2231
2232typedef PACKED_PRE struct PACKED_POST
2233{
2234 /*success or failure */
2235 tANI_U32 status;
2236} tLinkStateRspParams, *tpLinkStateRspParams;
2237
2238typedef PACKED_PRE struct PACKED_POST
2239{
2240 tHalMsgHeader header;
2241 tLinkStateRspParams linkStateRspParams;
2242} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2243
2244/*---------------------------------------------------------------------------
2245 * WLAN_HAL_ADD_TS_REQ
2246 *--------------------------------------------------------------------------*/
2247
2248/* TSPEC Params */
2249typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2250{
2251#ifndef ANI_LITTLE_BIT_ENDIAN
2252 tANI_U16 ackPolicy : 2;
2253 tANI_U16 userPrio : 3;
2254 tANI_U16 psb : 1;
2255 tANI_U16 aggregation : 1;
2256 tANI_U16 accessPolicy : 2;
2257 tANI_U16 direction : 2;
2258 tANI_U16 tsid : 4;
2259 tANI_U16 trafficType : 1;
2260#else
2261 tANI_U16 trafficType : 1;
2262 tANI_U16 tsid : 4;
2263 tANI_U16 direction : 2;
2264 tANI_U16 accessPolicy : 2;
2265 tANI_U16 aggregation : 1;
2266 tANI_U16 psb : 1;
2267 tANI_U16 userPrio : 3;
2268 tANI_U16 ackPolicy : 2;
2269#endif
2270} __ani_attr_packed tSirMacTSInfoTfc;
2271
2272/* Flag to schedule the traffic type */
2273typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2274{
2275#ifndef ANI_LITTLE_BIT_ENDIAN
2276 tANI_U8 rsvd : 7;
2277 tANI_U8 schedule : 1;
2278#else
2279 tANI_U8 schedule : 1;
2280 tANI_U8 rsvd : 7;
2281#endif
2282} __ani_attr_packed tSirMacTSInfoSch;
2283
2284/* Traffic and scheduling info */
2285typedef __ani_attr_pre_packed struct sSirMacTSInfo
2286{
2287 tSirMacTSInfoTfc traffic;
2288 tSirMacTSInfoSch schedule;
2289} __ani_attr_packed tSirMacTSInfo;
2290
2291/* Information elements */
2292typedef __ani_attr_pre_packed struct sSirMacTspecIE
2293{
2294 tANI_U8 type;
2295 tANI_U8 length;
2296 tSirMacTSInfo tsinfo;
2297 tANI_U16 nomMsduSz;
2298 tANI_U16 maxMsduSz;
2299 tANI_U32 minSvcInterval;
2300 tANI_U32 maxSvcInterval;
2301 tANI_U32 inactInterval;
2302 tANI_U32 suspendInterval;
2303 tANI_U32 svcStartTime;
2304 tANI_U32 minDataRate;
2305 tANI_U32 meanDataRate;
2306 tANI_U32 peakDataRate;
2307 tANI_U32 maxBurstSz;
2308 tANI_U32 delayBound;
2309 tANI_U32 minPhyRate;
2310 tANI_U16 surplusBw;
2311 tANI_U16 mediumTime;
2312}__ani_attr_packed tSirMacTspecIE;
2313
2314typedef PACKED_PRE struct PACKED_POST
2315{
2316 /* Station Index */
2317 tANI_U16 staIdx;
2318
2319 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2320 tANI_U16 tspecIdx;
2321
2322 /* To program TPE with required parameters */
2323 tSirMacTspecIE tspec;
2324
2325 /* U-APSD Flags: 1b per AC. Encoded as follows:
2326 b7 b6 b5 b4 b3 b2 b1 b0 =
2327 X X X X BE BK VI VO */
2328 tANI_U8 uAPSD;
2329
2330 /* These parameters are for all the access categories */
2331 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2332 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2333 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
2334
2335} tAddTsParams, *tpAddTsParams;
2336
2337typedef PACKED_PRE struct PACKED_POST
2338{
2339 tHalMsgHeader header;
2340 tAddTsParams addTsParams;
2341} tAddTsReqMsg, *tpAddTsReqMsg;
2342
2343/*---------------------------------------------------------------------------
2344 * WLAN_HAL_ADD_TS_RSP
2345 *--------------------------------------------------------------------------*/
2346
2347typedef PACKED_PRE struct PACKED_POST
2348{
2349 /*success or failure */
2350 tANI_U32 status;
2351} tAddTsRspParams, *tpAddTsRspParams;
2352
2353typedef PACKED_PRE struct PACKED_POST
2354{
2355 tHalMsgHeader header;
2356 tAddTsRspParams addTsRspParams;
2357} tAddTsRspMsg, *tpAddTsRspMsg;
2358
2359
2360/*---------------------------------------------------------------------------
2361 * WLAN_HAL_DEL_TS_REQ
2362 *--------------------------------------------------------------------------*/
2363
2364typedef PACKED_PRE struct PACKED_POST
2365{
2366 /* Station Index */
2367 tANI_U16 staIdx;
2368
2369 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2370 tANI_U16 tspecIdx;
2371
2372 /* To lookup station id using the mac address */
2373 tSirMacAddr bssId;
2374
2375} tDelTsParams, *tpDelTsParams;
2376
2377typedef PACKED_PRE struct PACKED_POST
2378{
2379 tHalMsgHeader header;
2380 tDelTsParams delTsParams;
2381} tDelTsReqMsg, *tpDelTsReqMsg;
2382
2383/*---------------------------------------------------------------------------
2384 * WLAN_HAL_DEL_TS_RSP
2385 *--------------------------------------------------------------------------*/
2386
2387typedef PACKED_PRE struct PACKED_POST
2388{
2389 /*success or failure */
2390 tANI_U32 status;
2391} tDelTsRspParams, *tpDelTsRspParams;
2392
2393typedef PACKED_PRE struct PACKED_POST
2394{
2395 tHalMsgHeader header;
2396 tDelTsRspParams delTsRspParams;
2397} tDelTsRspMsg, *tpDelTsRspMsg;
2398
2399/* End of TSpec Parameters */
2400
2401/* Start of BLOCK ACK related Parameters */
2402
2403/*---------------------------------------------------------------------------
2404 * WLAN_HAL_ADD_BA_SESSION_REQ
2405 *--------------------------------------------------------------------------*/
2406
2407typedef PACKED_PRE struct PACKED_POST
2408{
2409 /* Station Index */
2410 tANI_U16 staIdx;
2411
2412 /* Peer MAC Address */
2413 tSirMacAddr peerMacAddr;
2414
2415 /* ADDBA Action Frame dialog token
2416 HAL will not interpret this object */
2417 tANI_U8 baDialogToken;
2418
2419 /* TID for which the BA is being setup
2420 This identifies the TC or TS of interest */
2421 tANI_U8 baTID;
2422
2423 /* 0 - Delayed BA (Not supported)
2424 1 - Immediate BA */
2425 tANI_U8 baPolicy;
2426
2427 /* Indicates the number of buffers for this TID (baTID)
2428 NOTE - This is the requested buffer size. When this
2429 is processed by HAL and subsequently by HDD, it is
2430 possible that HDD may change this buffer size. Any
2431 change in the buffer size should be noted by PE and
2432 advertized appropriately in the ADDBA response */
2433 tANI_U16 baBufferSize;
2434
2435 /* BA timeout in TU's 0 means no timeout will occur */
2436 tANI_U16 baTimeout;
2437
2438 /* b0..b3 - Fragment Number - Always set to 0
2439 b4..b15 - Starting Sequence Number of first MSDU
2440 for which this BA is setup */
2441 tANI_U16 baSSN;
2442
2443 /* ADDBA direction
2444 1 - Originator
2445 0 - Recipient */
2446 tANI_U8 baDirection;
2447} tAddBASessionParams, *tpAddBASessionParams;
2448
2449typedef PACKED_PRE struct PACKED_POST
2450{
2451 tHalMsgHeader header;
2452 tAddBASessionParams addBASessionParams;
2453}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2454
2455/*---------------------------------------------------------------------------
2456 * WLAN_HAL_ADD_BA_SESSION_RSP
2457 *--------------------------------------------------------------------------*/
2458
2459typedef PACKED_PRE struct PACKED_POST
2460{
2461 /*success or failure */
2462 tANI_U32 status;
2463
2464 /* Dialog token */
2465 tANI_U8 baDialogToken;
2466
2467 /* TID for which the BA session has been setup */
2468 tANI_U8 baTID;
2469
2470 /* BA Buffer Size allocated for the current BA session */
2471 tANI_U8 baBufferSize;
2472
2473 tANI_U8 baSessionID;
2474
2475 /* Reordering Window buffer */
2476 tANI_U8 winSize;
2477
2478 /*Station Index to id the sta */
2479 tANI_U8 STAID;
2480
2481 /* Starting Sequence Number */
2482 tANI_U16 SSN;
2483} tAddBASessionRspParams, *tpAddBASessionRspParams;
2484
2485typedef PACKED_PRE struct PACKED_POST
2486{
2487 tHalMsgHeader header;
2488 tAddBASessionRspParams addBASessionRspParams;
2489} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2490
2491/*---------------------------------------------------------------------------
2492 * WLAN_HAL_ADD_BA_REQ
2493 *--------------------------------------------------------------------------*/
2494
2495typedef PACKED_PRE struct PACKED_POST
2496{
2497 /* Session Id */
2498 tANI_U8 baSessionID;
2499
2500 /* Reorder Window Size */
2501 tANI_U8 winSize;
2502
2503#ifdef FEATURE_ON_CHIP_REORDERING
2504 tANI_BOOLEAN isReorderingDoneOnChip;
2505#endif
2506} tAddBAParams, *tpAddBAParams;
2507
2508typedef PACKED_PRE struct PACKED_POST
2509{
2510 tHalMsgHeader header;
2511 tAddBAParams addBAParams;
2512} tAddBAReqMsg, *tpAddBAReqMsg;
2513
2514
2515/*---------------------------------------------------------------------------
2516 * WLAN_HAL_ADD_BA_RSP
2517 *--------------------------------------------------------------------------*/
2518
2519typedef PACKED_PRE struct PACKED_POST
2520{
2521 /*success or failure */
2522 tANI_U32 status;
2523
2524 /* Dialog token */
2525 tANI_U8 baDialogToken;
2526
2527} tAddBARspParams, *tpAddBARspParams;
2528
2529typedef PACKED_PRE struct PACKED_POST
2530{
2531 tHalMsgHeader header;
2532 tAddBARspParams addBARspParams;
2533} tAddBARspMsg, *tpAddBARspMsg;
2534
2535
2536/*---------------------------------------------------------------------------
2537 * WLAN_HAL_TRIGGER_BA_REQ
2538 *--------------------------------------------------------------------------*/
2539
2540
2541typedef struct sAddBaInfo
2542{
2543 tANI_U16 fBaEnable : 1;
2544 tANI_U16 startingSeqNum: 12;
2545 tANI_U16 reserved : 3;
2546}tAddBaInfo, *tpAddBaInfo;
2547
2548typedef struct sTriggerBaRspCandidate
2549{
2550 tSirMacAddr staAddr;
2551 tAddBaInfo baInfo[STACFG_MAX_TC];
2552}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2553
2554typedef struct sTriggerBaCandidate
2555{
2556 tANI_U8 staIdx;
2557 tANI_U8 tidBitmap;
2558}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2559
2560typedef PACKED_PRE struct PACKED_POST
2561{
2562 /* Session Id */
2563 tANI_U8 baSessionID;
2564
2565 /* baCandidateCnt is followed by trigger BA
2566 * Candidate List(tTriggerBaCandidate)
2567 */
2568 tANI_U16 baCandidateCnt;
2569
2570} tTriggerBAParams, *tpTriggerBAParams;
2571
2572typedef PACKED_PRE struct PACKED_POST
2573{
2574 tHalMsgHeader header;
2575 tTriggerBAParams triggerBAParams;
2576} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2577
2578
2579/*---------------------------------------------------------------------------
2580 * WLAN_HAL_TRIGGER_BA_RSP
2581 *--------------------------------------------------------------------------*/
2582
2583typedef PACKED_PRE struct PACKED_POST
2584{
2585
2586 /* TO SUPPORT BT-AMP */
2587 tSirMacAddr bssId;
2588
2589 /* success or failure */
2590 tANI_U32 status;
2591
2592 /* baCandidateCnt is followed by trigger BA
2593 * Rsp Candidate List(tTriggerRspBaCandidate)
2594 */
2595 tANI_U16 baCandidateCnt;
2596
2597
2598} tTriggerBARspParams, *tpTriggerBARspParams;
2599
2600typedef PACKED_PRE struct PACKED_POST
2601{
2602 tHalMsgHeader header;
2603 tTriggerBARspParams triggerBARspParams;
2604} tTriggerBARspMsg, *tpTriggerBARspMsg;
2605
2606/*---------------------------------------------------------------------------
2607 * WLAN_HAL_DEL_BA_REQ
2608 *--------------------------------------------------------------------------*/
2609
2610typedef PACKED_PRE struct PACKED_POST
2611{
2612 /* Station Index */
2613 tANI_U16 staIdx;
2614
2615 /* TID for which the BA session is being deleted */
2616 tANI_U8 baTID;
2617
2618 /* DELBA direction
2619 1 - Originator
2620 0 - Recipient */
2621 tANI_U8 baDirection;
2622} tDelBAParams, *tpDelBAParams;
2623
2624typedef PACKED_PRE struct PACKED_POST
2625{
2626 tHalMsgHeader header;
2627 tDelBAParams delBAParams;
2628} tDelBAReqMsg, *tpDelBAReqMsg;
2629
2630/*---------------------------------------------------------------------------
2631 * WLAN_HAL_DEL_BA_RSP
2632 *--------------------------------------------------------------------------*/
2633
2634typedef PACKED_PRE struct PACKED_POST
2635{
2636 /* success or failure */
2637 tANI_U32 status;
2638} tDelBARspParams, *tpDelBARspParams;
2639
2640typedef PACKED_PRE struct PACKED_POST
2641{
2642 tHalMsgHeader header;
2643 tDelBARspParams delBARspParams;
2644} tDelBARspMsg, *tpDelBARspMsg;
2645
2646
2647#ifdef FEATURE_WLAN_CCX
2648
2649/*---------------------------------------------------------------------------
2650 * WLAN_HAL_TSM_STATS_REQ
2651 *--------------------------------------------------------------------------*/
2652typedef PACKED_PRE struct PACKED_POST
2653{
2654 /* Traffic Id */
2655 tANI_U8 tsmTID;
2656
2657 tSirMacAddr bssId;
2658} tTsmStatsParams, *tpTsmStatsParams;
2659
2660typedef PACKED_PRE struct PACKED_POST
2661{
2662 tHalMsgHeader header;
2663 tTsmStatsParams tsmStatsParams;
2664} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
2665
2666
2667/*---------------------------------------------------------------------------
2668 * WLAN_HAL_TSM_STATS_RSP
2669 *--------------------------------------------------------------------------*/
2670typedef PACKED_PRE struct PACKED_POST
2671{
2672 /*success or failure */
2673 tANI_U32 status;
2674
2675 /* Uplink Packet Queue delay */
2676 tANI_U16 UplinkPktQueueDly;
2677
2678 /* Uplink Packet Queue delay histogram */
2679 tANI_U16 UplinkPktQueueDlyHist[4];
2680
2681 /* Uplink Packet Transmit delay */
2682 tANI_U32 UplinkPktTxDly;
2683
2684 /* Uplink Packet loss */
2685 tANI_U16 UplinkPktLoss;
2686
2687 /* Uplink Packet count */
2688 tANI_U16 UplinkPktCount;
2689
2690 /* Roaming count */
2691 tANI_U8 RoamingCount;
2692
2693 /* Roaming Delay */
2694 tANI_U16 RoamingDly;
2695} tTsmStatsRspParams, *tpTsmStatsRspParams;
2696
2697typedef PACKED_PRE struct PACKED_POST
2698{
2699 tHalMsgHeader header;
2700 tTsmStatsRspParams tsmStatsRspParams;
2701} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
2702
2703
2704#endif
2705
2706/*---------------------------------------------------------------------------
2707 * WLAN_HAL_SET_KEYDONE_MSG
2708 *--------------------------------------------------------------------------*/
2709
2710typedef PACKED_PRE struct PACKED_POST
2711{
2712 /*bssid of the keys */
2713 tANI_U8 bssidx;
2714 tANI_U8 encType;
2715} tSetKeyDoneParams, *tpSetKeyDoneParams;
2716
2717typedef PACKED_PRE struct PACKED_POST
2718{
2719 tHalMsgHeader header;
2720 tSetKeyDoneParams setKeyDoneParams;
2721} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
2722
2723/*---------------------------------------------------------------------------
2724 * WLAN_HAL_DOWNLOAD_NV_REQ
2725 *--------------------------------------------------------------------------*/
2726typedef PACKED_PRE struct PACKED_POST
2727{
2728 /* Fragment sequence number of the NV Image. Note that NV Image might not
2729 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
2730 * can hence choose to chop the NV blob into multiple fragments starting with
2731 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
2732 * marking the isLastFragment field to 1. Note that all the NV blobs would be
2733 * concatenated together by HAL without any padding bytes in between.*/
2734 tANI_U16 fragNumber;
2735
2736 /* Is this the last fragment? When set to 1 it indicates that no more fragments
2737 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
2738 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
2739 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
2740 tANI_U16 isLastFragment;
2741
2742 /* NV Image size (number of bytes) */
2743 tANI_U32 nvImgBufferSize;
2744
2745 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
2746 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
2747} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
2748
2749typedef PACKED_PRE struct PACKED_POST
2750{
2751 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
2752 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
2753 tHalMsgHeader header;
2754 tHalNvImgDownloadReqParams nvImageReqParams;
2755} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
2756
2757/*---------------------------------------------------------------------------
2758 * WLAN_HAL_DOWNLOAD_NV_RSP
2759 *--------------------------------------------------------------------------*/
2760typedef PACKED_PRE struct PACKED_POST
2761{
2762 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
2763 * after each fragment */
2764 tANI_U32 status;
2765} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
2766
2767typedef PACKED_PRE struct PACKED_POST
2768{
2769 tHalMsgHeader header;
2770 tHalNvImgDownloadRspParams nvImageRspParams;
2771} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
2772
2773/*---------------------------------------------------------------------------
2774 * WLAN_HAL_STORE_NV_IND
2775 *--------------------------------------------------------------------------*/
2776typedef PACKED_PRE struct PACKED_POST
2777{
2778 /* NV Item */
2779 eNvTable tableID;
2780
2781 /* Size of NV Blob */
2782 tANI_U32 nvBlobSize;
2783
2784 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
2785 * NV blob i.e. uint8[nvBlobSize] */
2786} tHalNvStoreParams, *tpHalNvStoreParams;
2787
2788typedef PACKED_PRE struct PACKED_POST
2789{
2790 /* Note: The length specified in tHalNvStoreInd messages should be
2791 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
2792 tHalMsgHeader header;
2793 tHalNvStoreParams nvStoreParams;
2794} tHalNvStoreInd, *tpHalNvStoreInd;
2795
2796/* End of Block Ack Related Parameters */
2797
2798/*---------------------------------------------------------------------------
2799 * WLAN_HAL_MIC_FAILURE_IND
2800 *--------------------------------------------------------------------------*/
2801
2802#define SIR_CIPHER_SEQ_CTR_SIZE 6
2803
2804typedef PACKED_PRE struct PACKED_POST
2805{
2806 tSirMacAddr srcMacAddr; //address used to compute MIC
2807 tSirMacAddr taMacAddr; //transmitter address
2808 tSirMacAddr dstMacAddr;
2809 tANI_U8 multicast;
2810 tANI_U8 IV1; // first byte of IV
2811 tANI_U8 keyId; // second byte of IV
2812 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
2813 tSirMacAddr rxMacAddr; // receive address
2814} tSirMicFailureInfo, *tpSirMicFailureInfo;
2815
2816/* Definition for MIC failure indication
2817 MAC reports this each time a MIC failure occures on Rx TKIP packet
2818 */
2819typedef PACKED_PRE struct PACKED_POST
2820{
2821 tSirMacAddr bssId; // BSSID
2822 tSirMicFailureInfo info;
2823} tSirMicFailureInd, *tpSirMicFailureInd;
2824
2825typedef PACKED_PRE struct PACKED_POST
2826{
2827 tHalMsgHeader header;
2828 tSirMicFailureInd micFailureInd;
2829} tMicFailureIndMsg, *tpMicFailureIndMsg;
2830
2831/*---------------------------------------------------------------------------
2832 * WLAN_HAL_UPDATE_BEACON_REQ
2833 *--------------------------------------------------------------------------*/
2834typedef PACKED_PRE struct PACKED_POST
2835{
2836
2837 tANI_U8 bssIdx;
2838
2839 //shortPreamble mode. HAL should update all the STA rates when it
2840 //receives this message
2841 tANI_U8 fShortPreamble;
2842 //short Slot time.
2843 tANI_U8 fShortSlotTime;
2844 //Beacon Interval
2845 tANI_U16 beaconInterval;
2846 //Protection related
2847 tANI_U8 llaCoexist;
2848 tANI_U8 llbCoexist;
2849 tANI_U8 llgCoexist;
2850 tANI_U8 ht20MhzCoexist;
2851 tANI_U8 llnNonGFCoexist;
2852 tANI_U8 fLsigTXOPProtectionFullSupport;
2853 tANI_U8 fRIFSMode;
2854
2855 tANI_U16 paramChangeBitmap;
2856}tUpdateBeaconParams, *tpUpdateBeaconParams;
2857
2858
2859typedef PACKED_PRE struct PACKED_POST
2860{
2861 tHalMsgHeader header;
2862 tUpdateBeaconParams updateBeaconParam;
2863} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
2864
2865/*---------------------------------------------------------------------------
2866 * WLAN_HAL_UPDATE_BEACON_RSP
2867 *--------------------------------------------------------------------------*/
2868typedef PACKED_PRE struct PACKED_POST
2869{
2870 tANI_U32 status;
2871} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
2872
2873typedef PACKED_PRE struct PACKED_POST
2874{
2875 tHalMsgHeader header;
2876 tUpdateBeaconRspParams updateBeaconRspParam;
2877} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
2878
2879/*---------------------------------------------------------------------------
2880 * WLAN_HAL_SEND_BEACON_REQ
2881 *--------------------------------------------------------------------------*/
2882typedef PACKED_PRE struct PACKED_POST
2883{
2884 tANI_U32 beaconLength; //length of the template.
2885 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
2886 tSirMacAddr bssId;
2887#ifdef WLAN_SOFTAP_FEATURE
2888 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
2889#endif
2890 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
2891}tSendBeaconParams, *tpSendBeaconParams;
2892
2893
2894typedef PACKED_PRE struct PACKED_POST
2895{
2896 tHalMsgHeader header;
2897 tSendBeaconParams sendBeaconParam;
2898}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
2899
2900/*---------------------------------------------------------------------------
2901 * WLAN_HAL_SEND_BEACON_RSP
2902 *--------------------------------------------------------------------------*/
2903typedef PACKED_PRE struct PACKED_POST
2904{
2905 tANI_U32 status;
2906} tSendBeaconRspParams, *tpSendBeaconRspParams;
2907
2908typedef PACKED_PRE struct PACKED_POST
2909{
2910 tHalMsgHeader header;
2911 tSendBeaconRspParams sendBeaconRspParam;
2912} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
2913
2914#ifdef FEATURE_5GHZ_BAND
2915
2916/*---------------------------------------------------------------------------
2917 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
2918 *--------------------------------------------------------------------------*/
2919typedef PACKED_PRE struct PACKED_POST
2920{
2921 tSirMacAddr BSSID;
2922 tANI_U8 channel;
2923}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
2924
2925
2926typedef PACKED_PRE struct PACKED_POST
2927{
2928 /* Link Parameters */
2929 tSirEnableRadarInfoType EnableRadarInfo;
2930}tEnableRadarReqParams, *tpEnableRadarReqParams;
2931
2932typedef PACKED_PRE struct PACKED_POST
2933{
2934 tHalMsgHeader header;
2935 tEnableRadarReqParams enableRadarReqParams;
2936}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
2937
2938/*---------------------------------------------------------------------------
2939 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
2940 *--------------------------------------------------------------------------*/
2941
2942typedef PACKED_PRE struct PACKED_POST
2943{
2944 /* Link Parameters */
2945 tSirMacAddr BSSID;
2946 /* success or failure */
2947 tANI_U32 status;
2948}tEnableRadarRspParams, *tpEnableRadarRspParams;
2949
2950typedef PACKED_PRE struct PACKED_POST
2951{
2952 tHalMsgHeader header;
2953 tEnableRadarRspParams enableRadarRspParams;
2954}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
2955
2956/*---------------------------------------------------------------------------
2957 *WLAN_HAL_RADAR_DETECT_INTR_IND
2958 *--------------------------------------------------------------------------*/
2959
2960typedef PACKED_PRE struct PACKED_POST
2961{
2962 tANI_U8 radarDetChannel;
2963}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
2964
2965typedef PACKED_PRE struct PACKED_POST
2966{
2967 tHalMsgHeader header;
2968 tRadarDetectIntrIndParams radarDetectIntrIndParams;
2969}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
2970
2971/*---------------------------------------------------------------------------
2972 *WLAN_HAL_RADAR_DETECT_IND
2973 *-------------------------------------------------------------------------*/
2974typedef PACKED_PRE struct PACKED_POST
2975{
2976 /*channel number in which the RADAR detected*/
2977 tANI_U8 channelNumber;
2978
2979 /*RADAR pulse width*/
2980 tANI_U16 radarPulseWidth; // in usecond
2981
2982 /*Number of RADAR pulses */
2983 tANI_U16 numRadarPulse;
2984}tRadarDetectIndParams,*tpRadarDetectIndParams;
2985
2986typedef PACKED_PRE struct PACKED_POST
2987{
2988 tHalMsgHeader header;
2989 tRadarDetectIndParams radarDetectIndParams;
2990}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
2991
2992
2993/*---------------------------------------------------------------------------
2994 *WLAN_HAL_GET_TPC_REPORT_REQ
2995 *-------------------------------------------------------------------------*/
2996typedef PACKED_PRE struct PACKED_POST
2997{
2998 tSirMacAddr sta;
2999 tANI_U8 dialogToken;
3000 tANI_U8 txpower;
3001}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3002
3003
3004typedef PACKED_PRE struct PACKED_POST
3005{
3006 tHalMsgHeader header;
3007 tSirGetTpcReportReqParams getTpcReportReqParams;
3008}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3009
3010/*---------------------------------------------------------------------------
3011 * WLAN_HAL_GET_TPC_REPORT_RSP
3012 *--------------------------------------------------------------------------*/
3013
3014typedef PACKED_PRE struct PACKED_POST
3015{
3016 /* success or failure */
3017 tANI_U32 status;
3018}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3019
3020typedef PACKED_PRE struct PACKED_POST
3021{
3022 tHalMsgHeader header;
3023 tSirGetTpcReportRspParams getTpcReportRspParams;
3024}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3025
3026#endif
3027
3028#ifdef WLAN_SOFTAP_FEATURE
3029/*---------------------------------------------------------------------------
3030 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3031 *-------------------------------------------------------------------------*/
3032typedef PACKED_PRE struct PACKED_POST
3033{
3034 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3035 tANI_U32 probeRespTemplateLen;
3036 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3037 tSirMacAddr bssId;
3038
3039}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3040
3041typedef PACKED_PRE struct PACKED_POST
3042{
3043 tHalMsgHeader header;
3044 tSendProbeRespReqParams sendProbeRespReqParams ;
3045}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3046
3047/*---------------------------------------------------------------------------
3048 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
3049 *--------------------------------------------------------------------------*/
3050
3051typedef PACKED_PRE struct PACKED_POST
3052{
3053 /* success or failure */
3054 tANI_U32 status;
3055}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3056
3057typedef PACKED_PRE struct PACKED_POST
3058{
3059 tHalMsgHeader header;
3060 tSendProbeRespRspParams sendProbeRespRspParams;
3061}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3062
3063
3064/*---------------------------------------------------------------------------
3065 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
3066 *--------------------------------------------------------------------------*/
3067
3068typedef PACKED_PRE struct PACKED_POST
3069{
3070 /* success or failure */
3071 tANI_U32 status;
3072}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3073
3074typedef PACKED_PRE struct PACKED_POST
3075{
3076 tHalMsgHeader header;
3077 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3078}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3079
3080/*---------------------------------------------------------------------------
3081 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3082 *--------------------------------------------------------------------------*/
3083
3084typedef PACKED_PRE struct PACKED_POST
3085{
3086 tANI_U16 assocId;
3087 tANI_U16 staId;
3088 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3089 // HAL copies bssid from the sta table.
3090#ifdef WLAN_SOFTAP_FEATURE
3091 tSirMacAddr addr2; //
3092 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
3093#endif
3094
3095}tDeleteStaContextParams, *tpDeleteStaContextParams;
3096
3097
3098typedef PACKED_PRE struct PACKED_POST
3099{
3100 tHalMsgHeader header;
3101 tDeleteStaContextParams deleteStaContextParams;
3102}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3103
3104#endif
3105
3106/*---------------------------------------------------------------------------
3107 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3108 *--------------------------------------------------------------------------*/
3109
3110typedef PACKED_PRE struct PACKED_POST
3111{
3112 tBtAmpEventType btAmpEventType;
3113
3114}tBtAmpEventParams, *tpBtAmpEventParams;
3115
3116
3117
3118typedef PACKED_PRE struct PACKED_POST
3119{
3120 tHalMsgHeader header;
3121 tBtAmpEventParams btAmpEventParams;
3122}tBtAmpEventMsg, *tpBtAmpEventMsg;
3123
3124/*---------------------------------------------------------------------------
3125*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3126*--------------------------------------------------------------------------*/
3127
3128typedef PACKED_PRE struct PACKED_POST
3129{
3130 /* success or failure */
3131 tANI_U32 status;
3132}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3133
3134typedef PACKED_PRE struct PACKED_POST
3135{
3136 tHalMsgHeader header;
3137 tBtAmpEventRspParams btAmpEventRspParams;
3138}tBtAmpEventRsp, *tpBtAmpEventRsp;
3139
3140
3141/*---------------------------------------------------------------------------
3142 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3143 *--------------------------------------------------------------------------*/
3144
3145typedef PACKED_PRE struct PACKED_POST
3146{
3147 // Station Index. originates from HAL
3148 tANI_U8 ucSTAId;
3149
3150 // TID for which the transmit queue is being flushed
3151 tANI_U8 ucTid;
3152
3153}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3154
3155
3156typedef PACKED_PRE struct PACKED_POST
3157{
3158 tHalMsgHeader header;
3159 tTlHalFlushAcParams tlHalFlushAcParam;
3160}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3161
3162/*---------------------------------------------------------------------------
3163*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3164*--------------------------------------------------------------------------*/
3165
3166typedef PACKED_PRE struct PACKED_POST
3167{
3168 // Station Index. originates from HAL
3169 tANI_U8 ucSTAId;
3170
3171 // TID for which the transmit queue is being flushed
3172 tANI_U8 ucTid;
3173
3174 /* success or failure */
3175 tANI_U32 status;
3176}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3177
3178typedef PACKED_PRE struct PACKED_POST
3179{
3180 tHalMsgHeader header;
3181 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3182}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3183
3184/*---------------------------------------------------------------------------
3185 * WLAN_HAL_ENTER_IMPS_REQ
3186 *--------------------------------------------------------------------------*/
3187typedef PACKED_PRE struct PACKED_POST
3188{
3189 tHalMsgHeader header;
3190} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3191
3192/*---------------------------------------------------------------------------
3193 * WLAN_HAL_EXIT_IMPS_REQ
3194 *--------------------------------------------------------------------------*/
3195typedef PACKED_PRE struct PACKED_POST
3196{
3197 tHalMsgHeader header;
3198} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3199
3200/*---------------------------------------------------------------------------
3201 * WLAN_HAL_ENTER_BMPS_REQ
3202 *--------------------------------------------------------------------------*/
3203
3204typedef PACKED_PRE struct PACKED_POST
3205{
3206 tANI_U8 bssIdx;
3207 //TBTT value derived from the last beacon
3208#ifndef BUILD_QWPTTSTATIC
3209 tANI_U64 tbtt;
3210#endif
3211 tANI_U8 dtimCount;
3212 //DTIM period given to HAL during association may not be valid,
3213 //if association is based on ProbeRsp instead of beacon.
3214 tANI_U8 dtimPeriod;
3215
3216 // For CCX and 11R Roaming
3217 tANI_U32 rssiFilterPeriod;
3218 tANI_U32 numBeaconPerRssiAverage;
3219 tANI_U8 bRssiFilterEnable;
3220
3221} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3222
3223
3224typedef PACKED_PRE struct PACKED_POST
3225{
3226 tHalMsgHeader header;
3227 tHalEnterBmpsReqParams enterBmpsReq;
3228} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3229
3230/*---------------------------------------------------------------------------
3231 * WLAN_HAL_EXIT_BMPS_REQ
3232 *--------------------------------------------------------------------------*/
3233typedef PACKED_PRE struct PACKED_POST
3234{
3235 tANI_U8 sendDataNull;
3236} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3237
3238typedef PACKED_PRE struct PACKED_POST
3239{
3240 tHalMsgHeader header;
3241 tHalExitBmpsReqParams exitBmpsReqParams;
3242} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3243
3244/*---------------------------------------------------------------------------
3245 * WLAN_HAL_ADD_BCN_FILTER_REQ
3246 *--------------------------------------------------------------------------*/
3247/* Beacon Filtering data structures */
3248typedef PACKED_PRE struct PACKED_POST
3249{
3250 tANI_U8 offset;
3251 tANI_U8 value;
3252 tANI_U8 bitMask;
3253 tANI_U8 ref;
3254} tEidByteInfo, *tpEidByteInfo;
3255
3256typedef PACKED_PRE struct PACKED_POST
3257{
3258 tANI_U16 capabilityInfo;
3259 tANI_U16 capabilityMask;
3260 tANI_U16 beaconInterval;
3261 tANI_U16 ieNum;
3262} tBeaconFilterMsg, *tpBeaconFilterMsg;
3263
3264/* The above structure would be followed by multiple of below mentioned structure */
3265typedef PACKED_PRE struct PACKED_POST
3266{
3267 tANI_U8 elementId;
3268 tANI_U8 checkIePresence;
3269 tEidByteInfo byte;
3270} tBeaconFilterIe, *tpBeaconFilterIe;
3271
3272typedef PACKED_PRE struct PACKED_POST
3273{
3274 tHalMsgHeader header;
3275 tBeaconFilterMsg addBcnFilterParams;
3276} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3277
3278/*---------------------------------------------------------------------------
3279 * WLAN_HAL_REM_BCN_FILTER_REQ
3280 *--------------------------------------------------------------------------*/
3281typedef PACKED_PRE struct PACKED_POST
3282{
3283 tANI_U8 ucIeCount;
3284 tANI_U8 ucRemIeId[1];
3285} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3286
3287typedef PACKED_PRE struct PACKED_POST
3288{
3289 tHalMsgHeader header;
3290 tRemBeaconFilterMsg remBcnFilterParams;
3291} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3292
3293/*---------------------------------------------------------------------------
3294 * WLAN_HAL_HOST_OFFLOAD_REQ
3295 *--------------------------------------------------------------------------*/
3296#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3297#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3298#define HAL_IPV6_NS_OFFLOAD 2
3299#define HAL_IPV6_ADDR_LEN 16
3300#define HAL_MAC_ADDR_LEN 6
3301#define HAL_OFFLOAD_DISABLE 0
3302#define HAL_OFFLOAD_ENABLE 1
3303#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
3304#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
3305
3306typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3307{
3308 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3309 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3310 //Only support 2 possible Network Advertisement IPv6 address
3311 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3312 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3313 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3314 tANI_U8 srcIPv6AddrValid : 1;
3315 tANI_U8 targetIPv6Addr1Valid : 1;
3316 tANI_U8 targetIPv6Addr2Valid : 1;
3317 tANI_U8 reserved1 : 5;
3318 tANI_U8 reserved2; //make it DWORD aligned
3319} tHalNSOffloadParams;
3320
3321typedef PACKED_PRE struct PACKED_POST
3322{
3323 tANI_U8 offloadType;
3324 tANI_U8 enableOrDisable;
3325 PACKED_PRE union PACKED_POST
3326 {
3327 tANI_U8 hostIpv4Addr [4];
3328 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3329 } params;
3330} tHalHostOffloadReq, *tpHalHostOffloadReq;
3331
3332typedef PACKED_PRE struct PACKED_POST
3333{
3334 tHalMsgHeader header;
3335 tHalHostOffloadReq hostOffloadParams;
3336 tHalNSOffloadParams nsOffloadParams;
3337} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3338
3339/*---------------------------------------------------------------------------
3340 * WLAN_HAL_KEEP_ALIVE_REQ
3341 *--------------------------------------------------------------------------*/
3342/* Packet Types. */
3343#define HAL_KEEP_ALIVE_NULL_PKT 1
3344#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3345
3346/* Enable or disable keep alive */
3347#define HAL_KEEP_ALIVE_DISABLE 0
3348#define HAL_KEEP_ALIVE_ENABLE 1
3349
3350/* Keep Alive request. */
3351typedef PACKED_PRE struct PACKED_POST
3352{
3353 tANI_U8 packetType;
3354 tANI_U32 timePeriod;
3355 tHalIpv4Addr hostIpv4Addr;
3356 tHalIpv4Addr destIpv4Addr;
3357 tSirMacAddr destMacAddr;
3358} tHalKeepAliveReq, *tpHalKeepAliveReq;
3359
3360typedef PACKED_PRE struct PACKED_POST
3361{
3362 tHalMsgHeader header;
3363 tHalKeepAliveReq KeepAliveParams;
3364} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3365
3366/*---------------------------------------------------------------------------
3367 * WLAN_HAL_SET_RSSI_THRESH_REQ
3368 *--------------------------------------------------------------------------*/
3369typedef PACKED_PRE struct PACKED_POST
3370{
3371 tANI_S8 ucRssiThreshold1 : 8;
3372 tANI_S8 ucRssiThreshold2 : 8;
3373 tANI_S8 ucRssiThreshold3 : 8;
3374 tANI_U8 bRssiThres1PosNotify : 1;
3375 tANI_U8 bRssiThres1NegNotify : 1;
3376 tANI_U8 bRssiThres2PosNotify : 1;
3377 tANI_U8 bRssiThres2NegNotify : 1;
3378 tANI_U8 bRssiThres3PosNotify : 1;
3379 tANI_U8 bRssiThres3NegNotify : 1;
3380 tANI_U8 bReserved10 : 2;
3381} tHalRSSIThresholds, *tpHalRSSIThresholds;
3382
3383typedef PACKED_PRE struct PACKED_POST
3384{
3385 tHalMsgHeader header;
3386 tHalRSSIThresholds rssiThreshParams;
3387} tHalRSSIThresholdsReqMsg, *tpHalRSSIThresholdReqMsg;
3388
3389/*---------------------------------------------------------------------------
3390 * WLAN_HAL_ENTER_UAPSD_REQ
3391 *--------------------------------------------------------------------------*/
3392typedef PACKED_PRE struct PACKED_POST
3393{
3394 tANI_U8 bkDeliveryEnabled:1;
3395 tANI_U8 beDeliveryEnabled:1;
3396 tANI_U8 viDeliveryEnabled:1;
3397 tANI_U8 voDeliveryEnabled:1;
3398 tANI_U8 bkTriggerEnabled:1;
3399 tANI_U8 beTriggerEnabled:1;
3400 tANI_U8 viTriggerEnabled:1;
3401 tANI_U8 voTriggerEnabled:1;
3402} tUapsdReqParams, *tpUapsdReqParams;
3403
3404typedef PACKED_PRE struct PACKED_POST
3405{
3406 tHalMsgHeader header;
3407 tUapsdReqParams enterUapsdParams;
3408} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3409
3410/*---------------------------------------------------------------------------
3411 * WLAN_HAL_EXIT_UAPSD_REQ
3412 *--------------------------------------------------------------------------*/
3413typedef PACKED_PRE struct PACKED_POST
3414{
3415 tHalMsgHeader header;
3416} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3417
3418/*---------------------------------------------------------------------------
3419 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3420 *--------------------------------------------------------------------------*/
3421#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3422#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3423
3424typedef PACKED_PRE struct PACKED_POST
3425{
3426 tANI_U8 ucPatternId; // Pattern ID
3427 // Pattern byte offset from beginning of the 802.11 packet to start of the
3428 // wake-up pattern
3429 tANI_U8 ucPatternByteOffset;
3430 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3431 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3432 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3433 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3434 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3435 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
3436} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3437
3438typedef PACKED_PRE struct PACKED_POST
3439{
3440 tHalMsgHeader header;
3441 tHalWowlAddBcastPtrn ptrnParams;
3442} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
3443
3444/*---------------------------------------------------------------------------
3445 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3446 *--------------------------------------------------------------------------*/
3447typedef PACKED_PRE struct PACKED_POST
3448{
3449 /* Pattern ID of the wakeup pattern to be deleted */
3450 tANI_U8 ucPatternId;
3451} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3452
3453typedef PACKED_PRE struct PACKED_POST
3454{
3455 tHalMsgHeader header;
3456 tHalWowlDelBcastPtrn ptrnParams;
3457} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3458
3459/*---------------------------------------------------------------------------
3460 * WLAN_HAL_ENTER_WOWL_REQ
3461 *--------------------------------------------------------------------------*/
3462typedef PACKED_PRE struct PACKED_POST
3463{
3464 /* Enables/disables magic packet filtering */
3465 tANI_U8 ucMagicPktEnable;
3466
3467 /* Magic pattern */
3468 tSirMacAddr magicPtrn;
3469
3470 /* Enables/disables packet pattern filtering in firmware.
3471 Enabling this flag enables broadcast pattern matching
3472 in Firmware. If unicast pattern matching is also desired,
3473 ucUcastPatternFilteringEnable flag must be set tot true
3474 as well
3475 */
3476 tANI_U8 ucPatternFilteringEnable;
3477
3478 /* Enables/disables unicast packet pattern filtering.
3479 This flag specifies whether we want to do pattern match
3480 on unicast packets as well and not just broadcast packets.
3481 This flag has no effect if the ucPatternFilteringEnable
3482 (main controlling flag) is set to false
3483 */
3484 tANI_U8 ucUcastPatternFilteringEnable;
3485
3486 /* This configuration is valid only when magicPktEnable=1.
3487 * It requests hardware to wake up when it receives the
3488 * Channel Switch Action Frame.
3489 */
3490 tANI_U8 ucWowChnlSwitchRcv;
3491
3492 /* This configuration is valid only when magicPktEnable=1.
3493 * It requests hardware to wake up when it receives the
3494 * Deauthentication Frame.
3495 */
3496 tANI_U8 ucWowDeauthRcv;
3497
3498 /* This configuration is valid only when magicPktEnable=1.
3499 * It requests hardware to wake up when it receives the
3500 * Disassociation Frame.
3501 */
3502 tANI_U8 ucWowDisassocRcv;
3503
3504 /* This configuration is valid only when magicPktEnable=1.
3505 * It requests hardware to wake up when it has missed
3506 * consecutive beacons. This is a hardware register
3507 * configuration (NOT a firmware configuration).
3508 */
3509 tANI_U8 ucWowMaxMissedBeacons;
3510
3511 /* This configuration is valid only when magicPktEnable=1.
3512 * This is a timeout value in units of microsec. It requests
3513 * hardware to unconditionally wake up after it has stayed
3514 * in WoWLAN mode for some time. Set 0 to disable this feature.
3515 */
3516 tANI_U8 ucWowMaxSleepUsec;
3517
3518 /* This configuration directs the WoW packet filtering to look for EAP-ID
3519 * requests embedded in EAPOL frames and use this as a wake source.
3520 */
3521 tANI_U8 ucWoWEAPIDRequestEnable;
3522
3523 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3524 * requests and use this as a wake source.
3525 */
3526 tANI_U8 ucWoWEAPOL4WayEnable;
3527
3528 /* This configuration allows a host wakeup on an network scan offload match.
3529 */
3530 tANI_U8 ucWowNetScanOffloadMatch;
3531
3532 /* This configuration allows a host wakeup on any GTK rekeying error.
3533 */
3534 tANI_U8 ucWowGTKRekeyError;
3535
3536 /* This configuration allows a host wakeup on BSS connection loss.
3537 */
3538 tANI_U8 ucWoWBSSConnLoss;
3539
3540} tHalWowlEnterParams, *tpHalWowlEnterParams;
3541
3542typedef PACKED_PRE struct PACKED_POST
3543{
3544 tHalMsgHeader header;
3545 tHalWowlEnterParams enterWowlParams;
3546} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
3547
3548/*---------------------------------------------------------------------------
3549 * WLAN_HAL_EXIT_WOWL_REQ
3550 *--------------------------------------------------------------------------*/
3551typedef PACKED_PRE struct PACKED_POST
3552{
3553 tHalMsgHeader header;
3554} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
3555
3556/*---------------------------------------------------------------------------
3557 * WLAN_HAL_GET_RSSI_REQ
3558 *--------------------------------------------------------------------------*/
3559typedef PACKED_PRE struct PACKED_POST
3560{
3561 tHalMsgHeader header;
3562} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
3563
3564/*---------------------------------------------------------------------------
3565 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
3566 *--------------------------------------------------------------------------*/
3567typedef PACKED_PRE struct PACKED_POST {
3568 tANI_U8 staidx; // STA index
3569 tANI_U8 ac; // Access Category
3570 tANI_U8 up; // User Priority
3571 tANI_U32 srvInterval; // Service Interval
3572 tANI_U32 susInterval; // Suspend Interval
3573 tANI_U32 delayInterval; // Delay Interval
3574} tUapsdInfo, tpUapsdInfo;
3575
3576typedef PACKED_PRE struct PACKED_POST
3577{
3578 tHalMsgHeader header;
3579 tUapsdInfo enableUapsdAcParams;
3580} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
3581
3582/*---------------------------------------------------------------------------
3583 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
3584 *--------------------------------------------------------------------------*/
3585typedef PACKED_PRE struct PACKED_POST {
3586 tANI_U8 setMcstBcstFilterSetting;
3587 tANI_U8 setMcstBcstFilter;
3588} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
3589
3590typedef PACKED_PRE struct PACKED_POST
3591{
3592 tHalMsgHeader header;
3593 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
3594} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
3595
3596/*---------------------------------------------------------------------------
3597 * WLAN_HAL_ENTER_IMPS_RSP
3598 *--------------------------------------------------------------------------*/
3599typedef PACKED_PRE struct PACKED_POST
3600{
3601 /* success or failure */
3602 tANI_U32 status;
3603} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
3604
3605typedef PACKED_PRE struct PACKED_POST
3606{
3607 tHalMsgHeader header;
3608 tHalEnterImpsRspParams enterImpsRspParams;
3609} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
3610
3611/*---------------------------------------------------------------------------
3612 * WLAN_HAL_EXIT_IMPS_RSP
3613 *--------------------------------------------------------------------------*/
3614typedef PACKED_PRE struct PACKED_POST
3615{
3616 /* success or failure */
3617 tANI_U32 status;
3618} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
3619
3620typedef PACKED_PRE struct PACKED_POST
3621{
3622 tHalMsgHeader header;
3623 tHalExitImpsRspParams exitImpsRspParams;
3624} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
3625
3626/*---------------------------------------------------------------------------
3627 * WLAN_HAL_ENTER_BMPS_RSP
3628 *--------------------------------------------------------------------------*/
3629typedef PACKED_PRE struct PACKED_POST
3630{
3631 /* success or failure */
3632 tANI_U32 status;
3633} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
3634
3635typedef PACKED_PRE struct PACKED_POST
3636{
3637 tHalMsgHeader header;
3638 tHalEnterBmpsRspParams enterBmpsRspParams;
3639} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
3640
3641/*---------------------------------------------------------------------------
3642 * WLAN_HAL_EXIT_BMPS_RSP
3643 *--------------------------------------------------------------------------*/
3644typedef PACKED_PRE struct PACKED_POST
3645{
3646 /* success or failure */
3647 tANI_U32 status;
3648} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
3649
3650typedef PACKED_PRE struct PACKED_POST
3651{
3652 tHalMsgHeader header;
3653 tHalExitBmpsRspParams exitBmpsRspParams;
3654} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
3655
3656/*---------------------------------------------------------------------------
3657 * WLAN_HAL_ENTER_UAPSD_RSP
3658 *--------------------------------------------------------------------------*/
3659typedef PACKED_PRE struct PACKED_POST
3660{
3661 /* success or failure */
3662 tANI_U32 status;
3663}tUapsdRspParams, *tpUapsdRspParams;
3664
3665typedef PACKED_PRE struct PACKED_POST
3666{
3667 tHalMsgHeader header;
3668 tUapsdRspParams enterUapsdRspParams;
3669} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
3670
3671/*---------------------------------------------------------------------------
3672 * WLAN_HAL_EXIT_UAPSD_RSP
3673 *--------------------------------------------------------------------------*/
3674typedef PACKED_PRE struct PACKED_POST
3675{
3676 /* success or failure */
3677 tANI_U32 status;
3678} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
3679
3680typedef PACKED_PRE struct PACKED_POST
3681{
3682 tHalMsgHeader header;
3683 tHalExitUapsdRspParams exitUapsdRspParams;
3684} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
3685
3686/*---------------------------------------------------------------------------
3687 * WLAN_HAL_RSSI_NOTIFICATION_IND
3688 *--------------------------------------------------------------------------*/
3689typedef PACKED_PRE struct PACKED_POST
3690{
3691 tANI_U32 bRssiThres1PosCross : 1;
3692 tANI_U32 bRssiThres1NegCross : 1;
3693 tANI_U32 bRssiThres2PosCross : 1;
3694 tANI_U32 bRssiThres2NegCross : 1;
3695 tANI_U32 bRssiThres3PosCross : 1;
3696 tANI_U32 bRssiThres3NegCross : 1;
3697 tANI_U32 bReserved : 26;
3698} tHalRSSINotification, *tpHalRSSINotification;
3699
3700typedef PACKED_PRE struct PACKED_POST
3701{
3702 tHalMsgHeader header;
3703 tHalRSSINotification rssiNotificationParams;
3704} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
3705
3706/*---------------------------------------------------------------------------
3707 * WLAN_HAL_GET_RSSI_RSP
3708 *--------------------------------------------------------------------------*/
3709typedef PACKED_PRE struct PACKED_POST
3710{
3711 /* success or failure */
3712 tANI_U32 status;
3713 tANI_S8 rssi;
3714} tHalGetRssiParams, *tpHalGetRspParams;
3715
3716typedef PACKED_PRE struct PACKED_POST
3717{
3718 tHalMsgHeader header;
3719 tHalGetRssiParams rssiRspParams;
3720} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
3721
3722/*---------------------------------------------------------------------------
3723 * WLAN_HAL_ENTER_WOWL_RSP
3724 *--------------------------------------------------------------------------*/
3725typedef PACKED_PRE struct PACKED_POST
3726{
3727 /* success or failure */
3728 tANI_U32 status;
3729} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
3730
3731typedef PACKED_PRE struct PACKED_POST
3732{
3733 tHalMsgHeader header;
3734 tHalEnterWowlRspParams enterWowlRspParams;
3735} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
3736
3737/*---------------------------------------------------------------------------
3738 * WLAN_HAL_EXIT_WOWL_RSP
3739 *--------------------------------------------------------------------------*/
3740typedef PACKED_PRE struct PACKED_POST
3741{
3742 /* success or failure */
3743 tANI_U32 status;
3744} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
3745
3746typedef PACKED_PRE struct PACKED_POST
3747{
3748 tHalMsgHeader header;
3749 tHalExitWowlRspParams exitWowlRspParams;
3750} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
3751
3752/*---------------------------------------------------------------------------
3753 * WLAN_HAL_ADD_BCN_FILTER_RSP
3754 *--------------------------------------------------------------------------*/
3755typedef PACKED_PRE struct PACKED_POST
3756{
3757 /* success or failure */
3758 tANI_U32 status;
3759} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
3760
3761typedef PACKED_PRE struct PACKED_POST
3762{
3763 tHalMsgHeader header;
3764 tHalAddBcnFilterRspParams addBcnFilterRspParams;
3765} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
3766
3767/*---------------------------------------------------------------------------
3768 * WLAN_HAL_REM_BCN_FILTER_RSP
3769 *--------------------------------------------------------------------------*/
3770typedef PACKED_PRE struct PACKED_POST
3771{
3772 /* success or failure */
3773 tANI_U32 status;
3774} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
3775
3776typedef PACKED_PRE struct PACKED_POST
3777{
3778 tHalMsgHeader header;
3779 tHalRemBcnFilterRspParams remBcnFilterRspParams;
3780} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
3781
3782/*---------------------------------------------------------------------------
3783 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
3784 *--------------------------------------------------------------------------*/
3785typedef PACKED_PRE struct PACKED_POST
3786{
3787 /* success or failure */
3788 tANI_U32 status;
3789} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
3790
3791typedef PACKED_PRE struct PACKED_POST
3792{
3793 tHalMsgHeader header;
3794 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
3795} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
3796
3797/*---------------------------------------------------------------------------
3798 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
3799 *--------------------------------------------------------------------------*/
3800typedef PACKED_PRE struct PACKED_POST
3801{
3802 /* success or failure */
3803 tANI_U32 status;
3804} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
3805
3806typedef PACKED_PRE struct PACKED_POST
3807{
3808 tHalMsgHeader header;
3809 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
3810} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
3811
3812/*---------------------------------------------------------------------------
3813 * WLAN_HAL_HOST_OFFLOAD_RSP
3814 *--------------------------------------------------------------------------*/
3815typedef PACKED_PRE struct PACKED_POST
3816{
3817 /* success or failure */
3818 tANI_U32 status;
3819} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
3820
3821typedef PACKED_PRE struct PACKED_POST
3822{
3823 tHalMsgHeader header;
3824 tHalHostOffloadRspParams hostOffloadRspParams;
3825} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
3826
3827/*---------------------------------------------------------------------------
3828 * WLAN_HAL_KEEP_ALIVE_RSP
3829 *--------------------------------------------------------------------------*/
3830typedef PACKED_PRE struct PACKED_POST
3831{
3832 /* success or failure */
3833 tANI_U32 status;
3834} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
3835
3836typedef PACKED_PRE struct PACKED_POST
3837{
3838 tHalMsgHeader header;
3839 tHalKeepAliveRspParams keepAliveRspParams;
3840} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
3841
3842/*---------------------------------------------------------------------------
3843 * WLAN_HAL_SET_RSSI_THRESH_RSP
3844 *--------------------------------------------------------------------------*/
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 /* success or failure */
3848 tANI_U32 status;
3849} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
3850
3851typedef PACKED_PRE struct PACKED_POST
3852{
3853 tHalMsgHeader header;
3854 tHalSetRssiThreshRspParams setRssiThreshRspParams;
3855} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
3856
3857/*---------------------------------------------------------------------------
3858 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
3859 *--------------------------------------------------------------------------*/
3860typedef PACKED_PRE struct PACKED_POST
3861{
3862 /* success or failure */
3863 tANI_U32 status;
3864} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
3865
3866typedef PACKED_PRE struct PACKED_POST
3867{
3868 tHalMsgHeader header;
3869 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
3870} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
3871
3872/*---------------------------------------------------------------------------
3873 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
3874 *--------------------------------------------------------------------------*/
3875typedef PACKED_PRE struct PACKED_POST
3876{
3877 /* success or failure */
3878 tANI_U32 status;
3879} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
3880
3881typedef PACKED_PRE struct PACKED_POST
3882{
3883 tHalMsgHeader header;
3884 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
3885} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
3886
3887/*---------------------------------------------------------------------------
3888 *WLAN_HAL_SET_MAX_TX_POWER_REQ
3889 *--------------------------------------------------------------------------*/
3890
3891typedef PACKED_PRE struct PACKED_POST
3892{
3893 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
3894 //the request has power constraints, this should be applied only to that session
3895 tSirMacAddr selfStaMacAddr;
3896 //In request,
3897 //power == MaxTx power to be used.
3898 tPowerdBm power;
3899
3900}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
3901
3902
3903typedef PACKED_PRE struct PACKED_POST
3904{
3905 tHalMsgHeader header;
3906 tSetMaxTxPwrParams setMaxTxPwrParams;
3907}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
3908
3909/*---------------------------------------------------------------------------
3910*WLAN_HAL_SET_MAX_TX_POWER_RSP
3911*--------------------------------------------------------------------------*/
3912
3913typedef PACKED_PRE struct PACKED_POST
3914{
3915 //power == tx power used for management frames.
3916 tPowerdBm power;
3917
3918 /* success or failure */
3919 tANI_U32 status;
3920}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
3921
3922typedef PACKED_PRE struct PACKED_POST
3923{
3924 tHalMsgHeader header;
3925 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
3926}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
3927
3928/*---------------------------------------------------------------------------
3929 *WLAN_HAL_SET_TX_POWER_REQ
3930 *--------------------------------------------------------------------------*/
3931
3932typedef PACKED_PRE struct PACKED_POST
3933{
3934 /* TX Power in milli watts */
3935 tANI_U32 txPower;
3936}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
3937
3938
3939typedef PACKED_PRE struct PACKED_POST
3940{
3941 tHalMsgHeader header;
3942 tSetTxPwrReqParams setTxPwrReqParams;
3943}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
3944
3945/*---------------------------------------------------------------------------
3946*WLAN_HAL_SET_TX_POWER_RSP
3947*--------------------------------------------------------------------------*/
3948
3949typedef PACKED_PRE struct PACKED_POST
3950{
3951 /* success or failure */
3952 tANI_U32 status;
3953}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
3954
3955typedef PACKED_PRE struct PACKED_POST
3956{
3957 tHalMsgHeader header;
3958 tSetTxPwrRspParams setTxPwrRspParams;
3959}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
3960
3961/*---------------------------------------------------------------------------
3962 *WLAN_HAL_GET_TX_POWER_REQ
3963 *--------------------------------------------------------------------------*/
3964
3965typedef PACKED_PRE struct PACKED_POST
3966{
3967 tANI_U8 staId;
3968}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
3969
3970typedef PACKED_PRE struct PACKED_POST
3971{
3972 tHalMsgHeader header;
3973 tGetTxPwrReqParams getTxPwrReqParams;
3974}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
3975
3976/*---------------------------------------------------------------------------
3977*WLAN_HAL_GET_TX_POWER_RSP
3978*--------------------------------------------------------------------------*/
3979
3980typedef PACKED_PRE struct PACKED_POST
3981{
3982 /* success or failure */
3983 tANI_U32 status;
3984
3985 /* TX Power in milli watts */
3986 tANI_U32 txPower;
3987}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
3988
3989typedef PACKED_PRE struct PACKED_POST
3990{
3991 tHalMsgHeader header;
3992 tGetTxPwrRspParams getTxPwrRspParams;
3993}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
3994
3995#ifdef WLAN_FEATURE_P2P
3996/*---------------------------------------------------------------------------
3997 *WLAN_HAL_SET_P2P_GONOA_REQ
3998 *--------------------------------------------------------------------------*/
3999
4000typedef PACKED_PRE struct PACKED_POST
4001{
4002 tANI_U8 opp_ps;
4003 tANI_U32 ctWindow;
4004 tANI_U8 count;
4005 tANI_U32 duration;
4006 tANI_U32 interval;
4007 tANI_U32 single_noa_duration;
4008 tANI_U8 psSelection;
4009}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4010
4011
4012typedef PACKED_PRE struct PACKED_POST
4013{
4014 tHalMsgHeader header;
4015 tSetP2PGONOAParams setP2PGONOAParams;
4016}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4017
4018/*---------------------------------------------------------------------------
4019*WLAN_HAL_SET_P2P_GONOA_RSP
4020*--------------------------------------------------------------------------*/
4021
4022typedef PACKED_PRE struct PACKED_POST
4023{
4024 /* success or failure */
4025 tANI_U32 status;
4026}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4027
4028typedef PACKED_PRE struct PACKED_POST
4029{
4030 tHalMsgHeader header;
4031 tSetP2PGONOARspParams setP2PGONOARspParams;
4032}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4033#endif
4034
4035/*---------------------------------------------------------------------------
4036 *WLAN_HAL_ADD_SELF_STA_REQ
4037 *--------------------------------------------------------------------------*/
4038
4039typedef PACKED_PRE struct PACKED_POST
4040{
4041 tSirMacAddr selfMacAddr;
4042 tANI_U32 status;
4043}tAddStaSelfParams, *tpAddStaSelfParams;
4044
4045
4046typedef PACKED_PRE struct PACKED_POST
4047{
4048 tHalMsgHeader header;
4049 tAddStaSelfParams addStaSelfParams;
4050}tAddStaSelfReq, *tpAddStaSelfReq;
4051
4052/*---------------------------------------------------------------------------
4053*WLAN_HAL_ADD_SELF_STA_RSP
4054*--------------------------------------------------------------------------*/
4055
4056typedef PACKED_PRE struct PACKED_POST
4057{
4058 /* success or failure */
4059 tANI_U32 status;
4060
4061 /*Self STA Index */
4062 tANI_U8 selfStaIdx;
4063
4064 /* DPU Index (IGTK, PTK, GTK all same) */
4065 tANI_U8 dpuIdx;
4066
4067 /* DPU Signature */
4068 tANI_U8 dpuSignature;
4069
4070}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4071
4072typedef PACKED_PRE struct PACKED_POST
4073{
4074 tHalMsgHeader header;
4075 tAddStaSelfRspParams addStaSelfRspParams;
4076}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4077
4078
4079/*---------------------------------------------------------------------------
4080 WLAN_HAL_DEL_STA_SELF_REQ
4081---------------------------------------------------------------------------*/
4082
4083typedef PACKED_PRE struct PACKED_POST
4084{
4085 tSirMacAddr selfMacAddr;
4086
4087}tDelStaSelfParams, *tpDelStaSelfParams;
4088
4089typedef PACKED_PRE struct PACKED_POST
4090{
4091 tHalMsgHeader header;
4092 tDelStaSelfParams delStaSelfParams;
4093} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4094
4095
4096/*---------------------------------------------------------------------------
4097 WLAN_HAL_DEL_STA_SELF_RSP
4098---------------------------------------------------------------------------*/
4099
4100typedef PACKED_PRE struct PACKED_POST
4101{
4102 /*success or failure */
4103 tANI_U32 status;
4104
4105 tSirMacAddr selfMacAddr;
4106}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4107
4108typedef PACKED_PRE struct PACKED_POST
4109{
4110 tHalMsgHeader header;
4111 tDelStaSelfRspParams delStaSelfRspParams;
4112} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4113
4114
4115#ifdef WLAN_FEATURE_VOWIFI_11R
4116
4117/*---------------------------------------------------------------------------
4118 *WLAN_HAL_AGGR_ADD_TS_REQ
4119 *--------------------------------------------------------------------------*/
4120
4121typedef PACKED_PRE struct PACKED_POST
4122{
4123 /* Station Index */
4124 tANI_U16 staIdx;
4125
4126 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4127 /* This will carry the bitmap with the bit positions representing different AC.s*/
4128 tANI_U16 tspecIdx;
4129
4130 /* Tspec info per AC To program TPE with required parameters */
4131 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4132
4133 /* U-APSD Flags: 1b per AC. Encoded as follows:
4134 b7 b6 b5 b4 b3 b2 b1 b0 =
4135 X X X X BE BK VI VO */
4136 tANI_U8 uAPSD;
4137
4138 /* These parameters are for all the access categories */
4139 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4140 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4141 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4142
4143}tAggrAddTsParams, *tpAggrAddTsParams;
4144
4145
4146typedef PACKED_PRE struct PACKED_POST
4147{
4148 tHalMsgHeader header;
4149 tAggrAddTsParams aggrAddTsParam;
4150}tAggrAddTsReq, *tpAggrAddTsReq;
4151
4152/*---------------------------------------------------------------------------
4153*WLAN_HAL_AGGR_ADD_TS_RSP
4154*--------------------------------------------------------------------------*/
4155
4156typedef PACKED_PRE struct PACKED_POST
4157{
4158 /* success or failure */
4159 tANI_U32 status0;
4160 /* FIXME PRIMA for future use for 11R */
4161 tANI_U32 status1;
4162}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4163
4164typedef PACKED_PRE struct PACKED_POST
4165{
4166 tHalMsgHeader header;
4167 tAggrAddTsRspParams aggrAddTsRspParam;
4168}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4169
4170#endif
4171
4172/*---------------------------------------------------------------------------
4173 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4174 *--------------------------------------------------------------------------*/
4175typedef PACKED_PRE struct PACKED_POST
4176{
4177 tANI_U8 isAppsCpuAwake;
4178} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4179
4180typedef PACKED_PRE struct PACKED_POST
4181{
4182 tHalMsgHeader header;
4183 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4184} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4185
4186/*---------------------------------------------------------------------------
4187 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4188 *--------------------------------------------------------------------------*/
4189typedef PACKED_PRE struct PACKED_POST
4190{
4191 /* success or failure */
4192 tANI_U32 status;
4193} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4194
4195typedef PACKED_PRE struct PACKED_POST
4196{
4197 tHalMsgHeader header;
4198 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4199} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4200/*---------------------------------------------------------------------------
4201 * WLAN_HAL_DUMP_COMMAND_REQ
4202 *--------------------------------------------------------------------------*/
4203
4204typedef PACKED_PRE struct PACKED_POST
4205{
4206 tANI_U32 argument1;
4207 tANI_U32 argument2;
4208 tANI_U32 argument3;
4209 tANI_U32 argument4;
4210 tANI_U32 argument5;
4211
4212}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4213
4214typedef PACKED_PRE struct PACKED_POST
4215{
4216 tHalMsgHeader header;
4217 tHalDumpCmdReqParams dumpCmdReqParams;
4218} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4219
4220/*---------------------------------------------------------------------------
4221 * WLAN_HAL_DUMP_COMMAND_RSP
4222 *--------------------------------------------------------------------------*/
4223
4224typedef PACKED_PRE struct PACKED_POST
4225{
4226 /* success or failure */
4227 tANI_U32 status;
4228 /*Length of the responce message*/
4229 tANI_U32 rspLength;
4230 /*FiXME: Currently considering the the responce will be less than 100bytes */
4231 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
4232
4233} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4234
4235typedef PACKED_PRE struct PACKED_POST
4236{
4237 tHalMsgHeader header;
4238 tHalDumpCmdRspParams dumpCmdRspParams;
4239} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4240
4241/*---------------------------------------------------------------------------
4242 *WLAN_HAL_COEX_IND
4243 *-------------------------------------------------------------------------*/
4244#define WLAN_COEX_IND_DATA_SIZE (4)
4245#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4246#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
4247
4248typedef PACKED_PRE struct PACKED_POST
4249{
4250 /*Coex Indication Type*/
4251 tANI_U32 coexIndType;
4252
4253 /*Coex Indication Data*/
4254 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4255}tCoexIndParams,*tpCoexIndParams;
4256
4257typedef PACKED_PRE struct PACKED_POST
4258{
4259 tHalMsgHeader header;
4260 tCoexIndParams coexIndParams;
4261}tCoexIndMsg, *tpCoexIndMsg;
4262
4263/*---------------------------------------------------------------------------
4264 *WLAN_HAL_OTA_TX_COMPL_IND
4265 *-------------------------------------------------------------------------*/
4266
4267typedef PACKED_PRE struct PACKED_POST
4268{
4269 /*Tx Complete Indication Success or Failure*/
4270 tANI_U32 status;
4271}tTxComplParams,*tpTxComplParams;
4272
4273typedef PACKED_PRE struct PACKED_POST
4274{
4275 tHalMsgHeader header;
4276 tTxComplParams txComplParams;
4277}tTxComplIndMsg, *tpTxComplIndMsg;
4278
4279/*---------------------------------------------------------------------------
4280 * WLAN_HAL_HOST_SUSPEND_IND
4281 *-------------------------------------------------------------------------*/
4282
4283typedef PACKED_PRE struct PACKED_POST
4284{
4285 tANI_U32 configuredMcstBcstFilterSetting;
4286 tANI_U32 activeSessionCount;
4287}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4288
4289typedef PACKED_PRE struct PACKED_POST
4290{
4291 tHalMsgHeader header;
4292 tHalWlanHostSuspendIndParam suspendIndParams;
4293}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4294
4295/*---------------------------------------------------------------------------
4296 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4297 *-------------------------------------------------------------------------*/
4298
4299typedef PACKED_PRE struct PACKED_POST
4300{
4301 tANI_BOOLEAN bDot11ExcludeUnencrypted;
4302 tSirMacAddr bssId;
4303}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4304
4305typedef PACKED_PRE struct PACKED_POST
4306{
4307 tHalMsgHeader header;
4308 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4309}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4310
4311#ifdef WLAN_FEATURE_P2P
4312/*---------------------------------------------------------------------------
4313 *WLAN_HAL_NOA_ATTR_IND
4314 *-------------------------------------------------------------------------*/
4315
4316typedef PACKED_PRE struct PACKED_POST
4317{
4318 tANI_U8 index ;
4319 tANI_U8 oppPsFlag ;
4320 tANI_U16 ctWin ;
4321
4322 tANI_U16 uNoa1IntervalCnt;
4323 tANI_U16 rsvd1 ;
4324 tANI_U32 uNoa1Duration;
4325 tANI_U32 uNoa1Interval;
4326 tANI_U32 uNoa1StartTime;
4327
4328 tANI_U16 uNoa2IntervalCnt;
4329 tANI_U16 rsvd2;
4330 tANI_U32 uNoa2Duration;
4331 tANI_U32 uNoa2Interval;
4332 tANI_U32 uNoa2StartTime;
4333
4334 tANI_U32 status;
4335}tNoaAttrIndParams, *tpNoaAttrIndParams;
4336
4337typedef PACKED_PRE struct PACKED_POST
4338{
4339 tHalMsgHeader header;
4340 tNoaAttrIndParams noaAttrIndParams;
4341}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
4342#endif
4343
4344/*---------------------------------------------------------------------------
4345 * WLAN_HAL_HOST_RESUME_REQ
4346 *-------------------------------------------------------------------------*/
4347
4348typedef PACKED_PRE struct PACKED_POST
4349{
4350 tANI_U8 configuredMcstBcstFilterSetting;
4351}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4352
4353typedef PACKED_PRE struct PACKED_POST
4354{
4355 tHalMsgHeader header;
4356 tHalWlanHostResumeReqParam resumeReqParams;
4357}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4358
4359/*---------------------------------------------------------------------------
4360 * WLAN_HAL_HOST_RESUME_RSP
4361 *--------------------------------------------------------------------------*/
4362typedef PACKED_PRE struct PACKED_POST
4363{
4364 /* success or failure */
4365 tANI_U32 status;
4366} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4367
4368typedef PACKED_PRE struct PACKED_POST
4369{
4370 tHalMsgHeader header;
4371 tHalHostResumeRspParams hostResumeRspParams;
4372} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4373
4374/*---------------------------------------------------------------------------
4375 *PNO Messages
4376 *-------------------------------------------------------------------------*/
4377/*Max number of channels that a network can be found on*/
4378#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 26
4379
4380/*Maximum numbers of networks supported by PNO*/
4381#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4382
4383/*The number of scan time intervals that can be programmed into PNO*/
4384#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4385
4386/*Maximum size of the probe template*/
4387#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4388
4389/*Type of PNO enabling
4390 Immediate - scanning will start immediately and PNO procedure will
4391 be repeated based on timer
4392 Suspend - scanning will start at suspend
4393 Resume - scanning will start on system resume*/
4394typedef enum
4395{
4396 ePNO_MODE_IMMEDIATE,
4397 ePNO_MODE_ON_SUSPEND,
4398 ePNO_MODE_ON_RESUME,
4399 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4400} ePNOMode;
4401
4402/*Authentication type*/
4403typedef enum
4404{
4405 eAUTH_TYPE_ANY = 0,
4406 eAUTH_TYPE_OPEN_SYSTEM = 1,
4407
4408 // Upper layer authentication types
4409 eAUTH_TYPE_WPA = 2,
4410 eAUTH_TYPE_WPA_PSK = 3,
4411
4412 eAUTH_TYPE_RSN = 4,
4413 eAUTH_TYPE_RSN_PSK = 5,
4414 eAUTH_TYPE_FT_RSN = 6,
4415 eAUTH_TYPE_FT_RSN_PSK = 7,
4416 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4417 eAUTH_TYPE_WAPI_WAI_PSK = 9,
4418
4419 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4420
4421}tAuthType;
4422
4423/* Encryption type */
4424typedef enum eEdType
4425{
4426 eED_ANY = 0,
4427 eED_NONE = 1,
4428 eED_WEP = 2,
4429 eED_TKIP = 3,
4430 eED_CCMP = 4,
4431 eED_WPI = 5,
4432
4433 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4434} tEdType;
4435
4436/* SSID broadcast type */
4437typedef enum eSSIDBcastType
4438{
4439 eBCAST_UNKNOWN = 0,
4440 eBCAST_NORMAL = 1,
4441 eBCAST_HIDDEN = 2,
4442
4443 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4444} tSSIDBcastType;
4445
4446/*
4447 The network description for which PNO will have to look for
4448*/
4449typedef PACKED_PRE struct PACKED_POST
4450{
4451 /*SSID of the BSS*/
4452 tSirMacSSid ssId;
4453
4454 /*Authentication type for the network*/
4455 tAuthType authentication;
4456
4457 /*Encryption type for the network*/
4458 tEdType encryption;
4459
4460 /*Indicate the channel on which the Network can be found
4461 0 - if all channels */
4462 tANI_U8 ucChannelCount;
4463 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
4464
4465 /*Indicates the RSSI threshold for the network to be considered*/
4466 tANI_U8 rssiThreshold;
4467}tNetworkType;
4468
4469typedef PACKED_PRE struct PACKED_POST
4470{
4471 /*How much it should wait */
4472 tANI_U32 uTimerValue;
4473
4474 /*How many times it should repeat that wait value
4475 0 - keep using this timer until PNO is disabled*/
4476 tANI_U32 uTimerRepeat;
4477
4478 /*e.g: 2 3
4479 4 0
4480 - it will wait 2s between consecutive scans for 3 times
4481 - after that it will wait 4s between consecutive scans until disabled*/
4482}tScanTimer;
4483
4484/*
4485 The network parameters to be sent to the PNO algorithm
4486*/
4487typedef PACKED_PRE struct PACKED_POST
4488{
4489 /*set to 0 if you wish for PNO to use its default telescopic timer*/
4490 tANI_U8 ucScanTimersCount;
4491
4492 /*A set value represents the amount of time that PNO will wait between
4493 two consecutive scan procedures
4494 If the desired is for a uniform timer that fires always at the exact same
4495 interval - one single value is to be set
4496 If there is a desire for a more complex - telescopic like timer multiple
4497 values can be set - once PNO reaches the end of the array it will
4498 continue scanning at intervals presented by the last value*/
4499 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
4500
4501}tScanTimersType;
4502
4503typedef PACKED_PRE struct PACKED_POST {
4504
4505 /*Enable PNO*/
4506 tANI_U32 enable;
4507
4508 /*Immediate, On Suspend, On Resume*/
4509 ePNOMode modePNO;
4510
4511 /*Number of networks sent for PNO*/
4512 tANI_U32 ucNetworksCount;
4513
4514 /*The networks that PNO needs to look for*/
4515 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
4516
4517 /*The scan timers required for PNO*/
4518 tScanTimersType scanTimers;
4519
4520 /*Probe template for 2.4GHz band*/
4521 tANI_U16 us24GProbeSize;
4522 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
4523
4524 /*Probe template for 5GHz band*/
4525 tANI_U16 us5GProbeSize;
4526 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
4527
4528} tPrefNetwListParams, * tpPrefNetwListParams;
4529
4530/*
4531 Preferred network list request
4532*/
4533typedef PACKED_PRE struct PACKED_POST
4534{
4535 tHalMsgHeader header;
4536 tPrefNetwListParams prefNetwListParams;
4537} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
4538
4539
4540/*
4541 The network description for which PNO will have to look for
4542*/
4543typedef PACKED_PRE struct PACKED_POST
4544{
4545 /*SSID of the BSS*/
4546 tSirMacSSid ssId;
4547
4548 /*Authentication type for the network*/
4549 tAuthType authentication;
4550
4551 /*Encryption type for the network*/
4552 tEdType encryption;
4553
4554 /*SSID broadcast type, normal, hidden or unknown*/
4555 tSSIDBcastType bcastNetworkType;
4556
4557 /*Indicate the channel on which the Network can be found
4558 0 - if all channels */
4559 tANI_U8 ucChannelCount;
4560 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
4561
4562 /*Indicates the RSSI threshold for the network to be considered*/
4563 tANI_U8 rssiThreshold;
4564}tNetworkTypeNew;
4565
4566typedef PACKED_PRE struct PACKED_POST {
4567
4568 /*Enable PNO*/
4569 tANI_U32 enable;
4570
4571 /*Immediate, On Suspend, On Resume*/
4572 ePNOMode modePNO;
4573
4574 /*Number of networks sent for PNO*/
4575 tANI_U32 ucNetworksCount;
4576
4577 /*The networks that PNO needs to look for*/
4578 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
4579
4580 /*The scan timers required for PNO*/
4581 tScanTimersType scanTimers;
4582
4583 /*Probe template for 2.4GHz band*/
4584 tANI_U16 us24GProbeSize;
4585 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
4586
4587 /*Probe template for 5GHz band*/
4588 tANI_U16 us5GProbeSize;
4589 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
4590
4591} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
4592
4593/*
4594 Preferred network list request new
4595*/
4596typedef PACKED_PRE struct PACKED_POST
4597{
4598 tHalMsgHeader header;
4599 tPrefNetwListParamsNew prefNetwListParams;
4600} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
4601
4602/*
4603 Preferred network list response
4604*/
4605typedef PACKED_PRE struct PACKED_POST
4606{
4607 tHalMsgHeader header;
4608
4609 /*status of the request - just to indicate that PNO has acknowledged
4610 the request and will start scanning*/
4611 tANI_U32 status;
4612} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
4613
4614/*
4615 Preferred network indication parameters
4616*/
4617typedef PACKED_PRE struct PACKED_POST {
4618
4619 /*Network that was found with the highest RSSI*/
4620 tSirMacSSid ssId;
4621
4622 /*Indicates the RSSI */
4623 tANI_U8 rssi;
4624
4625} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
4626
4627/*
4628 Preferred network found indication
4629*/
4630typedef PACKED_PRE struct PACKED_POST {
4631
4632 tHalMsgHeader header;
4633 tPrefNetwFoundParams prefNetwFoundParams;
4634} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
4635
4636
4637typedef PACKED_PRE struct PACKED_POST {
4638
4639 /*RSSI Threshold*/
4640 tANI_U8 ucRssiThreshold;
4641
4642} tRssiFilterParams, * tpRssiFilterParams;
4643
4644/*
4645 RSSI Filter request
4646*/
4647typedef PACKED_PRE struct PACKED_POST
4648{
4649 tHalMsgHeader header;
4650 tRssiFilterParams prefRSSIFilterParams;
4651} tSetRssiFilterReq, *tpSetRssiFilterReq;
4652
4653/*
4654 Set RSSI filter resp
4655*/
4656typedef PACKED_PRE struct PACKED_POST{
4657 tHalMsgHeader header;
4658 /*status of the request */
4659 tANI_U32 status;
4660} tSetRssiFilterResp, *tpSetRssiFilterResp;
4661/*
4662 Update scan params
4663*/
4664typedef PACKED_PRE struct PACKED_POST
4665{
4666
4667 /*Host setting for 11d*/
4668 tANI_U8 b11dEnabled;
4669
4670 /*Lets PNO know that host has determined the regulatory domain*/
4671 tANI_U8 b11dResolved;
4672
4673 /*Channels on which PNO is allowed to scan*/
4674 tANI_U8 ucChannelCount;
4675 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
4676
4677 /*Minimum channel time*/
4678 tANI_U16 usActiveMinChTime;
4679
4680 /*Maximum channel time*/
4681 tANI_U16 usActiveMaxChTime;
4682
4683 /*Minimum channel time*/
4684 tANI_U16 usPassiveMinChTime;
4685
4686 /*Maximum channel time*/
4687 tANI_U16 usPassiveMaxChTime;
4688
4689 /*Cb State*/
4690 ePhyChanBondState cbState;
4691
4692} tUpdateScanParams, * tpUpdateScanParams;
4693
4694/*
4695 Update scan params - sent from host to PNO
4696 to be used during PNO scanning
4697*/
4698typedef PACKED_PRE struct PACKED_POST{
4699
4700 tHalMsgHeader header;
4701 tUpdateScanParams scanParams;
4702} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
4703
4704/*
4705 Update scan params - sent from host to PNO
4706 to be used during PNO scanning
4707*/
4708typedef PACKED_PRE struct PACKED_POST{
4709
4710 tHalMsgHeader header;
4711
4712 /*status of the request */
4713 tANI_U32 status;
4714
4715} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
4716
4717/*---------------------------------------------------------------------------
4718 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
4719 *--------------------------------------------------------------------------*/
4720typedef PACKED_PRE struct PACKED_POST
4721{
4722 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
4723 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
4724 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
4725 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
4726} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
4727
4728typedef PACKED_PRE struct PACKED_POST
4729{
4730 tHalMsgHeader header;
4731 tHalTxPerTrackingReqParam txPerTrackingParams;
4732} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
4733
4734/*---------------------------------------------------------------------------
4735 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
4736 *--------------------------------------------------------------------------*/
4737typedef PACKED_PRE struct PACKED_POST
4738{
4739 /* success or failure */
4740 tANI_U32 status;
4741} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
4742
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 tHalMsgHeader header;
4746 tHalTxPerTrackingRspParams txPerTrackingRspParams;
4747} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
4748
4749/*---------------------------------------------------------------------------
4750 * WLAN_HAL_TX_PER_HIT_IND
4751 *--------------------------------------------------------------------------*/
4752typedef PACKED_PRE struct PACKED_POST
4753{
4754 tHalMsgHeader header;
4755}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
4756
4757/*---------------------------------------------------------------------------
4758 *******************Packet Filtering Definitions Begin*******************
4759 *--------------------------------------------------------------------------*/
4760#define HAL_PROTOCOL_DATA_LEN 8
4761#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
4762#define HAL_MAX_NUM_FILTERS 20
4763#define HAL_MAX_CMP_PER_FILTER 10
4764
4765typedef enum
4766{
4767 HAL_RCV_FILTER_TYPE_INVALID,
4768 HAL_RCV_FILTER_TYPE_FILTER_PKT,
4769 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
4770 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
4771}tHalReceivePacketFilterType;
4772
4773typedef enum
4774{
4775 HAL_FILTER_PROTO_TYPE_INVALID,
4776 HAL_FILTER_PROTO_TYPE_MAC,
4777 HAL_FILTER_PROTO_TYPE_ARP,
4778 HAL_FILTER_PROTO_TYPE_IPV4,
4779 HAL_FILTER_PROTO_TYPE_IPV6,
4780 HAL_FILTER_PROTO_TYPE_UDP,
4781 HAL_FILTER_PROTO_TYPE_MAX
4782}tHalRcvPktFltProtocolType;
4783
4784typedef enum
4785{
4786 HAL_FILTER_CMP_TYPE_INVALID,
4787 HAL_FILTER_CMP_TYPE_EQUAL,
4788 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
4789 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
4790 HAL_FILTER_CMP_TYPE_MAX
4791}tHalRcvPktFltCmpFlagType;
4792
4793typedef PACKED_PRE struct PACKED_POST
4794{
4795 tANI_U8 protocolLayer;
4796 tANI_U8 cmpFlag;
4797 tANI_U16 dataLength; /* Length of the data to compare */
4798 tANI_U8 dataOffset; /* from start of the respective frame header */
4799 tANI_U8 reserved; /* Reserved field */
4800 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
4801 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
4802}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
4803
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 tANI_U8 filterId;
4807 tANI_U8 filterType;
4808 tANI_U8 numParams;
4809 tANI_U32 coleasceTime;
4810 tHalRcvPktFilterParams paramsData[1];
4811}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
4812
4813typedef PACKED_PRE struct PACKED_POST
4814{
4815 tHalMsgHeader header;
4816 tHalRcvPktFilterCfgType pktFilterCfg;
4817} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
4818
4819
4820typedef PACKED_PRE struct PACKED_POST
4821{
4822 tANI_U8 dataOffset; /* from start of the respective frame header */
4823 tANI_U32 cMulticastAddr;
4824 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
4825} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
4826
4827typedef PACKED_PRE struct PACKED_POST
4828{
4829 /* success or failure */
4830 tANI_U32 status;
4831} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
4832
4833typedef PACKED_PRE struct PACKED_POST
4834{
4835 tHalMsgHeader header;
4836 tHalSetPktFilterRspParams pktFilterRspParams;
4837} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
4838
4839
4840typedef PACKED_PRE struct PACKED_POST
4841{
4842 tHalMsgHeader header;
4843} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
4844
4845typedef PACKED_PRE struct PACKED_POST
4846{
4847 tANI_U8 filterId;
4848 tANI_U32 matchCnt;
4849} tHalRcvFltPktMatchCnt;
4850typedef PACKED_PRE struct PACKED_POST
4851{
4852 /* Success or Failure */
4853 tANI_U32 status;
4854 tANI_U32 matchCnt;
4855 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
4856} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
4857
4858typedef PACKED_PRE struct PACKED_POST
4859{
4860 tHalMsgHeader header;
4861 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
4862} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
4863
4864typedef PACKED_PRE struct PACKED_POST
4865{
4866 tANI_U32 status; /* only valid for response message */
4867 tANI_U8 filterId;
4868}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
4869
4870typedef PACKED_PRE struct PACKED_POST
4871{
4872 tHalMsgHeader header;
4873 tHalRcvFltPktClearParam filterClearParam;
4874} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
4875
4876typedef PACKED_PRE struct PACKED_POST
4877{
4878 tHalMsgHeader header;
4879 tHalRcvFltPktClearParam filterClearParam;
4880} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
4881
4882typedef PACKED_PRE struct PACKED_POST
4883{
4884 tANI_U32 status;
4885}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
4886
4887typedef PACKED_PRE struct PACKED_POST
4888{
4889 tHalMsgHeader header;
4890 tHalRcvFltMcAddrListType mcAddrList;
4891} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
4892
4893typedef PACKED_PRE struct PACKED_POST
4894{
4895 tHalMsgHeader header;
4896 tHalRcvFltPktSetMcListRspType rspParam;
4897} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
4898
4899
4900/*---------------------------------------------------------------------------
4901 *******************Packet Filtering Definitions End*******************
4902 *--------------------------------------------------------------------------*/
4903
4904typedef PACKED_PRE struct PACKED_POST
4905{
4906 /* Ignore DTIM */
4907 tANI_U32 uIgnoreDTIM;
4908
4909 /*DTIM Period*/
4910 tANI_U32 uDTIMPeriod;
4911
4912 /* Listen Interval */
4913 tANI_U32 uListenInterval;
4914
4915 /* Broadcast Multicast Filter */
4916 tANI_U32 uBcastMcastFilter;
4917
4918 /* Beacon Early Termination */
4919 tANI_U32 uEnableBET;
4920
4921 /* Beacon Early Termination Interval */
4922 tANI_U32 uBETInterval;
4923}tSetPowerParamsType, *tpSetPowerParamsType;
4924
4925typedef PACKED_PRE struct PACKED_POST
4926{
4927 tHalMsgHeader header;
4928 tSetPowerParamsType powerParams;
4929} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
4930
4931typedef PACKED_PRE struct PACKED_POST{
4932
4933 tHalMsgHeader header;
4934
4935 /*status of the request */
4936 tANI_U32 status;
4937
4938} tSetPowerParamsResp, *tpSetPowerParamsResp;
4939
4940/*---------------------------------------------------------------------------
4941 ****************Capability bitmap exchange definitions and macros starts*************
4942 *--------------------------------------------------------------------------*/
4943
4944typedef PACKED_PRE struct PACKED_POST{
4945
4946 tANI_U32 featCaps[4];
4947
4948} tWlanFeatCaps, *tpWlanFeatCaps;
4949
4950typedef PACKED_PRE struct PACKED_POST{
4951
4952 tHalMsgHeader header;
4953 tWlanFeatCaps wlanFeatCaps;
4954
4955} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
4956
4957
4958typedef enum {
4959 MCC = 0,
4960 P2P = 1,
4961 MAX_FEATURE_SUPPORTED = 128,
4962} placeHolderInCapBitmap;
4963
4964#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
4965 if ((b>=0) && (b<=127)) { \
4966 arr_index = b/32; \
4967 bit_index = b % 32; \
4968 (a)->featCaps[arr_index] |= (1<<bit_index); \
4969 } \
4970 }
4971#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
4972 if ((b>=0) && (b<=127)) { \
4973 arr_index = b/32; \
4974 bit_index = b % 32; \
4975 c = (a)->featCaps[arr_index] & (1<<bit_index); \
4976 } \
4977 }
4978#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
4979 if ((b>=0) && (b<=127)) { \
4980 arr_index = b/32; \
4981 bit_index = b % 32; \
4982 (a)->featCaps[arr_index] |= (0<<bit_index); \
4983 } \
4984 }
4985
4986/*---------------------------------------------------------------------------
4987 * WLAN_HAL_WAKE_REASON_IND
4988 *--------------------------------------------------------------------------*/
4989
4990/* status codes to help debug rekey failures */
4991typedef enum
4992{
4993 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
4994 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
4995 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
4996 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
4997 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
4998 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
4999 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5000 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5001 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5002 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5003
5004 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5005} tGTKRekeyStatus;
5006
5007/* wake reason types */
5008typedef enum
5009{
5010 WLAN_HAL_WAKE_REASON_NONE = 0,
5011 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5012 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5013 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5014 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5015 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5016 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5017 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5018} tWakeReasonType;
5019
5020/*
5021 Wake Packet which is saved at tWakeReasonParams.DataStart
5022 This data is sent for any wake reasons that involve a packet-based wakeup :
5023
5024 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5025 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5026 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5027 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5028 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5029
5030 The information is provided to the host for auditing and debug purposes
5031
5032*/
5033
5034/*
5035 Wake reason indication parameters
5036*/
5037typedef PACKED_PRE struct PACKED_POST
5038{
5039 uint32 ulReason; /* see tWakeReasonType */
5040 uint32 ulReasonArg; /* argument specific to the reason type */
5041 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5042 HAL truncates the data (i.e. data packets) this length
5043 will be less than the actual length */
5044 uint32 ulActualDataLen; /* actual length of data */
5045 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5046 see specific wake type */
5047} tWakeReasonParams, *tpWakeReasonParams;
5048
5049/*
5050 Wake reason indication
5051*/
5052typedef PACKED_PRE struct PACKED_POST
5053{
5054 tHalMsgHeader header;
5055 tWakeReasonParams wakeReasonParams;
5056} tHalWakeReasonInd, *tpHalWakeReasonInd;
5057
5058/*---------------------------------------------------------------------------
5059* WLAN_HAL_GTK_OFFLOAD_REQ
5060*--------------------------------------------------------------------------*/
5061
5062#define HAL_GTK_KEK_BYTES 16
5063#define HAL_GTK_KCK_BYTES 16
5064
5065#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5066
5067typedef PACKED_PRE struct PACKED_POST
5068{
5069 tANI_U32 ulFlags; /* optional flags */
5070 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
5071 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5072 tANI_U64 ullKeyReplayCounter; /* replay counter */
5073} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5074
5075typedef PACKED_PRE struct PACKED_POST
5076{
5077 tHalMsgHeader header;
5078 tHalGtkOffloadReqParams gtkOffloadReqParams;
5079} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5080
5081/*---------------------------------------------------------------------------
5082* WLAN_HAL_GTK_OFFLOAD_RSP
5083*--------------------------------------------------------------------------*/
5084typedef PACKED_PRE struct PACKED_POST
5085{
5086 tANI_U32 ulStatus; /* success or failure */
5087} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5088
5089typedef PACKED_PRE struct PACKED_POST
5090{
5091 tHalMsgHeader header;
5092 tHalGtkOffloadRspParams gtkOffloadRspParams;
5093} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5094
5095
5096/*---------------------------------------------------------------------------
5097* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5098*--------------------------------------------------------------------------*/
5099
5100typedef PACKED_PRE struct PACKED_POST
5101{
5102 tHalMsgHeader header;
5103} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5104
5105/*---------------------------------------------------------------------------
5106* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5107*--------------------------------------------------------------------------*/
5108typedef PACKED_PRE struct PACKED_POST
5109{
5110 tANI_U32 ulStatus; /* success or failure */
5111 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5112 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5113 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5114 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5115 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
5116} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5117
5118typedef PACKED_PRE struct PACKED_POST
5119{
5120 tHalMsgHeader header;
5121 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5122} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5123
5124/*
5125 Thermal Mitigation mode of operation.
5126 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5127 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5128 reducing transmit power
5129 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5130*/
5131typedef enum
5132{
5133 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5134 HAL_THERMAL_MITIGATION_MODE_0,
5135 HAL_THERMAL_MITIGATION_MODE_1,
5136 HAL_THERMAL_MITIGATION_MODE_2,
5137 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5138}tHalThermalMitigationModeType;
5139//typedef tANI_S16 tHalThermalMitigationModeType;
5140
5141/*
5142 Thermal Mitigation level.
5143 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5144 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5145
5146 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5147 level indicates normal mode of operation
5148 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5149 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5150 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5151 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5152*/
5153typedef enum
5154{
5155 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5156 HAL_THERMAL_MITIGATION_LEVEL_0,
5157 HAL_THERMAL_MITIGATION_LEVEL_1,
5158 HAL_THERMAL_MITIGATION_LEVEL_2,
5159 HAL_THERMAL_MITIGATION_LEVEL_3,
5160 HAL_THERMAL_MITIGATION_LEVEL_4,
5161 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5162}tHalThermalMitigationLevelType;
5163//typedef tANI_S16 tHalThermalMitigationLevelType;
5164
5165typedef PACKED_PRE struct PACKED_POST
5166{
5167 /* Thermal Mitigation Operation Mode */
5168 tHalThermalMitigationModeType thermalMitMode;
5169
5170 /* Thermal Mitigation Level */
5171 tHalThermalMitigationLevelType thermalMitLevel;
5172
5173}tSetThermalMitgationType, *tpSetThermalMitgationType;
5174
5175/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5176typedef PACKED_PRE struct PACKED_POST
5177{
5178 tHalMsgHeader header;
5179 tSetThermalMitgationType thermalMitParams;
5180} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5181
5182typedef PACKED_PRE struct PACKED_POST{
5183
5184 tHalMsgHeader header;
5185
5186 /*status of the request */
5187 tANI_U32 status;
5188
5189} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5190
5191#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
5192#pragma pack(pop)
5193#elif defined(__ANI_COMPILER_PRAGMA_PACK)
5194#else
5195#endif
5196
5197#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07005198