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