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