blob: f3385d0c9bf93179b07aca5abfd8dadad4a7db69 [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 */
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070021
Jeff Johnson295189b2012-06-20 16:38:30 -070022/*==========================================================================
23 *
24 * @file: wlan_hal_msg.h
25 *
26 * @brief: Exports and types for messages sent to HAL from WDI
27 *
28 * @author: Kumar Anand
29 *
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070030 * Copyright (C) 2010, Qualcomm Technologies, Inc.
Jeff Johnson295189b2012-06-20 16:38:30 -070031 * All rights reserved.
32 *
33 *=========================================================================*/
34
35#ifndef _WLAN_HAL_MSG_H_
36#define _WLAN_HAL_MSG_H_
37
38#include "halLegacyPalTypes.h"
39#include "halCompiler.h"
40#include "wlan_qct_dev_defs.h"
41#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080042
Jeff Johnson295189b2012-06-20 16:38:30 -070043/*---------------------------------------------------------------------------
44 API VERSIONING INFORMATION
45
46 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
47 The MAJOR is incremented for major product/architecture changes
48 (and then MINOR/VERSION/REVISION are zeroed)
49 The MINOR is incremented for minor product/architecture changes
50 (and then VERSION/REVISION are zeroed)
51 The VERSION is incremented if a significant API change occurs
52 (and then REVISION is zeroed)
53 The REVISION is incremented if an insignificant API change occurs
54 or if a new API is added
55 All values are in the range 0..255 (ie they are 8-bit values)
56 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070057#define WLAN_HAL_VER_MAJOR 1
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -080058#define WLAN_HAL_VER_MINOR 4
Jeff Johnson295189b2012-06-20 16:38:30 -070059#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080060#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070061
62/*---------------------------------------------------------------------------
63 Commom Type definitons
64 ---------------------------------------------------------------------------*/
65
66//This is to force compiler to use the maximum of an int ( 4 bytes )
67#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070068#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070069
70//Max no. of transmit categories
71#define STACFG_MAX_TC 8
72
73//The maximum value of access category
74#define WLAN_HAL_MAX_AC 4
75
76typedef tANI_U8 tSirMacAddr[6];
77typedef tANI_U8 tHalIpv4Addr[4];
78
79#define HAL_MAC_ADDR_LEN 6
80#define HAL_IPV4_ADDR_LEN 4
81
82#define WALN_HAL_STA_INVALID_IDX 0xFF
83#define WLAN_HAL_BSS_INVALID_IDX 0xFF
84
85//Default Beacon template size
Jeff Johnson32d95a32012-09-10 13:15:23 -070086#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070087
Jeff Johnson32d95a32012-09-10 13:15:23 -070088//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070089#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
90#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
91#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
92#define PARAM_llACOEXIST_CHANGED (1 << 3)
93#define PARAM_llBCOEXIST_CHANGED (1 << 4)
94#define PARAM_llGCOEXIST_CHANGED (1 << 5)
95#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
96#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
97#define PARAM_RIFS_MODE_CHANGED (1<<8)
98#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
99#define PARAM_OBSS_MODE_CHANGED (1<<10)
100#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
101 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)
102
103/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530104#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700105
106/*Version string max length (including NUL) */
107#define WLAN_HAL_VERSION_LENGTH 64
108
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530109#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700110#define CHANNEL_LIST_STATIC 1 /* Occupied channel list remains static */
111#define CHANNEL_LIST_DYNAMIC_INIT 2 /* Occupied channel list can be learnt after init */
112#define CHANNEL_LIST_DYNAMIC_FLUSH 3 /* Occupied channel list can be learnt after flush */
113#define CHANNEL_LIST_DYNAMIC_UPDATE 4 /* Occupied channel list can be learnt after update */
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530114#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
115#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS NUM_RF_CHANNELS
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700116#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 61
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530117#endif
118
Yue Maab3ccfc2013-08-14 17:19:08 -0700119#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
120#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
121
Jeff Johnson295189b2012-06-20 16:38:30 -0700122/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700123typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700124{
125 //Init/De-Init
126 WLAN_HAL_START_REQ = 0,
127 WLAN_HAL_START_RSP = 1,
128 WLAN_HAL_STOP_REQ = 2,
129 WLAN_HAL_STOP_RSP = 3,
130
131 //Scan
132 WLAN_HAL_INIT_SCAN_REQ = 4,
133 WLAN_HAL_INIT_SCAN_RSP = 5,
134 WLAN_HAL_START_SCAN_REQ = 6,
135 WLAN_HAL_START_SCAN_RSP = 7 ,
136 WLAN_HAL_END_SCAN_REQ = 8,
137 WLAN_HAL_END_SCAN_RSP = 9,
138 WLAN_HAL_FINISH_SCAN_REQ = 10,
139 WLAN_HAL_FINISH_SCAN_RSP = 11,
140
141 // HW STA configuration/deconfiguration
142 WLAN_HAL_CONFIG_STA_REQ = 12,
143 WLAN_HAL_CONFIG_STA_RSP = 13,
144 WLAN_HAL_DELETE_STA_REQ = 14,
145 WLAN_HAL_DELETE_STA_RSP = 15,
146 WLAN_HAL_CONFIG_BSS_REQ = 16,
147 WLAN_HAL_CONFIG_BSS_RSP = 17,
148 WLAN_HAL_DELETE_BSS_REQ = 18,
149 WLAN_HAL_DELETE_BSS_RSP = 19,
150
151 //Infra STA asscoiation
152 WLAN_HAL_JOIN_REQ = 20,
153 WLAN_HAL_JOIN_RSP = 21,
154 WLAN_HAL_POST_ASSOC_REQ = 22,
155 WLAN_HAL_POST_ASSOC_RSP = 23,
156
157 //Security
158 WLAN_HAL_SET_BSSKEY_REQ = 24,
159 WLAN_HAL_SET_BSSKEY_RSP = 25,
160 WLAN_HAL_SET_STAKEY_REQ = 26,
161 WLAN_HAL_SET_STAKEY_RSP = 27,
162 WLAN_HAL_RMV_BSSKEY_REQ = 28,
163 WLAN_HAL_RMV_BSSKEY_RSP = 29,
164 WLAN_HAL_RMV_STAKEY_REQ = 30,
165 WLAN_HAL_RMV_STAKEY_RSP = 31,
166
167 //Qos Related
168 WLAN_HAL_ADD_TS_REQ = 32,
169 WLAN_HAL_ADD_TS_RSP = 33,
170 WLAN_HAL_DEL_TS_REQ = 34,
171 WLAN_HAL_DEL_TS_RSP = 35,
172 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
173 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
174 WLAN_HAL_ADD_BA_REQ = 38,
175 WLAN_HAL_ADD_BA_RSP = 39,
176 WLAN_HAL_DEL_BA_REQ = 40,
177 WLAN_HAL_DEL_BA_RSP = 41,
178
179 WLAN_HAL_CH_SWITCH_REQ = 42,
180 WLAN_HAL_CH_SWITCH_RSP = 43,
181 WLAN_HAL_SET_LINK_ST_REQ = 44,
182 WLAN_HAL_SET_LINK_ST_RSP = 45,
183 WLAN_HAL_GET_STATS_REQ = 46,
184 WLAN_HAL_GET_STATS_RSP = 47,
185 WLAN_HAL_UPDATE_CFG_REQ = 48,
186 WLAN_HAL_UPDATE_CFG_RSP = 49,
187
188 WLAN_HAL_MISSED_BEACON_IND = 50,
189 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
190 WLAN_HAL_MIC_FAILURE_IND = 52,
191 WLAN_HAL_FATAL_ERROR_IND = 53,
192 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700193
Jeff Johnson295189b2012-06-20 16:38:30 -0700194 //NV Interface
195 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
196 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
197
198 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
199 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
200 WLAN_HAL_TRIGGER_BA_REQ = 59,
201 WLAN_HAL_TRIGGER_BA_RSP = 60,
202 WLAN_HAL_UPDATE_BEACON_REQ = 61,
203 WLAN_HAL_UPDATE_BEACON_RSP = 62,
204 WLAN_HAL_SEND_BEACON_REQ = 63,
205 WLAN_HAL_SEND_BEACON_RSP = 64,
206
207 WLAN_HAL_SET_BCASTKEY_REQ = 65,
208 WLAN_HAL_SET_BCASTKEY_RSP = 66,
209 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
210 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
211 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700212
Jeff Johnson295189b2012-06-20 16:38:30 -0700213 // PTT interface support
214 WLAN_HAL_PROCESS_PTT_REQ = 70,
215 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700216
Jeff Johnson295189b2012-06-20 16:38:30 -0700217 // BTAMP related events
218 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
219 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
220 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
221 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
222
223 WLAN_HAL_ENTER_IMPS_REQ = 76,
224 WLAN_HAL_EXIT_IMPS_REQ = 77,
225 WLAN_HAL_ENTER_BMPS_REQ = 78,
226 WLAN_HAL_EXIT_BMPS_REQ = 79,
227 WLAN_HAL_ENTER_UAPSD_REQ = 80,
228 WLAN_HAL_EXIT_UAPSD_REQ = 81,
229 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
230 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
231 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
232 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
233 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
234 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
235 WLAN_HAL_ENTER_WOWL_REQ = 88,
236 WLAN_HAL_EXIT_WOWL_REQ = 89,
237 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
238 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
239 WLAN_HAL_GET_RSSI_REQ = 92,
240 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
241 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
242
243 WLAN_HAL_ENTER_IMPS_RSP = 95,
244 WLAN_HAL_EXIT_IMPS_RSP = 96,
245 WLAN_HAL_ENTER_BMPS_RSP = 97,
246 WLAN_HAL_EXIT_BMPS_RSP = 98,
247 WLAN_HAL_ENTER_UAPSD_RSP = 99,
248 WLAN_HAL_EXIT_UAPSD_RSP = 100,
249 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
250 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
251 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
252 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
253 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
254 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
255 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
256 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
257 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
258 WLAN_HAL_ENTER_WOWL_RSP = 110,
259 WLAN_HAL_EXIT_WOWL_RSP = 111,
260 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
261 WLAN_HAL_GET_RSSI_RSP = 113,
262 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
263
264 //11k related events
265 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
266 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
267
268 //11R related msgs
269 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
270 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
271
272 //P2P WLAN_FEATURE_P2P
273 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
274 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700275
Jeff Johnson295189b2012-06-20 16:38:30 -0700276 //WLAN Dump commands
277 WLAN_HAL_DUMP_COMMAND_REQ = 121,
278 WLAN_HAL_DUMP_COMMAND_RSP = 122,
279
Jeff Johnsone7245742012-09-05 17:12:55 -0700280 //OEM_DATA FEATURE SUPPORT
281 WLAN_HAL_START_OEM_DATA_REQ = 123,
282 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700283
284 //ADD SELF STA REQ and RSP
285 WLAN_HAL_ADD_STA_SELF_REQ = 125,
286 WLAN_HAL_ADD_STA_SELF_RSP = 126,
287
288 //DEL SELF STA SUPPORT
289 WLAN_HAL_DEL_STA_SELF_REQ = 127,
290 WLAN_HAL_DEL_STA_SELF_RSP = 128,
291
292 // Coex Indication
293 WLAN_HAL_COEX_IND = 129,
294
Jeff Johnson32d95a32012-09-10 13:15:23 -0700295 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700296 WLAN_HAL_OTA_TX_COMPL_IND = 130,
297
298 //Host Suspend/resume messages
299 WLAN_HAL_HOST_SUSPEND_IND = 131,
300 WLAN_HAL_HOST_RESUME_REQ = 132,
301 WLAN_HAL_HOST_RESUME_RSP = 133,
302
303 WLAN_HAL_SET_TX_POWER_REQ = 134,
304 WLAN_HAL_SET_TX_POWER_RSP = 135,
305 WLAN_HAL_GET_TX_POWER_REQ = 136,
306 WLAN_HAL_GET_TX_POWER_RSP = 137,
307
308 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700309
Jeff Johnson295189b2012-06-20 16:38:30 -0700310 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
311 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
312 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
313 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
314 WLAN_HAL_RADAR_DETECT_IND = 143,
315 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
316 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700317 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700318
319 /*PNO messages*/
320 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
321 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
322 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
323 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
324 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
325 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700326 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700327
328 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
329 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
330 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700331
Jeff Johnson295189b2012-06-20 16:38:30 -0700332 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700333 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700334
335 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700336 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700337 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700338 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700339 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700340 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
341 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700342 * Host and Riva code is in sync*/
343 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700344
Jeff Johnson295189b2012-06-20 16:38:30 -0700345 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
346 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
347
348 WLAN_HAL_TSM_STATS_REQ = 168,
349 WLAN_HAL_TSM_STATS_RSP = 169,
350
351 // wake reason indication (WOW)
352 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700353 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700354 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
355 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
356 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
357 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
358
359 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
360 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
361 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
362
363 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
364 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
365
Anand Kumar012623a2013-01-11 17:00:00 -0800366 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
367 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800368
Anand Kumar012623a2013-01-11 17:00:00 -0800369 WLAN_HAL_P2P_NOA_START_IND = 184,
370
371 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
372 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700373
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800374 WLAN_HAL_CLASS_B_STATS_IND = 187,
375 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800376 WLAN_HAL_DHCP_START_IND = 189,
377 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700378 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
379 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530380 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
381 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700382
383 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
384 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
385 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
386
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530387 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
388 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
389 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
390 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
391 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700392 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Yue Maab3ccfc2013-08-14 17:19:08 -0700393 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
394 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
395 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530396
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800397 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700398}tHalHostMsgType;
399
Jeff Johnsone7245742012-09-05 17:12:55 -0700400/* Enumeration for Version */
401typedef enum
402{
403 WLAN_HAL_MSG_VERSION0 = 0,
404 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800405 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
406 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700407}tHalHostMsgVersion;
408
Jeff Johnson295189b2012-06-20 16:38:30 -0700409/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700410typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700411{
412 eANI_BOOLEAN_FALSE = 0,
413 eANI_BOOLEAN_TRUE,
414 eANI_BOOLEAN_OFF = 0,
415 eANI_BOOLEAN_ON = 1,
416 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
417} eAniBoolean;
418
419typedef enum
420{
421 eDRIVER_TYPE_PRODUCTION = 0,
422 eDRIVER_TYPE_MFG = 1,
423 eDRIVER_TYPE_DVT = 2,
424 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
425} tDriverType;
426
427typedef enum
428{
429 HAL_STOP_TYPE_SYS_RESET,
430 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
431 HAL_STOP_TYPE_RF_KILL,
432 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
433}tHalStopType;
434
435typedef enum
436{
437 eHAL_SYS_MODE_NORMAL,
438 eHAL_SYS_MODE_LEARN,
439 eHAL_SYS_MODE_SCAN,
440 eHAL_SYS_MODE_PROMISC,
441 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700442 eHAL_SYS_MODE_ROAM_SCAN,
443 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700444 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700445 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
446} eHalSysMode;
447
448typedef enum
449{
450 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
451 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
452 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
453 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700454#ifdef WLAN_FEATURE_11AC
455 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
456 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
457 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
458 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
459 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
460 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
461 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
462#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700463 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
464}ePhyChanBondState;
465
466// Spatial Multiplexing(SM) Power Save mode
467typedef enum eSirMacHTMIMOPowerSaveState
468{
469 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
470 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
471 eSIR_HT_MIMO_PS_NA = 2, // reserved
472 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
473 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
474} tSirMacHTMIMOPowerSaveState;
475
476/* each station added has a rate mode which specifies the sta attributes */
477typedef enum eStaRateMode {
478 eSTA_TAURUS = 0,
479 eSTA_TITAN,
480 eSTA_POLARIS,
481 eSTA_11b,
482 eSTA_11bg,
483 eSTA_11a,
484 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700485#ifdef WLAN_FEATURE_11AC
486 eSTA_11ac,
487#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700488 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
489} tStaRateMode, *tpStaRateMode;
490
491#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
492#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
493#define SIR_NUM_POLARIS_RATES 3 //72,96,108
494
495#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
496
497
498typedef enum eSirBssType
499{
500 eSIR_INFRASTRUCTURE_MODE,
501 eSIR_INFRA_AP_MODE, //Added for softAP support
502 eSIR_IBSS_MODE,
503 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
504 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
505 eSIR_AUTO_MODE,
506 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
507} tSirBssType;
508
509typedef enum eSirNwType
510{
511 eSIR_11A_NW_TYPE,
512 eSIR_11B_NW_TYPE,
513 eSIR_11G_NW_TYPE,
514 eSIR_11N_NW_TYPE,
515 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
516} tSirNwType;
517
518typedef tANI_U16 tSirMacBeaconInterval;
519
520#define SIR_MAC_RATESET_EID_MAX 12
521
522typedef enum eSirMacHTOperatingMode
523{
524 eSIR_HT_OP_MODE_PURE, // No Protection
525 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
526 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
527 eSIR_HT_OP_MODE_MIXED, // Protection is required
528 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
529} tSirMacHTOperatingMode;
530
Jeff Johnson295189b2012-06-20 16:38:30 -0700531/// Encryption type enum used with peer
532typedef enum eAniEdType
533{
534 eSIR_ED_NONE,
535 eSIR_ED_WEP40,
536 eSIR_ED_WEP104,
537 eSIR_ED_TKIP,
538 eSIR_ED_CCMP,
539 eSIR_ED_WPI,
540 eSIR_ED_AES_128_CMAC,
541 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
542} tAniEdType;
543
544#define WLAN_MAX_KEY_RSC_LEN 16
545#define WLAN_WAPI_KEY_RSC_LEN 16
546
547/// MAX key length when ULA is used
548#define SIR_MAC_MAX_KEY_LENGTH 32
549#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
550
551/// Enum to specify whether key is used
552/// for TX only, RX only or both
553typedef enum eAniKeyDirection
554{
555 eSIR_TX_ONLY,
556 eSIR_RX_ONLY,
557 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700558 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700559 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
560} tAniKeyDirection;
561
562typedef enum eAniWepType
563{
564 eSIR_WEP_STATIC,
565 eSIR_WEP_DYNAMIC,
566 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
567} tAniWepType;
568
569typedef enum eSriLinkState {
570
571 eSIR_LINK_IDLE_STATE = 0,
572 eSIR_LINK_PREASSOC_STATE = 1,
573 eSIR_LINK_POSTASSOC_STATE = 2,
574 eSIR_LINK_AP_STATE = 3,
575 eSIR_LINK_IBSS_STATE = 4,
576
577 /* BT-AMP Case */
578 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
579 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
580 eSIR_LINK_BTAMP_AP_STATE = 7,
581 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700582
Jeff Johnson295189b2012-06-20 16:38:30 -0700583 /* Reserved for HAL Internal Use */
584 eSIR_LINK_LEARN_STATE = 9,
585 eSIR_LINK_SCAN_STATE = 10,
586 eSIR_LINK_FINISH_SCAN_STATE = 11,
587 eSIR_LINK_INIT_CAL_STATE = 12,
588 eSIR_LINK_FINISH_CAL_STATE = 13,
589#ifdef WLAN_FEATURE_P2P
590 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530591 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700592#endif
593 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
594} tSirLinkState;
595
596typedef enum
597{
598 HAL_SUMMARY_STATS_INFO = 0x00000001,
599 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
600 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
601 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
602 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
603 HAL_PER_STA_STATS_INFO = 0x00000020
604}eHalStatsMask;
605
606/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700607typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700608{
609 BTAMP_EVENT_CONNECTION_START,
610 BTAMP_EVENT_CONNECTION_STOP,
611 BTAMP_EVENT_CONNECTION_TERMINATED,
612 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
613} tBtAmpEventType;
614
615//***************************************************************
616
617
618/*******************PE Statistics*************************/
619typedef enum
620{
621 PE_SUMMARY_STATS_INFO = 0x00000001,
622 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
623 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
624 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
625 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
626 PE_PER_STA_STATS_INFO = 0x00000020,
627 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
628}ePEStatsMask;
629
630/*---------------------------------------------------------------------------
631 Message definitons - All the messages below need to be packed
632 ---------------------------------------------------------------------------*/
633
634#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
635#pragma pack(push, 1)
636#elif defined(__ANI_COMPILER_PRAGMA_PACK)
637#pragma pack(1)
638#else
639#endif
640
641/// Definition for HAL API Version.
642typedef PACKED_PRE struct PACKED_POST
643{
644 tANI_U8 revision;
645 tANI_U8 version;
646 tANI_U8 minor;
647 tANI_U8 major;
648} tWcnssWlanVersion, *tpWcnssWlanVersion;
649
650/// Definition for Encryption Keys
651typedef PACKED_PRE struct PACKED_POST
652{
653 tANI_U8 keyId;
654 tANI_U8 unicast; // 0 for multicast
655 tAniKeyDirection keyDirection;
656 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
657 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
658 tANI_U16 keyLength;
659 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
660} tSirKeys, *tpSirKeys;
661
662
663//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
664typedef PACKED_PRE struct PACKED_POST
665{
666 /*STA Index*/
667 tANI_U16 staIdx;
668
669 /*Encryption Type used with peer*/
670 tAniEdType encType;
671
672 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700673 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700674
675 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
676 tANI_U8 defWEPIdx;
677
Jeff Johnson295189b2012-06-20 16:38:30 -0700678 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700679 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
680
Jeff Johnson295189b2012-06-20 16:38:30 -0700681 /*Control for Replay Count, 1= Single TID based replay count on Tx
682 0 = Per TID based replay count on TX */
683 tANI_U8 singleTidRc;
684
685} tSetStaKeyParams, *tpSetStaKeyParams;
686
687
688
689/* 4-byte control message header used by HAL*/
690typedef PACKED_PRE struct PACKED_POST
691{
Jeff Johnsone7245742012-09-05 17:12:55 -0700692 tHalHostMsgType msgType:16;
693 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700694 tANI_U32 msgLen;
695} tHalMsgHeader, *tpHalMsgHeader;
696
697/* Config format required by HAL for each CFG item*/
698typedef PACKED_PRE struct PACKED_POST
699{
700 /* Cfg Id. The Id required by HAL is exported by HAL
701 * in shared header file between UMAC and HAL.*/
702 tANI_U16 uCfgId;
703
Jeff Johnson32d95a32012-09-10 13:15:23 -0700704 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700705 * in the TLV format.*/
706 tANI_U16 uCfgLen;
707
708 /* Padding bytes for unaligned address's */
709 tANI_U16 uCfgPadBytes;
710
711 /* Reserve bytes for making cfgVal to align address */
712 tANI_U16 uCfgReserve;
713
714 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
715 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
716} tHalCfg, *tpHalCfg;
717
718/*---------------------------------------------------------------------------
719 WLAN_HAL_START_REQ
720---------------------------------------------------------------------------*/
721
722typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
723{
724 /* Drive Type - Production or FTM etc */
725 tDriverType driverType;
726
727 /*Length of the config buffer*/
728 tANI_U32 uConfigBufferLen;
729
Jeff Johnson32d95a32012-09-10 13:15:23 -0700730 /* Following this there is a TLV formatted buffer of length
731 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700732 * The TLV is expected to be formatted like this:
733 * 0 15 31 31+CFG_LEN-1 length-1
734 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
735 */
736} tHalMacStartParameters, *tpHalMacStartParameters;
737
738typedef PACKED_PRE struct PACKED_POST
739{
740 /* Note: The length specified in tHalMacStartReqMsg messages should be
741 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
742 tHalMsgHeader header;
743 tHalMacStartParameters startReqParams;
744} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
745
746/*---------------------------------------------------------------------------
747 WLAN_HAL_START_RSP
748---------------------------------------------------------------------------*/
749
750typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
751{
752 /*success or failure */
753 tANI_U16 status;
754
755 /*Max number of STA supported by the device*/
756 tANI_U8 ucMaxStations;
757
758 /*Max number of BSS supported by the device*/
759 tANI_U8 ucMaxBssids;
760
761 /*API Version */
762 tWcnssWlanVersion wcnssWlanVersion;
763
764 /*CRM build information */
765 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
766
767 /*hardware/chipset/misc version information */
768 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
769
770} tHalMacStartRspParams, *tpHalMacStartRspParams;
771
772typedef PACKED_PRE struct PACKED_POST
773{
774 tHalMsgHeader header;
775 tHalMacStartRspParams startRspParams;
776} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
777
778/*---------------------------------------------------------------------------
779 WLAN_HAL_STOP_REQ
780---------------------------------------------------------------------------*/
781
782typedef PACKED_PRE struct PACKED_POST
783{
784 /*The reason for which the device is being stopped*/
785 tHalStopType reason;
786
787}tHalMacStopReqParams, *tpHalMacStopReqParams;
788
789typedef PACKED_PRE struct PACKED_POST
790{
791 tHalMsgHeader header;
792 tHalMacStopReqParams stopReqParams;
793} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
794
795/*---------------------------------------------------------------------------
796 WLAN_HAL_STOP_RSP
797---------------------------------------------------------------------------*/
798
799typedef PACKED_PRE struct PACKED_POST
800{
801 /*success or failure */
802 tANI_U32 status;
803
804}tHalMacStopRspParams, *tpHalMacStopRspParams;
805
806typedef PACKED_PRE struct PACKED_POST
807{
808 tHalMsgHeader header;
809 tHalMacStopRspParams stopRspParams;
810} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
811
812/*---------------------------------------------------------------------------
813 WLAN_HAL_UPDATE_CFG_REQ
814---------------------------------------------------------------------------*/
815
816typedef PACKED_PRE struct PACKED_POST
817{
818 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
819 tANI_U32 uConfigBufferLen;
820
Jeff Johnson32d95a32012-09-10 13:15:23 -0700821 /* Following this there is a TLV formatted buffer of length
822 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700823 * The TLV is expected to be formatted like this:
824 * 0 15 31 31+CFG_LEN-1 length-1
825 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
826 */
827} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
828
829typedef PACKED_PRE struct PACKED_POST
830{
831 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
832 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
833 tHalMsgHeader header;
834 tHalUpdateCfgReqParams updateCfgReqParams;
835} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
836
837/*---------------------------------------------------------------------------
838 WLAN_HAL_UPDATE_CFG_RSP
839---------------------------------------------------------------------------*/
840
841typedef PACKED_PRE struct PACKED_POST
842{
843 /* success or failure */
844 tANI_U32 status;
845
846}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
847
848typedef PACKED_PRE struct PACKED_POST
849{
850 tHalMsgHeader header;
851 tHalUpdateCfgRspParams updateCfgRspParams;
852} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
853
854/*---------------------------------------------------------------------------
855 WLAN_HAL_INIT_SCAN_REQ
856---------------------------------------------------------------------------*/
857
858/// Frame control field format (2 bytes)
859typedef __ani_attr_pre_packed struct sSirMacFrameCtl
860{
861
862#ifndef ANI_LITTLE_BIT_ENDIAN
863
864 tANI_U8 subType :4;
865 tANI_U8 type :2;
866 tANI_U8 protVer :2;
867
868 tANI_U8 order :1;
869 tANI_U8 wep :1;
870 tANI_U8 moreData :1;
871 tANI_U8 powerMgmt :1;
872 tANI_U8 retry :1;
873 tANI_U8 moreFrag :1;
874 tANI_U8 fromDS :1;
875 tANI_U8 toDS :1;
876
877#else
878
879 tANI_U8 protVer :2;
880 tANI_U8 type :2;
881 tANI_U8 subType :4;
882
883 tANI_U8 toDS :1;
884 tANI_U8 fromDS :1;
885 tANI_U8 moreFrag :1;
886 tANI_U8 retry :1;
887 tANI_U8 powerMgmt :1;
888 tANI_U8 moreData :1;
889 tANI_U8 wep :1;
890 tANI_U8 order :1;
891
892#endif
893
894} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
895
896/// Sequence control field
897typedef __ani_attr_pre_packed struct sSirMacSeqCtl
898{
899 tANI_U8 fragNum : 4;
900 tANI_U8 seqNumLo : 4;
901 tANI_U8 seqNumHi : 8;
902} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
903
904/// Management header format
905typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
906{
907 tSirMacFrameCtl fc;
908 tANI_U8 durationLo;
909 tANI_U8 durationHi;
910 tANI_U8 da[6];
911 tANI_U8 sa[6];
912 tANI_U8 bssId[6];
913 tSirMacSeqCtl seqControl;
914} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
915
916/// Scan Entry to hold active BSS idx's
917typedef __ani_attr_pre_packed struct sSirScanEntry
918{
919 tANI_U8 bssIdx[HAL_NUM_BSSID];
920 tANI_U8 activeBSScnt;
921}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
922
923typedef PACKED_PRE struct PACKED_POST {
924
925 /*LEARN - AP Role
926 SCAN - STA Role*/
927 eHalSysMode scanMode;
928
929 /*BSSID of the BSS*/
930 tSirMacAddr bssid;
931
932 /*Whether BSS needs to be notified*/
933 tANI_U8 notifyBss;
934
935 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
936 CTS to Self). Must always be a valid frame type.*/
937 tANI_U8 frameType;
938
939 /*UMAC has the option of passing the MAC frame to be used for notifying
940 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
941 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
942 frameType.*/
943 tANI_U8 frameLength;
944
Jeff Johnson32d95a32012-09-10 13:15:23 -0700945 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700946 is non-zero. */
947 tSirMacMgmtHdr macMgmtHdr;
948
949 /*Entry to hold number of active BSS idx's*/
950 tSirScanEntry scanEntry;
951
952} tInitScanParams, * tpInitScanParams;
953
954typedef PACKED_PRE struct PACKED_POST
955{
956 tHalMsgHeader header;
957 tInitScanParams initScanParams;
958} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
959
960typedef PACKED_PRE struct PACKED_POST {
961
962 /*LEARN - AP Role
963 SCAN - STA Role*/
964 eHalSysMode scanMode;
965
966 /*BSSID of the BSS*/
967 tSirMacAddr bssid;
968
969 /*Whether BSS needs to be notified*/
970 tANI_U8 notifyBss;
971
972 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
973 CTS to Self). Must always be a valid frame type.*/
974 tANI_U8 frameType;
975
976 /*UMAC has the option of passing the MAC frame to be used for notifying
977 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
978 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
979 frameType.*/
980 tANI_U8 frameLength;
981
Jeff Johnson32d95a32012-09-10 13:15:23 -0700982 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700983 is non-zero. */
984 tSirMacMgmtHdr macMgmtHdr;
985
986 /*Entry to hold number of active BSS idx's*/
987 tSirScanEntry scanEntry;
988
989 /* Single NoA usage in Scanning */
990 tANI_U8 useNoA;
991
992 /* Indicates the scan duration (in ms) */
993 tANI_U16 scanDuration;
994
995} tInitScanConParams, * tpInitScanConParams;
996
997typedef PACKED_PRE struct PACKED_POST
998{
999 tHalMsgHeader header;
1000 tInitScanConParams initScanParams;
1001} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1002
1003
1004/*---------------------------------------------------------------------------
1005 WLAN_HAL_INIT_SCAN_RSP
1006---------------------------------------------------------------------------*/
1007
1008typedef PACKED_PRE struct PACKED_POST
1009{
1010 /*success or failure */
1011 tANI_U32 status;
1012
1013}tHalInitScanRspParams, *tpHalInitScanRspParams;
1014
1015typedef PACKED_PRE struct PACKED_POST
1016{
1017 tHalMsgHeader header;
1018 tHalInitScanRspParams initScanRspParams;
1019} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1020
1021/*---------------------------------------------------------------------------
1022 WLAN_HAL_START_SCAN_REQ
1023---------------------------------------------------------------------------*/
1024
Jeff Johnson32d95a32012-09-10 13:15:23 -07001025typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001026{
1027 /*Indicates the channel to scan*/
1028 tANI_U8 scanChannel;
1029
1030 } tStartScanParams, * tpStartScanParams;
1031
1032typedef PACKED_PRE struct PACKED_POST
1033{
1034 tHalMsgHeader header;
1035 tStartScanParams startScanParams;
1036} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1037
1038/*---------------------------------------------------------------------------
1039 WLAN_HAL_START_SCAN_RSP
1040---------------------------------------------------------------------------*/
1041
1042typedef PACKED_PRE struct PACKED_POST
1043{
1044 /*success or failure */
1045 tANI_U32 status;
1046
1047 tANI_U32 startTSF[2];
1048 tPowerdBm txMgmtPower;
1049
1050}tHalStartScanRspParams, *tpHalStartScanRspParams;
1051
1052typedef PACKED_PRE struct PACKED_POST
1053{
1054 tHalMsgHeader header;
1055 tHalStartScanRspParams startScanRspParams;
1056} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1057
1058/*---------------------------------------------------------------------------
1059 WLAN_HAL_END_SCAN_REQ
1060---------------------------------------------------------------------------*/
1061
1062typedef PACKED_PRE struct PACKED_POST
1063{
1064 /*Indicates the channel to stop scanning. Not used really. But retained
1065 for symmetry with "start Scan" message. It can also help in error
1066 check if needed.*/
1067 tANI_U8 scanChannel;
1068
1069} tEndScanParams, *tpEndScanParams;
1070
1071typedef PACKED_PRE struct PACKED_POST
1072{
1073 tHalMsgHeader header;
1074 tEndScanParams endScanParams;
1075} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1076
1077/*---------------------------------------------------------------------------
1078 WLAN_HAL_END_SCAN_RSP
1079---------------------------------------------------------------------------*/
1080
1081typedef PACKED_PRE struct PACKED_POST
1082{
1083 /*success or failure */
1084 tANI_U32 status;
1085
1086}tHalEndScanRspParams, *tpHalEndScanRspParams;
1087
1088typedef PACKED_PRE struct PACKED_POST
1089{
1090 tHalMsgHeader header;
1091 tHalEndScanRspParams endScanRspParams;
1092} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1093
1094/*---------------------------------------------------------------------------
1095 WLAN_HAL_FINISH_SCAN_REQ
1096---------------------------------------------------------------------------*/
1097
1098typedef PACKED_PRE struct PACKED_POST
1099{
1100 /* Identifies the operational state of the AP/STA
1101 * LEARN - AP Role SCAN - STA Role */
1102 eHalSysMode scanMode;
1103
1104 /*Operating channel to tune to.*/
1105 tANI_U8 currentOperChannel;
1106
1107 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1108 40 MHz extension channel in combination with the control channel*/
1109 ePhyChanBondState cbState;
1110
1111 /*BSSID of the BSS*/
1112 tSirMacAddr bssid;
1113
1114 /*Whether BSS needs to be notified*/
1115 tANI_U8 notifyBss;
1116
1117 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1118 CTS to Self). Must always be a valid frame type.*/
1119 tANI_U8 frameType;
1120
1121 /*UMAC has the option of passing the MAC frame to be used for notifying
1122 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1123 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1124 frameType.*/
1125 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001126
1127 /*Following the framelength there is a MAC frame buffer if frameLength
1128 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001129 tSirMacMgmtHdr macMgmtHdr;
1130
1131 /*Entry to hold number of active BSS idx's*/
1132 tSirScanEntry scanEntry;
1133
1134} tFinishScanParams, *tpFinishScanParams;
1135
1136typedef PACKED_PRE struct PACKED_POST
1137{
1138 tHalMsgHeader header;
1139 tFinishScanParams finishScanParams;
1140} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1141
1142/*---------------------------------------------------------------------------
1143 WLAN_HAL_FINISH_SCAN_RSP
1144---------------------------------------------------------------------------*/
1145
1146typedef PACKED_PRE struct PACKED_POST
1147{
1148 /*success or failure */
1149 tANI_U32 status;
1150
1151}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1152
1153typedef PACKED_PRE struct PACKED_POST
1154{
1155 tHalMsgHeader header;
1156 tHalFinishScanRspParams finishScanRspParams;
1157} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1158
1159/*---------------------------------------------------------------------------
1160 WLAN_HAL_CONFIG_STA_REQ
1161---------------------------------------------------------------------------*/
1162
1163typedef PACKED_PRE struct PACKED_POST {
1164 /*
1165 * For Self STA Entry: this represents Self Mode.
1166 * For Peer Stations, this represents the mode of the peer.
1167 * On Station:
1168 * --this mode is updated when PE adds the Self Entry.
1169 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1170 * ON AP:
1171 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1172 * to indicate the self mode of the AP.
1173 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1174 */
1175
1176 tStaRateMode opRateMode;
1177 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1178 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1179 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1180 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1181 tANI_U16 reserved;
1182
1183 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1184 //First 26 bits are reserved for those Titan rates and
1185 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1186 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1187
1188 /*
1189 * 0-76 bits used, remaining reserved
1190 * bits 0-15 and 32 should be set.
1191 */
1192 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1193
1194 /*
1195 * RX Highest Supported Data Rate defines the highest data
1196 * rate that the STA is able to receive, in unites of 1Mbps.
1197 * This value is derived from "Supported MCS Set field" inside
1198 * the HT capability element.
1199 */
1200 tANI_U16 rxHighestDataRate;
1201
1202} tSirSupportedRates, *tpSirSupportedRates;
1203
1204typedef PACKED_PRE struct PACKED_POST
1205{
1206 /*BSSID of STA*/
1207 tSirMacAddr bssId;
1208
1209 /*ASSOC ID, as assigned by UMAC*/
1210 tANI_U16 assocId;
1211
1212 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1213 tANI_U8 staType;
1214
1215 /*Short Preamble Supported.*/
1216 tANI_U8 shortPreambleSupported;
1217
1218 /*MAC Address of STA*/
1219 tSirMacAddr staMac;
1220
1221 /*Listen interval of the STA*/
1222 tANI_U16 listenInterval;
1223
1224 /*Support for 11e/WMM*/
1225 tANI_U8 wmmEnabled;
1226
1227 /*11n HT capable STA*/
1228 tANI_U8 htCapable;
1229
1230 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1231 tANI_U8 txChannelWidthSet;
1232
1233 /*RIFS mode 0 - NA, 1 - Allowed */
1234 tANI_U8 rifsMode;
1235
Jeff Johnson32d95a32012-09-10 13:15:23 -07001236 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001237 0 - No Support, 1 - Supported
1238 SG - there is global field */
1239 tANI_U8 lsigTxopProtection;
1240
1241 /*Max Ampdu Size supported by STA. TPE programming.
1242 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1243 tANI_U8 maxAmpduSize;
1244
1245 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1246 tANI_U8 maxAmpduDensity;
1247
1248 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1249 tANI_U8 maxAmsduSize;
1250
1251 /*Short GI support for 40Mhz packets*/
1252 tANI_U8 fShortGI40Mhz;
1253
1254 /*Short GI support for 20Mhz packets*/
1255 tANI_U8 fShortGI20Mhz;
1256
Jeff Johnson295189b2012-06-20 16:38:30 -07001257 /*Robust Management Frame (RMF) enabled/disabled*/
1258 tANI_U8 rmfEnabled;
1259
1260 /* The unicast encryption type in the association */
1261 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001262
1263 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001264 will set this flag in case of RE-ASSOC, where we want to reuse the old
1265 STA ID. 0 = Add, 1 = Update*/
1266 tANI_U8 action;
1267
1268 /*U-APSD Flags: 1b per AC. Encoded as follows:
1269 b7 b6 b5 b4 b3 b2 b1 b0 =
1270 X X X X BE BK VI VO */
1271 tANI_U8 uAPSD;
1272
1273 /*Max SP Length*/
1274 tANI_U8 maxSPLen;
1275
1276 /*11n Green Field preamble support
1277 0 - Not supported, 1 - Supported */
1278 tANI_U8 greenFieldCapable;
1279
1280 /*MIMO Power Save mode*/
1281 tSirMacHTMIMOPowerSaveState mimoPS;
1282
1283 /*Delayed BA Support*/
1284 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001285
Jeff Johnson295189b2012-06-20 16:38:30 -07001286 /*Max AMPDU duration in 32us*/
1287 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001288
Jeff Johnson295189b2012-06-20 16:38:30 -07001289 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1290 it to 0 if AP does not support it. This indication is sent to HAL and
1291 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1292 tANI_U8 fDsssCckMode40Mhz;
1293
1294 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1295 Retained for backward compalibity with existing HAL code*/
1296 tANI_U8 staIdx;
1297
1298 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1299 Retained for backward compalibity with existing HAL code*/
1300 tANI_U8 bssIdx;
1301
1302 tANI_U8 p2pCapableSta;
1303
Jeff Johnsone7245742012-09-05 17:12:55 -07001304 /*Reserved to align next field on a dword boundary*/
1305 tANI_U8 reserved;
1306
1307 /*These rates are the intersection of peer and self capabilities.*/
1308 tSirSupportedRates supportedRates;
1309
Jeff Johnson295189b2012-06-20 16:38:30 -07001310} tConfigStaParams, *tpConfigStaParams;
1311
Jeff Johnsone7245742012-09-05 17:12:55 -07001312/*------------------------------------------------------------------------
1313 * WLAN_HAL_CONFIG_STA_REQ
1314 * ----------------------------------------------------------------------*/
1315
1316typedef PACKED_PRE struct PACKED_POST {
1317 /*
1318 * For Self STA Entry: this represents Self Mode.
1319 * For Peer Stations, this represents the mode of the peer.
1320 * On Station:
1321 * --this mode is updated when PE adds the Self Entry.
1322 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1323 * ON AP:
1324 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1325 * to indicate the self mode of the AP.
1326 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1327 */
1328
1329 tStaRateMode opRateMode;
1330 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1331 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1332 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1333 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1334 tANI_U16 reserved;
1335
1336 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1337 //First 26 bits are reserved for those Titan rates and
1338 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1339 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1340
1341 /*
1342 * 0-76 bits used, remaining reserved
1343 * bits 0-15 and 32 should be set.
1344 */
1345 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1346
1347 /*
1348 * RX Highest Supported Data Rate defines the highest data
1349 * rate that the STA is able to receive, in unites of 1Mbps.
1350 * This value is derived from "Supported MCS Set field" inside
1351 * the HT capability element.
1352 */
1353 tANI_U16 rxHighestDataRate;
1354
1355 /* Indicates the Maximum MCS that can be received for each number
1356 * of spacial streams */
1357 tANI_U16 vhtRxMCSMap;
1358
1359 /*Indicate the highest VHT data rate that the STA is able to receive*/
1360 tANI_U16 vhtRxHighestDataRate;
1361
1362 /* Indicates the Maximum MCS that can be transmitted for each number
1363 * of spacial streams */
1364 tANI_U16 vhtTxMCSMap;
1365
1366 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1367 tANI_U16 vhtTxHighestDataRate;
1368
1369} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1370
1371typedef PACKED_PRE struct PACKED_POST
1372{
1373 /*BSSID of STA*/
1374 tSirMacAddr bssId;
1375
1376 /*ASSOC ID, as assigned by UMAC*/
1377 tANI_U16 assocId;
1378
1379 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1380 tANI_U8 staType;
1381
1382 /*Short Preamble Supported.*/
1383 tANI_U8 shortPreambleSupported;
1384
1385 /*MAC Address of STA*/
1386 tSirMacAddr staMac;
1387
1388 /*Listen interval of the STA*/
1389 tANI_U16 listenInterval;
1390
1391 /*Support for 11e/WMM*/
1392 tANI_U8 wmmEnabled;
1393
1394 /*11n HT capable STA*/
1395 tANI_U8 htCapable;
1396
1397 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1398 tANI_U8 txChannelWidthSet;
1399
1400 /*RIFS mode 0 - NA, 1 - Allowed */
1401 tANI_U8 rifsMode;
1402
1403 /*L-SIG TXOP Protection mechanism
1404 0 - No Support, 1 - Supported
1405 SG - there is global field */
1406 tANI_U8 lsigTxopProtection;
1407
1408 /*Max Ampdu Size supported by STA. TPE programming.
1409 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1410 tANI_U8 maxAmpduSize;
1411
1412 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1413 tANI_U8 maxAmpduDensity;
1414
1415 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1416 tANI_U8 maxAmsduSize;
1417
1418 /*Short GI support for 40Mhz packets*/
1419 tANI_U8 fShortGI40Mhz;
1420
1421 /*Short GI support for 20Mhz packets*/
1422 tANI_U8 fShortGI20Mhz;
1423
1424 /*Robust Management Frame (RMF) enabled/disabled*/
1425 tANI_U8 rmfEnabled;
1426
1427 /* The unicast encryption type in the association */
1428 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001429
1430 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001431 will set this flag in case of RE-ASSOC, where we want to reuse the old
1432 STA ID. 0 = Add, 1 = Update*/
1433 tANI_U8 action;
1434
1435 /*U-APSD Flags: 1b per AC. Encoded as follows:
1436 b7 b6 b5 b4 b3 b2 b1 b0 =
1437 X X X X BE BK VI VO */
1438 tANI_U8 uAPSD;
1439
1440 /*Max SP Length*/
1441 tANI_U8 maxSPLen;
1442
1443 /*11n Green Field preamble support
1444 0 - Not supported, 1 - Supported */
1445 tANI_U8 greenFieldCapable;
1446
1447 /*MIMO Power Save mode*/
1448 tSirMacHTMIMOPowerSaveState mimoPS;
1449
1450 /*Delayed BA Support*/
1451 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001452
Jeff Johnsone7245742012-09-05 17:12:55 -07001453 /*Max AMPDU duration in 32us*/
1454 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001455
Jeff Johnsone7245742012-09-05 17:12:55 -07001456 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1457 it to 0 if AP does not support it. This indication is sent to HAL and
1458 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1459 tANI_U8 fDsssCckMode40Mhz;
1460
1461 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1462 Retained for backward compalibity with existing HAL code*/
1463 tANI_U8 staIdx;
1464
1465 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1466 Retained for backward compalibity with existing HAL code*/
1467 tANI_U8 bssIdx;
1468
1469 tANI_U8 p2pCapableSta;
1470
1471 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001472 tANI_U8 htLdpcEnabled:1;
1473 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001474 tANI_U8 vhtTxBFEnabled:1;
1475 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001476
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001477 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001478 tSirSupportedRates_V1 supportedRates;
1479
1480 tANI_U8 vhtCapable;
1481 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001482
Jeff Johnsone7245742012-09-05 17:12:55 -07001483} tConfigStaParams_V1, *tpConfigStaParams_V1;
1484
Jeff Johnson295189b2012-06-20 16:38:30 -07001485typedef PACKED_PRE struct PACKED_POST
1486{
1487 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001488 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001489 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001490 tConfigStaParams_V1 configStaParams_V1;
1491 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001492} tConfigStaReqMsg, *tpConfigStaReqMsg;
1493
1494/*---------------------------------------------------------------------------
1495 WLAN_HAL_CONFIG_STA_RSP
1496---------------------------------------------------------------------------*/
1497
1498typedef PACKED_PRE struct PACKED_POST
1499{
1500 /*success or failure */
1501 tANI_U32 status;
1502
1503 /* Station index; valid only when 'status' field value SUCCESS */
1504 tANI_U8 staIdx;
1505
1506 /* BSSID Index of BSS to which the station is associated */
1507 tANI_U8 bssIdx;
1508
1509 /* DPU Index for PTK */
1510 tANI_U8 dpuIndex;
1511
Jeff Johnson32d95a32012-09-10 13:15:23 -07001512 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001513 tANI_U8 bcastDpuIndex;
1514
1515 /*DPU Index for IGTK */
1516 tANI_U8 bcastMgmtDpuIdx;
1517
1518 /*PTK DPU signature*/
1519 tANI_U8 ucUcastSig;
1520
1521 /*GTK DPU isignature*/
1522 tANI_U8 ucBcastSig;
1523
1524 /* IGTK DPU signature*/
1525 tANI_U8 ucMgmtSig;
1526
1527 tANI_U8 p2pCapableSta;
1528
1529}tConfigStaRspParams, *tpConfigStaRspParams;
1530
1531typedef PACKED_PRE struct PACKED_POST
1532{
1533 tHalMsgHeader header;
1534 tConfigStaRspParams configStaRspParams;
1535}tConfigStaRspMsg, *tpConfigStaRspMsg;
1536
1537/*---------------------------------------------------------------------------
1538 WLAN_HAL_DELETE_STA_REQ
1539---------------------------------------------------------------------------*/
1540
1541/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001542typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001543{
1544 /* Index of STA to delete */
1545 tANI_U8 staIdx;
1546} tDeleteStaParams, *tpDeleteStaParams;
1547
1548/* Delete STA Request message*/
1549typedef PACKED_PRE struct PACKED_POST
1550{
1551 tHalMsgHeader header;
1552 tDeleteStaParams delStaParams;
1553} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1554
1555/*---------------------------------------------------------------------------
1556 WLAN_HAL_DELETE_STA_RSP
1557---------------------------------------------------------------------------*/
1558
1559/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001560typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001561{
1562 /*success or failure */
1563 tANI_U32 status;
1564
1565 /* Index of STA deleted */
1566 tANI_U8 staId;
1567} tDeleteStaRspParams, *tpDeleteStaRspParams;
1568
1569/* Delete STA Response message*/
1570typedef PACKED_PRE struct PACKED_POST
1571{
1572 tHalMsgHeader header;
1573 tDeleteStaRspParams delStaRspParams;
1574} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1575
1576/*---------------------------------------------------------------------------
1577 WLAN_HAL_CONFIG_BSS_REQ
1578---------------------------------------------------------------------------*/
1579
1580//12 Bytes long because this structure can be used to represent rate
1581//and extended rate set IEs. The parser assume this to be at least 12
1582typedef __ani_attr_pre_packed struct sSirMacRateSet
1583{
1584 tANI_U8 numRates;
1585 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1586} __ani_attr_packed tSirMacRateSet;
1587
1588// access category record
1589typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1590{
1591#ifndef ANI_LITTLE_BIT_ENDIAN
1592 tANI_U8 rsvd : 1;
1593 tANI_U8 aci : 2;
1594 tANI_U8 acm : 1;
1595 tANI_U8 aifsn : 4;
1596#else
1597 tANI_U8 aifsn : 4;
1598 tANI_U8 acm : 1;
1599 tANI_U8 aci : 2;
1600 tANI_U8 rsvd : 1;
1601#endif
1602} __ani_attr_packed tSirMacAciAifsn;
1603
1604// contention window size
1605typedef __ani_attr_pre_packed struct sSirMacCW
1606{
1607#ifndef ANI_LITTLE_BIT_ENDIAN
1608 tANI_U8 max : 4;
1609 tANI_U8 min : 4;
1610#else
1611 tANI_U8 min : 4;
1612 tANI_U8 max : 4;
1613#endif
1614} __ani_attr_packed tSirMacCW;
1615
1616typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1617{
1618 tSirMacAciAifsn aci;
1619 tSirMacCW cw;
1620 tANI_U16 txoplimit;
1621} __ani_attr_packed tSirMacEdcaParamRecord;
1622
1623typedef __ani_attr_pre_packed struct sSirMacSSid
1624{
1625 tANI_U8 length;
1626 tANI_U8 ssId[32];
1627} __ani_attr_packed tSirMacSSid;
1628
1629// Concurrency role. These are generic IDs that identify the various roles
1630// in the software system.
1631typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001632 HAL_STA_MODE=0,
1633 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001634 HAL_P2P_CLIENT_MODE,
1635 HAL_P2P_GO_MODE,
1636 HAL_MONITOR_MODE,
1637} tHalConMode;
1638
1639//This is a bit pattern to be set for each mode
1640//bit 0 - sta mode
1641//bit 1 - ap mode
1642//bit 2 - p2p client mode
1643//bit 3 - p2p go mode
1644typedef enum
1645{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001646 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001647 HAL_SAP=2,
1648 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1649 HAL_P2P_CLIENT=4,
1650 HAL_P2P_GO=8,
1651 HAL_MAX_CONCURRENCY_PERSONA=4
1652} tHalConcurrencyMode;
1653
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001654// IFACE PERSONA for different Operating modes
1655typedef enum
1656{
1657 HAL_IFACE_UNKNOWN,
1658 HAL_IFACE_STA_MODE,
1659 HAL_IFACE_P2P_MODE,
1660 HAL_IFACE_MAX
1661} tHalIfacePersona;
1662
Jeff Johnson295189b2012-06-20 16:38:30 -07001663typedef PACKED_PRE struct PACKED_POST
1664{
1665 /* BSSID */
1666 tSirMacAddr bssId;
1667
Jeff Johnson295189b2012-06-20 16:38:30 -07001668 /* Self Mac Address */
1669 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001670
1671 /* BSS type */
1672 tSirBssType bssType;
1673
1674 /*Operational Mode: AP =0, STA = 1*/
1675 tANI_U8 operMode;
1676
1677 /*Network Type*/
1678 tSirNwType nwType;
1679
1680 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1681 tANI_U8 shortSlotTimeSupported;
1682
1683 /*Co-exist with 11a STA*/
1684 tANI_U8 llaCoexist;
1685
1686 /*Co-exist with 11b STA*/
1687 tANI_U8 llbCoexist;
1688
1689 /*Co-exist with 11g STA*/
1690 tANI_U8 llgCoexist;
1691
1692 /*Coexistence with 11n STA*/
1693 tANI_U8 ht20Coexist;
1694
1695 /*Non GF coexist flag*/
1696 tANI_U8 llnNonGFCoexist;
1697
1698 /*TXOP protection support*/
1699 tANI_U8 fLsigTXOPProtectionFullSupport;
1700
1701 /*RIFS mode*/
1702 tANI_U8 fRIFSMode;
1703
1704 /*Beacon Interval in TU*/
1705 tSirMacBeaconInterval beaconInterval;
1706
1707 /*DTIM period*/
1708 tANI_U8 dtimPeriod;
1709
1710 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1711 tANI_U8 txChannelWidthSet;
1712
1713 /*Operating channel*/
1714 tANI_U8 currentOperChannel;
1715
1716 /*Extension channel for channel bonding*/
1717 tANI_U8 currentExtChannel;
1718
1719 /*Reserved to align next field on a dword boundary*/
1720 tANI_U8 reserved;
1721
Jeff Johnsone7245742012-09-05 17:12:55 -07001722 /*SSID of the BSS*/
1723 tSirMacSSid ssId;
1724
1725 /*HAL should update the existing BSS entry, if this flag is set.
1726 UMAC will set this flag in case of reassoc, where we want to resue the
1727 the old BSSID and still return success 0 = Add, 1 = Update*/
1728 tANI_U8 action;
1729
1730 /* MAC Rate Set */
1731 tSirMacRateSet rateSet;
1732
1733 /*Enable/Disable HT capabilities of the BSS*/
1734 tANI_U8 htCapable;
1735
1736 // Enable/Disable OBSS protection
1737 tANI_U8 obssProtEnabled;
1738
1739 /*RMF enabled/disabled*/
1740 tANI_U8 rmfEnabled;
1741
1742 /*HT Operating Mode operating mode of the 802.11n STA*/
1743 tSirMacHTOperatingMode htOperMode;
1744
1745 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1746 tANI_U8 dualCTSProtection;
1747
1748 /* Probe Response Max retries */
1749 tANI_U8 ucMaxProbeRespRetryLimit;
1750
1751 /* To Enable Hidden ssid */
1752 tANI_U8 bHiddenSSIDEn;
1753
1754 /* To Enable Disable FW Proxy Probe Resp */
1755 tANI_U8 bProxyProbeRespEn;
1756
1757 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1758 EDCA params or might not desire to apply EDCA params during config BSS.
1759 0 implies Not Valid ; Non-Zero implies valid*/
1760 tANI_U8 edcaParamsValid;
1761
1762 /*EDCA Parameters for Best Effort Access Category*/
1763 tSirMacEdcaParamRecord acbe;
1764
1765 /*EDCA Parameters forBackground Access Category*/
1766 tSirMacEdcaParamRecord acbk;
1767
1768 /*EDCA Parameters for Video Access Category*/
1769 tSirMacEdcaParamRecord acvi;
1770
1771 /*EDCA Parameters for Voice Access Category*/
1772 tSirMacEdcaParamRecord acvo;
1773
1774#ifdef WLAN_FEATURE_VOWIFI_11R
1775 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1776 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1777#endif
1778
1779 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1780 tANI_U8 halPersona;
1781
1782 tANI_U8 bSpectrumMgtEnable;
1783
1784 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1785 tANI_S8 txMgmtPower;
1786 /*maxTxPower has max power to be used after applying the power constraint if any */
1787 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001788 /*Context of the station being added in HW
1789 Add a STA entry for "itself" -
1790 On AP - Add the AP itself in an "STA context"
1791 On STA - Add the AP to which this STA is joining in an "STA context" */
1792 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001793} tConfigBssParams, * tpConfigBssParams;
1794
1795
1796/*--------------------------------------------------------------------------
1797 * WLAN_HAL_CONFIG_BSS_REQ
1798 *--------------------------------------------------------------------------*/
1799typedef PACKED_PRE struct PACKED_POST
1800{
1801 /* BSSID */
1802 tSirMacAddr bssId;
1803
Jeff Johnsone7245742012-09-05 17:12:55 -07001804 /* Self Mac Address */
1805 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001806
1807 /* BSS type */
1808 tSirBssType bssType;
1809
1810 /*Operational Mode: AP =0, STA = 1*/
1811 tANI_U8 operMode;
1812
1813 /*Network Type*/
1814 tSirNwType nwType;
1815
1816 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1817 tANI_U8 shortSlotTimeSupported;
1818
1819 /*Co-exist with 11a STA*/
1820 tANI_U8 llaCoexist;
1821
1822 /*Co-exist with 11b STA*/
1823 tANI_U8 llbCoexist;
1824
1825 /*Co-exist with 11g STA*/
1826 tANI_U8 llgCoexist;
1827
1828 /*Coexistence with 11n STA*/
1829 tANI_U8 ht20Coexist;
1830
1831 /*Non GF coexist flag*/
1832 tANI_U8 llnNonGFCoexist;
1833
1834 /*TXOP protection support*/
1835 tANI_U8 fLsigTXOPProtectionFullSupport;
1836 /*RIFS mode*/
1837 tANI_U8 fRIFSMode;
1838
1839 /*Beacon Interval in TU*/
1840 tSirMacBeaconInterval beaconInterval;
1841
1842 /*DTIM period*/
1843 tANI_U8 dtimPeriod;
1844
1845 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1846 tANI_U8 txChannelWidthSet;
1847
1848 /*Operating channel*/
1849 tANI_U8 currentOperChannel;
1850
1851 /*Extension channel for channel bonding*/
1852 tANI_U8 currentExtChannel;
1853
1854 /*Reserved to align next field on a dword boundary*/
1855 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001856
1857 /*SSID of the BSS*/
1858 tSirMacSSid ssId;
1859
1860 /*HAL should update the existing BSS entry, if this flag is set.
1861 UMAC will set this flag in case of reassoc, where we want to resue the
1862 the old BSSID and still return success 0 = Add, 1 = Update*/
1863 tANI_U8 action;
1864
1865 /* MAC Rate Set */
1866 tSirMacRateSet rateSet;
1867
1868 /*Enable/Disable HT capabilities of the BSS*/
1869 tANI_U8 htCapable;
1870
1871 // Enable/Disable OBSS protection
1872 tANI_U8 obssProtEnabled;
1873
1874 /*RMF enabled/disabled*/
1875 tANI_U8 rmfEnabled;
1876
1877 /*HT Operating Mode operating mode of the 802.11n STA*/
1878 tSirMacHTOperatingMode htOperMode;
1879
1880 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1881 tANI_U8 dualCTSProtection;
1882
1883 /* Probe Response Max retries */
1884 tANI_U8 ucMaxProbeRespRetryLimit;
1885
1886 /* To Enable Hidden ssid */
1887 tANI_U8 bHiddenSSIDEn;
1888
1889 /* To Enable Disable FW Proxy Probe Resp */
1890 tANI_U8 bProxyProbeRespEn;
1891
Jeff Johnson32d95a32012-09-10 13:15:23 -07001892 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1893 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001894 0 implies Not Valid ; Non-Zero implies valid*/
1895 tANI_U8 edcaParamsValid;
1896
1897 /*EDCA Parameters for Best Effort Access Category*/
1898 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001899
Jeff Johnson295189b2012-06-20 16:38:30 -07001900 /*EDCA Parameters forBackground Access Category*/
1901 tSirMacEdcaParamRecord acbk;
1902
1903 /*EDCA Parameters for Video Access Category*/
1904 tSirMacEdcaParamRecord acvi;
1905
1906 /*EDCA Parameters for Voice Access Category*/
1907 tSirMacEdcaParamRecord acvo;
1908
1909#ifdef WLAN_FEATURE_VOWIFI_11R
1910 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1911 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1912#endif
1913
Jeff Johnson32d95a32012-09-10 13:15:23 -07001914 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001915 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001916
Jeff Johnson295189b2012-06-20 16:38:30 -07001917 tANI_U8 bSpectrumMgtEnable;
1918
1919 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1920 tANI_S8 txMgmtPower;
1921 /*maxTxPower has max power to be used after applying the power constraint if any */
1922 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001923 /*Context of the station being added in HW
1924 Add a STA entry for "itself" -
1925 On AP - Add the AP itself in an "STA context"
1926 On STA - Add the AP to which this STA is joining in an "STA context" */
1927 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001928
Jeff Johnsone7245742012-09-05 17:12:55 -07001929 tANI_U8 vhtCapable;
1930 tANI_U8 vhtTxChannelWidthSet;
1931} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001932
1933typedef PACKED_PRE struct PACKED_POST
1934{
1935 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001936 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001937 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001938 tConfigBssParams_V1 configBssParams_V1;
1939 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001940} tConfigBssReqMsg, *tpConfigBssReqMsg;
1941
1942/*---------------------------------------------------------------------------
1943 WLAN_HAL_CONFIG_BSS_RSP
1944---------------------------------------------------------------------------*/
1945
1946typedef PACKED_PRE struct PACKED_POST
1947{
1948 /* Success or Failure */
1949 tANI_U32 status;
1950
1951 /* BSS index allocated by HAL */
1952 tANI_U8 bssIdx;
1953
1954 /* DPU descriptor index for PTK */
1955 tANI_U8 dpuDescIndx;
1956
1957 /* PTK DPU signature */
1958 tANI_U8 ucastDpuSignature;
1959
1960 /* DPU descriptor index for GTK*/
1961 tANI_U8 bcastDpuDescIndx;
1962
1963 /* GTK DPU signature */
1964 tANI_U8 bcastDpuSignature;
1965
1966 /*DPU descriptor for IGTK*/
1967 tANI_U8 mgmtDpuDescIndx;
1968
1969 /* IGTK DPU signature */
1970 tANI_U8 mgmtDpuSignature;
1971
1972 /* Station Index for BSS entry*/
1973 tANI_U8 bssStaIdx;
1974
1975 /* Self station index for this BSS */
1976 tANI_U8 bssSelfStaIdx;
1977
1978 /* Bcast station for buffering bcast frames in AP role */
1979 tANI_U8 bssBcastStaIdx;
1980
1981 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1982 tSirMacAddr staMac;
1983
1984 /*HAL fills in the tx power used for mgmt frames in this field. */
1985 tANI_S8 txMgmtPower;
1986
1987} tConfigBssRspParams, * tpConfigBssRspParams;
1988
1989typedef PACKED_PRE struct PACKED_POST
1990{
1991 tHalMsgHeader header;
1992 tConfigBssRspParams configBssRspParams;
1993} tConfigBssRspMsg, *tpConfigBssRspMsg;
1994
1995/*---------------------------------------------------------------------------
1996 WLAN_HAL_DELETE_BSS_REQ
1997---------------------------------------------------------------------------*/
1998
1999typedef PACKED_PRE struct PACKED_POST
2000{
2001 /* BSS index to be deleted */
2002 tANI_U8 bssIdx;
2003
2004} tDeleteBssParams, *tpDeleteBssParams;
2005
2006typedef PACKED_PRE struct PACKED_POST
2007{
2008 tHalMsgHeader header;
2009 tDeleteBssParams deleteBssParams;
2010} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2011
2012/*---------------------------------------------------------------------------
2013 WLAN_HAL_DELETE_BSS_RSP
2014---------------------------------------------------------------------------*/
2015
2016typedef PACKED_PRE struct PACKED_POST
2017{
2018 /* Success or Failure */
2019 tANI_U32 status;
2020
2021 /* BSS index that has been deleted */
2022 tANI_U8 bssIdx;
2023
2024} tDeleteBssRspParams, *tpDeleteBssRspParams;
2025
2026typedef PACKED_PRE struct PACKED_POST
2027{
2028 tHalMsgHeader header;
2029 tDeleteBssRspParams deleteBssRspParams;
2030} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2031
2032/*---------------------------------------------------------------------------
2033 WLAN_HAL_JOIN_REQ
2034---------------------------------------------------------------------------*/
2035
2036typedef PACKED_PRE struct PACKED_POST
2037{
2038 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002039 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002040
2041 /*Indicates the channel to switch to.*/
2042 tANI_U8 ucChannel;
2043
2044 /* Self STA MAC */
2045 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002046
Jeff Johnson295189b2012-06-20 16:38:30 -07002047 /*Local power constraint*/
2048 tANI_U8 ucLocalPowerConstraint;
2049
2050 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002051 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002052
2053 /*link State*/
2054 tSirLinkState linkState;
2055
2056 /* Max TX power */
2057 tANI_S8 maxTxPower;
2058
2059} tHalJoinReqParams, *tpHalJoinReqParams;
2060
2061typedef PACKED_PRE struct PACKED_POST
2062{
2063 tHalMsgHeader header;
2064 tHalJoinReqParams joinReqParams;
2065} tHalJoinReqMsg, *tpHalJoinReqMsg;
2066
2067/*---------------------------------------------------------------------------
2068 WLAN_HAL_JOIN_RSP
2069---------------------------------------------------------------------------*/
2070
2071typedef PACKED_PRE struct PACKED_POST
2072{
2073 /*success or failure */
2074 tANI_U32 status;
2075
2076 /* HAL fills in the tx power used for mgmt frames in this field */
2077 tPowerdBm txMgmtPower;
2078
2079}tHalJoinRspParams, *tpHalJoinRspParams;
2080
2081typedef PACKED_PRE struct PACKED_POST
2082{
2083 tHalMsgHeader header;
2084 tHalJoinRspParams joinRspParams;
2085}tHalJoinRspMsg, *tpHalJoinRspMsg;
2086
2087/*---------------------------------------------------------------------------
2088 WLAN_HAL_POST_ASSOC_REQ
2089---------------------------------------------------------------------------*/
2090
2091typedef PACKED_PRE struct PACKED_POST
2092{
2093 tConfigStaParams configStaParams;
2094 tConfigBssParams configBssParams;
2095} tPostAssocReqParams, *tpPostAssocReqParams;
2096
2097typedef PACKED_PRE struct PACKED_POST
2098{
2099 tHalMsgHeader header;
2100 tPostAssocReqParams postAssocReqParams;
2101} tPostAssocReqMsg, *tpPostAssocReqMsg;
2102
2103/*---------------------------------------------------------------------------
2104 WLAN_HAL_POST_ASSOC_RSP
2105---------------------------------------------------------------------------*/
2106
2107typedef PACKED_PRE struct PACKED_POST
2108{
2109 tConfigStaRspParams configStaRspParams;
2110 tConfigBssRspParams configBssRspParams;
2111} tPostAssocRspParams, *tpPostAssocRspParams;
2112
2113typedef PACKED_PRE struct PACKED_POST
2114{
2115 tHalMsgHeader header;
2116 tPostAssocRspParams postAssocRspParams;
2117} tPostAssocRspMsg, *tpPostAssocRspMsg;
2118
2119/*---------------------------------------------------------------------------
2120 WLAN_HAL_SET_BSSKEY_REQ
2121---------------------------------------------------------------------------*/
2122
2123/*
2124 * This is used by PE to create a set of WEP keys for a given BSS.
2125 */
2126typedef PACKED_PRE struct PACKED_POST
2127{
2128 /*BSS Index of the BSS*/
2129 tANI_U8 bssIdx;
2130
2131 /*Encryption Type used with peer*/
2132 tAniEdType encType;
2133
2134 /*Number of keys*/
2135 tANI_U8 numKeys;
2136
2137 /*Array of keys.*/
2138 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002139
Jeff Johnson295189b2012-06-20 16:38:30 -07002140 /*Control for Replay Count, 1= Single TID based replay count on Tx
2141 0 = Per TID based replay count on TX */
2142 tANI_U8 singleTidRc;
2143} tSetBssKeyParams, *tpSetBssKeyParams;
2144
2145typedef PACKED_PRE struct PACKED_POST
2146{
2147 tHalMsgHeader header;
2148 tSetBssKeyParams setBssKeyParams;
2149} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2150
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002151/* tagged version of set bss key */
2152typedef PACKED_PRE struct PACKED_POST
2153{
2154 tSetBssKeyReqMsg Msg;
2155 uint32 Tag;
2156} tSetBssKeyReqMsgTagged;
2157
Jeff Johnson295189b2012-06-20 16:38:30 -07002158/*---------------------------------------------------------------------------
2159 WLAN_HAL_SET_BSSKEY_RSP
2160---------------------------------------------------------------------------*/
2161typedef PACKED_PRE struct PACKED_POST
2162{
2163 /*success or failure */
2164 tANI_U32 status;
2165
2166} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2167
2168typedef PACKED_PRE struct PACKED_POST
2169{
2170 tHalMsgHeader header;
2171 tSetBssKeyRspParams setBssKeyRspParams;
2172} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2173
2174/*---------------------------------------------------------------------------
2175 WLAN_HAL_SET_STAKEY_REQ,
2176---------------------------------------------------------------------------*/
2177
2178/*
2179 * This is used by PE to configure the key information on a given station.
2180 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2181 * a preconfigured key from a BSS the station assoicated with; otherwise
2182 * a new key descriptor is created based on the key field.
2183 */
2184
2185typedef PACKED_PRE struct PACKED_POST
2186{
2187 tHalMsgHeader header;
2188 tSetStaKeyParams setStaKeyParams;
2189} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2190
2191/*---------------------------------------------------------------------------
2192 WLAN_HAL_SET_STAKEY_RSP,
2193---------------------------------------------------------------------------*/
2194typedef PACKED_PRE struct PACKED_POST
2195{
2196 /*success or failure */
2197 tANI_U32 status;
2198
2199} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2200
2201typedef PACKED_PRE struct PACKED_POST
2202{
2203 tHalMsgHeader header;
2204 tSetStaKeyRspParams setStaKeyRspParams;
2205} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2206
2207/*---------------------------------------------------------------------------
2208 WLAN_HAL_RMV_BSSKEY_REQ,
2209---------------------------------------------------------------------------*/
2210/*
2211 * This is used by PE to remove keys for a given BSS.
2212 */
2213typedef PACKED_PRE struct PACKED_POST
2214
2215{
2216 /*BSS Index of the BSS*/
2217 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002218
Jeff Johnson295189b2012-06-20 16:38:30 -07002219 /*Encryption Type used with peer*/
2220 tAniEdType encType;
2221
2222 /*Key Id*/
2223 tANI_U8 keyId;
2224
2225 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2226 tAniWepType wepType;
2227
2228} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2229
2230typedef PACKED_PRE struct PACKED_POST
2231{
2232 tHalMsgHeader header;
2233 tRemoveBssKeyParams removeBssKeyParams;
2234} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2235
2236/*---------------------------------------------------------------------------
2237 WLAN_HAL_RMV_BSSKEY_RSP,
2238---------------------------------------------------------------------------*/
2239typedef PACKED_PRE struct PACKED_POST
2240{
2241 /*success or failure */
2242 tANI_U32 status;
2243
2244} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2245
2246typedef PACKED_PRE struct PACKED_POST
2247{
2248 tHalMsgHeader header;
2249 tRemoveBssKeyRspParams removeBssKeyRspParams;
2250} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2251
2252/*---------------------------------------------------------------------------
2253 WLAN_HAL_RMV_STAKEY_REQ,
2254---------------------------------------------------------------------------*/
2255/*
2256 * This is used by PE to Remove the key information on a given station.
2257 */
2258typedef PACKED_PRE struct PACKED_POST
2259{
2260 /*STA Index*/
2261 tANI_U16 staIdx;
2262
2263 /*Encryption Type used with peer*/
2264 tAniEdType encType;
2265
2266 /*Key Id*/
2267 tANI_U8 keyId;
2268
2269 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2270 the same key is used for both broadcast and unicast.*/
2271 tANI_BOOLEAN unicast;
2272
2273} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2274
2275typedef PACKED_PRE struct PACKED_POST
2276{
2277 tHalMsgHeader header;
2278 tRemoveStaKeyParams removeStaKeyParams;
2279} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2280
2281/*---------------------------------------------------------------------------
2282 WLAN_HAL_RMV_STAKEY_RSP,
2283---------------------------------------------------------------------------*/
2284typedef PACKED_PRE struct PACKED_POST
2285{
2286 /*success or failure */
2287 tANI_U32 status;
2288} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2289
2290typedef PACKED_PRE struct PACKED_POST
2291{
2292 tHalMsgHeader header;
2293 tRemoveStaKeyRspParams removeStaKeyRspParams;
2294} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2295
Jeff Johnsone7245742012-09-05 17:12:55 -07002296#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002297
Jeff Johnsone7245742012-09-05 17:12:55 -07002298#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002299#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002300#endif
2301
2302#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002303#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002304#endif
2305
2306/*-------------------------------------------------------------------------
2307WLAN_HAL_START_OEM_DATA_REQ
2308--------------------------------------------------------------------------*/
2309typedef PACKED_PRE struct PACKED_POST
2310{
2311 tANI_U32 status;
2312 tSirMacAddr selfMacAddr;
2313 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2314} tStartOemDataReqParams, *tpStartOemDataReqParams;
2315
2316typedef PACKED_PRE struct PACKED_POST
2317{
2318 tHalMsgHeader header;
2319 tStartOemDataReqParams startOemDataReqParams;
2320} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2321
2322/*-------------------------------------------------------------------------
2323WLAN_HAL_START_OEM_DATA_RSP
2324--------------------------------------------------------------------------*/
2325
2326typedef PACKED_PRE struct PACKED_POST
2327{
2328 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2329} tStartOemDataRspParams, *tpStartOemDataRspParams;
2330
2331typedef PACKED_PRE struct PACKED_POST
2332{
2333 tHalMsgHeader header;
2334 tStartOemDataRspParams startOemDataRspParams;
2335} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2336
2337#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002338
2339
2340
2341/*---------------------------------------------------------------------------
2342WLAN_HAL_CH_SWITCH_REQ
2343---------------------------------------------------------------------------*/
2344
2345typedef PACKED_PRE struct PACKED_POST
2346{
2347 /* Channel number */
2348 tANI_U8 channelNumber;
2349
2350 /* Local power constraint */
2351 tANI_U8 localPowerConstraint;
2352
2353 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002354 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002355
2356 //HAL fills in the tx power used for mgmt frames in this field.
2357 tPowerdBm txMgmtPower;
2358
2359 /* Max TX power */
2360 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002361
Jeff Johnson295189b2012-06-20 16:38:30 -07002362 /* Self STA MAC */
2363 tSirMacAddr selfStaMacAddr;
2364
2365 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2366 this should be applied only to that session*/
2367 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2368 * bssid needs to be out of the VOWifi feature flag */
2369 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2370 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2371 */
2372 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002373
Jeff Johnson295189b2012-06-20 16:38:30 -07002374}tSwitchChannelParams, *tpSwitchChannelParams;
2375
2376typedef PACKED_PRE struct PACKED_POST
2377{
2378 tHalMsgHeader header;
2379 tSwitchChannelParams switchChannelParams;
2380} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2381
2382/*---------------------------------------------------------------------------
2383WLAN_HAL_CH_SWITCH_RSP
2384---------------------------------------------------------------------------*/
2385
2386typedef PACKED_PRE struct PACKED_POST
2387{
2388 /* Status */
2389 tANI_U32 status;
2390
2391 /* Channel number - same as in request*/
2392 tANI_U8 channelNumber;
2393
2394 /* HAL fills in the tx power used for mgmt frames in this field */
2395 tPowerdBm txMgmtPower;
2396
2397 /* BSSID needed to identify session - same as in request*/
2398 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002399
Jeff Johnson295189b2012-06-20 16:38:30 -07002400}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2401
2402typedef PACKED_PRE struct PACKED_POST
2403{
2404 tHalMsgHeader header;
2405 tSwitchChannelRspParams switchChannelRspParams;
2406} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2407
2408/*---------------------------------------------------------------------------
2409WLAN_HAL_UPD_EDCA_PARAMS_REQ
2410---------------------------------------------------------------------------*/
2411
2412typedef PACKED_PRE struct PACKED_POST
2413{
2414 /*BSS Index*/
2415 tANI_U16 bssIdx;
2416
2417 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002418 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002419
2420 /* Background */
2421 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002422
Jeff Johnson295189b2012-06-20 16:38:30 -07002423 /* Video */
2424 tSirMacEdcaParamRecord acvi;
2425
2426 /* Voice */
2427 tSirMacEdcaParamRecord acvo;
2428
2429} tEdcaParams, *tpEdcaParams;
2430
2431typedef PACKED_PRE struct PACKED_POST
2432{
2433 tHalMsgHeader header;
2434 tEdcaParams edcaParams;
2435} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2436
2437/*---------------------------------------------------------------------------
2438WLAN_HAL_UPD_EDCA_PARAMS_RSP
2439---------------------------------------------------------------------------*/
2440typedef PACKED_PRE struct PACKED_POST
2441{
2442 /*success or failure */
2443 tANI_U32 status;
2444} tEdcaRspParams, *tpEdcaRspParams;
2445
2446typedef PACKED_PRE struct PACKED_POST
2447{
2448 tHalMsgHeader header;
2449 tEdcaRspParams edcaRspParams;
2450} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2451
2452
2453
2454/*---------------------------------------------------------------------------
2455 * WLAN_HAL_GET_STATS_REQ
2456 *--------------------------------------------------------------------------*/
2457typedef PACKED_PRE struct PACKED_POST
2458
2459{
2460 /* Index of STA to which the statistics */
2461 tANI_U16 staIdx;
2462
2463 /* Encryption mode */
2464 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002465
Jeff Johnson295189b2012-06-20 16:38:30 -07002466 /* status */
2467 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002468
Jeff Johnson295189b2012-06-20 16:38:30 -07002469 /* Statistics */
2470 tANI_U32 sendBlocks;
2471 tANI_U32 recvBlocks;
2472 tANI_U32 replays;
2473 tANI_U8 micErrorCnt;
2474 tANI_U32 protExclCnt;
2475 tANI_U16 formatErrCnt;
2476 tANI_U16 unDecryptableCnt;
2477 tANI_U32 decryptErrCnt;
2478 tANI_U32 decryptOkCnt;
2479} tDpuStatsParams, * tpDpuStatsParams;
2480
2481typedef PACKED_PRE struct PACKED_POST
2482{
2483 /* Valid STA Idx for per STA stats request */
2484 tANI_U32 staId;
2485
2486 /* Categories of stats requested as specified in eHalStatsMask*/
2487 tANI_U32 statsMask;
2488}tHalStatsReqParams, *tpHalStatsReqParams;
2489
2490typedef PACKED_PRE struct PACKED_POST
2491{
2492 tHalMsgHeader header;
2493 tHalStatsReqParams statsReqParams;
2494} tHalStatsReqMsg, *tpHalStatsReqMsg;
2495
2496/*---------------------------------------------------------------------------
2497 * WLAN_HAL_GET_STATS_RSP
2498 *--------------------------------------------------------------------------*/
2499
2500typedef PACKED_PRE struct PACKED_POST
2501{
2502 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2503 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2504 // station successfully transmitted after more than one retransmission attempt
2505
Jeff Johnson32d95a32012-09-10 13:15:23 -07002506 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2507 //(with and without retries, including multi-cast, broadcast)
2508 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2509 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002510 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2511 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2512 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2513 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 -07002514 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2515 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 -07002516 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2517 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 -07002518 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2519 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002520 //to provide this.
2521}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2522
2523
2524// defines tx_rate_flags
2525typedef enum eTxRateInfo
2526{
2527 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2528 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2529 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2530 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2531 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2532} tTxrateinfoflags;
2533
2534
2535typedef PACKED_PRE struct PACKED_POST
2536{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002537 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 -07002538 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002539 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 -07002540 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002541 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2542 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002543 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002544 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2545 //for eg: if it is 10.5dBm, the value would be 105
2546 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2547 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002548
Jeff Johnson32d95a32012-09-10 13:15:23 -07002549 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2550 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002551 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002552 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2553 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002554}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2555
2556typedef PACKED_PRE struct PACKED_POST
2557{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002558 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2559 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002560 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002561 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 -07002562 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002563 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 -07002564 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002565 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 -07002566 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002567 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 -07002568 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002569 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 -07002570 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002571 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 -07002572 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002573 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 -07002574 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002575 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 -07002576 //decrypted
2577 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2578
2579}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002580
Jeff Johnson295189b2012-06-20 16:38:30 -07002581typedef PACKED_PRE struct PACKED_POST
2582{
2583 tAniGlobalSecurityStats ucStats;
2584 tAniGlobalSecurityStats mcbcStats;
2585}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2586
2587typedef PACKED_PRE struct PACKED_POST
2588{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002589 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2590 //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 -07002591 //address 1 field
2592 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 -07002593 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 -07002594 //primary channel
2595 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 -07002596 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 -07002597 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002598 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2599 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002600 //decoded correctly
2601}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2602
2603typedef PACKED_PRE struct PACKED_POST
2604{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002605 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 -07002606 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002607 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2608 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 -07002609 //is transmitted
2610}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2611
2612typedef PACKED_PRE struct PACKED_POST
2613{
2614 /* Success or Failure */
2615 tANI_U32 status;
2616
2617 /* STA Idx */
2618 tANI_U32 staId;
2619
2620 /* Categories of STATS being returned as per eHalStatsMask*/
2621 tANI_U32 statsMask;
2622
2623 /* message type is same as the request type */
2624 tANI_U16 msgType;
2625
2626 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002627 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002628
2629} tHalStatsRspParams, *tpHalStatsRspParams;
2630
2631
2632
2633typedef PACKED_PRE struct PACKED_POST
2634{
2635 tHalMsgHeader header;
2636 tHalStatsRspParams statsRspParams;
2637} tHalStatsRspMsg, *tpHalStatsRspMsg;
2638
2639/*---------------------------------------------------------------------------
2640 * WLAN_HAL_SET_LINK_ST_REQ
2641 *--------------------------------------------------------------------------*/
2642typedef PACKED_PRE struct PACKED_POST
2643{
2644 tSirMacAddr bssid;
2645 tSirLinkState state;
2646 tSirMacAddr selfMacAddr;
2647} tLinkStateParams, *tpLinkStateParams;
2648
2649typedef PACKED_PRE struct PACKED_POST
2650{
2651 tHalMsgHeader header;
2652 tLinkStateParams linkStateParams;
2653} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2654
2655/*---------------------------------------------------------------------------
2656 * WLAN_HAL_SET_LINK_ST_RSP
2657 *--------------------------------------------------------------------------*/
2658
2659typedef PACKED_PRE struct PACKED_POST
2660{
2661 /*success or failure */
2662 tANI_U32 status;
2663} tLinkStateRspParams, *tpLinkStateRspParams;
2664
2665typedef PACKED_PRE struct PACKED_POST
2666{
2667 tHalMsgHeader header;
2668 tLinkStateRspParams linkStateRspParams;
2669} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2670
2671/*---------------------------------------------------------------------------
2672 * WLAN_HAL_ADD_TS_REQ
2673 *--------------------------------------------------------------------------*/
2674
2675/* TSPEC Params */
2676typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2677{
2678#ifndef ANI_LITTLE_BIT_ENDIAN
2679 tANI_U16 ackPolicy : 2;
2680 tANI_U16 userPrio : 3;
2681 tANI_U16 psb : 1;
2682 tANI_U16 aggregation : 1;
2683 tANI_U16 accessPolicy : 2;
2684 tANI_U16 direction : 2;
2685 tANI_U16 tsid : 4;
2686 tANI_U16 trafficType : 1;
2687#else
2688 tANI_U16 trafficType : 1;
2689 tANI_U16 tsid : 4;
2690 tANI_U16 direction : 2;
2691 tANI_U16 accessPolicy : 2;
2692 tANI_U16 aggregation : 1;
2693 tANI_U16 psb : 1;
2694 tANI_U16 userPrio : 3;
2695 tANI_U16 ackPolicy : 2;
2696#endif
2697} __ani_attr_packed tSirMacTSInfoTfc;
2698
2699/* Flag to schedule the traffic type */
2700typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2701{
2702#ifndef ANI_LITTLE_BIT_ENDIAN
2703 tANI_U8 rsvd : 7;
2704 tANI_U8 schedule : 1;
2705#else
2706 tANI_U8 schedule : 1;
2707 tANI_U8 rsvd : 7;
2708#endif
2709} __ani_attr_packed tSirMacTSInfoSch;
2710
2711/* Traffic and scheduling info */
2712typedef __ani_attr_pre_packed struct sSirMacTSInfo
2713{
2714 tSirMacTSInfoTfc traffic;
2715 tSirMacTSInfoSch schedule;
2716} __ani_attr_packed tSirMacTSInfo;
2717
2718/* Information elements */
2719typedef __ani_attr_pre_packed struct sSirMacTspecIE
2720{
2721 tANI_U8 type;
2722 tANI_U8 length;
2723 tSirMacTSInfo tsinfo;
2724 tANI_U16 nomMsduSz;
2725 tANI_U16 maxMsduSz;
2726 tANI_U32 minSvcInterval;
2727 tANI_U32 maxSvcInterval;
2728 tANI_U32 inactInterval;
2729 tANI_U32 suspendInterval;
2730 tANI_U32 svcStartTime;
2731 tANI_U32 minDataRate;
2732 tANI_U32 meanDataRate;
2733 tANI_U32 peakDataRate;
2734 tANI_U32 maxBurstSz;
2735 tANI_U32 delayBound;
2736 tANI_U32 minPhyRate;
2737 tANI_U16 surplusBw;
2738 tANI_U16 mediumTime;
2739}__ani_attr_packed tSirMacTspecIE;
2740
2741typedef PACKED_PRE struct PACKED_POST
2742{
2743 /* Station Index */
2744 tANI_U16 staIdx;
2745
2746 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2747 tANI_U16 tspecIdx;
2748
2749 /* To program TPE with required parameters */
2750 tSirMacTspecIE tspec;
2751
2752 /* U-APSD Flags: 1b per AC. Encoded as follows:
2753 b7 b6 b5 b4 b3 b2 b1 b0 =
2754 X X X X BE BK VI VO */
2755 tANI_U8 uAPSD;
2756
2757 /* These parameters are for all the access categories */
2758 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2759 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2760 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002761
Jeff Johnson295189b2012-06-20 16:38:30 -07002762} tAddTsParams, *tpAddTsParams;
2763
2764typedef PACKED_PRE struct PACKED_POST
2765{
2766 tHalMsgHeader header;
2767 tAddTsParams addTsParams;
2768} tAddTsReqMsg, *tpAddTsReqMsg;
2769
2770/*---------------------------------------------------------------------------
2771 * WLAN_HAL_ADD_TS_RSP
2772 *--------------------------------------------------------------------------*/
2773
2774typedef PACKED_PRE struct PACKED_POST
2775{
2776 /*success or failure */
2777 tANI_U32 status;
2778} tAddTsRspParams, *tpAddTsRspParams;
2779
2780typedef PACKED_PRE struct PACKED_POST
2781{
2782 tHalMsgHeader header;
2783 tAddTsRspParams addTsRspParams;
2784} tAddTsRspMsg, *tpAddTsRspMsg;
2785
2786
2787/*---------------------------------------------------------------------------
2788 * WLAN_HAL_DEL_TS_REQ
2789 *--------------------------------------------------------------------------*/
2790
2791typedef PACKED_PRE struct PACKED_POST
2792{
2793 /* Station Index */
2794 tANI_U16 staIdx;
2795
2796 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2797 tANI_U16 tspecIdx;
2798
2799 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002800 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002801
2802} tDelTsParams, *tpDelTsParams;
2803
2804typedef PACKED_PRE struct PACKED_POST
2805{
2806 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002807 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002808} tDelTsReqMsg, *tpDelTsReqMsg;
2809
2810/*---------------------------------------------------------------------------
2811 * WLAN_HAL_DEL_TS_RSP
2812 *--------------------------------------------------------------------------*/
2813
2814typedef PACKED_PRE struct PACKED_POST
2815{
2816 /*success or failure */
2817 tANI_U32 status;
2818} tDelTsRspParams, *tpDelTsRspParams;
2819
2820typedef PACKED_PRE struct PACKED_POST
2821{
2822 tHalMsgHeader header;
2823 tDelTsRspParams delTsRspParams;
2824} tDelTsRspMsg, *tpDelTsRspMsg;
2825
2826/* End of TSpec Parameters */
2827
2828/* Start of BLOCK ACK related Parameters */
2829
2830/*---------------------------------------------------------------------------
2831 * WLAN_HAL_ADD_BA_SESSION_REQ
2832 *--------------------------------------------------------------------------*/
2833
2834typedef PACKED_PRE struct PACKED_POST
2835{
2836 /* Station Index */
2837 tANI_U16 staIdx;
2838
2839 /* Peer MAC Address */
2840 tSirMacAddr peerMacAddr;
2841
2842 /* ADDBA Action Frame dialog token
2843 HAL will not interpret this object */
2844 tANI_U8 baDialogToken;
2845
2846 /* TID for which the BA is being setup
2847 This identifies the TC or TS of interest */
2848 tANI_U8 baTID;
2849
2850 /* 0 - Delayed BA (Not supported)
2851 1 - Immediate BA */
2852 tANI_U8 baPolicy;
2853
2854 /* Indicates the number of buffers for this TID (baTID)
2855 NOTE - This is the requested buffer size. When this
2856 is processed by HAL and subsequently by HDD, it is
2857 possible that HDD may change this buffer size. Any
2858 change in the buffer size should be noted by PE and
2859 advertized appropriately in the ADDBA response */
2860 tANI_U16 baBufferSize;
2861
2862 /* BA timeout in TU's 0 means no timeout will occur */
2863 tANI_U16 baTimeout;
2864
2865 /* b0..b3 - Fragment Number - Always set to 0
2866 b4..b15 - Starting Sequence Number of first MSDU
2867 for which this BA is setup */
2868 tANI_U16 baSSN;
2869
2870 /* ADDBA direction
2871 1 - Originator
2872 0 - Recipient */
2873 tANI_U8 baDirection;
2874} tAddBASessionParams, *tpAddBASessionParams;
2875
2876typedef PACKED_PRE struct PACKED_POST
2877{
2878 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002879 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002880}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2881
2882/*---------------------------------------------------------------------------
2883 * WLAN_HAL_ADD_BA_SESSION_RSP
2884 *--------------------------------------------------------------------------*/
2885
2886typedef PACKED_PRE struct PACKED_POST
2887{
2888 /*success or failure */
2889 tANI_U32 status;
2890
2891 /* Dialog token */
2892 tANI_U8 baDialogToken;
2893
2894 /* TID for which the BA session has been setup */
2895 tANI_U8 baTID;
2896
2897 /* BA Buffer Size allocated for the current BA session */
2898 tANI_U8 baBufferSize;
2899
2900 tANI_U8 baSessionID;
2901
2902 /* Reordering Window buffer */
2903 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002904
Jeff Johnson295189b2012-06-20 16:38:30 -07002905 /*Station Index to id the sta */
2906 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002907
Jeff Johnson295189b2012-06-20 16:38:30 -07002908 /* Starting Sequence Number */
2909 tANI_U16 SSN;
2910} tAddBASessionRspParams, *tpAddBASessionRspParams;
2911
2912typedef PACKED_PRE struct PACKED_POST
2913{
2914 tHalMsgHeader header;
2915 tAddBASessionRspParams addBASessionRspParams;
2916} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2917
2918/*---------------------------------------------------------------------------
2919 * WLAN_HAL_ADD_BA_REQ
2920 *--------------------------------------------------------------------------*/
2921
2922typedef PACKED_PRE struct PACKED_POST
2923{
2924 /* Session Id */
2925 tANI_U8 baSessionID;
2926
2927 /* Reorder Window Size */
2928 tANI_U8 winSize;
2929
2930#ifdef FEATURE_ON_CHIP_REORDERING
2931 tANI_BOOLEAN isReorderingDoneOnChip;
2932#endif
2933} tAddBAParams, *tpAddBAParams;
2934
2935typedef PACKED_PRE struct PACKED_POST
2936{
2937 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002938 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002939} tAddBAReqMsg, *tpAddBAReqMsg;
2940
2941
2942/*---------------------------------------------------------------------------
2943 * WLAN_HAL_ADD_BA_RSP
2944 *--------------------------------------------------------------------------*/
2945
2946typedef PACKED_PRE struct PACKED_POST
2947{
2948 /*success or failure */
2949 tANI_U32 status;
2950
2951 /* Dialog token */
2952 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002953
Jeff Johnson295189b2012-06-20 16:38:30 -07002954} tAddBARspParams, *tpAddBARspParams;
2955
2956typedef PACKED_PRE struct PACKED_POST
2957{
2958 tHalMsgHeader header;
2959 tAddBARspParams addBARspParams;
2960} tAddBARspMsg, *tpAddBARspMsg;
2961
2962
2963/*---------------------------------------------------------------------------
2964 * WLAN_HAL_TRIGGER_BA_REQ
2965 *--------------------------------------------------------------------------*/
2966
2967
2968typedef struct sAddBaInfo
2969{
2970 tANI_U16 fBaEnable : 1;
2971 tANI_U16 startingSeqNum: 12;
2972 tANI_U16 reserved : 3;
2973}tAddBaInfo, *tpAddBaInfo;
2974
2975typedef struct sTriggerBaRspCandidate
2976{
2977 tSirMacAddr staAddr;
2978 tAddBaInfo baInfo[STACFG_MAX_TC];
2979}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2980
2981typedef struct sTriggerBaCandidate
2982{
2983 tANI_U8 staIdx;
2984 tANI_U8 tidBitmap;
2985}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2986
2987typedef PACKED_PRE struct PACKED_POST
2988{
2989 /* Session Id */
2990 tANI_U8 baSessionID;
2991
Jeff Johnson32d95a32012-09-10 13:15:23 -07002992 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002993 * Candidate List(tTriggerBaCandidate)
2994 */
2995 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002996
Jeff Johnson295189b2012-06-20 16:38:30 -07002997} tTriggerBAParams, *tpTriggerBAParams;
2998
2999typedef PACKED_PRE struct PACKED_POST
3000{
3001 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003002 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003003} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3004
3005
3006/*---------------------------------------------------------------------------
3007 * WLAN_HAL_TRIGGER_BA_RSP
3008 *--------------------------------------------------------------------------*/
3009
3010typedef PACKED_PRE struct PACKED_POST
3011{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003012
Jeff Johnson295189b2012-06-20 16:38:30 -07003013 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003014 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003015
3016 /* success or failure */
3017 tANI_U32 status;
3018
Jeff Johnson32d95a32012-09-10 13:15:23 -07003019 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003020 * Rsp Candidate List(tTriggerRspBaCandidate)
3021 */
3022 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003023
Jeff Johnson295189b2012-06-20 16:38:30 -07003024
3025} tTriggerBARspParams, *tpTriggerBARspParams;
3026
3027typedef PACKED_PRE struct PACKED_POST
3028{
3029 tHalMsgHeader header;
3030 tTriggerBARspParams triggerBARspParams;
3031} tTriggerBARspMsg, *tpTriggerBARspMsg;
3032
3033/*---------------------------------------------------------------------------
3034 * WLAN_HAL_DEL_BA_REQ
3035 *--------------------------------------------------------------------------*/
3036
3037typedef PACKED_PRE struct PACKED_POST
3038{
3039 /* Station Index */
3040 tANI_U16 staIdx;
3041
3042 /* TID for which the BA session is being deleted */
3043 tANI_U8 baTID;
3044
3045 /* DELBA direction
3046 1 - Originator
3047 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003048 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003049} tDelBAParams, *tpDelBAParams;
3050
3051typedef PACKED_PRE struct PACKED_POST
3052{
3053 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003054 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003055} tDelBAReqMsg, *tpDelBAReqMsg;
3056
3057/*---------------------------------------------------------------------------
3058 * WLAN_HAL_DEL_BA_RSP
3059 *--------------------------------------------------------------------------*/
3060
3061typedef PACKED_PRE struct PACKED_POST
3062{
3063 /* success or failure */
3064 tANI_U32 status;
3065} tDelBARspParams, *tpDelBARspParams;
3066
3067typedef PACKED_PRE struct PACKED_POST
3068{
3069 tHalMsgHeader header;
3070 tDelBARspParams delBARspParams;
3071} tDelBARspMsg, *tpDelBARspMsg;
3072
3073
3074#ifdef FEATURE_WLAN_CCX
3075
3076/*---------------------------------------------------------------------------
3077 * WLAN_HAL_TSM_STATS_REQ
3078 *--------------------------------------------------------------------------*/
3079typedef PACKED_PRE struct PACKED_POST
3080{
3081 /* Traffic Id */
3082 tANI_U8 tsmTID;
3083
3084 tSirMacAddr bssId;
3085} tTsmStatsParams, *tpTsmStatsParams;
3086
3087typedef PACKED_PRE struct PACKED_POST
3088{
3089 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003090 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003091} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3092
3093
3094/*---------------------------------------------------------------------------
3095 * WLAN_HAL_TSM_STATS_RSP
3096 *--------------------------------------------------------------------------*/
3097typedef PACKED_PRE struct PACKED_POST
3098{
3099 /*success or failure */
3100 tANI_U32 status;
3101
Jeff Johnson32d95a32012-09-10 13:15:23 -07003102 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003103 tANI_U16 UplinkPktQueueDly;
3104
Jeff Johnson32d95a32012-09-10 13:15:23 -07003105 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003106 tANI_U16 UplinkPktQueueDlyHist[4];
3107
Jeff Johnson32d95a32012-09-10 13:15:23 -07003108 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003109 tANI_U32 UplinkPktTxDly;
3110
Jeff Johnson32d95a32012-09-10 13:15:23 -07003111 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003112 tANI_U16 UplinkPktLoss;
3113
Jeff Johnson32d95a32012-09-10 13:15:23 -07003114 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003115 tANI_U16 UplinkPktCount;
3116
Jeff Johnson32d95a32012-09-10 13:15:23 -07003117 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003118 tANI_U8 RoamingCount;
3119
Jeff Johnson32d95a32012-09-10 13:15:23 -07003120 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003121 tANI_U16 RoamingDly;
3122} tTsmStatsRspParams, *tpTsmStatsRspParams;
3123
3124typedef PACKED_PRE struct PACKED_POST
3125{
3126 tHalMsgHeader header;
3127 tTsmStatsRspParams tsmStatsRspParams;
3128} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3129
3130
3131#endif
3132
3133/*---------------------------------------------------------------------------
3134 * WLAN_HAL_SET_KEYDONE_MSG
3135 *--------------------------------------------------------------------------*/
3136
3137typedef PACKED_PRE struct PACKED_POST
3138{
3139 /*bssid of the keys */
3140 tANI_U8 bssidx;
3141 tANI_U8 encType;
3142} tSetKeyDoneParams, *tpSetKeyDoneParams;
3143
3144typedef PACKED_PRE struct PACKED_POST
3145{
3146 tHalMsgHeader header;
3147 tSetKeyDoneParams setKeyDoneParams;
3148} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3149
3150/*---------------------------------------------------------------------------
3151 * WLAN_HAL_DOWNLOAD_NV_REQ
3152 *--------------------------------------------------------------------------*/
3153typedef PACKED_PRE struct PACKED_POST
3154{
3155 /* Fragment sequence number of the NV Image. Note that NV Image might not
3156 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003157 * can hence choose to chop the NV blob into multiple fragments starting with
3158 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003159 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3160 * concatenated together by HAL without any padding bytes in between.*/
3161 tANI_U16 fragNumber;
3162
3163 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003164 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003165 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3166 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3167 tANI_U16 isLastFragment;
3168
3169 /* NV Image size (number of bytes) */
3170 tANI_U32 nvImgBufferSize;
3171
3172 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3173 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3174} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3175
3176typedef PACKED_PRE struct PACKED_POST
3177{
3178 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3179 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3180 tHalMsgHeader header;
3181 tHalNvImgDownloadReqParams nvImageReqParams;
3182} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3183
3184/*---------------------------------------------------------------------------
3185 * WLAN_HAL_DOWNLOAD_NV_RSP
3186 *--------------------------------------------------------------------------*/
3187typedef PACKED_PRE struct PACKED_POST
3188{
3189 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3190 * after each fragment */
3191 tANI_U32 status;
3192} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3193
3194typedef PACKED_PRE struct PACKED_POST
3195{
3196 tHalMsgHeader header;
3197 tHalNvImgDownloadRspParams nvImageRspParams;
3198} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3199
3200/*---------------------------------------------------------------------------
3201 * WLAN_HAL_STORE_NV_IND
3202 *--------------------------------------------------------------------------*/
3203typedef PACKED_PRE struct PACKED_POST
3204{
3205 /* NV Item */
3206 eNvTable tableID;
3207
3208 /* Size of NV Blob */
3209 tANI_U32 nvBlobSize;
3210
Jeff Johnson32d95a32012-09-10 13:15:23 -07003211 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003212 * NV blob i.e. uint8[nvBlobSize] */
3213} tHalNvStoreParams, *tpHalNvStoreParams;
3214
3215typedef PACKED_PRE struct PACKED_POST
3216{
3217 /* Note: The length specified in tHalNvStoreInd messages should be
3218 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3219 tHalMsgHeader header;
3220 tHalNvStoreParams nvStoreParams;
3221} tHalNvStoreInd, *tpHalNvStoreInd;
3222
3223/* End of Block Ack Related Parameters */
3224
3225/*---------------------------------------------------------------------------
3226 * WLAN_HAL_MIC_FAILURE_IND
3227 *--------------------------------------------------------------------------*/
3228
3229#define SIR_CIPHER_SEQ_CTR_SIZE 6
3230
3231typedef PACKED_PRE struct PACKED_POST
3232{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003233 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003234 tSirMacAddr taMacAddr; //transmitter address
3235 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003236 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003237 tANI_U8 IV1; // first byte of IV
3238 tANI_U8 keyId; // second byte of IV
3239 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3240 tSirMacAddr rxMacAddr; // receive address
3241} tSirMicFailureInfo, *tpSirMicFailureInfo;
3242
3243/* Definition for MIC failure indication
3244 MAC reports this each time a MIC failure occures on Rx TKIP packet
3245 */
3246typedef PACKED_PRE struct PACKED_POST
3247{
3248 tSirMacAddr bssId; // BSSID
3249 tSirMicFailureInfo info;
3250} tSirMicFailureInd, *tpSirMicFailureInd;
3251
3252typedef PACKED_PRE struct PACKED_POST
3253{
3254 tHalMsgHeader header;
3255 tSirMicFailureInd micFailureInd;
3256} tMicFailureIndMsg, *tpMicFailureIndMsg;
3257
Mohit Khanna4a70d262012-09-11 16:30:12 -07003258typedef PACKED_PRE struct PACKED_POST
3259{
3260 tANI_U16 opMode;
3261 tANI_U16 staId;
3262}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3263
3264typedef PACKED_PRE struct PACKED_POST
3265{
3266 tHalMsgHeader header;
3267 tUpdateVHTOpMode updateVhtOpMode;
3268} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3269
3270typedef PACKED_PRE struct PACKED_POST
3271{
3272 tANI_U32 status;
3273} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3274
3275typedef PACKED_PRE struct PACKED_POST
3276{
3277 tHalMsgHeader header;
3278 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3279} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3280
Jeff Johnson295189b2012-06-20 16:38:30 -07003281/*---------------------------------------------------------------------------
3282 * WLAN_HAL_UPDATE_BEACON_REQ
3283 *--------------------------------------------------------------------------*/
3284typedef PACKED_PRE struct PACKED_POST
3285{
3286
3287 tANI_U8 bssIdx;
3288
3289 //shortPreamble mode. HAL should update all the STA rates when it
3290 //receives this message
3291 tANI_U8 fShortPreamble;
3292 //short Slot time.
3293 tANI_U8 fShortSlotTime;
3294 //Beacon Interval
3295 tANI_U16 beaconInterval;
3296 //Protection related
3297 tANI_U8 llaCoexist;
3298 tANI_U8 llbCoexist;
3299 tANI_U8 llgCoexist;
3300 tANI_U8 ht20MhzCoexist;
3301 tANI_U8 llnNonGFCoexist;
3302 tANI_U8 fLsigTXOPProtectionFullSupport;
3303 tANI_U8 fRIFSMode;
3304
3305 tANI_U16 paramChangeBitmap;
3306}tUpdateBeaconParams, *tpUpdateBeaconParams;
3307
3308
3309typedef PACKED_PRE struct PACKED_POST
3310{
3311 tHalMsgHeader header;
3312 tUpdateBeaconParams updateBeaconParam;
3313} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3314
3315/*---------------------------------------------------------------------------
3316 * WLAN_HAL_UPDATE_BEACON_RSP
3317 *--------------------------------------------------------------------------*/
3318typedef PACKED_PRE struct PACKED_POST
3319{
3320 tANI_U32 status;
3321} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3322
3323typedef PACKED_PRE struct PACKED_POST
3324{
3325 tHalMsgHeader header;
3326 tUpdateBeaconRspParams updateBeaconRspParam;
3327} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3328
3329/*---------------------------------------------------------------------------
3330 * WLAN_HAL_SEND_BEACON_REQ
3331 *--------------------------------------------------------------------------*/
3332typedef PACKED_PRE struct PACKED_POST
3333{
3334 tANI_U32 beaconLength; //length of the template.
3335 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3336 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003337 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003338 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3339}tSendBeaconParams, *tpSendBeaconParams;
3340
3341
3342typedef PACKED_PRE struct PACKED_POST
3343{
3344 tHalMsgHeader header;
3345 tSendBeaconParams sendBeaconParam;
3346}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3347
3348/*---------------------------------------------------------------------------
3349 * WLAN_HAL_SEND_BEACON_RSP
3350 *--------------------------------------------------------------------------*/
3351typedef PACKED_PRE struct PACKED_POST
3352{
3353 tANI_U32 status;
3354} tSendBeaconRspParams, *tpSendBeaconRspParams;
3355
3356typedef PACKED_PRE struct PACKED_POST
3357{
3358 tHalMsgHeader header;
3359 tSendBeaconRspParams sendBeaconRspParam;
3360} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3361
3362#ifdef FEATURE_5GHZ_BAND
3363
3364/*---------------------------------------------------------------------------
3365 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3366 *--------------------------------------------------------------------------*/
3367typedef PACKED_PRE struct PACKED_POST
3368{
3369 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003370 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003371}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3372
3373
3374typedef PACKED_PRE struct PACKED_POST
3375{
3376 /* Link Parameters */
3377 tSirEnableRadarInfoType EnableRadarInfo;
3378}tEnableRadarReqParams, *tpEnableRadarReqParams;
3379
3380typedef PACKED_PRE struct PACKED_POST
3381{
3382 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003383 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003384}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3385
3386/*---------------------------------------------------------------------------
3387 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3388 *--------------------------------------------------------------------------*/
3389
3390typedef PACKED_PRE struct PACKED_POST
3391{
3392 /* Link Parameters */
3393 tSirMacAddr BSSID;
3394 /* success or failure */
3395 tANI_U32 status;
3396}tEnableRadarRspParams, *tpEnableRadarRspParams;
3397
3398typedef PACKED_PRE struct PACKED_POST
3399{
3400 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003401 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003402}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3403
3404/*---------------------------------------------------------------------------
3405 *WLAN_HAL_RADAR_DETECT_INTR_IND
3406 *--------------------------------------------------------------------------*/
3407
3408typedef PACKED_PRE struct PACKED_POST
3409{
3410 tANI_U8 radarDetChannel;
3411}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3412
3413typedef PACKED_PRE struct PACKED_POST
3414{
3415 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003416 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003417}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3418
3419/*---------------------------------------------------------------------------
3420 *WLAN_HAL_RADAR_DETECT_IND
3421 *-------------------------------------------------------------------------*/
3422typedef PACKED_PRE struct PACKED_POST
3423{
3424 /*channel number in which the RADAR detected*/
3425 tANI_U8 channelNumber;
3426
3427 /*RADAR pulse width*/
3428 tANI_U16 radarPulseWidth; // in usecond
3429
3430 /*Number of RADAR pulses */
3431 tANI_U16 numRadarPulse;
3432}tRadarDetectIndParams,*tpRadarDetectIndParams;
3433
3434typedef PACKED_PRE struct PACKED_POST
3435{
3436 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003437 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003438}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3439
3440
3441/*---------------------------------------------------------------------------
3442 *WLAN_HAL_GET_TPC_REPORT_REQ
3443 *-------------------------------------------------------------------------*/
3444typedef PACKED_PRE struct PACKED_POST
3445{
3446 tSirMacAddr sta;
3447 tANI_U8 dialogToken;
3448 tANI_U8 txpower;
3449}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3450
3451
3452typedef PACKED_PRE struct PACKED_POST
3453{
3454 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003455 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003456}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3457
3458/*---------------------------------------------------------------------------
3459 * WLAN_HAL_GET_TPC_REPORT_RSP
3460 *--------------------------------------------------------------------------*/
3461
3462typedef PACKED_PRE struct PACKED_POST
3463{
3464 /* success or failure */
3465 tANI_U32 status;
3466}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3467
3468typedef PACKED_PRE struct PACKED_POST
3469{
3470 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003471 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003472}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3473
3474#endif
3475
Jeff Johnson295189b2012-06-20 16:38:30 -07003476/*---------------------------------------------------------------------------
3477 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3478 *-------------------------------------------------------------------------*/
3479typedef PACKED_PRE struct PACKED_POST
3480{
3481 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3482 tANI_U32 probeRespTemplateLen;
3483 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3484 tSirMacAddr bssId;
3485
3486}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3487
3488typedef PACKED_PRE struct PACKED_POST
3489{
3490 tHalMsgHeader header;
3491 tSendProbeRespReqParams sendProbeRespReqParams ;
3492}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3493
3494/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003495 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003496 *--------------------------------------------------------------------------*/
3497
3498typedef PACKED_PRE struct PACKED_POST
3499{
3500 /* success or failure */
3501 tANI_U32 status;
3502}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3503
3504typedef PACKED_PRE struct PACKED_POST
3505{
3506 tHalMsgHeader header;
3507 tSendProbeRespRspParams sendProbeRespRspParams;
3508}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3509
3510
3511/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003512 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003513 *--------------------------------------------------------------------------*/
3514
3515typedef PACKED_PRE struct PACKED_POST
3516{
3517 /* success or failure */
3518 tANI_U32 status;
3519}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3520
3521typedef PACKED_PRE struct PACKED_POST
3522{
3523 tHalMsgHeader header;
3524 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3525}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3526
3527/*---------------------------------------------------------------------------
3528 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3529 *--------------------------------------------------------------------------*/
3530
3531typedef PACKED_PRE struct PACKED_POST
3532{
3533 tANI_U16 assocId;
3534 tANI_U16 staId;
3535 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3536 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003537 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003538 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003539
3540}tDeleteStaContextParams, *tpDeleteStaContextParams;
3541
3542
3543typedef PACKED_PRE struct PACKED_POST
3544{
3545 tHalMsgHeader header;
3546 tDeleteStaContextParams deleteStaContextParams;
3547}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3548
Anand Kumar012623a2013-01-11 17:00:00 -08003549typedef PACKED_PRE struct PACKED_POST
3550{
3551 tHalMsgHeader header;
3552 tANI_U8 assocId;
3553 tANI_U8 staIdx;
3554 tANI_U8 bssIdx;
3555 tANI_U8 uReasonCode;
3556 tANI_U32 uStatus;
3557} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003558
3559/*---------------------------------------------------------------------------
3560 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3561 *--------------------------------------------------------------------------*/
3562
3563typedef PACKED_PRE struct PACKED_POST
3564{
3565 tBtAmpEventType btAmpEventType;
3566
3567}tBtAmpEventParams, *tpBtAmpEventParams;
3568
3569
3570
3571typedef PACKED_PRE struct PACKED_POST
3572{
3573 tHalMsgHeader header;
3574 tBtAmpEventParams btAmpEventParams;
3575}tBtAmpEventMsg, *tpBtAmpEventMsg;
3576
3577/*---------------------------------------------------------------------------
3578*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3579*--------------------------------------------------------------------------*/
3580
3581typedef PACKED_PRE struct PACKED_POST
3582{
3583 /* success or failure */
3584 tANI_U32 status;
3585}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3586
3587typedef PACKED_PRE struct PACKED_POST
3588{
3589 tHalMsgHeader header;
3590 tBtAmpEventRspParams btAmpEventRspParams;
3591}tBtAmpEventRsp, *tpBtAmpEventRsp;
3592
3593
3594/*---------------------------------------------------------------------------
3595 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3596 *--------------------------------------------------------------------------*/
3597
3598typedef PACKED_PRE struct PACKED_POST
3599{
3600 // Station Index. originates from HAL
3601 tANI_U8 ucSTAId;
3602
3603 // TID for which the transmit queue is being flushed
3604 tANI_U8 ucTid;
3605
3606}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3607
3608
3609typedef PACKED_PRE struct PACKED_POST
3610{
3611 tHalMsgHeader header;
3612 tTlHalFlushAcParams tlHalFlushAcParam;
3613}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3614
3615/*---------------------------------------------------------------------------
3616*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3617*--------------------------------------------------------------------------*/
3618
3619typedef PACKED_PRE struct PACKED_POST
3620{
3621 // Station Index. originates from HAL
3622 tANI_U8 ucSTAId;
3623
3624 // TID for which the transmit queue is being flushed
3625 tANI_U8 ucTid;
3626
3627 /* success or failure */
3628 tANI_U32 status;
3629}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3630
3631typedef PACKED_PRE struct PACKED_POST
3632{
3633 tHalMsgHeader header;
3634 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3635}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3636
3637/*---------------------------------------------------------------------------
3638 * WLAN_HAL_ENTER_IMPS_REQ
3639 *--------------------------------------------------------------------------*/
3640typedef PACKED_PRE struct PACKED_POST
3641{
3642 tHalMsgHeader header;
3643} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3644
3645/*---------------------------------------------------------------------------
3646 * WLAN_HAL_EXIT_IMPS_REQ
3647 *--------------------------------------------------------------------------*/
3648typedef PACKED_PRE struct PACKED_POST
3649{
3650 tHalMsgHeader header;
3651} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3652
3653/*---------------------------------------------------------------------------
3654 * WLAN_HAL_ENTER_BMPS_REQ
3655 *--------------------------------------------------------------------------*/
3656
3657typedef PACKED_PRE struct PACKED_POST
3658{
3659 tANI_U8 bssIdx;
3660 //TBTT value derived from the last beacon
3661#ifndef BUILD_QWPTTSTATIC
3662 tANI_U64 tbtt;
3663#endif
3664 tANI_U8 dtimCount;
3665 //DTIM period given to HAL during association may not be valid,
3666 //if association is based on ProbeRsp instead of beacon.
3667 tANI_U8 dtimPeriod;
3668
3669 // For CCX and 11R Roaming
3670 tANI_U32 rssiFilterPeriod;
3671 tANI_U32 numBeaconPerRssiAverage;
3672 tANI_U8 bRssiFilterEnable;
3673
3674} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3675
3676
3677typedef PACKED_PRE struct PACKED_POST
3678{
3679 tHalMsgHeader header;
3680 tHalEnterBmpsReqParams enterBmpsReq;
3681} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3682
3683/*---------------------------------------------------------------------------
3684 * WLAN_HAL_EXIT_BMPS_REQ
3685 *--------------------------------------------------------------------------*/
3686typedef PACKED_PRE struct PACKED_POST
3687{
3688 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003689 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003690} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3691
3692typedef PACKED_PRE struct PACKED_POST
3693{
3694 tHalMsgHeader header;
3695 tHalExitBmpsReqParams exitBmpsReqParams;
3696} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3697
3698/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003699 * WLAN_HAL_MISSED_BEACON_IND
3700 *--------------------------------------------------------------------------*/
3701typedef PACKED_PRE struct PACKED_POST
3702{
3703 tANI_U8 bssIdx;
3704} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3705
3706typedef PACKED_PRE struct PACKED_POST
3707{
3708 tHalMsgHeader header;
3709 tHalMissedBeaconIndParams missedBeaconIndParams;
3710} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3711
3712/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003713 * WLAN_HAL_ADD_BCN_FILTER_REQ
3714 *--------------------------------------------------------------------------*/
3715/* Beacon Filtering data structures */
3716typedef PACKED_PRE struct PACKED_POST
3717{
3718 tANI_U8 offset;
3719 tANI_U8 value;
3720 tANI_U8 bitMask;
3721 tANI_U8 ref;
3722} tEidByteInfo, *tpEidByteInfo;
3723
Jeff Johnson32d95a32012-09-10 13:15:23 -07003724typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003725{
3726 tANI_U16 capabilityInfo;
3727 tANI_U16 capabilityMask;
3728 tANI_U16 beaconInterval;
3729 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003730 tANI_U8 bssIdx;
3731 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003732} tBeaconFilterMsg, *tpBeaconFilterMsg;
3733
3734/* The above structure would be followed by multiple of below mentioned structure */
3735typedef PACKED_PRE struct PACKED_POST
3736{
3737 tANI_U8 elementId;
3738 tANI_U8 checkIePresence;
3739 tEidByteInfo byte;
3740} tBeaconFilterIe, *tpBeaconFilterIe;
3741
3742typedef PACKED_PRE struct PACKED_POST
3743{
3744 tHalMsgHeader header;
3745 tBeaconFilterMsg addBcnFilterParams;
3746} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3747
3748/*---------------------------------------------------------------------------
3749 * WLAN_HAL_REM_BCN_FILTER_REQ
3750 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003751typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003752{
3753 tANI_U8 ucIeCount;
3754 tANI_U8 ucRemIeId[1];
3755} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3756
3757typedef PACKED_PRE struct PACKED_POST
3758{
3759 tHalMsgHeader header;
3760 tRemBeaconFilterMsg remBcnFilterParams;
3761} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3762
3763/*---------------------------------------------------------------------------
3764 * WLAN_HAL_HOST_OFFLOAD_REQ
3765 *--------------------------------------------------------------------------*/
3766#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3767#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3768#define HAL_IPV6_NS_OFFLOAD 2
3769#define HAL_IPV6_ADDR_LEN 16
3770#define HAL_MAC_ADDR_LEN 6
3771#define HAL_OFFLOAD_DISABLE 0
3772#define HAL_OFFLOAD_ENABLE 1
3773#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003774#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003775#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003776#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003777
3778typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3779{
3780 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3781 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3782 //Only support 2 possible Network Advertisement IPv6 address
3783 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3784 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3785 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3786 tANI_U8 srcIPv6AddrValid : 1;
3787 tANI_U8 targetIPv6Addr1Valid : 1;
3788 tANI_U8 targetIPv6Addr2Valid : 1;
3789 tANI_U8 reserved1 : 5;
3790 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003791 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003792 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003793} tHalNSOffloadParams;
3794
3795typedef PACKED_PRE struct PACKED_POST
3796{
3797 tANI_U8 offloadType;
3798 tANI_U8 enableOrDisable;
3799 PACKED_PRE union PACKED_POST
3800 {
3801 tANI_U8 hostIpv4Addr [4];
3802 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3803 } params;
3804} tHalHostOffloadReq, *tpHalHostOffloadReq;
3805
3806typedef PACKED_PRE struct PACKED_POST
3807{
3808 tHalMsgHeader header;
3809 tHalHostOffloadReq hostOffloadParams;
3810 tHalNSOffloadParams nsOffloadParams;
3811} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3812
3813/*---------------------------------------------------------------------------
3814 * WLAN_HAL_KEEP_ALIVE_REQ
3815 *--------------------------------------------------------------------------*/
3816/* Packet Types. */
3817#define HAL_KEEP_ALIVE_NULL_PKT 1
3818#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3819
3820/* Enable or disable keep alive */
3821#define HAL_KEEP_ALIVE_DISABLE 0
3822#define HAL_KEEP_ALIVE_ENABLE 1
3823
3824/* Keep Alive request. */
3825typedef PACKED_PRE struct PACKED_POST
3826{
3827 tANI_U8 packetType;
3828 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003829 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003830 tHalIpv4Addr destIpv4Addr;
3831 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003832 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003833} tHalKeepAliveReq, *tpHalKeepAliveReq;
3834
3835typedef PACKED_PRE struct PACKED_POST
3836{
3837 tHalMsgHeader header;
3838 tHalKeepAliveReq KeepAliveParams;
3839} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3840
3841/*---------------------------------------------------------------------------
3842 * WLAN_HAL_SET_RSSI_THRESH_REQ
3843 *--------------------------------------------------------------------------*/
3844typedef PACKED_PRE struct PACKED_POST
3845{
3846 tANI_S8 ucRssiThreshold1 : 8;
3847 tANI_S8 ucRssiThreshold2 : 8;
3848 tANI_S8 ucRssiThreshold3 : 8;
3849 tANI_U8 bRssiThres1PosNotify : 1;
3850 tANI_U8 bRssiThres1NegNotify : 1;
3851 tANI_U8 bRssiThres2PosNotify : 1;
3852 tANI_U8 bRssiThres2NegNotify : 1;
3853 tANI_U8 bRssiThres3PosNotify : 1;
3854 tANI_U8 bRssiThres3NegNotify : 1;
3855 tANI_U8 bReserved10 : 2;
3856} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003857
Jeff Johnson295189b2012-06-20 16:38:30 -07003858typedef PACKED_PRE struct PACKED_POST
3859{
3860 tHalMsgHeader header;
3861 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003862} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003863
3864/*---------------------------------------------------------------------------
3865 * WLAN_HAL_ENTER_UAPSD_REQ
3866 *--------------------------------------------------------------------------*/
3867typedef PACKED_PRE struct PACKED_POST
3868{
3869 tANI_U8 bkDeliveryEnabled:1;
3870 tANI_U8 beDeliveryEnabled:1;
3871 tANI_U8 viDeliveryEnabled:1;
3872 tANI_U8 voDeliveryEnabled:1;
3873 tANI_U8 bkTriggerEnabled:1;
3874 tANI_U8 beTriggerEnabled:1;
3875 tANI_U8 viTriggerEnabled:1;
3876 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003877 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003878} tUapsdReqParams, *tpUapsdReqParams;
3879
3880typedef PACKED_PRE struct PACKED_POST
3881{
3882 tHalMsgHeader header;
3883 tUapsdReqParams enterUapsdParams;
3884} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3885
3886/*---------------------------------------------------------------------------
3887 * WLAN_HAL_EXIT_UAPSD_REQ
3888 *--------------------------------------------------------------------------*/
3889typedef PACKED_PRE struct PACKED_POST
3890{
3891 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003892 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003893} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3894
3895/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07003896 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
3897 *--------------------------------------------------------------------------*/
3898typedef PACKED_PRE struct PACKED_POST
3899{
3900 tANI_U32 selfStaIdx:8;
3901 tANI_U32 ucPtrnId:8; // Pattern ID
3902 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
3903 tANI_U32 uPtrnIntervalMs; // In msec
3904 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
3905} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
3906
3907typedef PACKED_PRE struct PACKED_POST
3908{
3909 tHalMsgHeader header;
3910 tHalAddPeriodicTxPtrn ptrnParams;
3911} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
3912
3913/*---------------------------------------------------------------------------
3914 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
3915 *--------------------------------------------------------------------------*/
3916typedef PACKED_PRE struct PACKED_POST
3917{
3918 tANI_U32 selfStaIdx:8;
3919 tANI_U32 rsvd:24;
3920 /* Bitmap of pattern IDs that needs to be deleted */
3921 tANI_U32 uPatternIdBitmap;
3922} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
3923
3924typedef PACKED_PRE struct PACKED_POST
3925{
3926 tHalMsgHeader header;
3927 tHalDelPeriodicTxPtrn ptrnParams;
3928} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
3929
3930/*---------------------------------------------------------------------------
3931 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
3932 *--------------------------------------------------------------------------*/
3933typedef PACKED_PRE struct PACKED_POST
3934{
3935 /* Type of Failure indication */
3936 tANI_U32 bssIdx:8;
3937 tANI_U32 selfStaIdx:8;
3938 tANI_U32 rsvd:16;
3939 tANI_U32 status;
3940 tANI_U32 patternIdBitmap;
3941} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
3942
3943typedef PACKED_PRE struct PACKED_POST
3944{
3945 tHalMsgHeader header;
3946 tHalPeriodicTxPtrnFwInd fwIndParams;
3947} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
3948
3949/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003950 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3951 *--------------------------------------------------------------------------*/
3952#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3953#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3954
3955typedef PACKED_PRE struct PACKED_POST
3956{
3957 tANI_U8 ucPatternId; // Pattern ID
3958 // Pattern byte offset from beginning of the 802.11 packet to start of the
3959 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003960 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003961 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3962 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3963 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3964 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3965 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3966 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003967 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003968} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3969
3970typedef PACKED_PRE struct PACKED_POST
3971{
3972 tHalMsgHeader header;
3973 tHalWowlAddBcastPtrn ptrnParams;
3974} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003975
Jeff Johnsone7245742012-09-05 17:12:55 -07003976
3977
Jeff Johnson295189b2012-06-20 16:38:30 -07003978/*---------------------------------------------------------------------------
3979 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3980 *--------------------------------------------------------------------------*/
3981typedef PACKED_PRE struct PACKED_POST
3982{
3983 /* Pattern ID of the wakeup pattern to be deleted */
3984 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003985 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003986} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3987
3988typedef PACKED_PRE struct PACKED_POST
3989{
3990 tHalMsgHeader header;
3991 tHalWowlDelBcastPtrn ptrnParams;
3992} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3993
3994/*---------------------------------------------------------------------------
3995 * WLAN_HAL_ENTER_WOWL_REQ
3996 *--------------------------------------------------------------------------*/
3997typedef PACKED_PRE struct PACKED_POST
3998{
3999 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004000 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004001
4002 /* Magic pattern */
4003 tSirMacAddr magicPtrn;
4004
Jeff Johnson32d95a32012-09-10 13:15:23 -07004005 /* Enables/disables packet pattern filtering in firmware.
4006 Enabling this flag enables broadcast pattern matching
4007 in Firmware. If unicast pattern matching is also desired,
4008 ucUcastPatternFilteringEnable flag must be set tot true
4009 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004010 */
4011 tANI_U8 ucPatternFilteringEnable;
4012
Jeff Johnson32d95a32012-09-10 13:15:23 -07004013 /* Enables/disables unicast packet pattern filtering.
4014 This flag specifies whether we want to do pattern match
4015 on unicast packets as well and not just broadcast packets.
4016 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004017 (main controlling flag) is set to false
4018 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004019 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004020
Jeff Johnson32d95a32012-09-10 13:15:23 -07004021 /* This configuration is valid only when magicPktEnable=1.
4022 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004023 * Channel Switch Action Frame.
4024 */
4025 tANI_U8 ucWowChnlSwitchRcv;
4026
Jeff Johnson32d95a32012-09-10 13:15:23 -07004027 /* This configuration is valid only when magicPktEnable=1.
4028 * It requests hardware to wake up when it receives the
4029 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004030 */
4031 tANI_U8 ucWowDeauthRcv;
4032
Jeff Johnson32d95a32012-09-10 13:15:23 -07004033 /* This configuration is valid only when magicPktEnable=1.
4034 * It requests hardware to wake up when it receives the
4035 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004036 */
4037 tANI_U8 ucWowDisassocRcv;
4038
Jeff Johnson32d95a32012-09-10 13:15:23 -07004039 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004040 * It requests hardware to wake up when it has missed
4041 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07004042 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004043 */
4044 tANI_U8 ucWowMaxMissedBeacons;
4045
Jeff Johnson32d95a32012-09-10 13:15:23 -07004046 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004047 * This is a timeout value in units of microsec. It requests
4048 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07004049 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004050 */
4051 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004052
Jeff Johnson295189b2012-06-20 16:38:30 -07004053 /* This configuration directs the WoW packet filtering to look for EAP-ID
4054 * requests embedded in EAPOL frames and use this as a wake source.
4055 */
4056 tANI_U8 ucWoWEAPIDRequestEnable;
4057
4058 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4059 * requests and use this as a wake source.
4060 */
4061 tANI_U8 ucWoWEAPOL4WayEnable;
4062
4063 /* This configuration allows a host wakeup on an network scan offload match.
4064 */
4065 tANI_U8 ucWowNetScanOffloadMatch;
4066
4067 /* This configuration allows a host wakeup on any GTK rekeying error.
4068 */
4069 tANI_U8 ucWowGTKRekeyError;
4070
4071 /* This configuration allows a host wakeup on BSS connection loss.
4072 */
4073 tANI_U8 ucWoWBSSConnLoss;
4074
Jeff Johnsone7245742012-09-05 17:12:55 -07004075 tANI_U8 bssIdx;
4076
Jeff Johnson295189b2012-06-20 16:38:30 -07004077} tHalWowlEnterParams, *tpHalWowlEnterParams;
4078
4079typedef PACKED_PRE struct PACKED_POST
4080{
4081 tHalMsgHeader header;
4082 tHalWowlEnterParams enterWowlParams;
4083} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4084
4085/*---------------------------------------------------------------------------
4086 * WLAN_HAL_EXIT_WOWL_REQ
4087 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004088
Jeff Johnson295189b2012-06-20 16:38:30 -07004089typedef PACKED_PRE struct PACKED_POST
4090{
Jeff Johnsone7245742012-09-05 17:12:55 -07004091 tANI_U8 bssIdx;
4092
4093} tHalWowlExitParams, *tpHalWowlExitParams;
4094
4095typedef PACKED_PRE struct PACKED_POST
4096{
4097 tHalMsgHeader header;
4098 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004099} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4100
4101/*---------------------------------------------------------------------------
4102 * WLAN_HAL_GET_RSSI_REQ
4103 *--------------------------------------------------------------------------*/
4104typedef PACKED_PRE struct PACKED_POST
4105{
4106 tHalMsgHeader header;
4107} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4108
Anand Kumar012623a2013-01-11 17:00:00 -08004109typedef PACKED_PRE struct PACKED_POST
4110{
4111 /* Valid STA Idx for per STA stats request */
4112 tANI_U32 staId;
4113
4114}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4115
4116
4117/*---------------------------------------------------------------------------
4118 * WLAN_HAL_GET_ROAM_RSSI_REQ
4119 *--------------------------------------------------------------------------*/
4120typedef PACKED_PRE struct PACKED_POST
4121{
4122 tHalMsgHeader header;
4123 tHalRoamRssiReqParams roamRssiReqParams;
4124} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4125
4126
Jeff Johnson295189b2012-06-20 16:38:30 -07004127/*---------------------------------------------------------------------------
4128 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4129 *--------------------------------------------------------------------------*/
4130typedef PACKED_PRE struct PACKED_POST {
4131 tANI_U8 staidx; // STA index
4132 tANI_U8 ac; // Access Category
4133 tANI_U8 up; // User Priority
4134 tANI_U32 srvInterval; // Service Interval
4135 tANI_U32 susInterval; // Suspend Interval
4136 tANI_U32 delayInterval; // Delay Interval
4137} tUapsdInfo, tpUapsdInfo;
4138
4139typedef PACKED_PRE struct PACKED_POST
4140{
4141 tHalMsgHeader header;
4142 tUapsdInfo enableUapsdAcParams;
4143} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4144
4145/*---------------------------------------------------------------------------
4146 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4147 *--------------------------------------------------------------------------*/
4148typedef PACKED_PRE struct PACKED_POST {
4149 tANI_U8 setMcstBcstFilterSetting;
4150 tANI_U8 setMcstBcstFilter;
4151} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4152
4153typedef PACKED_PRE struct PACKED_POST
4154{
4155 tHalMsgHeader header;
4156 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4157} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4158
4159/*---------------------------------------------------------------------------
4160 * WLAN_HAL_ENTER_IMPS_RSP
4161 *--------------------------------------------------------------------------*/
4162typedef PACKED_PRE struct PACKED_POST
4163{
4164 /* success or failure */
4165 tANI_U32 status;
4166} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4167
4168typedef PACKED_PRE struct PACKED_POST
4169{
4170 tHalMsgHeader header;
4171 tHalEnterImpsRspParams enterImpsRspParams;
4172} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4173
4174/*---------------------------------------------------------------------------
4175 * WLAN_HAL_EXIT_IMPS_RSP
4176 *--------------------------------------------------------------------------*/
4177typedef PACKED_PRE struct PACKED_POST
4178{
4179 /* success or failure */
4180 tANI_U32 status;
4181} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4182
4183typedef PACKED_PRE struct PACKED_POST
4184{
4185 tHalMsgHeader header;
4186 tHalExitImpsRspParams exitImpsRspParams;
4187} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4188
4189/*---------------------------------------------------------------------------
4190 * WLAN_HAL_ENTER_BMPS_RSP
4191 *--------------------------------------------------------------------------*/
4192typedef PACKED_PRE struct PACKED_POST
4193{
4194 /* success or failure */
4195 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004196 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004197} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4198
4199typedef PACKED_PRE struct PACKED_POST
4200{
4201 tHalMsgHeader header;
4202 tHalEnterBmpsRspParams enterBmpsRspParams;
4203} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4204
4205/*---------------------------------------------------------------------------
4206 * WLAN_HAL_EXIT_BMPS_RSP
4207 *--------------------------------------------------------------------------*/
4208typedef PACKED_PRE struct PACKED_POST
4209{
4210 /* success or failure */
4211 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004212 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004213} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4214
4215typedef PACKED_PRE struct PACKED_POST
4216{
4217 tHalMsgHeader header;
4218 tHalExitBmpsRspParams exitBmpsRspParams;
4219} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4220
4221/*---------------------------------------------------------------------------
4222 * WLAN_HAL_ENTER_UAPSD_RSP
4223 *--------------------------------------------------------------------------*/
4224typedef PACKED_PRE struct PACKED_POST
4225{
4226 /* success or failure */
4227 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004228 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004229}tUapsdRspParams, *tpUapsdRspParams;
4230
4231typedef PACKED_PRE struct PACKED_POST
4232{
4233 tHalMsgHeader header;
4234 tUapsdRspParams enterUapsdRspParams;
4235} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4236
4237/*---------------------------------------------------------------------------
4238 * WLAN_HAL_EXIT_UAPSD_RSP
4239 *--------------------------------------------------------------------------*/
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 /* success or failure */
4243 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004244 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004245} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4246
4247typedef PACKED_PRE struct PACKED_POST
4248{
4249 tHalMsgHeader header;
4250 tHalExitUapsdRspParams exitUapsdRspParams;
4251} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4252
4253/*---------------------------------------------------------------------------
4254 * WLAN_HAL_RSSI_NOTIFICATION_IND
4255 *--------------------------------------------------------------------------*/
4256typedef PACKED_PRE struct PACKED_POST
4257{
4258 tANI_U32 bRssiThres1PosCross : 1;
4259 tANI_U32 bRssiThres1NegCross : 1;
4260 tANI_U32 bRssiThres2PosCross : 1;
4261 tANI_U32 bRssiThres2NegCross : 1;
4262 tANI_U32 bRssiThres3PosCross : 1;
4263 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004264 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004265 tANI_U32 uBssIdx : 8;
4266 tANI_U32 bReserved : 10;
Jeff Johnson295189b2012-06-20 16:38:30 -07004267} tHalRSSINotification, *tpHalRSSINotification;
4268
4269typedef PACKED_PRE struct PACKED_POST
4270{
4271 tHalMsgHeader header;
4272 tHalRSSINotification rssiNotificationParams;
4273} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4274
4275/*---------------------------------------------------------------------------
4276 * WLAN_HAL_GET_RSSI_RSP
4277 *--------------------------------------------------------------------------*/
4278typedef PACKED_PRE struct PACKED_POST
4279{
4280 /* success or failure */
4281 tANI_U32 status;
4282 tANI_S8 rssi;
4283} tHalGetRssiParams, *tpHalGetRspParams;
4284
4285typedef PACKED_PRE struct PACKED_POST
4286{
4287 tHalMsgHeader header;
4288 tHalGetRssiParams rssiRspParams;
4289} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4290
4291/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004292 * WLAN_HAL_GET_ROAM_RSSI_RSP
4293 *--------------------------------------------------------------------------*/
4294typedef PACKED_PRE struct PACKED_POST
4295{
4296 /* success or failure */
4297 tANI_U32 status;
4298
4299 tANI_U8 staId;
4300 tANI_S8 rssi;
4301} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4302
4303typedef PACKED_PRE struct PACKED_POST
4304{
4305 tHalMsgHeader header;
4306 tHalGetRoamRssiParams roamRssiRspParams;
4307} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4308
4309/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004310 * WLAN_HAL_ENTER_WOWL_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} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4318
4319typedef PACKED_PRE struct PACKED_POST
4320{
4321 tHalMsgHeader header;
4322 tHalEnterWowlRspParams enterWowlRspParams;
4323} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4324
4325/*---------------------------------------------------------------------------
4326 * WLAN_HAL_EXIT_WOWL_RSP
4327 *--------------------------------------------------------------------------*/
4328typedef PACKED_PRE struct PACKED_POST
4329{
4330 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004331 tANI_U32 status;
4332 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004333} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4334
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 tHalMsgHeader header;
4338 tHalExitWowlRspParams exitWowlRspParams;
4339} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4340
4341/*---------------------------------------------------------------------------
4342 * WLAN_HAL_ADD_BCN_FILTER_RSP
4343 *--------------------------------------------------------------------------*/
4344typedef PACKED_PRE struct PACKED_POST
4345{
4346 /* success or failure */
4347 tANI_U32 status;
4348} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4349
4350typedef PACKED_PRE struct PACKED_POST
4351{
4352 tHalMsgHeader header;
4353 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4354} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4355
4356/*---------------------------------------------------------------------------
4357 * WLAN_HAL_REM_BCN_FILTER_RSP
4358 *--------------------------------------------------------------------------*/
4359typedef PACKED_PRE struct PACKED_POST
4360{
4361 /* success or failure */
4362 tANI_U32 status;
4363} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4364
4365typedef PACKED_PRE struct PACKED_POST
4366{
4367 tHalMsgHeader header;
4368 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4369} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4370
4371/*---------------------------------------------------------------------------
4372 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4373 *--------------------------------------------------------------------------*/
4374typedef PACKED_PRE struct PACKED_POST
4375{
4376 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004377 tANI_U32 status;
4378 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004379} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4380
4381typedef PACKED_PRE struct PACKED_POST
4382{
4383 tHalMsgHeader header;
4384 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4385} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4386
4387/*---------------------------------------------------------------------------
4388 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4389 *--------------------------------------------------------------------------*/
4390typedef PACKED_PRE struct PACKED_POST
4391{
4392 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004393 tANI_U32 status;
4394 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004395} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4396
4397typedef PACKED_PRE struct PACKED_POST
4398{
4399 tHalMsgHeader header;
4400 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4401} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4402
4403/*---------------------------------------------------------------------------
4404 * WLAN_HAL_HOST_OFFLOAD_RSP
4405 *--------------------------------------------------------------------------*/
4406typedef PACKED_PRE struct PACKED_POST
4407{
4408 /* success or failure */
4409 tANI_U32 status;
4410} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4411
4412typedef PACKED_PRE struct PACKED_POST
4413{
4414 tHalMsgHeader header;
4415 tHalHostOffloadRspParams hostOffloadRspParams;
4416} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4417
4418/*---------------------------------------------------------------------------
4419 * WLAN_HAL_KEEP_ALIVE_RSP
4420 *--------------------------------------------------------------------------*/
4421typedef PACKED_PRE struct PACKED_POST
4422{
4423 /* success or failure */
4424 tANI_U32 status;
4425} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4426
4427typedef PACKED_PRE struct PACKED_POST
4428{
4429 tHalMsgHeader header;
4430 tHalKeepAliveRspParams keepAliveRspParams;
4431} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4432
4433/*---------------------------------------------------------------------------
4434 * WLAN_HAL_SET_RSSI_THRESH_RSP
4435 *--------------------------------------------------------------------------*/
4436typedef PACKED_PRE struct PACKED_POST
4437{
4438 /* success or failure */
4439 tANI_U32 status;
4440} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4441
4442typedef PACKED_PRE struct PACKED_POST
4443{
4444 tHalMsgHeader header;
4445 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4446} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4447
4448/*---------------------------------------------------------------------------
4449 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4450 *--------------------------------------------------------------------------*/
4451typedef PACKED_PRE struct PACKED_POST
4452{
4453 /* success or failure */
4454 tANI_U32 status;
4455} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4456
4457typedef PACKED_PRE struct PACKED_POST
4458{
4459 tHalMsgHeader header;
4460 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4461} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4462
4463/*---------------------------------------------------------------------------
4464 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4465 *--------------------------------------------------------------------------*/
4466typedef PACKED_PRE struct PACKED_POST
4467{
4468 /* success or failure */
4469 tANI_U32 status;
4470} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4471
4472typedef PACKED_PRE struct PACKED_POST
4473{
4474 tHalMsgHeader header;
4475 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4476} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4477
4478/*---------------------------------------------------------------------------
4479 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4480 *--------------------------------------------------------------------------*/
4481
4482typedef PACKED_PRE struct PACKED_POST
4483{
4484 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4485 //the request has power constraints, this should be applied only to that session
4486 tSirMacAddr selfStaMacAddr;
4487 //In request,
4488 //power == MaxTx power to be used.
4489 tPowerdBm power;
4490
4491}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4492
4493
4494typedef PACKED_PRE struct PACKED_POST
4495{
4496 tHalMsgHeader header;
4497 tSetMaxTxPwrParams setMaxTxPwrParams;
4498}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4499
4500/*---------------------------------------------------------------------------
4501*WLAN_HAL_SET_MAX_TX_POWER_RSP
4502*--------------------------------------------------------------------------*/
4503
4504typedef PACKED_PRE struct PACKED_POST
4505{
4506 //power == tx power used for management frames.
4507 tPowerdBm power;
4508
4509 /* success or failure */
4510 tANI_U32 status;
4511}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4512
4513typedef PACKED_PRE struct PACKED_POST
4514{
4515 tHalMsgHeader header;
4516 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4517}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4518
4519/*---------------------------------------------------------------------------
4520 *WLAN_HAL_SET_TX_POWER_REQ
4521 *--------------------------------------------------------------------------*/
4522
4523typedef PACKED_PRE struct PACKED_POST
4524{
4525 /* TX Power in milli watts */
4526 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004527 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004528}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4529
4530
4531typedef PACKED_PRE struct PACKED_POST
4532{
4533 tHalMsgHeader header;
4534 tSetTxPwrReqParams setTxPwrReqParams;
4535}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4536
4537/*---------------------------------------------------------------------------
4538*WLAN_HAL_SET_TX_POWER_RSP
4539*--------------------------------------------------------------------------*/
4540
4541typedef PACKED_PRE struct PACKED_POST
4542{
4543 /* success or failure */
4544 tANI_U32 status;
4545}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4546
4547typedef PACKED_PRE struct PACKED_POST
4548{
4549 tHalMsgHeader header;
4550 tSetTxPwrRspParams setTxPwrRspParams;
4551}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4552
4553/*---------------------------------------------------------------------------
4554 *WLAN_HAL_GET_TX_POWER_REQ
4555 *--------------------------------------------------------------------------*/
4556
4557typedef PACKED_PRE struct PACKED_POST
4558{
4559 tANI_U8 staId;
4560}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4561
4562typedef PACKED_PRE struct PACKED_POST
4563{
4564 tHalMsgHeader header;
4565 tGetTxPwrReqParams getTxPwrReqParams;
4566}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4567
4568/*---------------------------------------------------------------------------
4569*WLAN_HAL_GET_TX_POWER_RSP
4570*--------------------------------------------------------------------------*/
4571
4572typedef PACKED_PRE struct PACKED_POST
4573{
4574 /* success or failure */
4575 tANI_U32 status;
4576
4577 /* TX Power in milli watts */
4578 tANI_U32 txPower;
4579}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4580
4581typedef PACKED_PRE struct PACKED_POST
4582{
4583 tHalMsgHeader header;
4584 tGetTxPwrRspParams getTxPwrRspParams;
4585}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4586
4587#ifdef WLAN_FEATURE_P2P
4588/*---------------------------------------------------------------------------
4589 *WLAN_HAL_SET_P2P_GONOA_REQ
4590 *--------------------------------------------------------------------------*/
4591
4592typedef PACKED_PRE struct PACKED_POST
4593{
4594 tANI_U8 opp_ps;
4595 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004596 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004597 tANI_U32 duration;
4598 tANI_U32 interval;
4599 tANI_U32 single_noa_duration;
4600 tANI_U8 psSelection;
4601}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4602
4603
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 tHalMsgHeader header;
4607 tSetP2PGONOAParams setP2PGONOAParams;
4608}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4609
4610/*---------------------------------------------------------------------------
4611*WLAN_HAL_SET_P2P_GONOA_RSP
4612*--------------------------------------------------------------------------*/
4613
4614typedef PACKED_PRE struct PACKED_POST
4615{
4616 /* success or failure */
4617 tANI_U32 status;
4618}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4619
4620typedef PACKED_PRE struct PACKED_POST
4621{
4622 tHalMsgHeader header;
4623 tSetP2PGONOARspParams setP2PGONOARspParams;
4624}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4625#endif
4626
4627/*---------------------------------------------------------------------------
4628 *WLAN_HAL_ADD_SELF_STA_REQ
4629 *--------------------------------------------------------------------------*/
4630
4631typedef PACKED_PRE struct PACKED_POST
4632{
4633 tSirMacAddr selfMacAddr;
4634 tANI_U32 status;
4635}tAddStaSelfParams, *tpAddStaSelfParams;
4636
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004637typedef PACKED_PRE struct PACKED_POST
4638{
4639 tSirMacAddr selfMacAddr;
4640 tANI_U32 status;
4641 tHalIfacePersona iface_persona;
4642}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004643
4644typedef PACKED_PRE struct PACKED_POST
4645{
4646 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004647 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07004648 tAddStaSelfParams addStaSelfParams;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004649 tAddStaSelfParams_V1 addStaSelfParams_V1;
4650 }uAddStaSelfParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004651}tAddStaSelfReq, *tpAddStaSelfReq;
4652
4653/*---------------------------------------------------------------------------
4654*WLAN_HAL_ADD_SELF_STA_RSP
4655*--------------------------------------------------------------------------*/
4656
4657typedef PACKED_PRE struct PACKED_POST
4658{
4659 /* success or failure */
4660 tANI_U32 status;
4661
4662 /*Self STA Index */
4663 tANI_U8 selfStaIdx;
4664
4665 /* DPU Index (IGTK, PTK, GTK all same) */
4666 tANI_U8 dpuIdx;
4667
4668 /* DPU Signature */
4669 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004670
Jeff Johnson295189b2012-06-20 16:38:30 -07004671}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4672
4673typedef PACKED_PRE struct PACKED_POST
4674{
4675 tHalMsgHeader header;
4676 tAddStaSelfRspParams addStaSelfRspParams;
4677}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4678
4679
4680/*---------------------------------------------------------------------------
4681 WLAN_HAL_DEL_STA_SELF_REQ
4682---------------------------------------------------------------------------*/
4683
4684typedef PACKED_PRE struct PACKED_POST
4685{
4686 tSirMacAddr selfMacAddr;
4687
4688}tDelStaSelfParams, *tpDelStaSelfParams;
4689
4690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tHalMsgHeader header;
4693 tDelStaSelfParams delStaSelfParams;
4694} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4695
4696
4697/*---------------------------------------------------------------------------
4698 WLAN_HAL_DEL_STA_SELF_RSP
4699---------------------------------------------------------------------------*/
4700
4701typedef PACKED_PRE struct PACKED_POST
4702{
4703 /*success or failure */
4704 tANI_U32 status;
4705
4706 tSirMacAddr selfMacAddr;
4707}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4708
4709typedef PACKED_PRE struct PACKED_POST
4710{
4711 tHalMsgHeader header;
4712 tDelStaSelfRspParams delStaSelfRspParams;
4713} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4714
4715
4716#ifdef WLAN_FEATURE_VOWIFI_11R
4717
4718/*---------------------------------------------------------------------------
4719 *WLAN_HAL_AGGR_ADD_TS_REQ
4720 *--------------------------------------------------------------------------*/
4721
4722typedef PACKED_PRE struct PACKED_POST
4723{
4724 /* Station Index */
4725 tANI_U16 staIdx;
4726
4727 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4728 /* This will carry the bitmap with the bit positions representing different AC.s*/
4729 tANI_U16 tspecIdx;
4730
4731 /* Tspec info per AC To program TPE with required parameters */
4732 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4733
4734 /* U-APSD Flags: 1b per AC. Encoded as follows:
4735 b7 b6 b5 b4 b3 b2 b1 b0 =
4736 X X X X BE BK VI VO */
4737 tANI_U8 uAPSD;
4738
4739 /* These parameters are for all the access categories */
4740 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4741 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4742 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4743
4744}tAggrAddTsParams, *tpAggrAddTsParams;
4745
4746
4747typedef PACKED_PRE struct PACKED_POST
4748{
4749 tHalMsgHeader header;
4750 tAggrAddTsParams aggrAddTsParam;
4751}tAggrAddTsReq, *tpAggrAddTsReq;
4752
4753/*---------------------------------------------------------------------------
4754*WLAN_HAL_AGGR_ADD_TS_RSP
4755*--------------------------------------------------------------------------*/
4756
4757typedef PACKED_PRE struct PACKED_POST
4758{
4759 /* success or failure */
4760 tANI_U32 status0;
4761 /* FIXME PRIMA for future use for 11R */
4762 tANI_U32 status1;
4763}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4764
4765typedef PACKED_PRE struct PACKED_POST
4766{
4767 tHalMsgHeader header;
4768 tAggrAddTsRspParams aggrAddTsRspParam;
4769}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4770
4771#endif
4772
4773/*---------------------------------------------------------------------------
4774 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4775 *--------------------------------------------------------------------------*/
4776typedef PACKED_PRE struct PACKED_POST
4777{
4778 tANI_U8 isAppsCpuAwake;
4779} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4780
4781typedef PACKED_PRE struct PACKED_POST
4782{
4783 tHalMsgHeader header;
4784 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4785} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4786
4787/*---------------------------------------------------------------------------
4788 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4789 *--------------------------------------------------------------------------*/
4790typedef PACKED_PRE struct PACKED_POST
4791{
4792 /* success or failure */
4793 tANI_U32 status;
4794} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4795
4796typedef PACKED_PRE struct PACKED_POST
4797{
4798 tHalMsgHeader header;
4799 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4800} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4801/*---------------------------------------------------------------------------
4802 * WLAN_HAL_DUMP_COMMAND_REQ
4803 *--------------------------------------------------------------------------*/
4804
4805typedef PACKED_PRE struct PACKED_POST
4806{
4807 tANI_U32 argument1;
4808 tANI_U32 argument2;
4809 tANI_U32 argument3;
4810 tANI_U32 argument4;
4811 tANI_U32 argument5;
4812
4813}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4814
4815typedef PACKED_PRE struct PACKED_POST
4816{
4817 tHalMsgHeader header;
4818 tHalDumpCmdReqParams dumpCmdReqParams;
4819} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4820
4821/*---------------------------------------------------------------------------
4822 * WLAN_HAL_DUMP_COMMAND_RSP
4823 *--------------------------------------------------------------------------*/
4824
4825typedef PACKED_PRE struct PACKED_POST
4826{
4827 /* success or failure */
4828 tANI_U32 status;
4829 /*Length of the responce message*/
4830 tANI_U32 rspLength;
4831 /*FiXME: Currently considering the the responce will be less than 100bytes */
4832 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004833
Jeff Johnson295189b2012-06-20 16:38:30 -07004834} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4835
4836typedef PACKED_PRE struct PACKED_POST
4837{
4838 tHalMsgHeader header;
4839 tHalDumpCmdRspParams dumpCmdRspParams;
4840} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4841
4842/*---------------------------------------------------------------------------
4843 *WLAN_HAL_COEX_IND
4844 *-------------------------------------------------------------------------*/
4845#define WLAN_COEX_IND_DATA_SIZE (4)
4846#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4847#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004848#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
4849#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004850#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
4851#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07004852
4853typedef PACKED_PRE struct PACKED_POST
4854{
4855 /*Coex Indication Type*/
4856 tANI_U32 coexIndType;
4857
4858 /*Coex Indication Data*/
4859 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4860}tCoexIndParams,*tpCoexIndParams;
4861
4862typedef PACKED_PRE struct PACKED_POST
4863{
4864 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004865 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004866}tCoexIndMsg, *tpCoexIndMsg;
4867
4868/*---------------------------------------------------------------------------
4869 *WLAN_HAL_OTA_TX_COMPL_IND
4870 *-------------------------------------------------------------------------*/
4871
4872typedef PACKED_PRE struct PACKED_POST
4873{
4874 /*Tx Complete Indication Success or Failure*/
4875 tANI_U32 status;
4876}tTxComplParams,*tpTxComplParams;
4877
4878typedef PACKED_PRE struct PACKED_POST
4879{
4880 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004881 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004882}tTxComplIndMsg, *tpTxComplIndMsg;
4883
4884/*---------------------------------------------------------------------------
4885 * WLAN_HAL_HOST_SUSPEND_IND
4886 *-------------------------------------------------------------------------*/
4887
4888typedef PACKED_PRE struct PACKED_POST
4889{
4890 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004891 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004892}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4893
4894typedef PACKED_PRE struct PACKED_POST
4895{
4896 tHalMsgHeader header;
4897 tHalWlanHostSuspendIndParam suspendIndParams;
4898}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4899
4900/*---------------------------------------------------------------------------
4901 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4902 *-------------------------------------------------------------------------*/
4903
4904typedef PACKED_PRE struct PACKED_POST
4905{
4906 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004907 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004908}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4909
4910typedef PACKED_PRE struct PACKED_POST
4911{
4912 tHalMsgHeader header;
4913 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4914}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4915
4916#ifdef WLAN_FEATURE_P2P
4917/*---------------------------------------------------------------------------
4918 *WLAN_HAL_NOA_ATTR_IND
4919 *-------------------------------------------------------------------------*/
4920
4921typedef PACKED_PRE struct PACKED_POST
4922{
4923 tANI_U8 index ;
4924 tANI_U8 oppPsFlag ;
4925 tANI_U16 ctWin ;
4926
4927 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004928 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004929 tANI_U32 uNoa1Duration;
4930 tANI_U32 uNoa1Interval;
4931 tANI_U32 uNoa1StartTime;
4932
4933 tANI_U16 uNoa2IntervalCnt;
4934 tANI_U16 rsvd2;
4935 tANI_U32 uNoa2Duration;
4936 tANI_U32 uNoa2Interval;
4937 tANI_U32 uNoa2StartTime;
4938
4939 tANI_U32 status;
4940}tNoaAttrIndParams, *tpNoaAttrIndParams;
4941
4942typedef PACKED_PRE struct PACKED_POST
4943{
4944 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004945 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004946}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004947
4948/*---------------------------------------------------------------------------
4949 *WLAN_HAL_NOA_START_IND
4950 *-------------------------------------------------------------------------*/
4951
4952typedef PACKED_PRE struct PACKED_POST
4953{
4954 tANI_U32 status;
4955 tANI_U32 bssIdx;
4956}tNoaStartIndParams, *tpNoaStartIndParams;
4957
4958typedef PACKED_PRE struct PACKED_POST
4959{
4960 tHalMsgHeader header;
4961 tNoaStartIndParams noaStartIndParams;
4962}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004963#endif
4964
4965/*---------------------------------------------------------------------------
4966 * WLAN_HAL_HOST_RESUME_REQ
4967 *-------------------------------------------------------------------------*/
4968
4969typedef PACKED_PRE struct PACKED_POST
4970{
4971 tANI_U8 configuredMcstBcstFilterSetting;
4972}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4973
4974typedef PACKED_PRE struct PACKED_POST
4975{
4976 tHalMsgHeader header;
4977 tHalWlanHostResumeReqParam resumeReqParams;
4978}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4979
4980/*---------------------------------------------------------------------------
4981 * WLAN_HAL_HOST_RESUME_RSP
4982 *--------------------------------------------------------------------------*/
4983typedef PACKED_PRE struct PACKED_POST
4984{
4985 /* success or failure */
4986 tANI_U32 status;
4987} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4988
4989typedef PACKED_PRE struct PACKED_POST
4990{
4991 tHalMsgHeader header;
4992 tHalHostResumeRspParams hostResumeRspParams;
4993} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4994
Anand Kumar012623a2013-01-11 17:00:00 -08004995typedef PACKED_PRE struct PACKED_POST
4996{
4997 tANI_U16 staIdx;
4998 // Peer MAC Address, whose BA session has timed out
4999 tSirMacAddr peerMacAddr;
5000 // TID for which a BA session timeout is being triggered
5001 tANI_U8 baTID;
5002 // DELBA direction
5003 // 1 - Originator
5004 // 0 - Recipient
5005 tANI_U8 baDirection;
5006 tANI_U32 reasonCode;
5007 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5008} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5009
5010typedef PACKED_PRE struct PACKED_POST
5011{
5012 tHalMsgHeader header;
5013 tHalWlanDelBaIndMsg hostdelBaParam;
5014} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5015
Jeff Johnson295189b2012-06-20 16:38:30 -07005016/*---------------------------------------------------------------------------
5017 *PNO Messages
5018 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005019/* Max number of channels that a network can be found on*/
5020/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5021 * be changed at same time
5022 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005023#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005024
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305025/*Max number of channels that a network can be found on*/
5026#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5027
Jeff Johnson295189b2012-06-20 16:38:30 -07005028/*Maximum numbers of networks supported by PNO*/
5029#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5030
5031/*The number of scan time intervals that can be programmed into PNO*/
5032#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5033
5034/*Maximum size of the probe template*/
5035#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5036
Jeff Johnson32d95a32012-09-10 13:15:23 -07005037/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005038 Immediate - scanning will start immediately and PNO procedure will
5039 be repeated based on timer
5040 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005041 Resume - scanning will start on system resume
5042 Delay - start the scan timer to trigger PNO scan
5043 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005044typedef enum
5045{
5046 ePNO_MODE_IMMEDIATE,
5047 ePNO_MODE_ON_SUSPEND,
5048 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305049 ePNO_MODE_DELAY,
5050 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005051 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5052} ePNOMode;
5053
5054/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005055typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005056{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005057 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005058 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005059
Jeff Johnson295189b2012-06-20 16:38:30 -07005060 // Upper layer authentication types
5061 eAUTH_TYPE_WPA = 2,
5062 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005063
Jeff Johnson295189b2012-06-20 16:38:30 -07005064 eAUTH_TYPE_RSN = 4,
5065 eAUTH_TYPE_RSN_PSK = 5,
5066 eAUTH_TYPE_FT_RSN = 6,
5067 eAUTH_TYPE_FT_RSN_PSK = 7,
5068 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5069 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005070 eAUTH_TYPE_CCKM_WPA = 10,
5071 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005072
Jeff Johnson295189b2012-06-20 16:38:30 -07005073 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5074
5075}tAuthType;
5076
5077/* Encryption type */
5078typedef enum eEdType
5079{
5080 eED_ANY = 0,
5081 eED_NONE = 1,
5082 eED_WEP = 2,
5083 eED_TKIP = 3,
5084 eED_CCMP = 4,
5085 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005086
Jeff Johnson295189b2012-06-20 16:38:30 -07005087 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5088} tEdType;
5089
5090/* SSID broadcast type */
5091typedef enum eSSIDBcastType
5092{
5093 eBCAST_UNKNOWN = 0,
5094 eBCAST_NORMAL = 1,
5095 eBCAST_HIDDEN = 2,
5096
5097 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5098} tSSIDBcastType;
5099
Jeff Johnson32d95a32012-09-10 13:15:23 -07005100/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005101 The network description for which PNO will have to look for
5102*/
5103typedef PACKED_PRE struct PACKED_POST
5104{
5105 /*SSID of the BSS*/
5106 tSirMacSSid ssId;
5107
5108 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005109 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005110
5111 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005112 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005113
Jeff Johnson32d95a32012-09-10 13:15:23 -07005114 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005115 0 - if all channels */
5116 tANI_U8 ucChannelCount;
5117 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5118
5119 /*Indicates the RSSI threshold for the network to be considered*/
5120 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005121}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005122
5123typedef PACKED_PRE struct PACKED_POST
5124{
5125 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005126 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005127
Jeff Johnson32d95a32012-09-10 13:15:23 -07005128 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005129 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005130 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005131
Jeff Johnson32d95a32012-09-10 13:15:23 -07005132 /*e.g: 2 3
5133 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005134 - it will wait 2s between consecutive scans for 3 times
5135 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005136}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005137
Jeff Johnson32d95a32012-09-10 13:15:23 -07005138/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005139 The network parameters to be sent to the PNO algorithm
5140*/
5141typedef PACKED_PRE struct PACKED_POST
5142{
5143 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005144 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005145
Jeff Johnson32d95a32012-09-10 13:15:23 -07005146 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005147 two consecutive scan procedures
5148 If the desired is for a uniform timer that fires always at the exact same
5149 interval - one single value is to be set
5150 If there is a desire for a more complex - telescopic like timer multiple
5151 values can be set - once PNO reaches the end of the array it will
5152 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005153 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005154
5155}tScanTimersType;
5156
5157typedef PACKED_PRE struct PACKED_POST {
5158
5159 /*Enable PNO*/
5160 tANI_U32 enable;
5161
5162 /*Immediate, On Suspend, On Resume*/
5163 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005164
Jeff Johnson295189b2012-06-20 16:38:30 -07005165 /*Number of networks sent for PNO*/
5166 tANI_U32 ucNetworksCount;
5167
5168 /*The networks that PNO needs to look for*/
5169 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5170
5171 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005172 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005173
5174 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005175 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005176 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5177
5178 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005179 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005180 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5181
5182} tPrefNetwListParams, * tpPrefNetwListParams;
5183
5184/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005185 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005186*/
5187typedef PACKED_PRE struct PACKED_POST
5188{
5189 tHalMsgHeader header;
5190 tPrefNetwListParams prefNetwListParams;
5191} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5192
5193
Jeff Johnson32d95a32012-09-10 13:15:23 -07005194/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005195 The network description for which PNO will have to look for
5196*/
5197typedef PACKED_PRE struct PACKED_POST
5198{
5199 /*SSID of the BSS*/
5200 tSirMacSSid ssId;
5201
5202 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005203 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005204
5205 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005206 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005207
5208 /*SSID broadcast type, normal, hidden or unknown*/
5209 tSSIDBcastType bcastNetworkType;
5210
Jeff Johnson32d95a32012-09-10 13:15:23 -07005211 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005212 0 - if all channels */
5213 tANI_U8 ucChannelCount;
5214 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5215
5216 /*Indicates the RSSI threshold for the network to be considered*/
5217 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005218}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005219
5220typedef PACKED_PRE struct PACKED_POST {
5221
5222 /*Enable PNO*/
5223 tANI_U32 enable;
5224
5225 /*Immediate, On Suspend, On Resume*/
5226 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005227
Jeff Johnson295189b2012-06-20 16:38:30 -07005228 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005229 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005230
5231 /*The networks that PNO needs to look for*/
5232 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5233
5234 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005235 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005236
5237 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005238 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005239 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5240
5241 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005242 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005243 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5244
5245} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5246
5247/*
5248 Preferred network list request new
5249*/
5250typedef PACKED_PRE struct PACKED_POST
5251{
5252 tHalMsgHeader header;
5253 tPrefNetwListParamsNew prefNetwListParams;
5254} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5255
5256/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005257 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005258*/
5259typedef PACKED_PRE struct PACKED_POST
5260{
5261 tHalMsgHeader header;
5262
Jeff Johnson32d95a32012-09-10 13:15:23 -07005263 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005264 the request and will start scanning*/
5265 tANI_U32 status;
5266} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5267
5268/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005269 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005270*/
5271typedef PACKED_PRE struct PACKED_POST {
5272
5273 /*Network that was found with the highest RSSI*/
5274 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005275
Jeff Johnson295189b2012-06-20 16:38:30 -07005276 /*Indicates the RSSI */
5277 tANI_U8 rssi;
5278
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005279 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
Gopichand Nakkalaa14f43b2013-05-14 00:08:53 +05305280 tANI_U16 frameLength;
5281
Jeff Johnson295189b2012-06-20 16:38:30 -07005282} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5283
5284/*
5285 Preferred network found indication
5286*/
5287typedef PACKED_PRE struct PACKED_POST {
5288
5289 tHalMsgHeader header;
5290 tPrefNetwFoundParams prefNetwFoundParams;
5291} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5292
5293
5294typedef PACKED_PRE struct PACKED_POST {
5295
5296 /*RSSI Threshold*/
5297 tANI_U8 ucRssiThreshold;
5298
5299} tRssiFilterParams, * tpRssiFilterParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005300#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5301typedef PACKED_PRE struct PACKED_POST
5302{
5303 tSirMacSSid ssId;
5304 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5305 tANI_U32 authentication;
5306 tEdType encryption;
5307 tEdType mcencryption;
5308 tANI_U8 ChannelCount;
5309 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5310}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005311
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005312typedef PACKED_PRE struct PACKED_POST
5313{
5314 tANI_U8 mdiePresent;
5315 tANI_U16 mobilityDomain;
5316}tMobilityDomainInfo;
5317
5318typedef PACKED_PRE struct PACKED_POST {
5319 eAniBoolean RoamScanOffloadEnabled;
5320 tANI_S8 LookupThreshold;
5321 tANI_U8 RoamRssiDiff;
5322 tANI_U8 ChannelCacheType;
5323 tANI_U8 Command;
5324 tANI_U8 StartScanReason;
5325 tANI_U16 NeighborScanTimerPeriod;
5326 tANI_U16 NeighborRoamScanRefreshPeriod;
5327 tANI_U16 NeighborScanChannelMinTime;
5328 tANI_U16 NeighborScanChannelMaxTime;
5329 tANI_U16 EmptyRefreshScanPeriod;
5330 tANI_U8 ValidChannelCount;
5331 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5332 eAniBoolean IsCCXEnabled;
5333
5334 tANI_U16 us24GProbeSize;
5335 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5336 tANI_U16 us5GProbeSize;
5337 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5338 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005339 tANI_U8 nProbes;
5340 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005341 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5342 tRoamNetworkType ConnectedNetwork;
5343 tMobilityDomainInfo MDID;
5344} tRoamCandidateListParams, * tpRoamCandidateListParams;
5345
5346typedef PACKED_PRE struct PACKED_POST
5347{
5348 tHalMsgHeader header;
5349 tRoamCandidateListParams RoamScanOffloadNetwListParams;
5350} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5351
5352typedef PACKED_PRE struct PACKED_POST
5353{
5354 tHalMsgHeader header;
5355
5356 /*status of the request - just to indicate that PNO has acknowledged
5357 * the request and will start scanning*/
5358 tANI_U32 status;
5359} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5360#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005361/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005362 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005363*/
5364typedef PACKED_PRE struct PACKED_POST
5365{
5366 tHalMsgHeader header;
5367 tRssiFilterParams prefRSSIFilterParams;
5368} tSetRssiFilterReq, *tpSetRssiFilterReq;
5369
5370/*
5371 Set RSSI filter resp
5372*/
5373typedef PACKED_PRE struct PACKED_POST{
5374 tHalMsgHeader header;
5375 /*status of the request */
5376 tANI_U32 status;
5377} tSetRssiFilterResp, *tpSetRssiFilterResp;
5378/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005379 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005380*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005381typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005382{
5383
5384 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005385 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005386
5387 /*Lets PNO know that host has determined the regulatory domain*/
5388 tANI_U8 b11dResolved;
5389
5390 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005391 tANI_U8 ucChannelCount;
5392 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005393
5394 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005395 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005396
5397 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005398 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005399
5400 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005401 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005402
5403 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005404 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005405
5406 /*Cb State*/
5407 ePhyChanBondState cbState;
5408
5409} tUpdateScanParams, * tpUpdateScanParams;
5410
5411/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305412 Update scan params
5413*/
5414typedef PACKED_PRE struct PACKED_POST
5415{
5416
5417 /*Host setting for 11d*/
5418 tANI_U8 b11dEnabled;
5419
5420 /*Lets PNO know that host has determined the regulatory domain*/
5421 tANI_U8 b11dResolved;
5422
5423 /*Channels on which PNO is allowed to scan*/
5424 tANI_U8 ucChannelCount;
5425 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5426
5427 /*Minimum channel time*/
5428 tANI_U16 usActiveMinChTime;
5429
5430 /*Maximum channel time*/
5431 tANI_U16 usActiveMaxChTime;
5432
5433 /*Minimum channel time*/
5434 tANI_U16 usPassiveMinChTime;
5435
5436 /*Maximum channel time*/
5437 tANI_U16 usPassiveMaxChTime;
5438
5439 /*Cb State*/
5440 ePhyChanBondState cbState;
5441
5442} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5443
5444/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005445 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005446 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005447*/
5448typedef PACKED_PRE struct PACKED_POST{
5449
5450 tHalMsgHeader header;
5451 tUpdateScanParams scanParams;
5452} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5453
5454/*
5455 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005456 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005457*/
5458typedef PACKED_PRE struct PACKED_POST{
5459
5460 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305461 tUpdateScanParamsEx scanParams;
5462} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5463
5464/*
5465 Update scan params - sent from host to PNO
5466 to be used during PNO scanning
5467*/
5468typedef PACKED_PRE struct PACKED_POST{
5469
5470 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005471
5472 /*status of the request */
5473 tANI_U32 status;
5474
5475} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5476
5477/*---------------------------------------------------------------------------
5478 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5479 *--------------------------------------------------------------------------*/
5480typedef PACKED_PRE struct PACKED_POST
5481{
5482 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5483 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5484 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5485 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5486} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5487
5488typedef PACKED_PRE struct PACKED_POST
5489{
5490 tHalMsgHeader header;
5491 tHalTxPerTrackingReqParam txPerTrackingParams;
5492} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5493
5494/*---------------------------------------------------------------------------
5495 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5496 *--------------------------------------------------------------------------*/
5497typedef PACKED_PRE struct PACKED_POST
5498{
5499 /* success or failure */
5500 tANI_U32 status;
5501} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5502
5503typedef PACKED_PRE struct PACKED_POST
5504{
5505 tHalMsgHeader header;
5506 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5507} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5508
5509/*---------------------------------------------------------------------------
5510 * WLAN_HAL_TX_PER_HIT_IND
5511 *--------------------------------------------------------------------------*/
5512typedef PACKED_PRE struct PACKED_POST
5513{
5514 tHalMsgHeader header;
5515}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5516
5517/*---------------------------------------------------------------------------
5518 *******************Packet Filtering Definitions Begin*******************
5519 *--------------------------------------------------------------------------*/
5520#define HAL_PROTOCOL_DATA_LEN 8
5521#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5522#define HAL_MAX_NUM_FILTERS 20
5523#define HAL_MAX_CMP_PER_FILTER 10
5524
5525typedef enum
5526{
5527 HAL_RCV_FILTER_TYPE_INVALID,
5528 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5529 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5530 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5531}tHalReceivePacketFilterType;
5532
Jeff Johnson32d95a32012-09-10 13:15:23 -07005533typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005534{
5535 HAL_FILTER_PROTO_TYPE_INVALID,
5536 HAL_FILTER_PROTO_TYPE_MAC,
5537 HAL_FILTER_PROTO_TYPE_ARP,
5538 HAL_FILTER_PROTO_TYPE_IPV4,
5539 HAL_FILTER_PROTO_TYPE_IPV6,
5540 HAL_FILTER_PROTO_TYPE_UDP,
5541 HAL_FILTER_PROTO_TYPE_MAX
5542}tHalRcvPktFltProtocolType;
5543
Jeff Johnson32d95a32012-09-10 13:15:23 -07005544typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005545{
5546 HAL_FILTER_CMP_TYPE_INVALID,
5547 HAL_FILTER_CMP_TYPE_EQUAL,
5548 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5549 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5550 HAL_FILTER_CMP_TYPE_MAX
5551}tHalRcvPktFltCmpFlagType;
5552
Jeff Johnson32d95a32012-09-10 13:15:23 -07005553typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005554{
5555 tANI_U8 protocolLayer;
5556 tANI_U8 cmpFlag;
5557 tANI_U16 dataLength; /* Length of the data to compare */
5558 tANI_U8 dataOffset; /* from start of the respective frame header */
5559 tANI_U8 reserved; /* Reserved field */
5560 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5561 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5562}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5563
5564typedef PACKED_PRE struct PACKED_POST
5565{
5566 tANI_U8 filterId;
5567 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005568 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005569 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005570 tHalRcvPktFilterParams paramsData[1];
5571}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5572
5573typedef PACKED_PRE struct PACKED_POST
5574{
Jeff Johnsone7245742012-09-05 17:12:55 -07005575 tANI_U8 filterId;
5576 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005577 tANI_U8 numParams;
5578 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005579 tANI_U8 bssIdx;
5580 tHalRcvPktFilterParams paramsData[1];
5581}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5582
5583typedef PACKED_PRE struct PACKED_POST
5584{
Jeff Johnson295189b2012-06-20 16:38:30 -07005585 tHalMsgHeader header;
5586 tHalRcvPktFilterCfgType pktFilterCfg;
5587} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5588
Jeff Johnsone7245742012-09-05 17:12:55 -07005589typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005590{
5591 tANI_U8 dataOffset; /* from start of the respective frame header */
5592 tANI_U32 cMulticastAddr;
5593 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005594 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005595} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5596
5597typedef PACKED_PRE struct PACKED_POST
5598{
5599 /* success or failure */
5600 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005601 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005602} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5603
5604typedef PACKED_PRE struct PACKED_POST
5605{
5606 tHalMsgHeader header;
5607 tHalSetPktFilterRspParams pktFilterRspParams;
5608} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5609
Jeff Johnsone7245742012-09-05 17:12:55 -07005610typedef PACKED_PRE struct PACKED_POST
5611{
5612 tANI_U8 bssIdx;
5613} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005614
5615typedef PACKED_PRE struct PACKED_POST
5616{
5617 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005618 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005619} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5620
Jeff Johnsone7245742012-09-05 17:12:55 -07005621
Jeff Johnson295189b2012-06-20 16:38:30 -07005622typedef PACKED_PRE struct PACKED_POST
5623{
5624 tANI_U8 filterId;
5625 tANI_U32 matchCnt;
5626} tHalRcvFltPktMatchCnt;
5627typedef PACKED_PRE struct PACKED_POST
5628{
5629 /* Success or Failure */
5630 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005631 tANI_U32 matchCnt;
5632 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005633 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005634} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5635
5636typedef PACKED_PRE struct PACKED_POST
5637{
5638 tHalMsgHeader header;
5639 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5640} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5641
5642typedef PACKED_PRE struct PACKED_POST
5643{
5644 tANI_U32 status; /* only valid for response message */
5645 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005646 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005647}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5648
5649typedef PACKED_PRE struct PACKED_POST
5650{
5651 tHalMsgHeader header;
5652 tHalRcvFltPktClearParam filterClearParam;
5653} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5654
5655typedef PACKED_PRE struct PACKED_POST
5656{
5657 tHalMsgHeader header;
5658 tHalRcvFltPktClearParam filterClearParam;
5659} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5660
5661typedef PACKED_PRE struct PACKED_POST
5662{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005663 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005664 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005665}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5666
5667typedef PACKED_PRE struct PACKED_POST
5668{
5669 tHalMsgHeader header;
5670 tHalRcvFltMcAddrListType mcAddrList;
5671} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5672
5673typedef PACKED_PRE struct PACKED_POST
5674{
5675 tHalMsgHeader header;
5676 tHalRcvFltPktSetMcListRspType rspParam;
5677} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5678
5679
5680/*---------------------------------------------------------------------------
5681 *******************Packet Filtering Definitions End*******************
5682 *--------------------------------------------------------------------------*/
5683
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005684/*
5685 * There are two versions of this message
5686 * Version 1 : Base version
5687 * Current version : Base version + Max LI modulated DTIM
5688 */
5689typedef PACKED_PRE struct PACKED_POST
5690{
5691 /* Ignore DTIM */
5692 tANI_U32 uIgnoreDTIM;
5693
5694 /*DTIM Period*/
5695 tANI_U32 uDTIMPeriod;
5696
5697 /* Listen Interval */
5698 tANI_U32 uListenInterval;
5699
5700 /* Broadcast Multicast Filter */
5701 tANI_U32 uBcastMcastFilter;
5702
5703 /* Beacon Early Termination */
5704 tANI_U32 uEnableBET;
5705
5706 /* Beacon Early Termination Interval */
5707 tANI_U32 uBETInterval;
5708}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
5709
5710typedef PACKED_PRE struct PACKED_POST
5711{
5712 tHalMsgHeader header;
5713 tSetPowerParamsVer1Type powerParams;
5714} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
5715
Jeff Johnson295189b2012-06-20 16:38:30 -07005716typedef PACKED_PRE struct PACKED_POST
5717{
5718 /* Ignore DTIM */
5719 tANI_U32 uIgnoreDTIM;
5720
5721 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005722 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005723
5724 /* Listen Interval */
5725 tANI_U32 uListenInterval;
5726
5727 /* Broadcast Multicast Filter */
5728 tANI_U32 uBcastMcastFilter;
5729
5730 /* Beacon Early Termination */
5731 tANI_U32 uEnableBET;
5732
5733 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005734 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07005735
5736 /* MAX LI for modulated DTIM */
5737 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07005738}tSetPowerParamsType, *tpSetPowerParamsType;
5739
5740typedef PACKED_PRE struct PACKED_POST
5741{
5742 tHalMsgHeader header;
5743 tSetPowerParamsType powerParams;
5744} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5745
5746typedef PACKED_PRE struct PACKED_POST{
5747
5748 tHalMsgHeader header;
5749
5750 /*status of the request */
5751 tANI_U32 status;
5752
5753} tSetPowerParamsResp, *tpSetPowerParamsResp;
5754
5755/*---------------------------------------------------------------------------
5756 ****************Capability bitmap exchange definitions and macros starts*************
5757 *--------------------------------------------------------------------------*/
5758
Anand Kumar012623a2013-01-11 17:00:00 -08005759typedef enum {
5760 MCC = 0,
5761 P2P = 1,
5762 DOT11AC = 2,
5763 SLM_SESSIONIZATION = 3,
5764 DOT11AC_OPMODE = 4,
5765 SAP32STA = 5,
5766 TDLS = 6,
5767 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5768 WLANACTIVE_OFFLOAD = 8,
5769 BEACON_OFFLOAD = 9,
5770 SCAN_OFFLOAD = 10,
5771 ROAM_OFFLOAD = 11,
5772 BCN_MISS_OFFLOAD = 12,
5773 STA_POWERSAVE = 13,
5774 STA_ADVANCED_PWRSAVE = 14,
5775 AP_UAPSD = 15,
5776 AP_DFS = 16,
5777 BLOCKACK = 17,
5778 PHY_ERR = 18,
5779 BCN_FILTER = 19,
5780 RTT = 20,
5781 RATECTRL = 21,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005782 WOW = 22,
5783 WLAN_ROAM_SCAN_OFFLOAD = 23,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005784 SPECULATIVE_PS_POLL = 24,
5785 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07005786 IBSS_HEARTBEAT_OFFLOAD = 26,
Yue Maab3ccfc2013-08-14 17:19:08 -07005787 WLAN_PERIODIC_TX_PTRN = 28,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005788 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08005789} placeHolderInCapBitmap;
5790
Jeff Johnson295189b2012-06-20 16:38:30 -07005791typedef PACKED_PRE struct PACKED_POST{
5792
5793 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005794} tWlanFeatCaps, *tpWlanFeatCaps;
5795
5796typedef PACKED_PRE struct PACKED_POST{
5797
Jeff Johnson32d95a32012-09-10 13:15:23 -07005798 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005799 tWlanFeatCaps wlanFeatCaps;
5800
5801} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5802
Jeff Johnsone7245742012-09-05 17:12:55 -07005803#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5804#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005805#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005806#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005807#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5808#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
5809#endif
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07005810#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005811
Jeff Johnsone7245742012-09-05 17:12:55 -07005812tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5813
Jeff Johnson295189b2012-06-20 16:38:30 -07005814#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005815 if ((b)<=127) { \
5816 arr_index = (b)/32; \
5817 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005818 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07005819 (a)->featCaps[arr_index] |= (1<<bit_index); \
5820 } \
5821 }
5822#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005823 if ((b)<=127) { \
5824 arr_index = (b)/32; \
5825 bit_index = (b)%32; \
5826 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005827 } \
5828 }
5829#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005830 if ((b)<=127) { \
5831 arr_index = (b)/32; \
5832 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005833 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005834 } \
5835 }
5836
5837/*---------------------------------------------------------------------------
5838 * WLAN_HAL_WAKE_REASON_IND
5839 *--------------------------------------------------------------------------*/
5840
5841/* status codes to help debug rekey failures */
5842typedef enum
5843{
5844 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5845 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5846 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5847 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5848 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5849 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5850 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5851 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5852 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5853 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5854
5855 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5856} tGTKRekeyStatus;
5857
5858/* wake reason types */
5859typedef enum
5860{
5861 WLAN_HAL_WAKE_REASON_NONE = 0,
5862 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5863 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5864 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5865 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5866 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5867 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5868 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5869} tWakeReasonType;
5870
5871/*
5872 Wake Packet which is saved at tWakeReasonParams.DataStart
5873 This data is sent for any wake reasons that involve a packet-based wakeup :
5874
5875 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5876 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5877 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5878 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5879 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5880
5881 The information is provided to the host for auditing and debug purposes
5882
5883*/
5884
5885/*
5886 Wake reason indication parameters
5887*/
5888typedef PACKED_PRE struct PACKED_POST
5889{
5890 uint32 ulReason; /* see tWakeReasonType */
5891 uint32 ulReasonArg; /* argument specific to the reason type */
5892 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5893 HAL truncates the data (i.e. data packets) this length
5894 will be less than the actual length */
5895 uint32 ulActualDataLen; /* actual length of data */
5896 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5897 see specific wake type */
5898} tWakeReasonParams, *tpWakeReasonParams;
5899
5900/*
5901 Wake reason indication
5902*/
5903typedef PACKED_PRE struct PACKED_POST
5904{
5905 tHalMsgHeader header;
5906 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005907 tANI_U32 uBssIdx : 8;
5908 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005909} tHalWakeReasonInd, *tpHalWakeReasonInd;
5910
5911/*---------------------------------------------------------------------------
5912* WLAN_HAL_GTK_OFFLOAD_REQ
5913*--------------------------------------------------------------------------*/
5914
5915#define HAL_GTK_KEK_BYTES 16
5916#define HAL_GTK_KCK_BYTES 16
5917
5918#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5919
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005920#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5921
Jeff Johnson295189b2012-06-20 16:38:30 -07005922typedef PACKED_PRE struct PACKED_POST
5923{
5924 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005925 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005926 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5927 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005928 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005929} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5930
5931typedef PACKED_PRE struct PACKED_POST
5932{
5933 tHalMsgHeader header;
5934 tHalGtkOffloadReqParams gtkOffloadReqParams;
5935} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5936
5937/*---------------------------------------------------------------------------
5938* WLAN_HAL_GTK_OFFLOAD_RSP
5939*--------------------------------------------------------------------------*/
5940typedef PACKED_PRE struct PACKED_POST
5941{
5942 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005943 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005944} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5945
5946typedef PACKED_PRE struct PACKED_POST
5947{
5948 tHalMsgHeader header;
5949 tHalGtkOffloadRspParams gtkOffloadRspParams;
5950} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5951
5952
5953/*---------------------------------------------------------------------------
5954* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5955*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005956typedef PACKED_PRE struct PACKED_POST
5957{
5958 tANI_U8 bssIdx;
5959
5960} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005961
5962typedef PACKED_PRE struct PACKED_POST
5963{
5964 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005965 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005966} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5967
5968/*---------------------------------------------------------------------------
5969* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5970*--------------------------------------------------------------------------*/
5971typedef PACKED_PRE struct PACKED_POST
5972{
5973 tANI_U32 ulStatus; /* success or failure */
5974 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5975 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5976 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5977 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5978 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005979 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005980} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5981
5982typedef PACKED_PRE struct PACKED_POST
5983{
5984 tHalMsgHeader header;
5985 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5986} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5987
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005988/*---------------------------------------------------------------------------
5989* WLAN_HAL_DHCP_IND
5990*--------------------------------------------------------------------------*/
5991typedef PACKED_PRE struct PACKED_POST
5992{
5993 /*Indicates the device mode which indicates about the DHCP activity */
5994 tANI_U8 device_mode;
5995 tSirMacAddr macAddr;
5996} tDHCPInfo, *tpDHCPInfo;
5997
5998typedef PACKED_PRE struct PACKED_POST
5999{
6000 tHalMsgHeader header;
6001 tANI_U32 status; /* success or failure */
6002} tDHCPIndStatus, *tpDHCPIndstatus;
6003
Jeff Johnson295189b2012-06-20 16:38:30 -07006004/*
6005 Thermal Mitigation mode of operation.
6006 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6007 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6008 reducing transmit power
6009 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6010*/
6011typedef enum
6012{
6013 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6014 HAL_THERMAL_MITIGATION_MODE_0,
6015 HAL_THERMAL_MITIGATION_MODE_1,
6016 HAL_THERMAL_MITIGATION_MODE_2,
6017 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6018}tHalThermalMitigationModeType;
6019//typedef tANI_S16 tHalThermalMitigationModeType;
6020
6021/*
6022 Thermal Mitigation level.
6023 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6024 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6025
6026 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6027 level indicates normal mode of operation
6028 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6029 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6030 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6031 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6032*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006033typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006034{
6035 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6036 HAL_THERMAL_MITIGATION_LEVEL_0,
6037 HAL_THERMAL_MITIGATION_LEVEL_1,
6038 HAL_THERMAL_MITIGATION_LEVEL_2,
6039 HAL_THERMAL_MITIGATION_LEVEL_3,
6040 HAL_THERMAL_MITIGATION_LEVEL_4,
6041 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6042}tHalThermalMitigationLevelType;
6043//typedef tANI_S16 tHalThermalMitigationLevelType;
6044
6045typedef PACKED_PRE struct PACKED_POST
6046{
6047 /* Thermal Mitigation Operation Mode */
6048 tHalThermalMitigationModeType thermalMitMode;
6049
6050 /* Thermal Mitigation Level */
6051 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006052
Jeff Johnson295189b2012-06-20 16:38:30 -07006053}tSetThermalMitgationType, *tpSetThermalMitgationType;
6054
6055/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6056typedef PACKED_PRE struct PACKED_POST
6057{
6058 tHalMsgHeader header;
6059 tSetThermalMitgationType thermalMitParams;
6060} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6061
6062typedef PACKED_PRE struct PACKED_POST{
6063
6064 tHalMsgHeader header;
6065
6066 /*status of the request */
6067 tANI_U32 status;
6068
6069} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6070
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006071/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6072provided to FW from Host via periodic messages */
6073typedef PACKED_PRE struct PACKED_POST {
6074 /* TX stats */
6075 uint32 txBytesPushed;
6076 uint32 txPacketsPushed;
6077
6078 /* RX stats */
6079 uint32 rxBytesRcvd;
6080 uint32 rxPacketsRcvd;
6081 uint32 rxTimeTotal;
6082} tStaStatsClassB, *tpStaStatsClassB;
6083
6084typedef PACKED_PRE struct PACKED_POST {
6085
6086 /* Duration over which this stats was collected */
6087 tANI_U32 duration;
6088
6089 /* Per STA Stats */
6090 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6091} tStatsClassBIndParams, *tpStatsClassBIndParams;
6092
6093typedef PACKED_PRE struct PACKED_POST {
6094
6095 tHalMsgHeader header;
6096
6097 /* Class B Stats */
6098 tStatsClassBIndParams statsClassBIndParams;
6099} tStatsClassBInd, *tpStatsClassBInd;
6100
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306101/*Wifi Proximity paramters in AP mode*/
6102#ifdef FEATURE_WIFI_PROXIMITY
6103
6104typedef PACKED_PRE struct PACKED_POST{
6105
6106 tANI_U8 wifiProximityChannel;
6107 tANI_U32 wifiProximityDuration;
6108 tANI_U32 wifiProximityInterval;
6109 tANI_U32 wifiProximityMode;
6110 tANI_U32 wifiProximityStatus;
6111 tSirMacAddr bssId;
6112 tSirMacSSid ssId;
6113
6114} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6115
6116typedef PACKED_PRE struct PACKED_POST
6117{
6118 tHalMsgHeader header;
6119
6120 tSetWifiProximityReqParam wifiProximityReqParams;
6121
6122}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6123
6124/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6125typedef PACKED_PRE struct PACKED_POST{
6126
6127 tHalMsgHeader header;
6128
6129 /*status of the request */
6130 tANI_U32 status;
6131
6132} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6133
6134#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006135
6136#ifdef FEATURE_SPECULATIVE_PS_POLL
6137/*---------------------------------------------------------------------------
6138 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6139 *--------------------------------------------------------------------------*/
6140typedef PACKED_PRE struct PACKED_POST
6141{
6142 tANI_U8 bssIdx;
6143 tANI_U16 serviceInterval;
6144 tANI_U16 suspendInterval;
6145 tANI_U8 acMask;
6146} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6147
6148typedef PACKED_PRE struct PACKED_POST
6149{
6150 tHalMsgHeader header;
6151 tHalStartSpecPsPollReqParams specPsPollReq;
6152} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6153
6154/*---------------------------------------------------------------------------
6155 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6156 *--------------------------------------------------------------------------*/
6157typedef PACKED_PRE struct PACKED_POST
6158{
6159 /* success or failure */
6160 tANI_U32 status;
6161 tANI_U8 bssIdx;
6162} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6163
6164typedef PACKED_PRE struct PACKED_POST
6165{
6166 tHalMsgHeader header;
6167 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6168} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6169
6170/*---------------------------------------------------------------------------
6171 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6172 *--------------------------------------------------------------------------*/
6173typedef PACKED_PRE struct PACKED_POST
6174{
6175 tHalMsgHeader header;
6176 tANI_U8 bssIdx;
6177} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6178#endif
6179
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306180#ifdef FEATURE_WLAN_TDLS
6181/*---------------------------------------------------------------------------
6182 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6183 *-------------------------------------------------------------------------*/
6184typedef PACKED_PRE struct PACKED_POST
6185{
6186 /*STA Index*/
6187 tANI_U16 staIdx;
6188
6189 /* if this is 1, self is initiator and peer is reponder */
6190 tANI_U8 bIsResponder;
6191
6192 /* QoS Info */
6193 tANI_U8 acVOUAPSDFlag:1;
6194 tANI_U8 acVIUAPSDFlag:1;
6195 tANI_U8 acBKUAPSDFlag:1;
6196 tANI_U8 acBEUAPSDFlag:1;
6197 tANI_U8 aAck:1;
6198 tANI_U8 maxServicePeriodLength:2;
6199 tANI_U8 moreDataAck:1;
6200
6201 /*TDLS Peer U-APSD Buffer STA Support*/
6202 tANI_U8 TPUBufferStaSupport;
6203
6204}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6205
6206typedef PACKED_PRE struct PACKED_POST
6207{
6208 tHalMsgHeader header;
6209 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6210} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6211
6212/*---------------------------------------------------------------------------
6213 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6214 *-------------------------------------------------------------------------*/
6215
6216typedef PACKED_PRE struct PACKED_POST
6217{
6218 tANI_U32 status;
6219
6220 /*STA Index*/
6221 tANI_U16 staIdx;
6222} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6223
6224typedef PACKED_PRE struct PACKED_POST
6225{
6226 tHalMsgHeader header;
6227 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6228} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6229
6230/*---------------------------------------------------------------------------
6231 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6232 *-------------------------------------------------------------------------*/
6233typedef PACKED_PRE struct PACKED_POST
6234{
6235 /*STA Index*/
6236 tANI_U16 staIdx;
6237}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6238
6239typedef PACKED_PRE struct PACKED_POST
6240{
6241 tHalMsgHeader header;
6242 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6243} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6244
6245/*---------------------------------------------------------------------------
6246 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6247 *-------------------------------------------------------------------------*/
6248
6249typedef PACKED_PRE struct PACKED_POST
6250{
6251 tANI_U32 status;
6252
6253 /*STA Index*/
6254 tANI_U16 staIdx;
6255} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6256
6257typedef PACKED_PRE struct PACKED_POST
6258{
6259 tHalMsgHeader header;
6260 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6261} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6262
6263/*---------------------------------------------------------------------------
6264 *WLAN_HAL_TDLS_IND
6265 *--------------------------------------------------------------------------*/
6266
6267typedef PACKED_PRE struct PACKED_POST
6268{
6269 tANI_U16 assocId;
6270 tANI_U16 staIdx;
6271 tANI_U16 status;
6272 tANI_U16 reasonCode;
6273}tTdlsIndParams, *tpTdlsIndParams;
6274
6275
6276typedef PACKED_PRE struct PACKED_POST
6277{
6278 tHalMsgHeader header;
6279 tTdlsIndParams tdlsIndParams;
6280}tTdlsIndMsg, *tpTdlsIndMsg;
6281
6282#endif
6283
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006284/*---------------------------------------------------------------------------
6285 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6286 *--------------------------------------------------------------------------*/
6287
6288typedef PACKED_PRE struct PACKED_POST
6289{
6290 tANI_U8 bssIdx;
6291 tANI_U8 staIdx;
6292 tSirMacAddr staAddr;
6293}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
6294
6295
6296typedef PACKED_PRE struct PACKED_POST
6297{
6298 tHalMsgHeader header;
6299 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
6300}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
6301
6302
Jeff Johnson295189b2012-06-20 16:38:30 -07006303#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6304#pragma pack(pop)
6305#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6306#else
6307#endif
6308
6309#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006310