blob: f29aaf66e59c566cde4bd99bc2b00024641aac21 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Anand Kumar012623a2013-01-11 17:00:00 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
Jeff Johnson295189b2012-06-20 16:38:30 -070021/*==========================================================================
22 *
23 * @file: wlan_hal_msg.h
24 *
25 * @brief: Exports and types for messages sent to HAL from WDI
26 *
27 * @author: Kumar Anand
28 *
Jeff Johnson32d95a32012-09-10 13:15:23 -070029 * Copyright (C) 2010, Qualcomm, Inc.
Jeff Johnson295189b2012-06-20 16:38:30 -070030 * All rights reserved.
31 *
32 *=========================================================================*/
33
34#ifndef _WLAN_HAL_MSG_H_
35#define _WLAN_HAL_MSG_H_
36
37#include "halLegacyPalTypes.h"
38#include "halCompiler.h"
39#include "wlan_qct_dev_defs.h"
40#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080041
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
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -080057#define WLAN_HAL_VER_MINOR 4
Jeff Johnson295189b2012-06-20 16:38:30 -070058#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080059#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070060
61/*---------------------------------------------------------------------------
62 Commom Type definitons
63 ---------------------------------------------------------------------------*/
64
65//This is to force compiler to use the maximum of an int ( 4 bytes )
66#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070067#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070068
69//Max no. of transmit categories
70#define STACFG_MAX_TC 8
71
72//The maximum value of access category
73#define WLAN_HAL_MAX_AC 4
74
75typedef tANI_U8 tSirMacAddr[6];
76typedef tANI_U8 tHalIpv4Addr[4];
77
78#define HAL_MAC_ADDR_LEN 6
79#define HAL_IPV4_ADDR_LEN 4
80
81#define WALN_HAL_STA_INVALID_IDX 0xFF
82#define WLAN_HAL_BSS_INVALID_IDX 0xFF
83
84//Default Beacon template size
Jeff Johnson32d95a32012-09-10 13:15:23 -070085#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070086
Jeff Johnson32d95a32012-09-10 13:15:23 -070087//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070088#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
89#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
90#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
91#define PARAM_llACOEXIST_CHANGED (1 << 3)
92#define PARAM_llBCOEXIST_CHANGED (1 << 4)
93#define PARAM_llGCOEXIST_CHANGED (1 << 5)
94#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
95#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
96#define PARAM_RIFS_MODE_CHANGED (1<<8)
97#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
98#define PARAM_OBSS_MODE_CHANGED (1<<10)
99#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
100 PARAM_llGCOEXIST_CHANGED|PARAM_HT20MHZCOEXIST_CHANGED|PARAM_NON_GF_DEVICES_PRESENT_CHANGED|PARAM_RIFS_MODE_CHANGED|PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED| PARAM_OBSS_MODE_CHANGED)
101
102/*Dump command response Buffer size*/
103#define DUMPCMD_RSP_BUFFER 100
104
105/*Version string max length (including NUL) */
106#define WLAN_HAL_VERSION_LENGTH 64
107
Jeff Johnson295189b2012-06-20 16:38:30 -0700108/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700109typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700110{
111 //Init/De-Init
112 WLAN_HAL_START_REQ = 0,
113 WLAN_HAL_START_RSP = 1,
114 WLAN_HAL_STOP_REQ = 2,
115 WLAN_HAL_STOP_RSP = 3,
116
117 //Scan
118 WLAN_HAL_INIT_SCAN_REQ = 4,
119 WLAN_HAL_INIT_SCAN_RSP = 5,
120 WLAN_HAL_START_SCAN_REQ = 6,
121 WLAN_HAL_START_SCAN_RSP = 7 ,
122 WLAN_HAL_END_SCAN_REQ = 8,
123 WLAN_HAL_END_SCAN_RSP = 9,
124 WLAN_HAL_FINISH_SCAN_REQ = 10,
125 WLAN_HAL_FINISH_SCAN_RSP = 11,
126
127 // HW STA configuration/deconfiguration
128 WLAN_HAL_CONFIG_STA_REQ = 12,
129 WLAN_HAL_CONFIG_STA_RSP = 13,
130 WLAN_HAL_DELETE_STA_REQ = 14,
131 WLAN_HAL_DELETE_STA_RSP = 15,
132 WLAN_HAL_CONFIG_BSS_REQ = 16,
133 WLAN_HAL_CONFIG_BSS_RSP = 17,
134 WLAN_HAL_DELETE_BSS_REQ = 18,
135 WLAN_HAL_DELETE_BSS_RSP = 19,
136
137 //Infra STA asscoiation
138 WLAN_HAL_JOIN_REQ = 20,
139 WLAN_HAL_JOIN_RSP = 21,
140 WLAN_HAL_POST_ASSOC_REQ = 22,
141 WLAN_HAL_POST_ASSOC_RSP = 23,
142
143 //Security
144 WLAN_HAL_SET_BSSKEY_REQ = 24,
145 WLAN_HAL_SET_BSSKEY_RSP = 25,
146 WLAN_HAL_SET_STAKEY_REQ = 26,
147 WLAN_HAL_SET_STAKEY_RSP = 27,
148 WLAN_HAL_RMV_BSSKEY_REQ = 28,
149 WLAN_HAL_RMV_BSSKEY_RSP = 29,
150 WLAN_HAL_RMV_STAKEY_REQ = 30,
151 WLAN_HAL_RMV_STAKEY_RSP = 31,
152
153 //Qos Related
154 WLAN_HAL_ADD_TS_REQ = 32,
155 WLAN_HAL_ADD_TS_RSP = 33,
156 WLAN_HAL_DEL_TS_REQ = 34,
157 WLAN_HAL_DEL_TS_RSP = 35,
158 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
159 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
160 WLAN_HAL_ADD_BA_REQ = 38,
161 WLAN_HAL_ADD_BA_RSP = 39,
162 WLAN_HAL_DEL_BA_REQ = 40,
163 WLAN_HAL_DEL_BA_RSP = 41,
164
165 WLAN_HAL_CH_SWITCH_REQ = 42,
166 WLAN_HAL_CH_SWITCH_RSP = 43,
167 WLAN_HAL_SET_LINK_ST_REQ = 44,
168 WLAN_HAL_SET_LINK_ST_RSP = 45,
169 WLAN_HAL_GET_STATS_REQ = 46,
170 WLAN_HAL_GET_STATS_RSP = 47,
171 WLAN_HAL_UPDATE_CFG_REQ = 48,
172 WLAN_HAL_UPDATE_CFG_RSP = 49,
173
174 WLAN_HAL_MISSED_BEACON_IND = 50,
175 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
176 WLAN_HAL_MIC_FAILURE_IND = 52,
177 WLAN_HAL_FATAL_ERROR_IND = 53,
178 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700179
Jeff Johnson295189b2012-06-20 16:38:30 -0700180 //NV Interface
181 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
182 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
183
184 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
185 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
186 WLAN_HAL_TRIGGER_BA_REQ = 59,
187 WLAN_HAL_TRIGGER_BA_RSP = 60,
188 WLAN_HAL_UPDATE_BEACON_REQ = 61,
189 WLAN_HAL_UPDATE_BEACON_RSP = 62,
190 WLAN_HAL_SEND_BEACON_REQ = 63,
191 WLAN_HAL_SEND_BEACON_RSP = 64,
192
193 WLAN_HAL_SET_BCASTKEY_REQ = 65,
194 WLAN_HAL_SET_BCASTKEY_RSP = 66,
195 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
196 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
197 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700198
Jeff Johnson295189b2012-06-20 16:38:30 -0700199 // PTT interface support
200 WLAN_HAL_PROCESS_PTT_REQ = 70,
201 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700202
Jeff Johnson295189b2012-06-20 16:38:30 -0700203 // BTAMP related events
204 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
205 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
206 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
207 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
208
209 WLAN_HAL_ENTER_IMPS_REQ = 76,
210 WLAN_HAL_EXIT_IMPS_REQ = 77,
211 WLAN_HAL_ENTER_BMPS_REQ = 78,
212 WLAN_HAL_EXIT_BMPS_REQ = 79,
213 WLAN_HAL_ENTER_UAPSD_REQ = 80,
214 WLAN_HAL_EXIT_UAPSD_REQ = 81,
215 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
216 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
217 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
218 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
219 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
220 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
221 WLAN_HAL_ENTER_WOWL_REQ = 88,
222 WLAN_HAL_EXIT_WOWL_REQ = 89,
223 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
224 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
225 WLAN_HAL_GET_RSSI_REQ = 92,
226 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
227 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
228
229 WLAN_HAL_ENTER_IMPS_RSP = 95,
230 WLAN_HAL_EXIT_IMPS_RSP = 96,
231 WLAN_HAL_ENTER_BMPS_RSP = 97,
232 WLAN_HAL_EXIT_BMPS_RSP = 98,
233 WLAN_HAL_ENTER_UAPSD_RSP = 99,
234 WLAN_HAL_EXIT_UAPSD_RSP = 100,
235 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
236 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
237 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
238 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
239 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
240 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
241 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
242 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
243 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
244 WLAN_HAL_ENTER_WOWL_RSP = 110,
245 WLAN_HAL_EXIT_WOWL_RSP = 111,
246 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
247 WLAN_HAL_GET_RSSI_RSP = 113,
248 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
249
250 //11k related events
251 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
252 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
253
254 //11R related msgs
255 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
256 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
257
258 //P2P WLAN_FEATURE_P2P
259 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
260 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700261
Jeff Johnson295189b2012-06-20 16:38:30 -0700262 //WLAN Dump commands
263 WLAN_HAL_DUMP_COMMAND_REQ = 121,
264 WLAN_HAL_DUMP_COMMAND_RSP = 122,
265
Jeff Johnsone7245742012-09-05 17:12:55 -0700266 //OEM_DATA FEATURE SUPPORT
267 WLAN_HAL_START_OEM_DATA_REQ = 123,
268 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700269
270 //ADD SELF STA REQ and RSP
271 WLAN_HAL_ADD_STA_SELF_REQ = 125,
272 WLAN_HAL_ADD_STA_SELF_RSP = 126,
273
274 //DEL SELF STA SUPPORT
275 WLAN_HAL_DEL_STA_SELF_REQ = 127,
276 WLAN_HAL_DEL_STA_SELF_RSP = 128,
277
278 // Coex Indication
279 WLAN_HAL_COEX_IND = 129,
280
Jeff Johnson32d95a32012-09-10 13:15:23 -0700281 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700282 WLAN_HAL_OTA_TX_COMPL_IND = 130,
283
284 //Host Suspend/resume messages
285 WLAN_HAL_HOST_SUSPEND_IND = 131,
286 WLAN_HAL_HOST_RESUME_REQ = 132,
287 WLAN_HAL_HOST_RESUME_RSP = 133,
288
289 WLAN_HAL_SET_TX_POWER_REQ = 134,
290 WLAN_HAL_SET_TX_POWER_RSP = 135,
291 WLAN_HAL_GET_TX_POWER_REQ = 136,
292 WLAN_HAL_GET_TX_POWER_RSP = 137,
293
294 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700295
Jeff Johnson295189b2012-06-20 16:38:30 -0700296 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
297 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
298 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
299 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
300 WLAN_HAL_RADAR_DETECT_IND = 143,
301 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
302 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700303 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700304
305 /*PNO messages*/
306 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
307 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
308 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
309 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
310 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
311 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700312 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700313
314 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
315 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
316 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700317
Jeff Johnson295189b2012-06-20 16:38:30 -0700318 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700319 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700320
321 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700322 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700323 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700324 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700325 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700326 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
327 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700328 * Host and Riva code is in sync*/
329 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700330
Jeff Johnson295189b2012-06-20 16:38:30 -0700331 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
332 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
333
334 WLAN_HAL_TSM_STATS_REQ = 168,
335 WLAN_HAL_TSM_STATS_RSP = 169,
336
337 // wake reason indication (WOW)
338 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700339 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700340 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
341 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
342 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
343 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
344
345 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
346 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
347 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
348
349 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
350 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
351
Anand Kumar012623a2013-01-11 17:00:00 -0800352 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
353 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800354
Anand Kumar012623a2013-01-11 17:00:00 -0800355 WLAN_HAL_P2P_NOA_START_IND = 184,
356
357 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
358 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
359
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800360 WLAN_HAL_CLASS_B_STATS_IND = 187,
361 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800362 WLAN_HAL_DHCP_START_IND = 189,
363 WLAN_HAL_DHCP_STOP_IND = 190,
364
365 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700366}tHalHostMsgType;
367
Jeff Johnsone7245742012-09-05 17:12:55 -0700368/* Enumeration for Version */
369typedef enum
370{
371 WLAN_HAL_MSG_VERSION0 = 0,
372 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800373 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
374 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700375}tHalHostMsgVersion;
376
Jeff Johnson295189b2012-06-20 16:38:30 -0700377/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700378typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700379{
380 eANI_BOOLEAN_FALSE = 0,
381 eANI_BOOLEAN_TRUE,
382 eANI_BOOLEAN_OFF = 0,
383 eANI_BOOLEAN_ON = 1,
384 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
385} eAniBoolean;
386
387typedef enum
388{
389 eDRIVER_TYPE_PRODUCTION = 0,
390 eDRIVER_TYPE_MFG = 1,
391 eDRIVER_TYPE_DVT = 2,
392 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
393} tDriverType;
394
395typedef enum
396{
397 HAL_STOP_TYPE_SYS_RESET,
398 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
399 HAL_STOP_TYPE_RF_KILL,
400 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
401}tHalStopType;
402
403typedef enum
404{
405 eHAL_SYS_MODE_NORMAL,
406 eHAL_SYS_MODE_LEARN,
407 eHAL_SYS_MODE_SCAN,
408 eHAL_SYS_MODE_PROMISC,
409 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700410 eHAL_SYS_MODE_ROAM_SCAN,
411 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700412 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
413} eHalSysMode;
414
415typedef enum
416{
417 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
418 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
419 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
420 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700421#ifdef WLAN_FEATURE_11AC
422 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
423 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
424 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
425 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
426 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
427 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
428 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
429#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700430 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
431}ePhyChanBondState;
432
433// Spatial Multiplexing(SM) Power Save mode
434typedef enum eSirMacHTMIMOPowerSaveState
435{
436 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
437 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
438 eSIR_HT_MIMO_PS_NA = 2, // reserved
439 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
440 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
441} tSirMacHTMIMOPowerSaveState;
442
443/* each station added has a rate mode which specifies the sta attributes */
444typedef enum eStaRateMode {
445 eSTA_TAURUS = 0,
446 eSTA_TITAN,
447 eSTA_POLARIS,
448 eSTA_11b,
449 eSTA_11bg,
450 eSTA_11a,
451 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700452#ifdef WLAN_FEATURE_11AC
453 eSTA_11ac,
454#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700455 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
456} tStaRateMode, *tpStaRateMode;
457
458#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
459#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
460#define SIR_NUM_POLARIS_RATES 3 //72,96,108
461
462#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
463
464
465typedef enum eSirBssType
466{
467 eSIR_INFRASTRUCTURE_MODE,
468 eSIR_INFRA_AP_MODE, //Added for softAP support
469 eSIR_IBSS_MODE,
470 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
471 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
472 eSIR_AUTO_MODE,
473 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
474} tSirBssType;
475
476typedef enum eSirNwType
477{
478 eSIR_11A_NW_TYPE,
479 eSIR_11B_NW_TYPE,
480 eSIR_11G_NW_TYPE,
481 eSIR_11N_NW_TYPE,
482 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
483} tSirNwType;
484
485typedef tANI_U16 tSirMacBeaconInterval;
486
487#define SIR_MAC_RATESET_EID_MAX 12
488
489typedef enum eSirMacHTOperatingMode
490{
491 eSIR_HT_OP_MODE_PURE, // No Protection
492 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
493 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
494 eSIR_HT_OP_MODE_MIXED, // Protection is required
495 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
496} tSirMacHTOperatingMode;
497
Jeff Johnson295189b2012-06-20 16:38:30 -0700498/// Encryption type enum used with peer
499typedef enum eAniEdType
500{
501 eSIR_ED_NONE,
502 eSIR_ED_WEP40,
503 eSIR_ED_WEP104,
504 eSIR_ED_TKIP,
505 eSIR_ED_CCMP,
506 eSIR_ED_WPI,
507 eSIR_ED_AES_128_CMAC,
508 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
509} tAniEdType;
510
511#define WLAN_MAX_KEY_RSC_LEN 16
512#define WLAN_WAPI_KEY_RSC_LEN 16
513
514/// MAX key length when ULA is used
515#define SIR_MAC_MAX_KEY_LENGTH 32
516#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
517
518/// Enum to specify whether key is used
519/// for TX only, RX only or both
520typedef enum eAniKeyDirection
521{
522 eSIR_TX_ONLY,
523 eSIR_RX_ONLY,
524 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700525 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700526 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
527} tAniKeyDirection;
528
529typedef enum eAniWepType
530{
531 eSIR_WEP_STATIC,
532 eSIR_WEP_DYNAMIC,
533 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
534} tAniWepType;
535
536typedef enum eSriLinkState {
537
538 eSIR_LINK_IDLE_STATE = 0,
539 eSIR_LINK_PREASSOC_STATE = 1,
540 eSIR_LINK_POSTASSOC_STATE = 2,
541 eSIR_LINK_AP_STATE = 3,
542 eSIR_LINK_IBSS_STATE = 4,
543
544 /* BT-AMP Case */
545 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
546 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
547 eSIR_LINK_BTAMP_AP_STATE = 7,
548 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700549
Jeff Johnson295189b2012-06-20 16:38:30 -0700550 /* Reserved for HAL Internal Use */
551 eSIR_LINK_LEARN_STATE = 9,
552 eSIR_LINK_SCAN_STATE = 10,
553 eSIR_LINK_FINISH_SCAN_STATE = 11,
554 eSIR_LINK_INIT_CAL_STATE = 12,
555 eSIR_LINK_FINISH_CAL_STATE = 13,
556#ifdef WLAN_FEATURE_P2P
557 eSIR_LINK_LISTEN_STATE = 14,
558#endif
559 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
560} tSirLinkState;
561
562typedef enum
563{
564 HAL_SUMMARY_STATS_INFO = 0x00000001,
565 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
566 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
567 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
568 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
569 HAL_PER_STA_STATS_INFO = 0x00000020
570}eHalStatsMask;
571
572/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700573typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700574{
575 BTAMP_EVENT_CONNECTION_START,
576 BTAMP_EVENT_CONNECTION_STOP,
577 BTAMP_EVENT_CONNECTION_TERMINATED,
578 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
579} tBtAmpEventType;
580
581//***************************************************************
582
583
584/*******************PE Statistics*************************/
585typedef enum
586{
587 PE_SUMMARY_STATS_INFO = 0x00000001,
588 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
589 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
590 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
591 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
592 PE_PER_STA_STATS_INFO = 0x00000020,
593 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
594}ePEStatsMask;
595
596/*---------------------------------------------------------------------------
597 Message definitons - All the messages below need to be packed
598 ---------------------------------------------------------------------------*/
599
600#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
601#pragma pack(push, 1)
602#elif defined(__ANI_COMPILER_PRAGMA_PACK)
603#pragma pack(1)
604#else
605#endif
606
607/// Definition for HAL API Version.
608typedef PACKED_PRE struct PACKED_POST
609{
610 tANI_U8 revision;
611 tANI_U8 version;
612 tANI_U8 minor;
613 tANI_U8 major;
614} tWcnssWlanVersion, *tpWcnssWlanVersion;
615
616/// Definition for Encryption Keys
617typedef PACKED_PRE struct PACKED_POST
618{
619 tANI_U8 keyId;
620 tANI_U8 unicast; // 0 for multicast
621 tAniKeyDirection keyDirection;
622 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
623 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
624 tANI_U16 keyLength;
625 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
626} tSirKeys, *tpSirKeys;
627
628
629//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
630typedef PACKED_PRE struct PACKED_POST
631{
632 /*STA Index*/
633 tANI_U16 staIdx;
634
635 /*Encryption Type used with peer*/
636 tAniEdType encType;
637
638 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700639 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700640
641 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
642 tANI_U8 defWEPIdx;
643
Jeff Johnson295189b2012-06-20 16:38:30 -0700644 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700645 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
646
Jeff Johnson295189b2012-06-20 16:38:30 -0700647 /*Control for Replay Count, 1= Single TID based replay count on Tx
648 0 = Per TID based replay count on TX */
649 tANI_U8 singleTidRc;
650
651} tSetStaKeyParams, *tpSetStaKeyParams;
652
653
654
655/* 4-byte control message header used by HAL*/
656typedef PACKED_PRE struct PACKED_POST
657{
Jeff Johnsone7245742012-09-05 17:12:55 -0700658 tHalHostMsgType msgType:16;
659 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700660 tANI_U32 msgLen;
661} tHalMsgHeader, *tpHalMsgHeader;
662
663/* Config format required by HAL for each CFG item*/
664typedef PACKED_PRE struct PACKED_POST
665{
666 /* Cfg Id. The Id required by HAL is exported by HAL
667 * in shared header file between UMAC and HAL.*/
668 tANI_U16 uCfgId;
669
Jeff Johnson32d95a32012-09-10 13:15:23 -0700670 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700671 * in the TLV format.*/
672 tANI_U16 uCfgLen;
673
674 /* Padding bytes for unaligned address's */
675 tANI_U16 uCfgPadBytes;
676
677 /* Reserve bytes for making cfgVal to align address */
678 tANI_U16 uCfgReserve;
679
680 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
681 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
682} tHalCfg, *tpHalCfg;
683
684/*---------------------------------------------------------------------------
685 WLAN_HAL_START_REQ
686---------------------------------------------------------------------------*/
687
688typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
689{
690 /* Drive Type - Production or FTM etc */
691 tDriverType driverType;
692
693 /*Length of the config buffer*/
694 tANI_U32 uConfigBufferLen;
695
Jeff Johnson32d95a32012-09-10 13:15:23 -0700696 /* Following this there is a TLV formatted buffer of length
697 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700698 * The TLV is expected to be formatted like this:
699 * 0 15 31 31+CFG_LEN-1 length-1
700 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
701 */
702} tHalMacStartParameters, *tpHalMacStartParameters;
703
704typedef PACKED_PRE struct PACKED_POST
705{
706 /* Note: The length specified in tHalMacStartReqMsg messages should be
707 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
708 tHalMsgHeader header;
709 tHalMacStartParameters startReqParams;
710} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
711
712/*---------------------------------------------------------------------------
713 WLAN_HAL_START_RSP
714---------------------------------------------------------------------------*/
715
716typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
717{
718 /*success or failure */
719 tANI_U16 status;
720
721 /*Max number of STA supported by the device*/
722 tANI_U8 ucMaxStations;
723
724 /*Max number of BSS supported by the device*/
725 tANI_U8 ucMaxBssids;
726
727 /*API Version */
728 tWcnssWlanVersion wcnssWlanVersion;
729
730 /*CRM build information */
731 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
732
733 /*hardware/chipset/misc version information */
734 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
735
736} tHalMacStartRspParams, *tpHalMacStartRspParams;
737
738typedef PACKED_PRE struct PACKED_POST
739{
740 tHalMsgHeader header;
741 tHalMacStartRspParams startRspParams;
742} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
743
744/*---------------------------------------------------------------------------
745 WLAN_HAL_STOP_REQ
746---------------------------------------------------------------------------*/
747
748typedef PACKED_PRE struct PACKED_POST
749{
750 /*The reason for which the device is being stopped*/
751 tHalStopType reason;
752
753}tHalMacStopReqParams, *tpHalMacStopReqParams;
754
755typedef PACKED_PRE struct PACKED_POST
756{
757 tHalMsgHeader header;
758 tHalMacStopReqParams stopReqParams;
759} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
760
761/*---------------------------------------------------------------------------
762 WLAN_HAL_STOP_RSP
763---------------------------------------------------------------------------*/
764
765typedef PACKED_PRE struct PACKED_POST
766{
767 /*success or failure */
768 tANI_U32 status;
769
770}tHalMacStopRspParams, *tpHalMacStopRspParams;
771
772typedef PACKED_PRE struct PACKED_POST
773{
774 tHalMsgHeader header;
775 tHalMacStopRspParams stopRspParams;
776} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
777
778/*---------------------------------------------------------------------------
779 WLAN_HAL_UPDATE_CFG_REQ
780---------------------------------------------------------------------------*/
781
782typedef PACKED_PRE struct PACKED_POST
783{
784 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
785 tANI_U32 uConfigBufferLen;
786
Jeff Johnson32d95a32012-09-10 13:15:23 -0700787 /* Following this there is a TLV formatted buffer of length
788 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700789 * The TLV is expected to be formatted like this:
790 * 0 15 31 31+CFG_LEN-1 length-1
791 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
792 */
793} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
794
795typedef PACKED_PRE struct PACKED_POST
796{
797 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
798 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
799 tHalMsgHeader header;
800 tHalUpdateCfgReqParams updateCfgReqParams;
801} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
802
803/*---------------------------------------------------------------------------
804 WLAN_HAL_UPDATE_CFG_RSP
805---------------------------------------------------------------------------*/
806
807typedef PACKED_PRE struct PACKED_POST
808{
809 /* success or failure */
810 tANI_U32 status;
811
812}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
813
814typedef PACKED_PRE struct PACKED_POST
815{
816 tHalMsgHeader header;
817 tHalUpdateCfgRspParams updateCfgRspParams;
818} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
819
820/*---------------------------------------------------------------------------
821 WLAN_HAL_INIT_SCAN_REQ
822---------------------------------------------------------------------------*/
823
824/// Frame control field format (2 bytes)
825typedef __ani_attr_pre_packed struct sSirMacFrameCtl
826{
827
828#ifndef ANI_LITTLE_BIT_ENDIAN
829
830 tANI_U8 subType :4;
831 tANI_U8 type :2;
832 tANI_U8 protVer :2;
833
834 tANI_U8 order :1;
835 tANI_U8 wep :1;
836 tANI_U8 moreData :1;
837 tANI_U8 powerMgmt :1;
838 tANI_U8 retry :1;
839 tANI_U8 moreFrag :1;
840 tANI_U8 fromDS :1;
841 tANI_U8 toDS :1;
842
843#else
844
845 tANI_U8 protVer :2;
846 tANI_U8 type :2;
847 tANI_U8 subType :4;
848
849 tANI_U8 toDS :1;
850 tANI_U8 fromDS :1;
851 tANI_U8 moreFrag :1;
852 tANI_U8 retry :1;
853 tANI_U8 powerMgmt :1;
854 tANI_U8 moreData :1;
855 tANI_U8 wep :1;
856 tANI_U8 order :1;
857
858#endif
859
860} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
861
862/// Sequence control field
863typedef __ani_attr_pre_packed struct sSirMacSeqCtl
864{
865 tANI_U8 fragNum : 4;
866 tANI_U8 seqNumLo : 4;
867 tANI_U8 seqNumHi : 8;
868} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
869
870/// Management header format
871typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
872{
873 tSirMacFrameCtl fc;
874 tANI_U8 durationLo;
875 tANI_U8 durationHi;
876 tANI_U8 da[6];
877 tANI_U8 sa[6];
878 tANI_U8 bssId[6];
879 tSirMacSeqCtl seqControl;
880} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
881
882/// Scan Entry to hold active BSS idx's
883typedef __ani_attr_pre_packed struct sSirScanEntry
884{
885 tANI_U8 bssIdx[HAL_NUM_BSSID];
886 tANI_U8 activeBSScnt;
887}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
888
889typedef PACKED_PRE struct PACKED_POST {
890
891 /*LEARN - AP Role
892 SCAN - STA Role*/
893 eHalSysMode scanMode;
894
895 /*BSSID of the BSS*/
896 tSirMacAddr bssid;
897
898 /*Whether BSS needs to be notified*/
899 tANI_U8 notifyBss;
900
901 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
902 CTS to Self). Must always be a valid frame type.*/
903 tANI_U8 frameType;
904
905 /*UMAC has the option of passing the MAC frame to be used for notifying
906 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
907 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
908 frameType.*/
909 tANI_U8 frameLength;
910
Jeff Johnson32d95a32012-09-10 13:15:23 -0700911 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700912 is non-zero. */
913 tSirMacMgmtHdr macMgmtHdr;
914
915 /*Entry to hold number of active BSS idx's*/
916 tSirScanEntry scanEntry;
917
918} tInitScanParams, * tpInitScanParams;
919
920typedef PACKED_PRE struct PACKED_POST
921{
922 tHalMsgHeader header;
923 tInitScanParams initScanParams;
924} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
925
926typedef PACKED_PRE struct PACKED_POST {
927
928 /*LEARN - AP Role
929 SCAN - STA Role*/
930 eHalSysMode scanMode;
931
932 /*BSSID of the BSS*/
933 tSirMacAddr bssid;
934
935 /*Whether BSS needs to be notified*/
936 tANI_U8 notifyBss;
937
938 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
939 CTS to Self). Must always be a valid frame type.*/
940 tANI_U8 frameType;
941
942 /*UMAC has the option of passing the MAC frame to be used for notifying
943 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
944 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
945 frameType.*/
946 tANI_U8 frameLength;
947
Jeff Johnson32d95a32012-09-10 13:15:23 -0700948 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700949 is non-zero. */
950 tSirMacMgmtHdr macMgmtHdr;
951
952 /*Entry to hold number of active BSS idx's*/
953 tSirScanEntry scanEntry;
954
955 /* Single NoA usage in Scanning */
956 tANI_U8 useNoA;
957
958 /* Indicates the scan duration (in ms) */
959 tANI_U16 scanDuration;
960
961} tInitScanConParams, * tpInitScanConParams;
962
963typedef PACKED_PRE struct PACKED_POST
964{
965 tHalMsgHeader header;
966 tInitScanConParams initScanParams;
967} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
968
969
970/*---------------------------------------------------------------------------
971 WLAN_HAL_INIT_SCAN_RSP
972---------------------------------------------------------------------------*/
973
974typedef PACKED_PRE struct PACKED_POST
975{
976 /*success or failure */
977 tANI_U32 status;
978
979}tHalInitScanRspParams, *tpHalInitScanRspParams;
980
981typedef PACKED_PRE struct PACKED_POST
982{
983 tHalMsgHeader header;
984 tHalInitScanRspParams initScanRspParams;
985} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
986
987/*---------------------------------------------------------------------------
988 WLAN_HAL_START_SCAN_REQ
989---------------------------------------------------------------------------*/
990
Jeff Johnson32d95a32012-09-10 13:15:23 -0700991typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -0700992{
993 /*Indicates the channel to scan*/
994 tANI_U8 scanChannel;
995
996 } tStartScanParams, * tpStartScanParams;
997
998typedef PACKED_PRE struct PACKED_POST
999{
1000 tHalMsgHeader header;
1001 tStartScanParams startScanParams;
1002} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1003
1004/*---------------------------------------------------------------------------
1005 WLAN_HAL_START_SCAN_RSP
1006---------------------------------------------------------------------------*/
1007
1008typedef PACKED_PRE struct PACKED_POST
1009{
1010 /*success or failure */
1011 tANI_U32 status;
1012
1013 tANI_U32 startTSF[2];
1014 tPowerdBm txMgmtPower;
1015
1016}tHalStartScanRspParams, *tpHalStartScanRspParams;
1017
1018typedef PACKED_PRE struct PACKED_POST
1019{
1020 tHalMsgHeader header;
1021 tHalStartScanRspParams startScanRspParams;
1022} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1023
1024/*---------------------------------------------------------------------------
1025 WLAN_HAL_END_SCAN_REQ
1026---------------------------------------------------------------------------*/
1027
1028typedef PACKED_PRE struct PACKED_POST
1029{
1030 /*Indicates the channel to stop scanning. Not used really. But retained
1031 for symmetry with "start Scan" message. It can also help in error
1032 check if needed.*/
1033 tANI_U8 scanChannel;
1034
1035} tEndScanParams, *tpEndScanParams;
1036
1037typedef PACKED_PRE struct PACKED_POST
1038{
1039 tHalMsgHeader header;
1040 tEndScanParams endScanParams;
1041} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1042
1043/*---------------------------------------------------------------------------
1044 WLAN_HAL_END_SCAN_RSP
1045---------------------------------------------------------------------------*/
1046
1047typedef PACKED_PRE struct PACKED_POST
1048{
1049 /*success or failure */
1050 tANI_U32 status;
1051
1052}tHalEndScanRspParams, *tpHalEndScanRspParams;
1053
1054typedef PACKED_PRE struct PACKED_POST
1055{
1056 tHalMsgHeader header;
1057 tHalEndScanRspParams endScanRspParams;
1058} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1059
1060/*---------------------------------------------------------------------------
1061 WLAN_HAL_FINISH_SCAN_REQ
1062---------------------------------------------------------------------------*/
1063
1064typedef PACKED_PRE struct PACKED_POST
1065{
1066 /* Identifies the operational state of the AP/STA
1067 * LEARN - AP Role SCAN - STA Role */
1068 eHalSysMode scanMode;
1069
1070 /*Operating channel to tune to.*/
1071 tANI_U8 currentOperChannel;
1072
1073 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1074 40 MHz extension channel in combination with the control channel*/
1075 ePhyChanBondState cbState;
1076
1077 /*BSSID of the BSS*/
1078 tSirMacAddr bssid;
1079
1080 /*Whether BSS needs to be notified*/
1081 tANI_U8 notifyBss;
1082
1083 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1084 CTS to Self). Must always be a valid frame type.*/
1085 tANI_U8 frameType;
1086
1087 /*UMAC has the option of passing the MAC frame to be used for notifying
1088 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1089 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1090 frameType.*/
1091 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001092
1093 /*Following the framelength there is a MAC frame buffer if frameLength
1094 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001095 tSirMacMgmtHdr macMgmtHdr;
1096
1097 /*Entry to hold number of active BSS idx's*/
1098 tSirScanEntry scanEntry;
1099
1100} tFinishScanParams, *tpFinishScanParams;
1101
1102typedef PACKED_PRE struct PACKED_POST
1103{
1104 tHalMsgHeader header;
1105 tFinishScanParams finishScanParams;
1106} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1107
1108/*---------------------------------------------------------------------------
1109 WLAN_HAL_FINISH_SCAN_RSP
1110---------------------------------------------------------------------------*/
1111
1112typedef PACKED_PRE struct PACKED_POST
1113{
1114 /*success or failure */
1115 tANI_U32 status;
1116
1117}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1118
1119typedef PACKED_PRE struct PACKED_POST
1120{
1121 tHalMsgHeader header;
1122 tHalFinishScanRspParams finishScanRspParams;
1123} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1124
1125/*---------------------------------------------------------------------------
1126 WLAN_HAL_CONFIG_STA_REQ
1127---------------------------------------------------------------------------*/
1128
1129typedef PACKED_PRE struct PACKED_POST {
1130 /*
1131 * For Self STA Entry: this represents Self Mode.
1132 * For Peer Stations, this represents the mode of the peer.
1133 * On Station:
1134 * --this mode is updated when PE adds the Self Entry.
1135 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1136 * ON AP:
1137 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1138 * to indicate the self mode of the AP.
1139 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1140 */
1141
1142 tStaRateMode opRateMode;
1143 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1144 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1145 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1146 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1147 tANI_U16 reserved;
1148
1149 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1150 //First 26 bits are reserved for those Titan rates and
1151 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1152 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1153
1154 /*
1155 * 0-76 bits used, remaining reserved
1156 * bits 0-15 and 32 should be set.
1157 */
1158 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1159
1160 /*
1161 * RX Highest Supported Data Rate defines the highest data
1162 * rate that the STA is able to receive, in unites of 1Mbps.
1163 * This value is derived from "Supported MCS Set field" inside
1164 * the HT capability element.
1165 */
1166 tANI_U16 rxHighestDataRate;
1167
1168} tSirSupportedRates, *tpSirSupportedRates;
1169
1170typedef PACKED_PRE struct PACKED_POST
1171{
1172 /*BSSID of STA*/
1173 tSirMacAddr bssId;
1174
1175 /*ASSOC ID, as assigned by UMAC*/
1176 tANI_U16 assocId;
1177
1178 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1179 tANI_U8 staType;
1180
1181 /*Short Preamble Supported.*/
1182 tANI_U8 shortPreambleSupported;
1183
1184 /*MAC Address of STA*/
1185 tSirMacAddr staMac;
1186
1187 /*Listen interval of the STA*/
1188 tANI_U16 listenInterval;
1189
1190 /*Support for 11e/WMM*/
1191 tANI_U8 wmmEnabled;
1192
1193 /*11n HT capable STA*/
1194 tANI_U8 htCapable;
1195
1196 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1197 tANI_U8 txChannelWidthSet;
1198
1199 /*RIFS mode 0 - NA, 1 - Allowed */
1200 tANI_U8 rifsMode;
1201
Jeff Johnson32d95a32012-09-10 13:15:23 -07001202 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001203 0 - No Support, 1 - Supported
1204 SG - there is global field */
1205 tANI_U8 lsigTxopProtection;
1206
1207 /*Max Ampdu Size supported by STA. TPE programming.
1208 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1209 tANI_U8 maxAmpduSize;
1210
1211 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1212 tANI_U8 maxAmpduDensity;
1213
1214 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1215 tANI_U8 maxAmsduSize;
1216
1217 /*Short GI support for 40Mhz packets*/
1218 tANI_U8 fShortGI40Mhz;
1219
1220 /*Short GI support for 20Mhz packets*/
1221 tANI_U8 fShortGI20Mhz;
1222
Jeff Johnson295189b2012-06-20 16:38:30 -07001223 /*Robust Management Frame (RMF) enabled/disabled*/
1224 tANI_U8 rmfEnabled;
1225
1226 /* The unicast encryption type in the association */
1227 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001228
1229 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001230 will set this flag in case of RE-ASSOC, where we want to reuse the old
1231 STA ID. 0 = Add, 1 = Update*/
1232 tANI_U8 action;
1233
1234 /*U-APSD Flags: 1b per AC. Encoded as follows:
1235 b7 b6 b5 b4 b3 b2 b1 b0 =
1236 X X X X BE BK VI VO */
1237 tANI_U8 uAPSD;
1238
1239 /*Max SP Length*/
1240 tANI_U8 maxSPLen;
1241
1242 /*11n Green Field preamble support
1243 0 - Not supported, 1 - Supported */
1244 tANI_U8 greenFieldCapable;
1245
1246 /*MIMO Power Save mode*/
1247 tSirMacHTMIMOPowerSaveState mimoPS;
1248
1249 /*Delayed BA Support*/
1250 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001251
Jeff Johnson295189b2012-06-20 16:38:30 -07001252 /*Max AMPDU duration in 32us*/
1253 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001254
Jeff Johnson295189b2012-06-20 16:38:30 -07001255 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1256 it to 0 if AP does not support it. This indication is sent to HAL and
1257 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1258 tANI_U8 fDsssCckMode40Mhz;
1259
1260 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1261 Retained for backward compalibity with existing HAL code*/
1262 tANI_U8 staIdx;
1263
1264 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1265 Retained for backward compalibity with existing HAL code*/
1266 tANI_U8 bssIdx;
1267
1268 tANI_U8 p2pCapableSta;
1269
Jeff Johnsone7245742012-09-05 17:12:55 -07001270 /*Reserved to align next field on a dword boundary*/
1271 tANI_U8 reserved;
1272
1273 /*These rates are the intersection of peer and self capabilities.*/
1274 tSirSupportedRates supportedRates;
1275
Jeff Johnson295189b2012-06-20 16:38:30 -07001276} tConfigStaParams, *tpConfigStaParams;
1277
Jeff Johnsone7245742012-09-05 17:12:55 -07001278/*------------------------------------------------------------------------
1279 * WLAN_HAL_CONFIG_STA_REQ
1280 * ----------------------------------------------------------------------*/
1281
1282typedef PACKED_PRE struct PACKED_POST {
1283 /*
1284 * For Self STA Entry: this represents Self Mode.
1285 * For Peer Stations, this represents the mode of the peer.
1286 * On Station:
1287 * --this mode is updated when PE adds the Self Entry.
1288 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1289 * ON AP:
1290 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1291 * to indicate the self mode of the AP.
1292 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1293 */
1294
1295 tStaRateMode opRateMode;
1296 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1297 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1298 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1299 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1300 tANI_U16 reserved;
1301
1302 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1303 //First 26 bits are reserved for those Titan rates and
1304 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1305 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1306
1307 /*
1308 * 0-76 bits used, remaining reserved
1309 * bits 0-15 and 32 should be set.
1310 */
1311 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1312
1313 /*
1314 * RX Highest Supported Data Rate defines the highest data
1315 * rate that the STA is able to receive, in unites of 1Mbps.
1316 * This value is derived from "Supported MCS Set field" inside
1317 * the HT capability element.
1318 */
1319 tANI_U16 rxHighestDataRate;
1320
1321 /* Indicates the Maximum MCS that can be received for each number
1322 * of spacial streams */
1323 tANI_U16 vhtRxMCSMap;
1324
1325 /*Indicate the highest VHT data rate that the STA is able to receive*/
1326 tANI_U16 vhtRxHighestDataRate;
1327
1328 /* Indicates the Maximum MCS that can be transmitted for each number
1329 * of spacial streams */
1330 tANI_U16 vhtTxMCSMap;
1331
1332 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1333 tANI_U16 vhtTxHighestDataRate;
1334
1335} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1336
1337typedef PACKED_PRE struct PACKED_POST
1338{
1339 /*BSSID of STA*/
1340 tSirMacAddr bssId;
1341
1342 /*ASSOC ID, as assigned by UMAC*/
1343 tANI_U16 assocId;
1344
1345 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1346 tANI_U8 staType;
1347
1348 /*Short Preamble Supported.*/
1349 tANI_U8 shortPreambleSupported;
1350
1351 /*MAC Address of STA*/
1352 tSirMacAddr staMac;
1353
1354 /*Listen interval of the STA*/
1355 tANI_U16 listenInterval;
1356
1357 /*Support for 11e/WMM*/
1358 tANI_U8 wmmEnabled;
1359
1360 /*11n HT capable STA*/
1361 tANI_U8 htCapable;
1362
1363 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1364 tANI_U8 txChannelWidthSet;
1365
1366 /*RIFS mode 0 - NA, 1 - Allowed */
1367 tANI_U8 rifsMode;
1368
1369 /*L-SIG TXOP Protection mechanism
1370 0 - No Support, 1 - Supported
1371 SG - there is global field */
1372 tANI_U8 lsigTxopProtection;
1373
1374 /*Max Ampdu Size supported by STA. TPE programming.
1375 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1376 tANI_U8 maxAmpduSize;
1377
1378 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1379 tANI_U8 maxAmpduDensity;
1380
1381 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1382 tANI_U8 maxAmsduSize;
1383
1384 /*Short GI support for 40Mhz packets*/
1385 tANI_U8 fShortGI40Mhz;
1386
1387 /*Short GI support for 20Mhz packets*/
1388 tANI_U8 fShortGI20Mhz;
1389
1390 /*Robust Management Frame (RMF) enabled/disabled*/
1391 tANI_U8 rmfEnabled;
1392
1393 /* The unicast encryption type in the association */
1394 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001395
1396 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001397 will set this flag in case of RE-ASSOC, where we want to reuse the old
1398 STA ID. 0 = Add, 1 = Update*/
1399 tANI_U8 action;
1400
1401 /*U-APSD Flags: 1b per AC. Encoded as follows:
1402 b7 b6 b5 b4 b3 b2 b1 b0 =
1403 X X X X BE BK VI VO */
1404 tANI_U8 uAPSD;
1405
1406 /*Max SP Length*/
1407 tANI_U8 maxSPLen;
1408
1409 /*11n Green Field preamble support
1410 0 - Not supported, 1 - Supported */
1411 tANI_U8 greenFieldCapable;
1412
1413 /*MIMO Power Save mode*/
1414 tSirMacHTMIMOPowerSaveState mimoPS;
1415
1416 /*Delayed BA Support*/
1417 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001418
Jeff Johnsone7245742012-09-05 17:12:55 -07001419 /*Max AMPDU duration in 32us*/
1420 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001421
Jeff Johnsone7245742012-09-05 17:12:55 -07001422 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1423 it to 0 if AP does not support it. This indication is sent to HAL and
1424 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1425 tANI_U8 fDsssCckMode40Mhz;
1426
1427 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1428 Retained for backward compalibity with existing HAL code*/
1429 tANI_U8 staIdx;
1430
1431 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1432 Retained for backward compalibity with existing HAL code*/
1433 tANI_U8 bssIdx;
1434
1435 tANI_U8 p2pCapableSta;
1436
1437 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001438 tANI_U8 htLdpcEnabled:1;
1439 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001440 tANI_U8 vhtTxBFEnabled:1;
1441 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001442
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001443 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001444 tSirSupportedRates_V1 supportedRates;
1445
1446 tANI_U8 vhtCapable;
1447 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001448
Jeff Johnsone7245742012-09-05 17:12:55 -07001449} tConfigStaParams_V1, *tpConfigStaParams_V1;
1450
Jeff Johnson295189b2012-06-20 16:38:30 -07001451typedef PACKED_PRE struct PACKED_POST
1452{
1453 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001454 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001455 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001456 tConfigStaParams_V1 configStaParams_V1;
1457 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001458} tConfigStaReqMsg, *tpConfigStaReqMsg;
1459
1460/*---------------------------------------------------------------------------
1461 WLAN_HAL_CONFIG_STA_RSP
1462---------------------------------------------------------------------------*/
1463
1464typedef PACKED_PRE struct PACKED_POST
1465{
1466 /*success or failure */
1467 tANI_U32 status;
1468
1469 /* Station index; valid only when 'status' field value SUCCESS */
1470 tANI_U8 staIdx;
1471
1472 /* BSSID Index of BSS to which the station is associated */
1473 tANI_U8 bssIdx;
1474
1475 /* DPU Index for PTK */
1476 tANI_U8 dpuIndex;
1477
Jeff Johnson32d95a32012-09-10 13:15:23 -07001478 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001479 tANI_U8 bcastDpuIndex;
1480
1481 /*DPU Index for IGTK */
1482 tANI_U8 bcastMgmtDpuIdx;
1483
1484 /*PTK DPU signature*/
1485 tANI_U8 ucUcastSig;
1486
1487 /*GTK DPU isignature*/
1488 tANI_U8 ucBcastSig;
1489
1490 /* IGTK DPU signature*/
1491 tANI_U8 ucMgmtSig;
1492
1493 tANI_U8 p2pCapableSta;
1494
1495}tConfigStaRspParams, *tpConfigStaRspParams;
1496
1497typedef PACKED_PRE struct PACKED_POST
1498{
1499 tHalMsgHeader header;
1500 tConfigStaRspParams configStaRspParams;
1501}tConfigStaRspMsg, *tpConfigStaRspMsg;
1502
1503/*---------------------------------------------------------------------------
1504 WLAN_HAL_DELETE_STA_REQ
1505---------------------------------------------------------------------------*/
1506
1507/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001508typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001509{
1510 /* Index of STA to delete */
1511 tANI_U8 staIdx;
1512} tDeleteStaParams, *tpDeleteStaParams;
1513
1514/* Delete STA Request message*/
1515typedef PACKED_PRE struct PACKED_POST
1516{
1517 tHalMsgHeader header;
1518 tDeleteStaParams delStaParams;
1519} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1520
1521/*---------------------------------------------------------------------------
1522 WLAN_HAL_DELETE_STA_RSP
1523---------------------------------------------------------------------------*/
1524
1525/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001526typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001527{
1528 /*success or failure */
1529 tANI_U32 status;
1530
1531 /* Index of STA deleted */
1532 tANI_U8 staId;
1533} tDeleteStaRspParams, *tpDeleteStaRspParams;
1534
1535/* Delete STA Response message*/
1536typedef PACKED_PRE struct PACKED_POST
1537{
1538 tHalMsgHeader header;
1539 tDeleteStaRspParams delStaRspParams;
1540} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1541
1542/*---------------------------------------------------------------------------
1543 WLAN_HAL_CONFIG_BSS_REQ
1544---------------------------------------------------------------------------*/
1545
1546//12 Bytes long because this structure can be used to represent rate
1547//and extended rate set IEs. The parser assume this to be at least 12
1548typedef __ani_attr_pre_packed struct sSirMacRateSet
1549{
1550 tANI_U8 numRates;
1551 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1552} __ani_attr_packed tSirMacRateSet;
1553
1554// access category record
1555typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1556{
1557#ifndef ANI_LITTLE_BIT_ENDIAN
1558 tANI_U8 rsvd : 1;
1559 tANI_U8 aci : 2;
1560 tANI_U8 acm : 1;
1561 tANI_U8 aifsn : 4;
1562#else
1563 tANI_U8 aifsn : 4;
1564 tANI_U8 acm : 1;
1565 tANI_U8 aci : 2;
1566 tANI_U8 rsvd : 1;
1567#endif
1568} __ani_attr_packed tSirMacAciAifsn;
1569
1570// contention window size
1571typedef __ani_attr_pre_packed struct sSirMacCW
1572{
1573#ifndef ANI_LITTLE_BIT_ENDIAN
1574 tANI_U8 max : 4;
1575 tANI_U8 min : 4;
1576#else
1577 tANI_U8 min : 4;
1578 tANI_U8 max : 4;
1579#endif
1580} __ani_attr_packed tSirMacCW;
1581
1582typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1583{
1584 tSirMacAciAifsn aci;
1585 tSirMacCW cw;
1586 tANI_U16 txoplimit;
1587} __ani_attr_packed tSirMacEdcaParamRecord;
1588
1589typedef __ani_attr_pre_packed struct sSirMacSSid
1590{
1591 tANI_U8 length;
1592 tANI_U8 ssId[32];
1593} __ani_attr_packed tSirMacSSid;
1594
1595// Concurrency role. These are generic IDs that identify the various roles
1596// in the software system.
1597typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001598 HAL_STA_MODE=0,
1599 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001600 HAL_P2P_CLIENT_MODE,
1601 HAL_P2P_GO_MODE,
1602 HAL_MONITOR_MODE,
1603} tHalConMode;
1604
1605//This is a bit pattern to be set for each mode
1606//bit 0 - sta mode
1607//bit 1 - ap mode
1608//bit 2 - p2p client mode
1609//bit 3 - p2p go mode
1610typedef enum
1611{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001612 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001613 HAL_SAP=2,
1614 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1615 HAL_P2P_CLIENT=4,
1616 HAL_P2P_GO=8,
1617 HAL_MAX_CONCURRENCY_PERSONA=4
1618} tHalConcurrencyMode;
1619
1620typedef PACKED_PRE struct PACKED_POST
1621{
1622 /* BSSID */
1623 tSirMacAddr bssId;
1624
Jeff Johnson295189b2012-06-20 16:38:30 -07001625 /* Self Mac Address */
1626 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001627
1628 /* BSS type */
1629 tSirBssType bssType;
1630
1631 /*Operational Mode: AP =0, STA = 1*/
1632 tANI_U8 operMode;
1633
1634 /*Network Type*/
1635 tSirNwType nwType;
1636
1637 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1638 tANI_U8 shortSlotTimeSupported;
1639
1640 /*Co-exist with 11a STA*/
1641 tANI_U8 llaCoexist;
1642
1643 /*Co-exist with 11b STA*/
1644 tANI_U8 llbCoexist;
1645
1646 /*Co-exist with 11g STA*/
1647 tANI_U8 llgCoexist;
1648
1649 /*Coexistence with 11n STA*/
1650 tANI_U8 ht20Coexist;
1651
1652 /*Non GF coexist flag*/
1653 tANI_U8 llnNonGFCoexist;
1654
1655 /*TXOP protection support*/
1656 tANI_U8 fLsigTXOPProtectionFullSupport;
1657
1658 /*RIFS mode*/
1659 tANI_U8 fRIFSMode;
1660
1661 /*Beacon Interval in TU*/
1662 tSirMacBeaconInterval beaconInterval;
1663
1664 /*DTIM period*/
1665 tANI_U8 dtimPeriod;
1666
1667 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1668 tANI_U8 txChannelWidthSet;
1669
1670 /*Operating channel*/
1671 tANI_U8 currentOperChannel;
1672
1673 /*Extension channel for channel bonding*/
1674 tANI_U8 currentExtChannel;
1675
1676 /*Reserved to align next field on a dword boundary*/
1677 tANI_U8 reserved;
1678
Jeff Johnsone7245742012-09-05 17:12:55 -07001679 /*SSID of the BSS*/
1680 tSirMacSSid ssId;
1681
1682 /*HAL should update the existing BSS entry, if this flag is set.
1683 UMAC will set this flag in case of reassoc, where we want to resue the
1684 the old BSSID and still return success 0 = Add, 1 = Update*/
1685 tANI_U8 action;
1686
1687 /* MAC Rate Set */
1688 tSirMacRateSet rateSet;
1689
1690 /*Enable/Disable HT capabilities of the BSS*/
1691 tANI_U8 htCapable;
1692
1693 // Enable/Disable OBSS protection
1694 tANI_U8 obssProtEnabled;
1695
1696 /*RMF enabled/disabled*/
1697 tANI_U8 rmfEnabled;
1698
1699 /*HT Operating Mode operating mode of the 802.11n STA*/
1700 tSirMacHTOperatingMode htOperMode;
1701
1702 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1703 tANI_U8 dualCTSProtection;
1704
1705 /* Probe Response Max retries */
1706 tANI_U8 ucMaxProbeRespRetryLimit;
1707
1708 /* To Enable Hidden ssid */
1709 tANI_U8 bHiddenSSIDEn;
1710
1711 /* To Enable Disable FW Proxy Probe Resp */
1712 tANI_U8 bProxyProbeRespEn;
1713
1714 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1715 EDCA params or might not desire to apply EDCA params during config BSS.
1716 0 implies Not Valid ; Non-Zero implies valid*/
1717 tANI_U8 edcaParamsValid;
1718
1719 /*EDCA Parameters for Best Effort Access Category*/
1720 tSirMacEdcaParamRecord acbe;
1721
1722 /*EDCA Parameters forBackground Access Category*/
1723 tSirMacEdcaParamRecord acbk;
1724
1725 /*EDCA Parameters for Video Access Category*/
1726 tSirMacEdcaParamRecord acvi;
1727
1728 /*EDCA Parameters for Voice Access Category*/
1729 tSirMacEdcaParamRecord acvo;
1730
1731#ifdef WLAN_FEATURE_VOWIFI_11R
1732 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1733 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1734#endif
1735
1736 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1737 tANI_U8 halPersona;
1738
1739 tANI_U8 bSpectrumMgtEnable;
1740
1741 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1742 tANI_S8 txMgmtPower;
1743 /*maxTxPower has max power to be used after applying the power constraint if any */
1744 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001745 /*Context of the station being added in HW
1746 Add a STA entry for "itself" -
1747 On AP - Add the AP itself in an "STA context"
1748 On STA - Add the AP to which this STA is joining in an "STA context" */
1749 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001750} tConfigBssParams, * tpConfigBssParams;
1751
1752
1753/*--------------------------------------------------------------------------
1754 * WLAN_HAL_CONFIG_BSS_REQ
1755 *--------------------------------------------------------------------------*/
1756typedef PACKED_PRE struct PACKED_POST
1757{
1758 /* BSSID */
1759 tSirMacAddr bssId;
1760
Jeff Johnsone7245742012-09-05 17:12:55 -07001761 /* Self Mac Address */
1762 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001763
1764 /* BSS type */
1765 tSirBssType bssType;
1766
1767 /*Operational Mode: AP =0, STA = 1*/
1768 tANI_U8 operMode;
1769
1770 /*Network Type*/
1771 tSirNwType nwType;
1772
1773 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1774 tANI_U8 shortSlotTimeSupported;
1775
1776 /*Co-exist with 11a STA*/
1777 tANI_U8 llaCoexist;
1778
1779 /*Co-exist with 11b STA*/
1780 tANI_U8 llbCoexist;
1781
1782 /*Co-exist with 11g STA*/
1783 tANI_U8 llgCoexist;
1784
1785 /*Coexistence with 11n STA*/
1786 tANI_U8 ht20Coexist;
1787
1788 /*Non GF coexist flag*/
1789 tANI_U8 llnNonGFCoexist;
1790
1791 /*TXOP protection support*/
1792 tANI_U8 fLsigTXOPProtectionFullSupport;
1793 /*RIFS mode*/
1794 tANI_U8 fRIFSMode;
1795
1796 /*Beacon Interval in TU*/
1797 tSirMacBeaconInterval beaconInterval;
1798
1799 /*DTIM period*/
1800 tANI_U8 dtimPeriod;
1801
1802 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1803 tANI_U8 txChannelWidthSet;
1804
1805 /*Operating channel*/
1806 tANI_U8 currentOperChannel;
1807
1808 /*Extension channel for channel bonding*/
1809 tANI_U8 currentExtChannel;
1810
1811 /*Reserved to align next field on a dword boundary*/
1812 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001813
1814 /*SSID of the BSS*/
1815 tSirMacSSid ssId;
1816
1817 /*HAL should update the existing BSS entry, if this flag is set.
1818 UMAC will set this flag in case of reassoc, where we want to resue the
1819 the old BSSID and still return success 0 = Add, 1 = Update*/
1820 tANI_U8 action;
1821
1822 /* MAC Rate Set */
1823 tSirMacRateSet rateSet;
1824
1825 /*Enable/Disable HT capabilities of the BSS*/
1826 tANI_U8 htCapable;
1827
1828 // Enable/Disable OBSS protection
1829 tANI_U8 obssProtEnabled;
1830
1831 /*RMF enabled/disabled*/
1832 tANI_U8 rmfEnabled;
1833
1834 /*HT Operating Mode operating mode of the 802.11n STA*/
1835 tSirMacHTOperatingMode htOperMode;
1836
1837 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1838 tANI_U8 dualCTSProtection;
1839
1840 /* Probe Response Max retries */
1841 tANI_U8 ucMaxProbeRespRetryLimit;
1842
1843 /* To Enable Hidden ssid */
1844 tANI_U8 bHiddenSSIDEn;
1845
1846 /* To Enable Disable FW Proxy Probe Resp */
1847 tANI_U8 bProxyProbeRespEn;
1848
Jeff Johnson32d95a32012-09-10 13:15:23 -07001849 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1850 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001851 0 implies Not Valid ; Non-Zero implies valid*/
1852 tANI_U8 edcaParamsValid;
1853
1854 /*EDCA Parameters for Best Effort Access Category*/
1855 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001856
Jeff Johnson295189b2012-06-20 16:38:30 -07001857 /*EDCA Parameters forBackground Access Category*/
1858 tSirMacEdcaParamRecord acbk;
1859
1860 /*EDCA Parameters for Video Access Category*/
1861 tSirMacEdcaParamRecord acvi;
1862
1863 /*EDCA Parameters for Voice Access Category*/
1864 tSirMacEdcaParamRecord acvo;
1865
1866#ifdef WLAN_FEATURE_VOWIFI_11R
1867 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1868 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1869#endif
1870
Jeff Johnson32d95a32012-09-10 13:15:23 -07001871 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001872 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001873
Jeff Johnson295189b2012-06-20 16:38:30 -07001874 tANI_U8 bSpectrumMgtEnable;
1875
1876 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1877 tANI_S8 txMgmtPower;
1878 /*maxTxPower has max power to be used after applying the power constraint if any */
1879 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001880 /*Context of the station being added in HW
1881 Add a STA entry for "itself" -
1882 On AP - Add the AP itself in an "STA context"
1883 On STA - Add the AP to which this STA is joining in an "STA context" */
1884 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001885
Jeff Johnsone7245742012-09-05 17:12:55 -07001886 tANI_U8 vhtCapable;
1887 tANI_U8 vhtTxChannelWidthSet;
1888} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001889
1890typedef PACKED_PRE struct PACKED_POST
1891{
1892 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001893 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001894 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001895 tConfigBssParams_V1 configBssParams_V1;
1896 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001897} tConfigBssReqMsg, *tpConfigBssReqMsg;
1898
1899/*---------------------------------------------------------------------------
1900 WLAN_HAL_CONFIG_BSS_RSP
1901---------------------------------------------------------------------------*/
1902
1903typedef PACKED_PRE struct PACKED_POST
1904{
1905 /* Success or Failure */
1906 tANI_U32 status;
1907
1908 /* BSS index allocated by HAL */
1909 tANI_U8 bssIdx;
1910
1911 /* DPU descriptor index for PTK */
1912 tANI_U8 dpuDescIndx;
1913
1914 /* PTK DPU signature */
1915 tANI_U8 ucastDpuSignature;
1916
1917 /* DPU descriptor index for GTK*/
1918 tANI_U8 bcastDpuDescIndx;
1919
1920 /* GTK DPU signature */
1921 tANI_U8 bcastDpuSignature;
1922
1923 /*DPU descriptor for IGTK*/
1924 tANI_U8 mgmtDpuDescIndx;
1925
1926 /* IGTK DPU signature */
1927 tANI_U8 mgmtDpuSignature;
1928
1929 /* Station Index for BSS entry*/
1930 tANI_U8 bssStaIdx;
1931
1932 /* Self station index for this BSS */
1933 tANI_U8 bssSelfStaIdx;
1934
1935 /* Bcast station for buffering bcast frames in AP role */
1936 tANI_U8 bssBcastStaIdx;
1937
1938 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1939 tSirMacAddr staMac;
1940
1941 /*HAL fills in the tx power used for mgmt frames in this field. */
1942 tANI_S8 txMgmtPower;
1943
1944} tConfigBssRspParams, * tpConfigBssRspParams;
1945
1946typedef PACKED_PRE struct PACKED_POST
1947{
1948 tHalMsgHeader header;
1949 tConfigBssRspParams configBssRspParams;
1950} tConfigBssRspMsg, *tpConfigBssRspMsg;
1951
1952/*---------------------------------------------------------------------------
1953 WLAN_HAL_DELETE_BSS_REQ
1954---------------------------------------------------------------------------*/
1955
1956typedef PACKED_PRE struct PACKED_POST
1957{
1958 /* BSS index to be deleted */
1959 tANI_U8 bssIdx;
1960
1961} tDeleteBssParams, *tpDeleteBssParams;
1962
1963typedef PACKED_PRE struct PACKED_POST
1964{
1965 tHalMsgHeader header;
1966 tDeleteBssParams deleteBssParams;
1967} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1968
1969/*---------------------------------------------------------------------------
1970 WLAN_HAL_DELETE_BSS_RSP
1971---------------------------------------------------------------------------*/
1972
1973typedef PACKED_PRE struct PACKED_POST
1974{
1975 /* Success or Failure */
1976 tANI_U32 status;
1977
1978 /* BSS index that has been deleted */
1979 tANI_U8 bssIdx;
1980
1981} tDeleteBssRspParams, *tpDeleteBssRspParams;
1982
1983typedef PACKED_PRE struct PACKED_POST
1984{
1985 tHalMsgHeader header;
1986 tDeleteBssRspParams deleteBssRspParams;
1987} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
1988
1989/*---------------------------------------------------------------------------
1990 WLAN_HAL_JOIN_REQ
1991---------------------------------------------------------------------------*/
1992
1993typedef PACKED_PRE struct PACKED_POST
1994{
1995 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07001996 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001997
1998 /*Indicates the channel to switch to.*/
1999 tANI_U8 ucChannel;
2000
2001 /* Self STA MAC */
2002 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002003
Jeff Johnson295189b2012-06-20 16:38:30 -07002004 /*Local power constraint*/
2005 tANI_U8 ucLocalPowerConstraint;
2006
2007 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002008 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002009
2010 /*link State*/
2011 tSirLinkState linkState;
2012
2013 /* Max TX power */
2014 tANI_S8 maxTxPower;
2015
2016} tHalJoinReqParams, *tpHalJoinReqParams;
2017
2018typedef PACKED_PRE struct PACKED_POST
2019{
2020 tHalMsgHeader header;
2021 tHalJoinReqParams joinReqParams;
2022} tHalJoinReqMsg, *tpHalJoinReqMsg;
2023
2024/*---------------------------------------------------------------------------
2025 WLAN_HAL_JOIN_RSP
2026---------------------------------------------------------------------------*/
2027
2028typedef PACKED_PRE struct PACKED_POST
2029{
2030 /*success or failure */
2031 tANI_U32 status;
2032
2033 /* HAL fills in the tx power used for mgmt frames in this field */
2034 tPowerdBm txMgmtPower;
2035
2036}tHalJoinRspParams, *tpHalJoinRspParams;
2037
2038typedef PACKED_PRE struct PACKED_POST
2039{
2040 tHalMsgHeader header;
2041 tHalJoinRspParams joinRspParams;
2042}tHalJoinRspMsg, *tpHalJoinRspMsg;
2043
2044/*---------------------------------------------------------------------------
2045 WLAN_HAL_POST_ASSOC_REQ
2046---------------------------------------------------------------------------*/
2047
2048typedef PACKED_PRE struct PACKED_POST
2049{
2050 tConfigStaParams configStaParams;
2051 tConfigBssParams configBssParams;
2052} tPostAssocReqParams, *tpPostAssocReqParams;
2053
2054typedef PACKED_PRE struct PACKED_POST
2055{
2056 tHalMsgHeader header;
2057 tPostAssocReqParams postAssocReqParams;
2058} tPostAssocReqMsg, *tpPostAssocReqMsg;
2059
2060/*---------------------------------------------------------------------------
2061 WLAN_HAL_POST_ASSOC_RSP
2062---------------------------------------------------------------------------*/
2063
2064typedef PACKED_PRE struct PACKED_POST
2065{
2066 tConfigStaRspParams configStaRspParams;
2067 tConfigBssRspParams configBssRspParams;
2068} tPostAssocRspParams, *tpPostAssocRspParams;
2069
2070typedef PACKED_PRE struct PACKED_POST
2071{
2072 tHalMsgHeader header;
2073 tPostAssocRspParams postAssocRspParams;
2074} tPostAssocRspMsg, *tpPostAssocRspMsg;
2075
2076/*---------------------------------------------------------------------------
2077 WLAN_HAL_SET_BSSKEY_REQ
2078---------------------------------------------------------------------------*/
2079
2080/*
2081 * This is used by PE to create a set of WEP keys for a given BSS.
2082 */
2083typedef PACKED_PRE struct PACKED_POST
2084{
2085 /*BSS Index of the BSS*/
2086 tANI_U8 bssIdx;
2087
2088 /*Encryption Type used with peer*/
2089 tAniEdType encType;
2090
2091 /*Number of keys*/
2092 tANI_U8 numKeys;
2093
2094 /*Array of keys.*/
2095 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002096
Jeff Johnson295189b2012-06-20 16:38:30 -07002097 /*Control for Replay Count, 1= Single TID based replay count on Tx
2098 0 = Per TID based replay count on TX */
2099 tANI_U8 singleTidRc;
2100} tSetBssKeyParams, *tpSetBssKeyParams;
2101
2102typedef PACKED_PRE struct PACKED_POST
2103{
2104 tHalMsgHeader header;
2105 tSetBssKeyParams setBssKeyParams;
2106} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2107
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002108/* tagged version of set bss key */
2109typedef PACKED_PRE struct PACKED_POST
2110{
2111 tSetBssKeyReqMsg Msg;
2112 uint32 Tag;
2113} tSetBssKeyReqMsgTagged;
2114
Jeff Johnson295189b2012-06-20 16:38:30 -07002115/*---------------------------------------------------------------------------
2116 WLAN_HAL_SET_BSSKEY_RSP
2117---------------------------------------------------------------------------*/
2118typedef PACKED_PRE struct PACKED_POST
2119{
2120 /*success or failure */
2121 tANI_U32 status;
2122
2123} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2124
2125typedef PACKED_PRE struct PACKED_POST
2126{
2127 tHalMsgHeader header;
2128 tSetBssKeyRspParams setBssKeyRspParams;
2129} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2130
2131/*---------------------------------------------------------------------------
2132 WLAN_HAL_SET_STAKEY_REQ,
2133---------------------------------------------------------------------------*/
2134
2135/*
2136 * This is used by PE to configure the key information on a given station.
2137 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2138 * a preconfigured key from a BSS the station assoicated with; otherwise
2139 * a new key descriptor is created based on the key field.
2140 */
2141
2142typedef PACKED_PRE struct PACKED_POST
2143{
2144 tHalMsgHeader header;
2145 tSetStaKeyParams setStaKeyParams;
2146} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2147
2148/*---------------------------------------------------------------------------
2149 WLAN_HAL_SET_STAKEY_RSP,
2150---------------------------------------------------------------------------*/
2151typedef PACKED_PRE struct PACKED_POST
2152{
2153 /*success or failure */
2154 tANI_U32 status;
2155
2156} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2157
2158typedef PACKED_PRE struct PACKED_POST
2159{
2160 tHalMsgHeader header;
2161 tSetStaKeyRspParams setStaKeyRspParams;
2162} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2163
2164/*---------------------------------------------------------------------------
2165 WLAN_HAL_RMV_BSSKEY_REQ,
2166---------------------------------------------------------------------------*/
2167/*
2168 * This is used by PE to remove keys for a given BSS.
2169 */
2170typedef PACKED_PRE struct PACKED_POST
2171
2172{
2173 /*BSS Index of the BSS*/
2174 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002175
Jeff Johnson295189b2012-06-20 16:38:30 -07002176 /*Encryption Type used with peer*/
2177 tAniEdType encType;
2178
2179 /*Key Id*/
2180 tANI_U8 keyId;
2181
2182 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2183 tAniWepType wepType;
2184
2185} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2186
2187typedef PACKED_PRE struct PACKED_POST
2188{
2189 tHalMsgHeader header;
2190 tRemoveBssKeyParams removeBssKeyParams;
2191} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2192
2193/*---------------------------------------------------------------------------
2194 WLAN_HAL_RMV_BSSKEY_RSP,
2195---------------------------------------------------------------------------*/
2196typedef PACKED_PRE struct PACKED_POST
2197{
2198 /*success or failure */
2199 tANI_U32 status;
2200
2201} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2202
2203typedef PACKED_PRE struct PACKED_POST
2204{
2205 tHalMsgHeader header;
2206 tRemoveBssKeyRspParams removeBssKeyRspParams;
2207} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2208
2209/*---------------------------------------------------------------------------
2210 WLAN_HAL_RMV_STAKEY_REQ,
2211---------------------------------------------------------------------------*/
2212/*
2213 * This is used by PE to Remove the key information on a given station.
2214 */
2215typedef PACKED_PRE struct PACKED_POST
2216{
2217 /*STA Index*/
2218 tANI_U16 staIdx;
2219
2220 /*Encryption Type used with peer*/
2221 tAniEdType encType;
2222
2223 /*Key Id*/
2224 tANI_U8 keyId;
2225
2226 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2227 the same key is used for both broadcast and unicast.*/
2228 tANI_BOOLEAN unicast;
2229
2230} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2231
2232typedef PACKED_PRE struct PACKED_POST
2233{
2234 tHalMsgHeader header;
2235 tRemoveStaKeyParams removeStaKeyParams;
2236} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2237
2238/*---------------------------------------------------------------------------
2239 WLAN_HAL_RMV_STAKEY_RSP,
2240---------------------------------------------------------------------------*/
2241typedef PACKED_PRE struct PACKED_POST
2242{
2243 /*success or failure */
2244 tANI_U32 status;
2245} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2246
2247typedef PACKED_PRE struct PACKED_POST
2248{
2249 tHalMsgHeader header;
2250 tRemoveStaKeyRspParams removeStaKeyRspParams;
2251} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2252
Jeff Johnsone7245742012-09-05 17:12:55 -07002253#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002254
Jeff Johnsone7245742012-09-05 17:12:55 -07002255#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002256#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002257#endif
2258
2259#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002260#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002261#endif
2262
2263/*-------------------------------------------------------------------------
2264WLAN_HAL_START_OEM_DATA_REQ
2265--------------------------------------------------------------------------*/
2266typedef PACKED_PRE struct PACKED_POST
2267{
2268 tANI_U32 status;
2269 tSirMacAddr selfMacAddr;
2270 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2271} tStartOemDataReqParams, *tpStartOemDataReqParams;
2272
2273typedef PACKED_PRE struct PACKED_POST
2274{
2275 tHalMsgHeader header;
2276 tStartOemDataReqParams startOemDataReqParams;
2277} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2278
2279/*-------------------------------------------------------------------------
2280WLAN_HAL_START_OEM_DATA_RSP
2281--------------------------------------------------------------------------*/
2282
2283typedef PACKED_PRE struct PACKED_POST
2284{
2285 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2286} tStartOemDataRspParams, *tpStartOemDataRspParams;
2287
2288typedef PACKED_PRE struct PACKED_POST
2289{
2290 tHalMsgHeader header;
2291 tStartOemDataRspParams startOemDataRspParams;
2292} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2293
2294#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002295
2296
2297
2298/*---------------------------------------------------------------------------
2299WLAN_HAL_CH_SWITCH_REQ
2300---------------------------------------------------------------------------*/
2301
2302typedef PACKED_PRE struct PACKED_POST
2303{
2304 /* Channel number */
2305 tANI_U8 channelNumber;
2306
2307 /* Local power constraint */
2308 tANI_U8 localPowerConstraint;
2309
2310 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002311 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002312
2313 //HAL fills in the tx power used for mgmt frames in this field.
2314 tPowerdBm txMgmtPower;
2315
2316 /* Max TX power */
2317 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002318
Jeff Johnson295189b2012-06-20 16:38:30 -07002319 /* Self STA MAC */
2320 tSirMacAddr selfStaMacAddr;
2321
2322 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2323 this should be applied only to that session*/
2324 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2325 * bssid needs to be out of the VOWifi feature flag */
2326 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2327 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2328 */
2329 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002330
Jeff Johnson295189b2012-06-20 16:38:30 -07002331}tSwitchChannelParams, *tpSwitchChannelParams;
2332
2333typedef PACKED_PRE struct PACKED_POST
2334{
2335 tHalMsgHeader header;
2336 tSwitchChannelParams switchChannelParams;
2337} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2338
2339/*---------------------------------------------------------------------------
2340WLAN_HAL_CH_SWITCH_RSP
2341---------------------------------------------------------------------------*/
2342
2343typedef PACKED_PRE struct PACKED_POST
2344{
2345 /* Status */
2346 tANI_U32 status;
2347
2348 /* Channel number - same as in request*/
2349 tANI_U8 channelNumber;
2350
2351 /* HAL fills in the tx power used for mgmt frames in this field */
2352 tPowerdBm txMgmtPower;
2353
2354 /* BSSID needed to identify session - same as in request*/
2355 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002356
Jeff Johnson295189b2012-06-20 16:38:30 -07002357}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2358
2359typedef PACKED_PRE struct PACKED_POST
2360{
2361 tHalMsgHeader header;
2362 tSwitchChannelRspParams switchChannelRspParams;
2363} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2364
2365/*---------------------------------------------------------------------------
2366WLAN_HAL_UPD_EDCA_PARAMS_REQ
2367---------------------------------------------------------------------------*/
2368
2369typedef PACKED_PRE struct PACKED_POST
2370{
2371 /*BSS Index*/
2372 tANI_U16 bssIdx;
2373
2374 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002375 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002376
2377 /* Background */
2378 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002379
Jeff Johnson295189b2012-06-20 16:38:30 -07002380 /* Video */
2381 tSirMacEdcaParamRecord acvi;
2382
2383 /* Voice */
2384 tSirMacEdcaParamRecord acvo;
2385
2386} tEdcaParams, *tpEdcaParams;
2387
2388typedef PACKED_PRE struct PACKED_POST
2389{
2390 tHalMsgHeader header;
2391 tEdcaParams edcaParams;
2392} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2393
2394/*---------------------------------------------------------------------------
2395WLAN_HAL_UPD_EDCA_PARAMS_RSP
2396---------------------------------------------------------------------------*/
2397typedef PACKED_PRE struct PACKED_POST
2398{
2399 /*success or failure */
2400 tANI_U32 status;
2401} tEdcaRspParams, *tpEdcaRspParams;
2402
2403typedef PACKED_PRE struct PACKED_POST
2404{
2405 tHalMsgHeader header;
2406 tEdcaRspParams edcaRspParams;
2407} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2408
2409
2410
2411/*---------------------------------------------------------------------------
2412 * WLAN_HAL_GET_STATS_REQ
2413 *--------------------------------------------------------------------------*/
2414typedef PACKED_PRE struct PACKED_POST
2415
2416{
2417 /* Index of STA to which the statistics */
2418 tANI_U16 staIdx;
2419
2420 /* Encryption mode */
2421 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002422
Jeff Johnson295189b2012-06-20 16:38:30 -07002423 /* status */
2424 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002425
Jeff Johnson295189b2012-06-20 16:38:30 -07002426 /* Statistics */
2427 tANI_U32 sendBlocks;
2428 tANI_U32 recvBlocks;
2429 tANI_U32 replays;
2430 tANI_U8 micErrorCnt;
2431 tANI_U32 protExclCnt;
2432 tANI_U16 formatErrCnt;
2433 tANI_U16 unDecryptableCnt;
2434 tANI_U32 decryptErrCnt;
2435 tANI_U32 decryptOkCnt;
2436} tDpuStatsParams, * tpDpuStatsParams;
2437
2438typedef PACKED_PRE struct PACKED_POST
2439{
2440 /* Valid STA Idx for per STA stats request */
2441 tANI_U32 staId;
2442
2443 /* Categories of stats requested as specified in eHalStatsMask*/
2444 tANI_U32 statsMask;
2445}tHalStatsReqParams, *tpHalStatsReqParams;
2446
2447typedef PACKED_PRE struct PACKED_POST
2448{
2449 tHalMsgHeader header;
2450 tHalStatsReqParams statsReqParams;
2451} tHalStatsReqMsg, *tpHalStatsReqMsg;
2452
2453/*---------------------------------------------------------------------------
2454 * WLAN_HAL_GET_STATS_RSP
2455 *--------------------------------------------------------------------------*/
2456
2457typedef PACKED_PRE struct PACKED_POST
2458{
2459 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2460 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2461 // station successfully transmitted after more than one retransmission attempt
2462
Jeff Johnson32d95a32012-09-10 13:15:23 -07002463 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2464 //(with and without retries, including multi-cast, broadcast)
2465 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2466 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002467 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2468 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2469 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2470 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 -07002471 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2472 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 -07002473 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2474 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 -07002475 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2476 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002477 //to provide this.
2478}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2479
2480
2481// defines tx_rate_flags
2482typedef enum eTxRateInfo
2483{
2484 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2485 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2486 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2487 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2488 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2489} tTxrateinfoflags;
2490
2491
2492typedef PACKED_PRE struct PACKED_POST
2493{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002494 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 -07002495 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002496 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 -07002497 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002498 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2499 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002500 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002501 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2502 //for eg: if it is 10.5dBm, the value would be 105
2503 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2504 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002505
Jeff Johnson32d95a32012-09-10 13:15:23 -07002506 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2507 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002508 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002509 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2510 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002511}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2512
2513typedef PACKED_PRE struct PACKED_POST
2514{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002515 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2516 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002517 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002518 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 -07002519 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002520 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 -07002521 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002522 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 -07002523 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002524 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 -07002525 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002526 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 -07002527 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002528 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 -07002529 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002530 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 -07002531 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002532 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 -07002533 //decrypted
2534 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2535
2536}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002537
Jeff Johnson295189b2012-06-20 16:38:30 -07002538typedef PACKED_PRE struct PACKED_POST
2539{
2540 tAniGlobalSecurityStats ucStats;
2541 tAniGlobalSecurityStats mcbcStats;
2542}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2543
2544typedef PACKED_PRE struct PACKED_POST
2545{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002546 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2547 //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 -07002548 //address 1 field
2549 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 -07002550 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 -07002551 //primary channel
2552 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 -07002553 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 -07002554 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002555 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2556 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002557 //decoded correctly
2558}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2559
2560typedef PACKED_PRE struct PACKED_POST
2561{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002562 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 -07002563 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002564 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2565 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 -07002566 //is transmitted
2567}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2568
2569typedef PACKED_PRE struct PACKED_POST
2570{
2571 /* Success or Failure */
2572 tANI_U32 status;
2573
2574 /* STA Idx */
2575 tANI_U32 staId;
2576
2577 /* Categories of STATS being returned as per eHalStatsMask*/
2578 tANI_U32 statsMask;
2579
2580 /* message type is same as the request type */
2581 tANI_U16 msgType;
2582
2583 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002584 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002585
2586} tHalStatsRspParams, *tpHalStatsRspParams;
2587
2588
2589
2590typedef PACKED_PRE struct PACKED_POST
2591{
2592 tHalMsgHeader header;
2593 tHalStatsRspParams statsRspParams;
2594} tHalStatsRspMsg, *tpHalStatsRspMsg;
2595
2596/*---------------------------------------------------------------------------
2597 * WLAN_HAL_SET_LINK_ST_REQ
2598 *--------------------------------------------------------------------------*/
2599typedef PACKED_PRE struct PACKED_POST
2600{
2601 tSirMacAddr bssid;
2602 tSirLinkState state;
2603 tSirMacAddr selfMacAddr;
2604} tLinkStateParams, *tpLinkStateParams;
2605
2606typedef PACKED_PRE struct PACKED_POST
2607{
2608 tHalMsgHeader header;
2609 tLinkStateParams linkStateParams;
2610} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2611
2612/*---------------------------------------------------------------------------
2613 * WLAN_HAL_SET_LINK_ST_RSP
2614 *--------------------------------------------------------------------------*/
2615
2616typedef PACKED_PRE struct PACKED_POST
2617{
2618 /*success or failure */
2619 tANI_U32 status;
2620} tLinkStateRspParams, *tpLinkStateRspParams;
2621
2622typedef PACKED_PRE struct PACKED_POST
2623{
2624 tHalMsgHeader header;
2625 tLinkStateRspParams linkStateRspParams;
2626} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2627
2628/*---------------------------------------------------------------------------
2629 * WLAN_HAL_ADD_TS_REQ
2630 *--------------------------------------------------------------------------*/
2631
2632/* TSPEC Params */
2633typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2634{
2635#ifndef ANI_LITTLE_BIT_ENDIAN
2636 tANI_U16 ackPolicy : 2;
2637 tANI_U16 userPrio : 3;
2638 tANI_U16 psb : 1;
2639 tANI_U16 aggregation : 1;
2640 tANI_U16 accessPolicy : 2;
2641 tANI_U16 direction : 2;
2642 tANI_U16 tsid : 4;
2643 tANI_U16 trafficType : 1;
2644#else
2645 tANI_U16 trafficType : 1;
2646 tANI_U16 tsid : 4;
2647 tANI_U16 direction : 2;
2648 tANI_U16 accessPolicy : 2;
2649 tANI_U16 aggregation : 1;
2650 tANI_U16 psb : 1;
2651 tANI_U16 userPrio : 3;
2652 tANI_U16 ackPolicy : 2;
2653#endif
2654} __ani_attr_packed tSirMacTSInfoTfc;
2655
2656/* Flag to schedule the traffic type */
2657typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2658{
2659#ifndef ANI_LITTLE_BIT_ENDIAN
2660 tANI_U8 rsvd : 7;
2661 tANI_U8 schedule : 1;
2662#else
2663 tANI_U8 schedule : 1;
2664 tANI_U8 rsvd : 7;
2665#endif
2666} __ani_attr_packed tSirMacTSInfoSch;
2667
2668/* Traffic and scheduling info */
2669typedef __ani_attr_pre_packed struct sSirMacTSInfo
2670{
2671 tSirMacTSInfoTfc traffic;
2672 tSirMacTSInfoSch schedule;
2673} __ani_attr_packed tSirMacTSInfo;
2674
2675/* Information elements */
2676typedef __ani_attr_pre_packed struct sSirMacTspecIE
2677{
2678 tANI_U8 type;
2679 tANI_U8 length;
2680 tSirMacTSInfo tsinfo;
2681 tANI_U16 nomMsduSz;
2682 tANI_U16 maxMsduSz;
2683 tANI_U32 minSvcInterval;
2684 tANI_U32 maxSvcInterval;
2685 tANI_U32 inactInterval;
2686 tANI_U32 suspendInterval;
2687 tANI_U32 svcStartTime;
2688 tANI_U32 minDataRate;
2689 tANI_U32 meanDataRate;
2690 tANI_U32 peakDataRate;
2691 tANI_U32 maxBurstSz;
2692 tANI_U32 delayBound;
2693 tANI_U32 minPhyRate;
2694 tANI_U16 surplusBw;
2695 tANI_U16 mediumTime;
2696}__ani_attr_packed tSirMacTspecIE;
2697
2698typedef PACKED_PRE struct PACKED_POST
2699{
2700 /* Station Index */
2701 tANI_U16 staIdx;
2702
2703 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2704 tANI_U16 tspecIdx;
2705
2706 /* To program TPE with required parameters */
2707 tSirMacTspecIE tspec;
2708
2709 /* U-APSD Flags: 1b per AC. Encoded as follows:
2710 b7 b6 b5 b4 b3 b2 b1 b0 =
2711 X X X X BE BK VI VO */
2712 tANI_U8 uAPSD;
2713
2714 /* These parameters are for all the access categories */
2715 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2716 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2717 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002718
Jeff Johnson295189b2012-06-20 16:38:30 -07002719} tAddTsParams, *tpAddTsParams;
2720
2721typedef PACKED_PRE struct PACKED_POST
2722{
2723 tHalMsgHeader header;
2724 tAddTsParams addTsParams;
2725} tAddTsReqMsg, *tpAddTsReqMsg;
2726
2727/*---------------------------------------------------------------------------
2728 * WLAN_HAL_ADD_TS_RSP
2729 *--------------------------------------------------------------------------*/
2730
2731typedef PACKED_PRE struct PACKED_POST
2732{
2733 /*success or failure */
2734 tANI_U32 status;
2735} tAddTsRspParams, *tpAddTsRspParams;
2736
2737typedef PACKED_PRE struct PACKED_POST
2738{
2739 tHalMsgHeader header;
2740 tAddTsRspParams addTsRspParams;
2741} tAddTsRspMsg, *tpAddTsRspMsg;
2742
2743
2744/*---------------------------------------------------------------------------
2745 * WLAN_HAL_DEL_TS_REQ
2746 *--------------------------------------------------------------------------*/
2747
2748typedef PACKED_PRE struct PACKED_POST
2749{
2750 /* Station Index */
2751 tANI_U16 staIdx;
2752
2753 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2754 tANI_U16 tspecIdx;
2755
2756 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002757 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002758
2759} tDelTsParams, *tpDelTsParams;
2760
2761typedef PACKED_PRE struct PACKED_POST
2762{
2763 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002764 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002765} tDelTsReqMsg, *tpDelTsReqMsg;
2766
2767/*---------------------------------------------------------------------------
2768 * WLAN_HAL_DEL_TS_RSP
2769 *--------------------------------------------------------------------------*/
2770
2771typedef PACKED_PRE struct PACKED_POST
2772{
2773 /*success or failure */
2774 tANI_U32 status;
2775} tDelTsRspParams, *tpDelTsRspParams;
2776
2777typedef PACKED_PRE struct PACKED_POST
2778{
2779 tHalMsgHeader header;
2780 tDelTsRspParams delTsRspParams;
2781} tDelTsRspMsg, *tpDelTsRspMsg;
2782
2783/* End of TSpec Parameters */
2784
2785/* Start of BLOCK ACK related Parameters */
2786
2787/*---------------------------------------------------------------------------
2788 * WLAN_HAL_ADD_BA_SESSION_REQ
2789 *--------------------------------------------------------------------------*/
2790
2791typedef PACKED_PRE struct PACKED_POST
2792{
2793 /* Station Index */
2794 tANI_U16 staIdx;
2795
2796 /* Peer MAC Address */
2797 tSirMacAddr peerMacAddr;
2798
2799 /* ADDBA Action Frame dialog token
2800 HAL will not interpret this object */
2801 tANI_U8 baDialogToken;
2802
2803 /* TID for which the BA is being setup
2804 This identifies the TC or TS of interest */
2805 tANI_U8 baTID;
2806
2807 /* 0 - Delayed BA (Not supported)
2808 1 - Immediate BA */
2809 tANI_U8 baPolicy;
2810
2811 /* Indicates the number of buffers for this TID (baTID)
2812 NOTE - This is the requested buffer size. When this
2813 is processed by HAL and subsequently by HDD, it is
2814 possible that HDD may change this buffer size. Any
2815 change in the buffer size should be noted by PE and
2816 advertized appropriately in the ADDBA response */
2817 tANI_U16 baBufferSize;
2818
2819 /* BA timeout in TU's 0 means no timeout will occur */
2820 tANI_U16 baTimeout;
2821
2822 /* b0..b3 - Fragment Number - Always set to 0
2823 b4..b15 - Starting Sequence Number of first MSDU
2824 for which this BA is setup */
2825 tANI_U16 baSSN;
2826
2827 /* ADDBA direction
2828 1 - Originator
2829 0 - Recipient */
2830 tANI_U8 baDirection;
2831} tAddBASessionParams, *tpAddBASessionParams;
2832
2833typedef PACKED_PRE struct PACKED_POST
2834{
2835 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002836 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002837}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2838
2839/*---------------------------------------------------------------------------
2840 * WLAN_HAL_ADD_BA_SESSION_RSP
2841 *--------------------------------------------------------------------------*/
2842
2843typedef PACKED_PRE struct PACKED_POST
2844{
2845 /*success or failure */
2846 tANI_U32 status;
2847
2848 /* Dialog token */
2849 tANI_U8 baDialogToken;
2850
2851 /* TID for which the BA session has been setup */
2852 tANI_U8 baTID;
2853
2854 /* BA Buffer Size allocated for the current BA session */
2855 tANI_U8 baBufferSize;
2856
2857 tANI_U8 baSessionID;
2858
2859 /* Reordering Window buffer */
2860 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002861
Jeff Johnson295189b2012-06-20 16:38:30 -07002862 /*Station Index to id the sta */
2863 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002864
Jeff Johnson295189b2012-06-20 16:38:30 -07002865 /* Starting Sequence Number */
2866 tANI_U16 SSN;
2867} tAddBASessionRspParams, *tpAddBASessionRspParams;
2868
2869typedef PACKED_PRE struct PACKED_POST
2870{
2871 tHalMsgHeader header;
2872 tAddBASessionRspParams addBASessionRspParams;
2873} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2874
2875/*---------------------------------------------------------------------------
2876 * WLAN_HAL_ADD_BA_REQ
2877 *--------------------------------------------------------------------------*/
2878
2879typedef PACKED_PRE struct PACKED_POST
2880{
2881 /* Session Id */
2882 tANI_U8 baSessionID;
2883
2884 /* Reorder Window Size */
2885 tANI_U8 winSize;
2886
2887#ifdef FEATURE_ON_CHIP_REORDERING
2888 tANI_BOOLEAN isReorderingDoneOnChip;
2889#endif
2890} tAddBAParams, *tpAddBAParams;
2891
2892typedef PACKED_PRE struct PACKED_POST
2893{
2894 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002895 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002896} tAddBAReqMsg, *tpAddBAReqMsg;
2897
2898
2899/*---------------------------------------------------------------------------
2900 * WLAN_HAL_ADD_BA_RSP
2901 *--------------------------------------------------------------------------*/
2902
2903typedef PACKED_PRE struct PACKED_POST
2904{
2905 /*success or failure */
2906 tANI_U32 status;
2907
2908 /* Dialog token */
2909 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002910
Jeff Johnson295189b2012-06-20 16:38:30 -07002911} tAddBARspParams, *tpAddBARspParams;
2912
2913typedef PACKED_PRE struct PACKED_POST
2914{
2915 tHalMsgHeader header;
2916 tAddBARspParams addBARspParams;
2917} tAddBARspMsg, *tpAddBARspMsg;
2918
2919
2920/*---------------------------------------------------------------------------
2921 * WLAN_HAL_TRIGGER_BA_REQ
2922 *--------------------------------------------------------------------------*/
2923
2924
2925typedef struct sAddBaInfo
2926{
2927 tANI_U16 fBaEnable : 1;
2928 tANI_U16 startingSeqNum: 12;
2929 tANI_U16 reserved : 3;
2930}tAddBaInfo, *tpAddBaInfo;
2931
2932typedef struct sTriggerBaRspCandidate
2933{
2934 tSirMacAddr staAddr;
2935 tAddBaInfo baInfo[STACFG_MAX_TC];
2936}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2937
2938typedef struct sTriggerBaCandidate
2939{
2940 tANI_U8 staIdx;
2941 tANI_U8 tidBitmap;
2942}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2943
2944typedef PACKED_PRE struct PACKED_POST
2945{
2946 /* Session Id */
2947 tANI_U8 baSessionID;
2948
Jeff Johnson32d95a32012-09-10 13:15:23 -07002949 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002950 * Candidate List(tTriggerBaCandidate)
2951 */
2952 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002953
Jeff Johnson295189b2012-06-20 16:38:30 -07002954} tTriggerBAParams, *tpTriggerBAParams;
2955
2956typedef PACKED_PRE struct PACKED_POST
2957{
2958 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002959 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002960} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2961
2962
2963/*---------------------------------------------------------------------------
2964 * WLAN_HAL_TRIGGER_BA_RSP
2965 *--------------------------------------------------------------------------*/
2966
2967typedef PACKED_PRE struct PACKED_POST
2968{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002969
Jeff Johnson295189b2012-06-20 16:38:30 -07002970 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002971 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002972
2973 /* success or failure */
2974 tANI_U32 status;
2975
Jeff Johnson32d95a32012-09-10 13:15:23 -07002976 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002977 * Rsp Candidate List(tTriggerRspBaCandidate)
2978 */
2979 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002980
Jeff Johnson295189b2012-06-20 16:38:30 -07002981
2982} tTriggerBARspParams, *tpTriggerBARspParams;
2983
2984typedef PACKED_PRE struct PACKED_POST
2985{
2986 tHalMsgHeader header;
2987 tTriggerBARspParams triggerBARspParams;
2988} tTriggerBARspMsg, *tpTriggerBARspMsg;
2989
2990/*---------------------------------------------------------------------------
2991 * WLAN_HAL_DEL_BA_REQ
2992 *--------------------------------------------------------------------------*/
2993
2994typedef PACKED_PRE struct PACKED_POST
2995{
2996 /* Station Index */
2997 tANI_U16 staIdx;
2998
2999 /* TID for which the BA session is being deleted */
3000 tANI_U8 baTID;
3001
3002 /* DELBA direction
3003 1 - Originator
3004 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003005 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003006} tDelBAParams, *tpDelBAParams;
3007
3008typedef PACKED_PRE struct PACKED_POST
3009{
3010 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003011 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003012} tDelBAReqMsg, *tpDelBAReqMsg;
3013
3014/*---------------------------------------------------------------------------
3015 * WLAN_HAL_DEL_BA_RSP
3016 *--------------------------------------------------------------------------*/
3017
3018typedef PACKED_PRE struct PACKED_POST
3019{
3020 /* success or failure */
3021 tANI_U32 status;
3022} tDelBARspParams, *tpDelBARspParams;
3023
3024typedef PACKED_PRE struct PACKED_POST
3025{
3026 tHalMsgHeader header;
3027 tDelBARspParams delBARspParams;
3028} tDelBARspMsg, *tpDelBARspMsg;
3029
3030
3031#ifdef FEATURE_WLAN_CCX
3032
3033/*---------------------------------------------------------------------------
3034 * WLAN_HAL_TSM_STATS_REQ
3035 *--------------------------------------------------------------------------*/
3036typedef PACKED_PRE struct PACKED_POST
3037{
3038 /* Traffic Id */
3039 tANI_U8 tsmTID;
3040
3041 tSirMacAddr bssId;
3042} tTsmStatsParams, *tpTsmStatsParams;
3043
3044typedef PACKED_PRE struct PACKED_POST
3045{
3046 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003047 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003048} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3049
3050
3051/*---------------------------------------------------------------------------
3052 * WLAN_HAL_TSM_STATS_RSP
3053 *--------------------------------------------------------------------------*/
3054typedef PACKED_PRE struct PACKED_POST
3055{
3056 /*success or failure */
3057 tANI_U32 status;
3058
Jeff Johnson32d95a32012-09-10 13:15:23 -07003059 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003060 tANI_U16 UplinkPktQueueDly;
3061
Jeff Johnson32d95a32012-09-10 13:15:23 -07003062 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003063 tANI_U16 UplinkPktQueueDlyHist[4];
3064
Jeff Johnson32d95a32012-09-10 13:15:23 -07003065 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003066 tANI_U32 UplinkPktTxDly;
3067
Jeff Johnson32d95a32012-09-10 13:15:23 -07003068 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003069 tANI_U16 UplinkPktLoss;
3070
Jeff Johnson32d95a32012-09-10 13:15:23 -07003071 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003072 tANI_U16 UplinkPktCount;
3073
Jeff Johnson32d95a32012-09-10 13:15:23 -07003074 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003075 tANI_U8 RoamingCount;
3076
Jeff Johnson32d95a32012-09-10 13:15:23 -07003077 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003078 tANI_U16 RoamingDly;
3079} tTsmStatsRspParams, *tpTsmStatsRspParams;
3080
3081typedef PACKED_PRE struct PACKED_POST
3082{
3083 tHalMsgHeader header;
3084 tTsmStatsRspParams tsmStatsRspParams;
3085} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3086
3087
3088#endif
3089
3090/*---------------------------------------------------------------------------
3091 * WLAN_HAL_SET_KEYDONE_MSG
3092 *--------------------------------------------------------------------------*/
3093
3094typedef PACKED_PRE struct PACKED_POST
3095{
3096 /*bssid of the keys */
3097 tANI_U8 bssidx;
3098 tANI_U8 encType;
3099} tSetKeyDoneParams, *tpSetKeyDoneParams;
3100
3101typedef PACKED_PRE struct PACKED_POST
3102{
3103 tHalMsgHeader header;
3104 tSetKeyDoneParams setKeyDoneParams;
3105} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3106
3107/*---------------------------------------------------------------------------
3108 * WLAN_HAL_DOWNLOAD_NV_REQ
3109 *--------------------------------------------------------------------------*/
3110typedef PACKED_PRE struct PACKED_POST
3111{
3112 /* Fragment sequence number of the NV Image. Note that NV Image might not
3113 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003114 * can hence choose to chop the NV blob into multiple fragments starting with
3115 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003116 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3117 * concatenated together by HAL without any padding bytes in between.*/
3118 tANI_U16 fragNumber;
3119
3120 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003121 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003122 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3123 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3124 tANI_U16 isLastFragment;
3125
3126 /* NV Image size (number of bytes) */
3127 tANI_U32 nvImgBufferSize;
3128
3129 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3130 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3131} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3132
3133typedef PACKED_PRE struct PACKED_POST
3134{
3135 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3136 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3137 tHalMsgHeader header;
3138 tHalNvImgDownloadReqParams nvImageReqParams;
3139} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3140
3141/*---------------------------------------------------------------------------
3142 * WLAN_HAL_DOWNLOAD_NV_RSP
3143 *--------------------------------------------------------------------------*/
3144typedef PACKED_PRE struct PACKED_POST
3145{
3146 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3147 * after each fragment */
3148 tANI_U32 status;
3149} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3150
3151typedef PACKED_PRE struct PACKED_POST
3152{
3153 tHalMsgHeader header;
3154 tHalNvImgDownloadRspParams nvImageRspParams;
3155} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3156
3157/*---------------------------------------------------------------------------
3158 * WLAN_HAL_STORE_NV_IND
3159 *--------------------------------------------------------------------------*/
3160typedef PACKED_PRE struct PACKED_POST
3161{
3162 /* NV Item */
3163 eNvTable tableID;
3164
3165 /* Size of NV Blob */
3166 tANI_U32 nvBlobSize;
3167
Jeff Johnson32d95a32012-09-10 13:15:23 -07003168 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003169 * NV blob i.e. uint8[nvBlobSize] */
3170} tHalNvStoreParams, *tpHalNvStoreParams;
3171
3172typedef PACKED_PRE struct PACKED_POST
3173{
3174 /* Note: The length specified in tHalNvStoreInd messages should be
3175 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3176 tHalMsgHeader header;
3177 tHalNvStoreParams nvStoreParams;
3178} tHalNvStoreInd, *tpHalNvStoreInd;
3179
3180/* End of Block Ack Related Parameters */
3181
3182/*---------------------------------------------------------------------------
3183 * WLAN_HAL_MIC_FAILURE_IND
3184 *--------------------------------------------------------------------------*/
3185
3186#define SIR_CIPHER_SEQ_CTR_SIZE 6
3187
3188typedef PACKED_PRE struct PACKED_POST
3189{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003190 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003191 tSirMacAddr taMacAddr; //transmitter address
3192 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003193 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003194 tANI_U8 IV1; // first byte of IV
3195 tANI_U8 keyId; // second byte of IV
3196 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3197 tSirMacAddr rxMacAddr; // receive address
3198} tSirMicFailureInfo, *tpSirMicFailureInfo;
3199
3200/* Definition for MIC failure indication
3201 MAC reports this each time a MIC failure occures on Rx TKIP packet
3202 */
3203typedef PACKED_PRE struct PACKED_POST
3204{
3205 tSirMacAddr bssId; // BSSID
3206 tSirMicFailureInfo info;
3207} tSirMicFailureInd, *tpSirMicFailureInd;
3208
3209typedef PACKED_PRE struct PACKED_POST
3210{
3211 tHalMsgHeader header;
3212 tSirMicFailureInd micFailureInd;
3213} tMicFailureIndMsg, *tpMicFailureIndMsg;
3214
Mohit Khanna4a70d262012-09-11 16:30:12 -07003215typedef PACKED_PRE struct PACKED_POST
3216{
3217 tANI_U16 opMode;
3218 tANI_U16 staId;
3219}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3220
3221typedef PACKED_PRE struct PACKED_POST
3222{
3223 tHalMsgHeader header;
3224 tUpdateVHTOpMode updateVhtOpMode;
3225} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3226
3227typedef PACKED_PRE struct PACKED_POST
3228{
3229 tANI_U32 status;
3230} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3231
3232typedef PACKED_PRE struct PACKED_POST
3233{
3234 tHalMsgHeader header;
3235 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3236} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3237
Jeff Johnson295189b2012-06-20 16:38:30 -07003238/*---------------------------------------------------------------------------
3239 * WLAN_HAL_UPDATE_BEACON_REQ
3240 *--------------------------------------------------------------------------*/
3241typedef PACKED_PRE struct PACKED_POST
3242{
3243
3244 tANI_U8 bssIdx;
3245
3246 //shortPreamble mode. HAL should update all the STA rates when it
3247 //receives this message
3248 tANI_U8 fShortPreamble;
3249 //short Slot time.
3250 tANI_U8 fShortSlotTime;
3251 //Beacon Interval
3252 tANI_U16 beaconInterval;
3253 //Protection related
3254 tANI_U8 llaCoexist;
3255 tANI_U8 llbCoexist;
3256 tANI_U8 llgCoexist;
3257 tANI_U8 ht20MhzCoexist;
3258 tANI_U8 llnNonGFCoexist;
3259 tANI_U8 fLsigTXOPProtectionFullSupport;
3260 tANI_U8 fRIFSMode;
3261
3262 tANI_U16 paramChangeBitmap;
3263}tUpdateBeaconParams, *tpUpdateBeaconParams;
3264
3265
3266typedef PACKED_PRE struct PACKED_POST
3267{
3268 tHalMsgHeader header;
3269 tUpdateBeaconParams updateBeaconParam;
3270} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3271
3272/*---------------------------------------------------------------------------
3273 * WLAN_HAL_UPDATE_BEACON_RSP
3274 *--------------------------------------------------------------------------*/
3275typedef PACKED_PRE struct PACKED_POST
3276{
3277 tANI_U32 status;
3278} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3279
3280typedef PACKED_PRE struct PACKED_POST
3281{
3282 tHalMsgHeader header;
3283 tUpdateBeaconRspParams updateBeaconRspParam;
3284} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3285
3286/*---------------------------------------------------------------------------
3287 * WLAN_HAL_SEND_BEACON_REQ
3288 *--------------------------------------------------------------------------*/
3289typedef PACKED_PRE struct PACKED_POST
3290{
3291 tANI_U32 beaconLength; //length of the template.
3292 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3293 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003294 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003295 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3296}tSendBeaconParams, *tpSendBeaconParams;
3297
3298
3299typedef PACKED_PRE struct PACKED_POST
3300{
3301 tHalMsgHeader header;
3302 tSendBeaconParams sendBeaconParam;
3303}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3304
3305/*---------------------------------------------------------------------------
3306 * WLAN_HAL_SEND_BEACON_RSP
3307 *--------------------------------------------------------------------------*/
3308typedef PACKED_PRE struct PACKED_POST
3309{
3310 tANI_U32 status;
3311} tSendBeaconRspParams, *tpSendBeaconRspParams;
3312
3313typedef PACKED_PRE struct PACKED_POST
3314{
3315 tHalMsgHeader header;
3316 tSendBeaconRspParams sendBeaconRspParam;
3317} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3318
3319#ifdef FEATURE_5GHZ_BAND
3320
3321/*---------------------------------------------------------------------------
3322 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3323 *--------------------------------------------------------------------------*/
3324typedef PACKED_PRE struct PACKED_POST
3325{
3326 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003327 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003328}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3329
3330
3331typedef PACKED_PRE struct PACKED_POST
3332{
3333 /* Link Parameters */
3334 tSirEnableRadarInfoType EnableRadarInfo;
3335}tEnableRadarReqParams, *tpEnableRadarReqParams;
3336
3337typedef PACKED_PRE struct PACKED_POST
3338{
3339 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003340 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003341}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3342
3343/*---------------------------------------------------------------------------
3344 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3345 *--------------------------------------------------------------------------*/
3346
3347typedef PACKED_PRE struct PACKED_POST
3348{
3349 /* Link Parameters */
3350 tSirMacAddr BSSID;
3351 /* success or failure */
3352 tANI_U32 status;
3353}tEnableRadarRspParams, *tpEnableRadarRspParams;
3354
3355typedef PACKED_PRE struct PACKED_POST
3356{
3357 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003358 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003359}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3360
3361/*---------------------------------------------------------------------------
3362 *WLAN_HAL_RADAR_DETECT_INTR_IND
3363 *--------------------------------------------------------------------------*/
3364
3365typedef PACKED_PRE struct PACKED_POST
3366{
3367 tANI_U8 radarDetChannel;
3368}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3369
3370typedef PACKED_PRE struct PACKED_POST
3371{
3372 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003373 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003374}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3375
3376/*---------------------------------------------------------------------------
3377 *WLAN_HAL_RADAR_DETECT_IND
3378 *-------------------------------------------------------------------------*/
3379typedef PACKED_PRE struct PACKED_POST
3380{
3381 /*channel number in which the RADAR detected*/
3382 tANI_U8 channelNumber;
3383
3384 /*RADAR pulse width*/
3385 tANI_U16 radarPulseWidth; // in usecond
3386
3387 /*Number of RADAR pulses */
3388 tANI_U16 numRadarPulse;
3389}tRadarDetectIndParams,*tpRadarDetectIndParams;
3390
3391typedef PACKED_PRE struct PACKED_POST
3392{
3393 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003394 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003395}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3396
3397
3398/*---------------------------------------------------------------------------
3399 *WLAN_HAL_GET_TPC_REPORT_REQ
3400 *-------------------------------------------------------------------------*/
3401typedef PACKED_PRE struct PACKED_POST
3402{
3403 tSirMacAddr sta;
3404 tANI_U8 dialogToken;
3405 tANI_U8 txpower;
3406}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3407
3408
3409typedef PACKED_PRE struct PACKED_POST
3410{
3411 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003412 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003413}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3414
3415/*---------------------------------------------------------------------------
3416 * WLAN_HAL_GET_TPC_REPORT_RSP
3417 *--------------------------------------------------------------------------*/
3418
3419typedef PACKED_PRE struct PACKED_POST
3420{
3421 /* success or failure */
3422 tANI_U32 status;
3423}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3424
3425typedef PACKED_PRE struct PACKED_POST
3426{
3427 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003428 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003429}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3430
3431#endif
3432
Jeff Johnson295189b2012-06-20 16:38:30 -07003433/*---------------------------------------------------------------------------
3434 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3435 *-------------------------------------------------------------------------*/
3436typedef PACKED_PRE struct PACKED_POST
3437{
3438 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3439 tANI_U32 probeRespTemplateLen;
3440 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3441 tSirMacAddr bssId;
3442
3443}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3444
3445typedef PACKED_PRE struct PACKED_POST
3446{
3447 tHalMsgHeader header;
3448 tSendProbeRespReqParams sendProbeRespReqParams ;
3449}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3450
3451/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003452 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003453 *--------------------------------------------------------------------------*/
3454
3455typedef PACKED_PRE struct PACKED_POST
3456{
3457 /* success or failure */
3458 tANI_U32 status;
3459}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3460
3461typedef PACKED_PRE struct PACKED_POST
3462{
3463 tHalMsgHeader header;
3464 tSendProbeRespRspParams sendProbeRespRspParams;
3465}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3466
3467
3468/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003469 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003470 *--------------------------------------------------------------------------*/
3471
3472typedef PACKED_PRE struct PACKED_POST
3473{
3474 /* success or failure */
3475 tANI_U32 status;
3476}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3477
3478typedef PACKED_PRE struct PACKED_POST
3479{
3480 tHalMsgHeader header;
3481 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3482}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3483
3484/*---------------------------------------------------------------------------
3485 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3486 *--------------------------------------------------------------------------*/
3487
3488typedef PACKED_PRE struct PACKED_POST
3489{
3490 tANI_U16 assocId;
3491 tANI_U16 staId;
3492 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3493 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003494 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003495 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003496
3497}tDeleteStaContextParams, *tpDeleteStaContextParams;
3498
3499
3500typedef PACKED_PRE struct PACKED_POST
3501{
3502 tHalMsgHeader header;
3503 tDeleteStaContextParams deleteStaContextParams;
3504}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3505
Anand Kumar012623a2013-01-11 17:00:00 -08003506typedef PACKED_PRE struct PACKED_POST
3507{
3508 tHalMsgHeader header;
3509 tANI_U8 assocId;
3510 tANI_U8 staIdx;
3511 tANI_U8 bssIdx;
3512 tANI_U8 uReasonCode;
3513 tANI_U32 uStatus;
3514} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003515
3516/*---------------------------------------------------------------------------
3517 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3518 *--------------------------------------------------------------------------*/
3519
3520typedef PACKED_PRE struct PACKED_POST
3521{
3522 tBtAmpEventType btAmpEventType;
3523
3524}tBtAmpEventParams, *tpBtAmpEventParams;
3525
3526
3527
3528typedef PACKED_PRE struct PACKED_POST
3529{
3530 tHalMsgHeader header;
3531 tBtAmpEventParams btAmpEventParams;
3532}tBtAmpEventMsg, *tpBtAmpEventMsg;
3533
3534/*---------------------------------------------------------------------------
3535*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3536*--------------------------------------------------------------------------*/
3537
3538typedef PACKED_PRE struct PACKED_POST
3539{
3540 /* success or failure */
3541 tANI_U32 status;
3542}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3543
3544typedef PACKED_PRE struct PACKED_POST
3545{
3546 tHalMsgHeader header;
3547 tBtAmpEventRspParams btAmpEventRspParams;
3548}tBtAmpEventRsp, *tpBtAmpEventRsp;
3549
3550
3551/*---------------------------------------------------------------------------
3552 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3553 *--------------------------------------------------------------------------*/
3554
3555typedef PACKED_PRE struct PACKED_POST
3556{
3557 // Station Index. originates from HAL
3558 tANI_U8 ucSTAId;
3559
3560 // TID for which the transmit queue is being flushed
3561 tANI_U8 ucTid;
3562
3563}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3564
3565
3566typedef PACKED_PRE struct PACKED_POST
3567{
3568 tHalMsgHeader header;
3569 tTlHalFlushAcParams tlHalFlushAcParam;
3570}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3571
3572/*---------------------------------------------------------------------------
3573*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3574*--------------------------------------------------------------------------*/
3575
3576typedef PACKED_PRE struct PACKED_POST
3577{
3578 // Station Index. originates from HAL
3579 tANI_U8 ucSTAId;
3580
3581 // TID for which the transmit queue is being flushed
3582 tANI_U8 ucTid;
3583
3584 /* success or failure */
3585 tANI_U32 status;
3586}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3587
3588typedef PACKED_PRE struct PACKED_POST
3589{
3590 tHalMsgHeader header;
3591 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3592}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3593
3594/*---------------------------------------------------------------------------
3595 * WLAN_HAL_ENTER_IMPS_REQ
3596 *--------------------------------------------------------------------------*/
3597typedef PACKED_PRE struct PACKED_POST
3598{
3599 tHalMsgHeader header;
3600} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3601
3602/*---------------------------------------------------------------------------
3603 * WLAN_HAL_EXIT_IMPS_REQ
3604 *--------------------------------------------------------------------------*/
3605typedef PACKED_PRE struct PACKED_POST
3606{
3607 tHalMsgHeader header;
3608} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3609
3610/*---------------------------------------------------------------------------
3611 * WLAN_HAL_ENTER_BMPS_REQ
3612 *--------------------------------------------------------------------------*/
3613
3614typedef PACKED_PRE struct PACKED_POST
3615{
3616 tANI_U8 bssIdx;
3617 //TBTT value derived from the last beacon
3618#ifndef BUILD_QWPTTSTATIC
3619 tANI_U64 tbtt;
3620#endif
3621 tANI_U8 dtimCount;
3622 //DTIM period given to HAL during association may not be valid,
3623 //if association is based on ProbeRsp instead of beacon.
3624 tANI_U8 dtimPeriod;
3625
3626 // For CCX and 11R Roaming
3627 tANI_U32 rssiFilterPeriod;
3628 tANI_U32 numBeaconPerRssiAverage;
3629 tANI_U8 bRssiFilterEnable;
3630
3631} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3632
3633
3634typedef PACKED_PRE struct PACKED_POST
3635{
3636 tHalMsgHeader header;
3637 tHalEnterBmpsReqParams enterBmpsReq;
3638} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3639
3640/*---------------------------------------------------------------------------
3641 * WLAN_HAL_EXIT_BMPS_REQ
3642 *--------------------------------------------------------------------------*/
3643typedef PACKED_PRE struct PACKED_POST
3644{
3645 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003646 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003647} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3648
3649typedef PACKED_PRE struct PACKED_POST
3650{
3651 tHalMsgHeader header;
3652 tHalExitBmpsReqParams exitBmpsReqParams;
3653} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3654
3655/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003656 * WLAN_HAL_MISSED_BEACON_IND
3657 *--------------------------------------------------------------------------*/
3658typedef PACKED_PRE struct PACKED_POST
3659{
3660 tANI_U8 bssIdx;
3661} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3662
3663typedef PACKED_PRE struct PACKED_POST
3664{
3665 tHalMsgHeader header;
3666 tHalMissedBeaconIndParams missedBeaconIndParams;
3667} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3668
3669/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003670 * WLAN_HAL_ADD_BCN_FILTER_REQ
3671 *--------------------------------------------------------------------------*/
3672/* Beacon Filtering data structures */
3673typedef PACKED_PRE struct PACKED_POST
3674{
3675 tANI_U8 offset;
3676 tANI_U8 value;
3677 tANI_U8 bitMask;
3678 tANI_U8 ref;
3679} tEidByteInfo, *tpEidByteInfo;
3680
Jeff Johnson32d95a32012-09-10 13:15:23 -07003681typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003682{
3683 tANI_U16 capabilityInfo;
3684 tANI_U16 capabilityMask;
3685 tANI_U16 beaconInterval;
3686 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003687 tANI_U8 bssIdx;
3688 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003689} tBeaconFilterMsg, *tpBeaconFilterMsg;
3690
3691/* The above structure would be followed by multiple of below mentioned structure */
3692typedef PACKED_PRE struct PACKED_POST
3693{
3694 tANI_U8 elementId;
3695 tANI_U8 checkIePresence;
3696 tEidByteInfo byte;
3697} tBeaconFilterIe, *tpBeaconFilterIe;
3698
3699typedef PACKED_PRE struct PACKED_POST
3700{
3701 tHalMsgHeader header;
3702 tBeaconFilterMsg addBcnFilterParams;
3703} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3704
3705/*---------------------------------------------------------------------------
3706 * WLAN_HAL_REM_BCN_FILTER_REQ
3707 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003708typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003709{
3710 tANI_U8 ucIeCount;
3711 tANI_U8 ucRemIeId[1];
3712} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3713
3714typedef PACKED_PRE struct PACKED_POST
3715{
3716 tHalMsgHeader header;
3717 tRemBeaconFilterMsg remBcnFilterParams;
3718} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3719
3720/*---------------------------------------------------------------------------
3721 * WLAN_HAL_HOST_OFFLOAD_REQ
3722 *--------------------------------------------------------------------------*/
3723#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3724#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3725#define HAL_IPV6_NS_OFFLOAD 2
3726#define HAL_IPV6_ADDR_LEN 16
3727#define HAL_MAC_ADDR_LEN 6
3728#define HAL_OFFLOAD_DISABLE 0
3729#define HAL_OFFLOAD_ENABLE 1
3730#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
3731#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
3732
3733typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3734{
3735 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3736 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3737 //Only support 2 possible Network Advertisement IPv6 address
3738 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3739 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3740 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3741 tANI_U8 srcIPv6AddrValid : 1;
3742 tANI_U8 targetIPv6Addr1Valid : 1;
3743 tANI_U8 targetIPv6Addr2Valid : 1;
3744 tANI_U8 reserved1 : 5;
3745 tANI_U8 reserved2; //make it DWORD aligned
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003746 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnsone7245742012-09-05 17:12:55 -07003747 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003748} tHalNSOffloadParams;
3749
3750typedef PACKED_PRE struct PACKED_POST
3751{
3752 tANI_U8 offloadType;
3753 tANI_U8 enableOrDisable;
3754 PACKED_PRE union PACKED_POST
3755 {
3756 tANI_U8 hostIpv4Addr [4];
3757 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3758 } params;
3759} tHalHostOffloadReq, *tpHalHostOffloadReq;
3760
3761typedef PACKED_PRE struct PACKED_POST
3762{
3763 tHalMsgHeader header;
3764 tHalHostOffloadReq hostOffloadParams;
3765 tHalNSOffloadParams nsOffloadParams;
3766} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3767
3768/*---------------------------------------------------------------------------
3769 * WLAN_HAL_KEEP_ALIVE_REQ
3770 *--------------------------------------------------------------------------*/
3771/* Packet Types. */
3772#define HAL_KEEP_ALIVE_NULL_PKT 1
3773#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3774
3775/* Enable or disable keep alive */
3776#define HAL_KEEP_ALIVE_DISABLE 0
3777#define HAL_KEEP_ALIVE_ENABLE 1
3778
3779/* Keep Alive request. */
3780typedef PACKED_PRE struct PACKED_POST
3781{
3782 tANI_U8 packetType;
3783 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003784 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003785 tHalIpv4Addr destIpv4Addr;
3786 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003787 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003788} tHalKeepAliveReq, *tpHalKeepAliveReq;
3789
3790typedef PACKED_PRE struct PACKED_POST
3791{
3792 tHalMsgHeader header;
3793 tHalKeepAliveReq KeepAliveParams;
3794} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3795
3796/*---------------------------------------------------------------------------
3797 * WLAN_HAL_SET_RSSI_THRESH_REQ
3798 *--------------------------------------------------------------------------*/
3799typedef PACKED_PRE struct PACKED_POST
3800{
3801 tANI_S8 ucRssiThreshold1 : 8;
3802 tANI_S8 ucRssiThreshold2 : 8;
3803 tANI_S8 ucRssiThreshold3 : 8;
3804 tANI_U8 bRssiThres1PosNotify : 1;
3805 tANI_U8 bRssiThres1NegNotify : 1;
3806 tANI_U8 bRssiThres2PosNotify : 1;
3807 tANI_U8 bRssiThres2NegNotify : 1;
3808 tANI_U8 bRssiThres3PosNotify : 1;
3809 tANI_U8 bRssiThres3NegNotify : 1;
3810 tANI_U8 bReserved10 : 2;
3811} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003812
Jeff Johnson295189b2012-06-20 16:38:30 -07003813typedef PACKED_PRE struct PACKED_POST
3814{
3815 tHalMsgHeader header;
3816 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003817} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003818
3819/*---------------------------------------------------------------------------
3820 * WLAN_HAL_ENTER_UAPSD_REQ
3821 *--------------------------------------------------------------------------*/
3822typedef PACKED_PRE struct PACKED_POST
3823{
3824 tANI_U8 bkDeliveryEnabled:1;
3825 tANI_U8 beDeliveryEnabled:1;
3826 tANI_U8 viDeliveryEnabled:1;
3827 tANI_U8 voDeliveryEnabled:1;
3828 tANI_U8 bkTriggerEnabled:1;
3829 tANI_U8 beTriggerEnabled:1;
3830 tANI_U8 viTriggerEnabled:1;
3831 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003832 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003833} tUapsdReqParams, *tpUapsdReqParams;
3834
3835typedef PACKED_PRE struct PACKED_POST
3836{
3837 tHalMsgHeader header;
3838 tUapsdReqParams enterUapsdParams;
3839} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3840
3841/*---------------------------------------------------------------------------
3842 * WLAN_HAL_EXIT_UAPSD_REQ
3843 *--------------------------------------------------------------------------*/
3844typedef PACKED_PRE struct PACKED_POST
3845{
3846 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003847 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003848} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3849
3850/*---------------------------------------------------------------------------
3851 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3852 *--------------------------------------------------------------------------*/
3853#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3854#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3855
3856typedef PACKED_PRE struct PACKED_POST
3857{
3858 tANI_U8 ucPatternId; // Pattern ID
3859 // Pattern byte offset from beginning of the 802.11 packet to start of the
3860 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003861 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003862 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3863 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3864 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3865 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3866 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3867 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003868 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003869} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3870
3871typedef PACKED_PRE struct PACKED_POST
3872{
3873 tHalMsgHeader header;
3874 tHalWowlAddBcastPtrn ptrnParams;
3875} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003876
Jeff Johnsone7245742012-09-05 17:12:55 -07003877
3878
Jeff Johnson295189b2012-06-20 16:38:30 -07003879/*---------------------------------------------------------------------------
3880 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3881 *--------------------------------------------------------------------------*/
3882typedef PACKED_PRE struct PACKED_POST
3883{
3884 /* Pattern ID of the wakeup pattern to be deleted */
3885 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003886 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003887} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3888
3889typedef PACKED_PRE struct PACKED_POST
3890{
3891 tHalMsgHeader header;
3892 tHalWowlDelBcastPtrn ptrnParams;
3893} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3894
3895/*---------------------------------------------------------------------------
3896 * WLAN_HAL_ENTER_WOWL_REQ
3897 *--------------------------------------------------------------------------*/
3898typedef PACKED_PRE struct PACKED_POST
3899{
3900 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003901 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003902
3903 /* Magic pattern */
3904 tSirMacAddr magicPtrn;
3905
Jeff Johnson32d95a32012-09-10 13:15:23 -07003906 /* Enables/disables packet pattern filtering in firmware.
3907 Enabling this flag enables broadcast pattern matching
3908 in Firmware. If unicast pattern matching is also desired,
3909 ucUcastPatternFilteringEnable flag must be set tot true
3910 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003911 */
3912 tANI_U8 ucPatternFilteringEnable;
3913
Jeff Johnson32d95a32012-09-10 13:15:23 -07003914 /* Enables/disables unicast packet pattern filtering.
3915 This flag specifies whether we want to do pattern match
3916 on unicast packets as well and not just broadcast packets.
3917 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003918 (main controlling flag) is set to false
3919 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003920 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003921
Jeff Johnson32d95a32012-09-10 13:15:23 -07003922 /* This configuration is valid only when magicPktEnable=1.
3923 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003924 * Channel Switch Action Frame.
3925 */
3926 tANI_U8 ucWowChnlSwitchRcv;
3927
Jeff Johnson32d95a32012-09-10 13:15:23 -07003928 /* This configuration is valid only when magicPktEnable=1.
3929 * It requests hardware to wake up when it receives the
3930 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003931 */
3932 tANI_U8 ucWowDeauthRcv;
3933
Jeff Johnson32d95a32012-09-10 13:15:23 -07003934 /* This configuration is valid only when magicPktEnable=1.
3935 * It requests hardware to wake up when it receives the
3936 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003937 */
3938 tANI_U8 ucWowDisassocRcv;
3939
Jeff Johnson32d95a32012-09-10 13:15:23 -07003940 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003941 * It requests hardware to wake up when it has missed
3942 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003943 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003944 */
3945 tANI_U8 ucWowMaxMissedBeacons;
3946
Jeff Johnson32d95a32012-09-10 13:15:23 -07003947 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003948 * This is a timeout value in units of microsec. It requests
3949 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003950 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003951 */
3952 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003953
Jeff Johnson295189b2012-06-20 16:38:30 -07003954 /* This configuration directs the WoW packet filtering to look for EAP-ID
3955 * requests embedded in EAPOL frames and use this as a wake source.
3956 */
3957 tANI_U8 ucWoWEAPIDRequestEnable;
3958
3959 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3960 * requests and use this as a wake source.
3961 */
3962 tANI_U8 ucWoWEAPOL4WayEnable;
3963
3964 /* This configuration allows a host wakeup on an network scan offload match.
3965 */
3966 tANI_U8 ucWowNetScanOffloadMatch;
3967
3968 /* This configuration allows a host wakeup on any GTK rekeying error.
3969 */
3970 tANI_U8 ucWowGTKRekeyError;
3971
3972 /* This configuration allows a host wakeup on BSS connection loss.
3973 */
3974 tANI_U8 ucWoWBSSConnLoss;
3975
Jeff Johnsone7245742012-09-05 17:12:55 -07003976 tANI_U8 bssIdx;
3977
Jeff Johnson295189b2012-06-20 16:38:30 -07003978} tHalWowlEnterParams, *tpHalWowlEnterParams;
3979
3980typedef PACKED_PRE struct PACKED_POST
3981{
3982 tHalMsgHeader header;
3983 tHalWowlEnterParams enterWowlParams;
3984} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
3985
3986/*---------------------------------------------------------------------------
3987 * WLAN_HAL_EXIT_WOWL_REQ
3988 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07003989
Jeff Johnson295189b2012-06-20 16:38:30 -07003990typedef PACKED_PRE struct PACKED_POST
3991{
Jeff Johnsone7245742012-09-05 17:12:55 -07003992 tANI_U8 bssIdx;
3993
3994} tHalWowlExitParams, *tpHalWowlExitParams;
3995
3996typedef PACKED_PRE struct PACKED_POST
3997{
3998 tHalMsgHeader header;
3999 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004000} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4001
4002/*---------------------------------------------------------------------------
4003 * WLAN_HAL_GET_RSSI_REQ
4004 *--------------------------------------------------------------------------*/
4005typedef PACKED_PRE struct PACKED_POST
4006{
4007 tHalMsgHeader header;
4008} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4009
Anand Kumar012623a2013-01-11 17:00:00 -08004010typedef PACKED_PRE struct PACKED_POST
4011{
4012 /* Valid STA Idx for per STA stats request */
4013 tANI_U32 staId;
4014
4015}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4016
4017
4018/*---------------------------------------------------------------------------
4019 * WLAN_HAL_GET_ROAM_RSSI_REQ
4020 *--------------------------------------------------------------------------*/
4021typedef PACKED_PRE struct PACKED_POST
4022{
4023 tHalMsgHeader header;
4024 tHalRoamRssiReqParams roamRssiReqParams;
4025} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4026
4027
Jeff Johnson295189b2012-06-20 16:38:30 -07004028/*---------------------------------------------------------------------------
4029 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4030 *--------------------------------------------------------------------------*/
4031typedef PACKED_PRE struct PACKED_POST {
4032 tANI_U8 staidx; // STA index
4033 tANI_U8 ac; // Access Category
4034 tANI_U8 up; // User Priority
4035 tANI_U32 srvInterval; // Service Interval
4036 tANI_U32 susInterval; // Suspend Interval
4037 tANI_U32 delayInterval; // Delay Interval
4038} tUapsdInfo, tpUapsdInfo;
4039
4040typedef PACKED_PRE struct PACKED_POST
4041{
4042 tHalMsgHeader header;
4043 tUapsdInfo enableUapsdAcParams;
4044} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4045
4046/*---------------------------------------------------------------------------
4047 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4048 *--------------------------------------------------------------------------*/
4049typedef PACKED_PRE struct PACKED_POST {
4050 tANI_U8 setMcstBcstFilterSetting;
4051 tANI_U8 setMcstBcstFilter;
4052} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4053
4054typedef PACKED_PRE struct PACKED_POST
4055{
4056 tHalMsgHeader header;
4057 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4058} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4059
4060/*---------------------------------------------------------------------------
4061 * WLAN_HAL_ENTER_IMPS_RSP
4062 *--------------------------------------------------------------------------*/
4063typedef PACKED_PRE struct PACKED_POST
4064{
4065 /* success or failure */
4066 tANI_U32 status;
4067} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4068
4069typedef PACKED_PRE struct PACKED_POST
4070{
4071 tHalMsgHeader header;
4072 tHalEnterImpsRspParams enterImpsRspParams;
4073} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4074
4075/*---------------------------------------------------------------------------
4076 * WLAN_HAL_EXIT_IMPS_RSP
4077 *--------------------------------------------------------------------------*/
4078typedef PACKED_PRE struct PACKED_POST
4079{
4080 /* success or failure */
4081 tANI_U32 status;
4082} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4083
4084typedef PACKED_PRE struct PACKED_POST
4085{
4086 tHalMsgHeader header;
4087 tHalExitImpsRspParams exitImpsRspParams;
4088} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4089
4090/*---------------------------------------------------------------------------
4091 * WLAN_HAL_ENTER_BMPS_RSP
4092 *--------------------------------------------------------------------------*/
4093typedef PACKED_PRE struct PACKED_POST
4094{
4095 /* success or failure */
4096 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004097 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004098} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4099
4100typedef PACKED_PRE struct PACKED_POST
4101{
4102 tHalMsgHeader header;
4103 tHalEnterBmpsRspParams enterBmpsRspParams;
4104} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4105
4106/*---------------------------------------------------------------------------
4107 * WLAN_HAL_EXIT_BMPS_RSP
4108 *--------------------------------------------------------------------------*/
4109typedef PACKED_PRE struct PACKED_POST
4110{
4111 /* success or failure */
4112 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004113 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004114} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4115
4116typedef PACKED_PRE struct PACKED_POST
4117{
4118 tHalMsgHeader header;
4119 tHalExitBmpsRspParams exitBmpsRspParams;
4120} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4121
4122/*---------------------------------------------------------------------------
4123 * WLAN_HAL_ENTER_UAPSD_RSP
4124 *--------------------------------------------------------------------------*/
4125typedef PACKED_PRE struct PACKED_POST
4126{
4127 /* success or failure */
4128 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004129 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004130}tUapsdRspParams, *tpUapsdRspParams;
4131
4132typedef PACKED_PRE struct PACKED_POST
4133{
4134 tHalMsgHeader header;
4135 tUapsdRspParams enterUapsdRspParams;
4136} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4137
4138/*---------------------------------------------------------------------------
4139 * WLAN_HAL_EXIT_UAPSD_RSP
4140 *--------------------------------------------------------------------------*/
4141typedef PACKED_PRE struct PACKED_POST
4142{
4143 /* success or failure */
4144 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004145 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004146} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4147
4148typedef PACKED_PRE struct PACKED_POST
4149{
4150 tHalMsgHeader header;
4151 tHalExitUapsdRspParams exitUapsdRspParams;
4152} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4153
4154/*---------------------------------------------------------------------------
4155 * WLAN_HAL_RSSI_NOTIFICATION_IND
4156 *--------------------------------------------------------------------------*/
4157typedef PACKED_PRE struct PACKED_POST
4158{
4159 tANI_U32 bRssiThres1PosCross : 1;
4160 tANI_U32 bRssiThres1NegCross : 1;
4161 tANI_U32 bRssiThres2PosCross : 1;
4162 tANI_U32 bRssiThres2NegCross : 1;
4163 tANI_U32 bRssiThres3PosCross : 1;
4164 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004165 tANI_U32 avgRssi : 8;
4166 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004167} tHalRSSINotification, *tpHalRSSINotification;
4168
4169typedef PACKED_PRE struct PACKED_POST
4170{
4171 tHalMsgHeader header;
4172 tHalRSSINotification rssiNotificationParams;
4173} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4174
4175/*---------------------------------------------------------------------------
4176 * WLAN_HAL_GET_RSSI_RSP
4177 *--------------------------------------------------------------------------*/
4178typedef PACKED_PRE struct PACKED_POST
4179{
4180 /* success or failure */
4181 tANI_U32 status;
4182 tANI_S8 rssi;
4183} tHalGetRssiParams, *tpHalGetRspParams;
4184
4185typedef PACKED_PRE struct PACKED_POST
4186{
4187 tHalMsgHeader header;
4188 tHalGetRssiParams rssiRspParams;
4189} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4190
4191/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004192 * WLAN_HAL_GET_ROAM_RSSI_RSP
4193 *--------------------------------------------------------------------------*/
4194typedef PACKED_PRE struct PACKED_POST
4195{
4196 /* success or failure */
4197 tANI_U32 status;
4198
4199 tANI_U8 staId;
4200 tANI_S8 rssi;
4201} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4202
4203typedef PACKED_PRE struct PACKED_POST
4204{
4205 tHalMsgHeader header;
4206 tHalGetRoamRssiParams roamRssiRspParams;
4207} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4208
4209/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004210 * WLAN_HAL_ENTER_WOWL_RSP
4211 *--------------------------------------------------------------------------*/
4212typedef PACKED_PRE struct PACKED_POST
4213{
4214 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004215 tANI_U32 status;
4216 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004217} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4218
4219typedef PACKED_PRE struct PACKED_POST
4220{
4221 tHalMsgHeader header;
4222 tHalEnterWowlRspParams enterWowlRspParams;
4223} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4224
4225/*---------------------------------------------------------------------------
4226 * WLAN_HAL_EXIT_WOWL_RSP
4227 *--------------------------------------------------------------------------*/
4228typedef PACKED_PRE struct PACKED_POST
4229{
4230 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004231 tANI_U32 status;
4232 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004233} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4234
4235typedef PACKED_PRE struct PACKED_POST
4236{
4237 tHalMsgHeader header;
4238 tHalExitWowlRspParams exitWowlRspParams;
4239} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4240
4241/*---------------------------------------------------------------------------
4242 * WLAN_HAL_ADD_BCN_FILTER_RSP
4243 *--------------------------------------------------------------------------*/
4244typedef PACKED_PRE struct PACKED_POST
4245{
4246 /* success or failure */
4247 tANI_U32 status;
4248} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4249
4250typedef PACKED_PRE struct PACKED_POST
4251{
4252 tHalMsgHeader header;
4253 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4254} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4255
4256/*---------------------------------------------------------------------------
4257 * WLAN_HAL_REM_BCN_FILTER_RSP
4258 *--------------------------------------------------------------------------*/
4259typedef PACKED_PRE struct PACKED_POST
4260{
4261 /* success or failure */
4262 tANI_U32 status;
4263} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4264
4265typedef PACKED_PRE struct PACKED_POST
4266{
4267 tHalMsgHeader header;
4268 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4269} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4270
4271/*---------------------------------------------------------------------------
4272 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4273 *--------------------------------------------------------------------------*/
4274typedef PACKED_PRE struct PACKED_POST
4275{
4276 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004277 tANI_U32 status;
4278 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004279} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4280
4281typedef PACKED_PRE struct PACKED_POST
4282{
4283 tHalMsgHeader header;
4284 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4285} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4286
4287/*---------------------------------------------------------------------------
4288 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4289 *--------------------------------------------------------------------------*/
4290typedef PACKED_PRE struct PACKED_POST
4291{
4292 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004293 tANI_U32 status;
4294 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004295} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4296
4297typedef PACKED_PRE struct PACKED_POST
4298{
4299 tHalMsgHeader header;
4300 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4301} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4302
4303/*---------------------------------------------------------------------------
4304 * WLAN_HAL_HOST_OFFLOAD_RSP
4305 *--------------------------------------------------------------------------*/
4306typedef PACKED_PRE struct PACKED_POST
4307{
4308 /* success or failure */
4309 tANI_U32 status;
4310} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4311
4312typedef PACKED_PRE struct PACKED_POST
4313{
4314 tHalMsgHeader header;
4315 tHalHostOffloadRspParams hostOffloadRspParams;
4316} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4317
4318/*---------------------------------------------------------------------------
4319 * WLAN_HAL_KEEP_ALIVE_RSP
4320 *--------------------------------------------------------------------------*/
4321typedef PACKED_PRE struct PACKED_POST
4322{
4323 /* success or failure */
4324 tANI_U32 status;
4325} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4326
4327typedef PACKED_PRE struct PACKED_POST
4328{
4329 tHalMsgHeader header;
4330 tHalKeepAliveRspParams keepAliveRspParams;
4331} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4332
4333/*---------------------------------------------------------------------------
4334 * WLAN_HAL_SET_RSSI_THRESH_RSP
4335 *--------------------------------------------------------------------------*/
4336typedef PACKED_PRE struct PACKED_POST
4337{
4338 /* success or failure */
4339 tANI_U32 status;
4340} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4341
4342typedef PACKED_PRE struct PACKED_POST
4343{
4344 tHalMsgHeader header;
4345 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4346} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4347
4348/*---------------------------------------------------------------------------
4349 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4350 *--------------------------------------------------------------------------*/
4351typedef PACKED_PRE struct PACKED_POST
4352{
4353 /* success or failure */
4354 tANI_U32 status;
4355} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4356
4357typedef PACKED_PRE struct PACKED_POST
4358{
4359 tHalMsgHeader header;
4360 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4361} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4362
4363/*---------------------------------------------------------------------------
4364 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4365 *--------------------------------------------------------------------------*/
4366typedef PACKED_PRE struct PACKED_POST
4367{
4368 /* success or failure */
4369 tANI_U32 status;
4370} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4371
4372typedef PACKED_PRE struct PACKED_POST
4373{
4374 tHalMsgHeader header;
4375 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4376} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4377
4378/*---------------------------------------------------------------------------
4379 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4380 *--------------------------------------------------------------------------*/
4381
4382typedef PACKED_PRE struct PACKED_POST
4383{
4384 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4385 //the request has power constraints, this should be applied only to that session
4386 tSirMacAddr selfStaMacAddr;
4387 //In request,
4388 //power == MaxTx power to be used.
4389 tPowerdBm power;
4390
4391}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4392
4393
4394typedef PACKED_PRE struct PACKED_POST
4395{
4396 tHalMsgHeader header;
4397 tSetMaxTxPwrParams setMaxTxPwrParams;
4398}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4399
4400/*---------------------------------------------------------------------------
4401*WLAN_HAL_SET_MAX_TX_POWER_RSP
4402*--------------------------------------------------------------------------*/
4403
4404typedef PACKED_PRE struct PACKED_POST
4405{
4406 //power == tx power used for management frames.
4407 tPowerdBm power;
4408
4409 /* success or failure */
4410 tANI_U32 status;
4411}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4412
4413typedef PACKED_PRE struct PACKED_POST
4414{
4415 tHalMsgHeader header;
4416 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4417}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4418
4419/*---------------------------------------------------------------------------
4420 *WLAN_HAL_SET_TX_POWER_REQ
4421 *--------------------------------------------------------------------------*/
4422
4423typedef PACKED_PRE struct PACKED_POST
4424{
4425 /* TX Power in milli watts */
4426 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004427 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004428}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4429
4430
4431typedef PACKED_PRE struct PACKED_POST
4432{
4433 tHalMsgHeader header;
4434 tSetTxPwrReqParams setTxPwrReqParams;
4435}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4436
4437/*---------------------------------------------------------------------------
4438*WLAN_HAL_SET_TX_POWER_RSP
4439*--------------------------------------------------------------------------*/
4440
4441typedef PACKED_PRE struct PACKED_POST
4442{
4443 /* success or failure */
4444 tANI_U32 status;
4445}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4446
4447typedef PACKED_PRE struct PACKED_POST
4448{
4449 tHalMsgHeader header;
4450 tSetTxPwrRspParams setTxPwrRspParams;
4451}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4452
4453/*---------------------------------------------------------------------------
4454 *WLAN_HAL_GET_TX_POWER_REQ
4455 *--------------------------------------------------------------------------*/
4456
4457typedef PACKED_PRE struct PACKED_POST
4458{
4459 tANI_U8 staId;
4460}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4461
4462typedef PACKED_PRE struct PACKED_POST
4463{
4464 tHalMsgHeader header;
4465 tGetTxPwrReqParams getTxPwrReqParams;
4466}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4467
4468/*---------------------------------------------------------------------------
4469*WLAN_HAL_GET_TX_POWER_RSP
4470*--------------------------------------------------------------------------*/
4471
4472typedef PACKED_PRE struct PACKED_POST
4473{
4474 /* success or failure */
4475 tANI_U32 status;
4476
4477 /* TX Power in milli watts */
4478 tANI_U32 txPower;
4479}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4480
4481typedef PACKED_PRE struct PACKED_POST
4482{
4483 tHalMsgHeader header;
4484 tGetTxPwrRspParams getTxPwrRspParams;
4485}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4486
4487#ifdef WLAN_FEATURE_P2P
4488/*---------------------------------------------------------------------------
4489 *WLAN_HAL_SET_P2P_GONOA_REQ
4490 *--------------------------------------------------------------------------*/
4491
4492typedef PACKED_PRE struct PACKED_POST
4493{
4494 tANI_U8 opp_ps;
4495 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004496 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004497 tANI_U32 duration;
4498 tANI_U32 interval;
4499 tANI_U32 single_noa_duration;
4500 tANI_U8 psSelection;
4501}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4502
4503
4504typedef PACKED_PRE struct PACKED_POST
4505{
4506 tHalMsgHeader header;
4507 tSetP2PGONOAParams setP2PGONOAParams;
4508}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4509
4510/*---------------------------------------------------------------------------
4511*WLAN_HAL_SET_P2P_GONOA_RSP
4512*--------------------------------------------------------------------------*/
4513
4514typedef PACKED_PRE struct PACKED_POST
4515{
4516 /* success or failure */
4517 tANI_U32 status;
4518}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4519
4520typedef PACKED_PRE struct PACKED_POST
4521{
4522 tHalMsgHeader header;
4523 tSetP2PGONOARspParams setP2PGONOARspParams;
4524}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4525#endif
4526
4527/*---------------------------------------------------------------------------
4528 *WLAN_HAL_ADD_SELF_STA_REQ
4529 *--------------------------------------------------------------------------*/
4530
4531typedef PACKED_PRE struct PACKED_POST
4532{
4533 tSirMacAddr selfMacAddr;
4534 tANI_U32 status;
4535}tAddStaSelfParams, *tpAddStaSelfParams;
4536
4537
4538typedef PACKED_PRE struct PACKED_POST
4539{
4540 tHalMsgHeader header;
4541 tAddStaSelfParams addStaSelfParams;
4542}tAddStaSelfReq, *tpAddStaSelfReq;
4543
4544/*---------------------------------------------------------------------------
4545*WLAN_HAL_ADD_SELF_STA_RSP
4546*--------------------------------------------------------------------------*/
4547
4548typedef PACKED_PRE struct PACKED_POST
4549{
4550 /* success or failure */
4551 tANI_U32 status;
4552
4553 /*Self STA Index */
4554 tANI_U8 selfStaIdx;
4555
4556 /* DPU Index (IGTK, PTK, GTK all same) */
4557 tANI_U8 dpuIdx;
4558
4559 /* DPU Signature */
4560 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004561
Jeff Johnson295189b2012-06-20 16:38:30 -07004562}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4563
4564typedef PACKED_PRE struct PACKED_POST
4565{
4566 tHalMsgHeader header;
4567 tAddStaSelfRspParams addStaSelfRspParams;
4568}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4569
4570
4571/*---------------------------------------------------------------------------
4572 WLAN_HAL_DEL_STA_SELF_REQ
4573---------------------------------------------------------------------------*/
4574
4575typedef PACKED_PRE struct PACKED_POST
4576{
4577 tSirMacAddr selfMacAddr;
4578
4579}tDelStaSelfParams, *tpDelStaSelfParams;
4580
4581typedef PACKED_PRE struct PACKED_POST
4582{
4583 tHalMsgHeader header;
4584 tDelStaSelfParams delStaSelfParams;
4585} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4586
4587
4588/*---------------------------------------------------------------------------
4589 WLAN_HAL_DEL_STA_SELF_RSP
4590---------------------------------------------------------------------------*/
4591
4592typedef PACKED_PRE struct PACKED_POST
4593{
4594 /*success or failure */
4595 tANI_U32 status;
4596
4597 tSirMacAddr selfMacAddr;
4598}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4599
4600typedef PACKED_PRE struct PACKED_POST
4601{
4602 tHalMsgHeader header;
4603 tDelStaSelfRspParams delStaSelfRspParams;
4604} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4605
4606
4607#ifdef WLAN_FEATURE_VOWIFI_11R
4608
4609/*---------------------------------------------------------------------------
4610 *WLAN_HAL_AGGR_ADD_TS_REQ
4611 *--------------------------------------------------------------------------*/
4612
4613typedef PACKED_PRE struct PACKED_POST
4614{
4615 /* Station Index */
4616 tANI_U16 staIdx;
4617
4618 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4619 /* This will carry the bitmap with the bit positions representing different AC.s*/
4620 tANI_U16 tspecIdx;
4621
4622 /* Tspec info per AC To program TPE with required parameters */
4623 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4624
4625 /* U-APSD Flags: 1b per AC. Encoded as follows:
4626 b7 b6 b5 b4 b3 b2 b1 b0 =
4627 X X X X BE BK VI VO */
4628 tANI_U8 uAPSD;
4629
4630 /* These parameters are for all the access categories */
4631 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4632 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4633 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4634
4635}tAggrAddTsParams, *tpAggrAddTsParams;
4636
4637
4638typedef PACKED_PRE struct PACKED_POST
4639{
4640 tHalMsgHeader header;
4641 tAggrAddTsParams aggrAddTsParam;
4642}tAggrAddTsReq, *tpAggrAddTsReq;
4643
4644/*---------------------------------------------------------------------------
4645*WLAN_HAL_AGGR_ADD_TS_RSP
4646*--------------------------------------------------------------------------*/
4647
4648typedef PACKED_PRE struct PACKED_POST
4649{
4650 /* success or failure */
4651 tANI_U32 status0;
4652 /* FIXME PRIMA for future use for 11R */
4653 tANI_U32 status1;
4654}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4655
4656typedef PACKED_PRE struct PACKED_POST
4657{
4658 tHalMsgHeader header;
4659 tAggrAddTsRspParams aggrAddTsRspParam;
4660}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4661
4662#endif
4663
4664/*---------------------------------------------------------------------------
4665 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4666 *--------------------------------------------------------------------------*/
4667typedef PACKED_PRE struct PACKED_POST
4668{
4669 tANI_U8 isAppsCpuAwake;
4670} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4671
4672typedef PACKED_PRE struct PACKED_POST
4673{
4674 tHalMsgHeader header;
4675 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4676} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4677
4678/*---------------------------------------------------------------------------
4679 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4680 *--------------------------------------------------------------------------*/
4681typedef PACKED_PRE struct PACKED_POST
4682{
4683 /* success or failure */
4684 tANI_U32 status;
4685} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4686
4687typedef PACKED_PRE struct PACKED_POST
4688{
4689 tHalMsgHeader header;
4690 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4691} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4692/*---------------------------------------------------------------------------
4693 * WLAN_HAL_DUMP_COMMAND_REQ
4694 *--------------------------------------------------------------------------*/
4695
4696typedef PACKED_PRE struct PACKED_POST
4697{
4698 tANI_U32 argument1;
4699 tANI_U32 argument2;
4700 tANI_U32 argument3;
4701 tANI_U32 argument4;
4702 tANI_U32 argument5;
4703
4704}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4705
4706typedef PACKED_PRE struct PACKED_POST
4707{
4708 tHalMsgHeader header;
4709 tHalDumpCmdReqParams dumpCmdReqParams;
4710} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4711
4712/*---------------------------------------------------------------------------
4713 * WLAN_HAL_DUMP_COMMAND_RSP
4714 *--------------------------------------------------------------------------*/
4715
4716typedef PACKED_PRE struct PACKED_POST
4717{
4718 /* success or failure */
4719 tANI_U32 status;
4720 /*Length of the responce message*/
4721 tANI_U32 rspLength;
4722 /*FiXME: Currently considering the the responce will be less than 100bytes */
4723 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004724
Jeff Johnson295189b2012-06-20 16:38:30 -07004725} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4726
4727typedef PACKED_PRE struct PACKED_POST
4728{
4729 tHalMsgHeader header;
4730 tHalDumpCmdRspParams dumpCmdRspParams;
4731} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4732
4733/*---------------------------------------------------------------------------
4734 *WLAN_HAL_COEX_IND
4735 *-------------------------------------------------------------------------*/
4736#define WLAN_COEX_IND_DATA_SIZE (4)
4737#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4738#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
4739
4740typedef PACKED_PRE struct PACKED_POST
4741{
4742 /*Coex Indication Type*/
4743 tANI_U32 coexIndType;
4744
4745 /*Coex Indication Data*/
4746 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4747}tCoexIndParams,*tpCoexIndParams;
4748
4749typedef PACKED_PRE struct PACKED_POST
4750{
4751 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004752 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004753}tCoexIndMsg, *tpCoexIndMsg;
4754
4755/*---------------------------------------------------------------------------
4756 *WLAN_HAL_OTA_TX_COMPL_IND
4757 *-------------------------------------------------------------------------*/
4758
4759typedef PACKED_PRE struct PACKED_POST
4760{
4761 /*Tx Complete Indication Success or Failure*/
4762 tANI_U32 status;
4763}tTxComplParams,*tpTxComplParams;
4764
4765typedef PACKED_PRE struct PACKED_POST
4766{
4767 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004768 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004769}tTxComplIndMsg, *tpTxComplIndMsg;
4770
4771/*---------------------------------------------------------------------------
4772 * WLAN_HAL_HOST_SUSPEND_IND
4773 *-------------------------------------------------------------------------*/
4774
4775typedef PACKED_PRE struct PACKED_POST
4776{
4777 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004778 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004779}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4780
4781typedef PACKED_PRE struct PACKED_POST
4782{
4783 tHalMsgHeader header;
4784 tHalWlanHostSuspendIndParam suspendIndParams;
4785}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4786
4787/*---------------------------------------------------------------------------
4788 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4789 *-------------------------------------------------------------------------*/
4790
4791typedef PACKED_PRE struct PACKED_POST
4792{
4793 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004794 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004795}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4796
4797typedef PACKED_PRE struct PACKED_POST
4798{
4799 tHalMsgHeader header;
4800 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4801}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4802
4803#ifdef WLAN_FEATURE_P2P
4804/*---------------------------------------------------------------------------
4805 *WLAN_HAL_NOA_ATTR_IND
4806 *-------------------------------------------------------------------------*/
4807
4808typedef PACKED_PRE struct PACKED_POST
4809{
4810 tANI_U8 index ;
4811 tANI_U8 oppPsFlag ;
4812 tANI_U16 ctWin ;
4813
4814 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004815 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004816 tANI_U32 uNoa1Duration;
4817 tANI_U32 uNoa1Interval;
4818 tANI_U32 uNoa1StartTime;
4819
4820 tANI_U16 uNoa2IntervalCnt;
4821 tANI_U16 rsvd2;
4822 tANI_U32 uNoa2Duration;
4823 tANI_U32 uNoa2Interval;
4824 tANI_U32 uNoa2StartTime;
4825
4826 tANI_U32 status;
4827}tNoaAttrIndParams, *tpNoaAttrIndParams;
4828
4829typedef PACKED_PRE struct PACKED_POST
4830{
4831 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004832 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004833}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004834
4835/*---------------------------------------------------------------------------
4836 *WLAN_HAL_NOA_START_IND
4837 *-------------------------------------------------------------------------*/
4838
4839typedef PACKED_PRE struct PACKED_POST
4840{
4841 tANI_U32 status;
4842 tANI_U32 bssIdx;
4843}tNoaStartIndParams, *tpNoaStartIndParams;
4844
4845typedef PACKED_PRE struct PACKED_POST
4846{
4847 tHalMsgHeader header;
4848 tNoaStartIndParams noaStartIndParams;
4849}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004850#endif
4851
4852/*---------------------------------------------------------------------------
4853 * WLAN_HAL_HOST_RESUME_REQ
4854 *-------------------------------------------------------------------------*/
4855
4856typedef PACKED_PRE struct PACKED_POST
4857{
4858 tANI_U8 configuredMcstBcstFilterSetting;
4859}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4860
4861typedef PACKED_PRE struct PACKED_POST
4862{
4863 tHalMsgHeader header;
4864 tHalWlanHostResumeReqParam resumeReqParams;
4865}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4866
4867/*---------------------------------------------------------------------------
4868 * WLAN_HAL_HOST_RESUME_RSP
4869 *--------------------------------------------------------------------------*/
4870typedef PACKED_PRE struct PACKED_POST
4871{
4872 /* success or failure */
4873 tANI_U32 status;
4874} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4875
4876typedef PACKED_PRE struct PACKED_POST
4877{
4878 tHalMsgHeader header;
4879 tHalHostResumeRspParams hostResumeRspParams;
4880} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4881
Anand Kumar012623a2013-01-11 17:00:00 -08004882typedef PACKED_PRE struct PACKED_POST
4883{
4884 tANI_U16 staIdx;
4885 // Peer MAC Address, whose BA session has timed out
4886 tSirMacAddr peerMacAddr;
4887 // TID for which a BA session timeout is being triggered
4888 tANI_U8 baTID;
4889 // DELBA direction
4890 // 1 - Originator
4891 // 0 - Recipient
4892 tANI_U8 baDirection;
4893 tANI_U32 reasonCode;
4894 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4895} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4896
4897typedef PACKED_PRE struct PACKED_POST
4898{
4899 tHalMsgHeader header;
4900 tHalWlanDelBaIndMsg hostdelBaParam;
4901} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4902
Jeff Johnson295189b2012-06-20 16:38:30 -07004903/*---------------------------------------------------------------------------
4904 *PNO Messages
4905 *-------------------------------------------------------------------------*/
4906/*Max number of channels that a network can be found on*/
4907#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 26
4908
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304909/*Max number of channels that a network can be found on*/
4910#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4911
Jeff Johnson295189b2012-06-20 16:38:30 -07004912/*Maximum numbers of networks supported by PNO*/
4913#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4914
4915/*The number of scan time intervals that can be programmed into PNO*/
4916#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4917
4918/*Maximum size of the probe template*/
4919#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4920
Jeff Johnson32d95a32012-09-10 13:15:23 -07004921/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004922 Immediate - scanning will start immediately and PNO procedure will
4923 be repeated based on timer
4924 Suspend - scanning will start at suspend
4925 Resume - scanning will start on system resume*/
4926typedef enum
4927{
4928 ePNO_MODE_IMMEDIATE,
4929 ePNO_MODE_ON_SUSPEND,
4930 ePNO_MODE_ON_RESUME,
4931 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4932} ePNOMode;
4933
4934/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004935typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004936{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004937 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004938 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004939
Jeff Johnson295189b2012-06-20 16:38:30 -07004940 // Upper layer authentication types
4941 eAUTH_TYPE_WPA = 2,
4942 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004943
Jeff Johnson295189b2012-06-20 16:38:30 -07004944 eAUTH_TYPE_RSN = 4,
4945 eAUTH_TYPE_RSN_PSK = 5,
4946 eAUTH_TYPE_FT_RSN = 6,
4947 eAUTH_TYPE_FT_RSN_PSK = 7,
4948 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4949 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004950
Jeff Johnson295189b2012-06-20 16:38:30 -07004951 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4952
4953}tAuthType;
4954
4955/* Encryption type */
4956typedef enum eEdType
4957{
4958 eED_ANY = 0,
4959 eED_NONE = 1,
4960 eED_WEP = 2,
4961 eED_TKIP = 3,
4962 eED_CCMP = 4,
4963 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004964
Jeff Johnson295189b2012-06-20 16:38:30 -07004965 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4966} tEdType;
4967
4968/* SSID broadcast type */
4969typedef enum eSSIDBcastType
4970{
4971 eBCAST_UNKNOWN = 0,
4972 eBCAST_NORMAL = 1,
4973 eBCAST_HIDDEN = 2,
4974
4975 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4976} tSSIDBcastType;
4977
Jeff Johnson32d95a32012-09-10 13:15:23 -07004978/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004979 The network description for which PNO will have to look for
4980*/
4981typedef PACKED_PRE struct PACKED_POST
4982{
4983 /*SSID of the BSS*/
4984 tSirMacSSid ssId;
4985
4986 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004987 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07004988
4989 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004990 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07004991
Jeff Johnson32d95a32012-09-10 13:15:23 -07004992 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07004993 0 - if all channels */
4994 tANI_U8 ucChannelCount;
4995 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
4996
4997 /*Indicates the RSSI threshold for the network to be considered*/
4998 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004999}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005000
5001typedef PACKED_PRE struct PACKED_POST
5002{
5003 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005004 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005005
Jeff Johnson32d95a32012-09-10 13:15:23 -07005006 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005007 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005008 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005009
Jeff Johnson32d95a32012-09-10 13:15:23 -07005010 /*e.g: 2 3
5011 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005012 - it will wait 2s between consecutive scans for 3 times
5013 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005014}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005015
Jeff Johnson32d95a32012-09-10 13:15:23 -07005016/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005017 The network parameters to be sent to the PNO algorithm
5018*/
5019typedef PACKED_PRE struct PACKED_POST
5020{
5021 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005022 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005023
Jeff Johnson32d95a32012-09-10 13:15:23 -07005024 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005025 two consecutive scan procedures
5026 If the desired is for a uniform timer that fires always at the exact same
5027 interval - one single value is to be set
5028 If there is a desire for a more complex - telescopic like timer multiple
5029 values can be set - once PNO reaches the end of the array it will
5030 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005031 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005032
5033}tScanTimersType;
5034
5035typedef PACKED_PRE struct PACKED_POST {
5036
5037 /*Enable PNO*/
5038 tANI_U32 enable;
5039
5040 /*Immediate, On Suspend, On Resume*/
5041 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005042
Jeff Johnson295189b2012-06-20 16:38:30 -07005043 /*Number of networks sent for PNO*/
5044 tANI_U32 ucNetworksCount;
5045
5046 /*The networks that PNO needs to look for*/
5047 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5048
5049 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005050 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005051
5052 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005053 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005054 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5055
5056 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005057 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005058 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5059
5060} tPrefNetwListParams, * tpPrefNetwListParams;
5061
5062/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005063 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005064*/
5065typedef PACKED_PRE struct PACKED_POST
5066{
5067 tHalMsgHeader header;
5068 tPrefNetwListParams prefNetwListParams;
5069} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5070
5071
Jeff Johnson32d95a32012-09-10 13:15:23 -07005072/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005073 The network description for which PNO will have to look for
5074*/
5075typedef PACKED_PRE struct PACKED_POST
5076{
5077 /*SSID of the BSS*/
5078 tSirMacSSid ssId;
5079
5080 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005081 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005082
5083 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005084 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005085
5086 /*SSID broadcast type, normal, hidden or unknown*/
5087 tSSIDBcastType bcastNetworkType;
5088
Jeff Johnson32d95a32012-09-10 13:15:23 -07005089 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005090 0 - if all channels */
5091 tANI_U8 ucChannelCount;
5092 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5093
5094 /*Indicates the RSSI threshold for the network to be considered*/
5095 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005096}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005097
5098typedef PACKED_PRE struct PACKED_POST {
5099
5100 /*Enable PNO*/
5101 tANI_U32 enable;
5102
5103 /*Immediate, On Suspend, On Resume*/
5104 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005105
Jeff Johnson295189b2012-06-20 16:38:30 -07005106 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005107 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005108
5109 /*The networks that PNO needs to look for*/
5110 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5111
5112 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005113 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005114
5115 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005116 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005117 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5118
5119 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005120 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005121 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5122
5123} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5124
5125/*
5126 Preferred network list request new
5127*/
5128typedef PACKED_PRE struct PACKED_POST
5129{
5130 tHalMsgHeader header;
5131 tPrefNetwListParamsNew prefNetwListParams;
5132} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5133
5134/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005135 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005136*/
5137typedef PACKED_PRE struct PACKED_POST
5138{
5139 tHalMsgHeader header;
5140
Jeff Johnson32d95a32012-09-10 13:15:23 -07005141 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005142 the request and will start scanning*/
5143 tANI_U32 status;
5144} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5145
5146/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005147 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005148*/
5149typedef PACKED_PRE struct PACKED_POST {
5150
5151 /*Network that was found with the highest RSSI*/
5152 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005153
Jeff Johnson295189b2012-06-20 16:38:30 -07005154 /*Indicates the RSSI */
5155 tANI_U8 rssi;
5156
5157} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5158
5159/*
5160 Preferred network found indication
5161*/
5162typedef PACKED_PRE struct PACKED_POST {
5163
5164 tHalMsgHeader header;
5165 tPrefNetwFoundParams prefNetwFoundParams;
5166} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5167
5168
5169typedef PACKED_PRE struct PACKED_POST {
5170
5171 /*RSSI Threshold*/
5172 tANI_U8 ucRssiThreshold;
5173
5174} tRssiFilterParams, * tpRssiFilterParams;
5175
5176/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005177 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005178*/
5179typedef PACKED_PRE struct PACKED_POST
5180{
5181 tHalMsgHeader header;
5182 tRssiFilterParams prefRSSIFilterParams;
5183} tSetRssiFilterReq, *tpSetRssiFilterReq;
5184
5185/*
5186 Set RSSI filter resp
5187*/
5188typedef PACKED_PRE struct PACKED_POST{
5189 tHalMsgHeader header;
5190 /*status of the request */
5191 tANI_U32 status;
5192} tSetRssiFilterResp, *tpSetRssiFilterResp;
5193/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005194 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005195*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005196typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005197{
5198
5199 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005200 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005201
5202 /*Lets PNO know that host has determined the regulatory domain*/
5203 tANI_U8 b11dResolved;
5204
5205 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005206 tANI_U8 ucChannelCount;
5207 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005208
5209 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005210 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005211
5212 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005213 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005214
5215 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005216 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005217
5218 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005219 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005220
5221 /*Cb State*/
5222 ePhyChanBondState cbState;
5223
5224} tUpdateScanParams, * tpUpdateScanParams;
5225
5226/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305227 Update scan params
5228*/
5229typedef PACKED_PRE struct PACKED_POST
5230{
5231
5232 /*Host setting for 11d*/
5233 tANI_U8 b11dEnabled;
5234
5235 /*Lets PNO know that host has determined the regulatory domain*/
5236 tANI_U8 b11dResolved;
5237
5238 /*Channels on which PNO is allowed to scan*/
5239 tANI_U8 ucChannelCount;
5240 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5241
5242 /*Minimum channel time*/
5243 tANI_U16 usActiveMinChTime;
5244
5245 /*Maximum channel time*/
5246 tANI_U16 usActiveMaxChTime;
5247
5248 /*Minimum channel time*/
5249 tANI_U16 usPassiveMinChTime;
5250
5251 /*Maximum channel time*/
5252 tANI_U16 usPassiveMaxChTime;
5253
5254 /*Cb State*/
5255 ePhyChanBondState cbState;
5256
5257} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5258
5259/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005260 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005261 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005262*/
5263typedef PACKED_PRE struct PACKED_POST{
5264
5265 tHalMsgHeader header;
5266 tUpdateScanParams scanParams;
5267} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5268
5269/*
5270 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005271 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005272*/
5273typedef PACKED_PRE struct PACKED_POST{
5274
5275 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305276 tUpdateScanParamsEx scanParams;
5277} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5278
5279/*
5280 Update scan params - sent from host to PNO
5281 to be used during PNO scanning
5282*/
5283typedef PACKED_PRE struct PACKED_POST{
5284
5285 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005286
5287 /*status of the request */
5288 tANI_U32 status;
5289
5290} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5291
5292/*---------------------------------------------------------------------------
5293 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5294 *--------------------------------------------------------------------------*/
5295typedef PACKED_PRE struct PACKED_POST
5296{
5297 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5298 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5299 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5300 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5301} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5302
5303typedef PACKED_PRE struct PACKED_POST
5304{
5305 tHalMsgHeader header;
5306 tHalTxPerTrackingReqParam txPerTrackingParams;
5307} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5308
5309/*---------------------------------------------------------------------------
5310 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5311 *--------------------------------------------------------------------------*/
5312typedef PACKED_PRE struct PACKED_POST
5313{
5314 /* success or failure */
5315 tANI_U32 status;
5316} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5317
5318typedef PACKED_PRE struct PACKED_POST
5319{
5320 tHalMsgHeader header;
5321 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5322} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5323
5324/*---------------------------------------------------------------------------
5325 * WLAN_HAL_TX_PER_HIT_IND
5326 *--------------------------------------------------------------------------*/
5327typedef PACKED_PRE struct PACKED_POST
5328{
5329 tHalMsgHeader header;
5330}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5331
5332/*---------------------------------------------------------------------------
5333 *******************Packet Filtering Definitions Begin*******************
5334 *--------------------------------------------------------------------------*/
5335#define HAL_PROTOCOL_DATA_LEN 8
5336#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5337#define HAL_MAX_NUM_FILTERS 20
5338#define HAL_MAX_CMP_PER_FILTER 10
5339
5340typedef enum
5341{
5342 HAL_RCV_FILTER_TYPE_INVALID,
5343 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5344 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5345 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5346}tHalReceivePacketFilterType;
5347
Jeff Johnson32d95a32012-09-10 13:15:23 -07005348typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005349{
5350 HAL_FILTER_PROTO_TYPE_INVALID,
5351 HAL_FILTER_PROTO_TYPE_MAC,
5352 HAL_FILTER_PROTO_TYPE_ARP,
5353 HAL_FILTER_PROTO_TYPE_IPV4,
5354 HAL_FILTER_PROTO_TYPE_IPV6,
5355 HAL_FILTER_PROTO_TYPE_UDP,
5356 HAL_FILTER_PROTO_TYPE_MAX
5357}tHalRcvPktFltProtocolType;
5358
Jeff Johnson32d95a32012-09-10 13:15:23 -07005359typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005360{
5361 HAL_FILTER_CMP_TYPE_INVALID,
5362 HAL_FILTER_CMP_TYPE_EQUAL,
5363 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5364 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5365 HAL_FILTER_CMP_TYPE_MAX
5366}tHalRcvPktFltCmpFlagType;
5367
Jeff Johnson32d95a32012-09-10 13:15:23 -07005368typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005369{
5370 tANI_U8 protocolLayer;
5371 tANI_U8 cmpFlag;
5372 tANI_U16 dataLength; /* Length of the data to compare */
5373 tANI_U8 dataOffset; /* from start of the respective frame header */
5374 tANI_U8 reserved; /* Reserved field */
5375 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5376 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5377}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5378
5379typedef PACKED_PRE struct PACKED_POST
5380{
5381 tANI_U8 filterId;
5382 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005383 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005384 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005385 tHalRcvPktFilterParams paramsData[1];
5386}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5387
5388typedef PACKED_PRE struct PACKED_POST
5389{
Jeff Johnsone7245742012-09-05 17:12:55 -07005390 tANI_U8 filterId;
5391 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005392 tANI_U8 numParams;
5393 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005394 tANI_U8 bssIdx;
5395 tHalRcvPktFilterParams paramsData[1];
5396}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5397
5398typedef PACKED_PRE struct PACKED_POST
5399{
Jeff Johnson295189b2012-06-20 16:38:30 -07005400 tHalMsgHeader header;
5401 tHalRcvPktFilterCfgType pktFilterCfg;
5402} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5403
Jeff Johnsone7245742012-09-05 17:12:55 -07005404typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005405{
5406 tANI_U8 dataOffset; /* from start of the respective frame header */
5407 tANI_U32 cMulticastAddr;
5408 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005409 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005410} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5411
5412typedef PACKED_PRE struct PACKED_POST
5413{
5414 /* success or failure */
5415 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005416 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005417} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5418
5419typedef PACKED_PRE struct PACKED_POST
5420{
5421 tHalMsgHeader header;
5422 tHalSetPktFilterRspParams pktFilterRspParams;
5423} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5424
Jeff Johnsone7245742012-09-05 17:12:55 -07005425typedef PACKED_PRE struct PACKED_POST
5426{
5427 tANI_U8 bssIdx;
5428} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005429
5430typedef PACKED_PRE struct PACKED_POST
5431{
5432 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005433 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005434} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5435
Jeff Johnsone7245742012-09-05 17:12:55 -07005436
Jeff Johnson295189b2012-06-20 16:38:30 -07005437typedef PACKED_PRE struct PACKED_POST
5438{
5439 tANI_U8 filterId;
5440 tANI_U32 matchCnt;
5441} tHalRcvFltPktMatchCnt;
5442typedef PACKED_PRE struct PACKED_POST
5443{
5444 /* Success or Failure */
5445 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005446 tANI_U32 matchCnt;
5447 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005448 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005449} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5450
5451typedef PACKED_PRE struct PACKED_POST
5452{
5453 tHalMsgHeader header;
5454 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5455} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5456
5457typedef PACKED_PRE struct PACKED_POST
5458{
5459 tANI_U32 status; /* only valid for response message */
5460 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005461 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005462}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5463
5464typedef PACKED_PRE struct PACKED_POST
5465{
5466 tHalMsgHeader header;
5467 tHalRcvFltPktClearParam filterClearParam;
5468} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5469
5470typedef PACKED_PRE struct PACKED_POST
5471{
5472 tHalMsgHeader header;
5473 tHalRcvFltPktClearParam filterClearParam;
5474} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5475
5476typedef PACKED_PRE struct PACKED_POST
5477{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005478 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005479 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005480}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5481
5482typedef PACKED_PRE struct PACKED_POST
5483{
5484 tHalMsgHeader header;
5485 tHalRcvFltMcAddrListType mcAddrList;
5486} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5487
5488typedef PACKED_PRE struct PACKED_POST
5489{
5490 tHalMsgHeader header;
5491 tHalRcvFltPktSetMcListRspType rspParam;
5492} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5493
5494
5495/*---------------------------------------------------------------------------
5496 *******************Packet Filtering Definitions End*******************
5497 *--------------------------------------------------------------------------*/
5498
5499typedef PACKED_PRE struct PACKED_POST
5500{
5501 /* Ignore DTIM */
5502 tANI_U32 uIgnoreDTIM;
5503
5504 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005505 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005506
5507 /* Listen Interval */
5508 tANI_U32 uListenInterval;
5509
5510 /* Broadcast Multicast Filter */
5511 tANI_U32 uBcastMcastFilter;
5512
5513 /* Beacon Early Termination */
5514 tANI_U32 uEnableBET;
5515
5516 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005517 tANI_U32 uBETInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -07005518}tSetPowerParamsType, *tpSetPowerParamsType;
5519
5520typedef PACKED_PRE struct PACKED_POST
5521{
5522 tHalMsgHeader header;
5523 tSetPowerParamsType powerParams;
5524} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5525
5526typedef PACKED_PRE struct PACKED_POST{
5527
5528 tHalMsgHeader header;
5529
5530 /*status of the request */
5531 tANI_U32 status;
5532
5533} tSetPowerParamsResp, *tpSetPowerParamsResp;
5534
5535/*---------------------------------------------------------------------------
5536 ****************Capability bitmap exchange definitions and macros starts*************
5537 *--------------------------------------------------------------------------*/
5538
Anand Kumar012623a2013-01-11 17:00:00 -08005539typedef enum {
5540 MCC = 0,
5541 P2P = 1,
5542 DOT11AC = 2,
5543 SLM_SESSIONIZATION = 3,
5544 DOT11AC_OPMODE = 4,
5545 SAP32STA = 5,
5546 TDLS = 6,
5547 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5548 WLANACTIVE_OFFLOAD = 8,
5549 BEACON_OFFLOAD = 9,
5550 SCAN_OFFLOAD = 10,
5551 ROAM_OFFLOAD = 11,
5552 BCN_MISS_OFFLOAD = 12,
5553 STA_POWERSAVE = 13,
5554 STA_ADVANCED_PWRSAVE = 14,
5555 AP_UAPSD = 15,
5556 AP_DFS = 16,
5557 BLOCKACK = 17,
5558 PHY_ERR = 18,
5559 BCN_FILTER = 19,
5560 RTT = 20,
5561 RATECTRL = 21,
5562 WOW = 22,
5563 MAX_FEATURE_SUPPORTED = 128,
5564} placeHolderInCapBitmap;
5565
Jeff Johnson295189b2012-06-20 16:38:30 -07005566typedef PACKED_PRE struct PACKED_POST{
5567
5568 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005569} tWlanFeatCaps, *tpWlanFeatCaps;
5570
5571typedef PACKED_PRE struct PACKED_POST{
5572
Jeff Johnson32d95a32012-09-10 13:15:23 -07005573 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005574 tWlanFeatCaps wlanFeatCaps;
5575
5576} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5577
Jeff Johnsone7245742012-09-05 17:12:55 -07005578#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5579#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005580#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005581#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
5582
Jeff Johnsone7245742012-09-05 17:12:55 -07005583tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5584
Jeff Johnson295189b2012-06-20 16:38:30 -07005585#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005586 if ((b)<=127) { \
5587 arr_index = (b)/32; \
5588 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005589 (a)->featCaps[arr_index] |= (1<<bit_index); \
5590 } \
5591 }
5592#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005593 if ((b)<=127) { \
5594 arr_index = (b)/32; \
5595 bit_index = (b)%32; \
5596 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005597 } \
5598 }
5599#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005600 if ((b)<=127) { \
5601 arr_index = (b)/32; \
5602 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005603 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005604 } \
5605 }
5606
5607/*---------------------------------------------------------------------------
5608 * WLAN_HAL_WAKE_REASON_IND
5609 *--------------------------------------------------------------------------*/
5610
5611/* status codes to help debug rekey failures */
5612typedef enum
5613{
5614 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5615 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5616 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5617 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5618 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5619 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5620 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5621 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5622 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5623 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5624
5625 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5626} tGTKRekeyStatus;
5627
5628/* wake reason types */
5629typedef enum
5630{
5631 WLAN_HAL_WAKE_REASON_NONE = 0,
5632 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5633 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5634 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5635 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5636 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5637 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5638 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5639} tWakeReasonType;
5640
5641/*
5642 Wake Packet which is saved at tWakeReasonParams.DataStart
5643 This data is sent for any wake reasons that involve a packet-based wakeup :
5644
5645 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5646 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5647 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5648 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5649 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5650
5651 The information is provided to the host for auditing and debug purposes
5652
5653*/
5654
5655/*
5656 Wake reason indication parameters
5657*/
5658typedef PACKED_PRE struct PACKED_POST
5659{
5660 uint32 ulReason; /* see tWakeReasonType */
5661 uint32 ulReasonArg; /* argument specific to the reason type */
5662 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5663 HAL truncates the data (i.e. data packets) this length
5664 will be less than the actual length */
5665 uint32 ulActualDataLen; /* actual length of data */
5666 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5667 see specific wake type */
5668} tWakeReasonParams, *tpWakeReasonParams;
5669
5670/*
5671 Wake reason indication
5672*/
5673typedef PACKED_PRE struct PACKED_POST
5674{
5675 tHalMsgHeader header;
5676 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005677 tANI_U32 uBssIdx : 8;
5678 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005679} tHalWakeReasonInd, *tpHalWakeReasonInd;
5680
5681/*---------------------------------------------------------------------------
5682* WLAN_HAL_GTK_OFFLOAD_REQ
5683*--------------------------------------------------------------------------*/
5684
5685#define HAL_GTK_KEK_BYTES 16
5686#define HAL_GTK_KCK_BYTES 16
5687
5688#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5689
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005690#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5691
Jeff Johnson295189b2012-06-20 16:38:30 -07005692typedef PACKED_PRE struct PACKED_POST
5693{
5694 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005695 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005696 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5697 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005698 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005699} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5700
5701typedef PACKED_PRE struct PACKED_POST
5702{
5703 tHalMsgHeader header;
5704 tHalGtkOffloadReqParams gtkOffloadReqParams;
5705} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5706
5707/*---------------------------------------------------------------------------
5708* WLAN_HAL_GTK_OFFLOAD_RSP
5709*--------------------------------------------------------------------------*/
5710typedef PACKED_PRE struct PACKED_POST
5711{
5712 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005713 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005714} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5715
5716typedef PACKED_PRE struct PACKED_POST
5717{
5718 tHalMsgHeader header;
5719 tHalGtkOffloadRspParams gtkOffloadRspParams;
5720} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5721
5722
5723/*---------------------------------------------------------------------------
5724* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5725*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005726typedef PACKED_PRE struct PACKED_POST
5727{
5728 tANI_U8 bssIdx;
5729
5730} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005731
5732typedef PACKED_PRE struct PACKED_POST
5733{
5734 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005735 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005736} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5737
5738/*---------------------------------------------------------------------------
5739* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5740*--------------------------------------------------------------------------*/
5741typedef PACKED_PRE struct PACKED_POST
5742{
5743 tANI_U32 ulStatus; /* success or failure */
5744 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5745 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5746 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5747 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5748 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005749 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005750} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5751
5752typedef PACKED_PRE struct PACKED_POST
5753{
5754 tHalMsgHeader header;
5755 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5756} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5757
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005758/*---------------------------------------------------------------------------
5759* WLAN_HAL_DHCP_IND
5760*--------------------------------------------------------------------------*/
5761typedef PACKED_PRE struct PACKED_POST
5762{
5763 /*Indicates the device mode which indicates about the DHCP activity */
5764 tANI_U8 device_mode;
5765 tSirMacAddr macAddr;
5766} tDHCPInfo, *tpDHCPInfo;
5767
5768typedef PACKED_PRE struct PACKED_POST
5769{
5770 tHalMsgHeader header;
5771 tANI_U32 status; /* success or failure */
5772} tDHCPIndStatus, *tpDHCPIndstatus;
5773
Jeff Johnson295189b2012-06-20 16:38:30 -07005774/*
5775 Thermal Mitigation mode of operation.
5776 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5777 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5778 reducing transmit power
5779 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5780*/
5781typedef enum
5782{
5783 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5784 HAL_THERMAL_MITIGATION_MODE_0,
5785 HAL_THERMAL_MITIGATION_MODE_1,
5786 HAL_THERMAL_MITIGATION_MODE_2,
5787 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5788}tHalThermalMitigationModeType;
5789//typedef tANI_S16 tHalThermalMitigationModeType;
5790
5791/*
5792 Thermal Mitigation level.
5793 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5794 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5795
5796 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5797 level indicates normal mode of operation
5798 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5799 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5800 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5801 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5802*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005803typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005804{
5805 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5806 HAL_THERMAL_MITIGATION_LEVEL_0,
5807 HAL_THERMAL_MITIGATION_LEVEL_1,
5808 HAL_THERMAL_MITIGATION_LEVEL_2,
5809 HAL_THERMAL_MITIGATION_LEVEL_3,
5810 HAL_THERMAL_MITIGATION_LEVEL_4,
5811 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5812}tHalThermalMitigationLevelType;
5813//typedef tANI_S16 tHalThermalMitigationLevelType;
5814
5815typedef PACKED_PRE struct PACKED_POST
5816{
5817 /* Thermal Mitigation Operation Mode */
5818 tHalThermalMitigationModeType thermalMitMode;
5819
5820 /* Thermal Mitigation Level */
5821 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005822
Jeff Johnson295189b2012-06-20 16:38:30 -07005823}tSetThermalMitgationType, *tpSetThermalMitgationType;
5824
5825/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5826typedef PACKED_PRE struct PACKED_POST
5827{
5828 tHalMsgHeader header;
5829 tSetThermalMitgationType thermalMitParams;
5830} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5831
5832typedef PACKED_PRE struct PACKED_POST{
5833
5834 tHalMsgHeader header;
5835
5836 /*status of the request */
5837 tANI_U32 status;
5838
5839} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5840
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08005841/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
5842provided to FW from Host via periodic messages */
5843typedef PACKED_PRE struct PACKED_POST {
5844 /* TX stats */
5845 uint32 txBytesPushed;
5846 uint32 txPacketsPushed;
5847
5848 /* RX stats */
5849 uint32 rxBytesRcvd;
5850 uint32 rxPacketsRcvd;
5851 uint32 rxTimeTotal;
5852} tStaStatsClassB, *tpStaStatsClassB;
5853
5854typedef PACKED_PRE struct PACKED_POST {
5855
5856 /* Duration over which this stats was collected */
5857 tANI_U32 duration;
5858
5859 /* Per STA Stats */
5860 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
5861} tStatsClassBIndParams, *tpStatsClassBIndParams;
5862
5863typedef PACKED_PRE struct PACKED_POST {
5864
5865 tHalMsgHeader header;
5866
5867 /* Class B Stats */
5868 tStatsClassBIndParams statsClassBIndParams;
5869} tStatsClassBInd, *tpStatsClassBInd;
5870
Jeff Johnson295189b2012-06-20 16:38:30 -07005871#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
5872#pragma pack(pop)
5873#elif defined(__ANI_COMPILER_PRAGMA_PACK)
5874#else
5875#endif
5876
5877#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07005878