blob: a81c1dc5723d1c81a9511045d362137e962af5dc [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,
Leo Chang397deb72013-08-22 11:33:16 -0700393
Kumar Anandf53016f2013-09-04 15:15:53 -0700394 /* Scan Offload APIs */
395 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
396 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
397 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
398 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
399 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
400 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
401 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
402
Leo Chang397deb72013-08-22 11:33:16 -0700403 /* APIs to offload TCP/UDP Heartbeat handshakes */
404 WLAN_HAL_LPHB_CFG_REQ = 211,
405 WLAN_HAL_LPHB_CFG_RSP = 212,
406 WLAN_HAL_LPHB_IND = 213,
407
Yue Maab3ccfc2013-08-14 17:19:08 -0700408 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
409 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
410 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530411
Kumar Anandf53016f2013-09-04 15:15:53 -0700412 // Events to set Per-Band Tx Power Limit
413 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
414 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
415
416 /* Reliable Multicast using Leader Based Protocol */
417 WLAN_HAL_LBP_LEADER_REQ = 219,
418 WLAN_HAL_LBP_LEADER_RSP = 220,
419 WLAN_HAL_LBP_UPDATE_IND = 221,
420
krunal soni2a4728d2013-09-20 21:56:50 -0700421 /* Batchscan */
422 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
423 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
424 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
425 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
426 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
427
428 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
429 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
430
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800431 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700432}tHalHostMsgType;
433
Jeff Johnsone7245742012-09-05 17:12:55 -0700434/* Enumeration for Version */
435typedef enum
436{
437 WLAN_HAL_MSG_VERSION0 = 0,
438 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800439 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
440 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700441}tHalHostMsgVersion;
442
Jeff Johnson295189b2012-06-20 16:38:30 -0700443/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700444typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700445{
446 eANI_BOOLEAN_FALSE = 0,
447 eANI_BOOLEAN_TRUE,
448 eANI_BOOLEAN_OFF = 0,
449 eANI_BOOLEAN_ON = 1,
450 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
451} eAniBoolean;
452
453typedef enum
454{
455 eDRIVER_TYPE_PRODUCTION = 0,
456 eDRIVER_TYPE_MFG = 1,
457 eDRIVER_TYPE_DVT = 2,
458 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
459} tDriverType;
460
461typedef enum
462{
463 HAL_STOP_TYPE_SYS_RESET,
464 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
465 HAL_STOP_TYPE_RF_KILL,
466 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
467}tHalStopType;
468
469typedef enum
470{
471 eHAL_SYS_MODE_NORMAL,
472 eHAL_SYS_MODE_LEARN,
473 eHAL_SYS_MODE_SCAN,
474 eHAL_SYS_MODE_PROMISC,
475 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700476 eHAL_SYS_MODE_ROAM_SCAN,
477 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700478 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700479 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
480} eHalSysMode;
481
482typedef enum
483{
484 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
485 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
486 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
487 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700488#ifdef WLAN_FEATURE_11AC
489 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
490 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
491 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
492 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
493 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
494 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
495 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
496#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700497 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
498}ePhyChanBondState;
499
500// Spatial Multiplexing(SM) Power Save mode
501typedef enum eSirMacHTMIMOPowerSaveState
502{
503 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
504 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
505 eSIR_HT_MIMO_PS_NA = 2, // reserved
506 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
507 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
508} tSirMacHTMIMOPowerSaveState;
509
510/* each station added has a rate mode which specifies the sta attributes */
511typedef enum eStaRateMode {
512 eSTA_TAURUS = 0,
513 eSTA_TITAN,
514 eSTA_POLARIS,
515 eSTA_11b,
516 eSTA_11bg,
517 eSTA_11a,
518 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700519#ifdef WLAN_FEATURE_11AC
520 eSTA_11ac,
521#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700522 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
523} tStaRateMode, *tpStaRateMode;
524
525#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
526#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
527#define SIR_NUM_POLARIS_RATES 3 //72,96,108
528
529#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
530
531
532typedef enum eSirBssType
533{
534 eSIR_INFRASTRUCTURE_MODE,
535 eSIR_INFRA_AP_MODE, //Added for softAP support
536 eSIR_IBSS_MODE,
537 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
538 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
539 eSIR_AUTO_MODE,
540 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
541} tSirBssType;
542
543typedef enum eSirNwType
544{
545 eSIR_11A_NW_TYPE,
546 eSIR_11B_NW_TYPE,
547 eSIR_11G_NW_TYPE,
548 eSIR_11N_NW_TYPE,
549 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
550} tSirNwType;
551
552typedef tANI_U16 tSirMacBeaconInterval;
553
554#define SIR_MAC_RATESET_EID_MAX 12
555
556typedef enum eSirMacHTOperatingMode
557{
558 eSIR_HT_OP_MODE_PURE, // No Protection
559 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
560 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
561 eSIR_HT_OP_MODE_MIXED, // Protection is required
562 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
563} tSirMacHTOperatingMode;
564
Jeff Johnson295189b2012-06-20 16:38:30 -0700565/// Encryption type enum used with peer
566typedef enum eAniEdType
567{
568 eSIR_ED_NONE,
569 eSIR_ED_WEP40,
570 eSIR_ED_WEP104,
571 eSIR_ED_TKIP,
572 eSIR_ED_CCMP,
573 eSIR_ED_WPI,
574 eSIR_ED_AES_128_CMAC,
575 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
576} tAniEdType;
577
578#define WLAN_MAX_KEY_RSC_LEN 16
579#define WLAN_WAPI_KEY_RSC_LEN 16
580
581/// MAX key length when ULA is used
582#define SIR_MAC_MAX_KEY_LENGTH 32
583#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
584
585/// Enum to specify whether key is used
586/// for TX only, RX only or both
587typedef enum eAniKeyDirection
588{
589 eSIR_TX_ONLY,
590 eSIR_RX_ONLY,
591 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700592 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700593 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
594} tAniKeyDirection;
595
596typedef enum eAniWepType
597{
598 eSIR_WEP_STATIC,
599 eSIR_WEP_DYNAMIC,
600 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
601} tAniWepType;
602
603typedef enum eSriLinkState {
604
605 eSIR_LINK_IDLE_STATE = 0,
606 eSIR_LINK_PREASSOC_STATE = 1,
607 eSIR_LINK_POSTASSOC_STATE = 2,
608 eSIR_LINK_AP_STATE = 3,
609 eSIR_LINK_IBSS_STATE = 4,
610
611 /* BT-AMP Case */
612 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
613 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
614 eSIR_LINK_BTAMP_AP_STATE = 7,
615 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700616
Jeff Johnson295189b2012-06-20 16:38:30 -0700617 /* Reserved for HAL Internal Use */
618 eSIR_LINK_LEARN_STATE = 9,
619 eSIR_LINK_SCAN_STATE = 10,
620 eSIR_LINK_FINISH_SCAN_STATE = 11,
621 eSIR_LINK_INIT_CAL_STATE = 12,
622 eSIR_LINK_FINISH_CAL_STATE = 13,
623#ifdef WLAN_FEATURE_P2P
624 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530625 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700626#endif
627 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
628} tSirLinkState;
629
630typedef enum
631{
632 HAL_SUMMARY_STATS_INFO = 0x00000001,
633 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
634 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
635 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
636 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
637 HAL_PER_STA_STATS_INFO = 0x00000020
638}eHalStatsMask;
639
640/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700641typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700642{
643 BTAMP_EVENT_CONNECTION_START,
644 BTAMP_EVENT_CONNECTION_STOP,
645 BTAMP_EVENT_CONNECTION_TERMINATED,
646 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
647} tBtAmpEventType;
648
649//***************************************************************
650
651
652/*******************PE Statistics*************************/
653typedef enum
654{
655 PE_SUMMARY_STATS_INFO = 0x00000001,
656 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
657 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
658 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
659 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
660 PE_PER_STA_STATS_INFO = 0x00000020,
661 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
662}ePEStatsMask;
663
664/*---------------------------------------------------------------------------
665 Message definitons - All the messages below need to be packed
666 ---------------------------------------------------------------------------*/
667
668#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
669#pragma pack(push, 1)
670#elif defined(__ANI_COMPILER_PRAGMA_PACK)
671#pragma pack(1)
672#else
673#endif
674
675/// Definition for HAL API Version.
676typedef PACKED_PRE struct PACKED_POST
677{
678 tANI_U8 revision;
679 tANI_U8 version;
680 tANI_U8 minor;
681 tANI_U8 major;
682} tWcnssWlanVersion, *tpWcnssWlanVersion;
683
684/// Definition for Encryption Keys
685typedef PACKED_PRE struct PACKED_POST
686{
687 tANI_U8 keyId;
688 tANI_U8 unicast; // 0 for multicast
689 tAniKeyDirection keyDirection;
690 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
691 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
692 tANI_U16 keyLength;
693 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
694} tSirKeys, *tpSirKeys;
695
696
697//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
698typedef PACKED_PRE struct PACKED_POST
699{
700 /*STA Index*/
701 tANI_U16 staIdx;
702
703 /*Encryption Type used with peer*/
704 tAniEdType encType;
705
706 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700707 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700708
709 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
710 tANI_U8 defWEPIdx;
711
Jeff Johnson295189b2012-06-20 16:38:30 -0700712 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700713 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
714
Jeff Johnson295189b2012-06-20 16:38:30 -0700715 /*Control for Replay Count, 1= Single TID based replay count on Tx
716 0 = Per TID based replay count on TX */
717 tANI_U8 singleTidRc;
718
719} tSetStaKeyParams, *tpSetStaKeyParams;
720
721
722
723/* 4-byte control message header used by HAL*/
724typedef PACKED_PRE struct PACKED_POST
725{
Jeff Johnsone7245742012-09-05 17:12:55 -0700726 tHalHostMsgType msgType:16;
727 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700728 tANI_U32 msgLen;
729} tHalMsgHeader, *tpHalMsgHeader;
730
731/* Config format required by HAL for each CFG item*/
732typedef PACKED_PRE struct PACKED_POST
733{
734 /* Cfg Id. The Id required by HAL is exported by HAL
735 * in shared header file between UMAC and HAL.*/
736 tANI_U16 uCfgId;
737
Jeff Johnson32d95a32012-09-10 13:15:23 -0700738 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700739 * in the TLV format.*/
740 tANI_U16 uCfgLen;
741
742 /* Padding bytes for unaligned address's */
743 tANI_U16 uCfgPadBytes;
744
745 /* Reserve bytes for making cfgVal to align address */
746 tANI_U16 uCfgReserve;
747
748 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
749 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
750} tHalCfg, *tpHalCfg;
751
752/*---------------------------------------------------------------------------
753 WLAN_HAL_START_REQ
754---------------------------------------------------------------------------*/
755
756typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
757{
758 /* Drive Type - Production or FTM etc */
759 tDriverType driverType;
760
761 /*Length of the config buffer*/
762 tANI_U32 uConfigBufferLen;
763
Jeff Johnson32d95a32012-09-10 13:15:23 -0700764 /* Following this there is a TLV formatted buffer of length
765 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700766 * The TLV is expected to be formatted like this:
767 * 0 15 31 31+CFG_LEN-1 length-1
768 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
769 */
770} tHalMacStartParameters, *tpHalMacStartParameters;
771
772typedef PACKED_PRE struct PACKED_POST
773{
774 /* Note: The length specified in tHalMacStartReqMsg messages should be
775 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
776 tHalMsgHeader header;
777 tHalMacStartParameters startReqParams;
778} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
779
780/*---------------------------------------------------------------------------
781 WLAN_HAL_START_RSP
782---------------------------------------------------------------------------*/
783
784typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
785{
786 /*success or failure */
787 tANI_U16 status;
788
789 /*Max number of STA supported by the device*/
790 tANI_U8 ucMaxStations;
791
792 /*Max number of BSS supported by the device*/
793 tANI_U8 ucMaxBssids;
794
795 /*API Version */
796 tWcnssWlanVersion wcnssWlanVersion;
797
798 /*CRM build information */
799 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
800
801 /*hardware/chipset/misc version information */
802 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
803
804} tHalMacStartRspParams, *tpHalMacStartRspParams;
805
806typedef PACKED_PRE struct PACKED_POST
807{
808 tHalMsgHeader header;
809 tHalMacStartRspParams startRspParams;
810} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
811
812/*---------------------------------------------------------------------------
813 WLAN_HAL_STOP_REQ
814---------------------------------------------------------------------------*/
815
816typedef PACKED_PRE struct PACKED_POST
817{
818 /*The reason for which the device is being stopped*/
819 tHalStopType reason;
820
821}tHalMacStopReqParams, *tpHalMacStopReqParams;
822
823typedef PACKED_PRE struct PACKED_POST
824{
825 tHalMsgHeader header;
826 tHalMacStopReqParams stopReqParams;
827} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
828
829/*---------------------------------------------------------------------------
830 WLAN_HAL_STOP_RSP
831---------------------------------------------------------------------------*/
832
833typedef PACKED_PRE struct PACKED_POST
834{
835 /*success or failure */
836 tANI_U32 status;
837
838}tHalMacStopRspParams, *tpHalMacStopRspParams;
839
840typedef PACKED_PRE struct PACKED_POST
841{
842 tHalMsgHeader header;
843 tHalMacStopRspParams stopRspParams;
844} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
845
846/*---------------------------------------------------------------------------
847 WLAN_HAL_UPDATE_CFG_REQ
848---------------------------------------------------------------------------*/
849
850typedef PACKED_PRE struct PACKED_POST
851{
852 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
853 tANI_U32 uConfigBufferLen;
854
Jeff Johnson32d95a32012-09-10 13:15:23 -0700855 /* Following this there is a TLV formatted buffer of length
856 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700857 * The TLV is expected to be formatted like this:
858 * 0 15 31 31+CFG_LEN-1 length-1
859 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
860 */
861} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
862
863typedef PACKED_PRE struct PACKED_POST
864{
865 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
866 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
867 tHalMsgHeader header;
868 tHalUpdateCfgReqParams updateCfgReqParams;
869} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
870
871/*---------------------------------------------------------------------------
872 WLAN_HAL_UPDATE_CFG_RSP
873---------------------------------------------------------------------------*/
874
875typedef PACKED_PRE struct PACKED_POST
876{
877 /* success or failure */
878 tANI_U32 status;
879
880}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
881
882typedef PACKED_PRE struct PACKED_POST
883{
884 tHalMsgHeader header;
885 tHalUpdateCfgRspParams updateCfgRspParams;
886} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
887
888/*---------------------------------------------------------------------------
889 WLAN_HAL_INIT_SCAN_REQ
890---------------------------------------------------------------------------*/
891
892/// Frame control field format (2 bytes)
893typedef __ani_attr_pre_packed struct sSirMacFrameCtl
894{
895
896#ifndef ANI_LITTLE_BIT_ENDIAN
897
898 tANI_U8 subType :4;
899 tANI_U8 type :2;
900 tANI_U8 protVer :2;
901
902 tANI_U8 order :1;
903 tANI_U8 wep :1;
904 tANI_U8 moreData :1;
905 tANI_U8 powerMgmt :1;
906 tANI_U8 retry :1;
907 tANI_U8 moreFrag :1;
908 tANI_U8 fromDS :1;
909 tANI_U8 toDS :1;
910
911#else
912
913 tANI_U8 protVer :2;
914 tANI_U8 type :2;
915 tANI_U8 subType :4;
916
917 tANI_U8 toDS :1;
918 tANI_U8 fromDS :1;
919 tANI_U8 moreFrag :1;
920 tANI_U8 retry :1;
921 tANI_U8 powerMgmt :1;
922 tANI_U8 moreData :1;
923 tANI_U8 wep :1;
924 tANI_U8 order :1;
925
926#endif
927
928} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
929
930/// Sequence control field
931typedef __ani_attr_pre_packed struct sSirMacSeqCtl
932{
933 tANI_U8 fragNum : 4;
934 tANI_U8 seqNumLo : 4;
935 tANI_U8 seqNumHi : 8;
936} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
937
938/// Management header format
939typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
940{
941 tSirMacFrameCtl fc;
942 tANI_U8 durationLo;
943 tANI_U8 durationHi;
944 tANI_U8 da[6];
945 tANI_U8 sa[6];
946 tANI_U8 bssId[6];
947 tSirMacSeqCtl seqControl;
948} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
949
950/// Scan Entry to hold active BSS idx's
951typedef __ani_attr_pre_packed struct sSirScanEntry
952{
953 tANI_U8 bssIdx[HAL_NUM_BSSID];
954 tANI_U8 activeBSScnt;
955}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
956
957typedef PACKED_PRE struct PACKED_POST {
958
959 /*LEARN - AP Role
960 SCAN - STA Role*/
961 eHalSysMode scanMode;
962
963 /*BSSID of the BSS*/
964 tSirMacAddr bssid;
965
966 /*Whether BSS needs to be notified*/
967 tANI_U8 notifyBss;
968
969 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
970 CTS to Self). Must always be a valid frame type.*/
971 tANI_U8 frameType;
972
973 /*UMAC has the option of passing the MAC frame to be used for notifying
974 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
975 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
976 frameType.*/
977 tANI_U8 frameLength;
978
Jeff Johnson32d95a32012-09-10 13:15:23 -0700979 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700980 is non-zero. */
981 tSirMacMgmtHdr macMgmtHdr;
982
983 /*Entry to hold number of active BSS idx's*/
984 tSirScanEntry scanEntry;
985
986} tInitScanParams, * tpInitScanParams;
987
988typedef PACKED_PRE struct PACKED_POST
989{
990 tHalMsgHeader header;
991 tInitScanParams initScanParams;
992} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
993
994typedef PACKED_PRE struct PACKED_POST {
995
996 /*LEARN - AP Role
997 SCAN - STA Role*/
998 eHalSysMode scanMode;
999
1000 /*BSSID of the BSS*/
1001 tSirMacAddr bssid;
1002
1003 /*Whether BSS needs to be notified*/
1004 tANI_U8 notifyBss;
1005
1006 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1007 CTS to Self). Must always be a valid frame type.*/
1008 tANI_U8 frameType;
1009
1010 /*UMAC has the option of passing the MAC frame to be used for notifying
1011 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1012 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1013 frameType.*/
1014 tANI_U8 frameLength;
1015
Jeff Johnson32d95a32012-09-10 13:15:23 -07001016 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001017 is non-zero. */
1018 tSirMacMgmtHdr macMgmtHdr;
1019
1020 /*Entry to hold number of active BSS idx's*/
1021 tSirScanEntry scanEntry;
1022
1023 /* Single NoA usage in Scanning */
1024 tANI_U8 useNoA;
1025
1026 /* Indicates the scan duration (in ms) */
1027 tANI_U16 scanDuration;
1028
1029} tInitScanConParams, * tpInitScanConParams;
1030
1031typedef PACKED_PRE struct PACKED_POST
1032{
1033 tHalMsgHeader header;
1034 tInitScanConParams initScanParams;
1035} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1036
1037
1038/*---------------------------------------------------------------------------
1039 WLAN_HAL_INIT_SCAN_RSP
1040---------------------------------------------------------------------------*/
1041
1042typedef PACKED_PRE struct PACKED_POST
1043{
1044 /*success or failure */
1045 tANI_U32 status;
1046
1047}tHalInitScanRspParams, *tpHalInitScanRspParams;
1048
1049typedef PACKED_PRE struct PACKED_POST
1050{
1051 tHalMsgHeader header;
1052 tHalInitScanRspParams initScanRspParams;
1053} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1054
1055/*---------------------------------------------------------------------------
1056 WLAN_HAL_START_SCAN_REQ
1057---------------------------------------------------------------------------*/
1058
Jeff Johnson32d95a32012-09-10 13:15:23 -07001059typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001060{
1061 /*Indicates the channel to scan*/
1062 tANI_U8 scanChannel;
1063
1064 } tStartScanParams, * tpStartScanParams;
1065
1066typedef PACKED_PRE struct PACKED_POST
1067{
1068 tHalMsgHeader header;
1069 tStartScanParams startScanParams;
1070} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1071
1072/*---------------------------------------------------------------------------
1073 WLAN_HAL_START_SCAN_RSP
1074---------------------------------------------------------------------------*/
1075
1076typedef PACKED_PRE struct PACKED_POST
1077{
1078 /*success or failure */
1079 tANI_U32 status;
1080
1081 tANI_U32 startTSF[2];
1082 tPowerdBm txMgmtPower;
1083
1084}tHalStartScanRspParams, *tpHalStartScanRspParams;
1085
1086typedef PACKED_PRE struct PACKED_POST
1087{
1088 tHalMsgHeader header;
1089 tHalStartScanRspParams startScanRspParams;
1090} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1091
1092/*---------------------------------------------------------------------------
1093 WLAN_HAL_END_SCAN_REQ
1094---------------------------------------------------------------------------*/
1095
1096typedef PACKED_PRE struct PACKED_POST
1097{
1098 /*Indicates the channel to stop scanning. Not used really. But retained
1099 for symmetry with "start Scan" message. It can also help in error
1100 check if needed.*/
1101 tANI_U8 scanChannel;
1102
1103} tEndScanParams, *tpEndScanParams;
1104
1105typedef PACKED_PRE struct PACKED_POST
1106{
1107 tHalMsgHeader header;
1108 tEndScanParams endScanParams;
1109} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1110
1111/*---------------------------------------------------------------------------
1112 WLAN_HAL_END_SCAN_RSP
1113---------------------------------------------------------------------------*/
1114
1115typedef PACKED_PRE struct PACKED_POST
1116{
1117 /*success or failure */
1118 tANI_U32 status;
1119
1120}tHalEndScanRspParams, *tpHalEndScanRspParams;
1121
1122typedef PACKED_PRE struct PACKED_POST
1123{
1124 tHalMsgHeader header;
1125 tHalEndScanRspParams endScanRspParams;
1126} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1127
1128/*---------------------------------------------------------------------------
1129 WLAN_HAL_FINISH_SCAN_REQ
1130---------------------------------------------------------------------------*/
1131
1132typedef PACKED_PRE struct PACKED_POST
1133{
1134 /* Identifies the operational state of the AP/STA
1135 * LEARN - AP Role SCAN - STA Role */
1136 eHalSysMode scanMode;
1137
1138 /*Operating channel to tune to.*/
1139 tANI_U8 currentOperChannel;
1140
1141 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1142 40 MHz extension channel in combination with the control channel*/
1143 ePhyChanBondState cbState;
1144
1145 /*BSSID of the BSS*/
1146 tSirMacAddr bssid;
1147
1148 /*Whether BSS needs to be notified*/
1149 tANI_U8 notifyBss;
1150
1151 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1152 CTS to Self). Must always be a valid frame type.*/
1153 tANI_U8 frameType;
1154
1155 /*UMAC has the option of passing the MAC frame to be used for notifying
1156 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1157 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1158 frameType.*/
1159 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001160
1161 /*Following the framelength there is a MAC frame buffer if frameLength
1162 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001163 tSirMacMgmtHdr macMgmtHdr;
1164
1165 /*Entry to hold number of active BSS idx's*/
1166 tSirScanEntry scanEntry;
1167
1168} tFinishScanParams, *tpFinishScanParams;
1169
1170typedef PACKED_PRE struct PACKED_POST
1171{
1172 tHalMsgHeader header;
1173 tFinishScanParams finishScanParams;
1174} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1175
1176/*---------------------------------------------------------------------------
1177 WLAN_HAL_FINISH_SCAN_RSP
1178---------------------------------------------------------------------------*/
1179
1180typedef PACKED_PRE struct PACKED_POST
1181{
1182 /*success or failure */
1183 tANI_U32 status;
1184
1185}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1186
1187typedef PACKED_PRE struct PACKED_POST
1188{
1189 tHalMsgHeader header;
1190 tHalFinishScanRspParams finishScanRspParams;
1191} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1192
1193/*---------------------------------------------------------------------------
1194 WLAN_HAL_CONFIG_STA_REQ
1195---------------------------------------------------------------------------*/
1196
1197typedef PACKED_PRE struct PACKED_POST {
1198 /*
1199 * For Self STA Entry: this represents Self Mode.
1200 * For Peer Stations, this represents the mode of the peer.
1201 * On Station:
1202 * --this mode is updated when PE adds the Self Entry.
1203 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1204 * ON AP:
1205 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1206 * to indicate the self mode of the AP.
1207 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1208 */
1209
1210 tStaRateMode opRateMode;
1211 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1212 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1213 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1214 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1215 tANI_U16 reserved;
1216
1217 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1218 //First 26 bits are reserved for those Titan rates and
1219 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1220 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1221
1222 /*
1223 * 0-76 bits used, remaining reserved
1224 * bits 0-15 and 32 should be set.
1225 */
1226 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1227
1228 /*
1229 * RX Highest Supported Data Rate defines the highest data
1230 * rate that the STA is able to receive, in unites of 1Mbps.
1231 * This value is derived from "Supported MCS Set field" inside
1232 * the HT capability element.
1233 */
1234 tANI_U16 rxHighestDataRate;
1235
1236} tSirSupportedRates, *tpSirSupportedRates;
1237
1238typedef PACKED_PRE struct PACKED_POST
1239{
1240 /*BSSID of STA*/
1241 tSirMacAddr bssId;
1242
1243 /*ASSOC ID, as assigned by UMAC*/
1244 tANI_U16 assocId;
1245
1246 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1247 tANI_U8 staType;
1248
1249 /*Short Preamble Supported.*/
1250 tANI_U8 shortPreambleSupported;
1251
1252 /*MAC Address of STA*/
1253 tSirMacAddr staMac;
1254
1255 /*Listen interval of the STA*/
1256 tANI_U16 listenInterval;
1257
1258 /*Support for 11e/WMM*/
1259 tANI_U8 wmmEnabled;
1260
1261 /*11n HT capable STA*/
1262 tANI_U8 htCapable;
1263
1264 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1265 tANI_U8 txChannelWidthSet;
1266
1267 /*RIFS mode 0 - NA, 1 - Allowed */
1268 tANI_U8 rifsMode;
1269
Jeff Johnson32d95a32012-09-10 13:15:23 -07001270 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001271 0 - No Support, 1 - Supported
1272 SG - there is global field */
1273 tANI_U8 lsigTxopProtection;
1274
1275 /*Max Ampdu Size supported by STA. TPE programming.
1276 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1277 tANI_U8 maxAmpduSize;
1278
1279 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1280 tANI_U8 maxAmpduDensity;
1281
1282 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1283 tANI_U8 maxAmsduSize;
1284
1285 /*Short GI support for 40Mhz packets*/
1286 tANI_U8 fShortGI40Mhz;
1287
1288 /*Short GI support for 20Mhz packets*/
1289 tANI_U8 fShortGI20Mhz;
1290
Jeff Johnson295189b2012-06-20 16:38:30 -07001291 /*Robust Management Frame (RMF) enabled/disabled*/
1292 tANI_U8 rmfEnabled;
1293
1294 /* The unicast encryption type in the association */
1295 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001296
1297 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001298 will set this flag in case of RE-ASSOC, where we want to reuse the old
1299 STA ID. 0 = Add, 1 = Update*/
1300 tANI_U8 action;
1301
1302 /*U-APSD Flags: 1b per AC. Encoded as follows:
1303 b7 b6 b5 b4 b3 b2 b1 b0 =
1304 X X X X BE BK VI VO */
1305 tANI_U8 uAPSD;
1306
1307 /*Max SP Length*/
1308 tANI_U8 maxSPLen;
1309
1310 /*11n Green Field preamble support
1311 0 - Not supported, 1 - Supported */
1312 tANI_U8 greenFieldCapable;
1313
1314 /*MIMO Power Save mode*/
1315 tSirMacHTMIMOPowerSaveState mimoPS;
1316
1317 /*Delayed BA Support*/
1318 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001319
Jeff Johnson295189b2012-06-20 16:38:30 -07001320 /*Max AMPDU duration in 32us*/
1321 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001322
Jeff Johnson295189b2012-06-20 16:38:30 -07001323 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1324 it to 0 if AP does not support it. This indication is sent to HAL and
1325 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1326 tANI_U8 fDsssCckMode40Mhz;
1327
1328 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1329 Retained for backward compalibity with existing HAL code*/
1330 tANI_U8 staIdx;
1331
1332 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1333 Retained for backward compalibity with existing HAL code*/
1334 tANI_U8 bssIdx;
1335
1336 tANI_U8 p2pCapableSta;
1337
Jeff Johnsone7245742012-09-05 17:12:55 -07001338 /*Reserved to align next field on a dword boundary*/
1339 tANI_U8 reserved;
1340
1341 /*These rates are the intersection of peer and self capabilities.*/
1342 tSirSupportedRates supportedRates;
1343
Jeff Johnson295189b2012-06-20 16:38:30 -07001344} tConfigStaParams, *tpConfigStaParams;
1345
Jeff Johnsone7245742012-09-05 17:12:55 -07001346/*------------------------------------------------------------------------
1347 * WLAN_HAL_CONFIG_STA_REQ
1348 * ----------------------------------------------------------------------*/
1349
1350typedef PACKED_PRE struct PACKED_POST {
1351 /*
1352 * For Self STA Entry: this represents Self Mode.
1353 * For Peer Stations, this represents the mode of the peer.
1354 * On Station:
1355 * --this mode is updated when PE adds the Self Entry.
1356 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1357 * ON AP:
1358 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1359 * to indicate the self mode of the AP.
1360 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1361 */
1362
1363 tStaRateMode opRateMode;
1364 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1365 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1366 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1367 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1368 tANI_U16 reserved;
1369
1370 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1371 //First 26 bits are reserved for those Titan rates and
1372 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1373 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1374
1375 /*
1376 * 0-76 bits used, remaining reserved
1377 * bits 0-15 and 32 should be set.
1378 */
1379 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1380
1381 /*
1382 * RX Highest Supported Data Rate defines the highest data
1383 * rate that the STA is able to receive, in unites of 1Mbps.
1384 * This value is derived from "Supported MCS Set field" inside
1385 * the HT capability element.
1386 */
1387 tANI_U16 rxHighestDataRate;
1388
1389 /* Indicates the Maximum MCS that can be received for each number
1390 * of spacial streams */
1391 tANI_U16 vhtRxMCSMap;
1392
1393 /*Indicate the highest VHT data rate that the STA is able to receive*/
1394 tANI_U16 vhtRxHighestDataRate;
1395
1396 /* Indicates the Maximum MCS that can be transmitted for each number
1397 * of spacial streams */
1398 tANI_U16 vhtTxMCSMap;
1399
1400 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1401 tANI_U16 vhtTxHighestDataRate;
1402
1403} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1404
1405typedef PACKED_PRE struct PACKED_POST
1406{
1407 /*BSSID of STA*/
1408 tSirMacAddr bssId;
1409
1410 /*ASSOC ID, as assigned by UMAC*/
1411 tANI_U16 assocId;
1412
1413 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1414 tANI_U8 staType;
1415
1416 /*Short Preamble Supported.*/
1417 tANI_U8 shortPreambleSupported;
1418
1419 /*MAC Address of STA*/
1420 tSirMacAddr staMac;
1421
1422 /*Listen interval of the STA*/
1423 tANI_U16 listenInterval;
1424
1425 /*Support for 11e/WMM*/
1426 tANI_U8 wmmEnabled;
1427
1428 /*11n HT capable STA*/
1429 tANI_U8 htCapable;
1430
1431 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1432 tANI_U8 txChannelWidthSet;
1433
1434 /*RIFS mode 0 - NA, 1 - Allowed */
1435 tANI_U8 rifsMode;
1436
1437 /*L-SIG TXOP Protection mechanism
1438 0 - No Support, 1 - Supported
1439 SG - there is global field */
1440 tANI_U8 lsigTxopProtection;
1441
1442 /*Max Ampdu Size supported by STA. TPE programming.
1443 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1444 tANI_U8 maxAmpduSize;
1445
1446 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1447 tANI_U8 maxAmpduDensity;
1448
1449 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1450 tANI_U8 maxAmsduSize;
1451
1452 /*Short GI support for 40Mhz packets*/
1453 tANI_U8 fShortGI40Mhz;
1454
1455 /*Short GI support for 20Mhz packets*/
1456 tANI_U8 fShortGI20Mhz;
1457
1458 /*Robust Management Frame (RMF) enabled/disabled*/
1459 tANI_U8 rmfEnabled;
1460
1461 /* The unicast encryption type in the association */
1462 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001463
1464 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001465 will set this flag in case of RE-ASSOC, where we want to reuse the old
1466 STA ID. 0 = Add, 1 = Update*/
1467 tANI_U8 action;
1468
1469 /*U-APSD Flags: 1b per AC. Encoded as follows:
1470 b7 b6 b5 b4 b3 b2 b1 b0 =
1471 X X X X BE BK VI VO */
1472 tANI_U8 uAPSD;
1473
1474 /*Max SP Length*/
1475 tANI_U8 maxSPLen;
1476
1477 /*11n Green Field preamble support
1478 0 - Not supported, 1 - Supported */
1479 tANI_U8 greenFieldCapable;
1480
1481 /*MIMO Power Save mode*/
1482 tSirMacHTMIMOPowerSaveState mimoPS;
1483
1484 /*Delayed BA Support*/
1485 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001486
Jeff Johnsone7245742012-09-05 17:12:55 -07001487 /*Max AMPDU duration in 32us*/
1488 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001489
Jeff Johnsone7245742012-09-05 17:12:55 -07001490 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1491 it to 0 if AP does not support it. This indication is sent to HAL and
1492 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1493 tANI_U8 fDsssCckMode40Mhz;
1494
1495 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1496 Retained for backward compalibity with existing HAL code*/
1497 tANI_U8 staIdx;
1498
1499 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1500 Retained for backward compalibity with existing HAL code*/
1501 tANI_U8 bssIdx;
1502
1503 tANI_U8 p2pCapableSta;
1504
1505 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001506 tANI_U8 htLdpcEnabled:1;
1507 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001508 tANI_U8 vhtTxBFEnabled:1;
1509 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001510
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001511 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001512 tSirSupportedRates_V1 supportedRates;
1513
1514 tANI_U8 vhtCapable;
1515 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001516
Jeff Johnsone7245742012-09-05 17:12:55 -07001517} tConfigStaParams_V1, *tpConfigStaParams_V1;
1518
Jeff Johnson295189b2012-06-20 16:38:30 -07001519typedef PACKED_PRE struct PACKED_POST
1520{
1521 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001522 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001523 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001524 tConfigStaParams_V1 configStaParams_V1;
1525 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001526} tConfigStaReqMsg, *tpConfigStaReqMsg;
1527
1528/*---------------------------------------------------------------------------
1529 WLAN_HAL_CONFIG_STA_RSP
1530---------------------------------------------------------------------------*/
1531
1532typedef PACKED_PRE struct PACKED_POST
1533{
1534 /*success or failure */
1535 tANI_U32 status;
1536
1537 /* Station index; valid only when 'status' field value SUCCESS */
1538 tANI_U8 staIdx;
1539
1540 /* BSSID Index of BSS to which the station is associated */
1541 tANI_U8 bssIdx;
1542
1543 /* DPU Index for PTK */
1544 tANI_U8 dpuIndex;
1545
Jeff Johnson32d95a32012-09-10 13:15:23 -07001546 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001547 tANI_U8 bcastDpuIndex;
1548
1549 /*DPU Index for IGTK */
1550 tANI_U8 bcastMgmtDpuIdx;
1551
1552 /*PTK DPU signature*/
1553 tANI_U8 ucUcastSig;
1554
1555 /*GTK DPU isignature*/
1556 tANI_U8 ucBcastSig;
1557
1558 /* IGTK DPU signature*/
1559 tANI_U8 ucMgmtSig;
1560
1561 tANI_U8 p2pCapableSta;
1562
1563}tConfigStaRspParams, *tpConfigStaRspParams;
1564
1565typedef PACKED_PRE struct PACKED_POST
1566{
1567 tHalMsgHeader header;
1568 tConfigStaRspParams configStaRspParams;
1569}tConfigStaRspMsg, *tpConfigStaRspMsg;
1570
1571/*---------------------------------------------------------------------------
1572 WLAN_HAL_DELETE_STA_REQ
1573---------------------------------------------------------------------------*/
1574
1575/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001576typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001577{
1578 /* Index of STA to delete */
1579 tANI_U8 staIdx;
1580} tDeleteStaParams, *tpDeleteStaParams;
1581
1582/* Delete STA Request message*/
1583typedef PACKED_PRE struct PACKED_POST
1584{
1585 tHalMsgHeader header;
1586 tDeleteStaParams delStaParams;
1587} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1588
1589/*---------------------------------------------------------------------------
1590 WLAN_HAL_DELETE_STA_RSP
1591---------------------------------------------------------------------------*/
1592
1593/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001594typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001595{
1596 /*success or failure */
1597 tANI_U32 status;
1598
1599 /* Index of STA deleted */
1600 tANI_U8 staId;
1601} tDeleteStaRspParams, *tpDeleteStaRspParams;
1602
1603/* Delete STA Response message*/
1604typedef PACKED_PRE struct PACKED_POST
1605{
1606 tHalMsgHeader header;
1607 tDeleteStaRspParams delStaRspParams;
1608} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1609
1610/*---------------------------------------------------------------------------
1611 WLAN_HAL_CONFIG_BSS_REQ
1612---------------------------------------------------------------------------*/
1613
1614//12 Bytes long because this structure can be used to represent rate
1615//and extended rate set IEs. The parser assume this to be at least 12
1616typedef __ani_attr_pre_packed struct sSirMacRateSet
1617{
1618 tANI_U8 numRates;
1619 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1620} __ani_attr_packed tSirMacRateSet;
1621
1622// access category record
1623typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1624{
1625#ifndef ANI_LITTLE_BIT_ENDIAN
1626 tANI_U8 rsvd : 1;
1627 tANI_U8 aci : 2;
1628 tANI_U8 acm : 1;
1629 tANI_U8 aifsn : 4;
1630#else
1631 tANI_U8 aifsn : 4;
1632 tANI_U8 acm : 1;
1633 tANI_U8 aci : 2;
1634 tANI_U8 rsvd : 1;
1635#endif
1636} __ani_attr_packed tSirMacAciAifsn;
1637
1638// contention window size
1639typedef __ani_attr_pre_packed struct sSirMacCW
1640{
1641#ifndef ANI_LITTLE_BIT_ENDIAN
1642 tANI_U8 max : 4;
1643 tANI_U8 min : 4;
1644#else
1645 tANI_U8 min : 4;
1646 tANI_U8 max : 4;
1647#endif
1648} __ani_attr_packed tSirMacCW;
1649
1650typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1651{
1652 tSirMacAciAifsn aci;
1653 tSirMacCW cw;
1654 tANI_U16 txoplimit;
1655} __ani_attr_packed tSirMacEdcaParamRecord;
1656
1657typedef __ani_attr_pre_packed struct sSirMacSSid
1658{
1659 tANI_U8 length;
1660 tANI_U8 ssId[32];
1661} __ani_attr_packed tSirMacSSid;
1662
1663// Concurrency role. These are generic IDs that identify the various roles
1664// in the software system.
1665typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001666 HAL_STA_MODE=0,
1667 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001668 HAL_P2P_CLIENT_MODE,
1669 HAL_P2P_GO_MODE,
1670 HAL_MONITOR_MODE,
1671} tHalConMode;
1672
1673//This is a bit pattern to be set for each mode
1674//bit 0 - sta mode
1675//bit 1 - ap mode
1676//bit 2 - p2p client mode
1677//bit 3 - p2p go mode
1678typedef enum
1679{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001680 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001681 HAL_SAP=2,
1682 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1683 HAL_P2P_CLIENT=4,
1684 HAL_P2P_GO=8,
1685 HAL_MAX_CONCURRENCY_PERSONA=4
1686} tHalConcurrencyMode;
1687
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001688// IFACE PERSONA for different Operating modes
1689typedef enum
1690{
1691 HAL_IFACE_UNKNOWN,
1692 HAL_IFACE_STA_MODE,
1693 HAL_IFACE_P2P_MODE,
1694 HAL_IFACE_MAX
1695} tHalIfacePersona;
1696
Jeff Johnson295189b2012-06-20 16:38:30 -07001697typedef PACKED_PRE struct PACKED_POST
1698{
1699 /* BSSID */
1700 tSirMacAddr bssId;
1701
Jeff Johnson295189b2012-06-20 16:38:30 -07001702 /* Self Mac Address */
1703 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001704
1705 /* BSS type */
1706 tSirBssType bssType;
1707
1708 /*Operational Mode: AP =0, STA = 1*/
1709 tANI_U8 operMode;
1710
1711 /*Network Type*/
1712 tSirNwType nwType;
1713
1714 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1715 tANI_U8 shortSlotTimeSupported;
1716
1717 /*Co-exist with 11a STA*/
1718 tANI_U8 llaCoexist;
1719
1720 /*Co-exist with 11b STA*/
1721 tANI_U8 llbCoexist;
1722
1723 /*Co-exist with 11g STA*/
1724 tANI_U8 llgCoexist;
1725
1726 /*Coexistence with 11n STA*/
1727 tANI_U8 ht20Coexist;
1728
1729 /*Non GF coexist flag*/
1730 tANI_U8 llnNonGFCoexist;
1731
1732 /*TXOP protection support*/
1733 tANI_U8 fLsigTXOPProtectionFullSupport;
1734
1735 /*RIFS mode*/
1736 tANI_U8 fRIFSMode;
1737
1738 /*Beacon Interval in TU*/
1739 tSirMacBeaconInterval beaconInterval;
1740
1741 /*DTIM period*/
1742 tANI_U8 dtimPeriod;
1743
1744 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1745 tANI_U8 txChannelWidthSet;
1746
1747 /*Operating channel*/
1748 tANI_U8 currentOperChannel;
1749
1750 /*Extension channel for channel bonding*/
1751 tANI_U8 currentExtChannel;
1752
1753 /*Reserved to align next field on a dword boundary*/
1754 tANI_U8 reserved;
1755
Jeff Johnsone7245742012-09-05 17:12:55 -07001756 /*SSID of the BSS*/
1757 tSirMacSSid ssId;
1758
1759 /*HAL should update the existing BSS entry, if this flag is set.
1760 UMAC will set this flag in case of reassoc, where we want to resue the
1761 the old BSSID and still return success 0 = Add, 1 = Update*/
1762 tANI_U8 action;
1763
1764 /* MAC Rate Set */
1765 tSirMacRateSet rateSet;
1766
1767 /*Enable/Disable HT capabilities of the BSS*/
1768 tANI_U8 htCapable;
1769
1770 // Enable/Disable OBSS protection
1771 tANI_U8 obssProtEnabled;
1772
1773 /*RMF enabled/disabled*/
1774 tANI_U8 rmfEnabled;
1775
1776 /*HT Operating Mode operating mode of the 802.11n STA*/
1777 tSirMacHTOperatingMode htOperMode;
1778
1779 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1780 tANI_U8 dualCTSProtection;
1781
1782 /* Probe Response Max retries */
1783 tANI_U8 ucMaxProbeRespRetryLimit;
1784
1785 /* To Enable Hidden ssid */
1786 tANI_U8 bHiddenSSIDEn;
1787
1788 /* To Enable Disable FW Proxy Probe Resp */
1789 tANI_U8 bProxyProbeRespEn;
1790
1791 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1792 EDCA params or might not desire to apply EDCA params during config BSS.
1793 0 implies Not Valid ; Non-Zero implies valid*/
1794 tANI_U8 edcaParamsValid;
1795
1796 /*EDCA Parameters for Best Effort Access Category*/
1797 tSirMacEdcaParamRecord acbe;
1798
1799 /*EDCA Parameters forBackground Access Category*/
1800 tSirMacEdcaParamRecord acbk;
1801
1802 /*EDCA Parameters for Video Access Category*/
1803 tSirMacEdcaParamRecord acvi;
1804
1805 /*EDCA Parameters for Voice Access Category*/
1806 tSirMacEdcaParamRecord acvo;
1807
1808#ifdef WLAN_FEATURE_VOWIFI_11R
1809 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1810 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1811#endif
1812
1813 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1814 tANI_U8 halPersona;
1815
1816 tANI_U8 bSpectrumMgtEnable;
1817
1818 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1819 tANI_S8 txMgmtPower;
1820 /*maxTxPower has max power to be used after applying the power constraint if any */
1821 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001822 /*Context of the station being added in HW
1823 Add a STA entry for "itself" -
1824 On AP - Add the AP itself in an "STA context"
1825 On STA - Add the AP to which this STA is joining in an "STA context" */
1826 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001827} tConfigBssParams, * tpConfigBssParams;
1828
1829
1830/*--------------------------------------------------------------------------
1831 * WLAN_HAL_CONFIG_BSS_REQ
1832 *--------------------------------------------------------------------------*/
1833typedef PACKED_PRE struct PACKED_POST
1834{
1835 /* BSSID */
1836 tSirMacAddr bssId;
1837
Jeff Johnsone7245742012-09-05 17:12:55 -07001838 /* Self Mac Address */
1839 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001840
1841 /* BSS type */
1842 tSirBssType bssType;
1843
1844 /*Operational Mode: AP =0, STA = 1*/
1845 tANI_U8 operMode;
1846
1847 /*Network Type*/
1848 tSirNwType nwType;
1849
1850 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1851 tANI_U8 shortSlotTimeSupported;
1852
1853 /*Co-exist with 11a STA*/
1854 tANI_U8 llaCoexist;
1855
1856 /*Co-exist with 11b STA*/
1857 tANI_U8 llbCoexist;
1858
1859 /*Co-exist with 11g STA*/
1860 tANI_U8 llgCoexist;
1861
1862 /*Coexistence with 11n STA*/
1863 tANI_U8 ht20Coexist;
1864
1865 /*Non GF coexist flag*/
1866 tANI_U8 llnNonGFCoexist;
1867
1868 /*TXOP protection support*/
1869 tANI_U8 fLsigTXOPProtectionFullSupport;
1870 /*RIFS mode*/
1871 tANI_U8 fRIFSMode;
1872
1873 /*Beacon Interval in TU*/
1874 tSirMacBeaconInterval beaconInterval;
1875
1876 /*DTIM period*/
1877 tANI_U8 dtimPeriod;
1878
1879 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1880 tANI_U8 txChannelWidthSet;
1881
1882 /*Operating channel*/
1883 tANI_U8 currentOperChannel;
1884
1885 /*Extension channel for channel bonding*/
1886 tANI_U8 currentExtChannel;
1887
1888 /*Reserved to align next field on a dword boundary*/
1889 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001890
1891 /*SSID of the BSS*/
1892 tSirMacSSid ssId;
1893
1894 /*HAL should update the existing BSS entry, if this flag is set.
1895 UMAC will set this flag in case of reassoc, where we want to resue the
1896 the old BSSID and still return success 0 = Add, 1 = Update*/
1897 tANI_U8 action;
1898
1899 /* MAC Rate Set */
1900 tSirMacRateSet rateSet;
1901
1902 /*Enable/Disable HT capabilities of the BSS*/
1903 tANI_U8 htCapable;
1904
1905 // Enable/Disable OBSS protection
1906 tANI_U8 obssProtEnabled;
1907
1908 /*RMF enabled/disabled*/
1909 tANI_U8 rmfEnabled;
1910
1911 /*HT Operating Mode operating mode of the 802.11n STA*/
1912 tSirMacHTOperatingMode htOperMode;
1913
1914 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1915 tANI_U8 dualCTSProtection;
1916
1917 /* Probe Response Max retries */
1918 tANI_U8 ucMaxProbeRespRetryLimit;
1919
1920 /* To Enable Hidden ssid */
1921 tANI_U8 bHiddenSSIDEn;
1922
1923 /* To Enable Disable FW Proxy Probe Resp */
1924 tANI_U8 bProxyProbeRespEn;
1925
Jeff Johnson32d95a32012-09-10 13:15:23 -07001926 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1927 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001928 0 implies Not Valid ; Non-Zero implies valid*/
1929 tANI_U8 edcaParamsValid;
1930
1931 /*EDCA Parameters for Best Effort Access Category*/
1932 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001933
Jeff Johnson295189b2012-06-20 16:38:30 -07001934 /*EDCA Parameters forBackground Access Category*/
1935 tSirMacEdcaParamRecord acbk;
1936
1937 /*EDCA Parameters for Video Access Category*/
1938 tSirMacEdcaParamRecord acvi;
1939
1940 /*EDCA Parameters for Voice Access Category*/
1941 tSirMacEdcaParamRecord acvo;
1942
1943#ifdef WLAN_FEATURE_VOWIFI_11R
1944 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1945 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1946#endif
1947
Jeff Johnson32d95a32012-09-10 13:15:23 -07001948 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001949 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001950
Jeff Johnson295189b2012-06-20 16:38:30 -07001951 tANI_U8 bSpectrumMgtEnable;
1952
1953 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1954 tANI_S8 txMgmtPower;
1955 /*maxTxPower has max power to be used after applying the power constraint if any */
1956 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001957 /*Context of the station being added in HW
1958 Add a STA entry for "itself" -
1959 On AP - Add the AP itself in an "STA context"
1960 On STA - Add the AP to which this STA is joining in an "STA context" */
1961 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001962
Jeff Johnsone7245742012-09-05 17:12:55 -07001963 tANI_U8 vhtCapable;
1964 tANI_U8 vhtTxChannelWidthSet;
1965} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001966
1967typedef PACKED_PRE struct PACKED_POST
1968{
1969 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001970 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001971 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001972 tConfigBssParams_V1 configBssParams_V1;
1973 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001974} tConfigBssReqMsg, *tpConfigBssReqMsg;
1975
1976/*---------------------------------------------------------------------------
1977 WLAN_HAL_CONFIG_BSS_RSP
1978---------------------------------------------------------------------------*/
1979
1980typedef PACKED_PRE struct PACKED_POST
1981{
1982 /* Success or Failure */
1983 tANI_U32 status;
1984
1985 /* BSS index allocated by HAL */
1986 tANI_U8 bssIdx;
1987
1988 /* DPU descriptor index for PTK */
1989 tANI_U8 dpuDescIndx;
1990
1991 /* PTK DPU signature */
1992 tANI_U8 ucastDpuSignature;
1993
1994 /* DPU descriptor index for GTK*/
1995 tANI_U8 bcastDpuDescIndx;
1996
1997 /* GTK DPU signature */
1998 tANI_U8 bcastDpuSignature;
1999
2000 /*DPU descriptor for IGTK*/
2001 tANI_U8 mgmtDpuDescIndx;
2002
2003 /* IGTK DPU signature */
2004 tANI_U8 mgmtDpuSignature;
2005
2006 /* Station Index for BSS entry*/
2007 tANI_U8 bssStaIdx;
2008
2009 /* Self station index for this BSS */
2010 tANI_U8 bssSelfStaIdx;
2011
2012 /* Bcast station for buffering bcast frames in AP role */
2013 tANI_U8 bssBcastStaIdx;
2014
2015 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2016 tSirMacAddr staMac;
2017
2018 /*HAL fills in the tx power used for mgmt frames in this field. */
2019 tANI_S8 txMgmtPower;
2020
2021} tConfigBssRspParams, * tpConfigBssRspParams;
2022
2023typedef PACKED_PRE struct PACKED_POST
2024{
2025 tHalMsgHeader header;
2026 tConfigBssRspParams configBssRspParams;
2027} tConfigBssRspMsg, *tpConfigBssRspMsg;
2028
2029/*---------------------------------------------------------------------------
2030 WLAN_HAL_DELETE_BSS_REQ
2031---------------------------------------------------------------------------*/
2032
2033typedef PACKED_PRE struct PACKED_POST
2034{
2035 /* BSS index to be deleted */
2036 tANI_U8 bssIdx;
2037
2038} tDeleteBssParams, *tpDeleteBssParams;
2039
2040typedef PACKED_PRE struct PACKED_POST
2041{
2042 tHalMsgHeader header;
2043 tDeleteBssParams deleteBssParams;
2044} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2045
2046/*---------------------------------------------------------------------------
2047 WLAN_HAL_DELETE_BSS_RSP
2048---------------------------------------------------------------------------*/
2049
2050typedef PACKED_PRE struct PACKED_POST
2051{
2052 /* Success or Failure */
2053 tANI_U32 status;
2054
2055 /* BSS index that has been deleted */
2056 tANI_U8 bssIdx;
2057
2058} tDeleteBssRspParams, *tpDeleteBssRspParams;
2059
2060typedef PACKED_PRE struct PACKED_POST
2061{
2062 tHalMsgHeader header;
2063 tDeleteBssRspParams deleteBssRspParams;
2064} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2065
2066/*---------------------------------------------------------------------------
2067 WLAN_HAL_JOIN_REQ
2068---------------------------------------------------------------------------*/
2069
2070typedef PACKED_PRE struct PACKED_POST
2071{
2072 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002073 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002074
2075 /*Indicates the channel to switch to.*/
2076 tANI_U8 ucChannel;
2077
2078 /* Self STA MAC */
2079 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002080
Jeff Johnson295189b2012-06-20 16:38:30 -07002081 /*Local power constraint*/
2082 tANI_U8 ucLocalPowerConstraint;
2083
2084 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002085 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002086
2087 /*link State*/
2088 tSirLinkState linkState;
2089
2090 /* Max TX power */
2091 tANI_S8 maxTxPower;
2092
2093} tHalJoinReqParams, *tpHalJoinReqParams;
2094
2095typedef PACKED_PRE struct PACKED_POST
2096{
2097 tHalMsgHeader header;
2098 tHalJoinReqParams joinReqParams;
2099} tHalJoinReqMsg, *tpHalJoinReqMsg;
2100
2101/*---------------------------------------------------------------------------
2102 WLAN_HAL_JOIN_RSP
2103---------------------------------------------------------------------------*/
2104
2105typedef PACKED_PRE struct PACKED_POST
2106{
2107 /*success or failure */
2108 tANI_U32 status;
2109
2110 /* HAL fills in the tx power used for mgmt frames in this field */
2111 tPowerdBm txMgmtPower;
2112
2113}tHalJoinRspParams, *tpHalJoinRspParams;
2114
2115typedef PACKED_PRE struct PACKED_POST
2116{
2117 tHalMsgHeader header;
2118 tHalJoinRspParams joinRspParams;
2119}tHalJoinRspMsg, *tpHalJoinRspMsg;
2120
2121/*---------------------------------------------------------------------------
2122 WLAN_HAL_POST_ASSOC_REQ
2123---------------------------------------------------------------------------*/
2124
2125typedef PACKED_PRE struct PACKED_POST
2126{
2127 tConfigStaParams configStaParams;
2128 tConfigBssParams configBssParams;
2129} tPostAssocReqParams, *tpPostAssocReqParams;
2130
2131typedef PACKED_PRE struct PACKED_POST
2132{
2133 tHalMsgHeader header;
2134 tPostAssocReqParams postAssocReqParams;
2135} tPostAssocReqMsg, *tpPostAssocReqMsg;
2136
2137/*---------------------------------------------------------------------------
2138 WLAN_HAL_POST_ASSOC_RSP
2139---------------------------------------------------------------------------*/
2140
2141typedef PACKED_PRE struct PACKED_POST
2142{
2143 tConfigStaRspParams configStaRspParams;
2144 tConfigBssRspParams configBssRspParams;
2145} tPostAssocRspParams, *tpPostAssocRspParams;
2146
2147typedef PACKED_PRE struct PACKED_POST
2148{
2149 tHalMsgHeader header;
2150 tPostAssocRspParams postAssocRspParams;
2151} tPostAssocRspMsg, *tpPostAssocRspMsg;
2152
2153/*---------------------------------------------------------------------------
2154 WLAN_HAL_SET_BSSKEY_REQ
2155---------------------------------------------------------------------------*/
2156
2157/*
2158 * This is used by PE to create a set of WEP keys for a given BSS.
2159 */
2160typedef PACKED_PRE struct PACKED_POST
2161{
2162 /*BSS Index of the BSS*/
2163 tANI_U8 bssIdx;
2164
2165 /*Encryption Type used with peer*/
2166 tAniEdType encType;
2167
2168 /*Number of keys*/
2169 tANI_U8 numKeys;
2170
2171 /*Array of keys.*/
2172 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002173
Jeff Johnson295189b2012-06-20 16:38:30 -07002174 /*Control for Replay Count, 1= Single TID based replay count on Tx
2175 0 = Per TID based replay count on TX */
2176 tANI_U8 singleTidRc;
2177} tSetBssKeyParams, *tpSetBssKeyParams;
2178
2179typedef PACKED_PRE struct PACKED_POST
2180{
2181 tHalMsgHeader header;
2182 tSetBssKeyParams setBssKeyParams;
2183} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2184
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002185/* tagged version of set bss key */
2186typedef PACKED_PRE struct PACKED_POST
2187{
2188 tSetBssKeyReqMsg Msg;
2189 uint32 Tag;
2190} tSetBssKeyReqMsgTagged;
2191
Jeff Johnson295189b2012-06-20 16:38:30 -07002192/*---------------------------------------------------------------------------
2193 WLAN_HAL_SET_BSSKEY_RSP
2194---------------------------------------------------------------------------*/
2195typedef PACKED_PRE struct PACKED_POST
2196{
2197 /*success or failure */
2198 tANI_U32 status;
2199
2200} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2201
2202typedef PACKED_PRE struct PACKED_POST
2203{
2204 tHalMsgHeader header;
2205 tSetBssKeyRspParams setBssKeyRspParams;
2206} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2207
2208/*---------------------------------------------------------------------------
2209 WLAN_HAL_SET_STAKEY_REQ,
2210---------------------------------------------------------------------------*/
2211
2212/*
2213 * This is used by PE to configure the key information on a given station.
2214 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2215 * a preconfigured key from a BSS the station assoicated with; otherwise
2216 * a new key descriptor is created based on the key field.
2217 */
2218
2219typedef PACKED_PRE struct PACKED_POST
2220{
2221 tHalMsgHeader header;
2222 tSetStaKeyParams setStaKeyParams;
2223} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2224
2225/*---------------------------------------------------------------------------
2226 WLAN_HAL_SET_STAKEY_RSP,
2227---------------------------------------------------------------------------*/
2228typedef PACKED_PRE struct PACKED_POST
2229{
2230 /*success or failure */
2231 tANI_U32 status;
2232
2233} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2234
2235typedef PACKED_PRE struct PACKED_POST
2236{
2237 tHalMsgHeader header;
2238 tSetStaKeyRspParams setStaKeyRspParams;
2239} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2240
2241/*---------------------------------------------------------------------------
2242 WLAN_HAL_RMV_BSSKEY_REQ,
2243---------------------------------------------------------------------------*/
2244/*
2245 * This is used by PE to remove keys for a given BSS.
2246 */
2247typedef PACKED_PRE struct PACKED_POST
2248
2249{
2250 /*BSS Index of the BSS*/
2251 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002252
Jeff Johnson295189b2012-06-20 16:38:30 -07002253 /*Encryption Type used with peer*/
2254 tAniEdType encType;
2255
2256 /*Key Id*/
2257 tANI_U8 keyId;
2258
2259 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2260 tAniWepType wepType;
2261
2262} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2263
2264typedef PACKED_PRE struct PACKED_POST
2265{
2266 tHalMsgHeader header;
2267 tRemoveBssKeyParams removeBssKeyParams;
2268} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2269
2270/*---------------------------------------------------------------------------
2271 WLAN_HAL_RMV_BSSKEY_RSP,
2272---------------------------------------------------------------------------*/
2273typedef PACKED_PRE struct PACKED_POST
2274{
2275 /*success or failure */
2276 tANI_U32 status;
2277
2278} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2279
2280typedef PACKED_PRE struct PACKED_POST
2281{
2282 tHalMsgHeader header;
2283 tRemoveBssKeyRspParams removeBssKeyRspParams;
2284} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2285
2286/*---------------------------------------------------------------------------
2287 WLAN_HAL_RMV_STAKEY_REQ,
2288---------------------------------------------------------------------------*/
2289/*
2290 * This is used by PE to Remove the key information on a given station.
2291 */
2292typedef PACKED_PRE struct PACKED_POST
2293{
2294 /*STA Index*/
2295 tANI_U16 staIdx;
2296
2297 /*Encryption Type used with peer*/
2298 tAniEdType encType;
2299
2300 /*Key Id*/
2301 tANI_U8 keyId;
2302
2303 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2304 the same key is used for both broadcast and unicast.*/
2305 tANI_BOOLEAN unicast;
2306
2307} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2308
2309typedef PACKED_PRE struct PACKED_POST
2310{
2311 tHalMsgHeader header;
2312 tRemoveStaKeyParams removeStaKeyParams;
2313} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2314
2315/*---------------------------------------------------------------------------
2316 WLAN_HAL_RMV_STAKEY_RSP,
2317---------------------------------------------------------------------------*/
2318typedef PACKED_PRE struct PACKED_POST
2319{
2320 /*success or failure */
2321 tANI_U32 status;
2322} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2323
2324typedef PACKED_PRE struct PACKED_POST
2325{
2326 tHalMsgHeader header;
2327 tRemoveStaKeyRspParams removeStaKeyRspParams;
2328} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2329
Jeff Johnsone7245742012-09-05 17:12:55 -07002330#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002331
Jeff Johnsone7245742012-09-05 17:12:55 -07002332#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002333#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002334#endif
2335
2336#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002337#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002338#endif
2339
2340/*-------------------------------------------------------------------------
2341WLAN_HAL_START_OEM_DATA_REQ
2342--------------------------------------------------------------------------*/
2343typedef PACKED_PRE struct PACKED_POST
2344{
2345 tANI_U32 status;
2346 tSirMacAddr selfMacAddr;
2347 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2348} tStartOemDataReqParams, *tpStartOemDataReqParams;
2349
2350typedef PACKED_PRE struct PACKED_POST
2351{
2352 tHalMsgHeader header;
2353 tStartOemDataReqParams startOemDataReqParams;
2354} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2355
2356/*-------------------------------------------------------------------------
2357WLAN_HAL_START_OEM_DATA_RSP
2358--------------------------------------------------------------------------*/
2359
2360typedef PACKED_PRE struct PACKED_POST
2361{
2362 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2363} tStartOemDataRspParams, *tpStartOemDataRspParams;
2364
2365typedef PACKED_PRE struct PACKED_POST
2366{
2367 tHalMsgHeader header;
2368 tStartOemDataRspParams startOemDataRspParams;
2369} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2370
2371#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002372
2373
2374
2375/*---------------------------------------------------------------------------
2376WLAN_HAL_CH_SWITCH_REQ
2377---------------------------------------------------------------------------*/
2378
2379typedef PACKED_PRE struct PACKED_POST
2380{
2381 /* Channel number */
2382 tANI_U8 channelNumber;
2383
2384 /* Local power constraint */
2385 tANI_U8 localPowerConstraint;
2386
2387 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002388 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002389
2390 //HAL fills in the tx power used for mgmt frames in this field.
2391 tPowerdBm txMgmtPower;
2392
2393 /* Max TX power */
2394 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002395
Jeff Johnson295189b2012-06-20 16:38:30 -07002396 /* Self STA MAC */
2397 tSirMacAddr selfStaMacAddr;
2398
2399 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2400 this should be applied only to that session*/
2401 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2402 * bssid needs to be out of the VOWifi feature flag */
2403 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2404 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2405 */
2406 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002407
Jeff Johnson295189b2012-06-20 16:38:30 -07002408}tSwitchChannelParams, *tpSwitchChannelParams;
2409
2410typedef PACKED_PRE struct PACKED_POST
2411{
2412 tHalMsgHeader header;
2413 tSwitchChannelParams switchChannelParams;
2414} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2415
2416/*---------------------------------------------------------------------------
2417WLAN_HAL_CH_SWITCH_RSP
2418---------------------------------------------------------------------------*/
2419
2420typedef PACKED_PRE struct PACKED_POST
2421{
2422 /* Status */
2423 tANI_U32 status;
2424
2425 /* Channel number - same as in request*/
2426 tANI_U8 channelNumber;
2427
2428 /* HAL fills in the tx power used for mgmt frames in this field */
2429 tPowerdBm txMgmtPower;
2430
2431 /* BSSID needed to identify session - same as in request*/
2432 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002433
Jeff Johnson295189b2012-06-20 16:38:30 -07002434}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2435
2436typedef PACKED_PRE struct PACKED_POST
2437{
2438 tHalMsgHeader header;
2439 tSwitchChannelRspParams switchChannelRspParams;
2440} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2441
2442/*---------------------------------------------------------------------------
2443WLAN_HAL_UPD_EDCA_PARAMS_REQ
2444---------------------------------------------------------------------------*/
2445
2446typedef PACKED_PRE struct PACKED_POST
2447{
2448 /*BSS Index*/
2449 tANI_U16 bssIdx;
2450
2451 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002452 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002453
2454 /* Background */
2455 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002456
Jeff Johnson295189b2012-06-20 16:38:30 -07002457 /* Video */
2458 tSirMacEdcaParamRecord acvi;
2459
2460 /* Voice */
2461 tSirMacEdcaParamRecord acvo;
2462
2463} tEdcaParams, *tpEdcaParams;
2464
2465typedef PACKED_PRE struct PACKED_POST
2466{
2467 tHalMsgHeader header;
2468 tEdcaParams edcaParams;
2469} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2470
2471/*---------------------------------------------------------------------------
2472WLAN_HAL_UPD_EDCA_PARAMS_RSP
2473---------------------------------------------------------------------------*/
2474typedef PACKED_PRE struct PACKED_POST
2475{
2476 /*success or failure */
2477 tANI_U32 status;
2478} tEdcaRspParams, *tpEdcaRspParams;
2479
2480typedef PACKED_PRE struct PACKED_POST
2481{
2482 tHalMsgHeader header;
2483 tEdcaRspParams edcaRspParams;
2484} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2485
2486
2487
2488/*---------------------------------------------------------------------------
2489 * WLAN_HAL_GET_STATS_REQ
2490 *--------------------------------------------------------------------------*/
2491typedef PACKED_PRE struct PACKED_POST
2492
2493{
2494 /* Index of STA to which the statistics */
2495 tANI_U16 staIdx;
2496
2497 /* Encryption mode */
2498 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002499
Jeff Johnson295189b2012-06-20 16:38:30 -07002500 /* status */
2501 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002502
Jeff Johnson295189b2012-06-20 16:38:30 -07002503 /* Statistics */
2504 tANI_U32 sendBlocks;
2505 tANI_U32 recvBlocks;
2506 tANI_U32 replays;
2507 tANI_U8 micErrorCnt;
2508 tANI_U32 protExclCnt;
2509 tANI_U16 formatErrCnt;
2510 tANI_U16 unDecryptableCnt;
2511 tANI_U32 decryptErrCnt;
2512 tANI_U32 decryptOkCnt;
2513} tDpuStatsParams, * tpDpuStatsParams;
2514
2515typedef PACKED_PRE struct PACKED_POST
2516{
2517 /* Valid STA Idx for per STA stats request */
2518 tANI_U32 staId;
2519
2520 /* Categories of stats requested as specified in eHalStatsMask*/
2521 tANI_U32 statsMask;
2522}tHalStatsReqParams, *tpHalStatsReqParams;
2523
2524typedef PACKED_PRE struct PACKED_POST
2525{
2526 tHalMsgHeader header;
2527 tHalStatsReqParams statsReqParams;
2528} tHalStatsReqMsg, *tpHalStatsReqMsg;
2529
2530/*---------------------------------------------------------------------------
2531 * WLAN_HAL_GET_STATS_RSP
2532 *--------------------------------------------------------------------------*/
2533
2534typedef PACKED_PRE struct PACKED_POST
2535{
2536 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2537 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2538 // station successfully transmitted after more than one retransmission attempt
2539
Jeff Johnson32d95a32012-09-10 13:15:23 -07002540 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2541 //(with and without retries, including multi-cast, broadcast)
2542 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2543 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002544 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2545 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2546 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2547 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 -07002548 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2549 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 -07002550 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2551 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 -07002552 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2553 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002554 //to provide this.
2555}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2556
2557
2558// defines tx_rate_flags
2559typedef enum eTxRateInfo
2560{
2561 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2562 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2563 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2564 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2565 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2566} tTxrateinfoflags;
2567
2568
2569typedef PACKED_PRE struct PACKED_POST
2570{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002571 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 -07002572 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002573 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 -07002574 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002575 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2576 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002577 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002578 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2579 //for eg: if it is 10.5dBm, the value would be 105
2580 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2581 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002582
Jeff Johnson32d95a32012-09-10 13:15:23 -07002583 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2584 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002585 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002586 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2587 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002588}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2589
2590typedef PACKED_PRE struct PACKED_POST
2591{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002592 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2593 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002594 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002595 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 -07002596 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002597 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 -07002598 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002599 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 -07002600 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002601 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 -07002602 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002603 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 -07002604 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002605 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 -07002606 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002607 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 -07002608 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002609 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 -07002610 //decrypted
2611 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2612
2613}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002614
Jeff Johnson295189b2012-06-20 16:38:30 -07002615typedef PACKED_PRE struct PACKED_POST
2616{
2617 tAniGlobalSecurityStats ucStats;
2618 tAniGlobalSecurityStats mcbcStats;
2619}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2620
2621typedef PACKED_PRE struct PACKED_POST
2622{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002623 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2624 //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 -07002625 //address 1 field
2626 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 -07002627 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 -07002628 //primary channel
2629 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 -07002630 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 -07002631 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002632 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2633 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002634 //decoded correctly
2635}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2636
2637typedef PACKED_PRE struct PACKED_POST
2638{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002639 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 -07002640 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002641 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2642 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 -07002643 //is transmitted
2644}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2645
2646typedef PACKED_PRE struct PACKED_POST
2647{
2648 /* Success or Failure */
2649 tANI_U32 status;
2650
2651 /* STA Idx */
2652 tANI_U32 staId;
2653
2654 /* Categories of STATS being returned as per eHalStatsMask*/
2655 tANI_U32 statsMask;
2656
2657 /* message type is same as the request type */
2658 tANI_U16 msgType;
2659
2660 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002661 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002662
2663} tHalStatsRspParams, *tpHalStatsRspParams;
2664
2665
2666
2667typedef PACKED_PRE struct PACKED_POST
2668{
2669 tHalMsgHeader header;
2670 tHalStatsRspParams statsRspParams;
2671} tHalStatsRspMsg, *tpHalStatsRspMsg;
2672
2673/*---------------------------------------------------------------------------
2674 * WLAN_HAL_SET_LINK_ST_REQ
2675 *--------------------------------------------------------------------------*/
2676typedef PACKED_PRE struct PACKED_POST
2677{
2678 tSirMacAddr bssid;
2679 tSirLinkState state;
2680 tSirMacAddr selfMacAddr;
2681} tLinkStateParams, *tpLinkStateParams;
2682
2683typedef PACKED_PRE struct PACKED_POST
2684{
2685 tHalMsgHeader header;
2686 tLinkStateParams linkStateParams;
2687} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2688
2689/*---------------------------------------------------------------------------
2690 * WLAN_HAL_SET_LINK_ST_RSP
2691 *--------------------------------------------------------------------------*/
2692
2693typedef PACKED_PRE struct PACKED_POST
2694{
2695 /*success or failure */
2696 tANI_U32 status;
2697} tLinkStateRspParams, *tpLinkStateRspParams;
2698
2699typedef PACKED_PRE struct PACKED_POST
2700{
2701 tHalMsgHeader header;
2702 tLinkStateRspParams linkStateRspParams;
2703} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2704
2705/*---------------------------------------------------------------------------
2706 * WLAN_HAL_ADD_TS_REQ
2707 *--------------------------------------------------------------------------*/
2708
2709/* TSPEC Params */
2710typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2711{
2712#ifndef ANI_LITTLE_BIT_ENDIAN
2713 tANI_U16 ackPolicy : 2;
2714 tANI_U16 userPrio : 3;
2715 tANI_U16 psb : 1;
2716 tANI_U16 aggregation : 1;
2717 tANI_U16 accessPolicy : 2;
2718 tANI_U16 direction : 2;
2719 tANI_U16 tsid : 4;
2720 tANI_U16 trafficType : 1;
2721#else
2722 tANI_U16 trafficType : 1;
2723 tANI_U16 tsid : 4;
2724 tANI_U16 direction : 2;
2725 tANI_U16 accessPolicy : 2;
2726 tANI_U16 aggregation : 1;
2727 tANI_U16 psb : 1;
2728 tANI_U16 userPrio : 3;
2729 tANI_U16 ackPolicy : 2;
2730#endif
2731} __ani_attr_packed tSirMacTSInfoTfc;
2732
2733/* Flag to schedule the traffic type */
2734typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2735{
2736#ifndef ANI_LITTLE_BIT_ENDIAN
2737 tANI_U8 rsvd : 7;
2738 tANI_U8 schedule : 1;
2739#else
2740 tANI_U8 schedule : 1;
2741 tANI_U8 rsvd : 7;
2742#endif
2743} __ani_attr_packed tSirMacTSInfoSch;
2744
2745/* Traffic and scheduling info */
2746typedef __ani_attr_pre_packed struct sSirMacTSInfo
2747{
2748 tSirMacTSInfoTfc traffic;
2749 tSirMacTSInfoSch schedule;
2750} __ani_attr_packed tSirMacTSInfo;
2751
2752/* Information elements */
2753typedef __ani_attr_pre_packed struct sSirMacTspecIE
2754{
2755 tANI_U8 type;
2756 tANI_U8 length;
2757 tSirMacTSInfo tsinfo;
2758 tANI_U16 nomMsduSz;
2759 tANI_U16 maxMsduSz;
2760 tANI_U32 minSvcInterval;
2761 tANI_U32 maxSvcInterval;
2762 tANI_U32 inactInterval;
2763 tANI_U32 suspendInterval;
2764 tANI_U32 svcStartTime;
2765 tANI_U32 minDataRate;
2766 tANI_U32 meanDataRate;
2767 tANI_U32 peakDataRate;
2768 tANI_U32 maxBurstSz;
2769 tANI_U32 delayBound;
2770 tANI_U32 minPhyRate;
2771 tANI_U16 surplusBw;
2772 tANI_U16 mediumTime;
2773}__ani_attr_packed tSirMacTspecIE;
2774
2775typedef PACKED_PRE struct PACKED_POST
2776{
2777 /* Station Index */
2778 tANI_U16 staIdx;
2779
2780 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2781 tANI_U16 tspecIdx;
2782
2783 /* To program TPE with required parameters */
2784 tSirMacTspecIE tspec;
2785
2786 /* U-APSD Flags: 1b per AC. Encoded as follows:
2787 b7 b6 b5 b4 b3 b2 b1 b0 =
2788 X X X X BE BK VI VO */
2789 tANI_U8 uAPSD;
2790
2791 /* These parameters are for all the access categories */
2792 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2793 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2794 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002795
Jeff Johnson295189b2012-06-20 16:38:30 -07002796} tAddTsParams, *tpAddTsParams;
2797
2798typedef PACKED_PRE struct PACKED_POST
2799{
2800 tHalMsgHeader header;
2801 tAddTsParams addTsParams;
2802} tAddTsReqMsg, *tpAddTsReqMsg;
2803
2804/*---------------------------------------------------------------------------
2805 * WLAN_HAL_ADD_TS_RSP
2806 *--------------------------------------------------------------------------*/
2807
2808typedef PACKED_PRE struct PACKED_POST
2809{
2810 /*success or failure */
2811 tANI_U32 status;
2812} tAddTsRspParams, *tpAddTsRspParams;
2813
2814typedef PACKED_PRE struct PACKED_POST
2815{
2816 tHalMsgHeader header;
2817 tAddTsRspParams addTsRspParams;
2818} tAddTsRspMsg, *tpAddTsRspMsg;
2819
2820
2821/*---------------------------------------------------------------------------
2822 * WLAN_HAL_DEL_TS_REQ
2823 *--------------------------------------------------------------------------*/
2824
2825typedef PACKED_PRE struct PACKED_POST
2826{
2827 /* Station Index */
2828 tANI_U16 staIdx;
2829
2830 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2831 tANI_U16 tspecIdx;
2832
2833 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002834 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002835
2836} tDelTsParams, *tpDelTsParams;
2837
2838typedef PACKED_PRE struct PACKED_POST
2839{
2840 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002841 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002842} tDelTsReqMsg, *tpDelTsReqMsg;
2843
2844/*---------------------------------------------------------------------------
2845 * WLAN_HAL_DEL_TS_RSP
2846 *--------------------------------------------------------------------------*/
2847
2848typedef PACKED_PRE struct PACKED_POST
2849{
2850 /*success or failure */
2851 tANI_U32 status;
2852} tDelTsRspParams, *tpDelTsRspParams;
2853
2854typedef PACKED_PRE struct PACKED_POST
2855{
2856 tHalMsgHeader header;
2857 tDelTsRspParams delTsRspParams;
2858} tDelTsRspMsg, *tpDelTsRspMsg;
2859
2860/* End of TSpec Parameters */
2861
2862/* Start of BLOCK ACK related Parameters */
2863
2864/*---------------------------------------------------------------------------
2865 * WLAN_HAL_ADD_BA_SESSION_REQ
2866 *--------------------------------------------------------------------------*/
2867
2868typedef PACKED_PRE struct PACKED_POST
2869{
2870 /* Station Index */
2871 tANI_U16 staIdx;
2872
2873 /* Peer MAC Address */
2874 tSirMacAddr peerMacAddr;
2875
2876 /* ADDBA Action Frame dialog token
2877 HAL will not interpret this object */
2878 tANI_U8 baDialogToken;
2879
2880 /* TID for which the BA is being setup
2881 This identifies the TC or TS of interest */
2882 tANI_U8 baTID;
2883
2884 /* 0 - Delayed BA (Not supported)
2885 1 - Immediate BA */
2886 tANI_U8 baPolicy;
2887
2888 /* Indicates the number of buffers for this TID (baTID)
2889 NOTE - This is the requested buffer size. When this
2890 is processed by HAL and subsequently by HDD, it is
2891 possible that HDD may change this buffer size. Any
2892 change in the buffer size should be noted by PE and
2893 advertized appropriately in the ADDBA response */
2894 tANI_U16 baBufferSize;
2895
2896 /* BA timeout in TU's 0 means no timeout will occur */
2897 tANI_U16 baTimeout;
2898
2899 /* b0..b3 - Fragment Number - Always set to 0
2900 b4..b15 - Starting Sequence Number of first MSDU
2901 for which this BA is setup */
2902 tANI_U16 baSSN;
2903
2904 /* ADDBA direction
2905 1 - Originator
2906 0 - Recipient */
2907 tANI_U8 baDirection;
2908} tAddBASessionParams, *tpAddBASessionParams;
2909
2910typedef PACKED_PRE struct PACKED_POST
2911{
2912 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002913 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002914}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2915
2916/*---------------------------------------------------------------------------
2917 * WLAN_HAL_ADD_BA_SESSION_RSP
2918 *--------------------------------------------------------------------------*/
2919
2920typedef PACKED_PRE struct PACKED_POST
2921{
2922 /*success or failure */
2923 tANI_U32 status;
2924
2925 /* Dialog token */
2926 tANI_U8 baDialogToken;
2927
2928 /* TID for which the BA session has been setup */
2929 tANI_U8 baTID;
2930
2931 /* BA Buffer Size allocated for the current BA session */
2932 tANI_U8 baBufferSize;
2933
2934 tANI_U8 baSessionID;
2935
2936 /* Reordering Window buffer */
2937 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002938
Jeff Johnson295189b2012-06-20 16:38:30 -07002939 /*Station Index to id the sta */
2940 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002941
Jeff Johnson295189b2012-06-20 16:38:30 -07002942 /* Starting Sequence Number */
2943 tANI_U16 SSN;
2944} tAddBASessionRspParams, *tpAddBASessionRspParams;
2945
2946typedef PACKED_PRE struct PACKED_POST
2947{
2948 tHalMsgHeader header;
2949 tAddBASessionRspParams addBASessionRspParams;
2950} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2951
2952/*---------------------------------------------------------------------------
2953 * WLAN_HAL_ADD_BA_REQ
2954 *--------------------------------------------------------------------------*/
2955
2956typedef PACKED_PRE struct PACKED_POST
2957{
2958 /* Session Id */
2959 tANI_U8 baSessionID;
2960
2961 /* Reorder Window Size */
2962 tANI_U8 winSize;
2963
2964#ifdef FEATURE_ON_CHIP_REORDERING
2965 tANI_BOOLEAN isReorderingDoneOnChip;
2966#endif
2967} tAddBAParams, *tpAddBAParams;
2968
2969typedef PACKED_PRE struct PACKED_POST
2970{
2971 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002972 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002973} tAddBAReqMsg, *tpAddBAReqMsg;
2974
2975
2976/*---------------------------------------------------------------------------
2977 * WLAN_HAL_ADD_BA_RSP
2978 *--------------------------------------------------------------------------*/
2979
2980typedef PACKED_PRE struct PACKED_POST
2981{
2982 /*success or failure */
2983 tANI_U32 status;
2984
2985 /* Dialog token */
2986 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002987
Jeff Johnson295189b2012-06-20 16:38:30 -07002988} tAddBARspParams, *tpAddBARspParams;
2989
2990typedef PACKED_PRE struct PACKED_POST
2991{
2992 tHalMsgHeader header;
2993 tAddBARspParams addBARspParams;
2994} tAddBARspMsg, *tpAddBARspMsg;
2995
2996
2997/*---------------------------------------------------------------------------
2998 * WLAN_HAL_TRIGGER_BA_REQ
2999 *--------------------------------------------------------------------------*/
3000
3001
3002typedef struct sAddBaInfo
3003{
3004 tANI_U16 fBaEnable : 1;
3005 tANI_U16 startingSeqNum: 12;
3006 tANI_U16 reserved : 3;
3007}tAddBaInfo, *tpAddBaInfo;
3008
3009typedef struct sTriggerBaRspCandidate
3010{
3011 tSirMacAddr staAddr;
3012 tAddBaInfo baInfo[STACFG_MAX_TC];
3013}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3014
3015typedef struct sTriggerBaCandidate
3016{
3017 tANI_U8 staIdx;
3018 tANI_U8 tidBitmap;
3019}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3020
3021typedef PACKED_PRE struct PACKED_POST
3022{
3023 /* Session Id */
3024 tANI_U8 baSessionID;
3025
Jeff Johnson32d95a32012-09-10 13:15:23 -07003026 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003027 * Candidate List(tTriggerBaCandidate)
3028 */
3029 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003030
Jeff Johnson295189b2012-06-20 16:38:30 -07003031} tTriggerBAParams, *tpTriggerBAParams;
3032
3033typedef PACKED_PRE struct PACKED_POST
3034{
3035 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003036 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003037} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3038
3039
3040/*---------------------------------------------------------------------------
3041 * WLAN_HAL_TRIGGER_BA_RSP
3042 *--------------------------------------------------------------------------*/
3043
3044typedef PACKED_PRE struct PACKED_POST
3045{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003046
Jeff Johnson295189b2012-06-20 16:38:30 -07003047 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003048 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003049
3050 /* success or failure */
3051 tANI_U32 status;
3052
Jeff Johnson32d95a32012-09-10 13:15:23 -07003053 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003054 * Rsp Candidate List(tTriggerRspBaCandidate)
3055 */
3056 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003057
Jeff Johnson295189b2012-06-20 16:38:30 -07003058
3059} tTriggerBARspParams, *tpTriggerBARspParams;
3060
3061typedef PACKED_PRE struct PACKED_POST
3062{
3063 tHalMsgHeader header;
3064 tTriggerBARspParams triggerBARspParams;
3065} tTriggerBARspMsg, *tpTriggerBARspMsg;
3066
3067/*---------------------------------------------------------------------------
3068 * WLAN_HAL_DEL_BA_REQ
3069 *--------------------------------------------------------------------------*/
3070
3071typedef PACKED_PRE struct PACKED_POST
3072{
3073 /* Station Index */
3074 tANI_U16 staIdx;
3075
3076 /* TID for which the BA session is being deleted */
3077 tANI_U8 baTID;
3078
3079 /* DELBA direction
3080 1 - Originator
3081 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003082 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003083} tDelBAParams, *tpDelBAParams;
3084
3085typedef PACKED_PRE struct PACKED_POST
3086{
3087 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003088 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003089} tDelBAReqMsg, *tpDelBAReqMsg;
3090
3091/*---------------------------------------------------------------------------
3092 * WLAN_HAL_DEL_BA_RSP
3093 *--------------------------------------------------------------------------*/
3094
3095typedef PACKED_PRE struct PACKED_POST
3096{
3097 /* success or failure */
3098 tANI_U32 status;
3099} tDelBARspParams, *tpDelBARspParams;
3100
3101typedef PACKED_PRE struct PACKED_POST
3102{
3103 tHalMsgHeader header;
3104 tDelBARspParams delBARspParams;
3105} tDelBARspMsg, *tpDelBARspMsg;
3106
3107
3108#ifdef FEATURE_WLAN_CCX
3109
3110/*---------------------------------------------------------------------------
3111 * WLAN_HAL_TSM_STATS_REQ
3112 *--------------------------------------------------------------------------*/
3113typedef PACKED_PRE struct PACKED_POST
3114{
3115 /* Traffic Id */
3116 tANI_U8 tsmTID;
3117
3118 tSirMacAddr bssId;
3119} tTsmStatsParams, *tpTsmStatsParams;
3120
3121typedef PACKED_PRE struct PACKED_POST
3122{
3123 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003124 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003125} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3126
3127
3128/*---------------------------------------------------------------------------
3129 * WLAN_HAL_TSM_STATS_RSP
3130 *--------------------------------------------------------------------------*/
3131typedef PACKED_PRE struct PACKED_POST
3132{
3133 /*success or failure */
3134 tANI_U32 status;
3135
Jeff Johnson32d95a32012-09-10 13:15:23 -07003136 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003137 tANI_U16 UplinkPktQueueDly;
3138
Jeff Johnson32d95a32012-09-10 13:15:23 -07003139 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003140 tANI_U16 UplinkPktQueueDlyHist[4];
3141
Jeff Johnson32d95a32012-09-10 13:15:23 -07003142 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003143 tANI_U32 UplinkPktTxDly;
3144
Jeff Johnson32d95a32012-09-10 13:15:23 -07003145 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003146 tANI_U16 UplinkPktLoss;
3147
Jeff Johnson32d95a32012-09-10 13:15:23 -07003148 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003149 tANI_U16 UplinkPktCount;
3150
Jeff Johnson32d95a32012-09-10 13:15:23 -07003151 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003152 tANI_U8 RoamingCount;
3153
Jeff Johnson32d95a32012-09-10 13:15:23 -07003154 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003155 tANI_U16 RoamingDly;
3156} tTsmStatsRspParams, *tpTsmStatsRspParams;
3157
3158typedef PACKED_PRE struct PACKED_POST
3159{
3160 tHalMsgHeader header;
3161 tTsmStatsRspParams tsmStatsRspParams;
3162} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3163
3164
3165#endif
3166
3167/*---------------------------------------------------------------------------
3168 * WLAN_HAL_SET_KEYDONE_MSG
3169 *--------------------------------------------------------------------------*/
3170
3171typedef PACKED_PRE struct PACKED_POST
3172{
3173 /*bssid of the keys */
3174 tANI_U8 bssidx;
3175 tANI_U8 encType;
3176} tSetKeyDoneParams, *tpSetKeyDoneParams;
3177
3178typedef PACKED_PRE struct PACKED_POST
3179{
3180 tHalMsgHeader header;
3181 tSetKeyDoneParams setKeyDoneParams;
3182} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3183
3184/*---------------------------------------------------------------------------
3185 * WLAN_HAL_DOWNLOAD_NV_REQ
3186 *--------------------------------------------------------------------------*/
3187typedef PACKED_PRE struct PACKED_POST
3188{
3189 /* Fragment sequence number of the NV Image. Note that NV Image might not
3190 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003191 * can hence choose to chop the NV blob into multiple fragments starting with
3192 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003193 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3194 * concatenated together by HAL without any padding bytes in between.*/
3195 tANI_U16 fragNumber;
3196
3197 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003198 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003199 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3200 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3201 tANI_U16 isLastFragment;
3202
3203 /* NV Image size (number of bytes) */
3204 tANI_U32 nvImgBufferSize;
3205
3206 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3207 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3208} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3209
3210typedef PACKED_PRE struct PACKED_POST
3211{
3212 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3213 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3214 tHalMsgHeader header;
3215 tHalNvImgDownloadReqParams nvImageReqParams;
3216} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3217
3218/*---------------------------------------------------------------------------
3219 * WLAN_HAL_DOWNLOAD_NV_RSP
3220 *--------------------------------------------------------------------------*/
3221typedef PACKED_PRE struct PACKED_POST
3222{
3223 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3224 * after each fragment */
3225 tANI_U32 status;
3226} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3227
3228typedef PACKED_PRE struct PACKED_POST
3229{
3230 tHalMsgHeader header;
3231 tHalNvImgDownloadRspParams nvImageRspParams;
3232} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3233
3234/*---------------------------------------------------------------------------
3235 * WLAN_HAL_STORE_NV_IND
3236 *--------------------------------------------------------------------------*/
3237typedef PACKED_PRE struct PACKED_POST
3238{
3239 /* NV Item */
3240 eNvTable tableID;
3241
3242 /* Size of NV Blob */
3243 tANI_U32 nvBlobSize;
3244
Jeff Johnson32d95a32012-09-10 13:15:23 -07003245 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003246 * NV blob i.e. uint8[nvBlobSize] */
3247} tHalNvStoreParams, *tpHalNvStoreParams;
3248
3249typedef PACKED_PRE struct PACKED_POST
3250{
3251 /* Note: The length specified in tHalNvStoreInd messages should be
3252 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3253 tHalMsgHeader header;
3254 tHalNvStoreParams nvStoreParams;
3255} tHalNvStoreInd, *tpHalNvStoreInd;
3256
3257/* End of Block Ack Related Parameters */
3258
3259/*---------------------------------------------------------------------------
3260 * WLAN_HAL_MIC_FAILURE_IND
3261 *--------------------------------------------------------------------------*/
3262
3263#define SIR_CIPHER_SEQ_CTR_SIZE 6
3264
3265typedef PACKED_PRE struct PACKED_POST
3266{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003267 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003268 tSirMacAddr taMacAddr; //transmitter address
3269 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003270 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003271 tANI_U8 IV1; // first byte of IV
3272 tANI_U8 keyId; // second byte of IV
3273 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3274 tSirMacAddr rxMacAddr; // receive address
3275} tSirMicFailureInfo, *tpSirMicFailureInfo;
3276
3277/* Definition for MIC failure indication
3278 MAC reports this each time a MIC failure occures on Rx TKIP packet
3279 */
3280typedef PACKED_PRE struct PACKED_POST
3281{
3282 tSirMacAddr bssId; // BSSID
3283 tSirMicFailureInfo info;
3284} tSirMicFailureInd, *tpSirMicFailureInd;
3285
3286typedef PACKED_PRE struct PACKED_POST
3287{
3288 tHalMsgHeader header;
3289 tSirMicFailureInd micFailureInd;
3290} tMicFailureIndMsg, *tpMicFailureIndMsg;
3291
Mohit Khanna4a70d262012-09-11 16:30:12 -07003292typedef PACKED_PRE struct PACKED_POST
3293{
3294 tANI_U16 opMode;
3295 tANI_U16 staId;
3296}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3297
3298typedef PACKED_PRE struct PACKED_POST
3299{
3300 tHalMsgHeader header;
3301 tUpdateVHTOpMode updateVhtOpMode;
3302} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3303
3304typedef PACKED_PRE struct PACKED_POST
3305{
3306 tANI_U32 status;
3307} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3308
3309typedef PACKED_PRE struct PACKED_POST
3310{
3311 tHalMsgHeader header;
3312 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3313} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3314
Jeff Johnson295189b2012-06-20 16:38:30 -07003315/*---------------------------------------------------------------------------
3316 * WLAN_HAL_UPDATE_BEACON_REQ
3317 *--------------------------------------------------------------------------*/
3318typedef PACKED_PRE struct PACKED_POST
3319{
3320
3321 tANI_U8 bssIdx;
3322
3323 //shortPreamble mode. HAL should update all the STA rates when it
3324 //receives this message
3325 tANI_U8 fShortPreamble;
3326 //short Slot time.
3327 tANI_U8 fShortSlotTime;
3328 //Beacon Interval
3329 tANI_U16 beaconInterval;
3330 //Protection related
3331 tANI_U8 llaCoexist;
3332 tANI_U8 llbCoexist;
3333 tANI_U8 llgCoexist;
3334 tANI_U8 ht20MhzCoexist;
3335 tANI_U8 llnNonGFCoexist;
3336 tANI_U8 fLsigTXOPProtectionFullSupport;
3337 tANI_U8 fRIFSMode;
3338
3339 tANI_U16 paramChangeBitmap;
3340}tUpdateBeaconParams, *tpUpdateBeaconParams;
3341
3342
3343typedef PACKED_PRE struct PACKED_POST
3344{
3345 tHalMsgHeader header;
3346 tUpdateBeaconParams updateBeaconParam;
3347} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3348
3349/*---------------------------------------------------------------------------
3350 * WLAN_HAL_UPDATE_BEACON_RSP
3351 *--------------------------------------------------------------------------*/
3352typedef PACKED_PRE struct PACKED_POST
3353{
3354 tANI_U32 status;
3355} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3356
3357typedef PACKED_PRE struct PACKED_POST
3358{
3359 tHalMsgHeader header;
3360 tUpdateBeaconRspParams updateBeaconRspParam;
3361} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3362
3363/*---------------------------------------------------------------------------
3364 * WLAN_HAL_SEND_BEACON_REQ
3365 *--------------------------------------------------------------------------*/
3366typedef PACKED_PRE struct PACKED_POST
3367{
3368 tANI_U32 beaconLength; //length of the template.
3369 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3370 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003371 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003372 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3373}tSendBeaconParams, *tpSendBeaconParams;
3374
3375
3376typedef PACKED_PRE struct PACKED_POST
3377{
3378 tHalMsgHeader header;
3379 tSendBeaconParams sendBeaconParam;
3380}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3381
3382/*---------------------------------------------------------------------------
3383 * WLAN_HAL_SEND_BEACON_RSP
3384 *--------------------------------------------------------------------------*/
3385typedef PACKED_PRE struct PACKED_POST
3386{
3387 tANI_U32 status;
3388} tSendBeaconRspParams, *tpSendBeaconRspParams;
3389
3390typedef PACKED_PRE struct PACKED_POST
3391{
3392 tHalMsgHeader header;
3393 tSendBeaconRspParams sendBeaconRspParam;
3394} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3395
3396#ifdef FEATURE_5GHZ_BAND
3397
3398/*---------------------------------------------------------------------------
3399 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3400 *--------------------------------------------------------------------------*/
3401typedef PACKED_PRE struct PACKED_POST
3402{
3403 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003404 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003405}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3406
3407
3408typedef PACKED_PRE struct PACKED_POST
3409{
3410 /* Link Parameters */
3411 tSirEnableRadarInfoType EnableRadarInfo;
3412}tEnableRadarReqParams, *tpEnableRadarReqParams;
3413
3414typedef PACKED_PRE struct PACKED_POST
3415{
3416 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003417 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003418}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3419
3420/*---------------------------------------------------------------------------
3421 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3422 *--------------------------------------------------------------------------*/
3423
3424typedef PACKED_PRE struct PACKED_POST
3425{
3426 /* Link Parameters */
3427 tSirMacAddr BSSID;
3428 /* success or failure */
3429 tANI_U32 status;
3430}tEnableRadarRspParams, *tpEnableRadarRspParams;
3431
3432typedef PACKED_PRE struct PACKED_POST
3433{
3434 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003435 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003436}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3437
3438/*---------------------------------------------------------------------------
3439 *WLAN_HAL_RADAR_DETECT_INTR_IND
3440 *--------------------------------------------------------------------------*/
3441
3442typedef PACKED_PRE struct PACKED_POST
3443{
3444 tANI_U8 radarDetChannel;
3445}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3446
3447typedef PACKED_PRE struct PACKED_POST
3448{
3449 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003450 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003451}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3452
3453/*---------------------------------------------------------------------------
3454 *WLAN_HAL_RADAR_DETECT_IND
3455 *-------------------------------------------------------------------------*/
3456typedef PACKED_PRE struct PACKED_POST
3457{
3458 /*channel number in which the RADAR detected*/
3459 tANI_U8 channelNumber;
3460
3461 /*RADAR pulse width*/
3462 tANI_U16 radarPulseWidth; // in usecond
3463
3464 /*Number of RADAR pulses */
3465 tANI_U16 numRadarPulse;
3466}tRadarDetectIndParams,*tpRadarDetectIndParams;
3467
3468typedef PACKED_PRE struct PACKED_POST
3469{
3470 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003471 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003472}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3473
3474
3475/*---------------------------------------------------------------------------
3476 *WLAN_HAL_GET_TPC_REPORT_REQ
3477 *-------------------------------------------------------------------------*/
3478typedef PACKED_PRE struct PACKED_POST
3479{
3480 tSirMacAddr sta;
3481 tANI_U8 dialogToken;
3482 tANI_U8 txpower;
3483}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3484
3485
3486typedef PACKED_PRE struct PACKED_POST
3487{
3488 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003489 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003490}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3491
3492/*---------------------------------------------------------------------------
3493 * WLAN_HAL_GET_TPC_REPORT_RSP
3494 *--------------------------------------------------------------------------*/
3495
3496typedef PACKED_PRE struct PACKED_POST
3497{
3498 /* success or failure */
3499 tANI_U32 status;
3500}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3501
3502typedef PACKED_PRE struct PACKED_POST
3503{
3504 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003505 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003506}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3507
3508#endif
3509
Jeff Johnson295189b2012-06-20 16:38:30 -07003510/*---------------------------------------------------------------------------
3511 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3512 *-------------------------------------------------------------------------*/
3513typedef PACKED_PRE struct PACKED_POST
3514{
3515 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3516 tANI_U32 probeRespTemplateLen;
3517 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3518 tSirMacAddr bssId;
3519
3520}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3521
3522typedef PACKED_PRE struct PACKED_POST
3523{
3524 tHalMsgHeader header;
3525 tSendProbeRespReqParams sendProbeRespReqParams ;
3526}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3527
3528/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003529 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003530 *--------------------------------------------------------------------------*/
3531
3532typedef PACKED_PRE struct PACKED_POST
3533{
3534 /* success or failure */
3535 tANI_U32 status;
3536}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3537
3538typedef PACKED_PRE struct PACKED_POST
3539{
3540 tHalMsgHeader header;
3541 tSendProbeRespRspParams sendProbeRespRspParams;
3542}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3543
3544
3545/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003546 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003547 *--------------------------------------------------------------------------*/
3548
3549typedef PACKED_PRE struct PACKED_POST
3550{
3551 /* success or failure */
3552 tANI_U32 status;
3553}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3554
3555typedef PACKED_PRE struct PACKED_POST
3556{
3557 tHalMsgHeader header;
3558 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3559}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3560
3561/*---------------------------------------------------------------------------
3562 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3563 *--------------------------------------------------------------------------*/
3564
3565typedef PACKED_PRE struct PACKED_POST
3566{
3567 tANI_U16 assocId;
3568 tANI_U16 staId;
3569 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3570 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003571 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003572 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003573
3574}tDeleteStaContextParams, *tpDeleteStaContextParams;
3575
3576
3577typedef PACKED_PRE struct PACKED_POST
3578{
3579 tHalMsgHeader header;
3580 tDeleteStaContextParams deleteStaContextParams;
3581}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3582
Anand Kumar012623a2013-01-11 17:00:00 -08003583typedef PACKED_PRE struct PACKED_POST
3584{
3585 tHalMsgHeader header;
3586 tANI_U8 assocId;
3587 tANI_U8 staIdx;
3588 tANI_U8 bssIdx;
3589 tANI_U8 uReasonCode;
3590 tANI_U32 uStatus;
3591} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003592
3593/*---------------------------------------------------------------------------
3594 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3595 *--------------------------------------------------------------------------*/
3596
3597typedef PACKED_PRE struct PACKED_POST
3598{
3599 tBtAmpEventType btAmpEventType;
3600
3601}tBtAmpEventParams, *tpBtAmpEventParams;
3602
3603
3604
3605typedef PACKED_PRE struct PACKED_POST
3606{
3607 tHalMsgHeader header;
3608 tBtAmpEventParams btAmpEventParams;
3609}tBtAmpEventMsg, *tpBtAmpEventMsg;
3610
3611/*---------------------------------------------------------------------------
3612*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3613*--------------------------------------------------------------------------*/
3614
3615typedef PACKED_PRE struct PACKED_POST
3616{
3617 /* success or failure */
3618 tANI_U32 status;
3619}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3620
3621typedef PACKED_PRE struct PACKED_POST
3622{
3623 tHalMsgHeader header;
3624 tBtAmpEventRspParams btAmpEventRspParams;
3625}tBtAmpEventRsp, *tpBtAmpEventRsp;
3626
3627
3628/*---------------------------------------------------------------------------
3629 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3630 *--------------------------------------------------------------------------*/
3631
3632typedef PACKED_PRE struct PACKED_POST
3633{
3634 // Station Index. originates from HAL
3635 tANI_U8 ucSTAId;
3636
3637 // TID for which the transmit queue is being flushed
3638 tANI_U8 ucTid;
3639
3640}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3641
3642
3643typedef PACKED_PRE struct PACKED_POST
3644{
3645 tHalMsgHeader header;
3646 tTlHalFlushAcParams tlHalFlushAcParam;
3647}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3648
3649/*---------------------------------------------------------------------------
3650*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3651*--------------------------------------------------------------------------*/
3652
3653typedef PACKED_PRE struct PACKED_POST
3654{
3655 // Station Index. originates from HAL
3656 tANI_U8 ucSTAId;
3657
3658 // TID for which the transmit queue is being flushed
3659 tANI_U8 ucTid;
3660
3661 /* success or failure */
3662 tANI_U32 status;
3663}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3664
3665typedef PACKED_PRE struct PACKED_POST
3666{
3667 tHalMsgHeader header;
3668 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3669}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3670
3671/*---------------------------------------------------------------------------
3672 * WLAN_HAL_ENTER_IMPS_REQ
3673 *--------------------------------------------------------------------------*/
3674typedef PACKED_PRE struct PACKED_POST
3675{
3676 tHalMsgHeader header;
3677} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3678
3679/*---------------------------------------------------------------------------
3680 * WLAN_HAL_EXIT_IMPS_REQ
3681 *--------------------------------------------------------------------------*/
3682typedef PACKED_PRE struct PACKED_POST
3683{
3684 tHalMsgHeader header;
3685} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3686
3687/*---------------------------------------------------------------------------
3688 * WLAN_HAL_ENTER_BMPS_REQ
3689 *--------------------------------------------------------------------------*/
3690
3691typedef PACKED_PRE struct PACKED_POST
3692{
3693 tANI_U8 bssIdx;
3694 //TBTT value derived from the last beacon
3695#ifndef BUILD_QWPTTSTATIC
3696 tANI_U64 tbtt;
3697#endif
3698 tANI_U8 dtimCount;
3699 //DTIM period given to HAL during association may not be valid,
3700 //if association is based on ProbeRsp instead of beacon.
3701 tANI_U8 dtimPeriod;
3702
3703 // For CCX and 11R Roaming
3704 tANI_U32 rssiFilterPeriod;
3705 tANI_U32 numBeaconPerRssiAverage;
3706 tANI_U8 bRssiFilterEnable;
3707
3708} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3709
3710
3711typedef PACKED_PRE struct PACKED_POST
3712{
3713 tHalMsgHeader header;
3714 tHalEnterBmpsReqParams enterBmpsReq;
3715} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3716
3717/*---------------------------------------------------------------------------
3718 * WLAN_HAL_EXIT_BMPS_REQ
3719 *--------------------------------------------------------------------------*/
3720typedef PACKED_PRE struct PACKED_POST
3721{
3722 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003723 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003724} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3725
3726typedef PACKED_PRE struct PACKED_POST
3727{
3728 tHalMsgHeader header;
3729 tHalExitBmpsReqParams exitBmpsReqParams;
3730} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3731
3732/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003733 * WLAN_HAL_MISSED_BEACON_IND
3734 *--------------------------------------------------------------------------*/
3735typedef PACKED_PRE struct PACKED_POST
3736{
3737 tANI_U8 bssIdx;
3738} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3739
3740typedef PACKED_PRE struct PACKED_POST
3741{
3742 tHalMsgHeader header;
3743 tHalMissedBeaconIndParams missedBeaconIndParams;
3744} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3745
3746/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003747 * WLAN_HAL_ADD_BCN_FILTER_REQ
3748 *--------------------------------------------------------------------------*/
3749/* Beacon Filtering data structures */
3750typedef PACKED_PRE struct PACKED_POST
3751{
3752 tANI_U8 offset;
3753 tANI_U8 value;
3754 tANI_U8 bitMask;
3755 tANI_U8 ref;
3756} tEidByteInfo, *tpEidByteInfo;
3757
Jeff Johnson32d95a32012-09-10 13:15:23 -07003758typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003759{
3760 tANI_U16 capabilityInfo;
3761 tANI_U16 capabilityMask;
3762 tANI_U16 beaconInterval;
3763 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003764 tANI_U8 bssIdx;
3765 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003766} tBeaconFilterMsg, *tpBeaconFilterMsg;
3767
3768/* The above structure would be followed by multiple of below mentioned structure */
3769typedef PACKED_PRE struct PACKED_POST
3770{
3771 tANI_U8 elementId;
3772 tANI_U8 checkIePresence;
3773 tEidByteInfo byte;
3774} tBeaconFilterIe, *tpBeaconFilterIe;
3775
3776typedef PACKED_PRE struct PACKED_POST
3777{
3778 tHalMsgHeader header;
3779 tBeaconFilterMsg addBcnFilterParams;
3780} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3781
3782/*---------------------------------------------------------------------------
3783 * WLAN_HAL_REM_BCN_FILTER_REQ
3784 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003785typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003786{
3787 tANI_U8 ucIeCount;
3788 tANI_U8 ucRemIeId[1];
3789} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3790
3791typedef PACKED_PRE struct PACKED_POST
3792{
3793 tHalMsgHeader header;
3794 tRemBeaconFilterMsg remBcnFilterParams;
3795} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3796
3797/*---------------------------------------------------------------------------
3798 * WLAN_HAL_HOST_OFFLOAD_REQ
3799 *--------------------------------------------------------------------------*/
3800#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3801#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3802#define HAL_IPV6_NS_OFFLOAD 2
3803#define HAL_IPV6_ADDR_LEN 16
3804#define HAL_MAC_ADDR_LEN 6
3805#define HAL_OFFLOAD_DISABLE 0
3806#define HAL_OFFLOAD_ENABLE 1
3807#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003808#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003809#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003810#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003811
3812typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3813{
3814 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3815 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3816 //Only support 2 possible Network Advertisement IPv6 address
3817 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3818 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3819 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3820 tANI_U8 srcIPv6AddrValid : 1;
3821 tANI_U8 targetIPv6Addr1Valid : 1;
3822 tANI_U8 targetIPv6Addr2Valid : 1;
3823 tANI_U8 reserved1 : 5;
3824 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003825 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003826 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003827} tHalNSOffloadParams;
3828
3829typedef PACKED_PRE struct PACKED_POST
3830{
3831 tANI_U8 offloadType;
3832 tANI_U8 enableOrDisable;
3833 PACKED_PRE union PACKED_POST
3834 {
3835 tANI_U8 hostIpv4Addr [4];
3836 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3837 } params;
3838} tHalHostOffloadReq, *tpHalHostOffloadReq;
3839
3840typedef PACKED_PRE struct PACKED_POST
3841{
3842 tHalMsgHeader header;
3843 tHalHostOffloadReq hostOffloadParams;
3844 tHalNSOffloadParams nsOffloadParams;
3845} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3846
Leo Chang397deb72013-08-22 11:33:16 -07003847
3848#ifdef FEATURE_WLAN_LPHB
3849typedef enum
3850{
3851 WIFI_HB_SET_ENABLE = 0x0001,
3852 WIFI_HB_SET_TCP_PARAMS = 0x0002,
3853 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
3854 WIFI_HB_SET_UDP_PARAMS = 0x0004,
3855 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
3856 WIFI_HB_SET_NETWORK_INFO = 0x0006,
3857}tLowPowerHeartBeatCmdType ;
3858
3859#define MAX_FLITER_SIZE 64
3860/*---------------------------------------------------------------------------
3861 *FEATURE_WLAN_LPHB REQ
3862 *--------------------------------------------------------------------------*/
3863typedef PACKED_PRE struct PACKED_POST
3864{
3865 uint32 hostIpv4Addr;
3866 uint32 destIpv4Addr;
3867 uint16 hostPort;
3868 uint16 destPort;
3869 uint16 timeOutSec; // in seconds
3870 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07003871 uint16 timePeriodSec; // in seconds
3872 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07003873} tlowPowerHeartBeatParamsTcpStruct;
3874
3875typedef PACKED_PRE struct PACKED_POST
3876{
3877 uint32 hostIpv4Addr;
3878 uint32 destIpv4Addr;
3879 uint16 hostPort;
3880 uint16 destPort;
3881 uint16 timePeriodSec;// in seconds
3882 uint16 timeOutSec; // in seconds
3883 tSirMacAddr gatewayMacAddr;
3884} tlowPowerHeartBeatParamsUdpStruct;
3885
3886typedef PACKED_PRE struct PACKED_POST
3887{
3888 uint32 offset;
3889 uint32 filterLength;
3890 uint8 filter[MAX_FLITER_SIZE];
3891} tlowPowerHeartBeatFilterStruct;
3892
3893typedef PACKED_PRE struct PACKED_POST
3894{
3895 uint8 heartBeatEnable;
3896 uint8 heartBeatType; //TCP or UDP
3897} tlowPowerHeartBeatEnableStruct;
3898
3899typedef PACKED_PRE struct PACKED_POST
3900{
3901 uint8 dummy;
3902} tlowPowerHeartBeatNetworkInfoStruct;
3903
3904
3905typedef PACKED_PRE struct PACKED_POST
3906{
3907 uint8 sessionIdx;
3908 uint16 lowPowerHeartBeatCmdType;
3909 PACKED_PRE union PACKED_PRO
3910 {
3911 tlowPowerHeartBeatEnableStruct control;
3912 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
3913 tlowPowerHeartBeatParamsTcpStruct tcpParams;
3914 tlowPowerHeartBeatParamsUdpStruct udpParams;
3915 tlowPowerHeartBeatNetworkInfoStruct info;
3916 }options;
3917} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
3918
3919
3920typedef PACKED_PRE struct PACKED_POST
3921{
3922 tHalMsgHeader header;
3923 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
3924} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
3925
3926/*---------------------------------------------------------------------------
3927 * FEATURE_WLAN_LPHB RSP
3928 *--------------------------------------------------------------------------*/
3929
3930typedef PACKED_PRE struct PACKED_POST
3931{
3932 /* success or failure */
3933 uint8 sessionIdx;
3934 uint32 status;
3935 uint16 lowPowerHeartBeatCmdType;
3936}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
3937
3938typedef PACKED_PRE struct PACKED_POST
3939{
3940 tHalMsgHeader header;
3941 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
3942}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
3943
3944
3945/*---------------------------------------------------------------------------
3946 * FEATURE_WLAN_LPHB IND
3947 *--------------------------------------------------------------------------*/
Leo Changd9df8aa2013-09-26 13:32:26 -07003948#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
3949#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
3950#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07003951
3952typedef PACKED_PRE struct PACKED_POST
3953{
3954 uint8 bssIdx;
3955 uint8 sessionIdx;
3956 uint8 protocolType; /*TCP or UDP*/
3957 uint8 eventReason;
3958
3959}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
3960
3961typedef PACKED_PRE struct PACKED_POST
3962{
3963 tHalMsgHeader header;
3964 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
3965}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
3966
3967#endif
krunal soni2a4728d2013-09-20 21:56:50 -07003968
3969#ifdef FEATURE_WLAN_BATCH_SCAN
3970
3971/*---------------------------------------------------------------------------
3972 * WLAN_HAL_BATCHSCAN_SET_REQ
3973 *--------------------------------------------------------------------------*/
3974typedef PACKED_PRE struct PACKED_POST
3975{
3976 /* Scan Frerquency - default to 30Sec*/
3977 tANI_U32 scanInterval;
3978 tANI_U32 numScan2Batch;
3979 tANI_U32 bestNetworks;
3980 tANI_U8 rfBand;
3981 tANI_U8 rtt;
3982} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
3983
3984typedef PACKED_PRE struct PACKED_POST
3985{
3986 tHalMsgHeader header;
3987 tHalBatchScanSetParams batchScanParams;
3988} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
3989
3990/*---------------------------------------------------------------------------
3991 * WLAN_HAL_BATCHSCAN_SET_RSP
3992 *--------------------------------------------------------------------------*/
3993typedef PACKED_PRE struct PACKED_POST
3994{
3995 tANI_U32 supportedMscan;
3996} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
3997
3998typedef PACKED_PRE struct PACKED_POST
3999{
4000 tHalMsgHeader header;
4001 tHalBatchScanSetRspParam setBatchScanRspParam;
4002} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4003
4004/*---------------------------------------------------------------------------
4005* WLAN_HAL_BATCHSCAN_STOP_IND
4006*--------------------------------------------------------------------------*/
4007typedef PACKED_PRE struct PACKED_POST
4008{
4009 tANI_U32 param;
4010} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4011
4012typedef PACKED_PRE struct PACKED_POST
4013{
4014 tHalMsgHeader header;
4015 tHalBatchScanStopIndParam param;
4016} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4017
4018/*---------------------------------------------------------------------------
4019* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4020*--------------------------------------------------------------------------*/
4021typedef PACKED_PRE struct PACKED_POST
4022{
4023 tANI_U32 param;
4024} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4025
4026typedef PACKED_PRE struct PACKED_POST
4027{
4028 tHalMsgHeader header;
4029 tHalBatchScanTriggerResultParam param;
4030} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4031
4032/*---------------------------------------------------------------------------
4033 * WLAN_HAL_BATCHSCAN_GET_RSP
4034 *--------------------------------------------------------------------------*/
4035typedef PACKED_PRE struct PACKED_POST
4036{
4037 tANI_U8 bssid[6]; /* BSSID */
4038 tANI_U8 ssid[32]; /* SSID */
4039 tANI_U8 ch; /* Channel */
4040 tANI_U8 rssi; /* RSSI or Level */
4041 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4042 tANI_U32 timestamp;
4043} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4044
4045typedef PACKED_PRE struct PACKED_POST
4046{
4047 tANI_U32 scanId; /* Scan List ID. */
4048 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4049 tANI_U32 numNetworksInScanList;
4050 /* Variable data ptr: Number of AP in Scan List */
4051 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4052 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4053 tANI_U8 scanList[1];
4054} tHalBatchScanList, *tpHalBatchScanList;
4055
4056typedef PACKED_PRE struct PACKED_POST
4057{
4058 tANI_U32 timestamp;
4059 tANI_U32 numScanLists;
4060 boolean isLastResult;
4061 /* Variable Data ptr: Number of Scan Lists*/
4062 /* following isLastResult is data of type tHalBatchScanList
4063 * of sizeof(tHalBatchScanList) * numScanLists*/
4064 tANI_U8 scanResults[1];
4065} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4066
4067typedef PACKED_PRE struct PACKED_POST
4068{
4069 tHalMsgHeader header;
4070 tHalBatchScanResultIndParam resultIndMsgParam;
4071} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4072
4073#endif
4074
Jeff Johnson295189b2012-06-20 16:38:30 -07004075/*---------------------------------------------------------------------------
4076 * WLAN_HAL_KEEP_ALIVE_REQ
4077 *--------------------------------------------------------------------------*/
4078/* Packet Types. */
4079#define HAL_KEEP_ALIVE_NULL_PKT 1
4080#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4081
4082/* Enable or disable keep alive */
4083#define HAL_KEEP_ALIVE_DISABLE 0
4084#define HAL_KEEP_ALIVE_ENABLE 1
4085
4086/* Keep Alive request. */
4087typedef PACKED_PRE struct PACKED_POST
4088{
4089 tANI_U8 packetType;
4090 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004091 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004092 tHalIpv4Addr destIpv4Addr;
4093 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004094 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004095} tHalKeepAliveReq, *tpHalKeepAliveReq;
4096
4097typedef PACKED_PRE struct PACKED_POST
4098{
4099 tHalMsgHeader header;
4100 tHalKeepAliveReq KeepAliveParams;
4101} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4102
4103/*---------------------------------------------------------------------------
4104 * WLAN_HAL_SET_RSSI_THRESH_REQ
4105 *--------------------------------------------------------------------------*/
4106typedef PACKED_PRE struct PACKED_POST
4107{
4108 tANI_S8 ucRssiThreshold1 : 8;
4109 tANI_S8 ucRssiThreshold2 : 8;
4110 tANI_S8 ucRssiThreshold3 : 8;
4111 tANI_U8 bRssiThres1PosNotify : 1;
4112 tANI_U8 bRssiThres1NegNotify : 1;
4113 tANI_U8 bRssiThres2PosNotify : 1;
4114 tANI_U8 bRssiThres2NegNotify : 1;
4115 tANI_U8 bRssiThres3PosNotify : 1;
4116 tANI_U8 bRssiThres3NegNotify : 1;
4117 tANI_U8 bReserved10 : 2;
4118} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004119
Jeff Johnson295189b2012-06-20 16:38:30 -07004120typedef PACKED_PRE struct PACKED_POST
4121{
4122 tHalMsgHeader header;
4123 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004124} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004125
4126/*---------------------------------------------------------------------------
4127 * WLAN_HAL_ENTER_UAPSD_REQ
4128 *--------------------------------------------------------------------------*/
4129typedef PACKED_PRE struct PACKED_POST
4130{
4131 tANI_U8 bkDeliveryEnabled:1;
4132 tANI_U8 beDeliveryEnabled:1;
4133 tANI_U8 viDeliveryEnabled:1;
4134 tANI_U8 voDeliveryEnabled:1;
4135 tANI_U8 bkTriggerEnabled:1;
4136 tANI_U8 beTriggerEnabled:1;
4137 tANI_U8 viTriggerEnabled:1;
4138 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004139 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004140} tUapsdReqParams, *tpUapsdReqParams;
4141
4142typedef PACKED_PRE struct PACKED_POST
4143{
4144 tHalMsgHeader header;
4145 tUapsdReqParams enterUapsdParams;
4146} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4147
4148/*---------------------------------------------------------------------------
4149 * WLAN_HAL_EXIT_UAPSD_REQ
4150 *--------------------------------------------------------------------------*/
4151typedef PACKED_PRE struct PACKED_POST
4152{
4153 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004154 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004155} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4156
4157/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004158 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4159 *--------------------------------------------------------------------------*/
4160typedef PACKED_PRE struct PACKED_POST
4161{
4162 tANI_U32 selfStaIdx:8;
4163 tANI_U32 ucPtrnId:8; // Pattern ID
4164 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4165 tANI_U32 uPtrnIntervalMs; // In msec
4166 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4167} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4168
4169typedef PACKED_PRE struct PACKED_POST
4170{
4171 tHalMsgHeader header;
4172 tHalAddPeriodicTxPtrn ptrnParams;
4173} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4174
4175/*---------------------------------------------------------------------------
4176 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4177 *--------------------------------------------------------------------------*/
4178typedef PACKED_PRE struct PACKED_POST
4179{
4180 tANI_U32 selfStaIdx:8;
4181 tANI_U32 rsvd:24;
4182 /* Bitmap of pattern IDs that needs to be deleted */
4183 tANI_U32 uPatternIdBitmap;
4184} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4185
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tHalMsgHeader header;
4189 tHalDelPeriodicTxPtrn ptrnParams;
4190} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4191
4192/*---------------------------------------------------------------------------
4193 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4194 *--------------------------------------------------------------------------*/
4195typedef PACKED_PRE struct PACKED_POST
4196{
4197 /* Type of Failure indication */
4198 tANI_U32 bssIdx:8;
4199 tANI_U32 selfStaIdx:8;
4200 tANI_U32 rsvd:16;
4201 tANI_U32 status;
4202 tANI_U32 patternIdBitmap;
4203} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4204
4205typedef PACKED_PRE struct PACKED_POST
4206{
4207 tHalMsgHeader header;
4208 tHalPeriodicTxPtrnFwInd fwIndParams;
4209} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4210
4211/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004212 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4213 *--------------------------------------------------------------------------*/
4214#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4215#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4216
4217typedef PACKED_PRE struct PACKED_POST
4218{
4219 tANI_U8 ucPatternId; // Pattern ID
4220 // Pattern byte offset from beginning of the 802.11 packet to start of the
4221 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07004222 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004223 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4224 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4225 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4226 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4227 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4228 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004229 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004230} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4231
4232typedef PACKED_PRE struct PACKED_POST
4233{
4234 tHalMsgHeader header;
4235 tHalWowlAddBcastPtrn ptrnParams;
4236} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004237
Jeff Johnsone7245742012-09-05 17:12:55 -07004238
4239
Jeff Johnson295189b2012-06-20 16:38:30 -07004240/*---------------------------------------------------------------------------
4241 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4242 *--------------------------------------------------------------------------*/
4243typedef PACKED_PRE struct PACKED_POST
4244{
4245 /* Pattern ID of the wakeup pattern to be deleted */
4246 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004247 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004248} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4249
4250typedef PACKED_PRE struct PACKED_POST
4251{
4252 tHalMsgHeader header;
4253 tHalWowlDelBcastPtrn ptrnParams;
4254} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4255
4256/*---------------------------------------------------------------------------
4257 * WLAN_HAL_ENTER_WOWL_REQ
4258 *--------------------------------------------------------------------------*/
4259typedef PACKED_PRE struct PACKED_POST
4260{
4261 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004262 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004263
4264 /* Magic pattern */
4265 tSirMacAddr magicPtrn;
4266
Jeff Johnson32d95a32012-09-10 13:15:23 -07004267 /* Enables/disables packet pattern filtering in firmware.
4268 Enabling this flag enables broadcast pattern matching
4269 in Firmware. If unicast pattern matching is also desired,
4270 ucUcastPatternFilteringEnable flag must be set tot true
4271 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004272 */
4273 tANI_U8 ucPatternFilteringEnable;
4274
Jeff Johnson32d95a32012-09-10 13:15:23 -07004275 /* Enables/disables unicast packet pattern filtering.
4276 This flag specifies whether we want to do pattern match
4277 on unicast packets as well and not just broadcast packets.
4278 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004279 (main controlling flag) is set to false
4280 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004281 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004282
Jeff Johnson32d95a32012-09-10 13:15:23 -07004283 /* This configuration is valid only when magicPktEnable=1.
4284 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004285 * Channel Switch Action Frame.
4286 */
4287 tANI_U8 ucWowChnlSwitchRcv;
4288
Jeff Johnson32d95a32012-09-10 13:15:23 -07004289 /* This configuration is valid only when magicPktEnable=1.
4290 * It requests hardware to wake up when it receives the
4291 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004292 */
4293 tANI_U8 ucWowDeauthRcv;
4294
Jeff Johnson32d95a32012-09-10 13:15:23 -07004295 /* This configuration is valid only when magicPktEnable=1.
4296 * It requests hardware to wake up when it receives the
4297 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004298 */
4299 tANI_U8 ucWowDisassocRcv;
4300
Jeff Johnson32d95a32012-09-10 13:15:23 -07004301 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004302 * It requests hardware to wake up when it has missed
4303 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07004304 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004305 */
4306 tANI_U8 ucWowMaxMissedBeacons;
4307
Jeff Johnson32d95a32012-09-10 13:15:23 -07004308 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004309 * This is a timeout value in units of microsec. It requests
4310 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07004311 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004312 */
4313 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004314
Jeff Johnson295189b2012-06-20 16:38:30 -07004315 /* This configuration directs the WoW packet filtering to look for EAP-ID
4316 * requests embedded in EAPOL frames and use this as a wake source.
4317 */
4318 tANI_U8 ucWoWEAPIDRequestEnable;
4319
4320 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4321 * requests and use this as a wake source.
4322 */
4323 tANI_U8 ucWoWEAPOL4WayEnable;
4324
4325 /* This configuration allows a host wakeup on an network scan offload match.
4326 */
4327 tANI_U8 ucWowNetScanOffloadMatch;
4328
4329 /* This configuration allows a host wakeup on any GTK rekeying error.
4330 */
4331 tANI_U8 ucWowGTKRekeyError;
4332
4333 /* This configuration allows a host wakeup on BSS connection loss.
4334 */
4335 tANI_U8 ucWoWBSSConnLoss;
4336
Jeff Johnsone7245742012-09-05 17:12:55 -07004337 tANI_U8 bssIdx;
4338
Jeff Johnson295189b2012-06-20 16:38:30 -07004339} tHalWowlEnterParams, *tpHalWowlEnterParams;
4340
4341typedef PACKED_PRE struct PACKED_POST
4342{
4343 tHalMsgHeader header;
4344 tHalWowlEnterParams enterWowlParams;
4345} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4346
4347/*---------------------------------------------------------------------------
4348 * WLAN_HAL_EXIT_WOWL_REQ
4349 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004350
Jeff Johnson295189b2012-06-20 16:38:30 -07004351typedef PACKED_PRE struct PACKED_POST
4352{
Jeff Johnsone7245742012-09-05 17:12:55 -07004353 tANI_U8 bssIdx;
4354
4355} tHalWowlExitParams, *tpHalWowlExitParams;
4356
4357typedef PACKED_PRE struct PACKED_POST
4358{
4359 tHalMsgHeader header;
4360 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004361} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4362
4363/*---------------------------------------------------------------------------
4364 * WLAN_HAL_GET_RSSI_REQ
4365 *--------------------------------------------------------------------------*/
4366typedef PACKED_PRE struct PACKED_POST
4367{
4368 tHalMsgHeader header;
4369} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4370
Anand Kumar012623a2013-01-11 17:00:00 -08004371typedef PACKED_PRE struct PACKED_POST
4372{
4373 /* Valid STA Idx for per STA stats request */
4374 tANI_U32 staId;
4375
4376}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4377
4378
4379/*---------------------------------------------------------------------------
4380 * WLAN_HAL_GET_ROAM_RSSI_REQ
4381 *--------------------------------------------------------------------------*/
4382typedef PACKED_PRE struct PACKED_POST
4383{
4384 tHalMsgHeader header;
4385 tHalRoamRssiReqParams roamRssiReqParams;
4386} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4387
4388
Jeff Johnson295189b2012-06-20 16:38:30 -07004389/*---------------------------------------------------------------------------
4390 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4391 *--------------------------------------------------------------------------*/
4392typedef PACKED_PRE struct PACKED_POST {
4393 tANI_U8 staidx; // STA index
4394 tANI_U8 ac; // Access Category
4395 tANI_U8 up; // User Priority
4396 tANI_U32 srvInterval; // Service Interval
4397 tANI_U32 susInterval; // Suspend Interval
4398 tANI_U32 delayInterval; // Delay Interval
4399} tUapsdInfo, tpUapsdInfo;
4400
4401typedef PACKED_PRE struct PACKED_POST
4402{
4403 tHalMsgHeader header;
4404 tUapsdInfo enableUapsdAcParams;
4405} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4406
4407/*---------------------------------------------------------------------------
4408 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4409 *--------------------------------------------------------------------------*/
4410typedef PACKED_PRE struct PACKED_POST {
4411 tANI_U8 setMcstBcstFilterSetting;
4412 tANI_U8 setMcstBcstFilter;
4413} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4414
4415typedef PACKED_PRE struct PACKED_POST
4416{
4417 tHalMsgHeader header;
4418 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4419} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4420
4421/*---------------------------------------------------------------------------
4422 * WLAN_HAL_ENTER_IMPS_RSP
4423 *--------------------------------------------------------------------------*/
4424typedef PACKED_PRE struct PACKED_POST
4425{
4426 /* success or failure */
4427 tANI_U32 status;
4428} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4429
4430typedef PACKED_PRE struct PACKED_POST
4431{
4432 tHalMsgHeader header;
4433 tHalEnterImpsRspParams enterImpsRspParams;
4434} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4435
4436/*---------------------------------------------------------------------------
4437 * WLAN_HAL_EXIT_IMPS_RSP
4438 *--------------------------------------------------------------------------*/
4439typedef PACKED_PRE struct PACKED_POST
4440{
4441 /* success or failure */
4442 tANI_U32 status;
4443} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4444
4445typedef PACKED_PRE struct PACKED_POST
4446{
4447 tHalMsgHeader header;
4448 tHalExitImpsRspParams exitImpsRspParams;
4449} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4450
4451/*---------------------------------------------------------------------------
4452 * WLAN_HAL_ENTER_BMPS_RSP
4453 *--------------------------------------------------------------------------*/
4454typedef PACKED_PRE struct PACKED_POST
4455{
4456 /* success or failure */
4457 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004458 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004459} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4460
4461typedef PACKED_PRE struct PACKED_POST
4462{
4463 tHalMsgHeader header;
4464 tHalEnterBmpsRspParams enterBmpsRspParams;
4465} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4466
4467/*---------------------------------------------------------------------------
4468 * WLAN_HAL_EXIT_BMPS_RSP
4469 *--------------------------------------------------------------------------*/
4470typedef PACKED_PRE struct PACKED_POST
4471{
4472 /* success or failure */
4473 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004474 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004475} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4476
4477typedef PACKED_PRE struct PACKED_POST
4478{
4479 tHalMsgHeader header;
4480 tHalExitBmpsRspParams exitBmpsRspParams;
4481} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4482
4483/*---------------------------------------------------------------------------
4484 * WLAN_HAL_ENTER_UAPSD_RSP
4485 *--------------------------------------------------------------------------*/
4486typedef PACKED_PRE struct PACKED_POST
4487{
4488 /* success or failure */
4489 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004490 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004491}tUapsdRspParams, *tpUapsdRspParams;
4492
4493typedef PACKED_PRE struct PACKED_POST
4494{
4495 tHalMsgHeader header;
4496 tUapsdRspParams enterUapsdRspParams;
4497} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4498
4499/*---------------------------------------------------------------------------
4500 * WLAN_HAL_EXIT_UAPSD_RSP
4501 *--------------------------------------------------------------------------*/
4502typedef PACKED_PRE struct PACKED_POST
4503{
4504 /* success or failure */
4505 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004506 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004507} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4508
4509typedef PACKED_PRE struct PACKED_POST
4510{
4511 tHalMsgHeader header;
4512 tHalExitUapsdRspParams exitUapsdRspParams;
4513} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4514
4515/*---------------------------------------------------------------------------
4516 * WLAN_HAL_RSSI_NOTIFICATION_IND
4517 *--------------------------------------------------------------------------*/
4518typedef PACKED_PRE struct PACKED_POST
4519{
4520 tANI_U32 bRssiThres1PosCross : 1;
4521 tANI_U32 bRssiThres1NegCross : 1;
4522 tANI_U32 bRssiThres2PosCross : 1;
4523 tANI_U32 bRssiThres2NegCross : 1;
4524 tANI_U32 bRssiThres3PosCross : 1;
4525 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004526 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004527 tANI_U32 uBssIdx : 8;
4528 tANI_U32 bReserved : 10;
Jeff Johnson295189b2012-06-20 16:38:30 -07004529} tHalRSSINotification, *tpHalRSSINotification;
4530
4531typedef PACKED_PRE struct PACKED_POST
4532{
4533 tHalMsgHeader header;
4534 tHalRSSINotification rssiNotificationParams;
4535} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4536
4537/*---------------------------------------------------------------------------
4538 * WLAN_HAL_GET_RSSI_RSP
4539 *--------------------------------------------------------------------------*/
4540typedef PACKED_PRE struct PACKED_POST
4541{
4542 /* success or failure */
4543 tANI_U32 status;
4544 tANI_S8 rssi;
4545} tHalGetRssiParams, *tpHalGetRspParams;
4546
4547typedef PACKED_PRE struct PACKED_POST
4548{
4549 tHalMsgHeader header;
4550 tHalGetRssiParams rssiRspParams;
4551} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4552
4553/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004554 * WLAN_HAL_GET_ROAM_RSSI_RSP
4555 *--------------------------------------------------------------------------*/
4556typedef PACKED_PRE struct PACKED_POST
4557{
4558 /* success or failure */
4559 tANI_U32 status;
4560
4561 tANI_U8 staId;
4562 tANI_S8 rssi;
4563} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4564
4565typedef PACKED_PRE struct PACKED_POST
4566{
4567 tHalMsgHeader header;
4568 tHalGetRoamRssiParams roamRssiRspParams;
4569} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4570
4571/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004572 * WLAN_HAL_ENTER_WOWL_RSP
4573 *--------------------------------------------------------------------------*/
4574typedef PACKED_PRE struct PACKED_POST
4575{
4576 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004577 tANI_U32 status;
4578 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004579} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4580
4581typedef PACKED_PRE struct PACKED_POST
4582{
4583 tHalMsgHeader header;
4584 tHalEnterWowlRspParams enterWowlRspParams;
4585} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4586
4587/*---------------------------------------------------------------------------
4588 * WLAN_HAL_EXIT_WOWL_RSP
4589 *--------------------------------------------------------------------------*/
4590typedef PACKED_PRE struct PACKED_POST
4591{
4592 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004593 tANI_U32 status;
4594 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004595} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4596
4597typedef PACKED_PRE struct PACKED_POST
4598{
4599 tHalMsgHeader header;
4600 tHalExitWowlRspParams exitWowlRspParams;
4601} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4602
4603/*---------------------------------------------------------------------------
4604 * WLAN_HAL_ADD_BCN_FILTER_RSP
4605 *--------------------------------------------------------------------------*/
4606typedef PACKED_PRE struct PACKED_POST
4607{
4608 /* success or failure */
4609 tANI_U32 status;
4610} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4611
4612typedef PACKED_PRE struct PACKED_POST
4613{
4614 tHalMsgHeader header;
4615 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4616} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4617
4618/*---------------------------------------------------------------------------
4619 * WLAN_HAL_REM_BCN_FILTER_RSP
4620 *--------------------------------------------------------------------------*/
4621typedef PACKED_PRE struct PACKED_POST
4622{
4623 /* success or failure */
4624 tANI_U32 status;
4625} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4626
4627typedef PACKED_PRE struct PACKED_POST
4628{
4629 tHalMsgHeader header;
4630 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4631} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4632
4633/*---------------------------------------------------------------------------
4634 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4635 *--------------------------------------------------------------------------*/
4636typedef PACKED_PRE struct PACKED_POST
4637{
4638 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004639 tANI_U32 status;
4640 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004641} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4642
4643typedef PACKED_PRE struct PACKED_POST
4644{
4645 tHalMsgHeader header;
4646 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4647} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4648
4649/*---------------------------------------------------------------------------
4650 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4651 *--------------------------------------------------------------------------*/
4652typedef PACKED_PRE struct PACKED_POST
4653{
4654 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004655 tANI_U32 status;
4656 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004657} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4658
4659typedef PACKED_PRE struct PACKED_POST
4660{
4661 tHalMsgHeader header;
4662 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4663} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4664
4665/*---------------------------------------------------------------------------
4666 * WLAN_HAL_HOST_OFFLOAD_RSP
4667 *--------------------------------------------------------------------------*/
4668typedef PACKED_PRE struct PACKED_POST
4669{
4670 /* success or failure */
4671 tANI_U32 status;
4672} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4673
4674typedef PACKED_PRE struct PACKED_POST
4675{
4676 tHalMsgHeader header;
4677 tHalHostOffloadRspParams hostOffloadRspParams;
4678} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4679
4680/*---------------------------------------------------------------------------
4681 * WLAN_HAL_KEEP_ALIVE_RSP
4682 *--------------------------------------------------------------------------*/
4683typedef PACKED_PRE struct PACKED_POST
4684{
4685 /* success or failure */
4686 tANI_U32 status;
4687} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4688
4689typedef PACKED_PRE struct PACKED_POST
4690{
4691 tHalMsgHeader header;
4692 tHalKeepAliveRspParams keepAliveRspParams;
4693} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4694
4695/*---------------------------------------------------------------------------
4696 * WLAN_HAL_SET_RSSI_THRESH_RSP
4697 *--------------------------------------------------------------------------*/
4698typedef PACKED_PRE struct PACKED_POST
4699{
4700 /* success or failure */
4701 tANI_U32 status;
4702} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4703
4704typedef PACKED_PRE struct PACKED_POST
4705{
4706 tHalMsgHeader header;
4707 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4708} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4709
4710/*---------------------------------------------------------------------------
4711 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4712 *--------------------------------------------------------------------------*/
4713typedef PACKED_PRE struct PACKED_POST
4714{
4715 /* success or failure */
4716 tANI_U32 status;
4717} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4718
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 tHalMsgHeader header;
4722 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4723} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4724
4725/*---------------------------------------------------------------------------
4726 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4727 *--------------------------------------------------------------------------*/
4728typedef PACKED_PRE struct PACKED_POST
4729{
4730 /* success or failure */
4731 tANI_U32 status;
4732} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4733
4734typedef PACKED_PRE struct PACKED_POST
4735{
4736 tHalMsgHeader header;
4737 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4738} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4739
4740/*---------------------------------------------------------------------------
4741 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4742 *--------------------------------------------------------------------------*/
4743
4744typedef PACKED_PRE struct PACKED_POST
4745{
4746 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4747 //the request has power constraints, this should be applied only to that session
4748 tSirMacAddr selfStaMacAddr;
4749 //In request,
4750 //power == MaxTx power to be used.
4751 tPowerdBm power;
4752
4753}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4754
4755
4756typedef PACKED_PRE struct PACKED_POST
4757{
4758 tHalMsgHeader header;
4759 tSetMaxTxPwrParams setMaxTxPwrParams;
4760}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4761
4762/*---------------------------------------------------------------------------
4763*WLAN_HAL_SET_MAX_TX_POWER_RSP
4764*--------------------------------------------------------------------------*/
4765
4766typedef PACKED_PRE struct PACKED_POST
4767{
4768 //power == tx power used for management frames.
4769 tPowerdBm power;
4770
4771 /* success or failure */
4772 tANI_U32 status;
4773}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4774
4775typedef PACKED_PRE struct PACKED_POST
4776{
4777 tHalMsgHeader header;
4778 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4779}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4780
4781/*---------------------------------------------------------------------------
4782 *WLAN_HAL_SET_TX_POWER_REQ
4783 *--------------------------------------------------------------------------*/
4784
4785typedef PACKED_PRE struct PACKED_POST
4786{
4787 /* TX Power in milli watts */
4788 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004789 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004790}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4791
4792
4793typedef PACKED_PRE struct PACKED_POST
4794{
4795 tHalMsgHeader header;
4796 tSetTxPwrReqParams setTxPwrReqParams;
4797}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4798
4799/*---------------------------------------------------------------------------
4800*WLAN_HAL_SET_TX_POWER_RSP
4801*--------------------------------------------------------------------------*/
4802
4803typedef PACKED_PRE struct PACKED_POST
4804{
4805 /* success or failure */
4806 tANI_U32 status;
4807}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4808
4809typedef PACKED_PRE struct PACKED_POST
4810{
4811 tHalMsgHeader header;
4812 tSetTxPwrRspParams setTxPwrRspParams;
4813}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4814
4815/*---------------------------------------------------------------------------
4816 *WLAN_HAL_GET_TX_POWER_REQ
4817 *--------------------------------------------------------------------------*/
4818
4819typedef PACKED_PRE struct PACKED_POST
4820{
4821 tANI_U8 staId;
4822}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4823
4824typedef PACKED_PRE struct PACKED_POST
4825{
4826 tHalMsgHeader header;
4827 tGetTxPwrReqParams getTxPwrReqParams;
4828}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4829
4830/*---------------------------------------------------------------------------
4831*WLAN_HAL_GET_TX_POWER_RSP
4832*--------------------------------------------------------------------------*/
4833
4834typedef PACKED_PRE struct PACKED_POST
4835{
4836 /* success or failure */
4837 tANI_U32 status;
4838
4839 /* TX Power in milli watts */
4840 tANI_U32 txPower;
4841}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4842
4843typedef PACKED_PRE struct PACKED_POST
4844{
4845 tHalMsgHeader header;
4846 tGetTxPwrRspParams getTxPwrRspParams;
4847}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4848
4849#ifdef WLAN_FEATURE_P2P
4850/*---------------------------------------------------------------------------
4851 *WLAN_HAL_SET_P2P_GONOA_REQ
4852 *--------------------------------------------------------------------------*/
4853
4854typedef PACKED_PRE struct PACKED_POST
4855{
4856 tANI_U8 opp_ps;
4857 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004858 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004859 tANI_U32 duration;
4860 tANI_U32 interval;
4861 tANI_U32 single_noa_duration;
4862 tANI_U8 psSelection;
4863}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4864
4865
4866typedef PACKED_PRE struct PACKED_POST
4867{
4868 tHalMsgHeader header;
4869 tSetP2PGONOAParams setP2PGONOAParams;
4870}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4871
4872/*---------------------------------------------------------------------------
4873*WLAN_HAL_SET_P2P_GONOA_RSP
4874*--------------------------------------------------------------------------*/
4875
4876typedef PACKED_PRE struct PACKED_POST
4877{
4878 /* success or failure */
4879 tANI_U32 status;
4880}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4881
4882typedef PACKED_PRE struct PACKED_POST
4883{
4884 tHalMsgHeader header;
4885 tSetP2PGONOARspParams setP2PGONOARspParams;
4886}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4887#endif
4888
4889/*---------------------------------------------------------------------------
4890 *WLAN_HAL_ADD_SELF_STA_REQ
4891 *--------------------------------------------------------------------------*/
4892
4893typedef PACKED_PRE struct PACKED_POST
4894{
4895 tSirMacAddr selfMacAddr;
4896 tANI_U32 status;
4897}tAddStaSelfParams, *tpAddStaSelfParams;
4898
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004899typedef PACKED_PRE struct PACKED_POST
4900{
4901 tSirMacAddr selfMacAddr;
4902 tANI_U32 status;
4903 tHalIfacePersona iface_persona;
4904}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004905
4906typedef PACKED_PRE struct PACKED_POST
4907{
4908 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004909 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07004910 tAddStaSelfParams addStaSelfParams;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004911 tAddStaSelfParams_V1 addStaSelfParams_V1;
4912 }uAddStaSelfParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004913}tAddStaSelfReq, *tpAddStaSelfReq;
4914
4915/*---------------------------------------------------------------------------
4916*WLAN_HAL_ADD_SELF_STA_RSP
4917*--------------------------------------------------------------------------*/
4918
4919typedef PACKED_PRE struct PACKED_POST
4920{
4921 /* success or failure */
4922 tANI_U32 status;
4923
4924 /*Self STA Index */
4925 tANI_U8 selfStaIdx;
4926
4927 /* DPU Index (IGTK, PTK, GTK all same) */
4928 tANI_U8 dpuIdx;
4929
4930 /* DPU Signature */
4931 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004932
Jeff Johnson295189b2012-06-20 16:38:30 -07004933}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4934
4935typedef PACKED_PRE struct PACKED_POST
4936{
4937 tHalMsgHeader header;
4938 tAddStaSelfRspParams addStaSelfRspParams;
4939}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4940
4941
4942/*---------------------------------------------------------------------------
4943 WLAN_HAL_DEL_STA_SELF_REQ
4944---------------------------------------------------------------------------*/
4945
4946typedef PACKED_PRE struct PACKED_POST
4947{
4948 tSirMacAddr selfMacAddr;
4949
4950}tDelStaSelfParams, *tpDelStaSelfParams;
4951
4952typedef PACKED_PRE struct PACKED_POST
4953{
4954 tHalMsgHeader header;
4955 tDelStaSelfParams delStaSelfParams;
4956} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4957
4958
4959/*---------------------------------------------------------------------------
4960 WLAN_HAL_DEL_STA_SELF_RSP
4961---------------------------------------------------------------------------*/
4962
4963typedef PACKED_PRE struct PACKED_POST
4964{
4965 /*success or failure */
4966 tANI_U32 status;
4967
4968 tSirMacAddr selfMacAddr;
4969}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4970
4971typedef PACKED_PRE struct PACKED_POST
4972{
4973 tHalMsgHeader header;
4974 tDelStaSelfRspParams delStaSelfRspParams;
4975} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4976
4977
4978#ifdef WLAN_FEATURE_VOWIFI_11R
4979
4980/*---------------------------------------------------------------------------
4981 *WLAN_HAL_AGGR_ADD_TS_REQ
4982 *--------------------------------------------------------------------------*/
4983
4984typedef PACKED_PRE struct PACKED_POST
4985{
4986 /* Station Index */
4987 tANI_U16 staIdx;
4988
4989 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4990 /* This will carry the bitmap with the bit positions representing different AC.s*/
4991 tANI_U16 tspecIdx;
4992
4993 /* Tspec info per AC To program TPE with required parameters */
4994 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4995
4996 /* U-APSD Flags: 1b per AC. Encoded as follows:
4997 b7 b6 b5 b4 b3 b2 b1 b0 =
4998 X X X X BE BK VI VO */
4999 tANI_U8 uAPSD;
5000
5001 /* These parameters are for all the access categories */
5002 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5003 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5004 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5005
5006}tAggrAddTsParams, *tpAggrAddTsParams;
5007
5008
5009typedef PACKED_PRE struct PACKED_POST
5010{
5011 tHalMsgHeader header;
5012 tAggrAddTsParams aggrAddTsParam;
5013}tAggrAddTsReq, *tpAggrAddTsReq;
5014
5015/*---------------------------------------------------------------------------
5016*WLAN_HAL_AGGR_ADD_TS_RSP
5017*--------------------------------------------------------------------------*/
5018
5019typedef PACKED_PRE struct PACKED_POST
5020{
5021 /* success or failure */
5022 tANI_U32 status0;
5023 /* FIXME PRIMA for future use for 11R */
5024 tANI_U32 status1;
5025}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5026
5027typedef PACKED_PRE struct PACKED_POST
5028{
5029 tHalMsgHeader header;
5030 tAggrAddTsRspParams aggrAddTsRspParam;
5031}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5032
5033#endif
5034
5035/*---------------------------------------------------------------------------
5036 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5037 *--------------------------------------------------------------------------*/
5038typedef PACKED_PRE struct PACKED_POST
5039{
5040 tANI_U8 isAppsCpuAwake;
5041} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5042
5043typedef PACKED_PRE struct PACKED_POST
5044{
5045 tHalMsgHeader header;
5046 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5047} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5048
5049/*---------------------------------------------------------------------------
5050 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5051 *--------------------------------------------------------------------------*/
5052typedef PACKED_PRE struct PACKED_POST
5053{
5054 /* success or failure */
5055 tANI_U32 status;
5056} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5057
5058typedef PACKED_PRE struct PACKED_POST
5059{
5060 tHalMsgHeader header;
5061 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5062} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5063/*---------------------------------------------------------------------------
5064 * WLAN_HAL_DUMP_COMMAND_REQ
5065 *--------------------------------------------------------------------------*/
5066
5067typedef PACKED_PRE struct PACKED_POST
5068{
5069 tANI_U32 argument1;
5070 tANI_U32 argument2;
5071 tANI_U32 argument3;
5072 tANI_U32 argument4;
5073 tANI_U32 argument5;
5074
5075}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5076
5077typedef PACKED_PRE struct PACKED_POST
5078{
5079 tHalMsgHeader header;
5080 tHalDumpCmdReqParams dumpCmdReqParams;
5081} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5082
5083/*---------------------------------------------------------------------------
5084 * WLAN_HAL_DUMP_COMMAND_RSP
5085 *--------------------------------------------------------------------------*/
5086
5087typedef PACKED_PRE struct PACKED_POST
5088{
5089 /* success or failure */
5090 tANI_U32 status;
5091 /*Length of the responce message*/
5092 tANI_U32 rspLength;
5093 /*FiXME: Currently considering the the responce will be less than 100bytes */
5094 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07005095
Jeff Johnson295189b2012-06-20 16:38:30 -07005096} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5097
5098typedef PACKED_PRE struct PACKED_POST
5099{
5100 tHalMsgHeader header;
5101 tHalDumpCmdRspParams dumpCmdRspParams;
5102} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5103
5104/*---------------------------------------------------------------------------
5105 *WLAN_HAL_COEX_IND
5106 *-------------------------------------------------------------------------*/
5107#define WLAN_COEX_IND_DATA_SIZE (4)
5108#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5109#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005110#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5111#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005112#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5113#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07005114
5115typedef PACKED_PRE struct PACKED_POST
5116{
5117 /*Coex Indication Type*/
5118 tANI_U32 coexIndType;
5119
5120 /*Coex Indication Data*/
5121 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5122}tCoexIndParams,*tpCoexIndParams;
5123
5124typedef PACKED_PRE struct PACKED_POST
5125{
5126 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005127 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005128}tCoexIndMsg, *tpCoexIndMsg;
5129
5130/*---------------------------------------------------------------------------
5131 *WLAN_HAL_OTA_TX_COMPL_IND
5132 *-------------------------------------------------------------------------*/
5133
5134typedef PACKED_PRE struct PACKED_POST
5135{
5136 /*Tx Complete Indication Success or Failure*/
5137 tANI_U32 status;
5138}tTxComplParams,*tpTxComplParams;
5139
5140typedef PACKED_PRE struct PACKED_POST
5141{
5142 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005143 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005144}tTxComplIndMsg, *tpTxComplIndMsg;
5145
5146/*---------------------------------------------------------------------------
5147 * WLAN_HAL_HOST_SUSPEND_IND
5148 *-------------------------------------------------------------------------*/
5149
5150typedef PACKED_PRE struct PACKED_POST
5151{
5152 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005153 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005154}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5155
5156typedef PACKED_PRE struct PACKED_POST
5157{
5158 tHalMsgHeader header;
5159 tHalWlanHostSuspendIndParam suspendIndParams;
5160}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5161
5162/*---------------------------------------------------------------------------
5163 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5164 *-------------------------------------------------------------------------*/
5165
5166typedef PACKED_PRE struct PACKED_POST
5167{
5168 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005169 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005170}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5171
5172typedef PACKED_PRE struct PACKED_POST
5173{
5174 tHalMsgHeader header;
5175 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5176}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5177
5178#ifdef WLAN_FEATURE_P2P
5179/*---------------------------------------------------------------------------
5180 *WLAN_HAL_NOA_ATTR_IND
5181 *-------------------------------------------------------------------------*/
5182
5183typedef PACKED_PRE struct PACKED_POST
5184{
5185 tANI_U8 index ;
5186 tANI_U8 oppPsFlag ;
5187 tANI_U16 ctWin ;
5188
5189 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005190 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005191 tANI_U32 uNoa1Duration;
5192 tANI_U32 uNoa1Interval;
5193 tANI_U32 uNoa1StartTime;
5194
5195 tANI_U16 uNoa2IntervalCnt;
5196 tANI_U16 rsvd2;
5197 tANI_U32 uNoa2Duration;
5198 tANI_U32 uNoa2Interval;
5199 tANI_U32 uNoa2StartTime;
5200
5201 tANI_U32 status;
5202}tNoaAttrIndParams, *tpNoaAttrIndParams;
5203
5204typedef PACKED_PRE struct PACKED_POST
5205{
5206 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005207 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005208}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005209
5210/*---------------------------------------------------------------------------
5211 *WLAN_HAL_NOA_START_IND
5212 *-------------------------------------------------------------------------*/
5213
5214typedef PACKED_PRE struct PACKED_POST
5215{
5216 tANI_U32 status;
5217 tANI_U32 bssIdx;
5218}tNoaStartIndParams, *tpNoaStartIndParams;
5219
5220typedef PACKED_PRE struct PACKED_POST
5221{
5222 tHalMsgHeader header;
5223 tNoaStartIndParams noaStartIndParams;
5224}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005225#endif
5226
5227/*---------------------------------------------------------------------------
5228 * WLAN_HAL_HOST_RESUME_REQ
5229 *-------------------------------------------------------------------------*/
5230
5231typedef PACKED_PRE struct PACKED_POST
5232{
5233 tANI_U8 configuredMcstBcstFilterSetting;
5234}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5235
5236typedef PACKED_PRE struct PACKED_POST
5237{
5238 tHalMsgHeader header;
5239 tHalWlanHostResumeReqParam resumeReqParams;
5240}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5241
5242/*---------------------------------------------------------------------------
5243 * WLAN_HAL_HOST_RESUME_RSP
5244 *--------------------------------------------------------------------------*/
5245typedef PACKED_PRE struct PACKED_POST
5246{
5247 /* success or failure */
5248 tANI_U32 status;
5249} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5250
5251typedef PACKED_PRE struct PACKED_POST
5252{
5253 tHalMsgHeader header;
5254 tHalHostResumeRspParams hostResumeRspParams;
5255} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5256
Anand Kumar012623a2013-01-11 17:00:00 -08005257typedef PACKED_PRE struct PACKED_POST
5258{
5259 tANI_U16 staIdx;
5260 // Peer MAC Address, whose BA session has timed out
5261 tSirMacAddr peerMacAddr;
5262 // TID for which a BA session timeout is being triggered
5263 tANI_U8 baTID;
5264 // DELBA direction
5265 // 1 - Originator
5266 // 0 - Recipient
5267 tANI_U8 baDirection;
5268 tANI_U32 reasonCode;
5269 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5270} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5271
5272typedef PACKED_PRE struct PACKED_POST
5273{
5274 tHalMsgHeader header;
5275 tHalWlanDelBaIndMsg hostdelBaParam;
5276} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5277
Jeff Johnson295189b2012-06-20 16:38:30 -07005278/*---------------------------------------------------------------------------
5279 *PNO Messages
5280 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005281/* Max number of channels that a network can be found on*/
5282/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5283 * be changed at same time
5284 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005285#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005286
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305287/*Max number of channels that a network can be found on*/
5288#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5289
Jeff Johnson295189b2012-06-20 16:38:30 -07005290/*Maximum numbers of networks supported by PNO*/
5291#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5292
5293/*The number of scan time intervals that can be programmed into PNO*/
5294#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5295
5296/*Maximum size of the probe template*/
5297#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5298
Jeff Johnson32d95a32012-09-10 13:15:23 -07005299/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005300 Immediate - scanning will start immediately and PNO procedure will
5301 be repeated based on timer
5302 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005303 Resume - scanning will start on system resume
5304 Delay - start the scan timer to trigger PNO scan
5305 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005306typedef enum
5307{
5308 ePNO_MODE_IMMEDIATE,
5309 ePNO_MODE_ON_SUSPEND,
5310 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305311 ePNO_MODE_DELAY,
5312 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005313 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5314} ePNOMode;
5315
5316/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005317typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005318{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005319 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005320 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005321
Jeff Johnson295189b2012-06-20 16:38:30 -07005322 // Upper layer authentication types
5323 eAUTH_TYPE_WPA = 2,
5324 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005325
Jeff Johnson295189b2012-06-20 16:38:30 -07005326 eAUTH_TYPE_RSN = 4,
5327 eAUTH_TYPE_RSN_PSK = 5,
5328 eAUTH_TYPE_FT_RSN = 6,
5329 eAUTH_TYPE_FT_RSN_PSK = 7,
5330 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5331 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005332 eAUTH_TYPE_CCKM_WPA = 10,
5333 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005334
Jeff Johnson295189b2012-06-20 16:38:30 -07005335 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5336
5337}tAuthType;
5338
5339/* Encryption type */
5340typedef enum eEdType
5341{
5342 eED_ANY = 0,
5343 eED_NONE = 1,
5344 eED_WEP = 2,
5345 eED_TKIP = 3,
5346 eED_CCMP = 4,
5347 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005348
Jeff Johnson295189b2012-06-20 16:38:30 -07005349 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5350} tEdType;
5351
5352/* SSID broadcast type */
5353typedef enum eSSIDBcastType
5354{
5355 eBCAST_UNKNOWN = 0,
5356 eBCAST_NORMAL = 1,
5357 eBCAST_HIDDEN = 2,
5358
5359 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5360} tSSIDBcastType;
5361
Jeff Johnson32d95a32012-09-10 13:15:23 -07005362/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005363 The network description for which PNO will have to look for
5364*/
5365typedef PACKED_PRE struct PACKED_POST
5366{
5367 /*SSID of the BSS*/
5368 tSirMacSSid ssId;
5369
5370 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005371 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005372
5373 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005374 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005375
Jeff Johnson32d95a32012-09-10 13:15:23 -07005376 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005377 0 - if all channels */
5378 tANI_U8 ucChannelCount;
5379 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5380
5381 /*Indicates the RSSI threshold for the network to be considered*/
5382 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005383}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005384
5385typedef PACKED_PRE struct PACKED_POST
5386{
5387 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005388 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005389
Jeff Johnson32d95a32012-09-10 13:15:23 -07005390 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005391 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005392 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005393
Jeff Johnson32d95a32012-09-10 13:15:23 -07005394 /*e.g: 2 3
5395 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005396 - it will wait 2s between consecutive scans for 3 times
5397 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005398}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005399
Jeff Johnson32d95a32012-09-10 13:15:23 -07005400/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005401 The network parameters to be sent to the PNO algorithm
5402*/
5403typedef PACKED_PRE struct PACKED_POST
5404{
5405 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005406 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005407
Jeff Johnson32d95a32012-09-10 13:15:23 -07005408 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005409 two consecutive scan procedures
5410 If the desired is for a uniform timer that fires always at the exact same
5411 interval - one single value is to be set
5412 If there is a desire for a more complex - telescopic like timer multiple
5413 values can be set - once PNO reaches the end of the array it will
5414 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005415 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005416
5417}tScanTimersType;
5418
5419typedef PACKED_PRE struct PACKED_POST {
5420
5421 /*Enable PNO*/
5422 tANI_U32 enable;
5423
5424 /*Immediate, On Suspend, On Resume*/
5425 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005426
Jeff Johnson295189b2012-06-20 16:38:30 -07005427 /*Number of networks sent for PNO*/
5428 tANI_U32 ucNetworksCount;
5429
5430 /*The networks that PNO needs to look for*/
5431 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5432
5433 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005434 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005435
5436 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005437 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005438 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5439
5440 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005441 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005442 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5443
5444} tPrefNetwListParams, * tpPrefNetwListParams;
5445
5446/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005447 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005448*/
5449typedef PACKED_PRE struct PACKED_POST
5450{
5451 tHalMsgHeader header;
5452 tPrefNetwListParams prefNetwListParams;
5453} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5454
5455
Jeff Johnson32d95a32012-09-10 13:15:23 -07005456/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005457 The network description for which PNO will have to look for
5458*/
5459typedef PACKED_PRE struct PACKED_POST
5460{
5461 /*SSID of the BSS*/
5462 tSirMacSSid ssId;
5463
5464 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005465 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005466
5467 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005468 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005469
5470 /*SSID broadcast type, normal, hidden or unknown*/
5471 tSSIDBcastType bcastNetworkType;
5472
Jeff Johnson32d95a32012-09-10 13:15:23 -07005473 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005474 0 - if all channels */
5475 tANI_U8 ucChannelCount;
5476 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5477
5478 /*Indicates the RSSI threshold for the network to be considered*/
5479 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005480}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005481
5482typedef PACKED_PRE struct PACKED_POST {
5483
5484 /*Enable PNO*/
5485 tANI_U32 enable;
5486
5487 /*Immediate, On Suspend, On Resume*/
5488 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005489
Jeff Johnson295189b2012-06-20 16:38:30 -07005490 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005491 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005492
5493 /*The networks that PNO needs to look for*/
5494 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5495
5496 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005497 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005498
5499 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005500 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005501 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5502
5503 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005504 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005505 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5506
5507} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5508
5509/*
5510 Preferred network list request new
5511*/
5512typedef PACKED_PRE struct PACKED_POST
5513{
5514 tHalMsgHeader header;
5515 tPrefNetwListParamsNew prefNetwListParams;
5516} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5517
5518/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005519 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005520*/
5521typedef PACKED_PRE struct PACKED_POST
5522{
5523 tHalMsgHeader header;
5524
Jeff Johnson32d95a32012-09-10 13:15:23 -07005525 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005526 the request and will start scanning*/
5527 tANI_U32 status;
5528} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5529
5530/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005531 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005532*/
5533typedef PACKED_PRE struct PACKED_POST {
5534
5535 /*Network that was found with the highest RSSI*/
5536 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005537
Jeff Johnson295189b2012-06-20 16:38:30 -07005538 /*Indicates the RSSI */
5539 tANI_U8 rssi;
5540
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005541 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
Gopichand Nakkalaa14f43b2013-05-14 00:08:53 +05305542 tANI_U16 frameLength;
5543
Jeff Johnson295189b2012-06-20 16:38:30 -07005544} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5545
5546/*
5547 Preferred network found indication
5548*/
5549typedef PACKED_PRE struct PACKED_POST {
5550
5551 tHalMsgHeader header;
5552 tPrefNetwFoundParams prefNetwFoundParams;
5553} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5554
5555
5556typedef PACKED_PRE struct PACKED_POST {
5557
5558 /*RSSI Threshold*/
5559 tANI_U8 ucRssiThreshold;
5560
5561} tRssiFilterParams, * tpRssiFilterParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005562#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5563typedef PACKED_PRE struct PACKED_POST
5564{
5565 tSirMacSSid ssId;
5566 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5567 tANI_U32 authentication;
5568 tEdType encryption;
5569 tEdType mcencryption;
5570 tANI_U8 ChannelCount;
5571 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5572}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005573
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005574typedef PACKED_PRE struct PACKED_POST
5575{
5576 tANI_U8 mdiePresent;
5577 tANI_U16 mobilityDomain;
5578}tMobilityDomainInfo;
5579
5580typedef PACKED_PRE struct PACKED_POST {
5581 eAniBoolean RoamScanOffloadEnabled;
5582 tANI_S8 LookupThreshold;
5583 tANI_U8 RoamRssiDiff;
5584 tANI_U8 ChannelCacheType;
5585 tANI_U8 Command;
5586 tANI_U8 StartScanReason;
5587 tANI_U16 NeighborScanTimerPeriod;
5588 tANI_U16 NeighborRoamScanRefreshPeriod;
5589 tANI_U16 NeighborScanChannelMinTime;
5590 tANI_U16 NeighborScanChannelMaxTime;
5591 tANI_U16 EmptyRefreshScanPeriod;
5592 tANI_U8 ValidChannelCount;
5593 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5594 eAniBoolean IsCCXEnabled;
5595
5596 tANI_U16 us24GProbeSize;
5597 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5598 tANI_U16 us5GProbeSize;
5599 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5600 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005601 tANI_U8 nProbes;
5602 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005603 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5604 tRoamNetworkType ConnectedNetwork;
5605 tMobilityDomainInfo MDID;
5606} tRoamCandidateListParams, * tpRoamCandidateListParams;
5607
5608typedef PACKED_PRE struct PACKED_POST
5609{
5610 tHalMsgHeader header;
5611 tRoamCandidateListParams RoamScanOffloadNetwListParams;
5612} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5613
5614typedef PACKED_PRE struct PACKED_POST
5615{
5616 tHalMsgHeader header;
5617
5618 /*status of the request - just to indicate that PNO has acknowledged
5619 * the request and will start scanning*/
5620 tANI_U32 status;
5621} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5622#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005623/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005624 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005625*/
5626typedef PACKED_PRE struct PACKED_POST
5627{
5628 tHalMsgHeader header;
5629 tRssiFilterParams prefRSSIFilterParams;
5630} tSetRssiFilterReq, *tpSetRssiFilterReq;
5631
5632/*
5633 Set RSSI filter resp
5634*/
5635typedef PACKED_PRE struct PACKED_POST{
5636 tHalMsgHeader header;
5637 /*status of the request */
5638 tANI_U32 status;
5639} tSetRssiFilterResp, *tpSetRssiFilterResp;
5640/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005641 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005642*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005643typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005644{
5645
5646 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005647 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005648
5649 /*Lets PNO know that host has determined the regulatory domain*/
5650 tANI_U8 b11dResolved;
5651
5652 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005653 tANI_U8 ucChannelCount;
5654 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005655
5656 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005657 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005658
5659 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005660 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005661
5662 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005663 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005664
5665 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005666 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005667
5668 /*Cb State*/
5669 ePhyChanBondState cbState;
5670
5671} tUpdateScanParams, * tpUpdateScanParams;
5672
5673/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305674 Update scan params
5675*/
5676typedef PACKED_PRE struct PACKED_POST
5677{
5678
5679 /*Host setting for 11d*/
5680 tANI_U8 b11dEnabled;
5681
5682 /*Lets PNO know that host has determined the regulatory domain*/
5683 tANI_U8 b11dResolved;
5684
5685 /*Channels on which PNO is allowed to scan*/
5686 tANI_U8 ucChannelCount;
5687 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5688
5689 /*Minimum channel time*/
5690 tANI_U16 usActiveMinChTime;
5691
5692 /*Maximum channel time*/
5693 tANI_U16 usActiveMaxChTime;
5694
5695 /*Minimum channel time*/
5696 tANI_U16 usPassiveMinChTime;
5697
5698 /*Maximum channel time*/
5699 tANI_U16 usPassiveMaxChTime;
5700
5701 /*Cb State*/
5702 ePhyChanBondState cbState;
5703
5704} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5705
5706/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005707 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005708 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005709*/
5710typedef PACKED_PRE struct PACKED_POST{
5711
5712 tHalMsgHeader header;
5713 tUpdateScanParams scanParams;
5714} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5715
5716/*
5717 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005718 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005719*/
5720typedef PACKED_PRE struct PACKED_POST{
5721
5722 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305723 tUpdateScanParamsEx scanParams;
5724} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5725
5726/*
5727 Update scan params - sent from host to PNO
5728 to be used during PNO scanning
5729*/
5730typedef PACKED_PRE struct PACKED_POST{
5731
5732 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005733
5734 /*status of the request */
5735 tANI_U32 status;
5736
5737} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5738
5739/*---------------------------------------------------------------------------
5740 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5741 *--------------------------------------------------------------------------*/
5742typedef PACKED_PRE struct PACKED_POST
5743{
5744 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5745 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5746 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5747 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5748} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5749
5750typedef PACKED_PRE struct PACKED_POST
5751{
5752 tHalMsgHeader header;
5753 tHalTxPerTrackingReqParam txPerTrackingParams;
5754} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5755
5756/*---------------------------------------------------------------------------
5757 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5758 *--------------------------------------------------------------------------*/
5759typedef PACKED_PRE struct PACKED_POST
5760{
5761 /* success or failure */
5762 tANI_U32 status;
5763} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5764
5765typedef PACKED_PRE struct PACKED_POST
5766{
5767 tHalMsgHeader header;
5768 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5769} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5770
5771/*---------------------------------------------------------------------------
5772 * WLAN_HAL_TX_PER_HIT_IND
5773 *--------------------------------------------------------------------------*/
5774typedef PACKED_PRE struct PACKED_POST
5775{
5776 tHalMsgHeader header;
5777}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5778
5779/*---------------------------------------------------------------------------
5780 *******************Packet Filtering Definitions Begin*******************
5781 *--------------------------------------------------------------------------*/
5782#define HAL_PROTOCOL_DATA_LEN 8
5783#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5784#define HAL_MAX_NUM_FILTERS 20
5785#define HAL_MAX_CMP_PER_FILTER 10
5786
5787typedef enum
5788{
5789 HAL_RCV_FILTER_TYPE_INVALID,
5790 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5791 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5792 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5793}tHalReceivePacketFilterType;
5794
Jeff Johnson32d95a32012-09-10 13:15:23 -07005795typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005796{
5797 HAL_FILTER_PROTO_TYPE_INVALID,
5798 HAL_FILTER_PROTO_TYPE_MAC,
5799 HAL_FILTER_PROTO_TYPE_ARP,
5800 HAL_FILTER_PROTO_TYPE_IPV4,
5801 HAL_FILTER_PROTO_TYPE_IPV6,
5802 HAL_FILTER_PROTO_TYPE_UDP,
5803 HAL_FILTER_PROTO_TYPE_MAX
5804}tHalRcvPktFltProtocolType;
5805
Jeff Johnson32d95a32012-09-10 13:15:23 -07005806typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005807{
5808 HAL_FILTER_CMP_TYPE_INVALID,
5809 HAL_FILTER_CMP_TYPE_EQUAL,
5810 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5811 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5812 HAL_FILTER_CMP_TYPE_MAX
5813}tHalRcvPktFltCmpFlagType;
5814
Jeff Johnson32d95a32012-09-10 13:15:23 -07005815typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005816{
5817 tANI_U8 protocolLayer;
5818 tANI_U8 cmpFlag;
5819 tANI_U16 dataLength; /* Length of the data to compare */
5820 tANI_U8 dataOffset; /* from start of the respective frame header */
5821 tANI_U8 reserved; /* Reserved field */
5822 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5823 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5824}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5825
5826typedef PACKED_PRE struct PACKED_POST
5827{
5828 tANI_U8 filterId;
5829 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005830 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005831 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005832 tHalRcvPktFilterParams paramsData[1];
5833}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5834
5835typedef PACKED_PRE struct PACKED_POST
5836{
Jeff Johnsone7245742012-09-05 17:12:55 -07005837 tANI_U8 filterId;
5838 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005839 tANI_U8 numParams;
5840 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005841 tANI_U8 bssIdx;
5842 tHalRcvPktFilterParams paramsData[1];
5843}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5844
5845typedef PACKED_PRE struct PACKED_POST
5846{
Jeff Johnson295189b2012-06-20 16:38:30 -07005847 tHalMsgHeader header;
5848 tHalRcvPktFilterCfgType pktFilterCfg;
5849} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5850
Jeff Johnsone7245742012-09-05 17:12:55 -07005851typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005852{
5853 tANI_U8 dataOffset; /* from start of the respective frame header */
5854 tANI_U32 cMulticastAddr;
5855 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005856 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005857} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5858
5859typedef PACKED_PRE struct PACKED_POST
5860{
5861 /* success or failure */
5862 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005863 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005864} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5865
5866typedef PACKED_PRE struct PACKED_POST
5867{
5868 tHalMsgHeader header;
5869 tHalSetPktFilterRspParams pktFilterRspParams;
5870} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5871
Jeff Johnsone7245742012-09-05 17:12:55 -07005872typedef PACKED_PRE struct PACKED_POST
5873{
5874 tANI_U8 bssIdx;
5875} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005876
5877typedef PACKED_PRE struct PACKED_POST
5878{
5879 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005880 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005881} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5882
Jeff Johnsone7245742012-09-05 17:12:55 -07005883
Jeff Johnson295189b2012-06-20 16:38:30 -07005884typedef PACKED_PRE struct PACKED_POST
5885{
5886 tANI_U8 filterId;
5887 tANI_U32 matchCnt;
5888} tHalRcvFltPktMatchCnt;
5889typedef PACKED_PRE struct PACKED_POST
5890{
5891 /* Success or Failure */
5892 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005893 tANI_U32 matchCnt;
5894 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005895 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005896} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5897
5898typedef PACKED_PRE struct PACKED_POST
5899{
5900 tHalMsgHeader header;
5901 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5902} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5903
5904typedef PACKED_PRE struct PACKED_POST
5905{
5906 tANI_U32 status; /* only valid for response message */
5907 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005908 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005909}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5910
5911typedef PACKED_PRE struct PACKED_POST
5912{
5913 tHalMsgHeader header;
5914 tHalRcvFltPktClearParam filterClearParam;
5915} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5916
5917typedef PACKED_PRE struct PACKED_POST
5918{
5919 tHalMsgHeader header;
5920 tHalRcvFltPktClearParam filterClearParam;
5921} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5922
5923typedef PACKED_PRE struct PACKED_POST
5924{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005925 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005926 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005927}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5928
5929typedef PACKED_PRE struct PACKED_POST
5930{
5931 tHalMsgHeader header;
5932 tHalRcvFltMcAddrListType mcAddrList;
5933} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5934
5935typedef PACKED_PRE struct PACKED_POST
5936{
5937 tHalMsgHeader header;
5938 tHalRcvFltPktSetMcListRspType rspParam;
5939} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5940
5941
5942/*---------------------------------------------------------------------------
5943 *******************Packet Filtering Definitions End*******************
5944 *--------------------------------------------------------------------------*/
5945
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005946/*
5947 * There are two versions of this message
5948 * Version 1 : Base version
5949 * Current version : Base version + Max LI modulated DTIM
5950 */
5951typedef PACKED_PRE struct PACKED_POST
5952{
5953 /* Ignore DTIM */
5954 tANI_U32 uIgnoreDTIM;
5955
5956 /*DTIM Period*/
5957 tANI_U32 uDTIMPeriod;
5958
5959 /* Listen Interval */
5960 tANI_U32 uListenInterval;
5961
5962 /* Broadcast Multicast Filter */
5963 tANI_U32 uBcastMcastFilter;
5964
5965 /* Beacon Early Termination */
5966 tANI_U32 uEnableBET;
5967
5968 /* Beacon Early Termination Interval */
5969 tANI_U32 uBETInterval;
5970}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
5971
5972typedef PACKED_PRE struct PACKED_POST
5973{
5974 tHalMsgHeader header;
5975 tSetPowerParamsVer1Type powerParams;
5976} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
5977
Jeff Johnson295189b2012-06-20 16:38:30 -07005978typedef PACKED_PRE struct PACKED_POST
5979{
5980 /* Ignore DTIM */
5981 tANI_U32 uIgnoreDTIM;
5982
5983 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005984 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005985
5986 /* Listen Interval */
5987 tANI_U32 uListenInterval;
5988
5989 /* Broadcast Multicast Filter */
5990 tANI_U32 uBcastMcastFilter;
5991
5992 /* Beacon Early Termination */
5993 tANI_U32 uEnableBET;
5994
5995 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005996 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07005997
5998 /* MAX LI for modulated DTIM */
5999 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006000}tSetPowerParamsType, *tpSetPowerParamsType;
6001
6002typedef PACKED_PRE struct PACKED_POST
6003{
6004 tHalMsgHeader header;
6005 tSetPowerParamsType powerParams;
6006} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6007
6008typedef PACKED_PRE struct PACKED_POST{
6009
6010 tHalMsgHeader header;
6011
6012 /*status of the request */
6013 tANI_U32 status;
6014
6015} tSetPowerParamsResp, *tpSetPowerParamsResp;
6016
6017/*---------------------------------------------------------------------------
6018 ****************Capability bitmap exchange definitions and macros starts*************
6019 *--------------------------------------------------------------------------*/
6020
Anand Kumar012623a2013-01-11 17:00:00 -08006021typedef enum {
6022 MCC = 0,
6023 P2P = 1,
6024 DOT11AC = 2,
6025 SLM_SESSIONIZATION = 3,
6026 DOT11AC_OPMODE = 4,
6027 SAP32STA = 5,
6028 TDLS = 6,
6029 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
6030 WLANACTIVE_OFFLOAD = 8,
6031 BEACON_OFFLOAD = 9,
6032 SCAN_OFFLOAD = 10,
6033 ROAM_OFFLOAD = 11,
6034 BCN_MISS_OFFLOAD = 12,
6035 STA_POWERSAVE = 13,
6036 STA_ADVANCED_PWRSAVE = 14,
6037 AP_UAPSD = 15,
6038 AP_DFS = 16,
6039 BLOCKACK = 17,
6040 PHY_ERR = 18,
6041 BCN_FILTER = 19,
6042 RTT = 20,
6043 RATECTRL = 21,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006044 WOW = 22,
6045 WLAN_ROAM_SCAN_OFFLOAD = 23,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006046 SPECULATIVE_PS_POLL = 24,
6047 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006048 IBSS_HEARTBEAT_OFFLOAD = 26,
Yue Maab3ccfc2013-08-14 17:19:08 -07006049 WLAN_PERIODIC_TX_PTRN = 28,
Madan Mohan Koyyalamudi6f62e122013-09-13 19:01:02 +05306050 ADVANCE_TDLS = 29,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006051 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006052} placeHolderInCapBitmap;
6053
Jeff Johnson295189b2012-06-20 16:38:30 -07006054typedef PACKED_PRE struct PACKED_POST{
6055
6056 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006057} tWlanFeatCaps, *tpWlanFeatCaps;
6058
6059typedef PACKED_PRE struct PACKED_POST{
6060
Jeff Johnson32d95a32012-09-10 13:15:23 -07006061 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006062 tWlanFeatCaps wlanFeatCaps;
6063
6064} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6065
Jeff Johnsone7245742012-09-05 17:12:55 -07006066#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6067#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006068#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006069#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006070#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6071#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
6072#endif
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006073#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006074
Jeff Johnsone7245742012-09-05 17:12:55 -07006075tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6076
Jeff Johnson295189b2012-06-20 16:38:30 -07006077#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006078 if ((b)<=127) { \
6079 arr_index = (b)/32; \
6080 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006081 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006082 (a)->featCaps[arr_index] |= (1<<bit_index); \
6083 } \
6084 }
6085#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006086 if ((b)<=127) { \
6087 arr_index = (b)/32; \
6088 bit_index = (b)%32; \
6089 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006090 } \
6091 }
6092#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006093 if ((b)<=127) { \
6094 arr_index = (b)/32; \
6095 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006096 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006097 } \
6098 }
6099
6100/*---------------------------------------------------------------------------
6101 * WLAN_HAL_WAKE_REASON_IND
6102 *--------------------------------------------------------------------------*/
6103
6104/* status codes to help debug rekey failures */
6105typedef enum
6106{
6107 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6108 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6109 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6110 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6111 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6112 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6113 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6114 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6115 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6116 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6117
6118 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6119} tGTKRekeyStatus;
6120
6121/* wake reason types */
6122typedef enum
6123{
6124 WLAN_HAL_WAKE_REASON_NONE = 0,
6125 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6126 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6127 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6128 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6129 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6130 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6131 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6132} tWakeReasonType;
6133
6134/*
6135 Wake Packet which is saved at tWakeReasonParams.DataStart
6136 This data is sent for any wake reasons that involve a packet-based wakeup :
6137
6138 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6139 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6140 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6141 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6142 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6143
6144 The information is provided to the host for auditing and debug purposes
6145
6146*/
6147
6148/*
6149 Wake reason indication parameters
6150*/
6151typedef PACKED_PRE struct PACKED_POST
6152{
6153 uint32 ulReason; /* see tWakeReasonType */
6154 uint32 ulReasonArg; /* argument specific to the reason type */
6155 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6156 HAL truncates the data (i.e. data packets) this length
6157 will be less than the actual length */
6158 uint32 ulActualDataLen; /* actual length of data */
6159 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6160 see specific wake type */
6161} tWakeReasonParams, *tpWakeReasonParams;
6162
6163/*
6164 Wake reason indication
6165*/
6166typedef PACKED_PRE struct PACKED_POST
6167{
6168 tHalMsgHeader header;
6169 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006170 tANI_U32 uBssIdx : 8;
6171 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006172} tHalWakeReasonInd, *tpHalWakeReasonInd;
6173
6174/*---------------------------------------------------------------------------
6175* WLAN_HAL_GTK_OFFLOAD_REQ
6176*--------------------------------------------------------------------------*/
6177
6178#define HAL_GTK_KEK_BYTES 16
6179#define HAL_GTK_KCK_BYTES 16
6180
6181#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6182
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006183#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6184
Jeff Johnson295189b2012-06-20 16:38:30 -07006185typedef PACKED_PRE struct PACKED_POST
6186{
6187 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006188 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006189 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6190 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006191 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006192} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6193
6194typedef PACKED_PRE struct PACKED_POST
6195{
6196 tHalMsgHeader header;
6197 tHalGtkOffloadReqParams gtkOffloadReqParams;
6198} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6199
6200/*---------------------------------------------------------------------------
6201* WLAN_HAL_GTK_OFFLOAD_RSP
6202*--------------------------------------------------------------------------*/
6203typedef PACKED_PRE struct PACKED_POST
6204{
6205 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006206 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006207} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6208
6209typedef PACKED_PRE struct PACKED_POST
6210{
6211 tHalMsgHeader header;
6212 tHalGtkOffloadRspParams gtkOffloadRspParams;
6213} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6214
6215
6216/*---------------------------------------------------------------------------
6217* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6218*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006219typedef PACKED_PRE struct PACKED_POST
6220{
6221 tANI_U8 bssIdx;
6222
6223} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006224
6225typedef PACKED_PRE struct PACKED_POST
6226{
6227 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006228 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006229} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6230
6231/*---------------------------------------------------------------------------
6232* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6233*--------------------------------------------------------------------------*/
6234typedef PACKED_PRE struct PACKED_POST
6235{
6236 tANI_U32 ulStatus; /* success or failure */
6237 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6238 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6239 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6240 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6241 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006242 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006243} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6244
6245typedef PACKED_PRE struct PACKED_POST
6246{
6247 tHalMsgHeader header;
6248 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6249} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6250
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006251/*---------------------------------------------------------------------------
6252* WLAN_HAL_DHCP_IND
6253*--------------------------------------------------------------------------*/
6254typedef PACKED_PRE struct PACKED_POST
6255{
6256 /*Indicates the device mode which indicates about the DHCP activity */
6257 tANI_U8 device_mode;
6258 tSirMacAddr macAddr;
6259} tDHCPInfo, *tpDHCPInfo;
6260
6261typedef PACKED_PRE struct PACKED_POST
6262{
6263 tHalMsgHeader header;
6264 tANI_U32 status; /* success or failure */
6265} tDHCPIndStatus, *tpDHCPIndstatus;
6266
Jeff Johnson295189b2012-06-20 16:38:30 -07006267/*
6268 Thermal Mitigation mode of operation.
6269 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6270 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6271 reducing transmit power
6272 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6273*/
6274typedef enum
6275{
6276 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6277 HAL_THERMAL_MITIGATION_MODE_0,
6278 HAL_THERMAL_MITIGATION_MODE_1,
6279 HAL_THERMAL_MITIGATION_MODE_2,
6280 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6281}tHalThermalMitigationModeType;
6282//typedef tANI_S16 tHalThermalMitigationModeType;
6283
6284/*
6285 Thermal Mitigation level.
6286 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6287 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6288
6289 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6290 level indicates normal mode of operation
6291 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6292 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6293 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6294 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6295*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006296typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006297{
6298 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6299 HAL_THERMAL_MITIGATION_LEVEL_0,
6300 HAL_THERMAL_MITIGATION_LEVEL_1,
6301 HAL_THERMAL_MITIGATION_LEVEL_2,
6302 HAL_THERMAL_MITIGATION_LEVEL_3,
6303 HAL_THERMAL_MITIGATION_LEVEL_4,
6304 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6305}tHalThermalMitigationLevelType;
6306//typedef tANI_S16 tHalThermalMitigationLevelType;
6307
6308typedef PACKED_PRE struct PACKED_POST
6309{
6310 /* Thermal Mitigation Operation Mode */
6311 tHalThermalMitigationModeType thermalMitMode;
6312
6313 /* Thermal Mitigation Level */
6314 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006315
Jeff Johnson295189b2012-06-20 16:38:30 -07006316}tSetThermalMitgationType, *tpSetThermalMitgationType;
6317
6318/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6319typedef PACKED_PRE struct PACKED_POST
6320{
6321 tHalMsgHeader header;
6322 tSetThermalMitgationType thermalMitParams;
6323} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6324
6325typedef PACKED_PRE struct PACKED_POST{
6326
6327 tHalMsgHeader header;
6328
6329 /*status of the request */
6330 tANI_U32 status;
6331
6332} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6333
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006334/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6335provided to FW from Host via periodic messages */
6336typedef PACKED_PRE struct PACKED_POST {
6337 /* TX stats */
6338 uint32 txBytesPushed;
6339 uint32 txPacketsPushed;
6340
6341 /* RX stats */
6342 uint32 rxBytesRcvd;
6343 uint32 rxPacketsRcvd;
6344 uint32 rxTimeTotal;
6345} tStaStatsClassB, *tpStaStatsClassB;
6346
6347typedef PACKED_PRE struct PACKED_POST {
6348
6349 /* Duration over which this stats was collected */
6350 tANI_U32 duration;
6351
6352 /* Per STA Stats */
6353 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6354} tStatsClassBIndParams, *tpStatsClassBIndParams;
6355
6356typedef PACKED_PRE struct PACKED_POST {
6357
6358 tHalMsgHeader header;
6359
6360 /* Class B Stats */
6361 tStatsClassBIndParams statsClassBIndParams;
6362} tStatsClassBInd, *tpStatsClassBInd;
6363
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306364/*Wifi Proximity paramters in AP mode*/
6365#ifdef FEATURE_WIFI_PROXIMITY
6366
6367typedef PACKED_PRE struct PACKED_POST{
6368
6369 tANI_U8 wifiProximityChannel;
6370 tANI_U32 wifiProximityDuration;
6371 tANI_U32 wifiProximityInterval;
6372 tANI_U32 wifiProximityMode;
6373 tANI_U32 wifiProximityStatus;
6374 tSirMacAddr bssId;
6375 tSirMacSSid ssId;
6376
6377} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6378
6379typedef PACKED_PRE struct PACKED_POST
6380{
6381 tHalMsgHeader header;
6382
6383 tSetWifiProximityReqParam wifiProximityReqParams;
6384
6385}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6386
6387/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6388typedef PACKED_PRE struct PACKED_POST{
6389
6390 tHalMsgHeader header;
6391
6392 /*status of the request */
6393 tANI_U32 status;
6394
6395} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6396
6397#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006398
6399#ifdef FEATURE_SPECULATIVE_PS_POLL
6400/*---------------------------------------------------------------------------
6401 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6402 *--------------------------------------------------------------------------*/
6403typedef PACKED_PRE struct PACKED_POST
6404{
6405 tANI_U8 bssIdx;
6406 tANI_U16 serviceInterval;
6407 tANI_U16 suspendInterval;
6408 tANI_U8 acMask;
6409} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6410
6411typedef PACKED_PRE struct PACKED_POST
6412{
6413 tHalMsgHeader header;
6414 tHalStartSpecPsPollReqParams specPsPollReq;
6415} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6416
6417/*---------------------------------------------------------------------------
6418 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6419 *--------------------------------------------------------------------------*/
6420typedef PACKED_PRE struct PACKED_POST
6421{
6422 /* success or failure */
6423 tANI_U32 status;
6424 tANI_U8 bssIdx;
6425} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6426
6427typedef PACKED_PRE struct PACKED_POST
6428{
6429 tHalMsgHeader header;
6430 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6431} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6432
6433/*---------------------------------------------------------------------------
6434 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6435 *--------------------------------------------------------------------------*/
6436typedef PACKED_PRE struct PACKED_POST
6437{
6438 tHalMsgHeader header;
6439 tANI_U8 bssIdx;
6440} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6441#endif
6442
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306443#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306444#define HAL_MAX_SUPP_CHANNELS 128
6445#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306446/*---------------------------------------------------------------------------
6447 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6448 *-------------------------------------------------------------------------*/
6449typedef PACKED_PRE struct PACKED_POST
6450{
6451 /*STA Index*/
6452 tANI_U16 staIdx;
6453
6454 /* if this is 1, self is initiator and peer is reponder */
6455 tANI_U8 bIsResponder;
6456
6457 /* QoS Info */
6458 tANI_U8 acVOUAPSDFlag:1;
6459 tANI_U8 acVIUAPSDFlag:1;
6460 tANI_U8 acBKUAPSDFlag:1;
6461 tANI_U8 acBEUAPSDFlag:1;
6462 tANI_U8 aAck:1;
6463 tANI_U8 maxServicePeriodLength:2;
6464 tANI_U8 moreDataAck:1;
6465
6466 /*TDLS Peer U-APSD Buffer STA Support*/
6467 tANI_U8 TPUBufferStaSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306468 /*TDLS Offchannel Support*/
6469 tANI_U8 tdlsOffchannelSupport;
6470 tANI_U8 peerCurrOperClass;
6471 tANI_U8 selfCurrOperClass;
6472 tANI_U8 validChannelsLen;
6473 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
6474 tANI_U8 validOperClassesLen;
6475 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306476}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6477
6478typedef PACKED_PRE struct PACKED_POST
6479{
6480 tHalMsgHeader header;
6481 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6482} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6483
6484/*---------------------------------------------------------------------------
6485 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6486 *-------------------------------------------------------------------------*/
6487
6488typedef PACKED_PRE struct PACKED_POST
6489{
6490 tANI_U32 status;
6491
6492 /*STA Index*/
6493 tANI_U16 staIdx;
6494} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6495
6496typedef PACKED_PRE struct PACKED_POST
6497{
6498 tHalMsgHeader header;
6499 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6500} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6501
6502/*---------------------------------------------------------------------------
6503 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6504 *-------------------------------------------------------------------------*/
6505typedef PACKED_PRE struct PACKED_POST
6506{
6507 /*STA Index*/
6508 tANI_U16 staIdx;
6509}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6510
6511typedef PACKED_PRE struct PACKED_POST
6512{
6513 tHalMsgHeader header;
6514 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6515} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6516
6517/*---------------------------------------------------------------------------
6518 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6519 *-------------------------------------------------------------------------*/
6520
6521typedef PACKED_PRE struct PACKED_POST
6522{
6523 tANI_U32 status;
6524
6525 /*STA Index*/
6526 tANI_U16 staIdx;
6527} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6528
6529typedef PACKED_PRE struct PACKED_POST
6530{
6531 tHalMsgHeader header;
6532 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6533} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6534
6535/*---------------------------------------------------------------------------
6536 *WLAN_HAL_TDLS_IND
6537 *--------------------------------------------------------------------------*/
6538
6539typedef PACKED_PRE struct PACKED_POST
6540{
6541 tANI_U16 assocId;
6542 tANI_U16 staIdx;
6543 tANI_U16 status;
6544 tANI_U16 reasonCode;
6545}tTdlsIndParams, *tpTdlsIndParams;
6546
6547
6548typedef PACKED_PRE struct PACKED_POST
6549{
6550 tHalMsgHeader header;
6551 tTdlsIndParams tdlsIndParams;
6552}tTdlsIndMsg, *tpTdlsIndMsg;
6553
6554#endif
6555
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006556/*---------------------------------------------------------------------------
6557 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6558 *--------------------------------------------------------------------------*/
6559
6560typedef PACKED_PRE struct PACKED_POST
6561{
6562 tANI_U8 bssIdx;
6563 tANI_U8 staIdx;
6564 tSirMacAddr staAddr;
6565}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
6566
6567
6568typedef PACKED_PRE struct PACKED_POST
6569{
6570 tHalMsgHeader header;
6571 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
6572}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
6573
6574
Kumar Anandf53016f2013-09-04 15:15:53 -07006575/*---------------------------------------------------------------------------
6576 * WLAN_HAL_LBP_LEADER_REQ
6577 *-------------------------------------------------------------------------*/
6578
6579/* Maximum number of RMCAST sessions in each role (transmitter or Leader) */
6580#define HAL_MAX_RMCAST_SESSIONS 2
6581
6582/* Maximum number of leaders in blacklist or candidate leader list */
6583#define HAL_NUM_MAX_LEADERS 8
6584
6585typedef enum
6586{
6587 WLAN_HAL_SUGGEST_LEADER,
6588 WLAN_HAL_BECOME_LEADER,
6589 WLAN_HAL_LEADER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
6590}tLeaderReqCmdType, tLeaderRspCmdType;
6591
6592typedef PACKED_PRE struct PACKED_POST
6593{
6594 tLeaderReqCmdType cmd;
6595
6596 /* MAC address of MCAST Transmitter (source) */
6597 tSirMacAddr mcastTransmitter;
6598
6599 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
6600 tSirMacAddr mcastGroup;
6601
6602 /* Optional black list for cmd = WLAN_HAL_SUGGEST_LEADER */
6603 tSirMacAddr blacklist[HAL_NUM_MAX_LEADERS];
6604} tHalLbpLeaderReqParams, *tpHalLbpLeaderReqParams;
6605
6606typedef PACKED_PRE struct PACKED_POST
6607{
6608 tHalMsgHeader header;
6609 tHalLbpLeaderReqParams leaderReqParams;
6610} tHalLbpLeaderReqMsg, *tpHalLbpLeaderReqMsg;
6611
6612/*---------------------------------------------------------------------------
6613 * WLAN_HAL_LBP_LEADER_RSP
6614 *-------------------------------------------------------------------------*/
6615typedef PACKED_PRE struct PACKED_POST
6616{
6617 /* success or failure */
6618 tANI_U32 status;
6619
6620 /* Command Type */
6621 tLeaderRspCmdType cmd;
6622
6623 /* MAC address of MCAST Transmitter (source) */
6624 tSirMacAddr mcastTransmitter;
6625
6626 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
6627 tSirMacAddr mcastGroup;
6628
6629 /* List of candidates for cmd = WLAN_HAL_SUGGEST_LEADER*/
6630 tSirMacAddr leader[HAL_NUM_MAX_LEADERS];
6631
6632} tHalLbpLeaderRspParams, *tpHalLbpLeaderRspParams;
6633
6634typedef PACKED_PRE struct PACKED_POST
6635{
6636 tHalMsgHeader header;
6637 tHalLbpLeaderRspParams leaderRspParams;
6638} tHalLbpLeaderRspMsg, *tpHalLbpLeaderRspMsg;
6639
6640/*---------------------------------------------------------------------------
6641 * WLAN_HAL_LBP_UPDATE_IND
6642 *-------------------------------------------------------------------------*/
6643typedef enum
6644{
6645 WLAN_HAL_LEADER_ACCEPTED, //Host-->FW
6646 WLAN_HAL_LEADER_CANCELED, //Host-->FW
6647 WLAN_HAL_LEADER_PICK_NEW, //FW-->Host
6648 WLAN_HAL_LEADER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
6649}tLbpUpdateIndType;
6650
6651typedef enum
6652{
6653 WLAN_HAL_LBP_LEADER_ROLE,
6654 WLAN_HAL_LBP_TRANSMITTER_ROLE,
6655 WLAN_HAL_LBP_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6656}tLbpRoleType;
6657
6658typedef PACKED_PRE struct PACKED_POST
6659{
6660 tLbpUpdateIndType indication;
6661
6662 /* Role of the entity generating this indication */
6663 tLbpRoleType role;
6664
6665 /* MAC address of MCAST Transmitter (source) */
6666 tSirMacAddr mcastTransmitter;
6667
6668 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
6669 tSirMacAddr mcastGroup;
6670
6671 /* MAC address of MCAST Receiver Leader */
6672 tSirMacAddr mcastLeader;
6673
6674 /* Candidate list for indication = WLAN_HAL_LEADER_PICK_NEW */
6675 tSirMacAddr leader[HAL_NUM_MAX_LEADERS];
6676} tHalLbpUpdateIndParams, *tpHalLbpUpdateIndParams;
6677
6678typedef PACKED_PRE struct PACKED_POST
6679{
6680 tHalMsgHeader header;
6681 tHalLbpUpdateIndParams leaderIndParams;
6682} tHalLbpUpdateInd, *tpHalLbpUpdateInd;
6683
krunal soni2a4728d2013-09-20 21:56:50 -07006684typedef PACKED_PRE struct PACKED_POST
6685{
6686 tANI_U8 staIdx; // Station Idx;
6687 tANI_U32 txRate; // Legacy transmit rate, in units of 500 kbit/sec,
6688 // for the most recently transmitted frame
6689 tANI_U32 mcsIndex; // mcs index for HT20 and HT40 rates
6690 tANI_U32 txRateFlags; //to differentiate between HT20 and
6691 //HT40 rates; short and long guard interval
6692 tANI_S8 rssi; // RSSI of the last received beacon
6693}tHalIbssPeerParams, *tpHalIbssPeerParams;
6694
6695typedef PACKED_PRE struct PACKED_POST
6696{
6697 tANI_U32 status; // success or failure
6698 tANI_U8 numOfPeers; // Number of Peers for
6699 // which stats are being reported
6700 tHalIbssPeerParams ibssPeerParams[1]; // Stats of peer in IBSS
6701}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
6702
6703// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
6704typedef PACKED_PRE struct PACKED_POST
6705{
6706 tHalMsgHeader header;
6707 tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
6708}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
6709
6710typedef PACKED_PRE struct PACKED_POST
6711{
6712 tANI_U8 bssIdx; // Bss Index
6713 tANI_BOOLEAN allPeerInfoReqd; // If set,all IBSS peers stats are reported
6714 tANI_U8 staIdx; // If allPeerInfoReqd is not set,
6715 // only stats of peer with
6716 // staIdx is reported
6717}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
6718
6719// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
6720typedef PACKED_PRE struct PACKED_POST
6721{
6722 tHalMsgHeader header;
6723 tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
6724}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
6725
Kumar Anandf53016f2013-09-04 15:15:53 -07006726/*---------------------------------------------------------------------------
6727 *-------------------------------------------------------------------------*/
6728
Jeff Johnson295189b2012-06-20 16:38:30 -07006729#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6730#pragma pack(pop)
6731#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6732#else
6733#endif
6734
6735#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006736