blob: a38799b0417306cf53f25be5ed2892b3cae000aa [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
Jeff Johnson295189b2012-06-20 16:38:30 -0700119/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700120typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700121{
122 //Init/De-Init
123 WLAN_HAL_START_REQ = 0,
124 WLAN_HAL_START_RSP = 1,
125 WLAN_HAL_STOP_REQ = 2,
126 WLAN_HAL_STOP_RSP = 3,
127
128 //Scan
129 WLAN_HAL_INIT_SCAN_REQ = 4,
130 WLAN_HAL_INIT_SCAN_RSP = 5,
131 WLAN_HAL_START_SCAN_REQ = 6,
132 WLAN_HAL_START_SCAN_RSP = 7 ,
133 WLAN_HAL_END_SCAN_REQ = 8,
134 WLAN_HAL_END_SCAN_RSP = 9,
135 WLAN_HAL_FINISH_SCAN_REQ = 10,
136 WLAN_HAL_FINISH_SCAN_RSP = 11,
137
138 // HW STA configuration/deconfiguration
139 WLAN_HAL_CONFIG_STA_REQ = 12,
140 WLAN_HAL_CONFIG_STA_RSP = 13,
141 WLAN_HAL_DELETE_STA_REQ = 14,
142 WLAN_HAL_DELETE_STA_RSP = 15,
143 WLAN_HAL_CONFIG_BSS_REQ = 16,
144 WLAN_HAL_CONFIG_BSS_RSP = 17,
145 WLAN_HAL_DELETE_BSS_REQ = 18,
146 WLAN_HAL_DELETE_BSS_RSP = 19,
147
148 //Infra STA asscoiation
149 WLAN_HAL_JOIN_REQ = 20,
150 WLAN_HAL_JOIN_RSP = 21,
151 WLAN_HAL_POST_ASSOC_REQ = 22,
152 WLAN_HAL_POST_ASSOC_RSP = 23,
153
154 //Security
155 WLAN_HAL_SET_BSSKEY_REQ = 24,
156 WLAN_HAL_SET_BSSKEY_RSP = 25,
157 WLAN_HAL_SET_STAKEY_REQ = 26,
158 WLAN_HAL_SET_STAKEY_RSP = 27,
159 WLAN_HAL_RMV_BSSKEY_REQ = 28,
160 WLAN_HAL_RMV_BSSKEY_RSP = 29,
161 WLAN_HAL_RMV_STAKEY_REQ = 30,
162 WLAN_HAL_RMV_STAKEY_RSP = 31,
163
164 //Qos Related
165 WLAN_HAL_ADD_TS_REQ = 32,
166 WLAN_HAL_ADD_TS_RSP = 33,
167 WLAN_HAL_DEL_TS_REQ = 34,
168 WLAN_HAL_DEL_TS_RSP = 35,
169 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
170 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
171 WLAN_HAL_ADD_BA_REQ = 38,
172 WLAN_HAL_ADD_BA_RSP = 39,
173 WLAN_HAL_DEL_BA_REQ = 40,
174 WLAN_HAL_DEL_BA_RSP = 41,
175
176 WLAN_HAL_CH_SWITCH_REQ = 42,
177 WLAN_HAL_CH_SWITCH_RSP = 43,
178 WLAN_HAL_SET_LINK_ST_REQ = 44,
179 WLAN_HAL_SET_LINK_ST_RSP = 45,
180 WLAN_HAL_GET_STATS_REQ = 46,
181 WLAN_HAL_GET_STATS_RSP = 47,
182 WLAN_HAL_UPDATE_CFG_REQ = 48,
183 WLAN_HAL_UPDATE_CFG_RSP = 49,
184
185 WLAN_HAL_MISSED_BEACON_IND = 50,
186 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
187 WLAN_HAL_MIC_FAILURE_IND = 52,
188 WLAN_HAL_FATAL_ERROR_IND = 53,
189 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700190
Jeff Johnson295189b2012-06-20 16:38:30 -0700191 //NV Interface
192 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
193 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
194
195 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
196 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
197 WLAN_HAL_TRIGGER_BA_REQ = 59,
198 WLAN_HAL_TRIGGER_BA_RSP = 60,
199 WLAN_HAL_UPDATE_BEACON_REQ = 61,
200 WLAN_HAL_UPDATE_BEACON_RSP = 62,
201 WLAN_HAL_SEND_BEACON_REQ = 63,
202 WLAN_HAL_SEND_BEACON_RSP = 64,
203
204 WLAN_HAL_SET_BCASTKEY_REQ = 65,
205 WLAN_HAL_SET_BCASTKEY_RSP = 66,
206 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
207 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
208 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700209
Jeff Johnson295189b2012-06-20 16:38:30 -0700210 // PTT interface support
211 WLAN_HAL_PROCESS_PTT_REQ = 70,
212 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700213
Jeff Johnson295189b2012-06-20 16:38:30 -0700214 // BTAMP related events
215 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
216 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
217 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
218 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
219
220 WLAN_HAL_ENTER_IMPS_REQ = 76,
221 WLAN_HAL_EXIT_IMPS_REQ = 77,
222 WLAN_HAL_ENTER_BMPS_REQ = 78,
223 WLAN_HAL_EXIT_BMPS_REQ = 79,
224 WLAN_HAL_ENTER_UAPSD_REQ = 80,
225 WLAN_HAL_EXIT_UAPSD_REQ = 81,
226 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
227 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
228 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
229 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
230 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
231 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
232 WLAN_HAL_ENTER_WOWL_REQ = 88,
233 WLAN_HAL_EXIT_WOWL_REQ = 89,
234 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
235 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
236 WLAN_HAL_GET_RSSI_REQ = 92,
237 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
238 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
239
240 WLAN_HAL_ENTER_IMPS_RSP = 95,
241 WLAN_HAL_EXIT_IMPS_RSP = 96,
242 WLAN_HAL_ENTER_BMPS_RSP = 97,
243 WLAN_HAL_EXIT_BMPS_RSP = 98,
244 WLAN_HAL_ENTER_UAPSD_RSP = 99,
245 WLAN_HAL_EXIT_UAPSD_RSP = 100,
246 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
247 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
248 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
249 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
250 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
251 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
252 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
253 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
254 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
255 WLAN_HAL_ENTER_WOWL_RSP = 110,
256 WLAN_HAL_EXIT_WOWL_RSP = 111,
257 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
258 WLAN_HAL_GET_RSSI_RSP = 113,
259 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
260
261 //11k related events
262 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
263 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
264
265 //11R related msgs
266 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
267 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
268
269 //P2P WLAN_FEATURE_P2P
270 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
271 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700272
Jeff Johnson295189b2012-06-20 16:38:30 -0700273 //WLAN Dump commands
274 WLAN_HAL_DUMP_COMMAND_REQ = 121,
275 WLAN_HAL_DUMP_COMMAND_RSP = 122,
276
Jeff Johnsone7245742012-09-05 17:12:55 -0700277 //OEM_DATA FEATURE SUPPORT
278 WLAN_HAL_START_OEM_DATA_REQ = 123,
279 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700280
281 //ADD SELF STA REQ and RSP
282 WLAN_HAL_ADD_STA_SELF_REQ = 125,
283 WLAN_HAL_ADD_STA_SELF_RSP = 126,
284
285 //DEL SELF STA SUPPORT
286 WLAN_HAL_DEL_STA_SELF_REQ = 127,
287 WLAN_HAL_DEL_STA_SELF_RSP = 128,
288
289 // Coex Indication
290 WLAN_HAL_COEX_IND = 129,
291
Jeff Johnson32d95a32012-09-10 13:15:23 -0700292 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700293 WLAN_HAL_OTA_TX_COMPL_IND = 130,
294
295 //Host Suspend/resume messages
296 WLAN_HAL_HOST_SUSPEND_IND = 131,
297 WLAN_HAL_HOST_RESUME_REQ = 132,
298 WLAN_HAL_HOST_RESUME_RSP = 133,
299
300 WLAN_HAL_SET_TX_POWER_REQ = 134,
301 WLAN_HAL_SET_TX_POWER_RSP = 135,
302 WLAN_HAL_GET_TX_POWER_REQ = 136,
303 WLAN_HAL_GET_TX_POWER_RSP = 137,
304
305 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700306
Jeff Johnson295189b2012-06-20 16:38:30 -0700307 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
308 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
309 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
310 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
311 WLAN_HAL_RADAR_DETECT_IND = 143,
312 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
313 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700314 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700315
316 /*PNO messages*/
317 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
318 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
319 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
320 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
321 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
322 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700323 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700324
325 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
326 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
327 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700328
Jeff Johnson295189b2012-06-20 16:38:30 -0700329 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700330 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700331
332 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700333 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700334 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700335 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700336 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700337 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
338 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700339 * Host and Riva code is in sync*/
340 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700341
Jeff Johnson295189b2012-06-20 16:38:30 -0700342 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
343 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
344
345 WLAN_HAL_TSM_STATS_REQ = 168,
346 WLAN_HAL_TSM_STATS_RSP = 169,
347
348 // wake reason indication (WOW)
349 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700350 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700351 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
352 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
353 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
354 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
355
356 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
357 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
358 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
359
360 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
361 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
362
Anand Kumar012623a2013-01-11 17:00:00 -0800363 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
364 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800365
Anand Kumar012623a2013-01-11 17:00:00 -0800366 WLAN_HAL_P2P_NOA_START_IND = 184,
367
368 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
369 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700370
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800371 WLAN_HAL_CLASS_B_STATS_IND = 187,
372 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800373 WLAN_HAL_DHCP_START_IND = 189,
374 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700375 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
376 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530377 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
378 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700379
380 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
381 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
382 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
383
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530384 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
385 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
386 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
387 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
388 WLAN_HAL_TDLS_IND = 202,
389
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800390 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700391}tHalHostMsgType;
392
Jeff Johnsone7245742012-09-05 17:12:55 -0700393/* Enumeration for Version */
394typedef enum
395{
396 WLAN_HAL_MSG_VERSION0 = 0,
397 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800398 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
399 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700400}tHalHostMsgVersion;
401
Jeff Johnson295189b2012-06-20 16:38:30 -0700402/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700403typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700404{
405 eANI_BOOLEAN_FALSE = 0,
406 eANI_BOOLEAN_TRUE,
407 eANI_BOOLEAN_OFF = 0,
408 eANI_BOOLEAN_ON = 1,
409 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
410} eAniBoolean;
411
412typedef enum
413{
414 eDRIVER_TYPE_PRODUCTION = 0,
415 eDRIVER_TYPE_MFG = 1,
416 eDRIVER_TYPE_DVT = 2,
417 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
418} tDriverType;
419
420typedef enum
421{
422 HAL_STOP_TYPE_SYS_RESET,
423 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
424 HAL_STOP_TYPE_RF_KILL,
425 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
426}tHalStopType;
427
428typedef enum
429{
430 eHAL_SYS_MODE_NORMAL,
431 eHAL_SYS_MODE_LEARN,
432 eHAL_SYS_MODE_SCAN,
433 eHAL_SYS_MODE_PROMISC,
434 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700435 eHAL_SYS_MODE_ROAM_SCAN,
436 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700437 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700438 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
439} eHalSysMode;
440
441typedef enum
442{
443 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
444 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
445 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
446 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700447#ifdef WLAN_FEATURE_11AC
448 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
449 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
450 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
451 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
452 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
453 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
454 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
455#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700456 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
457}ePhyChanBondState;
458
459// Spatial Multiplexing(SM) Power Save mode
460typedef enum eSirMacHTMIMOPowerSaveState
461{
462 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
463 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
464 eSIR_HT_MIMO_PS_NA = 2, // reserved
465 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
466 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
467} tSirMacHTMIMOPowerSaveState;
468
469/* each station added has a rate mode which specifies the sta attributes */
470typedef enum eStaRateMode {
471 eSTA_TAURUS = 0,
472 eSTA_TITAN,
473 eSTA_POLARIS,
474 eSTA_11b,
475 eSTA_11bg,
476 eSTA_11a,
477 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700478#ifdef WLAN_FEATURE_11AC
479 eSTA_11ac,
480#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700481 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
482} tStaRateMode, *tpStaRateMode;
483
484#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
485#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
486#define SIR_NUM_POLARIS_RATES 3 //72,96,108
487
488#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
489
490
491typedef enum eSirBssType
492{
493 eSIR_INFRASTRUCTURE_MODE,
494 eSIR_INFRA_AP_MODE, //Added for softAP support
495 eSIR_IBSS_MODE,
496 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
497 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
498 eSIR_AUTO_MODE,
499 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
500} tSirBssType;
501
502typedef enum eSirNwType
503{
504 eSIR_11A_NW_TYPE,
505 eSIR_11B_NW_TYPE,
506 eSIR_11G_NW_TYPE,
507 eSIR_11N_NW_TYPE,
508 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
509} tSirNwType;
510
511typedef tANI_U16 tSirMacBeaconInterval;
512
513#define SIR_MAC_RATESET_EID_MAX 12
514
515typedef enum eSirMacHTOperatingMode
516{
517 eSIR_HT_OP_MODE_PURE, // No Protection
518 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
519 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
520 eSIR_HT_OP_MODE_MIXED, // Protection is required
521 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
522} tSirMacHTOperatingMode;
523
Jeff Johnson295189b2012-06-20 16:38:30 -0700524/// Encryption type enum used with peer
525typedef enum eAniEdType
526{
527 eSIR_ED_NONE,
528 eSIR_ED_WEP40,
529 eSIR_ED_WEP104,
530 eSIR_ED_TKIP,
531 eSIR_ED_CCMP,
532 eSIR_ED_WPI,
533 eSIR_ED_AES_128_CMAC,
534 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
535} tAniEdType;
536
537#define WLAN_MAX_KEY_RSC_LEN 16
538#define WLAN_WAPI_KEY_RSC_LEN 16
539
540/// MAX key length when ULA is used
541#define SIR_MAC_MAX_KEY_LENGTH 32
542#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
543
544/// Enum to specify whether key is used
545/// for TX only, RX only or both
546typedef enum eAniKeyDirection
547{
548 eSIR_TX_ONLY,
549 eSIR_RX_ONLY,
550 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700551 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700552 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
553} tAniKeyDirection;
554
555typedef enum eAniWepType
556{
557 eSIR_WEP_STATIC,
558 eSIR_WEP_DYNAMIC,
559 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
560} tAniWepType;
561
562typedef enum eSriLinkState {
563
564 eSIR_LINK_IDLE_STATE = 0,
565 eSIR_LINK_PREASSOC_STATE = 1,
566 eSIR_LINK_POSTASSOC_STATE = 2,
567 eSIR_LINK_AP_STATE = 3,
568 eSIR_LINK_IBSS_STATE = 4,
569
570 /* BT-AMP Case */
571 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
572 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
573 eSIR_LINK_BTAMP_AP_STATE = 7,
574 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700575
Jeff Johnson295189b2012-06-20 16:38:30 -0700576 /* Reserved for HAL Internal Use */
577 eSIR_LINK_LEARN_STATE = 9,
578 eSIR_LINK_SCAN_STATE = 10,
579 eSIR_LINK_FINISH_SCAN_STATE = 11,
580 eSIR_LINK_INIT_CAL_STATE = 12,
581 eSIR_LINK_FINISH_CAL_STATE = 13,
582#ifdef WLAN_FEATURE_P2P
583 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530584 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700585#endif
586 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
587} tSirLinkState;
588
589typedef enum
590{
591 HAL_SUMMARY_STATS_INFO = 0x00000001,
592 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
593 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
594 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
595 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
596 HAL_PER_STA_STATS_INFO = 0x00000020
597}eHalStatsMask;
598
599/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700600typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700601{
602 BTAMP_EVENT_CONNECTION_START,
603 BTAMP_EVENT_CONNECTION_STOP,
604 BTAMP_EVENT_CONNECTION_TERMINATED,
605 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
606} tBtAmpEventType;
607
608//***************************************************************
609
610
611/*******************PE Statistics*************************/
612typedef enum
613{
614 PE_SUMMARY_STATS_INFO = 0x00000001,
615 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
616 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
617 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
618 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
619 PE_PER_STA_STATS_INFO = 0x00000020,
620 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
621}ePEStatsMask;
622
623/*---------------------------------------------------------------------------
624 Message definitons - All the messages below need to be packed
625 ---------------------------------------------------------------------------*/
626
627#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
628#pragma pack(push, 1)
629#elif defined(__ANI_COMPILER_PRAGMA_PACK)
630#pragma pack(1)
631#else
632#endif
633
634/// Definition for HAL API Version.
635typedef PACKED_PRE struct PACKED_POST
636{
637 tANI_U8 revision;
638 tANI_U8 version;
639 tANI_U8 minor;
640 tANI_U8 major;
641} tWcnssWlanVersion, *tpWcnssWlanVersion;
642
643/// Definition for Encryption Keys
644typedef PACKED_PRE struct PACKED_POST
645{
646 tANI_U8 keyId;
647 tANI_U8 unicast; // 0 for multicast
648 tAniKeyDirection keyDirection;
649 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
650 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
651 tANI_U16 keyLength;
652 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
653} tSirKeys, *tpSirKeys;
654
655
656//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
657typedef PACKED_PRE struct PACKED_POST
658{
659 /*STA Index*/
660 tANI_U16 staIdx;
661
662 /*Encryption Type used with peer*/
663 tAniEdType encType;
664
665 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700666 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700667
668 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
669 tANI_U8 defWEPIdx;
670
Jeff Johnson295189b2012-06-20 16:38:30 -0700671 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700672 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
673
Jeff Johnson295189b2012-06-20 16:38:30 -0700674 /*Control for Replay Count, 1= Single TID based replay count on Tx
675 0 = Per TID based replay count on TX */
676 tANI_U8 singleTidRc;
677
678} tSetStaKeyParams, *tpSetStaKeyParams;
679
680
681
682/* 4-byte control message header used by HAL*/
683typedef PACKED_PRE struct PACKED_POST
684{
Jeff Johnsone7245742012-09-05 17:12:55 -0700685 tHalHostMsgType msgType:16;
686 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700687 tANI_U32 msgLen;
688} tHalMsgHeader, *tpHalMsgHeader;
689
690/* Config format required by HAL for each CFG item*/
691typedef PACKED_PRE struct PACKED_POST
692{
693 /* Cfg Id. The Id required by HAL is exported by HAL
694 * in shared header file between UMAC and HAL.*/
695 tANI_U16 uCfgId;
696
Jeff Johnson32d95a32012-09-10 13:15:23 -0700697 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700698 * in the TLV format.*/
699 tANI_U16 uCfgLen;
700
701 /* Padding bytes for unaligned address's */
702 tANI_U16 uCfgPadBytes;
703
704 /* Reserve bytes for making cfgVal to align address */
705 tANI_U16 uCfgReserve;
706
707 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
708 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
709} tHalCfg, *tpHalCfg;
710
711/*---------------------------------------------------------------------------
712 WLAN_HAL_START_REQ
713---------------------------------------------------------------------------*/
714
715typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
716{
717 /* Drive Type - Production or FTM etc */
718 tDriverType driverType;
719
720 /*Length of the config buffer*/
721 tANI_U32 uConfigBufferLen;
722
Jeff Johnson32d95a32012-09-10 13:15:23 -0700723 /* Following this there is a TLV formatted buffer of length
724 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700725 * The TLV is expected to be formatted like this:
726 * 0 15 31 31+CFG_LEN-1 length-1
727 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
728 */
729} tHalMacStartParameters, *tpHalMacStartParameters;
730
731typedef PACKED_PRE struct PACKED_POST
732{
733 /* Note: The length specified in tHalMacStartReqMsg messages should be
734 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
735 tHalMsgHeader header;
736 tHalMacStartParameters startReqParams;
737} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
738
739/*---------------------------------------------------------------------------
740 WLAN_HAL_START_RSP
741---------------------------------------------------------------------------*/
742
743typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
744{
745 /*success or failure */
746 tANI_U16 status;
747
748 /*Max number of STA supported by the device*/
749 tANI_U8 ucMaxStations;
750
751 /*Max number of BSS supported by the device*/
752 tANI_U8 ucMaxBssids;
753
754 /*API Version */
755 tWcnssWlanVersion wcnssWlanVersion;
756
757 /*CRM build information */
758 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
759
760 /*hardware/chipset/misc version information */
761 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
762
763} tHalMacStartRspParams, *tpHalMacStartRspParams;
764
765typedef PACKED_PRE struct PACKED_POST
766{
767 tHalMsgHeader header;
768 tHalMacStartRspParams startRspParams;
769} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
770
771/*---------------------------------------------------------------------------
772 WLAN_HAL_STOP_REQ
773---------------------------------------------------------------------------*/
774
775typedef PACKED_PRE struct PACKED_POST
776{
777 /*The reason for which the device is being stopped*/
778 tHalStopType reason;
779
780}tHalMacStopReqParams, *tpHalMacStopReqParams;
781
782typedef PACKED_PRE struct PACKED_POST
783{
784 tHalMsgHeader header;
785 tHalMacStopReqParams stopReqParams;
786} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
787
788/*---------------------------------------------------------------------------
789 WLAN_HAL_STOP_RSP
790---------------------------------------------------------------------------*/
791
792typedef PACKED_PRE struct PACKED_POST
793{
794 /*success or failure */
795 tANI_U32 status;
796
797}tHalMacStopRspParams, *tpHalMacStopRspParams;
798
799typedef PACKED_PRE struct PACKED_POST
800{
801 tHalMsgHeader header;
802 tHalMacStopRspParams stopRspParams;
803} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
804
805/*---------------------------------------------------------------------------
806 WLAN_HAL_UPDATE_CFG_REQ
807---------------------------------------------------------------------------*/
808
809typedef PACKED_PRE struct PACKED_POST
810{
811 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
812 tANI_U32 uConfigBufferLen;
813
Jeff Johnson32d95a32012-09-10 13:15:23 -0700814 /* Following this there is a TLV formatted buffer of length
815 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700816 * The TLV is expected to be formatted like this:
817 * 0 15 31 31+CFG_LEN-1 length-1
818 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
819 */
820} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
821
822typedef PACKED_PRE struct PACKED_POST
823{
824 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
825 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
826 tHalMsgHeader header;
827 tHalUpdateCfgReqParams updateCfgReqParams;
828} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
829
830/*---------------------------------------------------------------------------
831 WLAN_HAL_UPDATE_CFG_RSP
832---------------------------------------------------------------------------*/
833
834typedef PACKED_PRE struct PACKED_POST
835{
836 /* success or failure */
837 tANI_U32 status;
838
839}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
840
841typedef PACKED_PRE struct PACKED_POST
842{
843 tHalMsgHeader header;
844 tHalUpdateCfgRspParams updateCfgRspParams;
845} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
846
847/*---------------------------------------------------------------------------
848 WLAN_HAL_INIT_SCAN_REQ
849---------------------------------------------------------------------------*/
850
851/// Frame control field format (2 bytes)
852typedef __ani_attr_pre_packed struct sSirMacFrameCtl
853{
854
855#ifndef ANI_LITTLE_BIT_ENDIAN
856
857 tANI_U8 subType :4;
858 tANI_U8 type :2;
859 tANI_U8 protVer :2;
860
861 tANI_U8 order :1;
862 tANI_U8 wep :1;
863 tANI_U8 moreData :1;
864 tANI_U8 powerMgmt :1;
865 tANI_U8 retry :1;
866 tANI_U8 moreFrag :1;
867 tANI_U8 fromDS :1;
868 tANI_U8 toDS :1;
869
870#else
871
872 tANI_U8 protVer :2;
873 tANI_U8 type :2;
874 tANI_U8 subType :4;
875
876 tANI_U8 toDS :1;
877 tANI_U8 fromDS :1;
878 tANI_U8 moreFrag :1;
879 tANI_U8 retry :1;
880 tANI_U8 powerMgmt :1;
881 tANI_U8 moreData :1;
882 tANI_U8 wep :1;
883 tANI_U8 order :1;
884
885#endif
886
887} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
888
889/// Sequence control field
890typedef __ani_attr_pre_packed struct sSirMacSeqCtl
891{
892 tANI_U8 fragNum : 4;
893 tANI_U8 seqNumLo : 4;
894 tANI_U8 seqNumHi : 8;
895} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
896
897/// Management header format
898typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
899{
900 tSirMacFrameCtl fc;
901 tANI_U8 durationLo;
902 tANI_U8 durationHi;
903 tANI_U8 da[6];
904 tANI_U8 sa[6];
905 tANI_U8 bssId[6];
906 tSirMacSeqCtl seqControl;
907} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
908
909/// Scan Entry to hold active BSS idx's
910typedef __ani_attr_pre_packed struct sSirScanEntry
911{
912 tANI_U8 bssIdx[HAL_NUM_BSSID];
913 tANI_U8 activeBSScnt;
914}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
915
916typedef PACKED_PRE struct PACKED_POST {
917
918 /*LEARN - AP Role
919 SCAN - STA Role*/
920 eHalSysMode scanMode;
921
922 /*BSSID of the BSS*/
923 tSirMacAddr bssid;
924
925 /*Whether BSS needs to be notified*/
926 tANI_U8 notifyBss;
927
928 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
929 CTS to Self). Must always be a valid frame type.*/
930 tANI_U8 frameType;
931
932 /*UMAC has the option of passing the MAC frame to be used for notifying
933 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
934 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
935 frameType.*/
936 tANI_U8 frameLength;
937
Jeff Johnson32d95a32012-09-10 13:15:23 -0700938 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700939 is non-zero. */
940 tSirMacMgmtHdr macMgmtHdr;
941
942 /*Entry to hold number of active BSS idx's*/
943 tSirScanEntry scanEntry;
944
945} tInitScanParams, * tpInitScanParams;
946
947typedef PACKED_PRE struct PACKED_POST
948{
949 tHalMsgHeader header;
950 tInitScanParams initScanParams;
951} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
952
953typedef PACKED_PRE struct PACKED_POST {
954
955 /*LEARN - AP Role
956 SCAN - STA Role*/
957 eHalSysMode scanMode;
958
959 /*BSSID of the BSS*/
960 tSirMacAddr bssid;
961
962 /*Whether BSS needs to be notified*/
963 tANI_U8 notifyBss;
964
965 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
966 CTS to Self). Must always be a valid frame type.*/
967 tANI_U8 frameType;
968
969 /*UMAC has the option of passing the MAC frame to be used for notifying
970 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
971 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
972 frameType.*/
973 tANI_U8 frameLength;
974
Jeff Johnson32d95a32012-09-10 13:15:23 -0700975 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700976 is non-zero. */
977 tSirMacMgmtHdr macMgmtHdr;
978
979 /*Entry to hold number of active BSS idx's*/
980 tSirScanEntry scanEntry;
981
982 /* Single NoA usage in Scanning */
983 tANI_U8 useNoA;
984
985 /* Indicates the scan duration (in ms) */
986 tANI_U16 scanDuration;
987
988} tInitScanConParams, * tpInitScanConParams;
989
990typedef PACKED_PRE struct PACKED_POST
991{
992 tHalMsgHeader header;
993 tInitScanConParams initScanParams;
994} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
995
996
997/*---------------------------------------------------------------------------
998 WLAN_HAL_INIT_SCAN_RSP
999---------------------------------------------------------------------------*/
1000
1001typedef PACKED_PRE struct PACKED_POST
1002{
1003 /*success or failure */
1004 tANI_U32 status;
1005
1006}tHalInitScanRspParams, *tpHalInitScanRspParams;
1007
1008typedef PACKED_PRE struct PACKED_POST
1009{
1010 tHalMsgHeader header;
1011 tHalInitScanRspParams initScanRspParams;
1012} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1013
1014/*---------------------------------------------------------------------------
1015 WLAN_HAL_START_SCAN_REQ
1016---------------------------------------------------------------------------*/
1017
Jeff Johnson32d95a32012-09-10 13:15:23 -07001018typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001019{
1020 /*Indicates the channel to scan*/
1021 tANI_U8 scanChannel;
1022
1023 } tStartScanParams, * tpStartScanParams;
1024
1025typedef PACKED_PRE struct PACKED_POST
1026{
1027 tHalMsgHeader header;
1028 tStartScanParams startScanParams;
1029} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1030
1031/*---------------------------------------------------------------------------
1032 WLAN_HAL_START_SCAN_RSP
1033---------------------------------------------------------------------------*/
1034
1035typedef PACKED_PRE struct PACKED_POST
1036{
1037 /*success or failure */
1038 tANI_U32 status;
1039
1040 tANI_U32 startTSF[2];
1041 tPowerdBm txMgmtPower;
1042
1043}tHalStartScanRspParams, *tpHalStartScanRspParams;
1044
1045typedef PACKED_PRE struct PACKED_POST
1046{
1047 tHalMsgHeader header;
1048 tHalStartScanRspParams startScanRspParams;
1049} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1050
1051/*---------------------------------------------------------------------------
1052 WLAN_HAL_END_SCAN_REQ
1053---------------------------------------------------------------------------*/
1054
1055typedef PACKED_PRE struct PACKED_POST
1056{
1057 /*Indicates the channel to stop scanning. Not used really. But retained
1058 for symmetry with "start Scan" message. It can also help in error
1059 check if needed.*/
1060 tANI_U8 scanChannel;
1061
1062} tEndScanParams, *tpEndScanParams;
1063
1064typedef PACKED_PRE struct PACKED_POST
1065{
1066 tHalMsgHeader header;
1067 tEndScanParams endScanParams;
1068} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1069
1070/*---------------------------------------------------------------------------
1071 WLAN_HAL_END_SCAN_RSP
1072---------------------------------------------------------------------------*/
1073
1074typedef PACKED_PRE struct PACKED_POST
1075{
1076 /*success or failure */
1077 tANI_U32 status;
1078
1079}tHalEndScanRspParams, *tpHalEndScanRspParams;
1080
1081typedef PACKED_PRE struct PACKED_POST
1082{
1083 tHalMsgHeader header;
1084 tHalEndScanRspParams endScanRspParams;
1085} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1086
1087/*---------------------------------------------------------------------------
1088 WLAN_HAL_FINISH_SCAN_REQ
1089---------------------------------------------------------------------------*/
1090
1091typedef PACKED_PRE struct PACKED_POST
1092{
1093 /* Identifies the operational state of the AP/STA
1094 * LEARN - AP Role SCAN - STA Role */
1095 eHalSysMode scanMode;
1096
1097 /*Operating channel to tune to.*/
1098 tANI_U8 currentOperChannel;
1099
1100 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1101 40 MHz extension channel in combination with the control channel*/
1102 ePhyChanBondState cbState;
1103
1104 /*BSSID of the BSS*/
1105 tSirMacAddr bssid;
1106
1107 /*Whether BSS needs to be notified*/
1108 tANI_U8 notifyBss;
1109
1110 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1111 CTS to Self). Must always be a valid frame type.*/
1112 tANI_U8 frameType;
1113
1114 /*UMAC has the option of passing the MAC frame to be used for notifying
1115 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1116 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1117 frameType.*/
1118 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001119
1120 /*Following the framelength there is a MAC frame buffer if frameLength
1121 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001122 tSirMacMgmtHdr macMgmtHdr;
1123
1124 /*Entry to hold number of active BSS idx's*/
1125 tSirScanEntry scanEntry;
1126
1127} tFinishScanParams, *tpFinishScanParams;
1128
1129typedef PACKED_PRE struct PACKED_POST
1130{
1131 tHalMsgHeader header;
1132 tFinishScanParams finishScanParams;
1133} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1134
1135/*---------------------------------------------------------------------------
1136 WLAN_HAL_FINISH_SCAN_RSP
1137---------------------------------------------------------------------------*/
1138
1139typedef PACKED_PRE struct PACKED_POST
1140{
1141 /*success or failure */
1142 tANI_U32 status;
1143
1144}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1145
1146typedef PACKED_PRE struct PACKED_POST
1147{
1148 tHalMsgHeader header;
1149 tHalFinishScanRspParams finishScanRspParams;
1150} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1151
1152/*---------------------------------------------------------------------------
1153 WLAN_HAL_CONFIG_STA_REQ
1154---------------------------------------------------------------------------*/
1155
1156typedef PACKED_PRE struct PACKED_POST {
1157 /*
1158 * For Self STA Entry: this represents Self Mode.
1159 * For Peer Stations, this represents the mode of the peer.
1160 * On Station:
1161 * --this mode is updated when PE adds the Self Entry.
1162 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1163 * ON AP:
1164 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1165 * to indicate the self mode of the AP.
1166 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1167 */
1168
1169 tStaRateMode opRateMode;
1170 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1171 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1172 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1173 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1174 tANI_U16 reserved;
1175
1176 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1177 //First 26 bits are reserved for those Titan rates and
1178 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1179 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1180
1181 /*
1182 * 0-76 bits used, remaining reserved
1183 * bits 0-15 and 32 should be set.
1184 */
1185 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1186
1187 /*
1188 * RX Highest Supported Data Rate defines the highest data
1189 * rate that the STA is able to receive, in unites of 1Mbps.
1190 * This value is derived from "Supported MCS Set field" inside
1191 * the HT capability element.
1192 */
1193 tANI_U16 rxHighestDataRate;
1194
1195} tSirSupportedRates, *tpSirSupportedRates;
1196
1197typedef PACKED_PRE struct PACKED_POST
1198{
1199 /*BSSID of STA*/
1200 tSirMacAddr bssId;
1201
1202 /*ASSOC ID, as assigned by UMAC*/
1203 tANI_U16 assocId;
1204
1205 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1206 tANI_U8 staType;
1207
1208 /*Short Preamble Supported.*/
1209 tANI_U8 shortPreambleSupported;
1210
1211 /*MAC Address of STA*/
1212 tSirMacAddr staMac;
1213
1214 /*Listen interval of the STA*/
1215 tANI_U16 listenInterval;
1216
1217 /*Support for 11e/WMM*/
1218 tANI_U8 wmmEnabled;
1219
1220 /*11n HT capable STA*/
1221 tANI_U8 htCapable;
1222
1223 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1224 tANI_U8 txChannelWidthSet;
1225
1226 /*RIFS mode 0 - NA, 1 - Allowed */
1227 tANI_U8 rifsMode;
1228
Jeff Johnson32d95a32012-09-10 13:15:23 -07001229 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001230 0 - No Support, 1 - Supported
1231 SG - there is global field */
1232 tANI_U8 lsigTxopProtection;
1233
1234 /*Max Ampdu Size supported by STA. TPE programming.
1235 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1236 tANI_U8 maxAmpduSize;
1237
1238 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1239 tANI_U8 maxAmpduDensity;
1240
1241 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1242 tANI_U8 maxAmsduSize;
1243
1244 /*Short GI support for 40Mhz packets*/
1245 tANI_U8 fShortGI40Mhz;
1246
1247 /*Short GI support for 20Mhz packets*/
1248 tANI_U8 fShortGI20Mhz;
1249
Jeff Johnson295189b2012-06-20 16:38:30 -07001250 /*Robust Management Frame (RMF) enabled/disabled*/
1251 tANI_U8 rmfEnabled;
1252
1253 /* The unicast encryption type in the association */
1254 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001255
1256 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001257 will set this flag in case of RE-ASSOC, where we want to reuse the old
1258 STA ID. 0 = Add, 1 = Update*/
1259 tANI_U8 action;
1260
1261 /*U-APSD Flags: 1b per AC. Encoded as follows:
1262 b7 b6 b5 b4 b3 b2 b1 b0 =
1263 X X X X BE BK VI VO */
1264 tANI_U8 uAPSD;
1265
1266 /*Max SP Length*/
1267 tANI_U8 maxSPLen;
1268
1269 /*11n Green Field preamble support
1270 0 - Not supported, 1 - Supported */
1271 tANI_U8 greenFieldCapable;
1272
1273 /*MIMO Power Save mode*/
1274 tSirMacHTMIMOPowerSaveState mimoPS;
1275
1276 /*Delayed BA Support*/
1277 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001278
Jeff Johnson295189b2012-06-20 16:38:30 -07001279 /*Max AMPDU duration in 32us*/
1280 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001281
Jeff Johnson295189b2012-06-20 16:38:30 -07001282 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1283 it to 0 if AP does not support it. This indication is sent to HAL and
1284 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1285 tANI_U8 fDsssCckMode40Mhz;
1286
1287 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1288 Retained for backward compalibity with existing HAL code*/
1289 tANI_U8 staIdx;
1290
1291 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1292 Retained for backward compalibity with existing HAL code*/
1293 tANI_U8 bssIdx;
1294
1295 tANI_U8 p2pCapableSta;
1296
Jeff Johnsone7245742012-09-05 17:12:55 -07001297 /*Reserved to align next field on a dword boundary*/
1298 tANI_U8 reserved;
1299
1300 /*These rates are the intersection of peer and self capabilities.*/
1301 tSirSupportedRates supportedRates;
1302
Jeff Johnson295189b2012-06-20 16:38:30 -07001303} tConfigStaParams, *tpConfigStaParams;
1304
Jeff Johnsone7245742012-09-05 17:12:55 -07001305/*------------------------------------------------------------------------
1306 * WLAN_HAL_CONFIG_STA_REQ
1307 * ----------------------------------------------------------------------*/
1308
1309typedef PACKED_PRE struct PACKED_POST {
1310 /*
1311 * For Self STA Entry: this represents Self Mode.
1312 * For Peer Stations, this represents the mode of the peer.
1313 * On Station:
1314 * --this mode is updated when PE adds the Self Entry.
1315 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1316 * ON AP:
1317 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1318 * to indicate the self mode of the AP.
1319 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1320 */
1321
1322 tStaRateMode opRateMode;
1323 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1324 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1325 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1326 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1327 tANI_U16 reserved;
1328
1329 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1330 //First 26 bits are reserved for those Titan rates and
1331 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1332 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1333
1334 /*
1335 * 0-76 bits used, remaining reserved
1336 * bits 0-15 and 32 should be set.
1337 */
1338 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1339
1340 /*
1341 * RX Highest Supported Data Rate defines the highest data
1342 * rate that the STA is able to receive, in unites of 1Mbps.
1343 * This value is derived from "Supported MCS Set field" inside
1344 * the HT capability element.
1345 */
1346 tANI_U16 rxHighestDataRate;
1347
1348 /* Indicates the Maximum MCS that can be received for each number
1349 * of spacial streams */
1350 tANI_U16 vhtRxMCSMap;
1351
1352 /*Indicate the highest VHT data rate that the STA is able to receive*/
1353 tANI_U16 vhtRxHighestDataRate;
1354
1355 /* Indicates the Maximum MCS that can be transmitted for each number
1356 * of spacial streams */
1357 tANI_U16 vhtTxMCSMap;
1358
1359 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1360 tANI_U16 vhtTxHighestDataRate;
1361
1362} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1363
1364typedef PACKED_PRE struct PACKED_POST
1365{
1366 /*BSSID of STA*/
1367 tSirMacAddr bssId;
1368
1369 /*ASSOC ID, as assigned by UMAC*/
1370 tANI_U16 assocId;
1371
1372 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1373 tANI_U8 staType;
1374
1375 /*Short Preamble Supported.*/
1376 tANI_U8 shortPreambleSupported;
1377
1378 /*MAC Address of STA*/
1379 tSirMacAddr staMac;
1380
1381 /*Listen interval of the STA*/
1382 tANI_U16 listenInterval;
1383
1384 /*Support for 11e/WMM*/
1385 tANI_U8 wmmEnabled;
1386
1387 /*11n HT capable STA*/
1388 tANI_U8 htCapable;
1389
1390 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1391 tANI_U8 txChannelWidthSet;
1392
1393 /*RIFS mode 0 - NA, 1 - Allowed */
1394 tANI_U8 rifsMode;
1395
1396 /*L-SIG TXOP Protection mechanism
1397 0 - No Support, 1 - Supported
1398 SG - there is global field */
1399 tANI_U8 lsigTxopProtection;
1400
1401 /*Max Ampdu Size supported by STA. TPE programming.
1402 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1403 tANI_U8 maxAmpduSize;
1404
1405 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1406 tANI_U8 maxAmpduDensity;
1407
1408 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1409 tANI_U8 maxAmsduSize;
1410
1411 /*Short GI support for 40Mhz packets*/
1412 tANI_U8 fShortGI40Mhz;
1413
1414 /*Short GI support for 20Mhz packets*/
1415 tANI_U8 fShortGI20Mhz;
1416
1417 /*Robust Management Frame (RMF) enabled/disabled*/
1418 tANI_U8 rmfEnabled;
1419
1420 /* The unicast encryption type in the association */
1421 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001422
1423 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001424 will set this flag in case of RE-ASSOC, where we want to reuse the old
1425 STA ID. 0 = Add, 1 = Update*/
1426 tANI_U8 action;
1427
1428 /*U-APSD Flags: 1b per AC. Encoded as follows:
1429 b7 b6 b5 b4 b3 b2 b1 b0 =
1430 X X X X BE BK VI VO */
1431 tANI_U8 uAPSD;
1432
1433 /*Max SP Length*/
1434 tANI_U8 maxSPLen;
1435
1436 /*11n Green Field preamble support
1437 0 - Not supported, 1 - Supported */
1438 tANI_U8 greenFieldCapable;
1439
1440 /*MIMO Power Save mode*/
1441 tSirMacHTMIMOPowerSaveState mimoPS;
1442
1443 /*Delayed BA Support*/
1444 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001445
Jeff Johnsone7245742012-09-05 17:12:55 -07001446 /*Max AMPDU duration in 32us*/
1447 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001448
Jeff Johnsone7245742012-09-05 17:12:55 -07001449 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1450 it to 0 if AP does not support it. This indication is sent to HAL and
1451 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1452 tANI_U8 fDsssCckMode40Mhz;
1453
1454 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1455 Retained for backward compalibity with existing HAL code*/
1456 tANI_U8 staIdx;
1457
1458 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1459 Retained for backward compalibity with existing HAL code*/
1460 tANI_U8 bssIdx;
1461
1462 tANI_U8 p2pCapableSta;
1463
1464 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001465 tANI_U8 htLdpcEnabled:1;
1466 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001467 tANI_U8 vhtTxBFEnabled:1;
1468 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001469
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001470 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001471 tSirSupportedRates_V1 supportedRates;
1472
1473 tANI_U8 vhtCapable;
1474 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001475
Jeff Johnsone7245742012-09-05 17:12:55 -07001476} tConfigStaParams_V1, *tpConfigStaParams_V1;
1477
Jeff Johnson295189b2012-06-20 16:38:30 -07001478typedef PACKED_PRE struct PACKED_POST
1479{
1480 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001481 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001482 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001483 tConfigStaParams_V1 configStaParams_V1;
1484 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001485} tConfigStaReqMsg, *tpConfigStaReqMsg;
1486
1487/*---------------------------------------------------------------------------
1488 WLAN_HAL_CONFIG_STA_RSP
1489---------------------------------------------------------------------------*/
1490
1491typedef PACKED_PRE struct PACKED_POST
1492{
1493 /*success or failure */
1494 tANI_U32 status;
1495
1496 /* Station index; valid only when 'status' field value SUCCESS */
1497 tANI_U8 staIdx;
1498
1499 /* BSSID Index of BSS to which the station is associated */
1500 tANI_U8 bssIdx;
1501
1502 /* DPU Index for PTK */
1503 tANI_U8 dpuIndex;
1504
Jeff Johnson32d95a32012-09-10 13:15:23 -07001505 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001506 tANI_U8 bcastDpuIndex;
1507
1508 /*DPU Index for IGTK */
1509 tANI_U8 bcastMgmtDpuIdx;
1510
1511 /*PTK DPU signature*/
1512 tANI_U8 ucUcastSig;
1513
1514 /*GTK DPU isignature*/
1515 tANI_U8 ucBcastSig;
1516
1517 /* IGTK DPU signature*/
1518 tANI_U8 ucMgmtSig;
1519
1520 tANI_U8 p2pCapableSta;
1521
1522}tConfigStaRspParams, *tpConfigStaRspParams;
1523
1524typedef PACKED_PRE struct PACKED_POST
1525{
1526 tHalMsgHeader header;
1527 tConfigStaRspParams configStaRspParams;
1528}tConfigStaRspMsg, *tpConfigStaRspMsg;
1529
1530/*---------------------------------------------------------------------------
1531 WLAN_HAL_DELETE_STA_REQ
1532---------------------------------------------------------------------------*/
1533
1534/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001535typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001536{
1537 /* Index of STA to delete */
1538 tANI_U8 staIdx;
1539} tDeleteStaParams, *tpDeleteStaParams;
1540
1541/* Delete STA Request message*/
1542typedef PACKED_PRE struct PACKED_POST
1543{
1544 tHalMsgHeader header;
1545 tDeleteStaParams delStaParams;
1546} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1547
1548/*---------------------------------------------------------------------------
1549 WLAN_HAL_DELETE_STA_RSP
1550---------------------------------------------------------------------------*/
1551
1552/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001553typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001554{
1555 /*success or failure */
1556 tANI_U32 status;
1557
1558 /* Index of STA deleted */
1559 tANI_U8 staId;
1560} tDeleteStaRspParams, *tpDeleteStaRspParams;
1561
1562/* Delete STA Response message*/
1563typedef PACKED_PRE struct PACKED_POST
1564{
1565 tHalMsgHeader header;
1566 tDeleteStaRspParams delStaRspParams;
1567} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1568
1569/*---------------------------------------------------------------------------
1570 WLAN_HAL_CONFIG_BSS_REQ
1571---------------------------------------------------------------------------*/
1572
1573//12 Bytes long because this structure can be used to represent rate
1574//and extended rate set IEs. The parser assume this to be at least 12
1575typedef __ani_attr_pre_packed struct sSirMacRateSet
1576{
1577 tANI_U8 numRates;
1578 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1579} __ani_attr_packed tSirMacRateSet;
1580
1581// access category record
1582typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1583{
1584#ifndef ANI_LITTLE_BIT_ENDIAN
1585 tANI_U8 rsvd : 1;
1586 tANI_U8 aci : 2;
1587 tANI_U8 acm : 1;
1588 tANI_U8 aifsn : 4;
1589#else
1590 tANI_U8 aifsn : 4;
1591 tANI_U8 acm : 1;
1592 tANI_U8 aci : 2;
1593 tANI_U8 rsvd : 1;
1594#endif
1595} __ani_attr_packed tSirMacAciAifsn;
1596
1597// contention window size
1598typedef __ani_attr_pre_packed struct sSirMacCW
1599{
1600#ifndef ANI_LITTLE_BIT_ENDIAN
1601 tANI_U8 max : 4;
1602 tANI_U8 min : 4;
1603#else
1604 tANI_U8 min : 4;
1605 tANI_U8 max : 4;
1606#endif
1607} __ani_attr_packed tSirMacCW;
1608
1609typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1610{
1611 tSirMacAciAifsn aci;
1612 tSirMacCW cw;
1613 tANI_U16 txoplimit;
1614} __ani_attr_packed tSirMacEdcaParamRecord;
1615
1616typedef __ani_attr_pre_packed struct sSirMacSSid
1617{
1618 tANI_U8 length;
1619 tANI_U8 ssId[32];
1620} __ani_attr_packed tSirMacSSid;
1621
1622// Concurrency role. These are generic IDs that identify the various roles
1623// in the software system.
1624typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001625 HAL_STA_MODE=0,
1626 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001627 HAL_P2P_CLIENT_MODE,
1628 HAL_P2P_GO_MODE,
1629 HAL_MONITOR_MODE,
1630} tHalConMode;
1631
1632//This is a bit pattern to be set for each mode
1633//bit 0 - sta mode
1634//bit 1 - ap mode
1635//bit 2 - p2p client mode
1636//bit 3 - p2p go mode
1637typedef enum
1638{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001639 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001640 HAL_SAP=2,
1641 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1642 HAL_P2P_CLIENT=4,
1643 HAL_P2P_GO=8,
1644 HAL_MAX_CONCURRENCY_PERSONA=4
1645} tHalConcurrencyMode;
1646
1647typedef PACKED_PRE struct PACKED_POST
1648{
1649 /* BSSID */
1650 tSirMacAddr bssId;
1651
Jeff Johnson295189b2012-06-20 16:38:30 -07001652 /* Self Mac Address */
1653 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001654
1655 /* BSS type */
1656 tSirBssType bssType;
1657
1658 /*Operational Mode: AP =0, STA = 1*/
1659 tANI_U8 operMode;
1660
1661 /*Network Type*/
1662 tSirNwType nwType;
1663
1664 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1665 tANI_U8 shortSlotTimeSupported;
1666
1667 /*Co-exist with 11a STA*/
1668 tANI_U8 llaCoexist;
1669
1670 /*Co-exist with 11b STA*/
1671 tANI_U8 llbCoexist;
1672
1673 /*Co-exist with 11g STA*/
1674 tANI_U8 llgCoexist;
1675
1676 /*Coexistence with 11n STA*/
1677 tANI_U8 ht20Coexist;
1678
1679 /*Non GF coexist flag*/
1680 tANI_U8 llnNonGFCoexist;
1681
1682 /*TXOP protection support*/
1683 tANI_U8 fLsigTXOPProtectionFullSupport;
1684
1685 /*RIFS mode*/
1686 tANI_U8 fRIFSMode;
1687
1688 /*Beacon Interval in TU*/
1689 tSirMacBeaconInterval beaconInterval;
1690
1691 /*DTIM period*/
1692 tANI_U8 dtimPeriod;
1693
1694 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1695 tANI_U8 txChannelWidthSet;
1696
1697 /*Operating channel*/
1698 tANI_U8 currentOperChannel;
1699
1700 /*Extension channel for channel bonding*/
1701 tANI_U8 currentExtChannel;
1702
1703 /*Reserved to align next field on a dword boundary*/
1704 tANI_U8 reserved;
1705
Jeff Johnsone7245742012-09-05 17:12:55 -07001706 /*SSID of the BSS*/
1707 tSirMacSSid ssId;
1708
1709 /*HAL should update the existing BSS entry, if this flag is set.
1710 UMAC will set this flag in case of reassoc, where we want to resue the
1711 the old BSSID and still return success 0 = Add, 1 = Update*/
1712 tANI_U8 action;
1713
1714 /* MAC Rate Set */
1715 tSirMacRateSet rateSet;
1716
1717 /*Enable/Disable HT capabilities of the BSS*/
1718 tANI_U8 htCapable;
1719
1720 // Enable/Disable OBSS protection
1721 tANI_U8 obssProtEnabled;
1722
1723 /*RMF enabled/disabled*/
1724 tANI_U8 rmfEnabled;
1725
1726 /*HT Operating Mode operating mode of the 802.11n STA*/
1727 tSirMacHTOperatingMode htOperMode;
1728
1729 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1730 tANI_U8 dualCTSProtection;
1731
1732 /* Probe Response Max retries */
1733 tANI_U8 ucMaxProbeRespRetryLimit;
1734
1735 /* To Enable Hidden ssid */
1736 tANI_U8 bHiddenSSIDEn;
1737
1738 /* To Enable Disable FW Proxy Probe Resp */
1739 tANI_U8 bProxyProbeRespEn;
1740
1741 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1742 EDCA params or might not desire to apply EDCA params during config BSS.
1743 0 implies Not Valid ; Non-Zero implies valid*/
1744 tANI_U8 edcaParamsValid;
1745
1746 /*EDCA Parameters for Best Effort Access Category*/
1747 tSirMacEdcaParamRecord acbe;
1748
1749 /*EDCA Parameters forBackground Access Category*/
1750 tSirMacEdcaParamRecord acbk;
1751
1752 /*EDCA Parameters for Video Access Category*/
1753 tSirMacEdcaParamRecord acvi;
1754
1755 /*EDCA Parameters for Voice Access Category*/
1756 tSirMacEdcaParamRecord acvo;
1757
1758#ifdef WLAN_FEATURE_VOWIFI_11R
1759 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1760 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1761#endif
1762
1763 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1764 tANI_U8 halPersona;
1765
1766 tANI_U8 bSpectrumMgtEnable;
1767
1768 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1769 tANI_S8 txMgmtPower;
1770 /*maxTxPower has max power to be used after applying the power constraint if any */
1771 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001772 /*Context of the station being added in HW
1773 Add a STA entry for "itself" -
1774 On AP - Add the AP itself in an "STA context"
1775 On STA - Add the AP to which this STA is joining in an "STA context" */
1776 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001777} tConfigBssParams, * tpConfigBssParams;
1778
1779
1780/*--------------------------------------------------------------------------
1781 * WLAN_HAL_CONFIG_BSS_REQ
1782 *--------------------------------------------------------------------------*/
1783typedef PACKED_PRE struct PACKED_POST
1784{
1785 /* BSSID */
1786 tSirMacAddr bssId;
1787
Jeff Johnsone7245742012-09-05 17:12:55 -07001788 /* Self Mac Address */
1789 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001790
1791 /* BSS type */
1792 tSirBssType bssType;
1793
1794 /*Operational Mode: AP =0, STA = 1*/
1795 tANI_U8 operMode;
1796
1797 /*Network Type*/
1798 tSirNwType nwType;
1799
1800 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1801 tANI_U8 shortSlotTimeSupported;
1802
1803 /*Co-exist with 11a STA*/
1804 tANI_U8 llaCoexist;
1805
1806 /*Co-exist with 11b STA*/
1807 tANI_U8 llbCoexist;
1808
1809 /*Co-exist with 11g STA*/
1810 tANI_U8 llgCoexist;
1811
1812 /*Coexistence with 11n STA*/
1813 tANI_U8 ht20Coexist;
1814
1815 /*Non GF coexist flag*/
1816 tANI_U8 llnNonGFCoexist;
1817
1818 /*TXOP protection support*/
1819 tANI_U8 fLsigTXOPProtectionFullSupport;
1820 /*RIFS mode*/
1821 tANI_U8 fRIFSMode;
1822
1823 /*Beacon Interval in TU*/
1824 tSirMacBeaconInterval beaconInterval;
1825
1826 /*DTIM period*/
1827 tANI_U8 dtimPeriod;
1828
1829 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1830 tANI_U8 txChannelWidthSet;
1831
1832 /*Operating channel*/
1833 tANI_U8 currentOperChannel;
1834
1835 /*Extension channel for channel bonding*/
1836 tANI_U8 currentExtChannel;
1837
1838 /*Reserved to align next field on a dword boundary*/
1839 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001840
1841 /*SSID of the BSS*/
1842 tSirMacSSid ssId;
1843
1844 /*HAL should update the existing BSS entry, if this flag is set.
1845 UMAC will set this flag in case of reassoc, where we want to resue the
1846 the old BSSID and still return success 0 = Add, 1 = Update*/
1847 tANI_U8 action;
1848
1849 /* MAC Rate Set */
1850 tSirMacRateSet rateSet;
1851
1852 /*Enable/Disable HT capabilities of the BSS*/
1853 tANI_U8 htCapable;
1854
1855 // Enable/Disable OBSS protection
1856 tANI_U8 obssProtEnabled;
1857
1858 /*RMF enabled/disabled*/
1859 tANI_U8 rmfEnabled;
1860
1861 /*HT Operating Mode operating mode of the 802.11n STA*/
1862 tSirMacHTOperatingMode htOperMode;
1863
1864 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1865 tANI_U8 dualCTSProtection;
1866
1867 /* Probe Response Max retries */
1868 tANI_U8 ucMaxProbeRespRetryLimit;
1869
1870 /* To Enable Hidden ssid */
1871 tANI_U8 bHiddenSSIDEn;
1872
1873 /* To Enable Disable FW Proxy Probe Resp */
1874 tANI_U8 bProxyProbeRespEn;
1875
Jeff Johnson32d95a32012-09-10 13:15:23 -07001876 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1877 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001878 0 implies Not Valid ; Non-Zero implies valid*/
1879 tANI_U8 edcaParamsValid;
1880
1881 /*EDCA Parameters for Best Effort Access Category*/
1882 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001883
Jeff Johnson295189b2012-06-20 16:38:30 -07001884 /*EDCA Parameters forBackground Access Category*/
1885 tSirMacEdcaParamRecord acbk;
1886
1887 /*EDCA Parameters for Video Access Category*/
1888 tSirMacEdcaParamRecord acvi;
1889
1890 /*EDCA Parameters for Voice Access Category*/
1891 tSirMacEdcaParamRecord acvo;
1892
1893#ifdef WLAN_FEATURE_VOWIFI_11R
1894 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1895 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1896#endif
1897
Jeff Johnson32d95a32012-09-10 13:15:23 -07001898 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001899 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001900
Jeff Johnson295189b2012-06-20 16:38:30 -07001901 tANI_U8 bSpectrumMgtEnable;
1902
1903 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1904 tANI_S8 txMgmtPower;
1905 /*maxTxPower has max power to be used after applying the power constraint if any */
1906 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001907 /*Context of the station being added in HW
1908 Add a STA entry for "itself" -
1909 On AP - Add the AP itself in an "STA context"
1910 On STA - Add the AP to which this STA is joining in an "STA context" */
1911 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001912
Jeff Johnsone7245742012-09-05 17:12:55 -07001913 tANI_U8 vhtCapable;
1914 tANI_U8 vhtTxChannelWidthSet;
1915} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001916
1917typedef PACKED_PRE struct PACKED_POST
1918{
1919 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001920 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001921 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001922 tConfigBssParams_V1 configBssParams_V1;
1923 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001924} tConfigBssReqMsg, *tpConfigBssReqMsg;
1925
1926/*---------------------------------------------------------------------------
1927 WLAN_HAL_CONFIG_BSS_RSP
1928---------------------------------------------------------------------------*/
1929
1930typedef PACKED_PRE struct PACKED_POST
1931{
1932 /* Success or Failure */
1933 tANI_U32 status;
1934
1935 /* BSS index allocated by HAL */
1936 tANI_U8 bssIdx;
1937
1938 /* DPU descriptor index for PTK */
1939 tANI_U8 dpuDescIndx;
1940
1941 /* PTK DPU signature */
1942 tANI_U8 ucastDpuSignature;
1943
1944 /* DPU descriptor index for GTK*/
1945 tANI_U8 bcastDpuDescIndx;
1946
1947 /* GTK DPU signature */
1948 tANI_U8 bcastDpuSignature;
1949
1950 /*DPU descriptor for IGTK*/
1951 tANI_U8 mgmtDpuDescIndx;
1952
1953 /* IGTK DPU signature */
1954 tANI_U8 mgmtDpuSignature;
1955
1956 /* Station Index for BSS entry*/
1957 tANI_U8 bssStaIdx;
1958
1959 /* Self station index for this BSS */
1960 tANI_U8 bssSelfStaIdx;
1961
1962 /* Bcast station for buffering bcast frames in AP role */
1963 tANI_U8 bssBcastStaIdx;
1964
1965 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1966 tSirMacAddr staMac;
1967
1968 /*HAL fills in the tx power used for mgmt frames in this field. */
1969 tANI_S8 txMgmtPower;
1970
1971} tConfigBssRspParams, * tpConfigBssRspParams;
1972
1973typedef PACKED_PRE struct PACKED_POST
1974{
1975 tHalMsgHeader header;
1976 tConfigBssRspParams configBssRspParams;
1977} tConfigBssRspMsg, *tpConfigBssRspMsg;
1978
1979/*---------------------------------------------------------------------------
1980 WLAN_HAL_DELETE_BSS_REQ
1981---------------------------------------------------------------------------*/
1982
1983typedef PACKED_PRE struct PACKED_POST
1984{
1985 /* BSS index to be deleted */
1986 tANI_U8 bssIdx;
1987
1988} tDeleteBssParams, *tpDeleteBssParams;
1989
1990typedef PACKED_PRE struct PACKED_POST
1991{
1992 tHalMsgHeader header;
1993 tDeleteBssParams deleteBssParams;
1994} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1995
1996/*---------------------------------------------------------------------------
1997 WLAN_HAL_DELETE_BSS_RSP
1998---------------------------------------------------------------------------*/
1999
2000typedef PACKED_PRE struct PACKED_POST
2001{
2002 /* Success or Failure */
2003 tANI_U32 status;
2004
2005 /* BSS index that has been deleted */
2006 tANI_U8 bssIdx;
2007
2008} tDeleteBssRspParams, *tpDeleteBssRspParams;
2009
2010typedef PACKED_PRE struct PACKED_POST
2011{
2012 tHalMsgHeader header;
2013 tDeleteBssRspParams deleteBssRspParams;
2014} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2015
2016/*---------------------------------------------------------------------------
2017 WLAN_HAL_JOIN_REQ
2018---------------------------------------------------------------------------*/
2019
2020typedef PACKED_PRE struct PACKED_POST
2021{
2022 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002023 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002024
2025 /*Indicates the channel to switch to.*/
2026 tANI_U8 ucChannel;
2027
2028 /* Self STA MAC */
2029 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002030
Jeff Johnson295189b2012-06-20 16:38:30 -07002031 /*Local power constraint*/
2032 tANI_U8 ucLocalPowerConstraint;
2033
2034 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002035 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002036
2037 /*link State*/
2038 tSirLinkState linkState;
2039
2040 /* Max TX power */
2041 tANI_S8 maxTxPower;
2042
2043} tHalJoinReqParams, *tpHalJoinReqParams;
2044
2045typedef PACKED_PRE struct PACKED_POST
2046{
2047 tHalMsgHeader header;
2048 tHalJoinReqParams joinReqParams;
2049} tHalJoinReqMsg, *tpHalJoinReqMsg;
2050
2051/*---------------------------------------------------------------------------
2052 WLAN_HAL_JOIN_RSP
2053---------------------------------------------------------------------------*/
2054
2055typedef PACKED_PRE struct PACKED_POST
2056{
2057 /*success or failure */
2058 tANI_U32 status;
2059
2060 /* HAL fills in the tx power used for mgmt frames in this field */
2061 tPowerdBm txMgmtPower;
2062
2063}tHalJoinRspParams, *tpHalJoinRspParams;
2064
2065typedef PACKED_PRE struct PACKED_POST
2066{
2067 tHalMsgHeader header;
2068 tHalJoinRspParams joinRspParams;
2069}tHalJoinRspMsg, *tpHalJoinRspMsg;
2070
2071/*---------------------------------------------------------------------------
2072 WLAN_HAL_POST_ASSOC_REQ
2073---------------------------------------------------------------------------*/
2074
2075typedef PACKED_PRE struct PACKED_POST
2076{
2077 tConfigStaParams configStaParams;
2078 tConfigBssParams configBssParams;
2079} tPostAssocReqParams, *tpPostAssocReqParams;
2080
2081typedef PACKED_PRE struct PACKED_POST
2082{
2083 tHalMsgHeader header;
2084 tPostAssocReqParams postAssocReqParams;
2085} tPostAssocReqMsg, *tpPostAssocReqMsg;
2086
2087/*---------------------------------------------------------------------------
2088 WLAN_HAL_POST_ASSOC_RSP
2089---------------------------------------------------------------------------*/
2090
2091typedef PACKED_PRE struct PACKED_POST
2092{
2093 tConfigStaRspParams configStaRspParams;
2094 tConfigBssRspParams configBssRspParams;
2095} tPostAssocRspParams, *tpPostAssocRspParams;
2096
2097typedef PACKED_PRE struct PACKED_POST
2098{
2099 tHalMsgHeader header;
2100 tPostAssocRspParams postAssocRspParams;
2101} tPostAssocRspMsg, *tpPostAssocRspMsg;
2102
2103/*---------------------------------------------------------------------------
2104 WLAN_HAL_SET_BSSKEY_REQ
2105---------------------------------------------------------------------------*/
2106
2107/*
2108 * This is used by PE to create a set of WEP keys for a given BSS.
2109 */
2110typedef PACKED_PRE struct PACKED_POST
2111{
2112 /*BSS Index of the BSS*/
2113 tANI_U8 bssIdx;
2114
2115 /*Encryption Type used with peer*/
2116 tAniEdType encType;
2117
2118 /*Number of keys*/
2119 tANI_U8 numKeys;
2120
2121 /*Array of keys.*/
2122 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002123
Jeff Johnson295189b2012-06-20 16:38:30 -07002124 /*Control for Replay Count, 1= Single TID based replay count on Tx
2125 0 = Per TID based replay count on TX */
2126 tANI_U8 singleTidRc;
2127} tSetBssKeyParams, *tpSetBssKeyParams;
2128
2129typedef PACKED_PRE struct PACKED_POST
2130{
2131 tHalMsgHeader header;
2132 tSetBssKeyParams setBssKeyParams;
2133} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2134
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002135/* tagged version of set bss key */
2136typedef PACKED_PRE struct PACKED_POST
2137{
2138 tSetBssKeyReqMsg Msg;
2139 uint32 Tag;
2140} tSetBssKeyReqMsgTagged;
2141
Jeff Johnson295189b2012-06-20 16:38:30 -07002142/*---------------------------------------------------------------------------
2143 WLAN_HAL_SET_BSSKEY_RSP
2144---------------------------------------------------------------------------*/
2145typedef PACKED_PRE struct PACKED_POST
2146{
2147 /*success or failure */
2148 tANI_U32 status;
2149
2150} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2151
2152typedef PACKED_PRE struct PACKED_POST
2153{
2154 tHalMsgHeader header;
2155 tSetBssKeyRspParams setBssKeyRspParams;
2156} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2157
2158/*---------------------------------------------------------------------------
2159 WLAN_HAL_SET_STAKEY_REQ,
2160---------------------------------------------------------------------------*/
2161
2162/*
2163 * This is used by PE to configure the key information on a given station.
2164 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2165 * a preconfigured key from a BSS the station assoicated with; otherwise
2166 * a new key descriptor is created based on the key field.
2167 */
2168
2169typedef PACKED_PRE struct PACKED_POST
2170{
2171 tHalMsgHeader header;
2172 tSetStaKeyParams setStaKeyParams;
2173} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2174
2175/*---------------------------------------------------------------------------
2176 WLAN_HAL_SET_STAKEY_RSP,
2177---------------------------------------------------------------------------*/
2178typedef PACKED_PRE struct PACKED_POST
2179{
2180 /*success or failure */
2181 tANI_U32 status;
2182
2183} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2184
2185typedef PACKED_PRE struct PACKED_POST
2186{
2187 tHalMsgHeader header;
2188 tSetStaKeyRspParams setStaKeyRspParams;
2189} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2190
2191/*---------------------------------------------------------------------------
2192 WLAN_HAL_RMV_BSSKEY_REQ,
2193---------------------------------------------------------------------------*/
2194/*
2195 * This is used by PE to remove keys for a given BSS.
2196 */
2197typedef PACKED_PRE struct PACKED_POST
2198
2199{
2200 /*BSS Index of the BSS*/
2201 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002202
Jeff Johnson295189b2012-06-20 16:38:30 -07002203 /*Encryption Type used with peer*/
2204 tAniEdType encType;
2205
2206 /*Key Id*/
2207 tANI_U8 keyId;
2208
2209 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2210 tAniWepType wepType;
2211
2212} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2213
2214typedef PACKED_PRE struct PACKED_POST
2215{
2216 tHalMsgHeader header;
2217 tRemoveBssKeyParams removeBssKeyParams;
2218} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2219
2220/*---------------------------------------------------------------------------
2221 WLAN_HAL_RMV_BSSKEY_RSP,
2222---------------------------------------------------------------------------*/
2223typedef PACKED_PRE struct PACKED_POST
2224{
2225 /*success or failure */
2226 tANI_U32 status;
2227
2228} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2229
2230typedef PACKED_PRE struct PACKED_POST
2231{
2232 tHalMsgHeader header;
2233 tRemoveBssKeyRspParams removeBssKeyRspParams;
2234} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2235
2236/*---------------------------------------------------------------------------
2237 WLAN_HAL_RMV_STAKEY_REQ,
2238---------------------------------------------------------------------------*/
2239/*
2240 * This is used by PE to Remove the key information on a given station.
2241 */
2242typedef PACKED_PRE struct PACKED_POST
2243{
2244 /*STA Index*/
2245 tANI_U16 staIdx;
2246
2247 /*Encryption Type used with peer*/
2248 tAniEdType encType;
2249
2250 /*Key Id*/
2251 tANI_U8 keyId;
2252
2253 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2254 the same key is used for both broadcast and unicast.*/
2255 tANI_BOOLEAN unicast;
2256
2257} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2258
2259typedef PACKED_PRE struct PACKED_POST
2260{
2261 tHalMsgHeader header;
2262 tRemoveStaKeyParams removeStaKeyParams;
2263} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2264
2265/*---------------------------------------------------------------------------
2266 WLAN_HAL_RMV_STAKEY_RSP,
2267---------------------------------------------------------------------------*/
2268typedef PACKED_PRE struct PACKED_POST
2269{
2270 /*success or failure */
2271 tANI_U32 status;
2272} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2273
2274typedef PACKED_PRE struct PACKED_POST
2275{
2276 tHalMsgHeader header;
2277 tRemoveStaKeyRspParams removeStaKeyRspParams;
2278} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2279
Jeff Johnsone7245742012-09-05 17:12:55 -07002280#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002281
Jeff Johnsone7245742012-09-05 17:12:55 -07002282#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002283#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002284#endif
2285
2286#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002287#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002288#endif
2289
2290/*-------------------------------------------------------------------------
2291WLAN_HAL_START_OEM_DATA_REQ
2292--------------------------------------------------------------------------*/
2293typedef PACKED_PRE struct PACKED_POST
2294{
2295 tANI_U32 status;
2296 tSirMacAddr selfMacAddr;
2297 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2298} tStartOemDataReqParams, *tpStartOemDataReqParams;
2299
2300typedef PACKED_PRE struct PACKED_POST
2301{
2302 tHalMsgHeader header;
2303 tStartOemDataReqParams startOemDataReqParams;
2304} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2305
2306/*-------------------------------------------------------------------------
2307WLAN_HAL_START_OEM_DATA_RSP
2308--------------------------------------------------------------------------*/
2309
2310typedef PACKED_PRE struct PACKED_POST
2311{
2312 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2313} tStartOemDataRspParams, *tpStartOemDataRspParams;
2314
2315typedef PACKED_PRE struct PACKED_POST
2316{
2317 tHalMsgHeader header;
2318 tStartOemDataRspParams startOemDataRspParams;
2319} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2320
2321#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002322
2323
2324
2325/*---------------------------------------------------------------------------
2326WLAN_HAL_CH_SWITCH_REQ
2327---------------------------------------------------------------------------*/
2328
2329typedef PACKED_PRE struct PACKED_POST
2330{
2331 /* Channel number */
2332 tANI_U8 channelNumber;
2333
2334 /* Local power constraint */
2335 tANI_U8 localPowerConstraint;
2336
2337 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002338 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002339
2340 //HAL fills in the tx power used for mgmt frames in this field.
2341 tPowerdBm txMgmtPower;
2342
2343 /* Max TX power */
2344 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002345
Jeff Johnson295189b2012-06-20 16:38:30 -07002346 /* Self STA MAC */
2347 tSirMacAddr selfStaMacAddr;
2348
2349 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2350 this should be applied only to that session*/
2351 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2352 * bssid needs to be out of the VOWifi feature flag */
2353 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2354 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2355 */
2356 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002357
Jeff Johnson295189b2012-06-20 16:38:30 -07002358}tSwitchChannelParams, *tpSwitchChannelParams;
2359
2360typedef PACKED_PRE struct PACKED_POST
2361{
2362 tHalMsgHeader header;
2363 tSwitchChannelParams switchChannelParams;
2364} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2365
2366/*---------------------------------------------------------------------------
2367WLAN_HAL_CH_SWITCH_RSP
2368---------------------------------------------------------------------------*/
2369
2370typedef PACKED_PRE struct PACKED_POST
2371{
2372 /* Status */
2373 tANI_U32 status;
2374
2375 /* Channel number - same as in request*/
2376 tANI_U8 channelNumber;
2377
2378 /* HAL fills in the tx power used for mgmt frames in this field */
2379 tPowerdBm txMgmtPower;
2380
2381 /* BSSID needed to identify session - same as in request*/
2382 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002383
Jeff Johnson295189b2012-06-20 16:38:30 -07002384}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2385
2386typedef PACKED_PRE struct PACKED_POST
2387{
2388 tHalMsgHeader header;
2389 tSwitchChannelRspParams switchChannelRspParams;
2390} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2391
2392/*---------------------------------------------------------------------------
2393WLAN_HAL_UPD_EDCA_PARAMS_REQ
2394---------------------------------------------------------------------------*/
2395
2396typedef PACKED_PRE struct PACKED_POST
2397{
2398 /*BSS Index*/
2399 tANI_U16 bssIdx;
2400
2401 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002402 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002403
2404 /* Background */
2405 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002406
Jeff Johnson295189b2012-06-20 16:38:30 -07002407 /* Video */
2408 tSirMacEdcaParamRecord acvi;
2409
2410 /* Voice */
2411 tSirMacEdcaParamRecord acvo;
2412
2413} tEdcaParams, *tpEdcaParams;
2414
2415typedef PACKED_PRE struct PACKED_POST
2416{
2417 tHalMsgHeader header;
2418 tEdcaParams edcaParams;
2419} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2420
2421/*---------------------------------------------------------------------------
2422WLAN_HAL_UPD_EDCA_PARAMS_RSP
2423---------------------------------------------------------------------------*/
2424typedef PACKED_PRE struct PACKED_POST
2425{
2426 /*success or failure */
2427 tANI_U32 status;
2428} tEdcaRspParams, *tpEdcaRspParams;
2429
2430typedef PACKED_PRE struct PACKED_POST
2431{
2432 tHalMsgHeader header;
2433 tEdcaRspParams edcaRspParams;
2434} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2435
2436
2437
2438/*---------------------------------------------------------------------------
2439 * WLAN_HAL_GET_STATS_REQ
2440 *--------------------------------------------------------------------------*/
2441typedef PACKED_PRE struct PACKED_POST
2442
2443{
2444 /* Index of STA to which the statistics */
2445 tANI_U16 staIdx;
2446
2447 /* Encryption mode */
2448 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002449
Jeff Johnson295189b2012-06-20 16:38:30 -07002450 /* status */
2451 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002452
Jeff Johnson295189b2012-06-20 16:38:30 -07002453 /* Statistics */
2454 tANI_U32 sendBlocks;
2455 tANI_U32 recvBlocks;
2456 tANI_U32 replays;
2457 tANI_U8 micErrorCnt;
2458 tANI_U32 protExclCnt;
2459 tANI_U16 formatErrCnt;
2460 tANI_U16 unDecryptableCnt;
2461 tANI_U32 decryptErrCnt;
2462 tANI_U32 decryptOkCnt;
2463} tDpuStatsParams, * tpDpuStatsParams;
2464
2465typedef PACKED_PRE struct PACKED_POST
2466{
2467 /* Valid STA Idx for per STA stats request */
2468 tANI_U32 staId;
2469
2470 /* Categories of stats requested as specified in eHalStatsMask*/
2471 tANI_U32 statsMask;
2472}tHalStatsReqParams, *tpHalStatsReqParams;
2473
2474typedef PACKED_PRE struct PACKED_POST
2475{
2476 tHalMsgHeader header;
2477 tHalStatsReqParams statsReqParams;
2478} tHalStatsReqMsg, *tpHalStatsReqMsg;
2479
2480/*---------------------------------------------------------------------------
2481 * WLAN_HAL_GET_STATS_RSP
2482 *--------------------------------------------------------------------------*/
2483
2484typedef PACKED_PRE struct PACKED_POST
2485{
2486 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2487 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2488 // station successfully transmitted after more than one retransmission attempt
2489
Jeff Johnson32d95a32012-09-10 13:15:23 -07002490 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2491 //(with and without retries, including multi-cast, broadcast)
2492 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2493 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002494 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2495 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2496 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2497 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 -07002498 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2499 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 -07002500 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2501 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 -07002502 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2503 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002504 //to provide this.
2505}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2506
2507
2508// defines tx_rate_flags
2509typedef enum eTxRateInfo
2510{
2511 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2512 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2513 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2514 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2515 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2516} tTxrateinfoflags;
2517
2518
2519typedef PACKED_PRE struct PACKED_POST
2520{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002521 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 -07002522 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002523 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 -07002524 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002525 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2526 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002527 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002528 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2529 //for eg: if it is 10.5dBm, the value would be 105
2530 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2531 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002532
Jeff Johnson32d95a32012-09-10 13:15:23 -07002533 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2534 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002535 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002536 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2537 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002538}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2539
2540typedef PACKED_PRE struct PACKED_POST
2541{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002542 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2543 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002544 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002545 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 -07002546 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002547 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 -07002548 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002549 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 -07002550 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002551 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 -07002552 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002553 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 -07002554 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002555 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 -07002556 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002557 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 -07002558 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002559 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 -07002560 //decrypted
2561 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2562
2563}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002564
Jeff Johnson295189b2012-06-20 16:38:30 -07002565typedef PACKED_PRE struct PACKED_POST
2566{
2567 tAniGlobalSecurityStats ucStats;
2568 tAniGlobalSecurityStats mcbcStats;
2569}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2570
2571typedef PACKED_PRE struct PACKED_POST
2572{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002573 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2574 //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 -07002575 //address 1 field
2576 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 -07002577 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 -07002578 //primary channel
2579 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 -07002580 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 -07002581 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002582 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2583 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002584 //decoded correctly
2585}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2586
2587typedef PACKED_PRE struct PACKED_POST
2588{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002589 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 -07002590 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002591 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2592 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 -07002593 //is transmitted
2594}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2595
2596typedef PACKED_PRE struct PACKED_POST
2597{
2598 /* Success or Failure */
2599 tANI_U32 status;
2600
2601 /* STA Idx */
2602 tANI_U32 staId;
2603
2604 /* Categories of STATS being returned as per eHalStatsMask*/
2605 tANI_U32 statsMask;
2606
2607 /* message type is same as the request type */
2608 tANI_U16 msgType;
2609
2610 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002611 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002612
2613} tHalStatsRspParams, *tpHalStatsRspParams;
2614
2615
2616
2617typedef PACKED_PRE struct PACKED_POST
2618{
2619 tHalMsgHeader header;
2620 tHalStatsRspParams statsRspParams;
2621} tHalStatsRspMsg, *tpHalStatsRspMsg;
2622
2623/*---------------------------------------------------------------------------
2624 * WLAN_HAL_SET_LINK_ST_REQ
2625 *--------------------------------------------------------------------------*/
2626typedef PACKED_PRE struct PACKED_POST
2627{
2628 tSirMacAddr bssid;
2629 tSirLinkState state;
2630 tSirMacAddr selfMacAddr;
2631} tLinkStateParams, *tpLinkStateParams;
2632
2633typedef PACKED_PRE struct PACKED_POST
2634{
2635 tHalMsgHeader header;
2636 tLinkStateParams linkStateParams;
2637} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2638
2639/*---------------------------------------------------------------------------
2640 * WLAN_HAL_SET_LINK_ST_RSP
2641 *--------------------------------------------------------------------------*/
2642
2643typedef PACKED_PRE struct PACKED_POST
2644{
2645 /*success or failure */
2646 tANI_U32 status;
2647} tLinkStateRspParams, *tpLinkStateRspParams;
2648
2649typedef PACKED_PRE struct PACKED_POST
2650{
2651 tHalMsgHeader header;
2652 tLinkStateRspParams linkStateRspParams;
2653} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2654
2655/*---------------------------------------------------------------------------
2656 * WLAN_HAL_ADD_TS_REQ
2657 *--------------------------------------------------------------------------*/
2658
2659/* TSPEC Params */
2660typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2661{
2662#ifndef ANI_LITTLE_BIT_ENDIAN
2663 tANI_U16 ackPolicy : 2;
2664 tANI_U16 userPrio : 3;
2665 tANI_U16 psb : 1;
2666 tANI_U16 aggregation : 1;
2667 tANI_U16 accessPolicy : 2;
2668 tANI_U16 direction : 2;
2669 tANI_U16 tsid : 4;
2670 tANI_U16 trafficType : 1;
2671#else
2672 tANI_U16 trafficType : 1;
2673 tANI_U16 tsid : 4;
2674 tANI_U16 direction : 2;
2675 tANI_U16 accessPolicy : 2;
2676 tANI_U16 aggregation : 1;
2677 tANI_U16 psb : 1;
2678 tANI_U16 userPrio : 3;
2679 tANI_U16 ackPolicy : 2;
2680#endif
2681} __ani_attr_packed tSirMacTSInfoTfc;
2682
2683/* Flag to schedule the traffic type */
2684typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2685{
2686#ifndef ANI_LITTLE_BIT_ENDIAN
2687 tANI_U8 rsvd : 7;
2688 tANI_U8 schedule : 1;
2689#else
2690 tANI_U8 schedule : 1;
2691 tANI_U8 rsvd : 7;
2692#endif
2693} __ani_attr_packed tSirMacTSInfoSch;
2694
2695/* Traffic and scheduling info */
2696typedef __ani_attr_pre_packed struct sSirMacTSInfo
2697{
2698 tSirMacTSInfoTfc traffic;
2699 tSirMacTSInfoSch schedule;
2700} __ani_attr_packed tSirMacTSInfo;
2701
2702/* Information elements */
2703typedef __ani_attr_pre_packed struct sSirMacTspecIE
2704{
2705 tANI_U8 type;
2706 tANI_U8 length;
2707 tSirMacTSInfo tsinfo;
2708 tANI_U16 nomMsduSz;
2709 tANI_U16 maxMsduSz;
2710 tANI_U32 minSvcInterval;
2711 tANI_U32 maxSvcInterval;
2712 tANI_U32 inactInterval;
2713 tANI_U32 suspendInterval;
2714 tANI_U32 svcStartTime;
2715 tANI_U32 minDataRate;
2716 tANI_U32 meanDataRate;
2717 tANI_U32 peakDataRate;
2718 tANI_U32 maxBurstSz;
2719 tANI_U32 delayBound;
2720 tANI_U32 minPhyRate;
2721 tANI_U16 surplusBw;
2722 tANI_U16 mediumTime;
2723}__ani_attr_packed tSirMacTspecIE;
2724
2725typedef PACKED_PRE struct PACKED_POST
2726{
2727 /* Station Index */
2728 tANI_U16 staIdx;
2729
2730 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2731 tANI_U16 tspecIdx;
2732
2733 /* To program TPE with required parameters */
2734 tSirMacTspecIE tspec;
2735
2736 /* U-APSD Flags: 1b per AC. Encoded as follows:
2737 b7 b6 b5 b4 b3 b2 b1 b0 =
2738 X X X X BE BK VI VO */
2739 tANI_U8 uAPSD;
2740
2741 /* These parameters are for all the access categories */
2742 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2743 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2744 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002745
Jeff Johnson295189b2012-06-20 16:38:30 -07002746} tAddTsParams, *tpAddTsParams;
2747
2748typedef PACKED_PRE struct PACKED_POST
2749{
2750 tHalMsgHeader header;
2751 tAddTsParams addTsParams;
2752} tAddTsReqMsg, *tpAddTsReqMsg;
2753
2754/*---------------------------------------------------------------------------
2755 * WLAN_HAL_ADD_TS_RSP
2756 *--------------------------------------------------------------------------*/
2757
2758typedef PACKED_PRE struct PACKED_POST
2759{
2760 /*success or failure */
2761 tANI_U32 status;
2762} tAddTsRspParams, *tpAddTsRspParams;
2763
2764typedef PACKED_PRE struct PACKED_POST
2765{
2766 tHalMsgHeader header;
2767 tAddTsRspParams addTsRspParams;
2768} tAddTsRspMsg, *tpAddTsRspMsg;
2769
2770
2771/*---------------------------------------------------------------------------
2772 * WLAN_HAL_DEL_TS_REQ
2773 *--------------------------------------------------------------------------*/
2774
2775typedef PACKED_PRE struct PACKED_POST
2776{
2777 /* Station Index */
2778 tANI_U16 staIdx;
2779
2780 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2781 tANI_U16 tspecIdx;
2782
2783 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002784 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002785
2786} tDelTsParams, *tpDelTsParams;
2787
2788typedef PACKED_PRE struct PACKED_POST
2789{
2790 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002791 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002792} tDelTsReqMsg, *tpDelTsReqMsg;
2793
2794/*---------------------------------------------------------------------------
2795 * WLAN_HAL_DEL_TS_RSP
2796 *--------------------------------------------------------------------------*/
2797
2798typedef PACKED_PRE struct PACKED_POST
2799{
2800 /*success or failure */
2801 tANI_U32 status;
2802} tDelTsRspParams, *tpDelTsRspParams;
2803
2804typedef PACKED_PRE struct PACKED_POST
2805{
2806 tHalMsgHeader header;
2807 tDelTsRspParams delTsRspParams;
2808} tDelTsRspMsg, *tpDelTsRspMsg;
2809
2810/* End of TSpec Parameters */
2811
2812/* Start of BLOCK ACK related Parameters */
2813
2814/*---------------------------------------------------------------------------
2815 * WLAN_HAL_ADD_BA_SESSION_REQ
2816 *--------------------------------------------------------------------------*/
2817
2818typedef PACKED_PRE struct PACKED_POST
2819{
2820 /* Station Index */
2821 tANI_U16 staIdx;
2822
2823 /* Peer MAC Address */
2824 tSirMacAddr peerMacAddr;
2825
2826 /* ADDBA Action Frame dialog token
2827 HAL will not interpret this object */
2828 tANI_U8 baDialogToken;
2829
2830 /* TID for which the BA is being setup
2831 This identifies the TC or TS of interest */
2832 tANI_U8 baTID;
2833
2834 /* 0 - Delayed BA (Not supported)
2835 1 - Immediate BA */
2836 tANI_U8 baPolicy;
2837
2838 /* Indicates the number of buffers for this TID (baTID)
2839 NOTE - This is the requested buffer size. When this
2840 is processed by HAL and subsequently by HDD, it is
2841 possible that HDD may change this buffer size. Any
2842 change in the buffer size should be noted by PE and
2843 advertized appropriately in the ADDBA response */
2844 tANI_U16 baBufferSize;
2845
2846 /* BA timeout in TU's 0 means no timeout will occur */
2847 tANI_U16 baTimeout;
2848
2849 /* b0..b3 - Fragment Number - Always set to 0
2850 b4..b15 - Starting Sequence Number of first MSDU
2851 for which this BA is setup */
2852 tANI_U16 baSSN;
2853
2854 /* ADDBA direction
2855 1 - Originator
2856 0 - Recipient */
2857 tANI_U8 baDirection;
2858} tAddBASessionParams, *tpAddBASessionParams;
2859
2860typedef PACKED_PRE struct PACKED_POST
2861{
2862 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002863 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002864}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2865
2866/*---------------------------------------------------------------------------
2867 * WLAN_HAL_ADD_BA_SESSION_RSP
2868 *--------------------------------------------------------------------------*/
2869
2870typedef PACKED_PRE struct PACKED_POST
2871{
2872 /*success or failure */
2873 tANI_U32 status;
2874
2875 /* Dialog token */
2876 tANI_U8 baDialogToken;
2877
2878 /* TID for which the BA session has been setup */
2879 tANI_U8 baTID;
2880
2881 /* BA Buffer Size allocated for the current BA session */
2882 tANI_U8 baBufferSize;
2883
2884 tANI_U8 baSessionID;
2885
2886 /* Reordering Window buffer */
2887 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002888
Jeff Johnson295189b2012-06-20 16:38:30 -07002889 /*Station Index to id the sta */
2890 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002891
Jeff Johnson295189b2012-06-20 16:38:30 -07002892 /* Starting Sequence Number */
2893 tANI_U16 SSN;
2894} tAddBASessionRspParams, *tpAddBASessionRspParams;
2895
2896typedef PACKED_PRE struct PACKED_POST
2897{
2898 tHalMsgHeader header;
2899 tAddBASessionRspParams addBASessionRspParams;
2900} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2901
2902/*---------------------------------------------------------------------------
2903 * WLAN_HAL_ADD_BA_REQ
2904 *--------------------------------------------------------------------------*/
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 /* Session Id */
2909 tANI_U8 baSessionID;
2910
2911 /* Reorder Window Size */
2912 tANI_U8 winSize;
2913
2914#ifdef FEATURE_ON_CHIP_REORDERING
2915 tANI_BOOLEAN isReorderingDoneOnChip;
2916#endif
2917} tAddBAParams, *tpAddBAParams;
2918
2919typedef PACKED_PRE struct PACKED_POST
2920{
2921 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002922 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002923} tAddBAReqMsg, *tpAddBAReqMsg;
2924
2925
2926/*---------------------------------------------------------------------------
2927 * WLAN_HAL_ADD_BA_RSP
2928 *--------------------------------------------------------------------------*/
2929
2930typedef PACKED_PRE struct PACKED_POST
2931{
2932 /*success or failure */
2933 tANI_U32 status;
2934
2935 /* Dialog token */
2936 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002937
Jeff Johnson295189b2012-06-20 16:38:30 -07002938} tAddBARspParams, *tpAddBARspParams;
2939
2940typedef PACKED_PRE struct PACKED_POST
2941{
2942 tHalMsgHeader header;
2943 tAddBARspParams addBARspParams;
2944} tAddBARspMsg, *tpAddBARspMsg;
2945
2946
2947/*---------------------------------------------------------------------------
2948 * WLAN_HAL_TRIGGER_BA_REQ
2949 *--------------------------------------------------------------------------*/
2950
2951
2952typedef struct sAddBaInfo
2953{
2954 tANI_U16 fBaEnable : 1;
2955 tANI_U16 startingSeqNum: 12;
2956 tANI_U16 reserved : 3;
2957}tAddBaInfo, *tpAddBaInfo;
2958
2959typedef struct sTriggerBaRspCandidate
2960{
2961 tSirMacAddr staAddr;
2962 tAddBaInfo baInfo[STACFG_MAX_TC];
2963}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2964
2965typedef struct sTriggerBaCandidate
2966{
2967 tANI_U8 staIdx;
2968 tANI_U8 tidBitmap;
2969}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2970
2971typedef PACKED_PRE struct PACKED_POST
2972{
2973 /* Session Id */
2974 tANI_U8 baSessionID;
2975
Jeff Johnson32d95a32012-09-10 13:15:23 -07002976 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002977 * Candidate List(tTriggerBaCandidate)
2978 */
2979 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002980
Jeff Johnson295189b2012-06-20 16:38:30 -07002981} tTriggerBAParams, *tpTriggerBAParams;
2982
2983typedef PACKED_PRE struct PACKED_POST
2984{
2985 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002986 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002987} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2988
2989
2990/*---------------------------------------------------------------------------
2991 * WLAN_HAL_TRIGGER_BA_RSP
2992 *--------------------------------------------------------------------------*/
2993
2994typedef PACKED_PRE struct PACKED_POST
2995{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002996
Jeff Johnson295189b2012-06-20 16:38:30 -07002997 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002998 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002999
3000 /* success or failure */
3001 tANI_U32 status;
3002
Jeff Johnson32d95a32012-09-10 13:15:23 -07003003 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003004 * Rsp Candidate List(tTriggerRspBaCandidate)
3005 */
3006 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003007
Jeff Johnson295189b2012-06-20 16:38:30 -07003008
3009} tTriggerBARspParams, *tpTriggerBARspParams;
3010
3011typedef PACKED_PRE struct PACKED_POST
3012{
3013 tHalMsgHeader header;
3014 tTriggerBARspParams triggerBARspParams;
3015} tTriggerBARspMsg, *tpTriggerBARspMsg;
3016
3017/*---------------------------------------------------------------------------
3018 * WLAN_HAL_DEL_BA_REQ
3019 *--------------------------------------------------------------------------*/
3020
3021typedef PACKED_PRE struct PACKED_POST
3022{
3023 /* Station Index */
3024 tANI_U16 staIdx;
3025
3026 /* TID for which the BA session is being deleted */
3027 tANI_U8 baTID;
3028
3029 /* DELBA direction
3030 1 - Originator
3031 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003032 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003033} tDelBAParams, *tpDelBAParams;
3034
3035typedef PACKED_PRE struct PACKED_POST
3036{
3037 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003038 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003039} tDelBAReqMsg, *tpDelBAReqMsg;
3040
3041/*---------------------------------------------------------------------------
3042 * WLAN_HAL_DEL_BA_RSP
3043 *--------------------------------------------------------------------------*/
3044
3045typedef PACKED_PRE struct PACKED_POST
3046{
3047 /* success or failure */
3048 tANI_U32 status;
3049} tDelBARspParams, *tpDelBARspParams;
3050
3051typedef PACKED_PRE struct PACKED_POST
3052{
3053 tHalMsgHeader header;
3054 tDelBARspParams delBARspParams;
3055} tDelBARspMsg, *tpDelBARspMsg;
3056
3057
3058#ifdef FEATURE_WLAN_CCX
3059
3060/*---------------------------------------------------------------------------
3061 * WLAN_HAL_TSM_STATS_REQ
3062 *--------------------------------------------------------------------------*/
3063typedef PACKED_PRE struct PACKED_POST
3064{
3065 /* Traffic Id */
3066 tANI_U8 tsmTID;
3067
3068 tSirMacAddr bssId;
3069} tTsmStatsParams, *tpTsmStatsParams;
3070
3071typedef PACKED_PRE struct PACKED_POST
3072{
3073 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003074 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003075} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3076
3077
3078/*---------------------------------------------------------------------------
3079 * WLAN_HAL_TSM_STATS_RSP
3080 *--------------------------------------------------------------------------*/
3081typedef PACKED_PRE struct PACKED_POST
3082{
3083 /*success or failure */
3084 tANI_U32 status;
3085
Jeff Johnson32d95a32012-09-10 13:15:23 -07003086 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003087 tANI_U16 UplinkPktQueueDly;
3088
Jeff Johnson32d95a32012-09-10 13:15:23 -07003089 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003090 tANI_U16 UplinkPktQueueDlyHist[4];
3091
Jeff Johnson32d95a32012-09-10 13:15:23 -07003092 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003093 tANI_U32 UplinkPktTxDly;
3094
Jeff Johnson32d95a32012-09-10 13:15:23 -07003095 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003096 tANI_U16 UplinkPktLoss;
3097
Jeff Johnson32d95a32012-09-10 13:15:23 -07003098 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003099 tANI_U16 UplinkPktCount;
3100
Jeff Johnson32d95a32012-09-10 13:15:23 -07003101 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003102 tANI_U8 RoamingCount;
3103
Jeff Johnson32d95a32012-09-10 13:15:23 -07003104 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003105 tANI_U16 RoamingDly;
3106} tTsmStatsRspParams, *tpTsmStatsRspParams;
3107
3108typedef PACKED_PRE struct PACKED_POST
3109{
3110 tHalMsgHeader header;
3111 tTsmStatsRspParams tsmStatsRspParams;
3112} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3113
3114
3115#endif
3116
3117/*---------------------------------------------------------------------------
3118 * WLAN_HAL_SET_KEYDONE_MSG
3119 *--------------------------------------------------------------------------*/
3120
3121typedef PACKED_PRE struct PACKED_POST
3122{
3123 /*bssid of the keys */
3124 tANI_U8 bssidx;
3125 tANI_U8 encType;
3126} tSetKeyDoneParams, *tpSetKeyDoneParams;
3127
3128typedef PACKED_PRE struct PACKED_POST
3129{
3130 tHalMsgHeader header;
3131 tSetKeyDoneParams setKeyDoneParams;
3132} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3133
3134/*---------------------------------------------------------------------------
3135 * WLAN_HAL_DOWNLOAD_NV_REQ
3136 *--------------------------------------------------------------------------*/
3137typedef PACKED_PRE struct PACKED_POST
3138{
3139 /* Fragment sequence number of the NV Image. Note that NV Image might not
3140 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003141 * can hence choose to chop the NV blob into multiple fragments starting with
3142 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003143 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3144 * concatenated together by HAL without any padding bytes in between.*/
3145 tANI_U16 fragNumber;
3146
3147 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003148 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003149 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3150 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3151 tANI_U16 isLastFragment;
3152
3153 /* NV Image size (number of bytes) */
3154 tANI_U32 nvImgBufferSize;
3155
3156 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3157 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3158} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3159
3160typedef PACKED_PRE struct PACKED_POST
3161{
3162 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3163 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3164 tHalMsgHeader header;
3165 tHalNvImgDownloadReqParams nvImageReqParams;
3166} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3167
3168/*---------------------------------------------------------------------------
3169 * WLAN_HAL_DOWNLOAD_NV_RSP
3170 *--------------------------------------------------------------------------*/
3171typedef PACKED_PRE struct PACKED_POST
3172{
3173 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3174 * after each fragment */
3175 tANI_U32 status;
3176} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3177
3178typedef PACKED_PRE struct PACKED_POST
3179{
3180 tHalMsgHeader header;
3181 tHalNvImgDownloadRspParams nvImageRspParams;
3182} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3183
3184/*---------------------------------------------------------------------------
3185 * WLAN_HAL_STORE_NV_IND
3186 *--------------------------------------------------------------------------*/
3187typedef PACKED_PRE struct PACKED_POST
3188{
3189 /* NV Item */
3190 eNvTable tableID;
3191
3192 /* Size of NV Blob */
3193 tANI_U32 nvBlobSize;
3194
Jeff Johnson32d95a32012-09-10 13:15:23 -07003195 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003196 * NV blob i.e. uint8[nvBlobSize] */
3197} tHalNvStoreParams, *tpHalNvStoreParams;
3198
3199typedef PACKED_PRE struct PACKED_POST
3200{
3201 /* Note: The length specified in tHalNvStoreInd messages should be
3202 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3203 tHalMsgHeader header;
3204 tHalNvStoreParams nvStoreParams;
3205} tHalNvStoreInd, *tpHalNvStoreInd;
3206
3207/* End of Block Ack Related Parameters */
3208
3209/*---------------------------------------------------------------------------
3210 * WLAN_HAL_MIC_FAILURE_IND
3211 *--------------------------------------------------------------------------*/
3212
3213#define SIR_CIPHER_SEQ_CTR_SIZE 6
3214
3215typedef PACKED_PRE struct PACKED_POST
3216{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003217 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003218 tSirMacAddr taMacAddr; //transmitter address
3219 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003220 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003221 tANI_U8 IV1; // first byte of IV
3222 tANI_U8 keyId; // second byte of IV
3223 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3224 tSirMacAddr rxMacAddr; // receive address
3225} tSirMicFailureInfo, *tpSirMicFailureInfo;
3226
3227/* Definition for MIC failure indication
3228 MAC reports this each time a MIC failure occures on Rx TKIP packet
3229 */
3230typedef PACKED_PRE struct PACKED_POST
3231{
3232 tSirMacAddr bssId; // BSSID
3233 tSirMicFailureInfo info;
3234} tSirMicFailureInd, *tpSirMicFailureInd;
3235
3236typedef PACKED_PRE struct PACKED_POST
3237{
3238 tHalMsgHeader header;
3239 tSirMicFailureInd micFailureInd;
3240} tMicFailureIndMsg, *tpMicFailureIndMsg;
3241
Mohit Khanna4a70d262012-09-11 16:30:12 -07003242typedef PACKED_PRE struct PACKED_POST
3243{
3244 tANI_U16 opMode;
3245 tANI_U16 staId;
3246}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3247
3248typedef PACKED_PRE struct PACKED_POST
3249{
3250 tHalMsgHeader header;
3251 tUpdateVHTOpMode updateVhtOpMode;
3252} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3253
3254typedef PACKED_PRE struct PACKED_POST
3255{
3256 tANI_U32 status;
3257} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3258
3259typedef PACKED_PRE struct PACKED_POST
3260{
3261 tHalMsgHeader header;
3262 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3263} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3264
Jeff Johnson295189b2012-06-20 16:38:30 -07003265/*---------------------------------------------------------------------------
3266 * WLAN_HAL_UPDATE_BEACON_REQ
3267 *--------------------------------------------------------------------------*/
3268typedef PACKED_PRE struct PACKED_POST
3269{
3270
3271 tANI_U8 bssIdx;
3272
3273 //shortPreamble mode. HAL should update all the STA rates when it
3274 //receives this message
3275 tANI_U8 fShortPreamble;
3276 //short Slot time.
3277 tANI_U8 fShortSlotTime;
3278 //Beacon Interval
3279 tANI_U16 beaconInterval;
3280 //Protection related
3281 tANI_U8 llaCoexist;
3282 tANI_U8 llbCoexist;
3283 tANI_U8 llgCoexist;
3284 tANI_U8 ht20MhzCoexist;
3285 tANI_U8 llnNonGFCoexist;
3286 tANI_U8 fLsigTXOPProtectionFullSupport;
3287 tANI_U8 fRIFSMode;
3288
3289 tANI_U16 paramChangeBitmap;
3290}tUpdateBeaconParams, *tpUpdateBeaconParams;
3291
3292
3293typedef PACKED_PRE struct PACKED_POST
3294{
3295 tHalMsgHeader header;
3296 tUpdateBeaconParams updateBeaconParam;
3297} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3298
3299/*---------------------------------------------------------------------------
3300 * WLAN_HAL_UPDATE_BEACON_RSP
3301 *--------------------------------------------------------------------------*/
3302typedef PACKED_PRE struct PACKED_POST
3303{
3304 tANI_U32 status;
3305} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3306
3307typedef PACKED_PRE struct PACKED_POST
3308{
3309 tHalMsgHeader header;
3310 tUpdateBeaconRspParams updateBeaconRspParam;
3311} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3312
3313/*---------------------------------------------------------------------------
3314 * WLAN_HAL_SEND_BEACON_REQ
3315 *--------------------------------------------------------------------------*/
3316typedef PACKED_PRE struct PACKED_POST
3317{
3318 tANI_U32 beaconLength; //length of the template.
3319 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3320 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003321 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003322 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3323}tSendBeaconParams, *tpSendBeaconParams;
3324
3325
3326typedef PACKED_PRE struct PACKED_POST
3327{
3328 tHalMsgHeader header;
3329 tSendBeaconParams sendBeaconParam;
3330}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3331
3332/*---------------------------------------------------------------------------
3333 * WLAN_HAL_SEND_BEACON_RSP
3334 *--------------------------------------------------------------------------*/
3335typedef PACKED_PRE struct PACKED_POST
3336{
3337 tANI_U32 status;
3338} tSendBeaconRspParams, *tpSendBeaconRspParams;
3339
3340typedef PACKED_PRE struct PACKED_POST
3341{
3342 tHalMsgHeader header;
3343 tSendBeaconRspParams sendBeaconRspParam;
3344} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3345
3346#ifdef FEATURE_5GHZ_BAND
3347
3348/*---------------------------------------------------------------------------
3349 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3350 *--------------------------------------------------------------------------*/
3351typedef PACKED_PRE struct PACKED_POST
3352{
3353 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003354 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003355}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3356
3357
3358typedef PACKED_PRE struct PACKED_POST
3359{
3360 /* Link Parameters */
3361 tSirEnableRadarInfoType EnableRadarInfo;
3362}tEnableRadarReqParams, *tpEnableRadarReqParams;
3363
3364typedef PACKED_PRE struct PACKED_POST
3365{
3366 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003367 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003368}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3369
3370/*---------------------------------------------------------------------------
3371 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3372 *--------------------------------------------------------------------------*/
3373
3374typedef PACKED_PRE struct PACKED_POST
3375{
3376 /* Link Parameters */
3377 tSirMacAddr BSSID;
3378 /* success or failure */
3379 tANI_U32 status;
3380}tEnableRadarRspParams, *tpEnableRadarRspParams;
3381
3382typedef PACKED_PRE struct PACKED_POST
3383{
3384 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003385 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003386}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3387
3388/*---------------------------------------------------------------------------
3389 *WLAN_HAL_RADAR_DETECT_INTR_IND
3390 *--------------------------------------------------------------------------*/
3391
3392typedef PACKED_PRE struct PACKED_POST
3393{
3394 tANI_U8 radarDetChannel;
3395}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3396
3397typedef PACKED_PRE struct PACKED_POST
3398{
3399 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003400 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003401}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3402
3403/*---------------------------------------------------------------------------
3404 *WLAN_HAL_RADAR_DETECT_IND
3405 *-------------------------------------------------------------------------*/
3406typedef PACKED_PRE struct PACKED_POST
3407{
3408 /*channel number in which the RADAR detected*/
3409 tANI_U8 channelNumber;
3410
3411 /*RADAR pulse width*/
3412 tANI_U16 radarPulseWidth; // in usecond
3413
3414 /*Number of RADAR pulses */
3415 tANI_U16 numRadarPulse;
3416}tRadarDetectIndParams,*tpRadarDetectIndParams;
3417
3418typedef PACKED_PRE struct PACKED_POST
3419{
3420 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003421 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003422}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3423
3424
3425/*---------------------------------------------------------------------------
3426 *WLAN_HAL_GET_TPC_REPORT_REQ
3427 *-------------------------------------------------------------------------*/
3428typedef PACKED_PRE struct PACKED_POST
3429{
3430 tSirMacAddr sta;
3431 tANI_U8 dialogToken;
3432 tANI_U8 txpower;
3433}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3434
3435
3436typedef PACKED_PRE struct PACKED_POST
3437{
3438 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003439 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003440}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3441
3442/*---------------------------------------------------------------------------
3443 * WLAN_HAL_GET_TPC_REPORT_RSP
3444 *--------------------------------------------------------------------------*/
3445
3446typedef PACKED_PRE struct PACKED_POST
3447{
3448 /* success or failure */
3449 tANI_U32 status;
3450}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3451
3452typedef PACKED_PRE struct PACKED_POST
3453{
3454 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003455 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003456}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3457
3458#endif
3459
Jeff Johnson295189b2012-06-20 16:38:30 -07003460/*---------------------------------------------------------------------------
3461 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3462 *-------------------------------------------------------------------------*/
3463typedef PACKED_PRE struct PACKED_POST
3464{
3465 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3466 tANI_U32 probeRespTemplateLen;
3467 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3468 tSirMacAddr bssId;
3469
3470}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3471
3472typedef PACKED_PRE struct PACKED_POST
3473{
3474 tHalMsgHeader header;
3475 tSendProbeRespReqParams sendProbeRespReqParams ;
3476}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3477
3478/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003479 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003480 *--------------------------------------------------------------------------*/
3481
3482typedef PACKED_PRE struct PACKED_POST
3483{
3484 /* success or failure */
3485 tANI_U32 status;
3486}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3487
3488typedef PACKED_PRE struct PACKED_POST
3489{
3490 tHalMsgHeader header;
3491 tSendProbeRespRspParams sendProbeRespRspParams;
3492}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3493
3494
3495/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003496 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003497 *--------------------------------------------------------------------------*/
3498
3499typedef PACKED_PRE struct PACKED_POST
3500{
3501 /* success or failure */
3502 tANI_U32 status;
3503}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3504
3505typedef PACKED_PRE struct PACKED_POST
3506{
3507 tHalMsgHeader header;
3508 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3509}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3510
3511/*---------------------------------------------------------------------------
3512 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3513 *--------------------------------------------------------------------------*/
3514
3515typedef PACKED_PRE struct PACKED_POST
3516{
3517 tANI_U16 assocId;
3518 tANI_U16 staId;
3519 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3520 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003521 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003522 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003523
3524}tDeleteStaContextParams, *tpDeleteStaContextParams;
3525
3526
3527typedef PACKED_PRE struct PACKED_POST
3528{
3529 tHalMsgHeader header;
3530 tDeleteStaContextParams deleteStaContextParams;
3531}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3532
Anand Kumar012623a2013-01-11 17:00:00 -08003533typedef PACKED_PRE struct PACKED_POST
3534{
3535 tHalMsgHeader header;
3536 tANI_U8 assocId;
3537 tANI_U8 staIdx;
3538 tANI_U8 bssIdx;
3539 tANI_U8 uReasonCode;
3540 tANI_U32 uStatus;
3541} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003542
3543/*---------------------------------------------------------------------------
3544 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3545 *--------------------------------------------------------------------------*/
3546
3547typedef PACKED_PRE struct PACKED_POST
3548{
3549 tBtAmpEventType btAmpEventType;
3550
3551}tBtAmpEventParams, *tpBtAmpEventParams;
3552
3553
3554
3555typedef PACKED_PRE struct PACKED_POST
3556{
3557 tHalMsgHeader header;
3558 tBtAmpEventParams btAmpEventParams;
3559}tBtAmpEventMsg, *tpBtAmpEventMsg;
3560
3561/*---------------------------------------------------------------------------
3562*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3563*--------------------------------------------------------------------------*/
3564
3565typedef PACKED_PRE struct PACKED_POST
3566{
3567 /* success or failure */
3568 tANI_U32 status;
3569}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3570
3571typedef PACKED_PRE struct PACKED_POST
3572{
3573 tHalMsgHeader header;
3574 tBtAmpEventRspParams btAmpEventRspParams;
3575}tBtAmpEventRsp, *tpBtAmpEventRsp;
3576
3577
3578/*---------------------------------------------------------------------------
3579 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3580 *--------------------------------------------------------------------------*/
3581
3582typedef PACKED_PRE struct PACKED_POST
3583{
3584 // Station Index. originates from HAL
3585 tANI_U8 ucSTAId;
3586
3587 // TID for which the transmit queue is being flushed
3588 tANI_U8 ucTid;
3589
3590}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3591
3592
3593typedef PACKED_PRE struct PACKED_POST
3594{
3595 tHalMsgHeader header;
3596 tTlHalFlushAcParams tlHalFlushAcParam;
3597}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3598
3599/*---------------------------------------------------------------------------
3600*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3601*--------------------------------------------------------------------------*/
3602
3603typedef PACKED_PRE struct PACKED_POST
3604{
3605 // Station Index. originates from HAL
3606 tANI_U8 ucSTAId;
3607
3608 // TID for which the transmit queue is being flushed
3609 tANI_U8 ucTid;
3610
3611 /* success or failure */
3612 tANI_U32 status;
3613}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3614
3615typedef PACKED_PRE struct PACKED_POST
3616{
3617 tHalMsgHeader header;
3618 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3619}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3620
3621/*---------------------------------------------------------------------------
3622 * WLAN_HAL_ENTER_IMPS_REQ
3623 *--------------------------------------------------------------------------*/
3624typedef PACKED_PRE struct PACKED_POST
3625{
3626 tHalMsgHeader header;
3627} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3628
3629/*---------------------------------------------------------------------------
3630 * WLAN_HAL_EXIT_IMPS_REQ
3631 *--------------------------------------------------------------------------*/
3632typedef PACKED_PRE struct PACKED_POST
3633{
3634 tHalMsgHeader header;
3635} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3636
3637/*---------------------------------------------------------------------------
3638 * WLAN_HAL_ENTER_BMPS_REQ
3639 *--------------------------------------------------------------------------*/
3640
3641typedef PACKED_PRE struct PACKED_POST
3642{
3643 tANI_U8 bssIdx;
3644 //TBTT value derived from the last beacon
3645#ifndef BUILD_QWPTTSTATIC
3646 tANI_U64 tbtt;
3647#endif
3648 tANI_U8 dtimCount;
3649 //DTIM period given to HAL during association may not be valid,
3650 //if association is based on ProbeRsp instead of beacon.
3651 tANI_U8 dtimPeriod;
3652
3653 // For CCX and 11R Roaming
3654 tANI_U32 rssiFilterPeriod;
3655 tANI_U32 numBeaconPerRssiAverage;
3656 tANI_U8 bRssiFilterEnable;
3657
3658} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3659
3660
3661typedef PACKED_PRE struct PACKED_POST
3662{
3663 tHalMsgHeader header;
3664 tHalEnterBmpsReqParams enterBmpsReq;
3665} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3666
3667/*---------------------------------------------------------------------------
3668 * WLAN_HAL_EXIT_BMPS_REQ
3669 *--------------------------------------------------------------------------*/
3670typedef PACKED_PRE struct PACKED_POST
3671{
3672 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003673 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003674} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3675
3676typedef PACKED_PRE struct PACKED_POST
3677{
3678 tHalMsgHeader header;
3679 tHalExitBmpsReqParams exitBmpsReqParams;
3680} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3681
3682/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003683 * WLAN_HAL_MISSED_BEACON_IND
3684 *--------------------------------------------------------------------------*/
3685typedef PACKED_PRE struct PACKED_POST
3686{
3687 tANI_U8 bssIdx;
3688} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3689
3690typedef PACKED_PRE struct PACKED_POST
3691{
3692 tHalMsgHeader header;
3693 tHalMissedBeaconIndParams missedBeaconIndParams;
3694} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3695
3696/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003697 * WLAN_HAL_ADD_BCN_FILTER_REQ
3698 *--------------------------------------------------------------------------*/
3699/* Beacon Filtering data structures */
3700typedef PACKED_PRE struct PACKED_POST
3701{
3702 tANI_U8 offset;
3703 tANI_U8 value;
3704 tANI_U8 bitMask;
3705 tANI_U8 ref;
3706} tEidByteInfo, *tpEidByteInfo;
3707
Jeff Johnson32d95a32012-09-10 13:15:23 -07003708typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003709{
3710 tANI_U16 capabilityInfo;
3711 tANI_U16 capabilityMask;
3712 tANI_U16 beaconInterval;
3713 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003714 tANI_U8 bssIdx;
3715 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003716} tBeaconFilterMsg, *tpBeaconFilterMsg;
3717
3718/* The above structure would be followed by multiple of below mentioned structure */
3719typedef PACKED_PRE struct PACKED_POST
3720{
3721 tANI_U8 elementId;
3722 tANI_U8 checkIePresence;
3723 tEidByteInfo byte;
3724} tBeaconFilterIe, *tpBeaconFilterIe;
3725
3726typedef PACKED_PRE struct PACKED_POST
3727{
3728 tHalMsgHeader header;
3729 tBeaconFilterMsg addBcnFilterParams;
3730} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3731
3732/*---------------------------------------------------------------------------
3733 * WLAN_HAL_REM_BCN_FILTER_REQ
3734 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003735typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003736{
3737 tANI_U8 ucIeCount;
3738 tANI_U8 ucRemIeId[1];
3739} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3740
3741typedef PACKED_PRE struct PACKED_POST
3742{
3743 tHalMsgHeader header;
3744 tRemBeaconFilterMsg remBcnFilterParams;
3745} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3746
3747/*---------------------------------------------------------------------------
3748 * WLAN_HAL_HOST_OFFLOAD_REQ
3749 *--------------------------------------------------------------------------*/
3750#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3751#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3752#define HAL_IPV6_NS_OFFLOAD 2
3753#define HAL_IPV6_ADDR_LEN 16
3754#define HAL_MAC_ADDR_LEN 6
3755#define HAL_OFFLOAD_DISABLE 0
3756#define HAL_OFFLOAD_ENABLE 1
3757#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003758#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003759#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003760#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003761
3762typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3763{
3764 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3765 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3766 //Only support 2 possible Network Advertisement IPv6 address
3767 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3768 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3769 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3770 tANI_U8 srcIPv6AddrValid : 1;
3771 tANI_U8 targetIPv6Addr1Valid : 1;
3772 tANI_U8 targetIPv6Addr2Valid : 1;
3773 tANI_U8 reserved1 : 5;
3774 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003775 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003776 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003777} tHalNSOffloadParams;
3778
3779typedef PACKED_PRE struct PACKED_POST
3780{
3781 tANI_U8 offloadType;
3782 tANI_U8 enableOrDisable;
3783 PACKED_PRE union PACKED_POST
3784 {
3785 tANI_U8 hostIpv4Addr [4];
3786 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3787 } params;
3788} tHalHostOffloadReq, *tpHalHostOffloadReq;
3789
3790typedef PACKED_PRE struct PACKED_POST
3791{
3792 tHalMsgHeader header;
3793 tHalHostOffloadReq hostOffloadParams;
3794 tHalNSOffloadParams nsOffloadParams;
3795} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3796
3797/*---------------------------------------------------------------------------
3798 * WLAN_HAL_KEEP_ALIVE_REQ
3799 *--------------------------------------------------------------------------*/
3800/* Packet Types. */
3801#define HAL_KEEP_ALIVE_NULL_PKT 1
3802#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3803
3804/* Enable or disable keep alive */
3805#define HAL_KEEP_ALIVE_DISABLE 0
3806#define HAL_KEEP_ALIVE_ENABLE 1
3807
3808/* Keep Alive request. */
3809typedef PACKED_PRE struct PACKED_POST
3810{
3811 tANI_U8 packetType;
3812 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003813 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003814 tHalIpv4Addr destIpv4Addr;
3815 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003816 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003817} tHalKeepAliveReq, *tpHalKeepAliveReq;
3818
3819typedef PACKED_PRE struct PACKED_POST
3820{
3821 tHalMsgHeader header;
3822 tHalKeepAliveReq KeepAliveParams;
3823} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3824
3825/*---------------------------------------------------------------------------
3826 * WLAN_HAL_SET_RSSI_THRESH_REQ
3827 *--------------------------------------------------------------------------*/
3828typedef PACKED_PRE struct PACKED_POST
3829{
3830 tANI_S8 ucRssiThreshold1 : 8;
3831 tANI_S8 ucRssiThreshold2 : 8;
3832 tANI_S8 ucRssiThreshold3 : 8;
3833 tANI_U8 bRssiThres1PosNotify : 1;
3834 tANI_U8 bRssiThres1NegNotify : 1;
3835 tANI_U8 bRssiThres2PosNotify : 1;
3836 tANI_U8 bRssiThres2NegNotify : 1;
3837 tANI_U8 bRssiThres3PosNotify : 1;
3838 tANI_U8 bRssiThres3NegNotify : 1;
3839 tANI_U8 bReserved10 : 2;
3840} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003841
Jeff Johnson295189b2012-06-20 16:38:30 -07003842typedef PACKED_PRE struct PACKED_POST
3843{
3844 tHalMsgHeader header;
3845 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003846} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003847
3848/*---------------------------------------------------------------------------
3849 * WLAN_HAL_ENTER_UAPSD_REQ
3850 *--------------------------------------------------------------------------*/
3851typedef PACKED_PRE struct PACKED_POST
3852{
3853 tANI_U8 bkDeliveryEnabled:1;
3854 tANI_U8 beDeliveryEnabled:1;
3855 tANI_U8 viDeliveryEnabled:1;
3856 tANI_U8 voDeliveryEnabled:1;
3857 tANI_U8 bkTriggerEnabled:1;
3858 tANI_U8 beTriggerEnabled:1;
3859 tANI_U8 viTriggerEnabled:1;
3860 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003861 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003862} tUapsdReqParams, *tpUapsdReqParams;
3863
3864typedef PACKED_PRE struct PACKED_POST
3865{
3866 tHalMsgHeader header;
3867 tUapsdReqParams enterUapsdParams;
3868} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3869
3870/*---------------------------------------------------------------------------
3871 * WLAN_HAL_EXIT_UAPSD_REQ
3872 *--------------------------------------------------------------------------*/
3873typedef PACKED_PRE struct PACKED_POST
3874{
3875 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003876 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003877} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3878
3879/*---------------------------------------------------------------------------
3880 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3881 *--------------------------------------------------------------------------*/
3882#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3883#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3884
3885typedef PACKED_PRE struct PACKED_POST
3886{
3887 tANI_U8 ucPatternId; // Pattern ID
3888 // Pattern byte offset from beginning of the 802.11 packet to start of the
3889 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003890 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003891 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3892 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3893 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3894 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3895 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3896 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003897 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003898} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3899
3900typedef PACKED_PRE struct PACKED_POST
3901{
3902 tHalMsgHeader header;
3903 tHalWowlAddBcastPtrn ptrnParams;
3904} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003905
Jeff Johnsone7245742012-09-05 17:12:55 -07003906
3907
Jeff Johnson295189b2012-06-20 16:38:30 -07003908/*---------------------------------------------------------------------------
3909 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3910 *--------------------------------------------------------------------------*/
3911typedef PACKED_PRE struct PACKED_POST
3912{
3913 /* Pattern ID of the wakeup pattern to be deleted */
3914 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003915 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003916} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3917
3918typedef PACKED_PRE struct PACKED_POST
3919{
3920 tHalMsgHeader header;
3921 tHalWowlDelBcastPtrn ptrnParams;
3922} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3923
3924/*---------------------------------------------------------------------------
3925 * WLAN_HAL_ENTER_WOWL_REQ
3926 *--------------------------------------------------------------------------*/
3927typedef PACKED_PRE struct PACKED_POST
3928{
3929 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003930 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003931
3932 /* Magic pattern */
3933 tSirMacAddr magicPtrn;
3934
Jeff Johnson32d95a32012-09-10 13:15:23 -07003935 /* Enables/disables packet pattern filtering in firmware.
3936 Enabling this flag enables broadcast pattern matching
3937 in Firmware. If unicast pattern matching is also desired,
3938 ucUcastPatternFilteringEnable flag must be set tot true
3939 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003940 */
3941 tANI_U8 ucPatternFilteringEnable;
3942
Jeff Johnson32d95a32012-09-10 13:15:23 -07003943 /* Enables/disables unicast packet pattern filtering.
3944 This flag specifies whether we want to do pattern match
3945 on unicast packets as well and not just broadcast packets.
3946 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003947 (main controlling flag) is set to false
3948 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003949 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003950
Jeff Johnson32d95a32012-09-10 13:15:23 -07003951 /* This configuration is valid only when magicPktEnable=1.
3952 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003953 * Channel Switch Action Frame.
3954 */
3955 tANI_U8 ucWowChnlSwitchRcv;
3956
Jeff Johnson32d95a32012-09-10 13:15:23 -07003957 /* This configuration is valid only when magicPktEnable=1.
3958 * It requests hardware to wake up when it receives the
3959 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003960 */
3961 tANI_U8 ucWowDeauthRcv;
3962
Jeff Johnson32d95a32012-09-10 13:15:23 -07003963 /* This configuration is valid only when magicPktEnable=1.
3964 * It requests hardware to wake up when it receives the
3965 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003966 */
3967 tANI_U8 ucWowDisassocRcv;
3968
Jeff Johnson32d95a32012-09-10 13:15:23 -07003969 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003970 * It requests hardware to wake up when it has missed
3971 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003972 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003973 */
3974 tANI_U8 ucWowMaxMissedBeacons;
3975
Jeff Johnson32d95a32012-09-10 13:15:23 -07003976 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003977 * This is a timeout value in units of microsec. It requests
3978 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003979 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003980 */
3981 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003982
Jeff Johnson295189b2012-06-20 16:38:30 -07003983 /* This configuration directs the WoW packet filtering to look for EAP-ID
3984 * requests embedded in EAPOL frames and use this as a wake source.
3985 */
3986 tANI_U8 ucWoWEAPIDRequestEnable;
3987
3988 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3989 * requests and use this as a wake source.
3990 */
3991 tANI_U8 ucWoWEAPOL4WayEnable;
3992
3993 /* This configuration allows a host wakeup on an network scan offload match.
3994 */
3995 tANI_U8 ucWowNetScanOffloadMatch;
3996
3997 /* This configuration allows a host wakeup on any GTK rekeying error.
3998 */
3999 tANI_U8 ucWowGTKRekeyError;
4000
4001 /* This configuration allows a host wakeup on BSS connection loss.
4002 */
4003 tANI_U8 ucWoWBSSConnLoss;
4004
Jeff Johnsone7245742012-09-05 17:12:55 -07004005 tANI_U8 bssIdx;
4006
Jeff Johnson295189b2012-06-20 16:38:30 -07004007} tHalWowlEnterParams, *tpHalWowlEnterParams;
4008
4009typedef PACKED_PRE struct PACKED_POST
4010{
4011 tHalMsgHeader header;
4012 tHalWowlEnterParams enterWowlParams;
4013} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4014
4015/*---------------------------------------------------------------------------
4016 * WLAN_HAL_EXIT_WOWL_REQ
4017 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004018
Jeff Johnson295189b2012-06-20 16:38:30 -07004019typedef PACKED_PRE struct PACKED_POST
4020{
Jeff Johnsone7245742012-09-05 17:12:55 -07004021 tANI_U8 bssIdx;
4022
4023} tHalWowlExitParams, *tpHalWowlExitParams;
4024
4025typedef PACKED_PRE struct PACKED_POST
4026{
4027 tHalMsgHeader header;
4028 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004029} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4030
4031/*---------------------------------------------------------------------------
4032 * WLAN_HAL_GET_RSSI_REQ
4033 *--------------------------------------------------------------------------*/
4034typedef PACKED_PRE struct PACKED_POST
4035{
4036 tHalMsgHeader header;
4037} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4038
Anand Kumar012623a2013-01-11 17:00:00 -08004039typedef PACKED_PRE struct PACKED_POST
4040{
4041 /* Valid STA Idx for per STA stats request */
4042 tANI_U32 staId;
4043
4044}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4045
4046
4047/*---------------------------------------------------------------------------
4048 * WLAN_HAL_GET_ROAM_RSSI_REQ
4049 *--------------------------------------------------------------------------*/
4050typedef PACKED_PRE struct PACKED_POST
4051{
4052 tHalMsgHeader header;
4053 tHalRoamRssiReqParams roamRssiReqParams;
4054} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4055
4056
Jeff Johnson295189b2012-06-20 16:38:30 -07004057/*---------------------------------------------------------------------------
4058 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4059 *--------------------------------------------------------------------------*/
4060typedef PACKED_PRE struct PACKED_POST {
4061 tANI_U8 staidx; // STA index
4062 tANI_U8 ac; // Access Category
4063 tANI_U8 up; // User Priority
4064 tANI_U32 srvInterval; // Service Interval
4065 tANI_U32 susInterval; // Suspend Interval
4066 tANI_U32 delayInterval; // Delay Interval
4067} tUapsdInfo, tpUapsdInfo;
4068
4069typedef PACKED_PRE struct PACKED_POST
4070{
4071 tHalMsgHeader header;
4072 tUapsdInfo enableUapsdAcParams;
4073} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4074
4075/*---------------------------------------------------------------------------
4076 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4077 *--------------------------------------------------------------------------*/
4078typedef PACKED_PRE struct PACKED_POST {
4079 tANI_U8 setMcstBcstFilterSetting;
4080 tANI_U8 setMcstBcstFilter;
4081} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4082
4083typedef PACKED_PRE struct PACKED_POST
4084{
4085 tHalMsgHeader header;
4086 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4087} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4088
4089/*---------------------------------------------------------------------------
4090 * WLAN_HAL_ENTER_IMPS_RSP
4091 *--------------------------------------------------------------------------*/
4092typedef PACKED_PRE struct PACKED_POST
4093{
4094 /* success or failure */
4095 tANI_U32 status;
4096} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4097
4098typedef PACKED_PRE struct PACKED_POST
4099{
4100 tHalMsgHeader header;
4101 tHalEnterImpsRspParams enterImpsRspParams;
4102} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4103
4104/*---------------------------------------------------------------------------
4105 * WLAN_HAL_EXIT_IMPS_RSP
4106 *--------------------------------------------------------------------------*/
4107typedef PACKED_PRE struct PACKED_POST
4108{
4109 /* success or failure */
4110 tANI_U32 status;
4111} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4112
4113typedef PACKED_PRE struct PACKED_POST
4114{
4115 tHalMsgHeader header;
4116 tHalExitImpsRspParams exitImpsRspParams;
4117} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4118
4119/*---------------------------------------------------------------------------
4120 * WLAN_HAL_ENTER_BMPS_RSP
4121 *--------------------------------------------------------------------------*/
4122typedef PACKED_PRE struct PACKED_POST
4123{
4124 /* success or failure */
4125 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004126 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004127} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4128
4129typedef PACKED_PRE struct PACKED_POST
4130{
4131 tHalMsgHeader header;
4132 tHalEnterBmpsRspParams enterBmpsRspParams;
4133} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4134
4135/*---------------------------------------------------------------------------
4136 * WLAN_HAL_EXIT_BMPS_RSP
4137 *--------------------------------------------------------------------------*/
4138typedef PACKED_PRE struct PACKED_POST
4139{
4140 /* success or failure */
4141 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004142 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004143} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4144
4145typedef PACKED_PRE struct PACKED_POST
4146{
4147 tHalMsgHeader header;
4148 tHalExitBmpsRspParams exitBmpsRspParams;
4149} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4150
4151/*---------------------------------------------------------------------------
4152 * WLAN_HAL_ENTER_UAPSD_RSP
4153 *--------------------------------------------------------------------------*/
4154typedef PACKED_PRE struct PACKED_POST
4155{
4156 /* success or failure */
4157 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004158 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004159}tUapsdRspParams, *tpUapsdRspParams;
4160
4161typedef PACKED_PRE struct PACKED_POST
4162{
4163 tHalMsgHeader header;
4164 tUapsdRspParams enterUapsdRspParams;
4165} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4166
4167/*---------------------------------------------------------------------------
4168 * WLAN_HAL_EXIT_UAPSD_RSP
4169 *--------------------------------------------------------------------------*/
4170typedef PACKED_PRE struct PACKED_POST
4171{
4172 /* success or failure */
4173 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004174 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004175} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4176
4177typedef PACKED_PRE struct PACKED_POST
4178{
4179 tHalMsgHeader header;
4180 tHalExitUapsdRspParams exitUapsdRspParams;
4181} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4182
4183/*---------------------------------------------------------------------------
4184 * WLAN_HAL_RSSI_NOTIFICATION_IND
4185 *--------------------------------------------------------------------------*/
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tANI_U32 bRssiThres1PosCross : 1;
4189 tANI_U32 bRssiThres1NegCross : 1;
4190 tANI_U32 bRssiThres2PosCross : 1;
4191 tANI_U32 bRssiThres2NegCross : 1;
4192 tANI_U32 bRssiThres3PosCross : 1;
4193 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004194 tANI_U32 avgRssi : 8;
4195 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004196} tHalRSSINotification, *tpHalRSSINotification;
4197
4198typedef PACKED_PRE struct PACKED_POST
4199{
4200 tHalMsgHeader header;
4201 tHalRSSINotification rssiNotificationParams;
4202} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4203
4204/*---------------------------------------------------------------------------
4205 * WLAN_HAL_GET_RSSI_RSP
4206 *--------------------------------------------------------------------------*/
4207typedef PACKED_PRE struct PACKED_POST
4208{
4209 /* success or failure */
4210 tANI_U32 status;
4211 tANI_S8 rssi;
4212} tHalGetRssiParams, *tpHalGetRspParams;
4213
4214typedef PACKED_PRE struct PACKED_POST
4215{
4216 tHalMsgHeader header;
4217 tHalGetRssiParams rssiRspParams;
4218} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4219
4220/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004221 * WLAN_HAL_GET_ROAM_RSSI_RSP
4222 *--------------------------------------------------------------------------*/
4223typedef PACKED_PRE struct PACKED_POST
4224{
4225 /* success or failure */
4226 tANI_U32 status;
4227
4228 tANI_U8 staId;
4229 tANI_S8 rssi;
4230} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4231
4232typedef PACKED_PRE struct PACKED_POST
4233{
4234 tHalMsgHeader header;
4235 tHalGetRoamRssiParams roamRssiRspParams;
4236} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4237
4238/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004239 * WLAN_HAL_ENTER_WOWL_RSP
4240 *--------------------------------------------------------------------------*/
4241typedef PACKED_PRE struct PACKED_POST
4242{
4243 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004244 tANI_U32 status;
4245 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004246} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4247
4248typedef PACKED_PRE struct PACKED_POST
4249{
4250 tHalMsgHeader header;
4251 tHalEnterWowlRspParams enterWowlRspParams;
4252} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4253
4254/*---------------------------------------------------------------------------
4255 * WLAN_HAL_EXIT_WOWL_RSP
4256 *--------------------------------------------------------------------------*/
4257typedef PACKED_PRE struct PACKED_POST
4258{
4259 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004260 tANI_U32 status;
4261 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004262} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4263
4264typedef PACKED_PRE struct PACKED_POST
4265{
4266 tHalMsgHeader header;
4267 tHalExitWowlRspParams exitWowlRspParams;
4268} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4269
4270/*---------------------------------------------------------------------------
4271 * WLAN_HAL_ADD_BCN_FILTER_RSP
4272 *--------------------------------------------------------------------------*/
4273typedef PACKED_PRE struct PACKED_POST
4274{
4275 /* success or failure */
4276 tANI_U32 status;
4277} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4278
4279typedef PACKED_PRE struct PACKED_POST
4280{
4281 tHalMsgHeader header;
4282 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4283} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4284
4285/*---------------------------------------------------------------------------
4286 * WLAN_HAL_REM_BCN_FILTER_RSP
4287 *--------------------------------------------------------------------------*/
4288typedef PACKED_PRE struct PACKED_POST
4289{
4290 /* success or failure */
4291 tANI_U32 status;
4292} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4293
4294typedef PACKED_PRE struct PACKED_POST
4295{
4296 tHalMsgHeader header;
4297 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4298} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4299
4300/*---------------------------------------------------------------------------
4301 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4302 *--------------------------------------------------------------------------*/
4303typedef PACKED_PRE struct PACKED_POST
4304{
4305 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004306 tANI_U32 status;
4307 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004308} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4309
4310typedef PACKED_PRE struct PACKED_POST
4311{
4312 tHalMsgHeader header;
4313 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4314} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4315
4316/*---------------------------------------------------------------------------
4317 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4318 *--------------------------------------------------------------------------*/
4319typedef PACKED_PRE struct PACKED_POST
4320{
4321 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004322 tANI_U32 status;
4323 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004324} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4325
4326typedef PACKED_PRE struct PACKED_POST
4327{
4328 tHalMsgHeader header;
4329 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4330} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4331
4332/*---------------------------------------------------------------------------
4333 * WLAN_HAL_HOST_OFFLOAD_RSP
4334 *--------------------------------------------------------------------------*/
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 /* success or failure */
4338 tANI_U32 status;
4339} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4340
4341typedef PACKED_PRE struct PACKED_POST
4342{
4343 tHalMsgHeader header;
4344 tHalHostOffloadRspParams hostOffloadRspParams;
4345} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4346
4347/*---------------------------------------------------------------------------
4348 * WLAN_HAL_KEEP_ALIVE_RSP
4349 *--------------------------------------------------------------------------*/
4350typedef PACKED_PRE struct PACKED_POST
4351{
4352 /* success or failure */
4353 tANI_U32 status;
4354} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4355
4356typedef PACKED_PRE struct PACKED_POST
4357{
4358 tHalMsgHeader header;
4359 tHalKeepAliveRspParams keepAliveRspParams;
4360} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4361
4362/*---------------------------------------------------------------------------
4363 * WLAN_HAL_SET_RSSI_THRESH_RSP
4364 *--------------------------------------------------------------------------*/
4365typedef PACKED_PRE struct PACKED_POST
4366{
4367 /* success or failure */
4368 tANI_U32 status;
4369} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4370
4371typedef PACKED_PRE struct PACKED_POST
4372{
4373 tHalMsgHeader header;
4374 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4375} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4376
4377/*---------------------------------------------------------------------------
4378 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4379 *--------------------------------------------------------------------------*/
4380typedef PACKED_PRE struct PACKED_POST
4381{
4382 /* success or failure */
4383 tANI_U32 status;
4384} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4385
4386typedef PACKED_PRE struct PACKED_POST
4387{
4388 tHalMsgHeader header;
4389 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4390} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4391
4392/*---------------------------------------------------------------------------
4393 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4394 *--------------------------------------------------------------------------*/
4395typedef PACKED_PRE struct PACKED_POST
4396{
4397 /* success or failure */
4398 tANI_U32 status;
4399} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4400
4401typedef PACKED_PRE struct PACKED_POST
4402{
4403 tHalMsgHeader header;
4404 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4405} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4406
4407/*---------------------------------------------------------------------------
4408 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4409 *--------------------------------------------------------------------------*/
4410
4411typedef PACKED_PRE struct PACKED_POST
4412{
4413 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4414 //the request has power constraints, this should be applied only to that session
4415 tSirMacAddr selfStaMacAddr;
4416 //In request,
4417 //power == MaxTx power to be used.
4418 tPowerdBm power;
4419
4420}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4421
4422
4423typedef PACKED_PRE struct PACKED_POST
4424{
4425 tHalMsgHeader header;
4426 tSetMaxTxPwrParams setMaxTxPwrParams;
4427}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4428
4429/*---------------------------------------------------------------------------
4430*WLAN_HAL_SET_MAX_TX_POWER_RSP
4431*--------------------------------------------------------------------------*/
4432
4433typedef PACKED_PRE struct PACKED_POST
4434{
4435 //power == tx power used for management frames.
4436 tPowerdBm power;
4437
4438 /* success or failure */
4439 tANI_U32 status;
4440}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4441
4442typedef PACKED_PRE struct PACKED_POST
4443{
4444 tHalMsgHeader header;
4445 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4446}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4447
4448/*---------------------------------------------------------------------------
4449 *WLAN_HAL_SET_TX_POWER_REQ
4450 *--------------------------------------------------------------------------*/
4451
4452typedef PACKED_PRE struct PACKED_POST
4453{
4454 /* TX Power in milli watts */
4455 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004456 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004457}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4458
4459
4460typedef PACKED_PRE struct PACKED_POST
4461{
4462 tHalMsgHeader header;
4463 tSetTxPwrReqParams setTxPwrReqParams;
4464}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4465
4466/*---------------------------------------------------------------------------
4467*WLAN_HAL_SET_TX_POWER_RSP
4468*--------------------------------------------------------------------------*/
4469
4470typedef PACKED_PRE struct PACKED_POST
4471{
4472 /* success or failure */
4473 tANI_U32 status;
4474}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4475
4476typedef PACKED_PRE struct PACKED_POST
4477{
4478 tHalMsgHeader header;
4479 tSetTxPwrRspParams setTxPwrRspParams;
4480}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4481
4482/*---------------------------------------------------------------------------
4483 *WLAN_HAL_GET_TX_POWER_REQ
4484 *--------------------------------------------------------------------------*/
4485
4486typedef PACKED_PRE struct PACKED_POST
4487{
4488 tANI_U8 staId;
4489}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4490
4491typedef PACKED_PRE struct PACKED_POST
4492{
4493 tHalMsgHeader header;
4494 tGetTxPwrReqParams getTxPwrReqParams;
4495}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4496
4497/*---------------------------------------------------------------------------
4498*WLAN_HAL_GET_TX_POWER_RSP
4499*--------------------------------------------------------------------------*/
4500
4501typedef PACKED_PRE struct PACKED_POST
4502{
4503 /* success or failure */
4504 tANI_U32 status;
4505
4506 /* TX Power in milli watts */
4507 tANI_U32 txPower;
4508}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4509
4510typedef PACKED_PRE struct PACKED_POST
4511{
4512 tHalMsgHeader header;
4513 tGetTxPwrRspParams getTxPwrRspParams;
4514}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4515
4516#ifdef WLAN_FEATURE_P2P
4517/*---------------------------------------------------------------------------
4518 *WLAN_HAL_SET_P2P_GONOA_REQ
4519 *--------------------------------------------------------------------------*/
4520
4521typedef PACKED_PRE struct PACKED_POST
4522{
4523 tANI_U8 opp_ps;
4524 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004525 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004526 tANI_U32 duration;
4527 tANI_U32 interval;
4528 tANI_U32 single_noa_duration;
4529 tANI_U8 psSelection;
4530}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4531
4532
4533typedef PACKED_PRE struct PACKED_POST
4534{
4535 tHalMsgHeader header;
4536 tSetP2PGONOAParams setP2PGONOAParams;
4537}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4538
4539/*---------------------------------------------------------------------------
4540*WLAN_HAL_SET_P2P_GONOA_RSP
4541*--------------------------------------------------------------------------*/
4542
4543typedef PACKED_PRE struct PACKED_POST
4544{
4545 /* success or failure */
4546 tANI_U32 status;
4547}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4548
4549typedef PACKED_PRE struct PACKED_POST
4550{
4551 tHalMsgHeader header;
4552 tSetP2PGONOARspParams setP2PGONOARspParams;
4553}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4554#endif
4555
4556/*---------------------------------------------------------------------------
4557 *WLAN_HAL_ADD_SELF_STA_REQ
4558 *--------------------------------------------------------------------------*/
4559
4560typedef PACKED_PRE struct PACKED_POST
4561{
4562 tSirMacAddr selfMacAddr;
4563 tANI_U32 status;
4564}tAddStaSelfParams, *tpAddStaSelfParams;
4565
4566
4567typedef PACKED_PRE struct PACKED_POST
4568{
4569 tHalMsgHeader header;
4570 tAddStaSelfParams addStaSelfParams;
4571}tAddStaSelfReq, *tpAddStaSelfReq;
4572
4573/*---------------------------------------------------------------------------
4574*WLAN_HAL_ADD_SELF_STA_RSP
4575*--------------------------------------------------------------------------*/
4576
4577typedef PACKED_PRE struct PACKED_POST
4578{
4579 /* success or failure */
4580 tANI_U32 status;
4581
4582 /*Self STA Index */
4583 tANI_U8 selfStaIdx;
4584
4585 /* DPU Index (IGTK, PTK, GTK all same) */
4586 tANI_U8 dpuIdx;
4587
4588 /* DPU Signature */
4589 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004590
Jeff Johnson295189b2012-06-20 16:38:30 -07004591}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4592
4593typedef PACKED_PRE struct PACKED_POST
4594{
4595 tHalMsgHeader header;
4596 tAddStaSelfRspParams addStaSelfRspParams;
4597}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4598
4599
4600/*---------------------------------------------------------------------------
4601 WLAN_HAL_DEL_STA_SELF_REQ
4602---------------------------------------------------------------------------*/
4603
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 tSirMacAddr selfMacAddr;
4607
4608}tDelStaSelfParams, *tpDelStaSelfParams;
4609
4610typedef PACKED_PRE struct PACKED_POST
4611{
4612 tHalMsgHeader header;
4613 tDelStaSelfParams delStaSelfParams;
4614} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4615
4616
4617/*---------------------------------------------------------------------------
4618 WLAN_HAL_DEL_STA_SELF_RSP
4619---------------------------------------------------------------------------*/
4620
4621typedef PACKED_PRE struct PACKED_POST
4622{
4623 /*success or failure */
4624 tANI_U32 status;
4625
4626 tSirMacAddr selfMacAddr;
4627}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4628
4629typedef PACKED_PRE struct PACKED_POST
4630{
4631 tHalMsgHeader header;
4632 tDelStaSelfRspParams delStaSelfRspParams;
4633} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4634
4635
4636#ifdef WLAN_FEATURE_VOWIFI_11R
4637
4638/*---------------------------------------------------------------------------
4639 *WLAN_HAL_AGGR_ADD_TS_REQ
4640 *--------------------------------------------------------------------------*/
4641
4642typedef PACKED_PRE struct PACKED_POST
4643{
4644 /* Station Index */
4645 tANI_U16 staIdx;
4646
4647 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4648 /* This will carry the bitmap with the bit positions representing different AC.s*/
4649 tANI_U16 tspecIdx;
4650
4651 /* Tspec info per AC To program TPE with required parameters */
4652 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4653
4654 /* U-APSD Flags: 1b per AC. Encoded as follows:
4655 b7 b6 b5 b4 b3 b2 b1 b0 =
4656 X X X X BE BK VI VO */
4657 tANI_U8 uAPSD;
4658
4659 /* These parameters are for all the access categories */
4660 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4661 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4662 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4663
4664}tAggrAddTsParams, *tpAggrAddTsParams;
4665
4666
4667typedef PACKED_PRE struct PACKED_POST
4668{
4669 tHalMsgHeader header;
4670 tAggrAddTsParams aggrAddTsParam;
4671}tAggrAddTsReq, *tpAggrAddTsReq;
4672
4673/*---------------------------------------------------------------------------
4674*WLAN_HAL_AGGR_ADD_TS_RSP
4675*--------------------------------------------------------------------------*/
4676
4677typedef PACKED_PRE struct PACKED_POST
4678{
4679 /* success or failure */
4680 tANI_U32 status0;
4681 /* FIXME PRIMA for future use for 11R */
4682 tANI_U32 status1;
4683}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4684
4685typedef PACKED_PRE struct PACKED_POST
4686{
4687 tHalMsgHeader header;
4688 tAggrAddTsRspParams aggrAddTsRspParam;
4689}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4690
4691#endif
4692
4693/*---------------------------------------------------------------------------
4694 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4695 *--------------------------------------------------------------------------*/
4696typedef PACKED_PRE struct PACKED_POST
4697{
4698 tANI_U8 isAppsCpuAwake;
4699} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4700
4701typedef PACKED_PRE struct PACKED_POST
4702{
4703 tHalMsgHeader header;
4704 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4705} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4706
4707/*---------------------------------------------------------------------------
4708 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4709 *--------------------------------------------------------------------------*/
4710typedef PACKED_PRE struct PACKED_POST
4711{
4712 /* success or failure */
4713 tANI_U32 status;
4714} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4715
4716typedef PACKED_PRE struct PACKED_POST
4717{
4718 tHalMsgHeader header;
4719 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4720} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4721/*---------------------------------------------------------------------------
4722 * WLAN_HAL_DUMP_COMMAND_REQ
4723 *--------------------------------------------------------------------------*/
4724
4725typedef PACKED_PRE struct PACKED_POST
4726{
4727 tANI_U32 argument1;
4728 tANI_U32 argument2;
4729 tANI_U32 argument3;
4730 tANI_U32 argument4;
4731 tANI_U32 argument5;
4732
4733}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4734
4735typedef PACKED_PRE struct PACKED_POST
4736{
4737 tHalMsgHeader header;
4738 tHalDumpCmdReqParams dumpCmdReqParams;
4739} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4740
4741/*---------------------------------------------------------------------------
4742 * WLAN_HAL_DUMP_COMMAND_RSP
4743 *--------------------------------------------------------------------------*/
4744
4745typedef PACKED_PRE struct PACKED_POST
4746{
4747 /* success or failure */
4748 tANI_U32 status;
4749 /*Length of the responce message*/
4750 tANI_U32 rspLength;
4751 /*FiXME: Currently considering the the responce will be less than 100bytes */
4752 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004753
Jeff Johnson295189b2012-06-20 16:38:30 -07004754} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4755
4756typedef PACKED_PRE struct PACKED_POST
4757{
4758 tHalMsgHeader header;
4759 tHalDumpCmdRspParams dumpCmdRspParams;
4760} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4761
4762/*---------------------------------------------------------------------------
4763 *WLAN_HAL_COEX_IND
4764 *-------------------------------------------------------------------------*/
4765#define WLAN_COEX_IND_DATA_SIZE (4)
4766#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4767#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004768#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
4769#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004770#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
4771#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07004772
4773typedef PACKED_PRE struct PACKED_POST
4774{
4775 /*Coex Indication Type*/
4776 tANI_U32 coexIndType;
4777
4778 /*Coex Indication Data*/
4779 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4780}tCoexIndParams,*tpCoexIndParams;
4781
4782typedef PACKED_PRE struct PACKED_POST
4783{
4784 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004785 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004786}tCoexIndMsg, *tpCoexIndMsg;
4787
4788/*---------------------------------------------------------------------------
4789 *WLAN_HAL_OTA_TX_COMPL_IND
4790 *-------------------------------------------------------------------------*/
4791
4792typedef PACKED_PRE struct PACKED_POST
4793{
4794 /*Tx Complete Indication Success or Failure*/
4795 tANI_U32 status;
4796}tTxComplParams,*tpTxComplParams;
4797
4798typedef PACKED_PRE struct PACKED_POST
4799{
4800 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004801 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004802}tTxComplIndMsg, *tpTxComplIndMsg;
4803
4804/*---------------------------------------------------------------------------
4805 * WLAN_HAL_HOST_SUSPEND_IND
4806 *-------------------------------------------------------------------------*/
4807
4808typedef PACKED_PRE struct PACKED_POST
4809{
4810 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004811 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004812}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4813
4814typedef PACKED_PRE struct PACKED_POST
4815{
4816 tHalMsgHeader header;
4817 tHalWlanHostSuspendIndParam suspendIndParams;
4818}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4819
4820/*---------------------------------------------------------------------------
4821 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4822 *-------------------------------------------------------------------------*/
4823
4824typedef PACKED_PRE struct PACKED_POST
4825{
4826 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004827 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004828}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4829
4830typedef PACKED_PRE struct PACKED_POST
4831{
4832 tHalMsgHeader header;
4833 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4834}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4835
4836#ifdef WLAN_FEATURE_P2P
4837/*---------------------------------------------------------------------------
4838 *WLAN_HAL_NOA_ATTR_IND
4839 *-------------------------------------------------------------------------*/
4840
4841typedef PACKED_PRE struct PACKED_POST
4842{
4843 tANI_U8 index ;
4844 tANI_U8 oppPsFlag ;
4845 tANI_U16 ctWin ;
4846
4847 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004848 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004849 tANI_U32 uNoa1Duration;
4850 tANI_U32 uNoa1Interval;
4851 tANI_U32 uNoa1StartTime;
4852
4853 tANI_U16 uNoa2IntervalCnt;
4854 tANI_U16 rsvd2;
4855 tANI_U32 uNoa2Duration;
4856 tANI_U32 uNoa2Interval;
4857 tANI_U32 uNoa2StartTime;
4858
4859 tANI_U32 status;
4860}tNoaAttrIndParams, *tpNoaAttrIndParams;
4861
4862typedef PACKED_PRE struct PACKED_POST
4863{
4864 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004865 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004866}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004867
4868/*---------------------------------------------------------------------------
4869 *WLAN_HAL_NOA_START_IND
4870 *-------------------------------------------------------------------------*/
4871
4872typedef PACKED_PRE struct PACKED_POST
4873{
4874 tANI_U32 status;
4875 tANI_U32 bssIdx;
4876}tNoaStartIndParams, *tpNoaStartIndParams;
4877
4878typedef PACKED_PRE struct PACKED_POST
4879{
4880 tHalMsgHeader header;
4881 tNoaStartIndParams noaStartIndParams;
4882}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004883#endif
4884
4885/*---------------------------------------------------------------------------
4886 * WLAN_HAL_HOST_RESUME_REQ
4887 *-------------------------------------------------------------------------*/
4888
4889typedef PACKED_PRE struct PACKED_POST
4890{
4891 tANI_U8 configuredMcstBcstFilterSetting;
4892}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4893
4894typedef PACKED_PRE struct PACKED_POST
4895{
4896 tHalMsgHeader header;
4897 tHalWlanHostResumeReqParam resumeReqParams;
4898}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4899
4900/*---------------------------------------------------------------------------
4901 * WLAN_HAL_HOST_RESUME_RSP
4902 *--------------------------------------------------------------------------*/
4903typedef PACKED_PRE struct PACKED_POST
4904{
4905 /* success or failure */
4906 tANI_U32 status;
4907} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4908
4909typedef PACKED_PRE struct PACKED_POST
4910{
4911 tHalMsgHeader header;
4912 tHalHostResumeRspParams hostResumeRspParams;
4913} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4914
Anand Kumar012623a2013-01-11 17:00:00 -08004915typedef PACKED_PRE struct PACKED_POST
4916{
4917 tANI_U16 staIdx;
4918 // Peer MAC Address, whose BA session has timed out
4919 tSirMacAddr peerMacAddr;
4920 // TID for which a BA session timeout is being triggered
4921 tANI_U8 baTID;
4922 // DELBA direction
4923 // 1 - Originator
4924 // 0 - Recipient
4925 tANI_U8 baDirection;
4926 tANI_U32 reasonCode;
4927 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4928} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4929
4930typedef PACKED_PRE struct PACKED_POST
4931{
4932 tHalMsgHeader header;
4933 tHalWlanDelBaIndMsg hostdelBaParam;
4934} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4935
Jeff Johnson295189b2012-06-20 16:38:30 -07004936/*---------------------------------------------------------------------------
4937 *PNO Messages
4938 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004939/* Max number of channels that a network can be found on*/
4940/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
4941 * be changed at same time
4942 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07004943#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07004944
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304945/*Max number of channels that a network can be found on*/
4946#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4947
Jeff Johnson295189b2012-06-20 16:38:30 -07004948/*Maximum numbers of networks supported by PNO*/
4949#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4950
4951/*The number of scan time intervals that can be programmed into PNO*/
4952#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4953
4954/*Maximum size of the probe template*/
4955#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4956
Jeff Johnson32d95a32012-09-10 13:15:23 -07004957/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004958 Immediate - scanning will start immediately and PNO procedure will
4959 be repeated based on timer
4960 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004961 Resume - scanning will start on system resume
4962 Delay - start the scan timer to trigger PNO scan
4963 */
Jeff Johnson295189b2012-06-20 16:38:30 -07004964typedef enum
4965{
4966 ePNO_MODE_IMMEDIATE,
4967 ePNO_MODE_ON_SUSPEND,
4968 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05304969 ePNO_MODE_DELAY,
4970 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07004971 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4972} ePNOMode;
4973
4974/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004975typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004976{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004977 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004978 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004979
Jeff Johnson295189b2012-06-20 16:38:30 -07004980 // Upper layer authentication types
4981 eAUTH_TYPE_WPA = 2,
4982 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004983
Jeff Johnson295189b2012-06-20 16:38:30 -07004984 eAUTH_TYPE_RSN = 4,
4985 eAUTH_TYPE_RSN_PSK = 5,
4986 eAUTH_TYPE_FT_RSN = 6,
4987 eAUTH_TYPE_FT_RSN_PSK = 7,
4988 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4989 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004990 eAUTH_TYPE_CCKM_WPA = 10,
4991 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004992
Jeff Johnson295189b2012-06-20 16:38:30 -07004993 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4994
4995}tAuthType;
4996
4997/* Encryption type */
4998typedef enum eEdType
4999{
5000 eED_ANY = 0,
5001 eED_NONE = 1,
5002 eED_WEP = 2,
5003 eED_TKIP = 3,
5004 eED_CCMP = 4,
5005 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005006
Jeff Johnson295189b2012-06-20 16:38:30 -07005007 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5008} tEdType;
5009
5010/* SSID broadcast type */
5011typedef enum eSSIDBcastType
5012{
5013 eBCAST_UNKNOWN = 0,
5014 eBCAST_NORMAL = 1,
5015 eBCAST_HIDDEN = 2,
5016
5017 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5018} tSSIDBcastType;
5019
Jeff Johnson32d95a32012-09-10 13:15:23 -07005020/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005021 The network description for which PNO will have to look for
5022*/
5023typedef PACKED_PRE struct PACKED_POST
5024{
5025 /*SSID of the BSS*/
5026 tSirMacSSid ssId;
5027
5028 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005029 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005030
5031 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005032 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005033
Jeff Johnson32d95a32012-09-10 13:15:23 -07005034 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005035 0 - if all channels */
5036 tANI_U8 ucChannelCount;
5037 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5038
5039 /*Indicates the RSSI threshold for the network to be considered*/
5040 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005041}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005042
5043typedef PACKED_PRE struct PACKED_POST
5044{
5045 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005046 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005047
Jeff Johnson32d95a32012-09-10 13:15:23 -07005048 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005049 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005050 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005051
Jeff Johnson32d95a32012-09-10 13:15:23 -07005052 /*e.g: 2 3
5053 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005054 - it will wait 2s between consecutive scans for 3 times
5055 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005056}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005057
Jeff Johnson32d95a32012-09-10 13:15:23 -07005058/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005059 The network parameters to be sent to the PNO algorithm
5060*/
5061typedef PACKED_PRE struct PACKED_POST
5062{
5063 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005064 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005065
Jeff Johnson32d95a32012-09-10 13:15:23 -07005066 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005067 two consecutive scan procedures
5068 If the desired is for a uniform timer that fires always at the exact same
5069 interval - one single value is to be set
5070 If there is a desire for a more complex - telescopic like timer multiple
5071 values can be set - once PNO reaches the end of the array it will
5072 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005073 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005074
5075}tScanTimersType;
5076
5077typedef PACKED_PRE struct PACKED_POST {
5078
5079 /*Enable PNO*/
5080 tANI_U32 enable;
5081
5082 /*Immediate, On Suspend, On Resume*/
5083 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005084
Jeff Johnson295189b2012-06-20 16:38:30 -07005085 /*Number of networks sent for PNO*/
5086 tANI_U32 ucNetworksCount;
5087
5088 /*The networks that PNO needs to look for*/
5089 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5090
5091 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005092 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005093
5094 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005095 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005096 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5097
5098 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005099 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005100 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5101
5102} tPrefNetwListParams, * tpPrefNetwListParams;
5103
5104/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005105 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005106*/
5107typedef PACKED_PRE struct PACKED_POST
5108{
5109 tHalMsgHeader header;
5110 tPrefNetwListParams prefNetwListParams;
5111} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5112
5113
Jeff Johnson32d95a32012-09-10 13:15:23 -07005114/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005115 The network description for which PNO will have to look for
5116*/
5117typedef PACKED_PRE struct PACKED_POST
5118{
5119 /*SSID of the BSS*/
5120 tSirMacSSid ssId;
5121
5122 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005123 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005124
5125 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005126 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005127
5128 /*SSID broadcast type, normal, hidden or unknown*/
5129 tSSIDBcastType bcastNetworkType;
5130
Jeff Johnson32d95a32012-09-10 13:15:23 -07005131 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005132 0 - if all channels */
5133 tANI_U8 ucChannelCount;
5134 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5135
5136 /*Indicates the RSSI threshold for the network to be considered*/
5137 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005138}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005139
5140typedef PACKED_PRE struct PACKED_POST {
5141
5142 /*Enable PNO*/
5143 tANI_U32 enable;
5144
5145 /*Immediate, On Suspend, On Resume*/
5146 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005147
Jeff Johnson295189b2012-06-20 16:38:30 -07005148 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005149 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005150
5151 /*The networks that PNO needs to look for*/
5152 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5153
5154 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005155 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005156
5157 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005158 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005159 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5160
5161 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005162 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005163 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5164
5165} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5166
5167/*
5168 Preferred network list request new
5169*/
5170typedef PACKED_PRE struct PACKED_POST
5171{
5172 tHalMsgHeader header;
5173 tPrefNetwListParamsNew prefNetwListParams;
5174} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5175
5176/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005177 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005178*/
5179typedef PACKED_PRE struct PACKED_POST
5180{
5181 tHalMsgHeader header;
5182
Jeff Johnson32d95a32012-09-10 13:15:23 -07005183 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005184 the request and will start scanning*/
5185 tANI_U32 status;
5186} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5187
5188/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005189 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005190*/
5191typedef PACKED_PRE struct PACKED_POST {
5192
5193 /*Network that was found with the highest RSSI*/
5194 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005195
Jeff Johnson295189b2012-06-20 16:38:30 -07005196 /*Indicates the RSSI */
5197 tANI_U8 rssi;
5198
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005199 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
Gopichand Nakkalaa14f43b2013-05-14 00:08:53 +05305200 tANI_U16 frameLength;
5201
Jeff Johnson295189b2012-06-20 16:38:30 -07005202} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5203
5204/*
5205 Preferred network found indication
5206*/
5207typedef PACKED_PRE struct PACKED_POST {
5208
5209 tHalMsgHeader header;
5210 tPrefNetwFoundParams prefNetwFoundParams;
5211} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5212
5213
5214typedef PACKED_PRE struct PACKED_POST {
5215
5216 /*RSSI Threshold*/
5217 tANI_U8 ucRssiThreshold;
5218
5219} tRssiFilterParams, * tpRssiFilterParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005220#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5221typedef PACKED_PRE struct PACKED_POST
5222{
5223 tSirMacSSid ssId;
5224 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5225 tANI_U32 authentication;
5226 tEdType encryption;
5227 tEdType mcencryption;
5228 tANI_U8 ChannelCount;
5229 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5230}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005231
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005232typedef PACKED_PRE struct PACKED_POST
5233{
5234 tANI_U8 mdiePresent;
5235 tANI_U16 mobilityDomain;
5236}tMobilityDomainInfo;
5237
5238typedef PACKED_PRE struct PACKED_POST {
5239 eAniBoolean RoamScanOffloadEnabled;
5240 tANI_S8 LookupThreshold;
5241 tANI_U8 RoamRssiDiff;
5242 tANI_U8 ChannelCacheType;
5243 tANI_U8 Command;
5244 tANI_U8 StartScanReason;
5245 tANI_U16 NeighborScanTimerPeriod;
5246 tANI_U16 NeighborRoamScanRefreshPeriod;
5247 tANI_U16 NeighborScanChannelMinTime;
5248 tANI_U16 NeighborScanChannelMaxTime;
5249 tANI_U16 EmptyRefreshScanPeriod;
5250 tANI_U8 ValidChannelCount;
5251 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5252 eAniBoolean IsCCXEnabled;
5253
5254 tANI_U16 us24GProbeSize;
5255 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5256 tANI_U16 us5GProbeSize;
5257 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5258 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005259 tANI_U8 nProbes;
5260 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005261 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5262 tRoamNetworkType ConnectedNetwork;
5263 tMobilityDomainInfo MDID;
5264} tRoamCandidateListParams, * tpRoamCandidateListParams;
5265
5266typedef PACKED_PRE struct PACKED_POST
5267{
5268 tHalMsgHeader header;
5269 tRoamCandidateListParams RoamScanOffloadNetwListParams;
5270} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5271
5272typedef PACKED_PRE struct PACKED_POST
5273{
5274 tHalMsgHeader header;
5275
5276 /*status of the request - just to indicate that PNO has acknowledged
5277 * the request and will start scanning*/
5278 tANI_U32 status;
5279} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5280#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005281/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005282 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005283*/
5284typedef PACKED_PRE struct PACKED_POST
5285{
5286 tHalMsgHeader header;
5287 tRssiFilterParams prefRSSIFilterParams;
5288} tSetRssiFilterReq, *tpSetRssiFilterReq;
5289
5290/*
5291 Set RSSI filter resp
5292*/
5293typedef PACKED_PRE struct PACKED_POST{
5294 tHalMsgHeader header;
5295 /*status of the request */
5296 tANI_U32 status;
5297} tSetRssiFilterResp, *tpSetRssiFilterResp;
5298/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005299 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005300*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005301typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005302{
5303
5304 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005305 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005306
5307 /*Lets PNO know that host has determined the regulatory domain*/
5308 tANI_U8 b11dResolved;
5309
5310 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005311 tANI_U8 ucChannelCount;
5312 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005313
5314 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005315 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005316
5317 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005318 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005319
5320 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005321 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005322
5323 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005324 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005325
5326 /*Cb State*/
5327 ePhyChanBondState cbState;
5328
5329} tUpdateScanParams, * tpUpdateScanParams;
5330
5331/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305332 Update scan params
5333*/
5334typedef PACKED_PRE struct PACKED_POST
5335{
5336
5337 /*Host setting for 11d*/
5338 tANI_U8 b11dEnabled;
5339
5340 /*Lets PNO know that host has determined the regulatory domain*/
5341 tANI_U8 b11dResolved;
5342
5343 /*Channels on which PNO is allowed to scan*/
5344 tANI_U8 ucChannelCount;
5345 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5346
5347 /*Minimum channel time*/
5348 tANI_U16 usActiveMinChTime;
5349
5350 /*Maximum channel time*/
5351 tANI_U16 usActiveMaxChTime;
5352
5353 /*Minimum channel time*/
5354 tANI_U16 usPassiveMinChTime;
5355
5356 /*Maximum channel time*/
5357 tANI_U16 usPassiveMaxChTime;
5358
5359 /*Cb State*/
5360 ePhyChanBondState cbState;
5361
5362} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5363
5364/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005365 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005366 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005367*/
5368typedef PACKED_PRE struct PACKED_POST{
5369
5370 tHalMsgHeader header;
5371 tUpdateScanParams scanParams;
5372} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5373
5374/*
5375 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005376 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005377*/
5378typedef PACKED_PRE struct PACKED_POST{
5379
5380 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305381 tUpdateScanParamsEx scanParams;
5382} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5383
5384/*
5385 Update scan params - sent from host to PNO
5386 to be used during PNO scanning
5387*/
5388typedef PACKED_PRE struct PACKED_POST{
5389
5390 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005391
5392 /*status of the request */
5393 tANI_U32 status;
5394
5395} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5396
5397/*---------------------------------------------------------------------------
5398 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5399 *--------------------------------------------------------------------------*/
5400typedef PACKED_PRE struct PACKED_POST
5401{
5402 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5403 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5404 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5405 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5406} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5407
5408typedef PACKED_PRE struct PACKED_POST
5409{
5410 tHalMsgHeader header;
5411 tHalTxPerTrackingReqParam txPerTrackingParams;
5412} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5413
5414/*---------------------------------------------------------------------------
5415 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5416 *--------------------------------------------------------------------------*/
5417typedef PACKED_PRE struct PACKED_POST
5418{
5419 /* success or failure */
5420 tANI_U32 status;
5421} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5422
5423typedef PACKED_PRE struct PACKED_POST
5424{
5425 tHalMsgHeader header;
5426 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5427} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5428
5429/*---------------------------------------------------------------------------
5430 * WLAN_HAL_TX_PER_HIT_IND
5431 *--------------------------------------------------------------------------*/
5432typedef PACKED_PRE struct PACKED_POST
5433{
5434 tHalMsgHeader header;
5435}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5436
5437/*---------------------------------------------------------------------------
5438 *******************Packet Filtering Definitions Begin*******************
5439 *--------------------------------------------------------------------------*/
5440#define HAL_PROTOCOL_DATA_LEN 8
5441#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5442#define HAL_MAX_NUM_FILTERS 20
5443#define HAL_MAX_CMP_PER_FILTER 10
5444
5445typedef enum
5446{
5447 HAL_RCV_FILTER_TYPE_INVALID,
5448 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5449 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5450 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5451}tHalReceivePacketFilterType;
5452
Jeff Johnson32d95a32012-09-10 13:15:23 -07005453typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005454{
5455 HAL_FILTER_PROTO_TYPE_INVALID,
5456 HAL_FILTER_PROTO_TYPE_MAC,
5457 HAL_FILTER_PROTO_TYPE_ARP,
5458 HAL_FILTER_PROTO_TYPE_IPV4,
5459 HAL_FILTER_PROTO_TYPE_IPV6,
5460 HAL_FILTER_PROTO_TYPE_UDP,
5461 HAL_FILTER_PROTO_TYPE_MAX
5462}tHalRcvPktFltProtocolType;
5463
Jeff Johnson32d95a32012-09-10 13:15:23 -07005464typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005465{
5466 HAL_FILTER_CMP_TYPE_INVALID,
5467 HAL_FILTER_CMP_TYPE_EQUAL,
5468 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5469 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5470 HAL_FILTER_CMP_TYPE_MAX
5471}tHalRcvPktFltCmpFlagType;
5472
Jeff Johnson32d95a32012-09-10 13:15:23 -07005473typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005474{
5475 tANI_U8 protocolLayer;
5476 tANI_U8 cmpFlag;
5477 tANI_U16 dataLength; /* Length of the data to compare */
5478 tANI_U8 dataOffset; /* from start of the respective frame header */
5479 tANI_U8 reserved; /* Reserved field */
5480 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5481 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5482}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5483
5484typedef PACKED_PRE struct PACKED_POST
5485{
5486 tANI_U8 filterId;
5487 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005488 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005489 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005490 tHalRcvPktFilterParams paramsData[1];
5491}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5492
5493typedef PACKED_PRE struct PACKED_POST
5494{
Jeff Johnsone7245742012-09-05 17:12:55 -07005495 tANI_U8 filterId;
5496 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005497 tANI_U8 numParams;
5498 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005499 tANI_U8 bssIdx;
5500 tHalRcvPktFilterParams paramsData[1];
5501}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5502
5503typedef PACKED_PRE struct PACKED_POST
5504{
Jeff Johnson295189b2012-06-20 16:38:30 -07005505 tHalMsgHeader header;
5506 tHalRcvPktFilterCfgType pktFilterCfg;
5507} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5508
Jeff Johnsone7245742012-09-05 17:12:55 -07005509typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005510{
5511 tANI_U8 dataOffset; /* from start of the respective frame header */
5512 tANI_U32 cMulticastAddr;
5513 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005514 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005515} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5516
5517typedef PACKED_PRE struct PACKED_POST
5518{
5519 /* success or failure */
5520 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005521 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005522} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5523
5524typedef PACKED_PRE struct PACKED_POST
5525{
5526 tHalMsgHeader header;
5527 tHalSetPktFilterRspParams pktFilterRspParams;
5528} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5529
Jeff Johnsone7245742012-09-05 17:12:55 -07005530typedef PACKED_PRE struct PACKED_POST
5531{
5532 tANI_U8 bssIdx;
5533} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005534
5535typedef PACKED_PRE struct PACKED_POST
5536{
5537 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005538 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005539} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5540
Jeff Johnsone7245742012-09-05 17:12:55 -07005541
Jeff Johnson295189b2012-06-20 16:38:30 -07005542typedef PACKED_PRE struct PACKED_POST
5543{
5544 tANI_U8 filterId;
5545 tANI_U32 matchCnt;
5546} tHalRcvFltPktMatchCnt;
5547typedef PACKED_PRE struct PACKED_POST
5548{
5549 /* Success or Failure */
5550 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005551 tANI_U32 matchCnt;
5552 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005553 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005554} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5555
5556typedef PACKED_PRE struct PACKED_POST
5557{
5558 tHalMsgHeader header;
5559 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5560} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5561
5562typedef PACKED_PRE struct PACKED_POST
5563{
5564 tANI_U32 status; /* only valid for response message */
5565 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005566 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005567}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5568
5569typedef PACKED_PRE struct PACKED_POST
5570{
5571 tHalMsgHeader header;
5572 tHalRcvFltPktClearParam filterClearParam;
5573} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5574
5575typedef PACKED_PRE struct PACKED_POST
5576{
5577 tHalMsgHeader header;
5578 tHalRcvFltPktClearParam filterClearParam;
5579} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5580
5581typedef PACKED_PRE struct PACKED_POST
5582{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005583 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005584 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005585}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5586
5587typedef PACKED_PRE struct PACKED_POST
5588{
5589 tHalMsgHeader header;
5590 tHalRcvFltMcAddrListType mcAddrList;
5591} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5592
5593typedef PACKED_PRE struct PACKED_POST
5594{
5595 tHalMsgHeader header;
5596 tHalRcvFltPktSetMcListRspType rspParam;
5597} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5598
5599
5600/*---------------------------------------------------------------------------
5601 *******************Packet Filtering Definitions End*******************
5602 *--------------------------------------------------------------------------*/
5603
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005604/*
5605 * There are two versions of this message
5606 * Version 1 : Base version
5607 * Current version : Base version + Max LI modulated DTIM
5608 */
5609typedef PACKED_PRE struct PACKED_POST
5610{
5611 /* Ignore DTIM */
5612 tANI_U32 uIgnoreDTIM;
5613
5614 /*DTIM Period*/
5615 tANI_U32 uDTIMPeriod;
5616
5617 /* Listen Interval */
5618 tANI_U32 uListenInterval;
5619
5620 /* Broadcast Multicast Filter */
5621 tANI_U32 uBcastMcastFilter;
5622
5623 /* Beacon Early Termination */
5624 tANI_U32 uEnableBET;
5625
5626 /* Beacon Early Termination Interval */
5627 tANI_U32 uBETInterval;
5628}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
5629
5630typedef PACKED_PRE struct PACKED_POST
5631{
5632 tHalMsgHeader header;
5633 tSetPowerParamsVer1Type powerParams;
5634} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
5635
Jeff Johnson295189b2012-06-20 16:38:30 -07005636typedef PACKED_PRE struct PACKED_POST
5637{
5638 /* Ignore DTIM */
5639 tANI_U32 uIgnoreDTIM;
5640
5641 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005642 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005643
5644 /* Listen Interval */
5645 tANI_U32 uListenInterval;
5646
5647 /* Broadcast Multicast Filter */
5648 tANI_U32 uBcastMcastFilter;
5649
5650 /* Beacon Early Termination */
5651 tANI_U32 uEnableBET;
5652
5653 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005654 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07005655
5656 /* MAX LI for modulated DTIM */
5657 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07005658}tSetPowerParamsType, *tpSetPowerParamsType;
5659
5660typedef PACKED_PRE struct PACKED_POST
5661{
5662 tHalMsgHeader header;
5663 tSetPowerParamsType powerParams;
5664} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5665
5666typedef PACKED_PRE struct PACKED_POST{
5667
5668 tHalMsgHeader header;
5669
5670 /*status of the request */
5671 tANI_U32 status;
5672
5673} tSetPowerParamsResp, *tpSetPowerParamsResp;
5674
5675/*---------------------------------------------------------------------------
5676 ****************Capability bitmap exchange definitions and macros starts*************
5677 *--------------------------------------------------------------------------*/
5678
Anand Kumar012623a2013-01-11 17:00:00 -08005679typedef enum {
5680 MCC = 0,
5681 P2P = 1,
5682 DOT11AC = 2,
5683 SLM_SESSIONIZATION = 3,
5684 DOT11AC_OPMODE = 4,
5685 SAP32STA = 5,
5686 TDLS = 6,
5687 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5688 WLANACTIVE_OFFLOAD = 8,
5689 BEACON_OFFLOAD = 9,
5690 SCAN_OFFLOAD = 10,
5691 ROAM_OFFLOAD = 11,
5692 BCN_MISS_OFFLOAD = 12,
5693 STA_POWERSAVE = 13,
5694 STA_ADVANCED_PWRSAVE = 14,
5695 AP_UAPSD = 15,
5696 AP_DFS = 16,
5697 BLOCKACK = 17,
5698 PHY_ERR = 18,
5699 BCN_FILTER = 19,
5700 RTT = 20,
5701 RATECTRL = 21,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005702 WOW = 22,
5703 WLAN_ROAM_SCAN_OFFLOAD = 23,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005704 SPECULATIVE_PS_POLL = 24,
5705 SCAN_SCH = 25,
5706 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08005707} placeHolderInCapBitmap;
5708
Jeff Johnson295189b2012-06-20 16:38:30 -07005709typedef PACKED_PRE struct PACKED_POST{
5710
5711 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005712} tWlanFeatCaps, *tpWlanFeatCaps;
5713
5714typedef PACKED_PRE struct PACKED_POST{
5715
Jeff Johnson32d95a32012-09-10 13:15:23 -07005716 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005717 tWlanFeatCaps wlanFeatCaps;
5718
5719} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5720
Jeff Johnsone7245742012-09-05 17:12:55 -07005721#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5722#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005723#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005724#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005725#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5726#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
5727#endif
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005728
Jeff Johnsone7245742012-09-05 17:12:55 -07005729tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5730
Jeff Johnson295189b2012-06-20 16:38:30 -07005731#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005732 if ((b)<=127) { \
5733 arr_index = (b)/32; \
5734 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005735 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07005736 (a)->featCaps[arr_index] |= (1<<bit_index); \
5737 } \
5738 }
5739#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005740 if ((b)<=127) { \
5741 arr_index = (b)/32; \
5742 bit_index = (b)%32; \
5743 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005744 } \
5745 }
5746#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005747 if ((b)<=127) { \
5748 arr_index = (b)/32; \
5749 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005750 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005751 } \
5752 }
5753
5754/*---------------------------------------------------------------------------
5755 * WLAN_HAL_WAKE_REASON_IND
5756 *--------------------------------------------------------------------------*/
5757
5758/* status codes to help debug rekey failures */
5759typedef enum
5760{
5761 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5762 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5763 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5764 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5765 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5766 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5767 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5768 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5769 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5770 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5771
5772 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5773} tGTKRekeyStatus;
5774
5775/* wake reason types */
5776typedef enum
5777{
5778 WLAN_HAL_WAKE_REASON_NONE = 0,
5779 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5780 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5781 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5782 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5783 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5784 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5785 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5786} tWakeReasonType;
5787
5788/*
5789 Wake Packet which is saved at tWakeReasonParams.DataStart
5790 This data is sent for any wake reasons that involve a packet-based wakeup :
5791
5792 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5793 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5794 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5795 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5796 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5797
5798 The information is provided to the host for auditing and debug purposes
5799
5800*/
5801
5802/*
5803 Wake reason indication parameters
5804*/
5805typedef PACKED_PRE struct PACKED_POST
5806{
5807 uint32 ulReason; /* see tWakeReasonType */
5808 uint32 ulReasonArg; /* argument specific to the reason type */
5809 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5810 HAL truncates the data (i.e. data packets) this length
5811 will be less than the actual length */
5812 uint32 ulActualDataLen; /* actual length of data */
5813 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5814 see specific wake type */
5815} tWakeReasonParams, *tpWakeReasonParams;
5816
5817/*
5818 Wake reason indication
5819*/
5820typedef PACKED_PRE struct PACKED_POST
5821{
5822 tHalMsgHeader header;
5823 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005824 tANI_U32 uBssIdx : 8;
5825 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005826} tHalWakeReasonInd, *tpHalWakeReasonInd;
5827
5828/*---------------------------------------------------------------------------
5829* WLAN_HAL_GTK_OFFLOAD_REQ
5830*--------------------------------------------------------------------------*/
5831
5832#define HAL_GTK_KEK_BYTES 16
5833#define HAL_GTK_KCK_BYTES 16
5834
5835#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5836
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005837#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5838
Jeff Johnson295189b2012-06-20 16:38:30 -07005839typedef PACKED_PRE struct PACKED_POST
5840{
5841 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005842 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005843 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5844 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005845 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005846} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5847
5848typedef PACKED_PRE struct PACKED_POST
5849{
5850 tHalMsgHeader header;
5851 tHalGtkOffloadReqParams gtkOffloadReqParams;
5852} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5853
5854/*---------------------------------------------------------------------------
5855* WLAN_HAL_GTK_OFFLOAD_RSP
5856*--------------------------------------------------------------------------*/
5857typedef PACKED_PRE struct PACKED_POST
5858{
5859 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005860 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005861} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5862
5863typedef PACKED_PRE struct PACKED_POST
5864{
5865 tHalMsgHeader header;
5866 tHalGtkOffloadRspParams gtkOffloadRspParams;
5867} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5868
5869
5870/*---------------------------------------------------------------------------
5871* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5872*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005873typedef PACKED_PRE struct PACKED_POST
5874{
5875 tANI_U8 bssIdx;
5876
5877} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005878
5879typedef PACKED_PRE struct PACKED_POST
5880{
5881 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005882 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005883} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5884
5885/*---------------------------------------------------------------------------
5886* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5887*--------------------------------------------------------------------------*/
5888typedef PACKED_PRE struct PACKED_POST
5889{
5890 tANI_U32 ulStatus; /* success or failure */
5891 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5892 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5893 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5894 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5895 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005896 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005897} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5898
5899typedef PACKED_PRE struct PACKED_POST
5900{
5901 tHalMsgHeader header;
5902 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5903} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5904
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005905/*---------------------------------------------------------------------------
5906* WLAN_HAL_DHCP_IND
5907*--------------------------------------------------------------------------*/
5908typedef PACKED_PRE struct PACKED_POST
5909{
5910 /*Indicates the device mode which indicates about the DHCP activity */
5911 tANI_U8 device_mode;
5912 tSirMacAddr macAddr;
5913} tDHCPInfo, *tpDHCPInfo;
5914
5915typedef PACKED_PRE struct PACKED_POST
5916{
5917 tHalMsgHeader header;
5918 tANI_U32 status; /* success or failure */
5919} tDHCPIndStatus, *tpDHCPIndstatus;
5920
Jeff Johnson295189b2012-06-20 16:38:30 -07005921/*
5922 Thermal Mitigation mode of operation.
5923 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5924 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5925 reducing transmit power
5926 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5927*/
5928typedef enum
5929{
5930 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5931 HAL_THERMAL_MITIGATION_MODE_0,
5932 HAL_THERMAL_MITIGATION_MODE_1,
5933 HAL_THERMAL_MITIGATION_MODE_2,
5934 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5935}tHalThermalMitigationModeType;
5936//typedef tANI_S16 tHalThermalMitigationModeType;
5937
5938/*
5939 Thermal Mitigation level.
5940 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5941 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5942
5943 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5944 level indicates normal mode of operation
5945 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5946 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5947 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5948 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5949*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005950typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005951{
5952 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5953 HAL_THERMAL_MITIGATION_LEVEL_0,
5954 HAL_THERMAL_MITIGATION_LEVEL_1,
5955 HAL_THERMAL_MITIGATION_LEVEL_2,
5956 HAL_THERMAL_MITIGATION_LEVEL_3,
5957 HAL_THERMAL_MITIGATION_LEVEL_4,
5958 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5959}tHalThermalMitigationLevelType;
5960//typedef tANI_S16 tHalThermalMitigationLevelType;
5961
5962typedef PACKED_PRE struct PACKED_POST
5963{
5964 /* Thermal Mitigation Operation Mode */
5965 tHalThermalMitigationModeType thermalMitMode;
5966
5967 /* Thermal Mitigation Level */
5968 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005969
Jeff Johnson295189b2012-06-20 16:38:30 -07005970}tSetThermalMitgationType, *tpSetThermalMitgationType;
5971
5972/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5973typedef PACKED_PRE struct PACKED_POST
5974{
5975 tHalMsgHeader header;
5976 tSetThermalMitgationType thermalMitParams;
5977} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5978
5979typedef PACKED_PRE struct PACKED_POST{
5980
5981 tHalMsgHeader header;
5982
5983 /*status of the request */
5984 tANI_U32 status;
5985
5986} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5987
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08005988/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
5989provided to FW from Host via periodic messages */
5990typedef PACKED_PRE struct PACKED_POST {
5991 /* TX stats */
5992 uint32 txBytesPushed;
5993 uint32 txPacketsPushed;
5994
5995 /* RX stats */
5996 uint32 rxBytesRcvd;
5997 uint32 rxPacketsRcvd;
5998 uint32 rxTimeTotal;
5999} tStaStatsClassB, *tpStaStatsClassB;
6000
6001typedef PACKED_PRE struct PACKED_POST {
6002
6003 /* Duration over which this stats was collected */
6004 tANI_U32 duration;
6005
6006 /* Per STA Stats */
6007 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6008} tStatsClassBIndParams, *tpStatsClassBIndParams;
6009
6010typedef PACKED_PRE struct PACKED_POST {
6011
6012 tHalMsgHeader header;
6013
6014 /* Class B Stats */
6015 tStatsClassBIndParams statsClassBIndParams;
6016} tStatsClassBInd, *tpStatsClassBInd;
6017
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306018/*Wifi Proximity paramters in AP mode*/
6019#ifdef FEATURE_WIFI_PROXIMITY
6020
6021typedef PACKED_PRE struct PACKED_POST{
6022
6023 tANI_U8 wifiProximityChannel;
6024 tANI_U32 wifiProximityDuration;
6025 tANI_U32 wifiProximityInterval;
6026 tANI_U32 wifiProximityMode;
6027 tANI_U32 wifiProximityStatus;
6028 tSirMacAddr bssId;
6029 tSirMacSSid ssId;
6030
6031} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6032
6033typedef PACKED_PRE struct PACKED_POST
6034{
6035 tHalMsgHeader header;
6036
6037 tSetWifiProximityReqParam wifiProximityReqParams;
6038
6039}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6040
6041/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6042typedef PACKED_PRE struct PACKED_POST{
6043
6044 tHalMsgHeader header;
6045
6046 /*status of the request */
6047 tANI_U32 status;
6048
6049} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6050
6051#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006052
6053#ifdef FEATURE_SPECULATIVE_PS_POLL
6054/*---------------------------------------------------------------------------
6055 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6056 *--------------------------------------------------------------------------*/
6057typedef PACKED_PRE struct PACKED_POST
6058{
6059 tANI_U8 bssIdx;
6060 tANI_U16 serviceInterval;
6061 tANI_U16 suspendInterval;
6062 tANI_U8 acMask;
6063} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6064
6065typedef PACKED_PRE struct PACKED_POST
6066{
6067 tHalMsgHeader header;
6068 tHalStartSpecPsPollReqParams specPsPollReq;
6069} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6070
6071/*---------------------------------------------------------------------------
6072 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6073 *--------------------------------------------------------------------------*/
6074typedef PACKED_PRE struct PACKED_POST
6075{
6076 /* success or failure */
6077 tANI_U32 status;
6078 tANI_U8 bssIdx;
6079} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6080
6081typedef PACKED_PRE struct PACKED_POST
6082{
6083 tHalMsgHeader header;
6084 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6085} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6086
6087/*---------------------------------------------------------------------------
6088 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6089 *--------------------------------------------------------------------------*/
6090typedef PACKED_PRE struct PACKED_POST
6091{
6092 tHalMsgHeader header;
6093 tANI_U8 bssIdx;
6094} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6095#endif
6096
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306097#ifdef FEATURE_WLAN_TDLS
6098/*---------------------------------------------------------------------------
6099 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6100 *-------------------------------------------------------------------------*/
6101typedef PACKED_PRE struct PACKED_POST
6102{
6103 /*STA Index*/
6104 tANI_U16 staIdx;
6105
6106 /* if this is 1, self is initiator and peer is reponder */
6107 tANI_U8 bIsResponder;
6108
6109 /* QoS Info */
6110 tANI_U8 acVOUAPSDFlag:1;
6111 tANI_U8 acVIUAPSDFlag:1;
6112 tANI_U8 acBKUAPSDFlag:1;
6113 tANI_U8 acBEUAPSDFlag:1;
6114 tANI_U8 aAck:1;
6115 tANI_U8 maxServicePeriodLength:2;
6116 tANI_U8 moreDataAck:1;
6117
6118 /*TDLS Peer U-APSD Buffer STA Support*/
6119 tANI_U8 TPUBufferStaSupport;
6120
6121}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6122
6123typedef PACKED_PRE struct PACKED_POST
6124{
6125 tHalMsgHeader header;
6126 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6127} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6128
6129/*---------------------------------------------------------------------------
6130 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6131 *-------------------------------------------------------------------------*/
6132
6133typedef PACKED_PRE struct PACKED_POST
6134{
6135 tANI_U32 status;
6136
6137 /*STA Index*/
6138 tANI_U16 staIdx;
6139} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6140
6141typedef PACKED_PRE struct PACKED_POST
6142{
6143 tHalMsgHeader header;
6144 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6145} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6146
6147/*---------------------------------------------------------------------------
6148 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6149 *-------------------------------------------------------------------------*/
6150typedef PACKED_PRE struct PACKED_POST
6151{
6152 /*STA Index*/
6153 tANI_U16 staIdx;
6154}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6155
6156typedef PACKED_PRE struct PACKED_POST
6157{
6158 tHalMsgHeader header;
6159 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6160} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6161
6162/*---------------------------------------------------------------------------
6163 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6164 *-------------------------------------------------------------------------*/
6165
6166typedef PACKED_PRE struct PACKED_POST
6167{
6168 tANI_U32 status;
6169
6170 /*STA Index*/
6171 tANI_U16 staIdx;
6172} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6173
6174typedef PACKED_PRE struct PACKED_POST
6175{
6176 tHalMsgHeader header;
6177 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6178} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6179
6180/*---------------------------------------------------------------------------
6181 *WLAN_HAL_TDLS_IND
6182 *--------------------------------------------------------------------------*/
6183
6184typedef PACKED_PRE struct PACKED_POST
6185{
6186 tANI_U16 assocId;
6187 tANI_U16 staIdx;
6188 tANI_U16 status;
6189 tANI_U16 reasonCode;
6190}tTdlsIndParams, *tpTdlsIndParams;
6191
6192
6193typedef PACKED_PRE struct PACKED_POST
6194{
6195 tHalMsgHeader header;
6196 tTdlsIndParams tdlsIndParams;
6197}tTdlsIndMsg, *tpTdlsIndMsg;
6198
6199#endif
6200
Jeff Johnson295189b2012-06-20 16:38:30 -07006201#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6202#pragma pack(pop)
6203#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6204#else
6205#endif
6206
6207#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006208