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