blob: d4720ff5dcac2365327af1d279c43c0e3ecebae6 [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
Viral Modie50b1d42012-12-10 13:04:52 -080059#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070060
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
Viral Modie50b1d42012-12-10 13:04:52 -0800352 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
353 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
354
355 WLAN_HAL_P2P_NOA_START_IND = 184,
356
Jeff Johnsone7245742012-09-05 17:12:55 -0700357 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700358}tHalHostMsgType;
359
Jeff Johnsone7245742012-09-05 17:12:55 -0700360/* Enumeration for Version */
361typedef enum
362{
363 WLAN_HAL_MSG_VERSION0 = 0,
364 WLAN_HAL_MSG_VERSION1 = 1,
365 WLAN_HAL_MSG_VERSION_MAX_FIELD = 0x7FFF /*define as 2 bytes data*/
366}tHalHostMsgVersion;
367
Jeff Johnson295189b2012-06-20 16:38:30 -0700368/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700369typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700370{
371 eANI_BOOLEAN_FALSE = 0,
372 eANI_BOOLEAN_TRUE,
373 eANI_BOOLEAN_OFF = 0,
374 eANI_BOOLEAN_ON = 1,
375 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
376} eAniBoolean;
377
378typedef enum
379{
380 eDRIVER_TYPE_PRODUCTION = 0,
381 eDRIVER_TYPE_MFG = 1,
382 eDRIVER_TYPE_DVT = 2,
383 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
384} tDriverType;
385
386typedef enum
387{
388 HAL_STOP_TYPE_SYS_RESET,
389 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
390 HAL_STOP_TYPE_RF_KILL,
391 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
392}tHalStopType;
393
394typedef enum
395{
396 eHAL_SYS_MODE_NORMAL,
397 eHAL_SYS_MODE_LEARN,
398 eHAL_SYS_MODE_SCAN,
399 eHAL_SYS_MODE_PROMISC,
400 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700401 eHAL_SYS_MODE_ROAM_SCAN,
402 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700403 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
404} eHalSysMode;
405
406typedef enum
407{
408 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
409 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
410 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
411 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700412#ifdef WLAN_FEATURE_11AC
413 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
414 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
415 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
416 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
417 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
418 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
419 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
420#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700421 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
422}ePhyChanBondState;
423
424// Spatial Multiplexing(SM) Power Save mode
425typedef enum eSirMacHTMIMOPowerSaveState
426{
427 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
428 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
429 eSIR_HT_MIMO_PS_NA = 2, // reserved
430 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
431 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
432} tSirMacHTMIMOPowerSaveState;
433
434/* each station added has a rate mode which specifies the sta attributes */
435typedef enum eStaRateMode {
436 eSTA_TAURUS = 0,
437 eSTA_TITAN,
438 eSTA_POLARIS,
439 eSTA_11b,
440 eSTA_11bg,
441 eSTA_11a,
442 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700443#ifdef WLAN_FEATURE_11AC
444 eSTA_11ac,
445#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700446 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
447} tStaRateMode, *tpStaRateMode;
448
449#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
450#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
451#define SIR_NUM_POLARIS_RATES 3 //72,96,108
452
453#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
454
455
456typedef enum eSirBssType
457{
458 eSIR_INFRASTRUCTURE_MODE,
459 eSIR_INFRA_AP_MODE, //Added for softAP support
460 eSIR_IBSS_MODE,
461 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
462 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
463 eSIR_AUTO_MODE,
464 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
465} tSirBssType;
466
467typedef enum eSirNwType
468{
469 eSIR_11A_NW_TYPE,
470 eSIR_11B_NW_TYPE,
471 eSIR_11G_NW_TYPE,
472 eSIR_11N_NW_TYPE,
473 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
474} tSirNwType;
475
476typedef tANI_U16 tSirMacBeaconInterval;
477
478#define SIR_MAC_RATESET_EID_MAX 12
479
480typedef enum eSirMacHTOperatingMode
481{
482 eSIR_HT_OP_MODE_PURE, // No Protection
483 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
484 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
485 eSIR_HT_OP_MODE_MIXED, // Protection is required
486 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
487} tSirMacHTOperatingMode;
488
Jeff Johnson295189b2012-06-20 16:38:30 -0700489/// Encryption type enum used with peer
490typedef enum eAniEdType
491{
492 eSIR_ED_NONE,
493 eSIR_ED_WEP40,
494 eSIR_ED_WEP104,
495 eSIR_ED_TKIP,
496 eSIR_ED_CCMP,
497 eSIR_ED_WPI,
498 eSIR_ED_AES_128_CMAC,
499 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
500} tAniEdType;
501
502#define WLAN_MAX_KEY_RSC_LEN 16
503#define WLAN_WAPI_KEY_RSC_LEN 16
504
505/// MAX key length when ULA is used
506#define SIR_MAC_MAX_KEY_LENGTH 32
507#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
508
509/// Enum to specify whether key is used
510/// for TX only, RX only or both
511typedef enum eAniKeyDirection
512{
513 eSIR_TX_ONLY,
514 eSIR_RX_ONLY,
515 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700516 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700517 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
518} tAniKeyDirection;
519
520typedef enum eAniWepType
521{
522 eSIR_WEP_STATIC,
523 eSIR_WEP_DYNAMIC,
524 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
525} tAniWepType;
526
527typedef enum eSriLinkState {
528
529 eSIR_LINK_IDLE_STATE = 0,
530 eSIR_LINK_PREASSOC_STATE = 1,
531 eSIR_LINK_POSTASSOC_STATE = 2,
532 eSIR_LINK_AP_STATE = 3,
533 eSIR_LINK_IBSS_STATE = 4,
534
535 /* BT-AMP Case */
536 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
537 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
538 eSIR_LINK_BTAMP_AP_STATE = 7,
539 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700540
Jeff Johnson295189b2012-06-20 16:38:30 -0700541 /* Reserved for HAL Internal Use */
542 eSIR_LINK_LEARN_STATE = 9,
543 eSIR_LINK_SCAN_STATE = 10,
544 eSIR_LINK_FINISH_SCAN_STATE = 11,
545 eSIR_LINK_INIT_CAL_STATE = 12,
546 eSIR_LINK_FINISH_CAL_STATE = 13,
547#ifdef WLAN_FEATURE_P2P
548 eSIR_LINK_LISTEN_STATE = 14,
549#endif
550 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
551} tSirLinkState;
552
553typedef enum
554{
555 HAL_SUMMARY_STATS_INFO = 0x00000001,
556 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
557 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
558 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
559 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
560 HAL_PER_STA_STATS_INFO = 0x00000020
561}eHalStatsMask;
562
563/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700564typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700565{
566 BTAMP_EVENT_CONNECTION_START,
567 BTAMP_EVENT_CONNECTION_STOP,
568 BTAMP_EVENT_CONNECTION_TERMINATED,
569 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
570} tBtAmpEventType;
571
572//***************************************************************
573
574
575/*******************PE Statistics*************************/
576typedef enum
577{
578 PE_SUMMARY_STATS_INFO = 0x00000001,
579 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
580 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
581 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
582 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
583 PE_PER_STA_STATS_INFO = 0x00000020,
584 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
585}ePEStatsMask;
586
587/*---------------------------------------------------------------------------
588 Message definitons - All the messages below need to be packed
589 ---------------------------------------------------------------------------*/
590
591#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
592#pragma pack(push, 1)
593#elif defined(__ANI_COMPILER_PRAGMA_PACK)
594#pragma pack(1)
595#else
596#endif
597
598/// Definition for HAL API Version.
599typedef PACKED_PRE struct PACKED_POST
600{
601 tANI_U8 revision;
602 tANI_U8 version;
603 tANI_U8 minor;
604 tANI_U8 major;
605} tWcnssWlanVersion, *tpWcnssWlanVersion;
606
607/// Definition for Encryption Keys
608typedef PACKED_PRE struct PACKED_POST
609{
610 tANI_U8 keyId;
611 tANI_U8 unicast; // 0 for multicast
612 tAniKeyDirection keyDirection;
613 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
614 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
615 tANI_U16 keyLength;
616 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
617} tSirKeys, *tpSirKeys;
618
619
620//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
621typedef PACKED_PRE struct PACKED_POST
622{
623 /*STA Index*/
624 tANI_U16 staIdx;
625
626 /*Encryption Type used with peer*/
627 tAniEdType encType;
628
629 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700630 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700631
632 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
633 tANI_U8 defWEPIdx;
634
Jeff Johnson295189b2012-06-20 16:38:30 -0700635 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700636 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
637
Jeff Johnson295189b2012-06-20 16:38:30 -0700638 /*Control for Replay Count, 1= Single TID based replay count on Tx
639 0 = Per TID based replay count on TX */
640 tANI_U8 singleTidRc;
641
642} tSetStaKeyParams, *tpSetStaKeyParams;
643
644
645
646/* 4-byte control message header used by HAL*/
647typedef PACKED_PRE struct PACKED_POST
648{
Jeff Johnsone7245742012-09-05 17:12:55 -0700649 tHalHostMsgType msgType:16;
650 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700651 tANI_U32 msgLen;
652} tHalMsgHeader, *tpHalMsgHeader;
653
654/* Config format required by HAL for each CFG item*/
655typedef PACKED_PRE struct PACKED_POST
656{
657 /* Cfg Id. The Id required by HAL is exported by HAL
658 * in shared header file between UMAC and HAL.*/
659 tANI_U16 uCfgId;
660
Jeff Johnson32d95a32012-09-10 13:15:23 -0700661 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700662 * in the TLV format.*/
663 tANI_U16 uCfgLen;
664
665 /* Padding bytes for unaligned address's */
666 tANI_U16 uCfgPadBytes;
667
668 /* Reserve bytes for making cfgVal to align address */
669 tANI_U16 uCfgReserve;
670
671 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
672 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
673} tHalCfg, *tpHalCfg;
674
675/*---------------------------------------------------------------------------
676 WLAN_HAL_START_REQ
677---------------------------------------------------------------------------*/
678
679typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
680{
681 /* Drive Type - Production or FTM etc */
682 tDriverType driverType;
683
684 /*Length of the config buffer*/
685 tANI_U32 uConfigBufferLen;
686
Jeff Johnson32d95a32012-09-10 13:15:23 -0700687 /* Following this there is a TLV formatted buffer of length
688 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700689 * The TLV is expected to be formatted like this:
690 * 0 15 31 31+CFG_LEN-1 length-1
691 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
692 */
693} tHalMacStartParameters, *tpHalMacStartParameters;
694
695typedef PACKED_PRE struct PACKED_POST
696{
697 /* Note: The length specified in tHalMacStartReqMsg messages should be
698 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
699 tHalMsgHeader header;
700 tHalMacStartParameters startReqParams;
701} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
702
703/*---------------------------------------------------------------------------
704 WLAN_HAL_START_RSP
705---------------------------------------------------------------------------*/
706
707typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
708{
709 /*success or failure */
710 tANI_U16 status;
711
712 /*Max number of STA supported by the device*/
713 tANI_U8 ucMaxStations;
714
715 /*Max number of BSS supported by the device*/
716 tANI_U8 ucMaxBssids;
717
718 /*API Version */
719 tWcnssWlanVersion wcnssWlanVersion;
720
721 /*CRM build information */
722 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
723
724 /*hardware/chipset/misc version information */
725 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
726
727} tHalMacStartRspParams, *tpHalMacStartRspParams;
728
729typedef PACKED_PRE struct PACKED_POST
730{
731 tHalMsgHeader header;
732 tHalMacStartRspParams startRspParams;
733} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
734
735/*---------------------------------------------------------------------------
736 WLAN_HAL_STOP_REQ
737---------------------------------------------------------------------------*/
738
739typedef PACKED_PRE struct PACKED_POST
740{
741 /*The reason for which the device is being stopped*/
742 tHalStopType reason;
743
744}tHalMacStopReqParams, *tpHalMacStopReqParams;
745
746typedef PACKED_PRE struct PACKED_POST
747{
748 tHalMsgHeader header;
749 tHalMacStopReqParams stopReqParams;
750} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
751
752/*---------------------------------------------------------------------------
753 WLAN_HAL_STOP_RSP
754---------------------------------------------------------------------------*/
755
756typedef PACKED_PRE struct PACKED_POST
757{
758 /*success or failure */
759 tANI_U32 status;
760
761}tHalMacStopRspParams, *tpHalMacStopRspParams;
762
763typedef PACKED_PRE struct PACKED_POST
764{
765 tHalMsgHeader header;
766 tHalMacStopRspParams stopRspParams;
767} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
768
769/*---------------------------------------------------------------------------
770 WLAN_HAL_UPDATE_CFG_REQ
771---------------------------------------------------------------------------*/
772
773typedef PACKED_PRE struct PACKED_POST
774{
775 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
776 tANI_U32 uConfigBufferLen;
777
Jeff Johnson32d95a32012-09-10 13:15:23 -0700778 /* Following this there is a TLV formatted buffer of length
779 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700780 * The TLV is expected to be formatted like this:
781 * 0 15 31 31+CFG_LEN-1 length-1
782 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
783 */
784} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
785
786typedef PACKED_PRE struct PACKED_POST
787{
788 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
789 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
790 tHalMsgHeader header;
791 tHalUpdateCfgReqParams updateCfgReqParams;
792} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
793
794/*---------------------------------------------------------------------------
795 WLAN_HAL_UPDATE_CFG_RSP
796---------------------------------------------------------------------------*/
797
798typedef PACKED_PRE struct PACKED_POST
799{
800 /* success or failure */
801 tANI_U32 status;
802
803}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
804
805typedef PACKED_PRE struct PACKED_POST
806{
807 tHalMsgHeader header;
808 tHalUpdateCfgRspParams updateCfgRspParams;
809} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
810
811/*---------------------------------------------------------------------------
812 WLAN_HAL_INIT_SCAN_REQ
813---------------------------------------------------------------------------*/
814
815/// Frame control field format (2 bytes)
816typedef __ani_attr_pre_packed struct sSirMacFrameCtl
817{
818
819#ifndef ANI_LITTLE_BIT_ENDIAN
820
821 tANI_U8 subType :4;
822 tANI_U8 type :2;
823 tANI_U8 protVer :2;
824
825 tANI_U8 order :1;
826 tANI_U8 wep :1;
827 tANI_U8 moreData :1;
828 tANI_U8 powerMgmt :1;
829 tANI_U8 retry :1;
830 tANI_U8 moreFrag :1;
831 tANI_U8 fromDS :1;
832 tANI_U8 toDS :1;
833
834#else
835
836 tANI_U8 protVer :2;
837 tANI_U8 type :2;
838 tANI_U8 subType :4;
839
840 tANI_U8 toDS :1;
841 tANI_U8 fromDS :1;
842 tANI_U8 moreFrag :1;
843 tANI_U8 retry :1;
844 tANI_U8 powerMgmt :1;
845 tANI_U8 moreData :1;
846 tANI_U8 wep :1;
847 tANI_U8 order :1;
848
849#endif
850
851} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
852
853/// Sequence control field
854typedef __ani_attr_pre_packed struct sSirMacSeqCtl
855{
856 tANI_U8 fragNum : 4;
857 tANI_U8 seqNumLo : 4;
858 tANI_U8 seqNumHi : 8;
859} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
860
861/// Management header format
862typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
863{
864 tSirMacFrameCtl fc;
865 tANI_U8 durationLo;
866 tANI_U8 durationHi;
867 tANI_U8 da[6];
868 tANI_U8 sa[6];
869 tANI_U8 bssId[6];
870 tSirMacSeqCtl seqControl;
871} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
872
873/// Scan Entry to hold active BSS idx's
874typedef __ani_attr_pre_packed struct sSirScanEntry
875{
876 tANI_U8 bssIdx[HAL_NUM_BSSID];
877 tANI_U8 activeBSScnt;
878}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
879
880typedef PACKED_PRE struct PACKED_POST {
881
882 /*LEARN - AP Role
883 SCAN - STA Role*/
884 eHalSysMode scanMode;
885
886 /*BSSID of the BSS*/
887 tSirMacAddr bssid;
888
889 /*Whether BSS needs to be notified*/
890 tANI_U8 notifyBss;
891
892 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
893 CTS to Self). Must always be a valid frame type.*/
894 tANI_U8 frameType;
895
896 /*UMAC has the option of passing the MAC frame to be used for notifying
897 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
898 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
899 frameType.*/
900 tANI_U8 frameLength;
901
Jeff Johnson32d95a32012-09-10 13:15:23 -0700902 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700903 is non-zero. */
904 tSirMacMgmtHdr macMgmtHdr;
905
906 /*Entry to hold number of active BSS idx's*/
907 tSirScanEntry scanEntry;
908
909} tInitScanParams, * tpInitScanParams;
910
911typedef PACKED_PRE struct PACKED_POST
912{
913 tHalMsgHeader header;
914 tInitScanParams initScanParams;
915} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
916
917typedef PACKED_PRE struct PACKED_POST {
918
919 /*LEARN - AP Role
920 SCAN - STA Role*/
921 eHalSysMode scanMode;
922
923 /*BSSID of the BSS*/
924 tSirMacAddr bssid;
925
926 /*Whether BSS needs to be notified*/
927 tANI_U8 notifyBss;
928
929 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
930 CTS to Self). Must always be a valid frame type.*/
931 tANI_U8 frameType;
932
933 /*UMAC has the option of passing the MAC frame to be used for notifying
934 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
935 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
936 frameType.*/
937 tANI_U8 frameLength;
938
Jeff Johnson32d95a32012-09-10 13:15:23 -0700939 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700940 is non-zero. */
941 tSirMacMgmtHdr macMgmtHdr;
942
943 /*Entry to hold number of active BSS idx's*/
944 tSirScanEntry scanEntry;
945
946 /* Single NoA usage in Scanning */
947 tANI_U8 useNoA;
948
949 /* Indicates the scan duration (in ms) */
950 tANI_U16 scanDuration;
951
952} tInitScanConParams, * tpInitScanConParams;
953
954typedef PACKED_PRE struct PACKED_POST
955{
956 tHalMsgHeader header;
957 tInitScanConParams initScanParams;
958} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
959
960
961/*---------------------------------------------------------------------------
962 WLAN_HAL_INIT_SCAN_RSP
963---------------------------------------------------------------------------*/
964
965typedef PACKED_PRE struct PACKED_POST
966{
967 /*success or failure */
968 tANI_U32 status;
969
970}tHalInitScanRspParams, *tpHalInitScanRspParams;
971
972typedef PACKED_PRE struct PACKED_POST
973{
974 tHalMsgHeader header;
975 tHalInitScanRspParams initScanRspParams;
976} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
977
978/*---------------------------------------------------------------------------
979 WLAN_HAL_START_SCAN_REQ
980---------------------------------------------------------------------------*/
981
Jeff Johnson32d95a32012-09-10 13:15:23 -0700982typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -0700983{
984 /*Indicates the channel to scan*/
985 tANI_U8 scanChannel;
986
987 } tStartScanParams, * tpStartScanParams;
988
989typedef PACKED_PRE struct PACKED_POST
990{
991 tHalMsgHeader header;
992 tStartScanParams startScanParams;
993} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
994
995/*---------------------------------------------------------------------------
996 WLAN_HAL_START_SCAN_RSP
997---------------------------------------------------------------------------*/
998
999typedef PACKED_PRE struct PACKED_POST
1000{
1001 /*success or failure */
1002 tANI_U32 status;
1003
1004 tANI_U32 startTSF[2];
1005 tPowerdBm txMgmtPower;
1006
1007}tHalStartScanRspParams, *tpHalStartScanRspParams;
1008
1009typedef PACKED_PRE struct PACKED_POST
1010{
1011 tHalMsgHeader header;
1012 tHalStartScanRspParams startScanRspParams;
1013} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1014
1015/*---------------------------------------------------------------------------
1016 WLAN_HAL_END_SCAN_REQ
1017---------------------------------------------------------------------------*/
1018
1019typedef PACKED_PRE struct PACKED_POST
1020{
1021 /*Indicates the channel to stop scanning. Not used really. But retained
1022 for symmetry with "start Scan" message. It can also help in error
1023 check if needed.*/
1024 tANI_U8 scanChannel;
1025
1026} tEndScanParams, *tpEndScanParams;
1027
1028typedef PACKED_PRE struct PACKED_POST
1029{
1030 tHalMsgHeader header;
1031 tEndScanParams endScanParams;
1032} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1033
1034/*---------------------------------------------------------------------------
1035 WLAN_HAL_END_SCAN_RSP
1036---------------------------------------------------------------------------*/
1037
1038typedef PACKED_PRE struct PACKED_POST
1039{
1040 /*success or failure */
1041 tANI_U32 status;
1042
1043}tHalEndScanRspParams, *tpHalEndScanRspParams;
1044
1045typedef PACKED_PRE struct PACKED_POST
1046{
1047 tHalMsgHeader header;
1048 tHalEndScanRspParams endScanRspParams;
1049} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1050
1051/*---------------------------------------------------------------------------
1052 WLAN_HAL_FINISH_SCAN_REQ
1053---------------------------------------------------------------------------*/
1054
1055typedef PACKED_PRE struct PACKED_POST
1056{
1057 /* Identifies the operational state of the AP/STA
1058 * LEARN - AP Role SCAN - STA Role */
1059 eHalSysMode scanMode;
1060
1061 /*Operating channel to tune to.*/
1062 tANI_U8 currentOperChannel;
1063
1064 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1065 40 MHz extension channel in combination with the control channel*/
1066 ePhyChanBondState cbState;
1067
1068 /*BSSID of the BSS*/
1069 tSirMacAddr bssid;
1070
1071 /*Whether BSS needs to be notified*/
1072 tANI_U8 notifyBss;
1073
1074 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1075 CTS to Self). Must always be a valid frame type.*/
1076 tANI_U8 frameType;
1077
1078 /*UMAC has the option of passing the MAC frame to be used for notifying
1079 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1080 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1081 frameType.*/
1082 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001083
1084 /*Following the framelength there is a MAC frame buffer if frameLength
1085 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001086 tSirMacMgmtHdr macMgmtHdr;
1087
1088 /*Entry to hold number of active BSS idx's*/
1089 tSirScanEntry scanEntry;
1090
1091} tFinishScanParams, *tpFinishScanParams;
1092
1093typedef PACKED_PRE struct PACKED_POST
1094{
1095 tHalMsgHeader header;
1096 tFinishScanParams finishScanParams;
1097} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1098
1099/*---------------------------------------------------------------------------
1100 WLAN_HAL_FINISH_SCAN_RSP
1101---------------------------------------------------------------------------*/
1102
1103typedef PACKED_PRE struct PACKED_POST
1104{
1105 /*success or failure */
1106 tANI_U32 status;
1107
1108}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1109
1110typedef PACKED_PRE struct PACKED_POST
1111{
1112 tHalMsgHeader header;
1113 tHalFinishScanRspParams finishScanRspParams;
1114} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1115
1116/*---------------------------------------------------------------------------
1117 WLAN_HAL_CONFIG_STA_REQ
1118---------------------------------------------------------------------------*/
1119
1120typedef PACKED_PRE struct PACKED_POST {
1121 /*
1122 * For Self STA Entry: this represents Self Mode.
1123 * For Peer Stations, this represents the mode of the peer.
1124 * On Station:
1125 * --this mode is updated when PE adds the Self Entry.
1126 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1127 * ON AP:
1128 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1129 * to indicate the self mode of the AP.
1130 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1131 */
1132
1133 tStaRateMode opRateMode;
1134 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1135 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1136 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1137 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1138 tANI_U16 reserved;
1139
1140 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1141 //First 26 bits are reserved for those Titan rates and
1142 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1143 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1144
1145 /*
1146 * 0-76 bits used, remaining reserved
1147 * bits 0-15 and 32 should be set.
1148 */
1149 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1150
1151 /*
1152 * RX Highest Supported Data Rate defines the highest data
1153 * rate that the STA is able to receive, in unites of 1Mbps.
1154 * This value is derived from "Supported MCS Set field" inside
1155 * the HT capability element.
1156 */
1157 tANI_U16 rxHighestDataRate;
1158
1159} tSirSupportedRates, *tpSirSupportedRates;
1160
1161typedef PACKED_PRE struct PACKED_POST
1162{
1163 /*BSSID of STA*/
1164 tSirMacAddr bssId;
1165
1166 /*ASSOC ID, as assigned by UMAC*/
1167 tANI_U16 assocId;
1168
1169 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1170 tANI_U8 staType;
1171
1172 /*Short Preamble Supported.*/
1173 tANI_U8 shortPreambleSupported;
1174
1175 /*MAC Address of STA*/
1176 tSirMacAddr staMac;
1177
1178 /*Listen interval of the STA*/
1179 tANI_U16 listenInterval;
1180
1181 /*Support for 11e/WMM*/
1182 tANI_U8 wmmEnabled;
1183
1184 /*11n HT capable STA*/
1185 tANI_U8 htCapable;
1186
1187 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1188 tANI_U8 txChannelWidthSet;
1189
1190 /*RIFS mode 0 - NA, 1 - Allowed */
1191 tANI_U8 rifsMode;
1192
Jeff Johnson32d95a32012-09-10 13:15:23 -07001193 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001194 0 - No Support, 1 - Supported
1195 SG - there is global field */
1196 tANI_U8 lsigTxopProtection;
1197
1198 /*Max Ampdu Size supported by STA. TPE programming.
1199 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1200 tANI_U8 maxAmpduSize;
1201
1202 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1203 tANI_U8 maxAmpduDensity;
1204
1205 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1206 tANI_U8 maxAmsduSize;
1207
1208 /*Short GI support for 40Mhz packets*/
1209 tANI_U8 fShortGI40Mhz;
1210
1211 /*Short GI support for 20Mhz packets*/
1212 tANI_U8 fShortGI20Mhz;
1213
Jeff Johnson295189b2012-06-20 16:38:30 -07001214 /*Robust Management Frame (RMF) enabled/disabled*/
1215 tANI_U8 rmfEnabled;
1216
1217 /* The unicast encryption type in the association */
1218 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001219
1220 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001221 will set this flag in case of RE-ASSOC, where we want to reuse the old
1222 STA ID. 0 = Add, 1 = Update*/
1223 tANI_U8 action;
1224
1225 /*U-APSD Flags: 1b per AC. Encoded as follows:
1226 b7 b6 b5 b4 b3 b2 b1 b0 =
1227 X X X X BE BK VI VO */
1228 tANI_U8 uAPSD;
1229
1230 /*Max SP Length*/
1231 tANI_U8 maxSPLen;
1232
1233 /*11n Green Field preamble support
1234 0 - Not supported, 1 - Supported */
1235 tANI_U8 greenFieldCapable;
1236
1237 /*MIMO Power Save mode*/
1238 tSirMacHTMIMOPowerSaveState mimoPS;
1239
1240 /*Delayed BA Support*/
1241 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001242
Jeff Johnson295189b2012-06-20 16:38:30 -07001243 /*Max AMPDU duration in 32us*/
1244 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001245
Jeff Johnson295189b2012-06-20 16:38:30 -07001246 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1247 it to 0 if AP does not support it. This indication is sent to HAL and
1248 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1249 tANI_U8 fDsssCckMode40Mhz;
1250
1251 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1252 Retained for backward compalibity with existing HAL code*/
1253 tANI_U8 staIdx;
1254
1255 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1256 Retained for backward compalibity with existing HAL code*/
1257 tANI_U8 bssIdx;
1258
1259 tANI_U8 p2pCapableSta;
1260
Jeff Johnsone7245742012-09-05 17:12:55 -07001261 /*Reserved to align next field on a dword boundary*/
1262 tANI_U8 reserved;
1263
1264 /*These rates are the intersection of peer and self capabilities.*/
1265 tSirSupportedRates supportedRates;
1266
Jeff Johnson295189b2012-06-20 16:38:30 -07001267} tConfigStaParams, *tpConfigStaParams;
1268
Jeff Johnsone7245742012-09-05 17:12:55 -07001269/*------------------------------------------------------------------------
1270 * WLAN_HAL_CONFIG_STA_REQ
1271 * ----------------------------------------------------------------------*/
1272
1273typedef PACKED_PRE struct PACKED_POST {
1274 /*
1275 * For Self STA Entry: this represents Self Mode.
1276 * For Peer Stations, this represents the mode of the peer.
1277 * On Station:
1278 * --this mode is updated when PE adds the Self Entry.
1279 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1280 * ON AP:
1281 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1282 * to indicate the self mode of the AP.
1283 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1284 */
1285
1286 tStaRateMode opRateMode;
1287 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1288 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1289 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1290 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1291 tANI_U16 reserved;
1292
1293 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1294 //First 26 bits are reserved for those Titan rates and
1295 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1296 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1297
1298 /*
1299 * 0-76 bits used, remaining reserved
1300 * bits 0-15 and 32 should be set.
1301 */
1302 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1303
1304 /*
1305 * RX Highest Supported Data Rate defines the highest data
1306 * rate that the STA is able to receive, in unites of 1Mbps.
1307 * This value is derived from "Supported MCS Set field" inside
1308 * the HT capability element.
1309 */
1310 tANI_U16 rxHighestDataRate;
1311
1312 /* Indicates the Maximum MCS that can be received for each number
1313 * of spacial streams */
1314 tANI_U16 vhtRxMCSMap;
1315
1316 /*Indicate the highest VHT data rate that the STA is able to receive*/
1317 tANI_U16 vhtRxHighestDataRate;
1318
1319 /* Indicates the Maximum MCS that can be transmitted for each number
1320 * of spacial streams */
1321 tANI_U16 vhtTxMCSMap;
1322
1323 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1324 tANI_U16 vhtTxHighestDataRate;
1325
1326} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1327
1328typedef PACKED_PRE struct PACKED_POST
1329{
1330 /*BSSID of STA*/
1331 tSirMacAddr bssId;
1332
1333 /*ASSOC ID, as assigned by UMAC*/
1334 tANI_U16 assocId;
1335
1336 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1337 tANI_U8 staType;
1338
1339 /*Short Preamble Supported.*/
1340 tANI_U8 shortPreambleSupported;
1341
1342 /*MAC Address of STA*/
1343 tSirMacAddr staMac;
1344
1345 /*Listen interval of the STA*/
1346 tANI_U16 listenInterval;
1347
1348 /*Support for 11e/WMM*/
1349 tANI_U8 wmmEnabled;
1350
1351 /*11n HT capable STA*/
1352 tANI_U8 htCapable;
1353
1354 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1355 tANI_U8 txChannelWidthSet;
1356
1357 /*RIFS mode 0 - NA, 1 - Allowed */
1358 tANI_U8 rifsMode;
1359
1360 /*L-SIG TXOP Protection mechanism
1361 0 - No Support, 1 - Supported
1362 SG - there is global field */
1363 tANI_U8 lsigTxopProtection;
1364
1365 /*Max Ampdu Size supported by STA. TPE programming.
1366 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1367 tANI_U8 maxAmpduSize;
1368
1369 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1370 tANI_U8 maxAmpduDensity;
1371
1372 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1373 tANI_U8 maxAmsduSize;
1374
1375 /*Short GI support for 40Mhz packets*/
1376 tANI_U8 fShortGI40Mhz;
1377
1378 /*Short GI support for 20Mhz packets*/
1379 tANI_U8 fShortGI20Mhz;
1380
1381 /*Robust Management Frame (RMF) enabled/disabled*/
1382 tANI_U8 rmfEnabled;
1383
1384 /* The unicast encryption type in the association */
1385 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001386
1387 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001388 will set this flag in case of RE-ASSOC, where we want to reuse the old
1389 STA ID. 0 = Add, 1 = Update*/
1390 tANI_U8 action;
1391
1392 /*U-APSD Flags: 1b per AC. Encoded as follows:
1393 b7 b6 b5 b4 b3 b2 b1 b0 =
1394 X X X X BE BK VI VO */
1395 tANI_U8 uAPSD;
1396
1397 /*Max SP Length*/
1398 tANI_U8 maxSPLen;
1399
1400 /*11n Green Field preamble support
1401 0 - Not supported, 1 - Supported */
1402 tANI_U8 greenFieldCapable;
1403
1404 /*MIMO Power Save mode*/
1405 tSirMacHTMIMOPowerSaveState mimoPS;
1406
1407 /*Delayed BA Support*/
1408 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001409
Jeff Johnsone7245742012-09-05 17:12:55 -07001410 /*Max AMPDU duration in 32us*/
1411 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001412
Jeff Johnsone7245742012-09-05 17:12:55 -07001413 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1414 it to 0 if AP does not support it. This indication is sent to HAL and
1415 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1416 tANI_U8 fDsssCckMode40Mhz;
1417
1418 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1419 Retained for backward compalibity with existing HAL code*/
1420 tANI_U8 staIdx;
1421
1422 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1423 Retained for backward compalibity with existing HAL code*/
1424 tANI_U8 bssIdx;
1425
1426 tANI_U8 p2pCapableSta;
1427
1428 /*Reserved to align next field on a dword boundary*/
1429 tANI_U8 reserved;
1430 /*These rates are the intersection of peer and self capabilities.*/
1431 tSirSupportedRates_V1 supportedRates;
1432
1433 tANI_U8 vhtCapable;
1434 tANI_U8 vhtTxChannelWidthSet;
1435
1436} tConfigStaParams_V1, *tpConfigStaParams_V1;
1437
Jeff Johnson295189b2012-06-20 16:38:30 -07001438typedef PACKED_PRE struct PACKED_POST
1439{
1440 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001441 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001442 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001443 tConfigStaParams_V1 configStaParams_V1;
1444 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001445} tConfigStaReqMsg, *tpConfigStaReqMsg;
1446
1447/*---------------------------------------------------------------------------
1448 WLAN_HAL_CONFIG_STA_RSP
1449---------------------------------------------------------------------------*/
1450
1451typedef PACKED_PRE struct PACKED_POST
1452{
1453 /*success or failure */
1454 tANI_U32 status;
1455
1456 /* Station index; valid only when 'status' field value SUCCESS */
1457 tANI_U8 staIdx;
1458
1459 /* BSSID Index of BSS to which the station is associated */
1460 tANI_U8 bssIdx;
1461
1462 /* DPU Index for PTK */
1463 tANI_U8 dpuIndex;
1464
Jeff Johnson32d95a32012-09-10 13:15:23 -07001465 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001466 tANI_U8 bcastDpuIndex;
1467
1468 /*DPU Index for IGTK */
1469 tANI_U8 bcastMgmtDpuIdx;
1470
1471 /*PTK DPU signature*/
1472 tANI_U8 ucUcastSig;
1473
1474 /*GTK DPU isignature*/
1475 tANI_U8 ucBcastSig;
1476
1477 /* IGTK DPU signature*/
1478 tANI_U8 ucMgmtSig;
1479
1480 tANI_U8 p2pCapableSta;
1481
1482}tConfigStaRspParams, *tpConfigStaRspParams;
1483
1484typedef PACKED_PRE struct PACKED_POST
1485{
1486 tHalMsgHeader header;
1487 tConfigStaRspParams configStaRspParams;
1488}tConfigStaRspMsg, *tpConfigStaRspMsg;
1489
1490/*---------------------------------------------------------------------------
1491 WLAN_HAL_DELETE_STA_REQ
1492---------------------------------------------------------------------------*/
1493
1494/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001495typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001496{
1497 /* Index of STA to delete */
1498 tANI_U8 staIdx;
1499} tDeleteStaParams, *tpDeleteStaParams;
1500
1501/* Delete STA Request message*/
1502typedef PACKED_PRE struct PACKED_POST
1503{
1504 tHalMsgHeader header;
1505 tDeleteStaParams delStaParams;
1506} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1507
1508/*---------------------------------------------------------------------------
1509 WLAN_HAL_DELETE_STA_RSP
1510---------------------------------------------------------------------------*/
1511
1512/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001513typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001514{
1515 /*success or failure */
1516 tANI_U32 status;
1517
1518 /* Index of STA deleted */
1519 tANI_U8 staId;
1520} tDeleteStaRspParams, *tpDeleteStaRspParams;
1521
1522/* Delete STA Response message*/
1523typedef PACKED_PRE struct PACKED_POST
1524{
1525 tHalMsgHeader header;
1526 tDeleteStaRspParams delStaRspParams;
1527} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1528
1529/*---------------------------------------------------------------------------
1530 WLAN_HAL_CONFIG_BSS_REQ
1531---------------------------------------------------------------------------*/
1532
1533//12 Bytes long because this structure can be used to represent rate
1534//and extended rate set IEs. The parser assume this to be at least 12
1535typedef __ani_attr_pre_packed struct sSirMacRateSet
1536{
1537 tANI_U8 numRates;
1538 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1539} __ani_attr_packed tSirMacRateSet;
1540
1541// access category record
1542typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1543{
1544#ifndef ANI_LITTLE_BIT_ENDIAN
1545 tANI_U8 rsvd : 1;
1546 tANI_U8 aci : 2;
1547 tANI_U8 acm : 1;
1548 tANI_U8 aifsn : 4;
1549#else
1550 tANI_U8 aifsn : 4;
1551 tANI_U8 acm : 1;
1552 tANI_U8 aci : 2;
1553 tANI_U8 rsvd : 1;
1554#endif
1555} __ani_attr_packed tSirMacAciAifsn;
1556
1557// contention window size
1558typedef __ani_attr_pre_packed struct sSirMacCW
1559{
1560#ifndef ANI_LITTLE_BIT_ENDIAN
1561 tANI_U8 max : 4;
1562 tANI_U8 min : 4;
1563#else
1564 tANI_U8 min : 4;
1565 tANI_U8 max : 4;
1566#endif
1567} __ani_attr_packed tSirMacCW;
1568
1569typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1570{
1571 tSirMacAciAifsn aci;
1572 tSirMacCW cw;
1573 tANI_U16 txoplimit;
1574} __ani_attr_packed tSirMacEdcaParamRecord;
1575
1576typedef __ani_attr_pre_packed struct sSirMacSSid
1577{
1578 tANI_U8 length;
1579 tANI_U8 ssId[32];
1580} __ani_attr_packed tSirMacSSid;
1581
1582// Concurrency role. These are generic IDs that identify the various roles
1583// in the software system.
1584typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001585 HAL_STA_MODE=0,
1586 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001587 HAL_P2P_CLIENT_MODE,
1588 HAL_P2P_GO_MODE,
1589 HAL_MONITOR_MODE,
1590} tHalConMode;
1591
1592//This is a bit pattern to be set for each mode
1593//bit 0 - sta mode
1594//bit 1 - ap mode
1595//bit 2 - p2p client mode
1596//bit 3 - p2p go mode
1597typedef enum
1598{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001599 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001600 HAL_SAP=2,
1601 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1602 HAL_P2P_CLIENT=4,
1603 HAL_P2P_GO=8,
1604 HAL_MAX_CONCURRENCY_PERSONA=4
1605} tHalConcurrencyMode;
1606
1607typedef PACKED_PRE struct PACKED_POST
1608{
1609 /* BSSID */
1610 tSirMacAddr bssId;
1611
Jeff Johnson295189b2012-06-20 16:38:30 -07001612 /* Self Mac Address */
1613 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001614
1615 /* BSS type */
1616 tSirBssType bssType;
1617
1618 /*Operational Mode: AP =0, STA = 1*/
1619 tANI_U8 operMode;
1620
1621 /*Network Type*/
1622 tSirNwType nwType;
1623
1624 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1625 tANI_U8 shortSlotTimeSupported;
1626
1627 /*Co-exist with 11a STA*/
1628 tANI_U8 llaCoexist;
1629
1630 /*Co-exist with 11b STA*/
1631 tANI_U8 llbCoexist;
1632
1633 /*Co-exist with 11g STA*/
1634 tANI_U8 llgCoexist;
1635
1636 /*Coexistence with 11n STA*/
1637 tANI_U8 ht20Coexist;
1638
1639 /*Non GF coexist flag*/
1640 tANI_U8 llnNonGFCoexist;
1641
1642 /*TXOP protection support*/
1643 tANI_U8 fLsigTXOPProtectionFullSupport;
1644
1645 /*RIFS mode*/
1646 tANI_U8 fRIFSMode;
1647
1648 /*Beacon Interval in TU*/
1649 tSirMacBeaconInterval beaconInterval;
1650
1651 /*DTIM period*/
1652 tANI_U8 dtimPeriod;
1653
1654 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1655 tANI_U8 txChannelWidthSet;
1656
1657 /*Operating channel*/
1658 tANI_U8 currentOperChannel;
1659
1660 /*Extension channel for channel bonding*/
1661 tANI_U8 currentExtChannel;
1662
1663 /*Reserved to align next field on a dword boundary*/
1664 tANI_U8 reserved;
1665
Jeff Johnsone7245742012-09-05 17:12:55 -07001666 /*SSID of the BSS*/
1667 tSirMacSSid ssId;
1668
1669 /*HAL should update the existing BSS entry, if this flag is set.
1670 UMAC will set this flag in case of reassoc, where we want to resue the
1671 the old BSSID and still return success 0 = Add, 1 = Update*/
1672 tANI_U8 action;
1673
1674 /* MAC Rate Set */
1675 tSirMacRateSet rateSet;
1676
1677 /*Enable/Disable HT capabilities of the BSS*/
1678 tANI_U8 htCapable;
1679
1680 // Enable/Disable OBSS protection
1681 tANI_U8 obssProtEnabled;
1682
1683 /*RMF enabled/disabled*/
1684 tANI_U8 rmfEnabled;
1685
1686 /*HT Operating Mode operating mode of the 802.11n STA*/
1687 tSirMacHTOperatingMode htOperMode;
1688
1689 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1690 tANI_U8 dualCTSProtection;
1691
1692 /* Probe Response Max retries */
1693 tANI_U8 ucMaxProbeRespRetryLimit;
1694
1695 /* To Enable Hidden ssid */
1696 tANI_U8 bHiddenSSIDEn;
1697
1698 /* To Enable Disable FW Proxy Probe Resp */
1699 tANI_U8 bProxyProbeRespEn;
1700
1701 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1702 EDCA params or might not desire to apply EDCA params during config BSS.
1703 0 implies Not Valid ; Non-Zero implies valid*/
1704 tANI_U8 edcaParamsValid;
1705
1706 /*EDCA Parameters for Best Effort Access Category*/
1707 tSirMacEdcaParamRecord acbe;
1708
1709 /*EDCA Parameters forBackground Access Category*/
1710 tSirMacEdcaParamRecord acbk;
1711
1712 /*EDCA Parameters for Video Access Category*/
1713 tSirMacEdcaParamRecord acvi;
1714
1715 /*EDCA Parameters for Voice Access Category*/
1716 tSirMacEdcaParamRecord acvo;
1717
1718#ifdef WLAN_FEATURE_VOWIFI_11R
1719 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1720 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1721#endif
1722
1723 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1724 tANI_U8 halPersona;
1725
1726 tANI_U8 bSpectrumMgtEnable;
1727
1728 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1729 tANI_S8 txMgmtPower;
1730 /*maxTxPower has max power to be used after applying the power constraint if any */
1731 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001732 /*Context of the station being added in HW
1733 Add a STA entry for "itself" -
1734 On AP - Add the AP itself in an "STA context"
1735 On STA - Add the AP to which this STA is joining in an "STA context" */
1736 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001737} tConfigBssParams, * tpConfigBssParams;
1738
1739
1740/*--------------------------------------------------------------------------
1741 * WLAN_HAL_CONFIG_BSS_REQ
1742 *--------------------------------------------------------------------------*/
1743typedef PACKED_PRE struct PACKED_POST
1744{
1745 /* BSSID */
1746 tSirMacAddr bssId;
1747
Jeff Johnsone7245742012-09-05 17:12:55 -07001748 /* Self Mac Address */
1749 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001750
1751 /* BSS type */
1752 tSirBssType bssType;
1753
1754 /*Operational Mode: AP =0, STA = 1*/
1755 tANI_U8 operMode;
1756
1757 /*Network Type*/
1758 tSirNwType nwType;
1759
1760 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1761 tANI_U8 shortSlotTimeSupported;
1762
1763 /*Co-exist with 11a STA*/
1764 tANI_U8 llaCoexist;
1765
1766 /*Co-exist with 11b STA*/
1767 tANI_U8 llbCoexist;
1768
1769 /*Co-exist with 11g STA*/
1770 tANI_U8 llgCoexist;
1771
1772 /*Coexistence with 11n STA*/
1773 tANI_U8 ht20Coexist;
1774
1775 /*Non GF coexist flag*/
1776 tANI_U8 llnNonGFCoexist;
1777
1778 /*TXOP protection support*/
1779 tANI_U8 fLsigTXOPProtectionFullSupport;
1780 /*RIFS mode*/
1781 tANI_U8 fRIFSMode;
1782
1783 /*Beacon Interval in TU*/
1784 tSirMacBeaconInterval beaconInterval;
1785
1786 /*DTIM period*/
1787 tANI_U8 dtimPeriod;
1788
1789 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1790 tANI_U8 txChannelWidthSet;
1791
1792 /*Operating channel*/
1793 tANI_U8 currentOperChannel;
1794
1795 /*Extension channel for channel bonding*/
1796 tANI_U8 currentExtChannel;
1797
1798 /*Reserved to align next field on a dword boundary*/
1799 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001800
1801 /*SSID of the BSS*/
1802 tSirMacSSid ssId;
1803
1804 /*HAL should update the existing BSS entry, if this flag is set.
1805 UMAC will set this flag in case of reassoc, where we want to resue the
1806 the old BSSID and still return success 0 = Add, 1 = Update*/
1807 tANI_U8 action;
1808
1809 /* MAC Rate Set */
1810 tSirMacRateSet rateSet;
1811
1812 /*Enable/Disable HT capabilities of the BSS*/
1813 tANI_U8 htCapable;
1814
1815 // Enable/Disable OBSS protection
1816 tANI_U8 obssProtEnabled;
1817
1818 /*RMF enabled/disabled*/
1819 tANI_U8 rmfEnabled;
1820
1821 /*HT Operating Mode operating mode of the 802.11n STA*/
1822 tSirMacHTOperatingMode htOperMode;
1823
1824 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1825 tANI_U8 dualCTSProtection;
1826
1827 /* Probe Response Max retries */
1828 tANI_U8 ucMaxProbeRespRetryLimit;
1829
1830 /* To Enable Hidden ssid */
1831 tANI_U8 bHiddenSSIDEn;
1832
1833 /* To Enable Disable FW Proxy Probe Resp */
1834 tANI_U8 bProxyProbeRespEn;
1835
Jeff Johnson32d95a32012-09-10 13:15:23 -07001836 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1837 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001838 0 implies Not Valid ; Non-Zero implies valid*/
1839 tANI_U8 edcaParamsValid;
1840
1841 /*EDCA Parameters for Best Effort Access Category*/
1842 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001843
Jeff Johnson295189b2012-06-20 16:38:30 -07001844 /*EDCA Parameters forBackground Access Category*/
1845 tSirMacEdcaParamRecord acbk;
1846
1847 /*EDCA Parameters for Video Access Category*/
1848 tSirMacEdcaParamRecord acvi;
1849
1850 /*EDCA Parameters for Voice Access Category*/
1851 tSirMacEdcaParamRecord acvo;
1852
1853#ifdef WLAN_FEATURE_VOWIFI_11R
1854 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1855 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1856#endif
1857
Jeff Johnson32d95a32012-09-10 13:15:23 -07001858 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001859 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001860
Jeff Johnson295189b2012-06-20 16:38:30 -07001861 tANI_U8 bSpectrumMgtEnable;
1862
1863 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1864 tANI_S8 txMgmtPower;
1865 /*maxTxPower has max power to be used after applying the power constraint if any */
1866 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001867 /*Context of the station being added in HW
1868 Add a STA entry for "itself" -
1869 On AP - Add the AP itself in an "STA context"
1870 On STA - Add the AP to which this STA is joining in an "STA context" */
1871 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001872
Jeff Johnsone7245742012-09-05 17:12:55 -07001873 tANI_U8 vhtCapable;
1874 tANI_U8 vhtTxChannelWidthSet;
1875} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001876
1877typedef PACKED_PRE struct PACKED_POST
1878{
1879 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001880 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001881 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001882 tConfigBssParams_V1 configBssParams_V1;
1883 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001884} tConfigBssReqMsg, *tpConfigBssReqMsg;
1885
1886/*---------------------------------------------------------------------------
1887 WLAN_HAL_CONFIG_BSS_RSP
1888---------------------------------------------------------------------------*/
1889
1890typedef PACKED_PRE struct PACKED_POST
1891{
1892 /* Success or Failure */
1893 tANI_U32 status;
1894
1895 /* BSS index allocated by HAL */
1896 tANI_U8 bssIdx;
1897
1898 /* DPU descriptor index for PTK */
1899 tANI_U8 dpuDescIndx;
1900
1901 /* PTK DPU signature */
1902 tANI_U8 ucastDpuSignature;
1903
1904 /* DPU descriptor index for GTK*/
1905 tANI_U8 bcastDpuDescIndx;
1906
1907 /* GTK DPU signature */
1908 tANI_U8 bcastDpuSignature;
1909
1910 /*DPU descriptor for IGTK*/
1911 tANI_U8 mgmtDpuDescIndx;
1912
1913 /* IGTK DPU signature */
1914 tANI_U8 mgmtDpuSignature;
1915
1916 /* Station Index for BSS entry*/
1917 tANI_U8 bssStaIdx;
1918
1919 /* Self station index for this BSS */
1920 tANI_U8 bssSelfStaIdx;
1921
1922 /* Bcast station for buffering bcast frames in AP role */
1923 tANI_U8 bssBcastStaIdx;
1924
1925 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1926 tSirMacAddr staMac;
1927
1928 /*HAL fills in the tx power used for mgmt frames in this field. */
1929 tANI_S8 txMgmtPower;
1930
1931} tConfigBssRspParams, * tpConfigBssRspParams;
1932
1933typedef PACKED_PRE struct PACKED_POST
1934{
1935 tHalMsgHeader header;
1936 tConfigBssRspParams configBssRspParams;
1937} tConfigBssRspMsg, *tpConfigBssRspMsg;
1938
1939/*---------------------------------------------------------------------------
1940 WLAN_HAL_DELETE_BSS_REQ
1941---------------------------------------------------------------------------*/
1942
1943typedef PACKED_PRE struct PACKED_POST
1944{
1945 /* BSS index to be deleted */
1946 tANI_U8 bssIdx;
1947
1948} tDeleteBssParams, *tpDeleteBssParams;
1949
1950typedef PACKED_PRE struct PACKED_POST
1951{
1952 tHalMsgHeader header;
1953 tDeleteBssParams deleteBssParams;
1954} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1955
1956/*---------------------------------------------------------------------------
1957 WLAN_HAL_DELETE_BSS_RSP
1958---------------------------------------------------------------------------*/
1959
1960typedef PACKED_PRE struct PACKED_POST
1961{
1962 /* Success or Failure */
1963 tANI_U32 status;
1964
1965 /* BSS index that has been deleted */
1966 tANI_U8 bssIdx;
1967
1968} tDeleteBssRspParams, *tpDeleteBssRspParams;
1969
1970typedef PACKED_PRE struct PACKED_POST
1971{
1972 tHalMsgHeader header;
1973 tDeleteBssRspParams deleteBssRspParams;
1974} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
1975
1976/*---------------------------------------------------------------------------
1977 WLAN_HAL_JOIN_REQ
1978---------------------------------------------------------------------------*/
1979
1980typedef PACKED_PRE struct PACKED_POST
1981{
1982 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07001983 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001984
1985 /*Indicates the channel to switch to.*/
1986 tANI_U8 ucChannel;
1987
1988 /* Self STA MAC */
1989 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001990
Jeff Johnson295189b2012-06-20 16:38:30 -07001991 /*Local power constraint*/
1992 tANI_U8 ucLocalPowerConstraint;
1993
1994 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07001995 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07001996
1997 /*link State*/
1998 tSirLinkState linkState;
1999
2000 /* Max TX power */
2001 tANI_S8 maxTxPower;
2002
2003} tHalJoinReqParams, *tpHalJoinReqParams;
2004
2005typedef PACKED_PRE struct PACKED_POST
2006{
2007 tHalMsgHeader header;
2008 tHalJoinReqParams joinReqParams;
2009} tHalJoinReqMsg, *tpHalJoinReqMsg;
2010
2011/*---------------------------------------------------------------------------
2012 WLAN_HAL_JOIN_RSP
2013---------------------------------------------------------------------------*/
2014
2015typedef PACKED_PRE struct PACKED_POST
2016{
2017 /*success or failure */
2018 tANI_U32 status;
2019
2020 /* HAL fills in the tx power used for mgmt frames in this field */
2021 tPowerdBm txMgmtPower;
2022
2023}tHalJoinRspParams, *tpHalJoinRspParams;
2024
2025typedef PACKED_PRE struct PACKED_POST
2026{
2027 tHalMsgHeader header;
2028 tHalJoinRspParams joinRspParams;
2029}tHalJoinRspMsg, *tpHalJoinRspMsg;
2030
2031/*---------------------------------------------------------------------------
2032 WLAN_HAL_POST_ASSOC_REQ
2033---------------------------------------------------------------------------*/
2034
2035typedef PACKED_PRE struct PACKED_POST
2036{
2037 tConfigStaParams configStaParams;
2038 tConfigBssParams configBssParams;
2039} tPostAssocReqParams, *tpPostAssocReqParams;
2040
2041typedef PACKED_PRE struct PACKED_POST
2042{
2043 tHalMsgHeader header;
2044 tPostAssocReqParams postAssocReqParams;
2045} tPostAssocReqMsg, *tpPostAssocReqMsg;
2046
2047/*---------------------------------------------------------------------------
2048 WLAN_HAL_POST_ASSOC_RSP
2049---------------------------------------------------------------------------*/
2050
2051typedef PACKED_PRE struct PACKED_POST
2052{
2053 tConfigStaRspParams configStaRspParams;
2054 tConfigBssRspParams configBssRspParams;
2055} tPostAssocRspParams, *tpPostAssocRspParams;
2056
2057typedef PACKED_PRE struct PACKED_POST
2058{
2059 tHalMsgHeader header;
2060 tPostAssocRspParams postAssocRspParams;
2061} tPostAssocRspMsg, *tpPostAssocRspMsg;
2062
2063/*---------------------------------------------------------------------------
2064 WLAN_HAL_SET_BSSKEY_REQ
2065---------------------------------------------------------------------------*/
2066
2067/*
2068 * This is used by PE to create a set of WEP keys for a given BSS.
2069 */
2070typedef PACKED_PRE struct PACKED_POST
2071{
2072 /*BSS Index of the BSS*/
2073 tANI_U8 bssIdx;
2074
2075 /*Encryption Type used with peer*/
2076 tAniEdType encType;
2077
2078 /*Number of keys*/
2079 tANI_U8 numKeys;
2080
2081 /*Array of keys.*/
2082 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002083
Jeff Johnson295189b2012-06-20 16:38:30 -07002084 /*Control for Replay Count, 1= Single TID based replay count on Tx
2085 0 = Per TID based replay count on TX */
2086 tANI_U8 singleTidRc;
2087} tSetBssKeyParams, *tpSetBssKeyParams;
2088
2089typedef PACKED_PRE struct PACKED_POST
2090{
2091 tHalMsgHeader header;
2092 tSetBssKeyParams setBssKeyParams;
2093} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2094
2095/*---------------------------------------------------------------------------
2096 WLAN_HAL_SET_BSSKEY_RSP
2097---------------------------------------------------------------------------*/
2098typedef PACKED_PRE struct PACKED_POST
2099{
2100 /*success or failure */
2101 tANI_U32 status;
2102
2103} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2104
2105typedef PACKED_PRE struct PACKED_POST
2106{
2107 tHalMsgHeader header;
2108 tSetBssKeyRspParams setBssKeyRspParams;
2109} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2110
2111/*---------------------------------------------------------------------------
2112 WLAN_HAL_SET_STAKEY_REQ,
2113---------------------------------------------------------------------------*/
2114
2115/*
2116 * This is used by PE to configure the key information on a given station.
2117 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2118 * a preconfigured key from a BSS the station assoicated with; otherwise
2119 * a new key descriptor is created based on the key field.
2120 */
2121
2122typedef PACKED_PRE struct PACKED_POST
2123{
2124 tHalMsgHeader header;
2125 tSetStaKeyParams setStaKeyParams;
2126} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2127
2128/*---------------------------------------------------------------------------
2129 WLAN_HAL_SET_STAKEY_RSP,
2130---------------------------------------------------------------------------*/
2131typedef PACKED_PRE struct PACKED_POST
2132{
2133 /*success or failure */
2134 tANI_U32 status;
2135
2136} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2137
2138typedef PACKED_PRE struct PACKED_POST
2139{
2140 tHalMsgHeader header;
2141 tSetStaKeyRspParams setStaKeyRspParams;
2142} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2143
2144/*---------------------------------------------------------------------------
2145 WLAN_HAL_RMV_BSSKEY_REQ,
2146---------------------------------------------------------------------------*/
2147/*
2148 * This is used by PE to remove keys for a given BSS.
2149 */
2150typedef PACKED_PRE struct PACKED_POST
2151
2152{
2153 /*BSS Index of the BSS*/
2154 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002155
Jeff Johnson295189b2012-06-20 16:38:30 -07002156 /*Encryption Type used with peer*/
2157 tAniEdType encType;
2158
2159 /*Key Id*/
2160 tANI_U8 keyId;
2161
2162 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2163 tAniWepType wepType;
2164
2165} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2166
2167typedef PACKED_PRE struct PACKED_POST
2168{
2169 tHalMsgHeader header;
2170 tRemoveBssKeyParams removeBssKeyParams;
2171} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2172
2173/*---------------------------------------------------------------------------
2174 WLAN_HAL_RMV_BSSKEY_RSP,
2175---------------------------------------------------------------------------*/
2176typedef PACKED_PRE struct PACKED_POST
2177{
2178 /*success or failure */
2179 tANI_U32 status;
2180
2181} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2182
2183typedef PACKED_PRE struct PACKED_POST
2184{
2185 tHalMsgHeader header;
2186 tRemoveBssKeyRspParams removeBssKeyRspParams;
2187} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2188
2189/*---------------------------------------------------------------------------
2190 WLAN_HAL_RMV_STAKEY_REQ,
2191---------------------------------------------------------------------------*/
2192/*
2193 * This is used by PE to Remove the key information on a given station.
2194 */
2195typedef PACKED_PRE struct PACKED_POST
2196{
2197 /*STA Index*/
2198 tANI_U16 staIdx;
2199
2200 /*Encryption Type used with peer*/
2201 tAniEdType encType;
2202
2203 /*Key Id*/
2204 tANI_U8 keyId;
2205
2206 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2207 the same key is used for both broadcast and unicast.*/
2208 tANI_BOOLEAN unicast;
2209
2210} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2211
2212typedef PACKED_PRE struct PACKED_POST
2213{
2214 tHalMsgHeader header;
2215 tRemoveStaKeyParams removeStaKeyParams;
2216} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2217
2218/*---------------------------------------------------------------------------
2219 WLAN_HAL_RMV_STAKEY_RSP,
2220---------------------------------------------------------------------------*/
2221typedef PACKED_PRE struct PACKED_POST
2222{
2223 /*success or failure */
2224 tANI_U32 status;
2225} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2226
2227typedef PACKED_PRE struct PACKED_POST
2228{
2229 tHalMsgHeader header;
2230 tRemoveStaKeyRspParams removeStaKeyRspParams;
2231} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2232
Jeff Johnsone7245742012-09-05 17:12:55 -07002233#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002234
Jeff Johnsone7245742012-09-05 17:12:55 -07002235#ifndef OEM_DATA_REQ_SIZE
Madan Mohan Koyyalamudi2a1b1e12012-12-05 15:58:49 -08002236#define OEM_DATA_REQ_SIZE 70
Jeff Johnsone7245742012-09-05 17:12:55 -07002237#endif
2238
2239#ifndef OEM_DATA_RSP_SIZE
Madan Mohan Koyyalamudi2a1b1e12012-12-05 15:58:49 -08002240#define OEM_DATA_RSP_SIZE 968
Jeff Johnsone7245742012-09-05 17:12:55 -07002241#endif
2242
2243/*-------------------------------------------------------------------------
2244WLAN_HAL_START_OEM_DATA_REQ
2245--------------------------------------------------------------------------*/
2246typedef PACKED_PRE struct PACKED_POST
2247{
2248 tANI_U32 status;
2249 tSirMacAddr selfMacAddr;
2250 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2251} tStartOemDataReqParams, *tpStartOemDataReqParams;
2252
2253typedef PACKED_PRE struct PACKED_POST
2254{
2255 tHalMsgHeader header;
2256 tStartOemDataReqParams startOemDataReqParams;
2257} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2258
2259/*-------------------------------------------------------------------------
2260WLAN_HAL_START_OEM_DATA_RSP
2261--------------------------------------------------------------------------*/
2262
2263typedef PACKED_PRE struct PACKED_POST
2264{
2265 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2266} tStartOemDataRspParams, *tpStartOemDataRspParams;
2267
2268typedef PACKED_PRE struct PACKED_POST
2269{
2270 tHalMsgHeader header;
2271 tStartOemDataRspParams startOemDataRspParams;
2272} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2273
2274#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002275
2276
2277
2278/*---------------------------------------------------------------------------
2279WLAN_HAL_CH_SWITCH_REQ
2280---------------------------------------------------------------------------*/
2281
2282typedef PACKED_PRE struct PACKED_POST
2283{
2284 /* Channel number */
2285 tANI_U8 channelNumber;
2286
2287 /* Local power constraint */
2288 tANI_U8 localPowerConstraint;
2289
2290 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002291 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002292
2293 //HAL fills in the tx power used for mgmt frames in this field.
2294 tPowerdBm txMgmtPower;
2295
2296 /* Max TX power */
2297 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002298
Jeff Johnson295189b2012-06-20 16:38:30 -07002299 /* Self STA MAC */
2300 tSirMacAddr selfStaMacAddr;
2301
2302 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2303 this should be applied only to that session*/
2304 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2305 * bssid needs to be out of the VOWifi feature flag */
2306 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2307 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2308 */
2309 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002310
Jeff Johnson295189b2012-06-20 16:38:30 -07002311}tSwitchChannelParams, *tpSwitchChannelParams;
2312
2313typedef PACKED_PRE struct PACKED_POST
2314{
2315 tHalMsgHeader header;
2316 tSwitchChannelParams switchChannelParams;
2317} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2318
2319/*---------------------------------------------------------------------------
2320WLAN_HAL_CH_SWITCH_RSP
2321---------------------------------------------------------------------------*/
2322
2323typedef PACKED_PRE struct PACKED_POST
2324{
2325 /* Status */
2326 tANI_U32 status;
2327
2328 /* Channel number - same as in request*/
2329 tANI_U8 channelNumber;
2330
2331 /* HAL fills in the tx power used for mgmt frames in this field */
2332 tPowerdBm txMgmtPower;
2333
2334 /* BSSID needed to identify session - same as in request*/
2335 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002336
Jeff Johnson295189b2012-06-20 16:38:30 -07002337}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2338
2339typedef PACKED_PRE struct PACKED_POST
2340{
2341 tHalMsgHeader header;
2342 tSwitchChannelRspParams switchChannelRspParams;
2343} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2344
2345/*---------------------------------------------------------------------------
2346WLAN_HAL_UPD_EDCA_PARAMS_REQ
2347---------------------------------------------------------------------------*/
2348
2349typedef PACKED_PRE struct PACKED_POST
2350{
2351 /*BSS Index*/
2352 tANI_U16 bssIdx;
2353
2354 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002355 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002356
2357 /* Background */
2358 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002359
Jeff Johnson295189b2012-06-20 16:38:30 -07002360 /* Video */
2361 tSirMacEdcaParamRecord acvi;
2362
2363 /* Voice */
2364 tSirMacEdcaParamRecord acvo;
2365
2366} tEdcaParams, *tpEdcaParams;
2367
2368typedef PACKED_PRE struct PACKED_POST
2369{
2370 tHalMsgHeader header;
2371 tEdcaParams edcaParams;
2372} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2373
2374/*---------------------------------------------------------------------------
2375WLAN_HAL_UPD_EDCA_PARAMS_RSP
2376---------------------------------------------------------------------------*/
2377typedef PACKED_PRE struct PACKED_POST
2378{
2379 /*success or failure */
2380 tANI_U32 status;
2381} tEdcaRspParams, *tpEdcaRspParams;
2382
2383typedef PACKED_PRE struct PACKED_POST
2384{
2385 tHalMsgHeader header;
2386 tEdcaRspParams edcaRspParams;
2387} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2388
2389
2390
2391/*---------------------------------------------------------------------------
2392 * WLAN_HAL_GET_STATS_REQ
2393 *--------------------------------------------------------------------------*/
2394typedef PACKED_PRE struct PACKED_POST
2395
2396{
2397 /* Index of STA to which the statistics */
2398 tANI_U16 staIdx;
2399
2400 /* Encryption mode */
2401 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002402
Jeff Johnson295189b2012-06-20 16:38:30 -07002403 /* status */
2404 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002405
Jeff Johnson295189b2012-06-20 16:38:30 -07002406 /* Statistics */
2407 tANI_U32 sendBlocks;
2408 tANI_U32 recvBlocks;
2409 tANI_U32 replays;
2410 tANI_U8 micErrorCnt;
2411 tANI_U32 protExclCnt;
2412 tANI_U16 formatErrCnt;
2413 tANI_U16 unDecryptableCnt;
2414 tANI_U32 decryptErrCnt;
2415 tANI_U32 decryptOkCnt;
2416} tDpuStatsParams, * tpDpuStatsParams;
2417
2418typedef PACKED_PRE struct PACKED_POST
2419{
2420 /* Valid STA Idx for per STA stats request */
2421 tANI_U32 staId;
2422
2423 /* Categories of stats requested as specified in eHalStatsMask*/
2424 tANI_U32 statsMask;
2425}tHalStatsReqParams, *tpHalStatsReqParams;
2426
2427typedef PACKED_PRE struct PACKED_POST
2428{
2429 tHalMsgHeader header;
2430 tHalStatsReqParams statsReqParams;
2431} tHalStatsReqMsg, *tpHalStatsReqMsg;
2432
2433/*---------------------------------------------------------------------------
2434 * WLAN_HAL_GET_STATS_RSP
2435 *--------------------------------------------------------------------------*/
2436
2437typedef PACKED_PRE struct PACKED_POST
2438{
2439 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2440 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2441 // station successfully transmitted after more than one retransmission attempt
2442
Jeff Johnson32d95a32012-09-10 13:15:23 -07002443 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2444 //(with and without retries, including multi-cast, broadcast)
2445 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2446 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002447 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2448 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2449 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2450 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 -07002451 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2452 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 -07002453 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2454 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 -07002455 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2456 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002457 //to provide this.
2458}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2459
2460
2461// defines tx_rate_flags
2462typedef enum eTxRateInfo
2463{
2464 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2465 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2466 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2467 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2468 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2469} tTxrateinfoflags;
2470
2471
2472typedef PACKED_PRE struct PACKED_POST
2473{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002474 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 -07002475 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002476 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 -07002477 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002478 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2479 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002480 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002481 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2482 //for eg: if it is 10.5dBm, the value would be 105
2483 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2484 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002485
Jeff Johnson32d95a32012-09-10 13:15:23 -07002486 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2487 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002488 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002489 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2490 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002491}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2492
2493typedef PACKED_PRE struct PACKED_POST
2494{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002495 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2496 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002497 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002498 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 -07002499 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002500 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 -07002501 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002502 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 -07002503 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002504 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 -07002505 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002506 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 -07002507 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002508 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 -07002509 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002510 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 -07002511 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002512 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 -07002513 //decrypted
2514 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2515
2516}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002517
Jeff Johnson295189b2012-06-20 16:38:30 -07002518typedef PACKED_PRE struct PACKED_POST
2519{
2520 tAniGlobalSecurityStats ucStats;
2521 tAniGlobalSecurityStats mcbcStats;
2522}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2523
2524typedef PACKED_PRE struct PACKED_POST
2525{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002526 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2527 //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 -07002528 //address 1 field
2529 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 -07002530 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 -07002531 //primary channel
2532 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 -07002533 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 -07002534 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002535 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2536 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002537 //decoded correctly
2538}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2539
2540typedef PACKED_PRE struct PACKED_POST
2541{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002542 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 -07002543 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002544 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2545 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 -07002546 //is transmitted
2547}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2548
2549typedef PACKED_PRE struct PACKED_POST
2550{
2551 /* Success or Failure */
2552 tANI_U32 status;
2553
2554 /* STA Idx */
2555 tANI_U32 staId;
2556
2557 /* Categories of STATS being returned as per eHalStatsMask*/
2558 tANI_U32 statsMask;
2559
2560 /* message type is same as the request type */
2561 tANI_U16 msgType;
2562
2563 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002564 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002565
2566} tHalStatsRspParams, *tpHalStatsRspParams;
2567
2568
2569
2570typedef PACKED_PRE struct PACKED_POST
2571{
2572 tHalMsgHeader header;
2573 tHalStatsRspParams statsRspParams;
2574} tHalStatsRspMsg, *tpHalStatsRspMsg;
2575
2576/*---------------------------------------------------------------------------
2577 * WLAN_HAL_SET_LINK_ST_REQ
2578 *--------------------------------------------------------------------------*/
2579typedef PACKED_PRE struct PACKED_POST
2580{
2581 tSirMacAddr bssid;
2582 tSirLinkState state;
2583 tSirMacAddr selfMacAddr;
2584} tLinkStateParams, *tpLinkStateParams;
2585
2586typedef PACKED_PRE struct PACKED_POST
2587{
2588 tHalMsgHeader header;
2589 tLinkStateParams linkStateParams;
2590} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2591
2592/*---------------------------------------------------------------------------
2593 * WLAN_HAL_SET_LINK_ST_RSP
2594 *--------------------------------------------------------------------------*/
2595
2596typedef PACKED_PRE struct PACKED_POST
2597{
2598 /*success or failure */
2599 tANI_U32 status;
2600} tLinkStateRspParams, *tpLinkStateRspParams;
2601
2602typedef PACKED_PRE struct PACKED_POST
2603{
2604 tHalMsgHeader header;
2605 tLinkStateRspParams linkStateRspParams;
2606} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2607
2608/*---------------------------------------------------------------------------
2609 * WLAN_HAL_ADD_TS_REQ
2610 *--------------------------------------------------------------------------*/
2611
2612/* TSPEC Params */
2613typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2614{
2615#ifndef ANI_LITTLE_BIT_ENDIAN
2616 tANI_U16 ackPolicy : 2;
2617 tANI_U16 userPrio : 3;
2618 tANI_U16 psb : 1;
2619 tANI_U16 aggregation : 1;
2620 tANI_U16 accessPolicy : 2;
2621 tANI_U16 direction : 2;
2622 tANI_U16 tsid : 4;
2623 tANI_U16 trafficType : 1;
2624#else
2625 tANI_U16 trafficType : 1;
2626 tANI_U16 tsid : 4;
2627 tANI_U16 direction : 2;
2628 tANI_U16 accessPolicy : 2;
2629 tANI_U16 aggregation : 1;
2630 tANI_U16 psb : 1;
2631 tANI_U16 userPrio : 3;
2632 tANI_U16 ackPolicy : 2;
2633#endif
2634} __ani_attr_packed tSirMacTSInfoTfc;
2635
2636/* Flag to schedule the traffic type */
2637typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2638{
2639#ifndef ANI_LITTLE_BIT_ENDIAN
2640 tANI_U8 rsvd : 7;
2641 tANI_U8 schedule : 1;
2642#else
2643 tANI_U8 schedule : 1;
2644 tANI_U8 rsvd : 7;
2645#endif
2646} __ani_attr_packed tSirMacTSInfoSch;
2647
2648/* Traffic and scheduling info */
2649typedef __ani_attr_pre_packed struct sSirMacTSInfo
2650{
2651 tSirMacTSInfoTfc traffic;
2652 tSirMacTSInfoSch schedule;
2653} __ani_attr_packed tSirMacTSInfo;
2654
2655/* Information elements */
2656typedef __ani_attr_pre_packed struct sSirMacTspecIE
2657{
2658 tANI_U8 type;
2659 tANI_U8 length;
2660 tSirMacTSInfo tsinfo;
2661 tANI_U16 nomMsduSz;
2662 tANI_U16 maxMsduSz;
2663 tANI_U32 minSvcInterval;
2664 tANI_U32 maxSvcInterval;
2665 tANI_U32 inactInterval;
2666 tANI_U32 suspendInterval;
2667 tANI_U32 svcStartTime;
2668 tANI_U32 minDataRate;
2669 tANI_U32 meanDataRate;
2670 tANI_U32 peakDataRate;
2671 tANI_U32 maxBurstSz;
2672 tANI_U32 delayBound;
2673 tANI_U32 minPhyRate;
2674 tANI_U16 surplusBw;
2675 tANI_U16 mediumTime;
2676}__ani_attr_packed tSirMacTspecIE;
2677
2678typedef PACKED_PRE struct PACKED_POST
2679{
2680 /* Station Index */
2681 tANI_U16 staIdx;
2682
2683 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2684 tANI_U16 tspecIdx;
2685
2686 /* To program TPE with required parameters */
2687 tSirMacTspecIE tspec;
2688
2689 /* U-APSD Flags: 1b per AC. Encoded as follows:
2690 b7 b6 b5 b4 b3 b2 b1 b0 =
2691 X X X X BE BK VI VO */
2692 tANI_U8 uAPSD;
2693
2694 /* These parameters are for all the access categories */
2695 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2696 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2697 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002698
Jeff Johnson295189b2012-06-20 16:38:30 -07002699} tAddTsParams, *tpAddTsParams;
2700
2701typedef PACKED_PRE struct PACKED_POST
2702{
2703 tHalMsgHeader header;
2704 tAddTsParams addTsParams;
2705} tAddTsReqMsg, *tpAddTsReqMsg;
2706
2707/*---------------------------------------------------------------------------
2708 * WLAN_HAL_ADD_TS_RSP
2709 *--------------------------------------------------------------------------*/
2710
2711typedef PACKED_PRE struct PACKED_POST
2712{
2713 /*success or failure */
2714 tANI_U32 status;
2715} tAddTsRspParams, *tpAddTsRspParams;
2716
2717typedef PACKED_PRE struct PACKED_POST
2718{
2719 tHalMsgHeader header;
2720 tAddTsRspParams addTsRspParams;
2721} tAddTsRspMsg, *tpAddTsRspMsg;
2722
2723
2724/*---------------------------------------------------------------------------
2725 * WLAN_HAL_DEL_TS_REQ
2726 *--------------------------------------------------------------------------*/
2727
2728typedef PACKED_PRE struct PACKED_POST
2729{
2730 /* Station Index */
2731 tANI_U16 staIdx;
2732
2733 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2734 tANI_U16 tspecIdx;
2735
2736 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002737 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002738
2739} tDelTsParams, *tpDelTsParams;
2740
2741typedef PACKED_PRE struct PACKED_POST
2742{
2743 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002744 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002745} tDelTsReqMsg, *tpDelTsReqMsg;
2746
2747/*---------------------------------------------------------------------------
2748 * WLAN_HAL_DEL_TS_RSP
2749 *--------------------------------------------------------------------------*/
2750
2751typedef PACKED_PRE struct PACKED_POST
2752{
2753 /*success or failure */
2754 tANI_U32 status;
2755} tDelTsRspParams, *tpDelTsRspParams;
2756
2757typedef PACKED_PRE struct PACKED_POST
2758{
2759 tHalMsgHeader header;
2760 tDelTsRspParams delTsRspParams;
2761} tDelTsRspMsg, *tpDelTsRspMsg;
2762
2763/* End of TSpec Parameters */
2764
2765/* Start of BLOCK ACK related Parameters */
2766
2767/*---------------------------------------------------------------------------
2768 * WLAN_HAL_ADD_BA_SESSION_REQ
2769 *--------------------------------------------------------------------------*/
2770
2771typedef PACKED_PRE struct PACKED_POST
2772{
2773 /* Station Index */
2774 tANI_U16 staIdx;
2775
2776 /* Peer MAC Address */
2777 tSirMacAddr peerMacAddr;
2778
2779 /* ADDBA Action Frame dialog token
2780 HAL will not interpret this object */
2781 tANI_U8 baDialogToken;
2782
2783 /* TID for which the BA is being setup
2784 This identifies the TC or TS of interest */
2785 tANI_U8 baTID;
2786
2787 /* 0 - Delayed BA (Not supported)
2788 1 - Immediate BA */
2789 tANI_U8 baPolicy;
2790
2791 /* Indicates the number of buffers for this TID (baTID)
2792 NOTE - This is the requested buffer size. When this
2793 is processed by HAL and subsequently by HDD, it is
2794 possible that HDD may change this buffer size. Any
2795 change in the buffer size should be noted by PE and
2796 advertized appropriately in the ADDBA response */
2797 tANI_U16 baBufferSize;
2798
2799 /* BA timeout in TU's 0 means no timeout will occur */
2800 tANI_U16 baTimeout;
2801
2802 /* b0..b3 - Fragment Number - Always set to 0
2803 b4..b15 - Starting Sequence Number of first MSDU
2804 for which this BA is setup */
2805 tANI_U16 baSSN;
2806
2807 /* ADDBA direction
2808 1 - Originator
2809 0 - Recipient */
2810 tANI_U8 baDirection;
2811} tAddBASessionParams, *tpAddBASessionParams;
2812
2813typedef PACKED_PRE struct PACKED_POST
2814{
2815 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002816 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002817}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2818
2819/*---------------------------------------------------------------------------
2820 * WLAN_HAL_ADD_BA_SESSION_RSP
2821 *--------------------------------------------------------------------------*/
2822
2823typedef PACKED_PRE struct PACKED_POST
2824{
2825 /*success or failure */
2826 tANI_U32 status;
2827
2828 /* Dialog token */
2829 tANI_U8 baDialogToken;
2830
2831 /* TID for which the BA session has been setup */
2832 tANI_U8 baTID;
2833
2834 /* BA Buffer Size allocated for the current BA session */
2835 tANI_U8 baBufferSize;
2836
2837 tANI_U8 baSessionID;
2838
2839 /* Reordering Window buffer */
2840 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002841
Jeff Johnson295189b2012-06-20 16:38:30 -07002842 /*Station Index to id the sta */
2843 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002844
Jeff Johnson295189b2012-06-20 16:38:30 -07002845 /* Starting Sequence Number */
2846 tANI_U16 SSN;
2847} tAddBASessionRspParams, *tpAddBASessionRspParams;
2848
2849typedef PACKED_PRE struct PACKED_POST
2850{
2851 tHalMsgHeader header;
2852 tAddBASessionRspParams addBASessionRspParams;
2853} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2854
2855/*---------------------------------------------------------------------------
2856 * WLAN_HAL_ADD_BA_REQ
2857 *--------------------------------------------------------------------------*/
2858
2859typedef PACKED_PRE struct PACKED_POST
2860{
2861 /* Session Id */
2862 tANI_U8 baSessionID;
2863
2864 /* Reorder Window Size */
2865 tANI_U8 winSize;
2866
2867#ifdef FEATURE_ON_CHIP_REORDERING
2868 tANI_BOOLEAN isReorderingDoneOnChip;
2869#endif
2870} tAddBAParams, *tpAddBAParams;
2871
2872typedef PACKED_PRE struct PACKED_POST
2873{
2874 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002875 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002876} tAddBAReqMsg, *tpAddBAReqMsg;
2877
2878
2879/*---------------------------------------------------------------------------
2880 * WLAN_HAL_ADD_BA_RSP
2881 *--------------------------------------------------------------------------*/
2882
2883typedef PACKED_PRE struct PACKED_POST
2884{
2885 /*success or failure */
2886 tANI_U32 status;
2887
2888 /* Dialog token */
2889 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002890
Jeff Johnson295189b2012-06-20 16:38:30 -07002891} tAddBARspParams, *tpAddBARspParams;
2892
2893typedef PACKED_PRE struct PACKED_POST
2894{
2895 tHalMsgHeader header;
2896 tAddBARspParams addBARspParams;
2897} tAddBARspMsg, *tpAddBARspMsg;
2898
2899
2900/*---------------------------------------------------------------------------
2901 * WLAN_HAL_TRIGGER_BA_REQ
2902 *--------------------------------------------------------------------------*/
2903
2904
2905typedef struct sAddBaInfo
2906{
2907 tANI_U16 fBaEnable : 1;
2908 tANI_U16 startingSeqNum: 12;
2909 tANI_U16 reserved : 3;
2910}tAddBaInfo, *tpAddBaInfo;
2911
2912typedef struct sTriggerBaRspCandidate
2913{
2914 tSirMacAddr staAddr;
2915 tAddBaInfo baInfo[STACFG_MAX_TC];
2916}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2917
2918typedef struct sTriggerBaCandidate
2919{
2920 tANI_U8 staIdx;
2921 tANI_U8 tidBitmap;
2922}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2923
2924typedef PACKED_PRE struct PACKED_POST
2925{
2926 /* Session Id */
2927 tANI_U8 baSessionID;
2928
Jeff Johnson32d95a32012-09-10 13:15:23 -07002929 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002930 * Candidate List(tTriggerBaCandidate)
2931 */
2932 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002933
Jeff Johnson295189b2012-06-20 16:38:30 -07002934} tTriggerBAParams, *tpTriggerBAParams;
2935
2936typedef PACKED_PRE struct PACKED_POST
2937{
2938 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002939 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002940} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2941
2942
2943/*---------------------------------------------------------------------------
2944 * WLAN_HAL_TRIGGER_BA_RSP
2945 *--------------------------------------------------------------------------*/
2946
2947typedef PACKED_PRE struct PACKED_POST
2948{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002949
Jeff Johnson295189b2012-06-20 16:38:30 -07002950 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002951 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002952
2953 /* success or failure */
2954 tANI_U32 status;
2955
Jeff Johnson32d95a32012-09-10 13:15:23 -07002956 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002957 * Rsp Candidate List(tTriggerRspBaCandidate)
2958 */
2959 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002960
Jeff Johnson295189b2012-06-20 16:38:30 -07002961
2962} tTriggerBARspParams, *tpTriggerBARspParams;
2963
2964typedef PACKED_PRE struct PACKED_POST
2965{
2966 tHalMsgHeader header;
2967 tTriggerBARspParams triggerBARspParams;
2968} tTriggerBARspMsg, *tpTriggerBARspMsg;
2969
2970/*---------------------------------------------------------------------------
2971 * WLAN_HAL_DEL_BA_REQ
2972 *--------------------------------------------------------------------------*/
2973
2974typedef PACKED_PRE struct PACKED_POST
2975{
2976 /* Station Index */
2977 tANI_U16 staIdx;
2978
2979 /* TID for which the BA session is being deleted */
2980 tANI_U8 baTID;
2981
2982 /* DELBA direction
2983 1 - Originator
2984 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002985 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07002986} tDelBAParams, *tpDelBAParams;
2987
2988typedef PACKED_PRE struct PACKED_POST
2989{
2990 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002991 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002992} tDelBAReqMsg, *tpDelBAReqMsg;
2993
2994/*---------------------------------------------------------------------------
2995 * WLAN_HAL_DEL_BA_RSP
2996 *--------------------------------------------------------------------------*/
2997
2998typedef PACKED_PRE struct PACKED_POST
2999{
3000 /* success or failure */
3001 tANI_U32 status;
3002} tDelBARspParams, *tpDelBARspParams;
3003
3004typedef PACKED_PRE struct PACKED_POST
3005{
3006 tHalMsgHeader header;
3007 tDelBARspParams delBARspParams;
3008} tDelBARspMsg, *tpDelBARspMsg;
3009
3010
3011#ifdef FEATURE_WLAN_CCX
3012
3013/*---------------------------------------------------------------------------
3014 * WLAN_HAL_TSM_STATS_REQ
3015 *--------------------------------------------------------------------------*/
3016typedef PACKED_PRE struct PACKED_POST
3017{
3018 /* Traffic Id */
3019 tANI_U8 tsmTID;
3020
3021 tSirMacAddr bssId;
3022} tTsmStatsParams, *tpTsmStatsParams;
3023
3024typedef PACKED_PRE struct PACKED_POST
3025{
3026 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003027 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003028} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3029
3030
3031/*---------------------------------------------------------------------------
3032 * WLAN_HAL_TSM_STATS_RSP
3033 *--------------------------------------------------------------------------*/
3034typedef PACKED_PRE struct PACKED_POST
3035{
3036 /*success or failure */
3037 tANI_U32 status;
3038
Jeff Johnson32d95a32012-09-10 13:15:23 -07003039 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003040 tANI_U16 UplinkPktQueueDly;
3041
Jeff Johnson32d95a32012-09-10 13:15:23 -07003042 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003043 tANI_U16 UplinkPktQueueDlyHist[4];
3044
Jeff Johnson32d95a32012-09-10 13:15:23 -07003045 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003046 tANI_U32 UplinkPktTxDly;
3047
Jeff Johnson32d95a32012-09-10 13:15:23 -07003048 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003049 tANI_U16 UplinkPktLoss;
3050
Jeff Johnson32d95a32012-09-10 13:15:23 -07003051 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003052 tANI_U16 UplinkPktCount;
3053
Jeff Johnson32d95a32012-09-10 13:15:23 -07003054 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003055 tANI_U8 RoamingCount;
3056
Jeff Johnson32d95a32012-09-10 13:15:23 -07003057 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003058 tANI_U16 RoamingDly;
3059} tTsmStatsRspParams, *tpTsmStatsRspParams;
3060
3061typedef PACKED_PRE struct PACKED_POST
3062{
3063 tHalMsgHeader header;
3064 tTsmStatsRspParams tsmStatsRspParams;
3065} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3066
3067
3068#endif
3069
3070/*---------------------------------------------------------------------------
3071 * WLAN_HAL_SET_KEYDONE_MSG
3072 *--------------------------------------------------------------------------*/
3073
3074typedef PACKED_PRE struct PACKED_POST
3075{
3076 /*bssid of the keys */
3077 tANI_U8 bssidx;
3078 tANI_U8 encType;
3079} tSetKeyDoneParams, *tpSetKeyDoneParams;
3080
3081typedef PACKED_PRE struct PACKED_POST
3082{
3083 tHalMsgHeader header;
3084 tSetKeyDoneParams setKeyDoneParams;
3085} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3086
3087/*---------------------------------------------------------------------------
3088 * WLAN_HAL_DOWNLOAD_NV_REQ
3089 *--------------------------------------------------------------------------*/
3090typedef PACKED_PRE struct PACKED_POST
3091{
3092 /* Fragment sequence number of the NV Image. Note that NV Image might not
3093 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003094 * can hence choose to chop the NV blob into multiple fragments starting with
3095 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003096 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3097 * concatenated together by HAL without any padding bytes in between.*/
3098 tANI_U16 fragNumber;
3099
3100 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003101 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003102 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3103 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3104 tANI_U16 isLastFragment;
3105
3106 /* NV Image size (number of bytes) */
3107 tANI_U32 nvImgBufferSize;
3108
3109 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3110 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3111} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3112
3113typedef PACKED_PRE struct PACKED_POST
3114{
3115 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3116 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3117 tHalMsgHeader header;
3118 tHalNvImgDownloadReqParams nvImageReqParams;
3119} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3120
3121/*---------------------------------------------------------------------------
3122 * WLAN_HAL_DOWNLOAD_NV_RSP
3123 *--------------------------------------------------------------------------*/
3124typedef PACKED_PRE struct PACKED_POST
3125{
3126 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3127 * after each fragment */
3128 tANI_U32 status;
3129} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3130
3131typedef PACKED_PRE struct PACKED_POST
3132{
3133 tHalMsgHeader header;
3134 tHalNvImgDownloadRspParams nvImageRspParams;
3135} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3136
3137/*---------------------------------------------------------------------------
3138 * WLAN_HAL_STORE_NV_IND
3139 *--------------------------------------------------------------------------*/
3140typedef PACKED_PRE struct PACKED_POST
3141{
3142 /* NV Item */
3143 eNvTable tableID;
3144
3145 /* Size of NV Blob */
3146 tANI_U32 nvBlobSize;
3147
Jeff Johnson32d95a32012-09-10 13:15:23 -07003148 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003149 * NV blob i.e. uint8[nvBlobSize] */
3150} tHalNvStoreParams, *tpHalNvStoreParams;
3151
3152typedef PACKED_PRE struct PACKED_POST
3153{
3154 /* Note: The length specified in tHalNvStoreInd messages should be
3155 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3156 tHalMsgHeader header;
3157 tHalNvStoreParams nvStoreParams;
3158} tHalNvStoreInd, *tpHalNvStoreInd;
3159
3160/* End of Block Ack Related Parameters */
3161
3162/*---------------------------------------------------------------------------
3163 * WLAN_HAL_MIC_FAILURE_IND
3164 *--------------------------------------------------------------------------*/
3165
3166#define SIR_CIPHER_SEQ_CTR_SIZE 6
3167
3168typedef PACKED_PRE struct PACKED_POST
3169{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003170 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003171 tSirMacAddr taMacAddr; //transmitter address
3172 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003173 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003174 tANI_U8 IV1; // first byte of IV
3175 tANI_U8 keyId; // second byte of IV
3176 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3177 tSirMacAddr rxMacAddr; // receive address
3178} tSirMicFailureInfo, *tpSirMicFailureInfo;
3179
3180/* Definition for MIC failure indication
3181 MAC reports this each time a MIC failure occures on Rx TKIP packet
3182 */
3183typedef PACKED_PRE struct PACKED_POST
3184{
3185 tSirMacAddr bssId; // BSSID
3186 tSirMicFailureInfo info;
3187} tSirMicFailureInd, *tpSirMicFailureInd;
3188
3189typedef PACKED_PRE struct PACKED_POST
3190{
3191 tHalMsgHeader header;
3192 tSirMicFailureInd micFailureInd;
3193} tMicFailureIndMsg, *tpMicFailureIndMsg;
3194
Mohit Khanna4a70d262012-09-11 16:30:12 -07003195typedef PACKED_PRE struct PACKED_POST
3196{
3197 tANI_U16 opMode;
3198 tANI_U16 staId;
3199}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3200
3201typedef PACKED_PRE struct PACKED_POST
3202{
3203 tHalMsgHeader header;
3204 tUpdateVHTOpMode updateVhtOpMode;
3205} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3206
3207typedef PACKED_PRE struct PACKED_POST
3208{
3209 tANI_U32 status;
3210} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3211
3212typedef PACKED_PRE struct PACKED_POST
3213{
3214 tHalMsgHeader header;
3215 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3216} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3217
Jeff Johnson295189b2012-06-20 16:38:30 -07003218/*---------------------------------------------------------------------------
3219 * WLAN_HAL_UPDATE_BEACON_REQ
3220 *--------------------------------------------------------------------------*/
3221typedef PACKED_PRE struct PACKED_POST
3222{
3223
3224 tANI_U8 bssIdx;
3225
3226 //shortPreamble mode. HAL should update all the STA rates when it
3227 //receives this message
3228 tANI_U8 fShortPreamble;
3229 //short Slot time.
3230 tANI_U8 fShortSlotTime;
3231 //Beacon Interval
3232 tANI_U16 beaconInterval;
3233 //Protection related
3234 tANI_U8 llaCoexist;
3235 tANI_U8 llbCoexist;
3236 tANI_U8 llgCoexist;
3237 tANI_U8 ht20MhzCoexist;
3238 tANI_U8 llnNonGFCoexist;
3239 tANI_U8 fLsigTXOPProtectionFullSupport;
3240 tANI_U8 fRIFSMode;
3241
3242 tANI_U16 paramChangeBitmap;
3243}tUpdateBeaconParams, *tpUpdateBeaconParams;
3244
3245
3246typedef PACKED_PRE struct PACKED_POST
3247{
3248 tHalMsgHeader header;
3249 tUpdateBeaconParams updateBeaconParam;
3250} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3251
3252/*---------------------------------------------------------------------------
3253 * WLAN_HAL_UPDATE_BEACON_RSP
3254 *--------------------------------------------------------------------------*/
3255typedef PACKED_PRE struct PACKED_POST
3256{
3257 tANI_U32 status;
3258} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3259
3260typedef PACKED_PRE struct PACKED_POST
3261{
3262 tHalMsgHeader header;
3263 tUpdateBeaconRspParams updateBeaconRspParam;
3264} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3265
3266/*---------------------------------------------------------------------------
3267 * WLAN_HAL_SEND_BEACON_REQ
3268 *--------------------------------------------------------------------------*/
3269typedef PACKED_PRE struct PACKED_POST
3270{
3271 tANI_U32 beaconLength; //length of the template.
3272 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3273 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003274 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003275 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3276}tSendBeaconParams, *tpSendBeaconParams;
3277
3278
3279typedef PACKED_PRE struct PACKED_POST
3280{
3281 tHalMsgHeader header;
3282 tSendBeaconParams sendBeaconParam;
3283}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3284
3285/*---------------------------------------------------------------------------
3286 * WLAN_HAL_SEND_BEACON_RSP
3287 *--------------------------------------------------------------------------*/
3288typedef PACKED_PRE struct PACKED_POST
3289{
3290 tANI_U32 status;
3291} tSendBeaconRspParams, *tpSendBeaconRspParams;
3292
3293typedef PACKED_PRE struct PACKED_POST
3294{
3295 tHalMsgHeader header;
3296 tSendBeaconRspParams sendBeaconRspParam;
3297} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3298
3299#ifdef FEATURE_5GHZ_BAND
3300
3301/*---------------------------------------------------------------------------
3302 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3303 *--------------------------------------------------------------------------*/
3304typedef PACKED_PRE struct PACKED_POST
3305{
3306 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003307 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003308}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3309
3310
3311typedef PACKED_PRE struct PACKED_POST
3312{
3313 /* Link Parameters */
3314 tSirEnableRadarInfoType EnableRadarInfo;
3315}tEnableRadarReqParams, *tpEnableRadarReqParams;
3316
3317typedef PACKED_PRE struct PACKED_POST
3318{
3319 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003320 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003321}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3322
3323/*---------------------------------------------------------------------------
3324 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3325 *--------------------------------------------------------------------------*/
3326
3327typedef PACKED_PRE struct PACKED_POST
3328{
3329 /* Link Parameters */
3330 tSirMacAddr BSSID;
3331 /* success or failure */
3332 tANI_U32 status;
3333}tEnableRadarRspParams, *tpEnableRadarRspParams;
3334
3335typedef PACKED_PRE struct PACKED_POST
3336{
3337 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003338 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003339}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3340
3341/*---------------------------------------------------------------------------
3342 *WLAN_HAL_RADAR_DETECT_INTR_IND
3343 *--------------------------------------------------------------------------*/
3344
3345typedef PACKED_PRE struct PACKED_POST
3346{
3347 tANI_U8 radarDetChannel;
3348}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3349
3350typedef PACKED_PRE struct PACKED_POST
3351{
3352 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003353 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003354}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3355
3356/*---------------------------------------------------------------------------
3357 *WLAN_HAL_RADAR_DETECT_IND
3358 *-------------------------------------------------------------------------*/
3359typedef PACKED_PRE struct PACKED_POST
3360{
3361 /*channel number in which the RADAR detected*/
3362 tANI_U8 channelNumber;
3363
3364 /*RADAR pulse width*/
3365 tANI_U16 radarPulseWidth; // in usecond
3366
3367 /*Number of RADAR pulses */
3368 tANI_U16 numRadarPulse;
3369}tRadarDetectIndParams,*tpRadarDetectIndParams;
3370
3371typedef PACKED_PRE struct PACKED_POST
3372{
3373 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003374 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003375}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3376
3377
3378/*---------------------------------------------------------------------------
3379 *WLAN_HAL_GET_TPC_REPORT_REQ
3380 *-------------------------------------------------------------------------*/
3381typedef PACKED_PRE struct PACKED_POST
3382{
3383 tSirMacAddr sta;
3384 tANI_U8 dialogToken;
3385 tANI_U8 txpower;
3386}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3387
3388
3389typedef PACKED_PRE struct PACKED_POST
3390{
3391 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003392 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003393}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3394
3395/*---------------------------------------------------------------------------
3396 * WLAN_HAL_GET_TPC_REPORT_RSP
3397 *--------------------------------------------------------------------------*/
3398
3399typedef PACKED_PRE struct PACKED_POST
3400{
3401 /* success or failure */
3402 tANI_U32 status;
3403}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3404
3405typedef PACKED_PRE struct PACKED_POST
3406{
3407 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003408 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003409}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3410
3411#endif
3412
Jeff Johnson295189b2012-06-20 16:38:30 -07003413/*---------------------------------------------------------------------------
3414 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3415 *-------------------------------------------------------------------------*/
3416typedef PACKED_PRE struct PACKED_POST
3417{
3418 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3419 tANI_U32 probeRespTemplateLen;
3420 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3421 tSirMacAddr bssId;
3422
3423}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3424
3425typedef PACKED_PRE struct PACKED_POST
3426{
3427 tHalMsgHeader header;
3428 tSendProbeRespReqParams sendProbeRespReqParams ;
3429}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3430
3431/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003432 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003433 *--------------------------------------------------------------------------*/
3434
3435typedef PACKED_PRE struct PACKED_POST
3436{
3437 /* success or failure */
3438 tANI_U32 status;
3439}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3440
3441typedef PACKED_PRE struct PACKED_POST
3442{
3443 tHalMsgHeader header;
3444 tSendProbeRespRspParams sendProbeRespRspParams;
3445}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3446
3447
3448/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003449 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003450 *--------------------------------------------------------------------------*/
3451
3452typedef PACKED_PRE struct PACKED_POST
3453{
3454 /* success or failure */
3455 tANI_U32 status;
3456}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3457
3458typedef PACKED_PRE struct PACKED_POST
3459{
3460 tHalMsgHeader header;
3461 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3462}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3463
3464/*---------------------------------------------------------------------------
3465 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3466 *--------------------------------------------------------------------------*/
3467
3468typedef PACKED_PRE struct PACKED_POST
3469{
3470 tANI_U16 assocId;
3471 tANI_U16 staId;
3472 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3473 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003474 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003475 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003476
3477}tDeleteStaContextParams, *tpDeleteStaContextParams;
3478
3479
3480typedef PACKED_PRE struct PACKED_POST
3481{
3482 tHalMsgHeader header;
3483 tDeleteStaContextParams deleteStaContextParams;
3484}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3485
Jeff Johnson295189b2012-06-20 16:38:30 -07003486
3487/*---------------------------------------------------------------------------
3488 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3489 *--------------------------------------------------------------------------*/
3490
3491typedef PACKED_PRE struct PACKED_POST
3492{
3493 tBtAmpEventType btAmpEventType;
3494
3495}tBtAmpEventParams, *tpBtAmpEventParams;
3496
3497
3498
3499typedef PACKED_PRE struct PACKED_POST
3500{
3501 tHalMsgHeader header;
3502 tBtAmpEventParams btAmpEventParams;
3503}tBtAmpEventMsg, *tpBtAmpEventMsg;
3504
3505/*---------------------------------------------------------------------------
3506*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3507*--------------------------------------------------------------------------*/
3508
3509typedef PACKED_PRE struct PACKED_POST
3510{
3511 /* success or failure */
3512 tANI_U32 status;
3513}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3514
3515typedef PACKED_PRE struct PACKED_POST
3516{
3517 tHalMsgHeader header;
3518 tBtAmpEventRspParams btAmpEventRspParams;
3519}tBtAmpEventRsp, *tpBtAmpEventRsp;
3520
3521
3522/*---------------------------------------------------------------------------
3523 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3524 *--------------------------------------------------------------------------*/
3525
3526typedef PACKED_PRE struct PACKED_POST
3527{
3528 // Station Index. originates from HAL
3529 tANI_U8 ucSTAId;
3530
3531 // TID for which the transmit queue is being flushed
3532 tANI_U8 ucTid;
3533
3534}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3535
3536
3537typedef PACKED_PRE struct PACKED_POST
3538{
3539 tHalMsgHeader header;
3540 tTlHalFlushAcParams tlHalFlushAcParam;
3541}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3542
3543/*---------------------------------------------------------------------------
3544*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3545*--------------------------------------------------------------------------*/
3546
3547typedef PACKED_PRE struct PACKED_POST
3548{
3549 // Station Index. originates from HAL
3550 tANI_U8 ucSTAId;
3551
3552 // TID for which the transmit queue is being flushed
3553 tANI_U8 ucTid;
3554
3555 /* success or failure */
3556 tANI_U32 status;
3557}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3558
3559typedef PACKED_PRE struct PACKED_POST
3560{
3561 tHalMsgHeader header;
3562 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3563}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3564
3565/*---------------------------------------------------------------------------
3566 * WLAN_HAL_ENTER_IMPS_REQ
3567 *--------------------------------------------------------------------------*/
3568typedef PACKED_PRE struct PACKED_POST
3569{
3570 tHalMsgHeader header;
3571} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3572
3573/*---------------------------------------------------------------------------
3574 * WLAN_HAL_EXIT_IMPS_REQ
3575 *--------------------------------------------------------------------------*/
3576typedef PACKED_PRE struct PACKED_POST
3577{
3578 tHalMsgHeader header;
3579} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3580
3581/*---------------------------------------------------------------------------
3582 * WLAN_HAL_ENTER_BMPS_REQ
3583 *--------------------------------------------------------------------------*/
3584
3585typedef PACKED_PRE struct PACKED_POST
3586{
3587 tANI_U8 bssIdx;
3588 //TBTT value derived from the last beacon
3589#ifndef BUILD_QWPTTSTATIC
3590 tANI_U64 tbtt;
3591#endif
3592 tANI_U8 dtimCount;
3593 //DTIM period given to HAL during association may not be valid,
3594 //if association is based on ProbeRsp instead of beacon.
3595 tANI_U8 dtimPeriod;
3596
3597 // For CCX and 11R Roaming
3598 tANI_U32 rssiFilterPeriod;
3599 tANI_U32 numBeaconPerRssiAverage;
3600 tANI_U8 bRssiFilterEnable;
3601
3602} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3603
3604
3605typedef PACKED_PRE struct PACKED_POST
3606{
3607 tHalMsgHeader header;
3608 tHalEnterBmpsReqParams enterBmpsReq;
3609} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3610
3611/*---------------------------------------------------------------------------
3612 * WLAN_HAL_EXIT_BMPS_REQ
3613 *--------------------------------------------------------------------------*/
3614typedef PACKED_PRE struct PACKED_POST
3615{
3616 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003617 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003618} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3619
3620typedef PACKED_PRE struct PACKED_POST
3621{
3622 tHalMsgHeader header;
3623 tHalExitBmpsReqParams exitBmpsReqParams;
3624} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3625
3626/*---------------------------------------------------------------------------
3627 * WLAN_HAL_ADD_BCN_FILTER_REQ
3628 *--------------------------------------------------------------------------*/
3629/* Beacon Filtering data structures */
3630typedef PACKED_PRE struct PACKED_POST
3631{
3632 tANI_U8 offset;
3633 tANI_U8 value;
3634 tANI_U8 bitMask;
3635 tANI_U8 ref;
3636} tEidByteInfo, *tpEidByteInfo;
3637
Jeff Johnson32d95a32012-09-10 13:15:23 -07003638typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003639{
3640 tANI_U16 capabilityInfo;
3641 tANI_U16 capabilityMask;
3642 tANI_U16 beaconInterval;
3643 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003644 tANI_U8 bssIdx;
3645 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003646} tBeaconFilterMsg, *tpBeaconFilterMsg;
3647
3648/* The above structure would be followed by multiple of below mentioned structure */
3649typedef PACKED_PRE struct PACKED_POST
3650{
3651 tANI_U8 elementId;
3652 tANI_U8 checkIePresence;
3653 tEidByteInfo byte;
3654} tBeaconFilterIe, *tpBeaconFilterIe;
3655
3656typedef PACKED_PRE struct PACKED_POST
3657{
3658 tHalMsgHeader header;
3659 tBeaconFilterMsg addBcnFilterParams;
3660} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3661
3662/*---------------------------------------------------------------------------
3663 * WLAN_HAL_REM_BCN_FILTER_REQ
3664 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003665typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003666{
3667 tANI_U8 ucIeCount;
3668 tANI_U8 ucRemIeId[1];
3669} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3670
3671typedef PACKED_PRE struct PACKED_POST
3672{
3673 tHalMsgHeader header;
3674 tRemBeaconFilterMsg remBcnFilterParams;
3675} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3676
3677/*---------------------------------------------------------------------------
3678 * WLAN_HAL_HOST_OFFLOAD_REQ
3679 *--------------------------------------------------------------------------*/
3680#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3681#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3682#define HAL_IPV6_NS_OFFLOAD 2
3683#define HAL_IPV6_ADDR_LEN 16
3684#define HAL_MAC_ADDR_LEN 6
3685#define HAL_OFFLOAD_DISABLE 0
3686#define HAL_OFFLOAD_ENABLE 1
3687#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
3688#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
3689
3690typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3691{
3692 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3693 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3694 //Only support 2 possible Network Advertisement IPv6 address
3695 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3696 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3697 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3698 tANI_U8 srcIPv6AddrValid : 1;
3699 tANI_U8 targetIPv6Addr1Valid : 1;
3700 tANI_U8 targetIPv6Addr2Valid : 1;
3701 tANI_U8 reserved1 : 5;
3702 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003703 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003704} tHalNSOffloadParams;
3705
3706typedef PACKED_PRE struct PACKED_POST
3707{
3708 tANI_U8 offloadType;
3709 tANI_U8 enableOrDisable;
3710 PACKED_PRE union PACKED_POST
3711 {
3712 tANI_U8 hostIpv4Addr [4];
3713 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3714 } params;
3715} tHalHostOffloadReq, *tpHalHostOffloadReq;
3716
3717typedef PACKED_PRE struct PACKED_POST
3718{
3719 tHalMsgHeader header;
3720 tHalHostOffloadReq hostOffloadParams;
3721 tHalNSOffloadParams nsOffloadParams;
3722} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3723
3724/*---------------------------------------------------------------------------
3725 * WLAN_HAL_KEEP_ALIVE_REQ
3726 *--------------------------------------------------------------------------*/
3727/* Packet Types. */
3728#define HAL_KEEP_ALIVE_NULL_PKT 1
3729#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3730
3731/* Enable or disable keep alive */
3732#define HAL_KEEP_ALIVE_DISABLE 0
3733#define HAL_KEEP_ALIVE_ENABLE 1
3734
3735/* Keep Alive request. */
3736typedef PACKED_PRE struct PACKED_POST
3737{
3738 tANI_U8 packetType;
3739 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003740 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003741 tHalIpv4Addr destIpv4Addr;
3742 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003743 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003744} tHalKeepAliveReq, *tpHalKeepAliveReq;
3745
3746typedef PACKED_PRE struct PACKED_POST
3747{
3748 tHalMsgHeader header;
3749 tHalKeepAliveReq KeepAliveParams;
3750} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3751
3752/*---------------------------------------------------------------------------
3753 * WLAN_HAL_SET_RSSI_THRESH_REQ
3754 *--------------------------------------------------------------------------*/
3755typedef PACKED_PRE struct PACKED_POST
3756{
3757 tANI_S8 ucRssiThreshold1 : 8;
3758 tANI_S8 ucRssiThreshold2 : 8;
3759 tANI_S8 ucRssiThreshold3 : 8;
3760 tANI_U8 bRssiThres1PosNotify : 1;
3761 tANI_U8 bRssiThres1NegNotify : 1;
3762 tANI_U8 bRssiThres2PosNotify : 1;
3763 tANI_U8 bRssiThres2NegNotify : 1;
3764 tANI_U8 bRssiThres3PosNotify : 1;
3765 tANI_U8 bRssiThres3NegNotify : 1;
3766 tANI_U8 bReserved10 : 2;
3767} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003768
Jeff Johnson295189b2012-06-20 16:38:30 -07003769typedef PACKED_PRE struct PACKED_POST
3770{
3771 tHalMsgHeader header;
3772 tHalRSSIThresholds rssiThreshParams;
3773} tHalRSSIThresholdsReqMsg, *tpHalRSSIThresholdReqMsg;
3774
3775/*---------------------------------------------------------------------------
3776 * WLAN_HAL_ENTER_UAPSD_REQ
3777 *--------------------------------------------------------------------------*/
3778typedef PACKED_PRE struct PACKED_POST
3779{
3780 tANI_U8 bkDeliveryEnabled:1;
3781 tANI_U8 beDeliveryEnabled:1;
3782 tANI_U8 viDeliveryEnabled:1;
3783 tANI_U8 voDeliveryEnabled:1;
3784 tANI_U8 bkTriggerEnabled:1;
3785 tANI_U8 beTriggerEnabled:1;
3786 tANI_U8 viTriggerEnabled:1;
3787 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003788 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003789} tUapsdReqParams, *tpUapsdReqParams;
3790
3791typedef PACKED_PRE struct PACKED_POST
3792{
3793 tHalMsgHeader header;
3794 tUapsdReqParams enterUapsdParams;
3795} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3796
3797/*---------------------------------------------------------------------------
3798 * WLAN_HAL_EXIT_UAPSD_REQ
3799 *--------------------------------------------------------------------------*/
3800typedef PACKED_PRE struct PACKED_POST
3801{
3802 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003803 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003804} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3805
3806/*---------------------------------------------------------------------------
3807 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3808 *--------------------------------------------------------------------------*/
3809#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3810#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3811
3812typedef PACKED_PRE struct PACKED_POST
3813{
3814 tANI_U8 ucPatternId; // Pattern ID
3815 // Pattern byte offset from beginning of the 802.11 packet to start of the
3816 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003817 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003818 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3819 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3820 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3821 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3822 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3823 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003824 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003825} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3826
3827typedef PACKED_PRE struct PACKED_POST
3828{
3829 tHalMsgHeader header;
3830 tHalWowlAddBcastPtrn ptrnParams;
3831} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003832
Jeff Johnsone7245742012-09-05 17:12:55 -07003833
3834
Jeff Johnson295189b2012-06-20 16:38:30 -07003835/*---------------------------------------------------------------------------
3836 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3837 *--------------------------------------------------------------------------*/
3838typedef PACKED_PRE struct PACKED_POST
3839{
3840 /* Pattern ID of the wakeup pattern to be deleted */
3841 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003842 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003843} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3844
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 tHalMsgHeader header;
3848 tHalWowlDelBcastPtrn ptrnParams;
3849} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3850
3851/*---------------------------------------------------------------------------
3852 * WLAN_HAL_ENTER_WOWL_REQ
3853 *--------------------------------------------------------------------------*/
3854typedef PACKED_PRE struct PACKED_POST
3855{
3856 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003857 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003858
3859 /* Magic pattern */
3860 tSirMacAddr magicPtrn;
3861
Jeff Johnson32d95a32012-09-10 13:15:23 -07003862 /* Enables/disables packet pattern filtering in firmware.
3863 Enabling this flag enables broadcast pattern matching
3864 in Firmware. If unicast pattern matching is also desired,
3865 ucUcastPatternFilteringEnable flag must be set tot true
3866 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003867 */
3868 tANI_U8 ucPatternFilteringEnable;
3869
Jeff Johnson32d95a32012-09-10 13:15:23 -07003870 /* Enables/disables unicast packet pattern filtering.
3871 This flag specifies whether we want to do pattern match
3872 on unicast packets as well and not just broadcast packets.
3873 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003874 (main controlling flag) is set to false
3875 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003876 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003877
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
Jeff Johnson295189b2012-06-20 16:38:30 -07003880 * Channel Switch Action Frame.
3881 */
3882 tANI_U8 ucWowChnlSwitchRcv;
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 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003887 */
3888 tANI_U8 ucWowDeauthRcv;
3889
Jeff Johnson32d95a32012-09-10 13:15:23 -07003890 /* This configuration is valid only when magicPktEnable=1.
3891 * It requests hardware to wake up when it receives the
3892 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003893 */
3894 tANI_U8 ucWowDisassocRcv;
3895
Jeff Johnson32d95a32012-09-10 13:15:23 -07003896 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003897 * It requests hardware to wake up when it has missed
3898 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003899 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003900 */
3901 tANI_U8 ucWowMaxMissedBeacons;
3902
Jeff Johnson32d95a32012-09-10 13:15:23 -07003903 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003904 * This is a timeout value in units of microsec. It requests
3905 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003906 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003907 */
3908 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003909
Jeff Johnson295189b2012-06-20 16:38:30 -07003910 /* This configuration directs the WoW packet filtering to look for EAP-ID
3911 * requests embedded in EAPOL frames and use this as a wake source.
3912 */
3913 tANI_U8 ucWoWEAPIDRequestEnable;
3914
3915 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3916 * requests and use this as a wake source.
3917 */
3918 tANI_U8 ucWoWEAPOL4WayEnable;
3919
3920 /* This configuration allows a host wakeup on an network scan offload match.
3921 */
3922 tANI_U8 ucWowNetScanOffloadMatch;
3923
3924 /* This configuration allows a host wakeup on any GTK rekeying error.
3925 */
3926 tANI_U8 ucWowGTKRekeyError;
3927
3928 /* This configuration allows a host wakeup on BSS connection loss.
3929 */
3930 tANI_U8 ucWoWBSSConnLoss;
3931
Jeff Johnsone7245742012-09-05 17:12:55 -07003932 tANI_U8 bssIdx;
3933
Jeff Johnson295189b2012-06-20 16:38:30 -07003934} tHalWowlEnterParams, *tpHalWowlEnterParams;
3935
3936typedef PACKED_PRE struct PACKED_POST
3937{
3938 tHalMsgHeader header;
3939 tHalWowlEnterParams enterWowlParams;
3940} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
3941
3942/*---------------------------------------------------------------------------
3943 * WLAN_HAL_EXIT_WOWL_REQ
3944 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07003945
Jeff Johnson295189b2012-06-20 16:38:30 -07003946typedef PACKED_PRE struct PACKED_POST
3947{
Jeff Johnsone7245742012-09-05 17:12:55 -07003948 tANI_U8 bssIdx;
3949
3950} tHalWowlExitParams, *tpHalWowlExitParams;
3951
3952typedef PACKED_PRE struct PACKED_POST
3953{
3954 tHalMsgHeader header;
3955 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003956} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
3957
3958/*---------------------------------------------------------------------------
3959 * WLAN_HAL_GET_RSSI_REQ
3960 *--------------------------------------------------------------------------*/
3961typedef PACKED_PRE struct PACKED_POST
3962{
3963 tHalMsgHeader header;
3964} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
3965
3966/*---------------------------------------------------------------------------
3967 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
3968 *--------------------------------------------------------------------------*/
3969typedef PACKED_PRE struct PACKED_POST {
3970 tANI_U8 staidx; // STA index
3971 tANI_U8 ac; // Access Category
3972 tANI_U8 up; // User Priority
3973 tANI_U32 srvInterval; // Service Interval
3974 tANI_U32 susInterval; // Suspend Interval
3975 tANI_U32 delayInterval; // Delay Interval
3976} tUapsdInfo, tpUapsdInfo;
3977
3978typedef PACKED_PRE struct PACKED_POST
3979{
3980 tHalMsgHeader header;
3981 tUapsdInfo enableUapsdAcParams;
3982} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
3983
3984/*---------------------------------------------------------------------------
3985 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
3986 *--------------------------------------------------------------------------*/
3987typedef PACKED_PRE struct PACKED_POST {
3988 tANI_U8 setMcstBcstFilterSetting;
3989 tANI_U8 setMcstBcstFilter;
3990} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
3991
3992typedef PACKED_PRE struct PACKED_POST
3993{
3994 tHalMsgHeader header;
3995 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
3996} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
3997
3998/*---------------------------------------------------------------------------
3999 * WLAN_HAL_ENTER_IMPS_RSP
4000 *--------------------------------------------------------------------------*/
4001typedef PACKED_PRE struct PACKED_POST
4002{
4003 /* success or failure */
4004 tANI_U32 status;
4005} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4006
4007typedef PACKED_PRE struct PACKED_POST
4008{
4009 tHalMsgHeader header;
4010 tHalEnterImpsRspParams enterImpsRspParams;
4011} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4012
4013/*---------------------------------------------------------------------------
4014 * WLAN_HAL_EXIT_IMPS_RSP
4015 *--------------------------------------------------------------------------*/
4016typedef PACKED_PRE struct PACKED_POST
4017{
4018 /* success or failure */
4019 tANI_U32 status;
4020} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4021
4022typedef PACKED_PRE struct PACKED_POST
4023{
4024 tHalMsgHeader header;
4025 tHalExitImpsRspParams exitImpsRspParams;
4026} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4027
4028/*---------------------------------------------------------------------------
4029 * WLAN_HAL_ENTER_BMPS_RSP
4030 *--------------------------------------------------------------------------*/
4031typedef PACKED_PRE struct PACKED_POST
4032{
4033 /* success or failure */
4034 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004035 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004036} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4037
4038typedef PACKED_PRE struct PACKED_POST
4039{
4040 tHalMsgHeader header;
4041 tHalEnterBmpsRspParams enterBmpsRspParams;
4042} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4043
4044/*---------------------------------------------------------------------------
4045 * WLAN_HAL_EXIT_BMPS_RSP
4046 *--------------------------------------------------------------------------*/
4047typedef PACKED_PRE struct PACKED_POST
4048{
4049 /* success or failure */
4050 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004051 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004052} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4053
4054typedef PACKED_PRE struct PACKED_POST
4055{
4056 tHalMsgHeader header;
4057 tHalExitBmpsRspParams exitBmpsRspParams;
4058} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4059
4060/*---------------------------------------------------------------------------
4061 * WLAN_HAL_ENTER_UAPSD_RSP
4062 *--------------------------------------------------------------------------*/
4063typedef PACKED_PRE struct PACKED_POST
4064{
4065 /* success or failure */
4066 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004067 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004068}tUapsdRspParams, *tpUapsdRspParams;
4069
4070typedef PACKED_PRE struct PACKED_POST
4071{
4072 tHalMsgHeader header;
4073 tUapsdRspParams enterUapsdRspParams;
4074} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4075
4076/*---------------------------------------------------------------------------
4077 * WLAN_HAL_EXIT_UAPSD_RSP
4078 *--------------------------------------------------------------------------*/
4079typedef PACKED_PRE struct PACKED_POST
4080{
4081 /* success or failure */
4082 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004083 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004084} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4085
4086typedef PACKED_PRE struct PACKED_POST
4087{
4088 tHalMsgHeader header;
4089 tHalExitUapsdRspParams exitUapsdRspParams;
4090} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4091
4092/*---------------------------------------------------------------------------
4093 * WLAN_HAL_RSSI_NOTIFICATION_IND
4094 *--------------------------------------------------------------------------*/
4095typedef PACKED_PRE struct PACKED_POST
4096{
4097 tANI_U32 bRssiThres1PosCross : 1;
4098 tANI_U32 bRssiThres1NegCross : 1;
4099 tANI_U32 bRssiThres2PosCross : 1;
4100 tANI_U32 bRssiThres2NegCross : 1;
4101 tANI_U32 bRssiThres3PosCross : 1;
4102 tANI_U32 bRssiThres3NegCross : 1;
4103 tANI_U32 bReserved : 26;
4104} tHalRSSINotification, *tpHalRSSINotification;
4105
4106typedef PACKED_PRE struct PACKED_POST
4107{
4108 tHalMsgHeader header;
4109 tHalRSSINotification rssiNotificationParams;
4110} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4111
4112/*---------------------------------------------------------------------------
4113 * WLAN_HAL_GET_RSSI_RSP
4114 *--------------------------------------------------------------------------*/
4115typedef PACKED_PRE struct PACKED_POST
4116{
4117 /* success or failure */
4118 tANI_U32 status;
4119 tANI_S8 rssi;
4120} tHalGetRssiParams, *tpHalGetRspParams;
4121
4122typedef PACKED_PRE struct PACKED_POST
4123{
4124 tHalMsgHeader header;
4125 tHalGetRssiParams rssiRspParams;
4126} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4127
4128/*---------------------------------------------------------------------------
4129 * WLAN_HAL_ENTER_WOWL_RSP
4130 *--------------------------------------------------------------------------*/
4131typedef PACKED_PRE struct PACKED_POST
4132{
4133 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004134 tANI_U32 status;
4135 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004136} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4137
4138typedef PACKED_PRE struct PACKED_POST
4139{
4140 tHalMsgHeader header;
4141 tHalEnterWowlRspParams enterWowlRspParams;
4142} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4143
4144/*---------------------------------------------------------------------------
4145 * WLAN_HAL_EXIT_WOWL_RSP
4146 *--------------------------------------------------------------------------*/
4147typedef PACKED_PRE struct PACKED_POST
4148{
4149 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004150 tANI_U32 status;
4151 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004152} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4153
4154typedef PACKED_PRE struct PACKED_POST
4155{
4156 tHalMsgHeader header;
4157 tHalExitWowlRspParams exitWowlRspParams;
4158} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4159
4160/*---------------------------------------------------------------------------
4161 * WLAN_HAL_ADD_BCN_FILTER_RSP
4162 *--------------------------------------------------------------------------*/
4163typedef PACKED_PRE struct PACKED_POST
4164{
4165 /* success or failure */
4166 tANI_U32 status;
4167} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4168
4169typedef PACKED_PRE struct PACKED_POST
4170{
4171 tHalMsgHeader header;
4172 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4173} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4174
4175/*---------------------------------------------------------------------------
4176 * WLAN_HAL_REM_BCN_FILTER_RSP
4177 *--------------------------------------------------------------------------*/
4178typedef PACKED_PRE struct PACKED_POST
4179{
4180 /* success or failure */
4181 tANI_U32 status;
4182} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4183
4184typedef PACKED_PRE struct PACKED_POST
4185{
4186 tHalMsgHeader header;
4187 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4188} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4189
4190/*---------------------------------------------------------------------------
4191 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4192 *--------------------------------------------------------------------------*/
4193typedef PACKED_PRE struct PACKED_POST
4194{
4195 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004196 tANI_U32 status;
4197 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004198} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4199
4200typedef PACKED_PRE struct PACKED_POST
4201{
4202 tHalMsgHeader header;
4203 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4204} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4205
4206/*---------------------------------------------------------------------------
4207 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4208 *--------------------------------------------------------------------------*/
4209typedef PACKED_PRE struct PACKED_POST
4210{
4211 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004212 tANI_U32 status;
4213 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004214} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4215
4216typedef PACKED_PRE struct PACKED_POST
4217{
4218 tHalMsgHeader header;
4219 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4220} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4221
4222/*---------------------------------------------------------------------------
4223 * WLAN_HAL_HOST_OFFLOAD_RSP
4224 *--------------------------------------------------------------------------*/
4225typedef PACKED_PRE struct PACKED_POST
4226{
4227 /* success or failure */
4228 tANI_U32 status;
4229} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4230
4231typedef PACKED_PRE struct PACKED_POST
4232{
4233 tHalMsgHeader header;
4234 tHalHostOffloadRspParams hostOffloadRspParams;
4235} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4236
4237/*---------------------------------------------------------------------------
4238 * WLAN_HAL_KEEP_ALIVE_RSP
4239 *--------------------------------------------------------------------------*/
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 /* success or failure */
4243 tANI_U32 status;
4244} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4245
4246typedef PACKED_PRE struct PACKED_POST
4247{
4248 tHalMsgHeader header;
4249 tHalKeepAliveRspParams keepAliveRspParams;
4250} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4251
4252/*---------------------------------------------------------------------------
4253 * WLAN_HAL_SET_RSSI_THRESH_RSP
4254 *--------------------------------------------------------------------------*/
4255typedef PACKED_PRE struct PACKED_POST
4256{
4257 /* success or failure */
4258 tANI_U32 status;
4259} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4260
4261typedef PACKED_PRE struct PACKED_POST
4262{
4263 tHalMsgHeader header;
4264 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4265} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4266
4267/*---------------------------------------------------------------------------
4268 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4269 *--------------------------------------------------------------------------*/
4270typedef PACKED_PRE struct PACKED_POST
4271{
4272 /* success or failure */
4273 tANI_U32 status;
4274} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4275
4276typedef PACKED_PRE struct PACKED_POST
4277{
4278 tHalMsgHeader header;
4279 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4280} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4281
4282/*---------------------------------------------------------------------------
4283 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4284 *--------------------------------------------------------------------------*/
4285typedef PACKED_PRE struct PACKED_POST
4286{
4287 /* success or failure */
4288 tANI_U32 status;
4289} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4290
4291typedef PACKED_PRE struct PACKED_POST
4292{
4293 tHalMsgHeader header;
4294 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4295} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4296
4297/*---------------------------------------------------------------------------
4298 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4299 *--------------------------------------------------------------------------*/
4300
4301typedef PACKED_PRE struct PACKED_POST
4302{
4303 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4304 //the request has power constraints, this should be applied only to that session
4305 tSirMacAddr selfStaMacAddr;
4306 //In request,
4307 //power == MaxTx power to be used.
4308 tPowerdBm power;
4309
4310}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4311
4312
4313typedef PACKED_PRE struct PACKED_POST
4314{
4315 tHalMsgHeader header;
4316 tSetMaxTxPwrParams setMaxTxPwrParams;
4317}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4318
4319/*---------------------------------------------------------------------------
4320*WLAN_HAL_SET_MAX_TX_POWER_RSP
4321*--------------------------------------------------------------------------*/
4322
4323typedef PACKED_PRE struct PACKED_POST
4324{
4325 //power == tx power used for management frames.
4326 tPowerdBm power;
4327
4328 /* success or failure */
4329 tANI_U32 status;
4330}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4331
4332typedef PACKED_PRE struct PACKED_POST
4333{
4334 tHalMsgHeader header;
4335 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4336}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4337
4338/*---------------------------------------------------------------------------
4339 *WLAN_HAL_SET_TX_POWER_REQ
4340 *--------------------------------------------------------------------------*/
4341
4342typedef PACKED_PRE struct PACKED_POST
4343{
4344 /* TX Power in milli watts */
4345 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004346 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004347}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4348
4349
4350typedef PACKED_PRE struct PACKED_POST
4351{
4352 tHalMsgHeader header;
4353 tSetTxPwrReqParams setTxPwrReqParams;
4354}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4355
4356/*---------------------------------------------------------------------------
4357*WLAN_HAL_SET_TX_POWER_RSP
4358*--------------------------------------------------------------------------*/
4359
4360typedef PACKED_PRE struct PACKED_POST
4361{
4362 /* success or failure */
4363 tANI_U32 status;
4364}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4365
4366typedef PACKED_PRE struct PACKED_POST
4367{
4368 tHalMsgHeader header;
4369 tSetTxPwrRspParams setTxPwrRspParams;
4370}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4371
4372/*---------------------------------------------------------------------------
4373 *WLAN_HAL_GET_TX_POWER_REQ
4374 *--------------------------------------------------------------------------*/
4375
4376typedef PACKED_PRE struct PACKED_POST
4377{
4378 tANI_U8 staId;
4379}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4380
4381typedef PACKED_PRE struct PACKED_POST
4382{
4383 tHalMsgHeader header;
4384 tGetTxPwrReqParams getTxPwrReqParams;
4385}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4386
4387/*---------------------------------------------------------------------------
4388*WLAN_HAL_GET_TX_POWER_RSP
4389*--------------------------------------------------------------------------*/
4390
4391typedef PACKED_PRE struct PACKED_POST
4392{
4393 /* success or failure */
4394 tANI_U32 status;
4395
4396 /* TX Power in milli watts */
4397 tANI_U32 txPower;
4398}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4399
4400typedef PACKED_PRE struct PACKED_POST
4401{
4402 tHalMsgHeader header;
4403 tGetTxPwrRspParams getTxPwrRspParams;
4404}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4405
4406#ifdef WLAN_FEATURE_P2P
4407/*---------------------------------------------------------------------------
4408 *WLAN_HAL_SET_P2P_GONOA_REQ
4409 *--------------------------------------------------------------------------*/
4410
4411typedef PACKED_PRE struct PACKED_POST
4412{
4413 tANI_U8 opp_ps;
4414 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004415 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004416 tANI_U32 duration;
4417 tANI_U32 interval;
4418 tANI_U32 single_noa_duration;
4419 tANI_U8 psSelection;
4420}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4421
4422
4423typedef PACKED_PRE struct PACKED_POST
4424{
4425 tHalMsgHeader header;
4426 tSetP2PGONOAParams setP2PGONOAParams;
4427}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4428
4429/*---------------------------------------------------------------------------
4430*WLAN_HAL_SET_P2P_GONOA_RSP
4431*--------------------------------------------------------------------------*/
4432
4433typedef PACKED_PRE struct PACKED_POST
4434{
4435 /* success or failure */
4436 tANI_U32 status;
4437}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4438
4439typedef PACKED_PRE struct PACKED_POST
4440{
4441 tHalMsgHeader header;
4442 tSetP2PGONOARspParams setP2PGONOARspParams;
4443}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4444#endif
4445
4446/*---------------------------------------------------------------------------
4447 *WLAN_HAL_ADD_SELF_STA_REQ
4448 *--------------------------------------------------------------------------*/
4449
4450typedef PACKED_PRE struct PACKED_POST
4451{
4452 tSirMacAddr selfMacAddr;
4453 tANI_U32 status;
4454}tAddStaSelfParams, *tpAddStaSelfParams;
4455
4456
4457typedef PACKED_PRE struct PACKED_POST
4458{
4459 tHalMsgHeader header;
4460 tAddStaSelfParams addStaSelfParams;
4461}tAddStaSelfReq, *tpAddStaSelfReq;
4462
4463/*---------------------------------------------------------------------------
4464*WLAN_HAL_ADD_SELF_STA_RSP
4465*--------------------------------------------------------------------------*/
4466
4467typedef PACKED_PRE struct PACKED_POST
4468{
4469 /* success or failure */
4470 tANI_U32 status;
4471
4472 /*Self STA Index */
4473 tANI_U8 selfStaIdx;
4474
4475 /* DPU Index (IGTK, PTK, GTK all same) */
4476 tANI_U8 dpuIdx;
4477
4478 /* DPU Signature */
4479 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004480
Jeff Johnson295189b2012-06-20 16:38:30 -07004481}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4482
4483typedef PACKED_PRE struct PACKED_POST
4484{
4485 tHalMsgHeader header;
4486 tAddStaSelfRspParams addStaSelfRspParams;
4487}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4488
4489
4490/*---------------------------------------------------------------------------
4491 WLAN_HAL_DEL_STA_SELF_REQ
4492---------------------------------------------------------------------------*/
4493
4494typedef PACKED_PRE struct PACKED_POST
4495{
4496 tSirMacAddr selfMacAddr;
4497
4498}tDelStaSelfParams, *tpDelStaSelfParams;
4499
4500typedef PACKED_PRE struct PACKED_POST
4501{
4502 tHalMsgHeader header;
4503 tDelStaSelfParams delStaSelfParams;
4504} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4505
4506
4507/*---------------------------------------------------------------------------
4508 WLAN_HAL_DEL_STA_SELF_RSP
4509---------------------------------------------------------------------------*/
4510
4511typedef PACKED_PRE struct PACKED_POST
4512{
4513 /*success or failure */
4514 tANI_U32 status;
4515
4516 tSirMacAddr selfMacAddr;
4517}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4518
4519typedef PACKED_PRE struct PACKED_POST
4520{
4521 tHalMsgHeader header;
4522 tDelStaSelfRspParams delStaSelfRspParams;
4523} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4524
4525
4526#ifdef WLAN_FEATURE_VOWIFI_11R
4527
4528/*---------------------------------------------------------------------------
4529 *WLAN_HAL_AGGR_ADD_TS_REQ
4530 *--------------------------------------------------------------------------*/
4531
4532typedef PACKED_PRE struct PACKED_POST
4533{
4534 /* Station Index */
4535 tANI_U16 staIdx;
4536
4537 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4538 /* This will carry the bitmap with the bit positions representing different AC.s*/
4539 tANI_U16 tspecIdx;
4540
4541 /* Tspec info per AC To program TPE with required parameters */
4542 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4543
4544 /* U-APSD Flags: 1b per AC. Encoded as follows:
4545 b7 b6 b5 b4 b3 b2 b1 b0 =
4546 X X X X BE BK VI VO */
4547 tANI_U8 uAPSD;
4548
4549 /* These parameters are for all the access categories */
4550 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4551 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4552 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4553
4554}tAggrAddTsParams, *tpAggrAddTsParams;
4555
4556
4557typedef PACKED_PRE struct PACKED_POST
4558{
4559 tHalMsgHeader header;
4560 tAggrAddTsParams aggrAddTsParam;
4561}tAggrAddTsReq, *tpAggrAddTsReq;
4562
4563/*---------------------------------------------------------------------------
4564*WLAN_HAL_AGGR_ADD_TS_RSP
4565*--------------------------------------------------------------------------*/
4566
4567typedef PACKED_PRE struct PACKED_POST
4568{
4569 /* success or failure */
4570 tANI_U32 status0;
4571 /* FIXME PRIMA for future use for 11R */
4572 tANI_U32 status1;
4573}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4574
4575typedef PACKED_PRE struct PACKED_POST
4576{
4577 tHalMsgHeader header;
4578 tAggrAddTsRspParams aggrAddTsRspParam;
4579}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4580
4581#endif
4582
4583/*---------------------------------------------------------------------------
4584 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4585 *--------------------------------------------------------------------------*/
4586typedef PACKED_PRE struct PACKED_POST
4587{
4588 tANI_U8 isAppsCpuAwake;
4589} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4590
4591typedef PACKED_PRE struct PACKED_POST
4592{
4593 tHalMsgHeader header;
4594 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4595} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4596
4597/*---------------------------------------------------------------------------
4598 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4599 *--------------------------------------------------------------------------*/
4600typedef PACKED_PRE struct PACKED_POST
4601{
4602 /* success or failure */
4603 tANI_U32 status;
4604} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4605
4606typedef PACKED_PRE struct PACKED_POST
4607{
4608 tHalMsgHeader header;
4609 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4610} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4611/*---------------------------------------------------------------------------
4612 * WLAN_HAL_DUMP_COMMAND_REQ
4613 *--------------------------------------------------------------------------*/
4614
4615typedef PACKED_PRE struct PACKED_POST
4616{
4617 tANI_U32 argument1;
4618 tANI_U32 argument2;
4619 tANI_U32 argument3;
4620 tANI_U32 argument4;
4621 tANI_U32 argument5;
4622
4623}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4624
4625typedef PACKED_PRE struct PACKED_POST
4626{
4627 tHalMsgHeader header;
4628 tHalDumpCmdReqParams dumpCmdReqParams;
4629} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4630
4631/*---------------------------------------------------------------------------
4632 * WLAN_HAL_DUMP_COMMAND_RSP
4633 *--------------------------------------------------------------------------*/
4634
4635typedef PACKED_PRE struct PACKED_POST
4636{
4637 /* success or failure */
4638 tANI_U32 status;
4639 /*Length of the responce message*/
4640 tANI_U32 rspLength;
4641 /*FiXME: Currently considering the the responce will be less than 100bytes */
4642 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004643
Jeff Johnson295189b2012-06-20 16:38:30 -07004644} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4645
4646typedef PACKED_PRE struct PACKED_POST
4647{
4648 tHalMsgHeader header;
4649 tHalDumpCmdRspParams dumpCmdRspParams;
4650} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4651
4652/*---------------------------------------------------------------------------
4653 *WLAN_HAL_COEX_IND
4654 *-------------------------------------------------------------------------*/
4655#define WLAN_COEX_IND_DATA_SIZE (4)
4656#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4657#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
4658
4659typedef PACKED_PRE struct PACKED_POST
4660{
4661 /*Coex Indication Type*/
4662 tANI_U32 coexIndType;
4663
4664 /*Coex Indication Data*/
4665 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4666}tCoexIndParams,*tpCoexIndParams;
4667
4668typedef PACKED_PRE struct PACKED_POST
4669{
4670 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004671 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004672}tCoexIndMsg, *tpCoexIndMsg;
4673
4674/*---------------------------------------------------------------------------
4675 *WLAN_HAL_OTA_TX_COMPL_IND
4676 *-------------------------------------------------------------------------*/
4677
4678typedef PACKED_PRE struct PACKED_POST
4679{
4680 /*Tx Complete Indication Success or Failure*/
4681 tANI_U32 status;
4682}tTxComplParams,*tpTxComplParams;
4683
4684typedef PACKED_PRE struct PACKED_POST
4685{
4686 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004687 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004688}tTxComplIndMsg, *tpTxComplIndMsg;
4689
4690/*---------------------------------------------------------------------------
4691 * WLAN_HAL_HOST_SUSPEND_IND
4692 *-------------------------------------------------------------------------*/
4693
4694typedef PACKED_PRE struct PACKED_POST
4695{
4696 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004697 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004698}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4699
4700typedef PACKED_PRE struct PACKED_POST
4701{
4702 tHalMsgHeader header;
4703 tHalWlanHostSuspendIndParam suspendIndParams;
4704}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4705
4706/*---------------------------------------------------------------------------
4707 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4708 *-------------------------------------------------------------------------*/
4709
4710typedef PACKED_PRE struct PACKED_POST
4711{
4712 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004713 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004714}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4715
4716typedef PACKED_PRE struct PACKED_POST
4717{
4718 tHalMsgHeader header;
4719 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4720}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4721
4722#ifdef WLAN_FEATURE_P2P
4723/*---------------------------------------------------------------------------
4724 *WLAN_HAL_NOA_ATTR_IND
4725 *-------------------------------------------------------------------------*/
4726
4727typedef PACKED_PRE struct PACKED_POST
4728{
4729 tANI_U8 index ;
4730 tANI_U8 oppPsFlag ;
4731 tANI_U16 ctWin ;
4732
4733 tANI_U16 uNoa1IntervalCnt;
4734 tANI_U16 rsvd1 ;
4735 tANI_U32 uNoa1Duration;
4736 tANI_U32 uNoa1Interval;
4737 tANI_U32 uNoa1StartTime;
4738
4739 tANI_U16 uNoa2IntervalCnt;
4740 tANI_U16 rsvd2;
4741 tANI_U32 uNoa2Duration;
4742 tANI_U32 uNoa2Interval;
4743 tANI_U32 uNoa2StartTime;
4744
4745 tANI_U32 status;
4746}tNoaAttrIndParams, *tpNoaAttrIndParams;
4747
4748typedef PACKED_PRE struct PACKED_POST
4749{
4750 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004751 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004752}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004753
4754/*---------------------------------------------------------------------------
4755 *WLAN_HAL_NOA_START_IND
4756 *-------------------------------------------------------------------------*/
4757
4758typedef PACKED_PRE struct PACKED_POST
4759{
4760 tANI_U32 status;
4761 tANI_U32 bssIdx;
4762}tNoaStartIndParams, *tpNoaStartIndParams;
4763
4764typedef PACKED_PRE struct PACKED_POST
4765{
4766 tHalMsgHeader header;
4767 tNoaStartIndParams noaStartIndParams;
4768}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004769#endif
4770
4771/*---------------------------------------------------------------------------
4772 * WLAN_HAL_HOST_RESUME_REQ
4773 *-------------------------------------------------------------------------*/
4774
4775typedef PACKED_PRE struct PACKED_POST
4776{
4777 tANI_U8 configuredMcstBcstFilterSetting;
4778}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4779
4780typedef PACKED_PRE struct PACKED_POST
4781{
4782 tHalMsgHeader header;
4783 tHalWlanHostResumeReqParam resumeReqParams;
4784}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4785
4786/*---------------------------------------------------------------------------
4787 * WLAN_HAL_HOST_RESUME_RSP
4788 *--------------------------------------------------------------------------*/
4789typedef PACKED_PRE struct PACKED_POST
4790{
4791 /* success or failure */
4792 tANI_U32 status;
4793} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4794
4795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tHalMsgHeader header;
4798 tHalHostResumeRspParams hostResumeRspParams;
4799} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4800
4801/*---------------------------------------------------------------------------
4802 *PNO Messages
4803 *-------------------------------------------------------------------------*/
4804/*Max number of channels that a network can be found on*/
4805#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 26
4806
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304807/*Max number of channels that a network can be found on*/
4808#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4809
Jeff Johnson295189b2012-06-20 16:38:30 -07004810/*Maximum numbers of networks supported by PNO*/
4811#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4812
4813/*The number of scan time intervals that can be programmed into PNO*/
4814#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4815
4816/*Maximum size of the probe template*/
4817#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4818
Jeff Johnson32d95a32012-09-10 13:15:23 -07004819/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004820 Immediate - scanning will start immediately and PNO procedure will
4821 be repeated based on timer
4822 Suspend - scanning will start at suspend
4823 Resume - scanning will start on system resume*/
4824typedef enum
4825{
4826 ePNO_MODE_IMMEDIATE,
4827 ePNO_MODE_ON_SUSPEND,
4828 ePNO_MODE_ON_RESUME,
4829 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4830} ePNOMode;
4831
4832/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004833typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004834{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004835 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004836 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004837
Jeff Johnson295189b2012-06-20 16:38:30 -07004838 // Upper layer authentication types
4839 eAUTH_TYPE_WPA = 2,
4840 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004841
Jeff Johnson295189b2012-06-20 16:38:30 -07004842 eAUTH_TYPE_RSN = 4,
4843 eAUTH_TYPE_RSN_PSK = 5,
4844 eAUTH_TYPE_FT_RSN = 6,
4845 eAUTH_TYPE_FT_RSN_PSK = 7,
4846 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4847 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004848
Jeff Johnson295189b2012-06-20 16:38:30 -07004849 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4850
4851}tAuthType;
4852
4853/* Encryption type */
4854typedef enum eEdType
4855{
4856 eED_ANY = 0,
4857 eED_NONE = 1,
4858 eED_WEP = 2,
4859 eED_TKIP = 3,
4860 eED_CCMP = 4,
4861 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004862
Jeff Johnson295189b2012-06-20 16:38:30 -07004863 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4864} tEdType;
4865
4866/* SSID broadcast type */
4867typedef enum eSSIDBcastType
4868{
4869 eBCAST_UNKNOWN = 0,
4870 eBCAST_NORMAL = 1,
4871 eBCAST_HIDDEN = 2,
4872
4873 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4874} tSSIDBcastType;
4875
Jeff Johnson32d95a32012-09-10 13:15:23 -07004876/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004877 The network description for which PNO will have to look for
4878*/
4879typedef PACKED_PRE struct PACKED_POST
4880{
4881 /*SSID of the BSS*/
4882 tSirMacSSid ssId;
4883
4884 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004885 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07004886
4887 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004888 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07004889
Jeff Johnson32d95a32012-09-10 13:15:23 -07004890 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07004891 0 - if all channels */
4892 tANI_U8 ucChannelCount;
4893 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
4894
4895 /*Indicates the RSSI threshold for the network to be considered*/
4896 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004897}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07004898
4899typedef PACKED_PRE struct PACKED_POST
4900{
4901 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004902 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07004903
Jeff Johnson32d95a32012-09-10 13:15:23 -07004904 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07004905 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004906 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07004907
Jeff Johnson32d95a32012-09-10 13:15:23 -07004908 /*e.g: 2 3
4909 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07004910 - it will wait 2s between consecutive scans for 3 times
4911 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004912}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07004913
Jeff Johnson32d95a32012-09-10 13:15:23 -07004914/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004915 The network parameters to be sent to the PNO algorithm
4916*/
4917typedef PACKED_PRE struct PACKED_POST
4918{
4919 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004920 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004921
Jeff Johnson32d95a32012-09-10 13:15:23 -07004922 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07004923 two consecutive scan procedures
4924 If the desired is for a uniform timer that fires always at the exact same
4925 interval - one single value is to be set
4926 If there is a desire for a more complex - telescopic like timer multiple
4927 values can be set - once PNO reaches the end of the array it will
4928 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004929 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07004930
4931}tScanTimersType;
4932
4933typedef PACKED_PRE struct PACKED_POST {
4934
4935 /*Enable PNO*/
4936 tANI_U32 enable;
4937
4938 /*Immediate, On Suspend, On Resume*/
4939 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004940
Jeff Johnson295189b2012-06-20 16:38:30 -07004941 /*Number of networks sent for PNO*/
4942 tANI_U32 ucNetworksCount;
4943
4944 /*The networks that PNO needs to look for*/
4945 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
4946
4947 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004948 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07004949
4950 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004951 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07004952 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
4953
4954 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004955 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07004956 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
4957
4958} tPrefNetwListParams, * tpPrefNetwListParams;
4959
4960/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07004961 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07004962*/
4963typedef PACKED_PRE struct PACKED_POST
4964{
4965 tHalMsgHeader header;
4966 tPrefNetwListParams prefNetwListParams;
4967} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
4968
4969
Jeff Johnson32d95a32012-09-10 13:15:23 -07004970/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004971 The network description for which PNO will have to look for
4972*/
4973typedef PACKED_PRE struct PACKED_POST
4974{
4975 /*SSID of the BSS*/
4976 tSirMacSSid ssId;
4977
4978 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004979 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07004980
4981 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004982 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07004983
4984 /*SSID broadcast type, normal, hidden or unknown*/
4985 tSSIDBcastType bcastNetworkType;
4986
Jeff Johnson32d95a32012-09-10 13:15:23 -07004987 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07004988 0 - if all channels */
4989 tANI_U8 ucChannelCount;
4990 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
4991
4992 /*Indicates the RSSI threshold for the network to be considered*/
4993 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004994}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07004995
4996typedef PACKED_PRE struct PACKED_POST {
4997
4998 /*Enable PNO*/
4999 tANI_U32 enable;
5000
5001 /*Immediate, On Suspend, On Resume*/
5002 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005003
Jeff Johnson295189b2012-06-20 16:38:30 -07005004 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005005 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005006
5007 /*The networks that PNO needs to look for*/
5008 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5009
5010 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005011 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005012
5013 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005014 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005015 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5016
5017 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005018 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005019 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5020
5021} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5022
5023/*
5024 Preferred network list request new
5025*/
5026typedef PACKED_PRE struct PACKED_POST
5027{
5028 tHalMsgHeader header;
5029 tPrefNetwListParamsNew prefNetwListParams;
5030} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5031
5032/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005033 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005034*/
5035typedef PACKED_PRE struct PACKED_POST
5036{
5037 tHalMsgHeader header;
5038
Jeff Johnson32d95a32012-09-10 13:15:23 -07005039 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005040 the request and will start scanning*/
5041 tANI_U32 status;
5042} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5043
5044/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005045 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005046*/
5047typedef PACKED_PRE struct PACKED_POST {
5048
5049 /*Network that was found with the highest RSSI*/
5050 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005051
Jeff Johnson295189b2012-06-20 16:38:30 -07005052 /*Indicates the RSSI */
5053 tANI_U8 rssi;
5054
5055} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5056
5057/*
5058 Preferred network found indication
5059*/
5060typedef PACKED_PRE struct PACKED_POST {
5061
5062 tHalMsgHeader header;
5063 tPrefNetwFoundParams prefNetwFoundParams;
5064} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5065
5066
5067typedef PACKED_PRE struct PACKED_POST {
5068
5069 /*RSSI Threshold*/
5070 tANI_U8 ucRssiThreshold;
5071
5072} tRssiFilterParams, * tpRssiFilterParams;
5073
5074/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005075 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005076*/
5077typedef PACKED_PRE struct PACKED_POST
5078{
5079 tHalMsgHeader header;
5080 tRssiFilterParams prefRSSIFilterParams;
5081} tSetRssiFilterReq, *tpSetRssiFilterReq;
5082
5083/*
5084 Set RSSI filter resp
5085*/
5086typedef PACKED_PRE struct PACKED_POST{
5087 tHalMsgHeader header;
5088 /*status of the request */
5089 tANI_U32 status;
5090} tSetRssiFilterResp, *tpSetRssiFilterResp;
5091/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005092 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005093*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005094typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005095{
5096
5097 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005098 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005099
5100 /*Lets PNO know that host has determined the regulatory domain*/
5101 tANI_U8 b11dResolved;
5102
5103 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005104 tANI_U8 ucChannelCount;
5105 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005106
5107 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005108 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005109
5110 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005111 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005112
5113 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005114 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005115
5116 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005117 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005118
5119 /*Cb State*/
5120 ePhyChanBondState cbState;
5121
5122} tUpdateScanParams, * tpUpdateScanParams;
5123
5124/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305125 Update scan params
5126*/
5127typedef PACKED_PRE struct PACKED_POST
5128{
5129
5130 /*Host setting for 11d*/
5131 tANI_U8 b11dEnabled;
5132
5133 /*Lets PNO know that host has determined the regulatory domain*/
5134 tANI_U8 b11dResolved;
5135
5136 /*Channels on which PNO is allowed to scan*/
5137 tANI_U8 ucChannelCount;
5138 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5139
5140 /*Minimum channel time*/
5141 tANI_U16 usActiveMinChTime;
5142
5143 /*Maximum channel time*/
5144 tANI_U16 usActiveMaxChTime;
5145
5146 /*Minimum channel time*/
5147 tANI_U16 usPassiveMinChTime;
5148
5149 /*Maximum channel time*/
5150 tANI_U16 usPassiveMaxChTime;
5151
5152 /*Cb State*/
5153 ePhyChanBondState cbState;
5154
5155} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5156
5157/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005158 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005159 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005160*/
5161typedef PACKED_PRE struct PACKED_POST{
5162
5163 tHalMsgHeader header;
5164 tUpdateScanParams scanParams;
5165} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5166
5167/*
5168 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005169 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005170*/
5171typedef PACKED_PRE struct PACKED_POST{
5172
5173 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305174 tUpdateScanParamsEx scanParams;
5175} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5176
5177/*
5178 Update scan params - sent from host to PNO
5179 to be used during PNO scanning
5180*/
5181typedef PACKED_PRE struct PACKED_POST{
5182
5183 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005184
5185 /*status of the request */
5186 tANI_U32 status;
5187
5188} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5189
5190/*---------------------------------------------------------------------------
5191 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5192 *--------------------------------------------------------------------------*/
5193typedef PACKED_PRE struct PACKED_POST
5194{
5195 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5196 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5197 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5198 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5199} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5200
5201typedef PACKED_PRE struct PACKED_POST
5202{
5203 tHalMsgHeader header;
5204 tHalTxPerTrackingReqParam txPerTrackingParams;
5205} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5206
5207/*---------------------------------------------------------------------------
5208 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5209 *--------------------------------------------------------------------------*/
5210typedef PACKED_PRE struct PACKED_POST
5211{
5212 /* success or failure */
5213 tANI_U32 status;
5214} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5215
5216typedef PACKED_PRE struct PACKED_POST
5217{
5218 tHalMsgHeader header;
5219 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5220} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5221
5222/*---------------------------------------------------------------------------
5223 * WLAN_HAL_TX_PER_HIT_IND
5224 *--------------------------------------------------------------------------*/
5225typedef PACKED_PRE struct PACKED_POST
5226{
5227 tHalMsgHeader header;
5228}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5229
5230/*---------------------------------------------------------------------------
5231 *******************Packet Filtering Definitions Begin*******************
5232 *--------------------------------------------------------------------------*/
5233#define HAL_PROTOCOL_DATA_LEN 8
5234#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5235#define HAL_MAX_NUM_FILTERS 20
5236#define HAL_MAX_CMP_PER_FILTER 10
5237
5238typedef enum
5239{
5240 HAL_RCV_FILTER_TYPE_INVALID,
5241 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5242 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5243 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5244}tHalReceivePacketFilterType;
5245
Jeff Johnson32d95a32012-09-10 13:15:23 -07005246typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005247{
5248 HAL_FILTER_PROTO_TYPE_INVALID,
5249 HAL_FILTER_PROTO_TYPE_MAC,
5250 HAL_FILTER_PROTO_TYPE_ARP,
5251 HAL_FILTER_PROTO_TYPE_IPV4,
5252 HAL_FILTER_PROTO_TYPE_IPV6,
5253 HAL_FILTER_PROTO_TYPE_UDP,
5254 HAL_FILTER_PROTO_TYPE_MAX
5255}tHalRcvPktFltProtocolType;
5256
Jeff Johnson32d95a32012-09-10 13:15:23 -07005257typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005258{
5259 HAL_FILTER_CMP_TYPE_INVALID,
5260 HAL_FILTER_CMP_TYPE_EQUAL,
5261 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5262 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5263 HAL_FILTER_CMP_TYPE_MAX
5264}tHalRcvPktFltCmpFlagType;
5265
Jeff Johnson32d95a32012-09-10 13:15:23 -07005266typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005267{
5268 tANI_U8 protocolLayer;
5269 tANI_U8 cmpFlag;
5270 tANI_U16 dataLength; /* Length of the data to compare */
5271 tANI_U8 dataOffset; /* from start of the respective frame header */
5272 tANI_U8 reserved; /* Reserved field */
5273 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5274 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5275}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5276
5277typedef PACKED_PRE struct PACKED_POST
5278{
5279 tANI_U8 filterId;
5280 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005281 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005282 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005283 tHalRcvPktFilterParams paramsData[1];
5284}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5285
5286typedef PACKED_PRE struct PACKED_POST
5287{
Jeff Johnsone7245742012-09-05 17:12:55 -07005288 tANI_U8 filterId;
5289 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005290 tANI_U8 numParams;
5291 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005292 tANI_U8 bssIdx;
5293 tHalRcvPktFilterParams paramsData[1];
5294}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5295
5296typedef PACKED_PRE struct PACKED_POST
5297{
Jeff Johnson295189b2012-06-20 16:38:30 -07005298 tHalMsgHeader header;
5299 tHalRcvPktFilterCfgType pktFilterCfg;
5300} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5301
Jeff Johnsone7245742012-09-05 17:12:55 -07005302typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005303{
5304 tANI_U8 dataOffset; /* from start of the respective frame header */
5305 tANI_U32 cMulticastAddr;
5306 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005307 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005308} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5309
5310typedef PACKED_PRE struct PACKED_POST
5311{
5312 /* success or failure */
5313 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005314 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005315} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5316
5317typedef PACKED_PRE struct PACKED_POST
5318{
5319 tHalMsgHeader header;
5320 tHalSetPktFilterRspParams pktFilterRspParams;
5321} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5322
Jeff Johnsone7245742012-09-05 17:12:55 -07005323typedef PACKED_PRE struct PACKED_POST
5324{
5325 tANI_U8 bssIdx;
5326} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005327
5328typedef PACKED_PRE struct PACKED_POST
5329{
5330 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005331 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005332} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5333
Jeff Johnsone7245742012-09-05 17:12:55 -07005334
Jeff Johnson295189b2012-06-20 16:38:30 -07005335typedef PACKED_PRE struct PACKED_POST
5336{
5337 tANI_U8 filterId;
5338 tANI_U32 matchCnt;
5339} tHalRcvFltPktMatchCnt;
5340typedef PACKED_PRE struct PACKED_POST
5341{
5342 /* Success or Failure */
5343 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005344 tANI_U32 matchCnt;
5345 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005346 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005347} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5348
5349typedef PACKED_PRE struct PACKED_POST
5350{
5351 tHalMsgHeader header;
5352 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5353} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5354
5355typedef PACKED_PRE struct PACKED_POST
5356{
5357 tANI_U32 status; /* only valid for response message */
5358 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005359 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005360}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5361
5362typedef PACKED_PRE struct PACKED_POST
5363{
5364 tHalMsgHeader header;
5365 tHalRcvFltPktClearParam filterClearParam;
5366} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5367
5368typedef PACKED_PRE struct PACKED_POST
5369{
5370 tHalMsgHeader header;
5371 tHalRcvFltPktClearParam filterClearParam;
5372} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5373
5374typedef PACKED_PRE struct PACKED_POST
5375{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005376 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005377 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005378}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5379
5380typedef PACKED_PRE struct PACKED_POST
5381{
5382 tHalMsgHeader header;
5383 tHalRcvFltMcAddrListType mcAddrList;
5384} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5385
5386typedef PACKED_PRE struct PACKED_POST
5387{
5388 tHalMsgHeader header;
5389 tHalRcvFltPktSetMcListRspType rspParam;
5390} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5391
5392
5393/*---------------------------------------------------------------------------
5394 *******************Packet Filtering Definitions End*******************
5395 *--------------------------------------------------------------------------*/
5396
5397typedef PACKED_PRE struct PACKED_POST
5398{
5399 /* Ignore DTIM */
5400 tANI_U32 uIgnoreDTIM;
5401
5402 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005403 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005404
5405 /* Listen Interval */
5406 tANI_U32 uListenInterval;
5407
5408 /* Broadcast Multicast Filter */
5409 tANI_U32 uBcastMcastFilter;
5410
5411 /* Beacon Early Termination */
5412 tANI_U32 uEnableBET;
5413
5414 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005415 tANI_U32 uBETInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -07005416}tSetPowerParamsType, *tpSetPowerParamsType;
5417
5418typedef PACKED_PRE struct PACKED_POST
5419{
5420 tHalMsgHeader header;
5421 tSetPowerParamsType powerParams;
5422} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5423
5424typedef PACKED_PRE struct PACKED_POST{
5425
5426 tHalMsgHeader header;
5427
5428 /*status of the request */
5429 tANI_U32 status;
5430
5431} tSetPowerParamsResp, *tpSetPowerParamsResp;
5432
5433/*---------------------------------------------------------------------------
5434 ****************Capability bitmap exchange definitions and macros starts*************
5435 *--------------------------------------------------------------------------*/
5436
5437typedef PACKED_PRE struct PACKED_POST{
5438
5439 tANI_U32 featCaps[4];
5440
5441} tWlanFeatCaps, *tpWlanFeatCaps;
5442
5443typedef PACKED_PRE struct PACKED_POST{
5444
Jeff Johnson32d95a32012-09-10 13:15:23 -07005445 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005446 tWlanFeatCaps wlanFeatCaps;
5447
5448} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5449
5450
5451typedef enum {
5452 MCC = 0,
5453 P2P = 1,
Jeff Johnsone7245742012-09-05 17:12:55 -07005454 DOT11AC = 2,
5455 SLM_SESSIONIZATION = 3,
Viral Modie50b1d42012-12-10 13:04:52 -08005456 DOT11AC_OPMODE = 4,
5457 SAP32STA = 5,
5458 TDLS = 6,
5459 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Jeff Johnson295189b2012-06-20 16:38:30 -07005460 MAX_FEATURE_SUPPORTED = 128,
5461} placeHolderInCapBitmap;
5462
Jeff Johnsone7245742012-09-05 17:12:55 -07005463
5464#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5465#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005466#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Jeff Johnsone7245742012-09-05 17:12:55 -07005467
5468tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5469
Jeff Johnson295189b2012-06-20 16:38:30 -07005470#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005471 if ((b)<=127) { \
5472 arr_index = (b)/32; \
5473 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005474 (a)->featCaps[arr_index] |= (1<<bit_index); \
5475 } \
5476 }
5477#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005478 if ((b)<=127) { \
5479 arr_index = (b)/32; \
5480 bit_index = (b)%32; \
5481 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005482 } \
5483 }
5484#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005485 if ((b)<=127) { \
5486 arr_index = (b)/32; \
5487 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005488 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005489 } \
5490 }
5491
5492/*---------------------------------------------------------------------------
5493 * WLAN_HAL_WAKE_REASON_IND
5494 *--------------------------------------------------------------------------*/
5495
5496/* status codes to help debug rekey failures */
5497typedef enum
5498{
5499 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5500 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5501 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5502 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5503 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5504 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5505 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5506 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5507 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5508 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5509
5510 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5511} tGTKRekeyStatus;
5512
5513/* wake reason types */
5514typedef enum
5515{
5516 WLAN_HAL_WAKE_REASON_NONE = 0,
5517 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5518 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5519 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5520 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5521 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5522 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5523 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5524} tWakeReasonType;
5525
5526/*
5527 Wake Packet which is saved at tWakeReasonParams.DataStart
5528 This data is sent for any wake reasons that involve a packet-based wakeup :
5529
5530 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5531 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5532 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5533 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5534 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5535
5536 The information is provided to the host for auditing and debug purposes
5537
5538*/
5539
5540/*
5541 Wake reason indication parameters
5542*/
5543typedef PACKED_PRE struct PACKED_POST
5544{
5545 uint32 ulReason; /* see tWakeReasonType */
5546 uint32 ulReasonArg; /* argument specific to the reason type */
5547 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5548 HAL truncates the data (i.e. data packets) this length
5549 will be less than the actual length */
5550 uint32 ulActualDataLen; /* actual length of data */
5551 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5552 see specific wake type */
5553} tWakeReasonParams, *tpWakeReasonParams;
5554
5555/*
5556 Wake reason indication
5557*/
5558typedef PACKED_PRE struct PACKED_POST
5559{
5560 tHalMsgHeader header;
5561 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005562 tANI_U32 uBssIdx : 8;
5563 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005564} tHalWakeReasonInd, *tpHalWakeReasonInd;
5565
5566/*---------------------------------------------------------------------------
5567* WLAN_HAL_GTK_OFFLOAD_REQ
5568*--------------------------------------------------------------------------*/
5569
5570#define HAL_GTK_KEK_BYTES 16
5571#define HAL_GTK_KCK_BYTES 16
5572
5573#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5574
5575typedef PACKED_PRE struct PACKED_POST
5576{
5577 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005578 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005579 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5580 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005581 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005582} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5583
5584typedef PACKED_PRE struct PACKED_POST
5585{
5586 tHalMsgHeader header;
5587 tHalGtkOffloadReqParams gtkOffloadReqParams;
5588} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5589
5590/*---------------------------------------------------------------------------
5591* WLAN_HAL_GTK_OFFLOAD_RSP
5592*--------------------------------------------------------------------------*/
5593typedef PACKED_PRE struct PACKED_POST
5594{
5595 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005596 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005597} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5598
5599typedef PACKED_PRE struct PACKED_POST
5600{
5601 tHalMsgHeader header;
5602 tHalGtkOffloadRspParams gtkOffloadRspParams;
5603} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5604
5605
5606/*---------------------------------------------------------------------------
5607* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5608*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005609typedef PACKED_PRE struct PACKED_POST
5610{
5611 tANI_U8 bssIdx;
5612
5613} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005614
5615typedef PACKED_PRE struct PACKED_POST
5616{
5617 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005618 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005619} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5620
5621/*---------------------------------------------------------------------------
5622* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5623*--------------------------------------------------------------------------*/
5624typedef PACKED_PRE struct PACKED_POST
5625{
5626 tANI_U32 ulStatus; /* success or failure */
5627 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5628 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5629 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5630 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5631 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005632 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005633} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5634
5635typedef PACKED_PRE struct PACKED_POST
5636{
5637 tHalMsgHeader header;
5638 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5639} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5640
5641/*
5642 Thermal Mitigation mode of operation.
5643 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5644 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5645 reducing transmit power
5646 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5647*/
5648typedef enum
5649{
5650 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5651 HAL_THERMAL_MITIGATION_MODE_0,
5652 HAL_THERMAL_MITIGATION_MODE_1,
5653 HAL_THERMAL_MITIGATION_MODE_2,
5654 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5655}tHalThermalMitigationModeType;
5656//typedef tANI_S16 tHalThermalMitigationModeType;
5657
5658/*
5659 Thermal Mitigation level.
5660 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5661 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5662
5663 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5664 level indicates normal mode of operation
5665 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5666 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5667 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5668 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5669*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005670typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005671{
5672 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5673 HAL_THERMAL_MITIGATION_LEVEL_0,
5674 HAL_THERMAL_MITIGATION_LEVEL_1,
5675 HAL_THERMAL_MITIGATION_LEVEL_2,
5676 HAL_THERMAL_MITIGATION_LEVEL_3,
5677 HAL_THERMAL_MITIGATION_LEVEL_4,
5678 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5679}tHalThermalMitigationLevelType;
5680//typedef tANI_S16 tHalThermalMitigationLevelType;
5681
5682typedef PACKED_PRE struct PACKED_POST
5683{
5684 /* Thermal Mitigation Operation Mode */
5685 tHalThermalMitigationModeType thermalMitMode;
5686
5687 /* Thermal Mitigation Level */
5688 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005689
Jeff Johnson295189b2012-06-20 16:38:30 -07005690}tSetThermalMitgationType, *tpSetThermalMitgationType;
5691
5692/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5693typedef PACKED_PRE struct PACKED_POST
5694{
5695 tHalMsgHeader header;
5696 tSetThermalMitgationType thermalMitParams;
5697} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5698
5699typedef PACKED_PRE struct PACKED_POST{
5700
5701 tHalMsgHeader header;
5702
5703 /*status of the request */
5704 tANI_U32 status;
5705
5706} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5707
5708#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
5709#pragma pack(pop)
5710#elif defined(__ANI_COMPILER_PRAGMA_PACK)
5711#else
5712#endif
5713
5714#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07005715