blob: 123323982745ce77dff2c8581d07b9a311604449 [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
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001647// IFACE PERSONA for different Operating modes
1648typedef enum
1649{
1650 HAL_IFACE_UNKNOWN,
1651 HAL_IFACE_STA_MODE,
1652 HAL_IFACE_P2P_MODE,
1653 HAL_IFACE_MAX
1654} tHalIfacePersona;
1655
Jeff Johnson295189b2012-06-20 16:38:30 -07001656typedef PACKED_PRE struct PACKED_POST
1657{
1658 /* BSSID */
1659 tSirMacAddr bssId;
1660
Jeff Johnson295189b2012-06-20 16:38:30 -07001661 /* Self Mac Address */
1662 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001663
1664 /* BSS type */
1665 tSirBssType bssType;
1666
1667 /*Operational Mode: AP =0, STA = 1*/
1668 tANI_U8 operMode;
1669
1670 /*Network Type*/
1671 tSirNwType nwType;
1672
1673 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1674 tANI_U8 shortSlotTimeSupported;
1675
1676 /*Co-exist with 11a STA*/
1677 tANI_U8 llaCoexist;
1678
1679 /*Co-exist with 11b STA*/
1680 tANI_U8 llbCoexist;
1681
1682 /*Co-exist with 11g STA*/
1683 tANI_U8 llgCoexist;
1684
1685 /*Coexistence with 11n STA*/
1686 tANI_U8 ht20Coexist;
1687
1688 /*Non GF coexist flag*/
1689 tANI_U8 llnNonGFCoexist;
1690
1691 /*TXOP protection support*/
1692 tANI_U8 fLsigTXOPProtectionFullSupport;
1693
1694 /*RIFS mode*/
1695 tANI_U8 fRIFSMode;
1696
1697 /*Beacon Interval in TU*/
1698 tSirMacBeaconInterval beaconInterval;
1699
1700 /*DTIM period*/
1701 tANI_U8 dtimPeriod;
1702
1703 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1704 tANI_U8 txChannelWidthSet;
1705
1706 /*Operating channel*/
1707 tANI_U8 currentOperChannel;
1708
1709 /*Extension channel for channel bonding*/
1710 tANI_U8 currentExtChannel;
1711
1712 /*Reserved to align next field on a dword boundary*/
1713 tANI_U8 reserved;
1714
Jeff Johnsone7245742012-09-05 17:12:55 -07001715 /*SSID of the BSS*/
1716 tSirMacSSid ssId;
1717
1718 /*HAL should update the existing BSS entry, if this flag is set.
1719 UMAC will set this flag in case of reassoc, where we want to resue the
1720 the old BSSID and still return success 0 = Add, 1 = Update*/
1721 tANI_U8 action;
1722
1723 /* MAC Rate Set */
1724 tSirMacRateSet rateSet;
1725
1726 /*Enable/Disable HT capabilities of the BSS*/
1727 tANI_U8 htCapable;
1728
1729 // Enable/Disable OBSS protection
1730 tANI_U8 obssProtEnabled;
1731
1732 /*RMF enabled/disabled*/
1733 tANI_U8 rmfEnabled;
1734
1735 /*HT Operating Mode operating mode of the 802.11n STA*/
1736 tSirMacHTOperatingMode htOperMode;
1737
1738 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1739 tANI_U8 dualCTSProtection;
1740
1741 /* Probe Response Max retries */
1742 tANI_U8 ucMaxProbeRespRetryLimit;
1743
1744 /* To Enable Hidden ssid */
1745 tANI_U8 bHiddenSSIDEn;
1746
1747 /* To Enable Disable FW Proxy Probe Resp */
1748 tANI_U8 bProxyProbeRespEn;
1749
1750 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1751 EDCA params or might not desire to apply EDCA params during config BSS.
1752 0 implies Not Valid ; Non-Zero implies valid*/
1753 tANI_U8 edcaParamsValid;
1754
1755 /*EDCA Parameters for Best Effort Access Category*/
1756 tSirMacEdcaParamRecord acbe;
1757
1758 /*EDCA Parameters forBackground Access Category*/
1759 tSirMacEdcaParamRecord acbk;
1760
1761 /*EDCA Parameters for Video Access Category*/
1762 tSirMacEdcaParamRecord acvi;
1763
1764 /*EDCA Parameters for Voice Access Category*/
1765 tSirMacEdcaParamRecord acvo;
1766
1767#ifdef WLAN_FEATURE_VOWIFI_11R
1768 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1769 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1770#endif
1771
1772 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1773 tANI_U8 halPersona;
1774
1775 tANI_U8 bSpectrumMgtEnable;
1776
1777 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1778 tANI_S8 txMgmtPower;
1779 /*maxTxPower has max power to be used after applying the power constraint if any */
1780 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001781 /*Context of the station being added in HW
1782 Add a STA entry for "itself" -
1783 On AP - Add the AP itself in an "STA context"
1784 On STA - Add the AP to which this STA is joining in an "STA context" */
1785 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001786} tConfigBssParams, * tpConfigBssParams;
1787
1788
1789/*--------------------------------------------------------------------------
1790 * WLAN_HAL_CONFIG_BSS_REQ
1791 *--------------------------------------------------------------------------*/
1792typedef PACKED_PRE struct PACKED_POST
1793{
1794 /* BSSID */
1795 tSirMacAddr bssId;
1796
Jeff Johnsone7245742012-09-05 17:12:55 -07001797 /* Self Mac Address */
1798 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001799
1800 /* BSS type */
1801 tSirBssType bssType;
1802
1803 /*Operational Mode: AP =0, STA = 1*/
1804 tANI_U8 operMode;
1805
1806 /*Network Type*/
1807 tSirNwType nwType;
1808
1809 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1810 tANI_U8 shortSlotTimeSupported;
1811
1812 /*Co-exist with 11a STA*/
1813 tANI_U8 llaCoexist;
1814
1815 /*Co-exist with 11b STA*/
1816 tANI_U8 llbCoexist;
1817
1818 /*Co-exist with 11g STA*/
1819 tANI_U8 llgCoexist;
1820
1821 /*Coexistence with 11n STA*/
1822 tANI_U8 ht20Coexist;
1823
1824 /*Non GF coexist flag*/
1825 tANI_U8 llnNonGFCoexist;
1826
1827 /*TXOP protection support*/
1828 tANI_U8 fLsigTXOPProtectionFullSupport;
1829 /*RIFS mode*/
1830 tANI_U8 fRIFSMode;
1831
1832 /*Beacon Interval in TU*/
1833 tSirMacBeaconInterval beaconInterval;
1834
1835 /*DTIM period*/
1836 tANI_U8 dtimPeriod;
1837
1838 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1839 tANI_U8 txChannelWidthSet;
1840
1841 /*Operating channel*/
1842 tANI_U8 currentOperChannel;
1843
1844 /*Extension channel for channel bonding*/
1845 tANI_U8 currentExtChannel;
1846
1847 /*Reserved to align next field on a dword boundary*/
1848 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001849
1850 /*SSID of the BSS*/
1851 tSirMacSSid ssId;
1852
1853 /*HAL should update the existing BSS entry, if this flag is set.
1854 UMAC will set this flag in case of reassoc, where we want to resue the
1855 the old BSSID and still return success 0 = Add, 1 = Update*/
1856 tANI_U8 action;
1857
1858 /* MAC Rate Set */
1859 tSirMacRateSet rateSet;
1860
1861 /*Enable/Disable HT capabilities of the BSS*/
1862 tANI_U8 htCapable;
1863
1864 // Enable/Disable OBSS protection
1865 tANI_U8 obssProtEnabled;
1866
1867 /*RMF enabled/disabled*/
1868 tANI_U8 rmfEnabled;
1869
1870 /*HT Operating Mode operating mode of the 802.11n STA*/
1871 tSirMacHTOperatingMode htOperMode;
1872
1873 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1874 tANI_U8 dualCTSProtection;
1875
1876 /* Probe Response Max retries */
1877 tANI_U8 ucMaxProbeRespRetryLimit;
1878
1879 /* To Enable Hidden ssid */
1880 tANI_U8 bHiddenSSIDEn;
1881
1882 /* To Enable Disable FW Proxy Probe Resp */
1883 tANI_U8 bProxyProbeRespEn;
1884
Jeff Johnson32d95a32012-09-10 13:15:23 -07001885 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1886 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001887 0 implies Not Valid ; Non-Zero implies valid*/
1888 tANI_U8 edcaParamsValid;
1889
1890 /*EDCA Parameters for Best Effort Access Category*/
1891 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001892
Jeff Johnson295189b2012-06-20 16:38:30 -07001893 /*EDCA Parameters forBackground Access Category*/
1894 tSirMacEdcaParamRecord acbk;
1895
1896 /*EDCA Parameters for Video Access Category*/
1897 tSirMacEdcaParamRecord acvi;
1898
1899 /*EDCA Parameters for Voice Access Category*/
1900 tSirMacEdcaParamRecord acvo;
1901
1902#ifdef WLAN_FEATURE_VOWIFI_11R
1903 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1904 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1905#endif
1906
Jeff Johnson32d95a32012-09-10 13:15:23 -07001907 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001908 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001909
Jeff Johnson295189b2012-06-20 16:38:30 -07001910 tANI_U8 bSpectrumMgtEnable;
1911
1912 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1913 tANI_S8 txMgmtPower;
1914 /*maxTxPower has max power to be used after applying the power constraint if any */
1915 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001916 /*Context of the station being added in HW
1917 Add a STA entry for "itself" -
1918 On AP - Add the AP itself in an "STA context"
1919 On STA - Add the AP to which this STA is joining in an "STA context" */
1920 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001921
Jeff Johnsone7245742012-09-05 17:12:55 -07001922 tANI_U8 vhtCapable;
1923 tANI_U8 vhtTxChannelWidthSet;
1924} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001925
1926typedef PACKED_PRE struct PACKED_POST
1927{
1928 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001929 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001930 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001931 tConfigBssParams_V1 configBssParams_V1;
1932 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001933} tConfigBssReqMsg, *tpConfigBssReqMsg;
1934
1935/*---------------------------------------------------------------------------
1936 WLAN_HAL_CONFIG_BSS_RSP
1937---------------------------------------------------------------------------*/
1938
1939typedef PACKED_PRE struct PACKED_POST
1940{
1941 /* Success or Failure */
1942 tANI_U32 status;
1943
1944 /* BSS index allocated by HAL */
1945 tANI_U8 bssIdx;
1946
1947 /* DPU descriptor index for PTK */
1948 tANI_U8 dpuDescIndx;
1949
1950 /* PTK DPU signature */
1951 tANI_U8 ucastDpuSignature;
1952
1953 /* DPU descriptor index for GTK*/
1954 tANI_U8 bcastDpuDescIndx;
1955
1956 /* GTK DPU signature */
1957 tANI_U8 bcastDpuSignature;
1958
1959 /*DPU descriptor for IGTK*/
1960 tANI_U8 mgmtDpuDescIndx;
1961
1962 /* IGTK DPU signature */
1963 tANI_U8 mgmtDpuSignature;
1964
1965 /* Station Index for BSS entry*/
1966 tANI_U8 bssStaIdx;
1967
1968 /* Self station index for this BSS */
1969 tANI_U8 bssSelfStaIdx;
1970
1971 /* Bcast station for buffering bcast frames in AP role */
1972 tANI_U8 bssBcastStaIdx;
1973
1974 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1975 tSirMacAddr staMac;
1976
1977 /*HAL fills in the tx power used for mgmt frames in this field. */
1978 tANI_S8 txMgmtPower;
1979
1980} tConfigBssRspParams, * tpConfigBssRspParams;
1981
1982typedef PACKED_PRE struct PACKED_POST
1983{
1984 tHalMsgHeader header;
1985 tConfigBssRspParams configBssRspParams;
1986} tConfigBssRspMsg, *tpConfigBssRspMsg;
1987
1988/*---------------------------------------------------------------------------
1989 WLAN_HAL_DELETE_BSS_REQ
1990---------------------------------------------------------------------------*/
1991
1992typedef PACKED_PRE struct PACKED_POST
1993{
1994 /* BSS index to be deleted */
1995 tANI_U8 bssIdx;
1996
1997} tDeleteBssParams, *tpDeleteBssParams;
1998
1999typedef PACKED_PRE struct PACKED_POST
2000{
2001 tHalMsgHeader header;
2002 tDeleteBssParams deleteBssParams;
2003} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2004
2005/*---------------------------------------------------------------------------
2006 WLAN_HAL_DELETE_BSS_RSP
2007---------------------------------------------------------------------------*/
2008
2009typedef PACKED_PRE struct PACKED_POST
2010{
2011 /* Success or Failure */
2012 tANI_U32 status;
2013
2014 /* BSS index that has been deleted */
2015 tANI_U8 bssIdx;
2016
2017} tDeleteBssRspParams, *tpDeleteBssRspParams;
2018
2019typedef PACKED_PRE struct PACKED_POST
2020{
2021 tHalMsgHeader header;
2022 tDeleteBssRspParams deleteBssRspParams;
2023} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2024
2025/*---------------------------------------------------------------------------
2026 WLAN_HAL_JOIN_REQ
2027---------------------------------------------------------------------------*/
2028
2029typedef PACKED_PRE struct PACKED_POST
2030{
2031 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002032 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002033
2034 /*Indicates the channel to switch to.*/
2035 tANI_U8 ucChannel;
2036
2037 /* Self STA MAC */
2038 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002039
Jeff Johnson295189b2012-06-20 16:38:30 -07002040 /*Local power constraint*/
2041 tANI_U8 ucLocalPowerConstraint;
2042
2043 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002044 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002045
2046 /*link State*/
2047 tSirLinkState linkState;
2048
2049 /* Max TX power */
2050 tANI_S8 maxTxPower;
2051
2052} tHalJoinReqParams, *tpHalJoinReqParams;
2053
2054typedef PACKED_PRE struct PACKED_POST
2055{
2056 tHalMsgHeader header;
2057 tHalJoinReqParams joinReqParams;
2058} tHalJoinReqMsg, *tpHalJoinReqMsg;
2059
2060/*---------------------------------------------------------------------------
2061 WLAN_HAL_JOIN_RSP
2062---------------------------------------------------------------------------*/
2063
2064typedef PACKED_PRE struct PACKED_POST
2065{
2066 /*success or failure */
2067 tANI_U32 status;
2068
2069 /* HAL fills in the tx power used for mgmt frames in this field */
2070 tPowerdBm txMgmtPower;
2071
2072}tHalJoinRspParams, *tpHalJoinRspParams;
2073
2074typedef PACKED_PRE struct PACKED_POST
2075{
2076 tHalMsgHeader header;
2077 tHalJoinRspParams joinRspParams;
2078}tHalJoinRspMsg, *tpHalJoinRspMsg;
2079
2080/*---------------------------------------------------------------------------
2081 WLAN_HAL_POST_ASSOC_REQ
2082---------------------------------------------------------------------------*/
2083
2084typedef PACKED_PRE struct PACKED_POST
2085{
2086 tConfigStaParams configStaParams;
2087 tConfigBssParams configBssParams;
2088} tPostAssocReqParams, *tpPostAssocReqParams;
2089
2090typedef PACKED_PRE struct PACKED_POST
2091{
2092 tHalMsgHeader header;
2093 tPostAssocReqParams postAssocReqParams;
2094} tPostAssocReqMsg, *tpPostAssocReqMsg;
2095
2096/*---------------------------------------------------------------------------
2097 WLAN_HAL_POST_ASSOC_RSP
2098---------------------------------------------------------------------------*/
2099
2100typedef PACKED_PRE struct PACKED_POST
2101{
2102 tConfigStaRspParams configStaRspParams;
2103 tConfigBssRspParams configBssRspParams;
2104} tPostAssocRspParams, *tpPostAssocRspParams;
2105
2106typedef PACKED_PRE struct PACKED_POST
2107{
2108 tHalMsgHeader header;
2109 tPostAssocRspParams postAssocRspParams;
2110} tPostAssocRspMsg, *tpPostAssocRspMsg;
2111
2112/*---------------------------------------------------------------------------
2113 WLAN_HAL_SET_BSSKEY_REQ
2114---------------------------------------------------------------------------*/
2115
2116/*
2117 * This is used by PE to create a set of WEP keys for a given BSS.
2118 */
2119typedef PACKED_PRE struct PACKED_POST
2120{
2121 /*BSS Index of the BSS*/
2122 tANI_U8 bssIdx;
2123
2124 /*Encryption Type used with peer*/
2125 tAniEdType encType;
2126
2127 /*Number of keys*/
2128 tANI_U8 numKeys;
2129
2130 /*Array of keys.*/
2131 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002132
Jeff Johnson295189b2012-06-20 16:38:30 -07002133 /*Control for Replay Count, 1= Single TID based replay count on Tx
2134 0 = Per TID based replay count on TX */
2135 tANI_U8 singleTidRc;
2136} tSetBssKeyParams, *tpSetBssKeyParams;
2137
2138typedef PACKED_PRE struct PACKED_POST
2139{
2140 tHalMsgHeader header;
2141 tSetBssKeyParams setBssKeyParams;
2142} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2143
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002144/* tagged version of set bss key */
2145typedef PACKED_PRE struct PACKED_POST
2146{
2147 tSetBssKeyReqMsg Msg;
2148 uint32 Tag;
2149} tSetBssKeyReqMsgTagged;
2150
Jeff Johnson295189b2012-06-20 16:38:30 -07002151/*---------------------------------------------------------------------------
2152 WLAN_HAL_SET_BSSKEY_RSP
2153---------------------------------------------------------------------------*/
2154typedef PACKED_PRE struct PACKED_POST
2155{
2156 /*success or failure */
2157 tANI_U32 status;
2158
2159} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2160
2161typedef PACKED_PRE struct PACKED_POST
2162{
2163 tHalMsgHeader header;
2164 tSetBssKeyRspParams setBssKeyRspParams;
2165} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2166
2167/*---------------------------------------------------------------------------
2168 WLAN_HAL_SET_STAKEY_REQ,
2169---------------------------------------------------------------------------*/
2170
2171/*
2172 * This is used by PE to configure the key information on a given station.
2173 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2174 * a preconfigured key from a BSS the station assoicated with; otherwise
2175 * a new key descriptor is created based on the key field.
2176 */
2177
2178typedef PACKED_PRE struct PACKED_POST
2179{
2180 tHalMsgHeader header;
2181 tSetStaKeyParams setStaKeyParams;
2182} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2183
2184/*---------------------------------------------------------------------------
2185 WLAN_HAL_SET_STAKEY_RSP,
2186---------------------------------------------------------------------------*/
2187typedef PACKED_PRE struct PACKED_POST
2188{
2189 /*success or failure */
2190 tANI_U32 status;
2191
2192} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2193
2194typedef PACKED_PRE struct PACKED_POST
2195{
2196 tHalMsgHeader header;
2197 tSetStaKeyRspParams setStaKeyRspParams;
2198} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2199
2200/*---------------------------------------------------------------------------
2201 WLAN_HAL_RMV_BSSKEY_REQ,
2202---------------------------------------------------------------------------*/
2203/*
2204 * This is used by PE to remove keys for a given BSS.
2205 */
2206typedef PACKED_PRE struct PACKED_POST
2207
2208{
2209 /*BSS Index of the BSS*/
2210 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002211
Jeff Johnson295189b2012-06-20 16:38:30 -07002212 /*Encryption Type used with peer*/
2213 tAniEdType encType;
2214
2215 /*Key Id*/
2216 tANI_U8 keyId;
2217
2218 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2219 tAniWepType wepType;
2220
2221} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2222
2223typedef PACKED_PRE struct PACKED_POST
2224{
2225 tHalMsgHeader header;
2226 tRemoveBssKeyParams removeBssKeyParams;
2227} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2228
2229/*---------------------------------------------------------------------------
2230 WLAN_HAL_RMV_BSSKEY_RSP,
2231---------------------------------------------------------------------------*/
2232typedef PACKED_PRE struct PACKED_POST
2233{
2234 /*success or failure */
2235 tANI_U32 status;
2236
2237} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2238
2239typedef PACKED_PRE struct PACKED_POST
2240{
2241 tHalMsgHeader header;
2242 tRemoveBssKeyRspParams removeBssKeyRspParams;
2243} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2244
2245/*---------------------------------------------------------------------------
2246 WLAN_HAL_RMV_STAKEY_REQ,
2247---------------------------------------------------------------------------*/
2248/*
2249 * This is used by PE to Remove the key information on a given station.
2250 */
2251typedef PACKED_PRE struct PACKED_POST
2252{
2253 /*STA Index*/
2254 tANI_U16 staIdx;
2255
2256 /*Encryption Type used with peer*/
2257 tAniEdType encType;
2258
2259 /*Key Id*/
2260 tANI_U8 keyId;
2261
2262 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2263 the same key is used for both broadcast and unicast.*/
2264 tANI_BOOLEAN unicast;
2265
2266} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2267
2268typedef PACKED_PRE struct PACKED_POST
2269{
2270 tHalMsgHeader header;
2271 tRemoveStaKeyParams removeStaKeyParams;
2272} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2273
2274/*---------------------------------------------------------------------------
2275 WLAN_HAL_RMV_STAKEY_RSP,
2276---------------------------------------------------------------------------*/
2277typedef PACKED_PRE struct PACKED_POST
2278{
2279 /*success or failure */
2280 tANI_U32 status;
2281} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2282
2283typedef PACKED_PRE struct PACKED_POST
2284{
2285 tHalMsgHeader header;
2286 tRemoveStaKeyRspParams removeStaKeyRspParams;
2287} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2288
Jeff Johnsone7245742012-09-05 17:12:55 -07002289#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002290
Jeff Johnsone7245742012-09-05 17:12:55 -07002291#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002292#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002293#endif
2294
2295#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002296#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002297#endif
2298
2299/*-------------------------------------------------------------------------
2300WLAN_HAL_START_OEM_DATA_REQ
2301--------------------------------------------------------------------------*/
2302typedef PACKED_PRE struct PACKED_POST
2303{
2304 tANI_U32 status;
2305 tSirMacAddr selfMacAddr;
2306 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2307} tStartOemDataReqParams, *tpStartOemDataReqParams;
2308
2309typedef PACKED_PRE struct PACKED_POST
2310{
2311 tHalMsgHeader header;
2312 tStartOemDataReqParams startOemDataReqParams;
2313} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2314
2315/*-------------------------------------------------------------------------
2316WLAN_HAL_START_OEM_DATA_RSP
2317--------------------------------------------------------------------------*/
2318
2319typedef PACKED_PRE struct PACKED_POST
2320{
2321 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2322} tStartOemDataRspParams, *tpStartOemDataRspParams;
2323
2324typedef PACKED_PRE struct PACKED_POST
2325{
2326 tHalMsgHeader header;
2327 tStartOemDataRspParams startOemDataRspParams;
2328} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2329
2330#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002331
2332
2333
2334/*---------------------------------------------------------------------------
2335WLAN_HAL_CH_SWITCH_REQ
2336---------------------------------------------------------------------------*/
2337
2338typedef PACKED_PRE struct PACKED_POST
2339{
2340 /* Channel number */
2341 tANI_U8 channelNumber;
2342
2343 /* Local power constraint */
2344 tANI_U8 localPowerConstraint;
2345
2346 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002347 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002348
2349 //HAL fills in the tx power used for mgmt frames in this field.
2350 tPowerdBm txMgmtPower;
2351
2352 /* Max TX power */
2353 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002354
Jeff Johnson295189b2012-06-20 16:38:30 -07002355 /* Self STA MAC */
2356 tSirMacAddr selfStaMacAddr;
2357
2358 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2359 this should be applied only to that session*/
2360 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2361 * bssid needs to be out of the VOWifi feature flag */
2362 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2363 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2364 */
2365 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002366
Jeff Johnson295189b2012-06-20 16:38:30 -07002367}tSwitchChannelParams, *tpSwitchChannelParams;
2368
2369typedef PACKED_PRE struct PACKED_POST
2370{
2371 tHalMsgHeader header;
2372 tSwitchChannelParams switchChannelParams;
2373} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2374
2375/*---------------------------------------------------------------------------
2376WLAN_HAL_CH_SWITCH_RSP
2377---------------------------------------------------------------------------*/
2378
2379typedef PACKED_PRE struct PACKED_POST
2380{
2381 /* Status */
2382 tANI_U32 status;
2383
2384 /* Channel number - same as in request*/
2385 tANI_U8 channelNumber;
2386
2387 /* HAL fills in the tx power used for mgmt frames in this field */
2388 tPowerdBm txMgmtPower;
2389
2390 /* BSSID needed to identify session - same as in request*/
2391 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002392
Jeff Johnson295189b2012-06-20 16:38:30 -07002393}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2394
2395typedef PACKED_PRE struct PACKED_POST
2396{
2397 tHalMsgHeader header;
2398 tSwitchChannelRspParams switchChannelRspParams;
2399} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2400
2401/*---------------------------------------------------------------------------
2402WLAN_HAL_UPD_EDCA_PARAMS_REQ
2403---------------------------------------------------------------------------*/
2404
2405typedef PACKED_PRE struct PACKED_POST
2406{
2407 /*BSS Index*/
2408 tANI_U16 bssIdx;
2409
2410 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002411 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002412
2413 /* Background */
2414 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002415
Jeff Johnson295189b2012-06-20 16:38:30 -07002416 /* Video */
2417 tSirMacEdcaParamRecord acvi;
2418
2419 /* Voice */
2420 tSirMacEdcaParamRecord acvo;
2421
2422} tEdcaParams, *tpEdcaParams;
2423
2424typedef PACKED_PRE struct PACKED_POST
2425{
2426 tHalMsgHeader header;
2427 tEdcaParams edcaParams;
2428} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2429
2430/*---------------------------------------------------------------------------
2431WLAN_HAL_UPD_EDCA_PARAMS_RSP
2432---------------------------------------------------------------------------*/
2433typedef PACKED_PRE struct PACKED_POST
2434{
2435 /*success or failure */
2436 tANI_U32 status;
2437} tEdcaRspParams, *tpEdcaRspParams;
2438
2439typedef PACKED_PRE struct PACKED_POST
2440{
2441 tHalMsgHeader header;
2442 tEdcaRspParams edcaRspParams;
2443} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2444
2445
2446
2447/*---------------------------------------------------------------------------
2448 * WLAN_HAL_GET_STATS_REQ
2449 *--------------------------------------------------------------------------*/
2450typedef PACKED_PRE struct PACKED_POST
2451
2452{
2453 /* Index of STA to which the statistics */
2454 tANI_U16 staIdx;
2455
2456 /* Encryption mode */
2457 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002458
Jeff Johnson295189b2012-06-20 16:38:30 -07002459 /* status */
2460 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002461
Jeff Johnson295189b2012-06-20 16:38:30 -07002462 /* Statistics */
2463 tANI_U32 sendBlocks;
2464 tANI_U32 recvBlocks;
2465 tANI_U32 replays;
2466 tANI_U8 micErrorCnt;
2467 tANI_U32 protExclCnt;
2468 tANI_U16 formatErrCnt;
2469 tANI_U16 unDecryptableCnt;
2470 tANI_U32 decryptErrCnt;
2471 tANI_U32 decryptOkCnt;
2472} tDpuStatsParams, * tpDpuStatsParams;
2473
2474typedef PACKED_PRE struct PACKED_POST
2475{
2476 /* Valid STA Idx for per STA stats request */
2477 tANI_U32 staId;
2478
2479 /* Categories of stats requested as specified in eHalStatsMask*/
2480 tANI_U32 statsMask;
2481}tHalStatsReqParams, *tpHalStatsReqParams;
2482
2483typedef PACKED_PRE struct PACKED_POST
2484{
2485 tHalMsgHeader header;
2486 tHalStatsReqParams statsReqParams;
2487} tHalStatsReqMsg, *tpHalStatsReqMsg;
2488
2489/*---------------------------------------------------------------------------
2490 * WLAN_HAL_GET_STATS_RSP
2491 *--------------------------------------------------------------------------*/
2492
2493typedef PACKED_PRE struct PACKED_POST
2494{
2495 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2496 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2497 // station successfully transmitted after more than one retransmission attempt
2498
Jeff Johnson32d95a32012-09-10 13:15:23 -07002499 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2500 //(with and without retries, including multi-cast, broadcast)
2501 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2502 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002503 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2504 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2505 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2506 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 -07002507 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2508 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 -07002509 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2510 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 -07002511 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2512 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002513 //to provide this.
2514}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2515
2516
2517// defines tx_rate_flags
2518typedef enum eTxRateInfo
2519{
2520 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2521 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2522 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2523 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2524 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2525} tTxrateinfoflags;
2526
2527
2528typedef PACKED_PRE struct PACKED_POST
2529{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002530 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 -07002531 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002532 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 -07002533 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002534 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2535 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002536 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002537 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2538 //for eg: if it is 10.5dBm, the value would be 105
2539 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2540 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002541
Jeff Johnson32d95a32012-09-10 13:15:23 -07002542 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2543 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002544 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002545 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2546 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002547}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2548
2549typedef PACKED_PRE struct PACKED_POST
2550{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002551 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2552 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002553 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002554 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 -07002555 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002556 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 -07002557 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002558 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 -07002559 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002560 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 -07002561 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002562 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 -07002563 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002564 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 -07002565 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002566 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 -07002567 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002568 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 -07002569 //decrypted
2570 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2571
2572}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002573
Jeff Johnson295189b2012-06-20 16:38:30 -07002574typedef PACKED_PRE struct PACKED_POST
2575{
2576 tAniGlobalSecurityStats ucStats;
2577 tAniGlobalSecurityStats mcbcStats;
2578}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2579
2580typedef PACKED_PRE struct PACKED_POST
2581{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002582 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2583 //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 -07002584 //address 1 field
2585 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 -07002586 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 -07002587 //primary channel
2588 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 -07002589 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 -07002590 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002591 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2592 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002593 //decoded correctly
2594}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2595
2596typedef PACKED_PRE struct PACKED_POST
2597{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002598 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 -07002599 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002600 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2601 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 -07002602 //is transmitted
2603}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2604
2605typedef PACKED_PRE struct PACKED_POST
2606{
2607 /* Success or Failure */
2608 tANI_U32 status;
2609
2610 /* STA Idx */
2611 tANI_U32 staId;
2612
2613 /* Categories of STATS being returned as per eHalStatsMask*/
2614 tANI_U32 statsMask;
2615
2616 /* message type is same as the request type */
2617 tANI_U16 msgType;
2618
2619 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002620 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002621
2622} tHalStatsRspParams, *tpHalStatsRspParams;
2623
2624
2625
2626typedef PACKED_PRE struct PACKED_POST
2627{
2628 tHalMsgHeader header;
2629 tHalStatsRspParams statsRspParams;
2630} tHalStatsRspMsg, *tpHalStatsRspMsg;
2631
2632/*---------------------------------------------------------------------------
2633 * WLAN_HAL_SET_LINK_ST_REQ
2634 *--------------------------------------------------------------------------*/
2635typedef PACKED_PRE struct PACKED_POST
2636{
2637 tSirMacAddr bssid;
2638 tSirLinkState state;
2639 tSirMacAddr selfMacAddr;
2640} tLinkStateParams, *tpLinkStateParams;
2641
2642typedef PACKED_PRE struct PACKED_POST
2643{
2644 tHalMsgHeader header;
2645 tLinkStateParams linkStateParams;
2646} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2647
2648/*---------------------------------------------------------------------------
2649 * WLAN_HAL_SET_LINK_ST_RSP
2650 *--------------------------------------------------------------------------*/
2651
2652typedef PACKED_PRE struct PACKED_POST
2653{
2654 /*success or failure */
2655 tANI_U32 status;
2656} tLinkStateRspParams, *tpLinkStateRspParams;
2657
2658typedef PACKED_PRE struct PACKED_POST
2659{
2660 tHalMsgHeader header;
2661 tLinkStateRspParams linkStateRspParams;
2662} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2663
2664/*---------------------------------------------------------------------------
2665 * WLAN_HAL_ADD_TS_REQ
2666 *--------------------------------------------------------------------------*/
2667
2668/* TSPEC Params */
2669typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2670{
2671#ifndef ANI_LITTLE_BIT_ENDIAN
2672 tANI_U16 ackPolicy : 2;
2673 tANI_U16 userPrio : 3;
2674 tANI_U16 psb : 1;
2675 tANI_U16 aggregation : 1;
2676 tANI_U16 accessPolicy : 2;
2677 tANI_U16 direction : 2;
2678 tANI_U16 tsid : 4;
2679 tANI_U16 trafficType : 1;
2680#else
2681 tANI_U16 trafficType : 1;
2682 tANI_U16 tsid : 4;
2683 tANI_U16 direction : 2;
2684 tANI_U16 accessPolicy : 2;
2685 tANI_U16 aggregation : 1;
2686 tANI_U16 psb : 1;
2687 tANI_U16 userPrio : 3;
2688 tANI_U16 ackPolicy : 2;
2689#endif
2690} __ani_attr_packed tSirMacTSInfoTfc;
2691
2692/* Flag to schedule the traffic type */
2693typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2694{
2695#ifndef ANI_LITTLE_BIT_ENDIAN
2696 tANI_U8 rsvd : 7;
2697 tANI_U8 schedule : 1;
2698#else
2699 tANI_U8 schedule : 1;
2700 tANI_U8 rsvd : 7;
2701#endif
2702} __ani_attr_packed tSirMacTSInfoSch;
2703
2704/* Traffic and scheduling info */
2705typedef __ani_attr_pre_packed struct sSirMacTSInfo
2706{
2707 tSirMacTSInfoTfc traffic;
2708 tSirMacTSInfoSch schedule;
2709} __ani_attr_packed tSirMacTSInfo;
2710
2711/* Information elements */
2712typedef __ani_attr_pre_packed struct sSirMacTspecIE
2713{
2714 tANI_U8 type;
2715 tANI_U8 length;
2716 tSirMacTSInfo tsinfo;
2717 tANI_U16 nomMsduSz;
2718 tANI_U16 maxMsduSz;
2719 tANI_U32 minSvcInterval;
2720 tANI_U32 maxSvcInterval;
2721 tANI_U32 inactInterval;
2722 tANI_U32 suspendInterval;
2723 tANI_U32 svcStartTime;
2724 tANI_U32 minDataRate;
2725 tANI_U32 meanDataRate;
2726 tANI_U32 peakDataRate;
2727 tANI_U32 maxBurstSz;
2728 tANI_U32 delayBound;
2729 tANI_U32 minPhyRate;
2730 tANI_U16 surplusBw;
2731 tANI_U16 mediumTime;
2732}__ani_attr_packed tSirMacTspecIE;
2733
2734typedef PACKED_PRE struct PACKED_POST
2735{
2736 /* Station Index */
2737 tANI_U16 staIdx;
2738
2739 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2740 tANI_U16 tspecIdx;
2741
2742 /* To program TPE with required parameters */
2743 tSirMacTspecIE tspec;
2744
2745 /* U-APSD Flags: 1b per AC. Encoded as follows:
2746 b7 b6 b5 b4 b3 b2 b1 b0 =
2747 X X X X BE BK VI VO */
2748 tANI_U8 uAPSD;
2749
2750 /* These parameters are for all the access categories */
2751 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2752 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2753 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002754
Jeff Johnson295189b2012-06-20 16:38:30 -07002755} tAddTsParams, *tpAddTsParams;
2756
2757typedef PACKED_PRE struct PACKED_POST
2758{
2759 tHalMsgHeader header;
2760 tAddTsParams addTsParams;
2761} tAddTsReqMsg, *tpAddTsReqMsg;
2762
2763/*---------------------------------------------------------------------------
2764 * WLAN_HAL_ADD_TS_RSP
2765 *--------------------------------------------------------------------------*/
2766
2767typedef PACKED_PRE struct PACKED_POST
2768{
2769 /*success or failure */
2770 tANI_U32 status;
2771} tAddTsRspParams, *tpAddTsRspParams;
2772
2773typedef PACKED_PRE struct PACKED_POST
2774{
2775 tHalMsgHeader header;
2776 tAddTsRspParams addTsRspParams;
2777} tAddTsRspMsg, *tpAddTsRspMsg;
2778
2779
2780/*---------------------------------------------------------------------------
2781 * WLAN_HAL_DEL_TS_REQ
2782 *--------------------------------------------------------------------------*/
2783
2784typedef PACKED_PRE struct PACKED_POST
2785{
2786 /* Station Index */
2787 tANI_U16 staIdx;
2788
2789 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2790 tANI_U16 tspecIdx;
2791
2792 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002793 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002794
2795} tDelTsParams, *tpDelTsParams;
2796
2797typedef PACKED_PRE struct PACKED_POST
2798{
2799 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002800 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002801} tDelTsReqMsg, *tpDelTsReqMsg;
2802
2803/*---------------------------------------------------------------------------
2804 * WLAN_HAL_DEL_TS_RSP
2805 *--------------------------------------------------------------------------*/
2806
2807typedef PACKED_PRE struct PACKED_POST
2808{
2809 /*success or failure */
2810 tANI_U32 status;
2811} tDelTsRspParams, *tpDelTsRspParams;
2812
2813typedef PACKED_PRE struct PACKED_POST
2814{
2815 tHalMsgHeader header;
2816 tDelTsRspParams delTsRspParams;
2817} tDelTsRspMsg, *tpDelTsRspMsg;
2818
2819/* End of TSpec Parameters */
2820
2821/* Start of BLOCK ACK related Parameters */
2822
2823/*---------------------------------------------------------------------------
2824 * WLAN_HAL_ADD_BA_SESSION_REQ
2825 *--------------------------------------------------------------------------*/
2826
2827typedef PACKED_PRE struct PACKED_POST
2828{
2829 /* Station Index */
2830 tANI_U16 staIdx;
2831
2832 /* Peer MAC Address */
2833 tSirMacAddr peerMacAddr;
2834
2835 /* ADDBA Action Frame dialog token
2836 HAL will not interpret this object */
2837 tANI_U8 baDialogToken;
2838
2839 /* TID for which the BA is being setup
2840 This identifies the TC or TS of interest */
2841 tANI_U8 baTID;
2842
2843 /* 0 - Delayed BA (Not supported)
2844 1 - Immediate BA */
2845 tANI_U8 baPolicy;
2846
2847 /* Indicates the number of buffers for this TID (baTID)
2848 NOTE - This is the requested buffer size. When this
2849 is processed by HAL and subsequently by HDD, it is
2850 possible that HDD may change this buffer size. Any
2851 change in the buffer size should be noted by PE and
2852 advertized appropriately in the ADDBA response */
2853 tANI_U16 baBufferSize;
2854
2855 /* BA timeout in TU's 0 means no timeout will occur */
2856 tANI_U16 baTimeout;
2857
2858 /* b0..b3 - Fragment Number - Always set to 0
2859 b4..b15 - Starting Sequence Number of first MSDU
2860 for which this BA is setup */
2861 tANI_U16 baSSN;
2862
2863 /* ADDBA direction
2864 1 - Originator
2865 0 - Recipient */
2866 tANI_U8 baDirection;
2867} tAddBASessionParams, *tpAddBASessionParams;
2868
2869typedef PACKED_PRE struct PACKED_POST
2870{
2871 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002872 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002873}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2874
2875/*---------------------------------------------------------------------------
2876 * WLAN_HAL_ADD_BA_SESSION_RSP
2877 *--------------------------------------------------------------------------*/
2878
2879typedef PACKED_PRE struct PACKED_POST
2880{
2881 /*success or failure */
2882 tANI_U32 status;
2883
2884 /* Dialog token */
2885 tANI_U8 baDialogToken;
2886
2887 /* TID for which the BA session has been setup */
2888 tANI_U8 baTID;
2889
2890 /* BA Buffer Size allocated for the current BA session */
2891 tANI_U8 baBufferSize;
2892
2893 tANI_U8 baSessionID;
2894
2895 /* Reordering Window buffer */
2896 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002897
Jeff Johnson295189b2012-06-20 16:38:30 -07002898 /*Station Index to id the sta */
2899 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002900
Jeff Johnson295189b2012-06-20 16:38:30 -07002901 /* Starting Sequence Number */
2902 tANI_U16 SSN;
2903} tAddBASessionRspParams, *tpAddBASessionRspParams;
2904
2905typedef PACKED_PRE struct PACKED_POST
2906{
2907 tHalMsgHeader header;
2908 tAddBASessionRspParams addBASessionRspParams;
2909} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2910
2911/*---------------------------------------------------------------------------
2912 * WLAN_HAL_ADD_BA_REQ
2913 *--------------------------------------------------------------------------*/
2914
2915typedef PACKED_PRE struct PACKED_POST
2916{
2917 /* Session Id */
2918 tANI_U8 baSessionID;
2919
2920 /* Reorder Window Size */
2921 tANI_U8 winSize;
2922
2923#ifdef FEATURE_ON_CHIP_REORDERING
2924 tANI_BOOLEAN isReorderingDoneOnChip;
2925#endif
2926} tAddBAParams, *tpAddBAParams;
2927
2928typedef PACKED_PRE struct PACKED_POST
2929{
2930 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002931 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002932} tAddBAReqMsg, *tpAddBAReqMsg;
2933
2934
2935/*---------------------------------------------------------------------------
2936 * WLAN_HAL_ADD_BA_RSP
2937 *--------------------------------------------------------------------------*/
2938
2939typedef PACKED_PRE struct PACKED_POST
2940{
2941 /*success or failure */
2942 tANI_U32 status;
2943
2944 /* Dialog token */
2945 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002946
Jeff Johnson295189b2012-06-20 16:38:30 -07002947} tAddBARspParams, *tpAddBARspParams;
2948
2949typedef PACKED_PRE struct PACKED_POST
2950{
2951 tHalMsgHeader header;
2952 tAddBARspParams addBARspParams;
2953} tAddBARspMsg, *tpAddBARspMsg;
2954
2955
2956/*---------------------------------------------------------------------------
2957 * WLAN_HAL_TRIGGER_BA_REQ
2958 *--------------------------------------------------------------------------*/
2959
2960
2961typedef struct sAddBaInfo
2962{
2963 tANI_U16 fBaEnable : 1;
2964 tANI_U16 startingSeqNum: 12;
2965 tANI_U16 reserved : 3;
2966}tAddBaInfo, *tpAddBaInfo;
2967
2968typedef struct sTriggerBaRspCandidate
2969{
2970 tSirMacAddr staAddr;
2971 tAddBaInfo baInfo[STACFG_MAX_TC];
2972}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2973
2974typedef struct sTriggerBaCandidate
2975{
2976 tANI_U8 staIdx;
2977 tANI_U8 tidBitmap;
2978}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2979
2980typedef PACKED_PRE struct PACKED_POST
2981{
2982 /* Session Id */
2983 tANI_U8 baSessionID;
2984
Jeff Johnson32d95a32012-09-10 13:15:23 -07002985 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002986 * Candidate List(tTriggerBaCandidate)
2987 */
2988 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002989
Jeff Johnson295189b2012-06-20 16:38:30 -07002990} tTriggerBAParams, *tpTriggerBAParams;
2991
2992typedef PACKED_PRE struct PACKED_POST
2993{
2994 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002995 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002996} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2997
2998
2999/*---------------------------------------------------------------------------
3000 * WLAN_HAL_TRIGGER_BA_RSP
3001 *--------------------------------------------------------------------------*/
3002
3003typedef PACKED_PRE struct PACKED_POST
3004{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003005
Jeff Johnson295189b2012-06-20 16:38:30 -07003006 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003007 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003008
3009 /* success or failure */
3010 tANI_U32 status;
3011
Jeff Johnson32d95a32012-09-10 13:15:23 -07003012 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003013 * Rsp Candidate List(tTriggerRspBaCandidate)
3014 */
3015 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003016
Jeff Johnson295189b2012-06-20 16:38:30 -07003017
3018} tTriggerBARspParams, *tpTriggerBARspParams;
3019
3020typedef PACKED_PRE struct PACKED_POST
3021{
3022 tHalMsgHeader header;
3023 tTriggerBARspParams triggerBARspParams;
3024} tTriggerBARspMsg, *tpTriggerBARspMsg;
3025
3026/*---------------------------------------------------------------------------
3027 * WLAN_HAL_DEL_BA_REQ
3028 *--------------------------------------------------------------------------*/
3029
3030typedef PACKED_PRE struct PACKED_POST
3031{
3032 /* Station Index */
3033 tANI_U16 staIdx;
3034
3035 /* TID for which the BA session is being deleted */
3036 tANI_U8 baTID;
3037
3038 /* DELBA direction
3039 1 - Originator
3040 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003041 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003042} tDelBAParams, *tpDelBAParams;
3043
3044typedef PACKED_PRE struct PACKED_POST
3045{
3046 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003047 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003048} tDelBAReqMsg, *tpDelBAReqMsg;
3049
3050/*---------------------------------------------------------------------------
3051 * WLAN_HAL_DEL_BA_RSP
3052 *--------------------------------------------------------------------------*/
3053
3054typedef PACKED_PRE struct PACKED_POST
3055{
3056 /* success or failure */
3057 tANI_U32 status;
3058} tDelBARspParams, *tpDelBARspParams;
3059
3060typedef PACKED_PRE struct PACKED_POST
3061{
3062 tHalMsgHeader header;
3063 tDelBARspParams delBARspParams;
3064} tDelBARspMsg, *tpDelBARspMsg;
3065
3066
3067#ifdef FEATURE_WLAN_CCX
3068
3069/*---------------------------------------------------------------------------
3070 * WLAN_HAL_TSM_STATS_REQ
3071 *--------------------------------------------------------------------------*/
3072typedef PACKED_PRE struct PACKED_POST
3073{
3074 /* Traffic Id */
3075 tANI_U8 tsmTID;
3076
3077 tSirMacAddr bssId;
3078} tTsmStatsParams, *tpTsmStatsParams;
3079
3080typedef PACKED_PRE struct PACKED_POST
3081{
3082 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003083 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003084} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3085
3086
3087/*---------------------------------------------------------------------------
3088 * WLAN_HAL_TSM_STATS_RSP
3089 *--------------------------------------------------------------------------*/
3090typedef PACKED_PRE struct PACKED_POST
3091{
3092 /*success or failure */
3093 tANI_U32 status;
3094
Jeff Johnson32d95a32012-09-10 13:15:23 -07003095 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003096 tANI_U16 UplinkPktQueueDly;
3097
Jeff Johnson32d95a32012-09-10 13:15:23 -07003098 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003099 tANI_U16 UplinkPktQueueDlyHist[4];
3100
Jeff Johnson32d95a32012-09-10 13:15:23 -07003101 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003102 tANI_U32 UplinkPktTxDly;
3103
Jeff Johnson32d95a32012-09-10 13:15:23 -07003104 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003105 tANI_U16 UplinkPktLoss;
3106
Jeff Johnson32d95a32012-09-10 13:15:23 -07003107 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003108 tANI_U16 UplinkPktCount;
3109
Jeff Johnson32d95a32012-09-10 13:15:23 -07003110 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003111 tANI_U8 RoamingCount;
3112
Jeff Johnson32d95a32012-09-10 13:15:23 -07003113 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003114 tANI_U16 RoamingDly;
3115} tTsmStatsRspParams, *tpTsmStatsRspParams;
3116
3117typedef PACKED_PRE struct PACKED_POST
3118{
3119 tHalMsgHeader header;
3120 tTsmStatsRspParams tsmStatsRspParams;
3121} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3122
3123
3124#endif
3125
3126/*---------------------------------------------------------------------------
3127 * WLAN_HAL_SET_KEYDONE_MSG
3128 *--------------------------------------------------------------------------*/
3129
3130typedef PACKED_PRE struct PACKED_POST
3131{
3132 /*bssid of the keys */
3133 tANI_U8 bssidx;
3134 tANI_U8 encType;
3135} tSetKeyDoneParams, *tpSetKeyDoneParams;
3136
3137typedef PACKED_PRE struct PACKED_POST
3138{
3139 tHalMsgHeader header;
3140 tSetKeyDoneParams setKeyDoneParams;
3141} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3142
3143/*---------------------------------------------------------------------------
3144 * WLAN_HAL_DOWNLOAD_NV_REQ
3145 *--------------------------------------------------------------------------*/
3146typedef PACKED_PRE struct PACKED_POST
3147{
3148 /* Fragment sequence number of the NV Image. Note that NV Image might not
3149 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003150 * can hence choose to chop the NV blob into multiple fragments starting with
3151 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003152 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3153 * concatenated together by HAL without any padding bytes in between.*/
3154 tANI_U16 fragNumber;
3155
3156 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003157 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003158 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3159 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3160 tANI_U16 isLastFragment;
3161
3162 /* NV Image size (number of bytes) */
3163 tANI_U32 nvImgBufferSize;
3164
3165 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3166 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3167} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3168
3169typedef PACKED_PRE struct PACKED_POST
3170{
3171 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3172 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3173 tHalMsgHeader header;
3174 tHalNvImgDownloadReqParams nvImageReqParams;
3175} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3176
3177/*---------------------------------------------------------------------------
3178 * WLAN_HAL_DOWNLOAD_NV_RSP
3179 *--------------------------------------------------------------------------*/
3180typedef PACKED_PRE struct PACKED_POST
3181{
3182 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3183 * after each fragment */
3184 tANI_U32 status;
3185} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3186
3187typedef PACKED_PRE struct PACKED_POST
3188{
3189 tHalMsgHeader header;
3190 tHalNvImgDownloadRspParams nvImageRspParams;
3191} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3192
3193/*---------------------------------------------------------------------------
3194 * WLAN_HAL_STORE_NV_IND
3195 *--------------------------------------------------------------------------*/
3196typedef PACKED_PRE struct PACKED_POST
3197{
3198 /* NV Item */
3199 eNvTable tableID;
3200
3201 /* Size of NV Blob */
3202 tANI_U32 nvBlobSize;
3203
Jeff Johnson32d95a32012-09-10 13:15:23 -07003204 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003205 * NV blob i.e. uint8[nvBlobSize] */
3206} tHalNvStoreParams, *tpHalNvStoreParams;
3207
3208typedef PACKED_PRE struct PACKED_POST
3209{
3210 /* Note: The length specified in tHalNvStoreInd messages should be
3211 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3212 tHalMsgHeader header;
3213 tHalNvStoreParams nvStoreParams;
3214} tHalNvStoreInd, *tpHalNvStoreInd;
3215
3216/* End of Block Ack Related Parameters */
3217
3218/*---------------------------------------------------------------------------
3219 * WLAN_HAL_MIC_FAILURE_IND
3220 *--------------------------------------------------------------------------*/
3221
3222#define SIR_CIPHER_SEQ_CTR_SIZE 6
3223
3224typedef PACKED_PRE struct PACKED_POST
3225{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003226 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003227 tSirMacAddr taMacAddr; //transmitter address
3228 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003229 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003230 tANI_U8 IV1; // first byte of IV
3231 tANI_U8 keyId; // second byte of IV
3232 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3233 tSirMacAddr rxMacAddr; // receive address
3234} tSirMicFailureInfo, *tpSirMicFailureInfo;
3235
3236/* Definition for MIC failure indication
3237 MAC reports this each time a MIC failure occures on Rx TKIP packet
3238 */
3239typedef PACKED_PRE struct PACKED_POST
3240{
3241 tSirMacAddr bssId; // BSSID
3242 tSirMicFailureInfo info;
3243} tSirMicFailureInd, *tpSirMicFailureInd;
3244
3245typedef PACKED_PRE struct PACKED_POST
3246{
3247 tHalMsgHeader header;
3248 tSirMicFailureInd micFailureInd;
3249} tMicFailureIndMsg, *tpMicFailureIndMsg;
3250
Mohit Khanna4a70d262012-09-11 16:30:12 -07003251typedef PACKED_PRE struct PACKED_POST
3252{
3253 tANI_U16 opMode;
3254 tANI_U16 staId;
3255}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3256
3257typedef PACKED_PRE struct PACKED_POST
3258{
3259 tHalMsgHeader header;
3260 tUpdateVHTOpMode updateVhtOpMode;
3261} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3262
3263typedef PACKED_PRE struct PACKED_POST
3264{
3265 tANI_U32 status;
3266} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3267
3268typedef PACKED_PRE struct PACKED_POST
3269{
3270 tHalMsgHeader header;
3271 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3272} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3273
Jeff Johnson295189b2012-06-20 16:38:30 -07003274/*---------------------------------------------------------------------------
3275 * WLAN_HAL_UPDATE_BEACON_REQ
3276 *--------------------------------------------------------------------------*/
3277typedef PACKED_PRE struct PACKED_POST
3278{
3279
3280 tANI_U8 bssIdx;
3281
3282 //shortPreamble mode. HAL should update all the STA rates when it
3283 //receives this message
3284 tANI_U8 fShortPreamble;
3285 //short Slot time.
3286 tANI_U8 fShortSlotTime;
3287 //Beacon Interval
3288 tANI_U16 beaconInterval;
3289 //Protection related
3290 tANI_U8 llaCoexist;
3291 tANI_U8 llbCoexist;
3292 tANI_U8 llgCoexist;
3293 tANI_U8 ht20MhzCoexist;
3294 tANI_U8 llnNonGFCoexist;
3295 tANI_U8 fLsigTXOPProtectionFullSupport;
3296 tANI_U8 fRIFSMode;
3297
3298 tANI_U16 paramChangeBitmap;
3299}tUpdateBeaconParams, *tpUpdateBeaconParams;
3300
3301
3302typedef PACKED_PRE struct PACKED_POST
3303{
3304 tHalMsgHeader header;
3305 tUpdateBeaconParams updateBeaconParam;
3306} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3307
3308/*---------------------------------------------------------------------------
3309 * WLAN_HAL_UPDATE_BEACON_RSP
3310 *--------------------------------------------------------------------------*/
3311typedef PACKED_PRE struct PACKED_POST
3312{
3313 tANI_U32 status;
3314} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3315
3316typedef PACKED_PRE struct PACKED_POST
3317{
3318 tHalMsgHeader header;
3319 tUpdateBeaconRspParams updateBeaconRspParam;
3320} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3321
3322/*---------------------------------------------------------------------------
3323 * WLAN_HAL_SEND_BEACON_REQ
3324 *--------------------------------------------------------------------------*/
3325typedef PACKED_PRE struct PACKED_POST
3326{
3327 tANI_U32 beaconLength; //length of the template.
3328 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3329 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003330 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003331 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3332}tSendBeaconParams, *tpSendBeaconParams;
3333
3334
3335typedef PACKED_PRE struct PACKED_POST
3336{
3337 tHalMsgHeader header;
3338 tSendBeaconParams sendBeaconParam;
3339}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3340
3341/*---------------------------------------------------------------------------
3342 * WLAN_HAL_SEND_BEACON_RSP
3343 *--------------------------------------------------------------------------*/
3344typedef PACKED_PRE struct PACKED_POST
3345{
3346 tANI_U32 status;
3347} tSendBeaconRspParams, *tpSendBeaconRspParams;
3348
3349typedef PACKED_PRE struct PACKED_POST
3350{
3351 tHalMsgHeader header;
3352 tSendBeaconRspParams sendBeaconRspParam;
3353} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3354
3355#ifdef FEATURE_5GHZ_BAND
3356
3357/*---------------------------------------------------------------------------
3358 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3359 *--------------------------------------------------------------------------*/
3360typedef PACKED_PRE struct PACKED_POST
3361{
3362 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003363 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003364}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3365
3366
3367typedef PACKED_PRE struct PACKED_POST
3368{
3369 /* Link Parameters */
3370 tSirEnableRadarInfoType EnableRadarInfo;
3371}tEnableRadarReqParams, *tpEnableRadarReqParams;
3372
3373typedef PACKED_PRE struct PACKED_POST
3374{
3375 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003376 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003377}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3378
3379/*---------------------------------------------------------------------------
3380 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3381 *--------------------------------------------------------------------------*/
3382
3383typedef PACKED_PRE struct PACKED_POST
3384{
3385 /* Link Parameters */
3386 tSirMacAddr BSSID;
3387 /* success or failure */
3388 tANI_U32 status;
3389}tEnableRadarRspParams, *tpEnableRadarRspParams;
3390
3391typedef PACKED_PRE struct PACKED_POST
3392{
3393 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003394 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003395}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3396
3397/*---------------------------------------------------------------------------
3398 *WLAN_HAL_RADAR_DETECT_INTR_IND
3399 *--------------------------------------------------------------------------*/
3400
3401typedef PACKED_PRE struct PACKED_POST
3402{
3403 tANI_U8 radarDetChannel;
3404}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3405
3406typedef PACKED_PRE struct PACKED_POST
3407{
3408 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003409 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003410}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3411
3412/*---------------------------------------------------------------------------
3413 *WLAN_HAL_RADAR_DETECT_IND
3414 *-------------------------------------------------------------------------*/
3415typedef PACKED_PRE struct PACKED_POST
3416{
3417 /*channel number in which the RADAR detected*/
3418 tANI_U8 channelNumber;
3419
3420 /*RADAR pulse width*/
3421 tANI_U16 radarPulseWidth; // in usecond
3422
3423 /*Number of RADAR pulses */
3424 tANI_U16 numRadarPulse;
3425}tRadarDetectIndParams,*tpRadarDetectIndParams;
3426
3427typedef PACKED_PRE struct PACKED_POST
3428{
3429 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003430 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003431}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3432
3433
3434/*---------------------------------------------------------------------------
3435 *WLAN_HAL_GET_TPC_REPORT_REQ
3436 *-------------------------------------------------------------------------*/
3437typedef PACKED_PRE struct PACKED_POST
3438{
3439 tSirMacAddr sta;
3440 tANI_U8 dialogToken;
3441 tANI_U8 txpower;
3442}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3443
3444
3445typedef PACKED_PRE struct PACKED_POST
3446{
3447 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003448 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003449}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3450
3451/*---------------------------------------------------------------------------
3452 * WLAN_HAL_GET_TPC_REPORT_RSP
3453 *--------------------------------------------------------------------------*/
3454
3455typedef PACKED_PRE struct PACKED_POST
3456{
3457 /* success or failure */
3458 tANI_U32 status;
3459}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3460
3461typedef PACKED_PRE struct PACKED_POST
3462{
3463 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003464 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003465}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3466
3467#endif
3468
Jeff Johnson295189b2012-06-20 16:38:30 -07003469/*---------------------------------------------------------------------------
3470 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3471 *-------------------------------------------------------------------------*/
3472typedef PACKED_PRE struct PACKED_POST
3473{
3474 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3475 tANI_U32 probeRespTemplateLen;
3476 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3477 tSirMacAddr bssId;
3478
3479}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3480
3481typedef PACKED_PRE struct PACKED_POST
3482{
3483 tHalMsgHeader header;
3484 tSendProbeRespReqParams sendProbeRespReqParams ;
3485}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3486
3487/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003488 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003489 *--------------------------------------------------------------------------*/
3490
3491typedef PACKED_PRE struct PACKED_POST
3492{
3493 /* success or failure */
3494 tANI_U32 status;
3495}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3496
3497typedef PACKED_PRE struct PACKED_POST
3498{
3499 tHalMsgHeader header;
3500 tSendProbeRespRspParams sendProbeRespRspParams;
3501}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3502
3503
3504/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003505 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003506 *--------------------------------------------------------------------------*/
3507
3508typedef PACKED_PRE struct PACKED_POST
3509{
3510 /* success or failure */
3511 tANI_U32 status;
3512}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3513
3514typedef PACKED_PRE struct PACKED_POST
3515{
3516 tHalMsgHeader header;
3517 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3518}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3519
3520/*---------------------------------------------------------------------------
3521 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3522 *--------------------------------------------------------------------------*/
3523
3524typedef PACKED_PRE struct PACKED_POST
3525{
3526 tANI_U16 assocId;
3527 tANI_U16 staId;
3528 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3529 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003530 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003531 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003532
3533}tDeleteStaContextParams, *tpDeleteStaContextParams;
3534
3535
3536typedef PACKED_PRE struct PACKED_POST
3537{
3538 tHalMsgHeader header;
3539 tDeleteStaContextParams deleteStaContextParams;
3540}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3541
Anand Kumar012623a2013-01-11 17:00:00 -08003542typedef PACKED_PRE struct PACKED_POST
3543{
3544 tHalMsgHeader header;
3545 tANI_U8 assocId;
3546 tANI_U8 staIdx;
3547 tANI_U8 bssIdx;
3548 tANI_U8 uReasonCode;
3549 tANI_U32 uStatus;
3550} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003551
3552/*---------------------------------------------------------------------------
3553 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3554 *--------------------------------------------------------------------------*/
3555
3556typedef PACKED_PRE struct PACKED_POST
3557{
3558 tBtAmpEventType btAmpEventType;
3559
3560}tBtAmpEventParams, *tpBtAmpEventParams;
3561
3562
3563
3564typedef PACKED_PRE struct PACKED_POST
3565{
3566 tHalMsgHeader header;
3567 tBtAmpEventParams btAmpEventParams;
3568}tBtAmpEventMsg, *tpBtAmpEventMsg;
3569
3570/*---------------------------------------------------------------------------
3571*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3572*--------------------------------------------------------------------------*/
3573
3574typedef PACKED_PRE struct PACKED_POST
3575{
3576 /* success or failure */
3577 tANI_U32 status;
3578}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3579
3580typedef PACKED_PRE struct PACKED_POST
3581{
3582 tHalMsgHeader header;
3583 tBtAmpEventRspParams btAmpEventRspParams;
3584}tBtAmpEventRsp, *tpBtAmpEventRsp;
3585
3586
3587/*---------------------------------------------------------------------------
3588 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3589 *--------------------------------------------------------------------------*/
3590
3591typedef PACKED_PRE struct PACKED_POST
3592{
3593 // Station Index. originates from HAL
3594 tANI_U8 ucSTAId;
3595
3596 // TID for which the transmit queue is being flushed
3597 tANI_U8 ucTid;
3598
3599}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3600
3601
3602typedef PACKED_PRE struct PACKED_POST
3603{
3604 tHalMsgHeader header;
3605 tTlHalFlushAcParams tlHalFlushAcParam;
3606}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3607
3608/*---------------------------------------------------------------------------
3609*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3610*--------------------------------------------------------------------------*/
3611
3612typedef PACKED_PRE struct PACKED_POST
3613{
3614 // Station Index. originates from HAL
3615 tANI_U8 ucSTAId;
3616
3617 // TID for which the transmit queue is being flushed
3618 tANI_U8 ucTid;
3619
3620 /* success or failure */
3621 tANI_U32 status;
3622}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3623
3624typedef PACKED_PRE struct PACKED_POST
3625{
3626 tHalMsgHeader header;
3627 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3628}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3629
3630/*---------------------------------------------------------------------------
3631 * WLAN_HAL_ENTER_IMPS_REQ
3632 *--------------------------------------------------------------------------*/
3633typedef PACKED_PRE struct PACKED_POST
3634{
3635 tHalMsgHeader header;
3636} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3637
3638/*---------------------------------------------------------------------------
3639 * WLAN_HAL_EXIT_IMPS_REQ
3640 *--------------------------------------------------------------------------*/
3641typedef PACKED_PRE struct PACKED_POST
3642{
3643 tHalMsgHeader header;
3644} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3645
3646/*---------------------------------------------------------------------------
3647 * WLAN_HAL_ENTER_BMPS_REQ
3648 *--------------------------------------------------------------------------*/
3649
3650typedef PACKED_PRE struct PACKED_POST
3651{
3652 tANI_U8 bssIdx;
3653 //TBTT value derived from the last beacon
3654#ifndef BUILD_QWPTTSTATIC
3655 tANI_U64 tbtt;
3656#endif
3657 tANI_U8 dtimCount;
3658 //DTIM period given to HAL during association may not be valid,
3659 //if association is based on ProbeRsp instead of beacon.
3660 tANI_U8 dtimPeriod;
3661
3662 // For CCX and 11R Roaming
3663 tANI_U32 rssiFilterPeriod;
3664 tANI_U32 numBeaconPerRssiAverage;
3665 tANI_U8 bRssiFilterEnable;
3666
3667} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3668
3669
3670typedef PACKED_PRE struct PACKED_POST
3671{
3672 tHalMsgHeader header;
3673 tHalEnterBmpsReqParams enterBmpsReq;
3674} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3675
3676/*---------------------------------------------------------------------------
3677 * WLAN_HAL_EXIT_BMPS_REQ
3678 *--------------------------------------------------------------------------*/
3679typedef PACKED_PRE struct PACKED_POST
3680{
3681 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003682 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003683} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3684
3685typedef PACKED_PRE struct PACKED_POST
3686{
3687 tHalMsgHeader header;
3688 tHalExitBmpsReqParams exitBmpsReqParams;
3689} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3690
3691/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003692 * WLAN_HAL_MISSED_BEACON_IND
3693 *--------------------------------------------------------------------------*/
3694typedef PACKED_PRE struct PACKED_POST
3695{
3696 tANI_U8 bssIdx;
3697} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3698
3699typedef PACKED_PRE struct PACKED_POST
3700{
3701 tHalMsgHeader header;
3702 tHalMissedBeaconIndParams missedBeaconIndParams;
3703} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3704
3705/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003706 * WLAN_HAL_ADD_BCN_FILTER_REQ
3707 *--------------------------------------------------------------------------*/
3708/* Beacon Filtering data structures */
3709typedef PACKED_PRE struct PACKED_POST
3710{
3711 tANI_U8 offset;
3712 tANI_U8 value;
3713 tANI_U8 bitMask;
3714 tANI_U8 ref;
3715} tEidByteInfo, *tpEidByteInfo;
3716
Jeff Johnson32d95a32012-09-10 13:15:23 -07003717typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003718{
3719 tANI_U16 capabilityInfo;
3720 tANI_U16 capabilityMask;
3721 tANI_U16 beaconInterval;
3722 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003723 tANI_U8 bssIdx;
3724 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003725} tBeaconFilterMsg, *tpBeaconFilterMsg;
3726
3727/* The above structure would be followed by multiple of below mentioned structure */
3728typedef PACKED_PRE struct PACKED_POST
3729{
3730 tANI_U8 elementId;
3731 tANI_U8 checkIePresence;
3732 tEidByteInfo byte;
3733} tBeaconFilterIe, *tpBeaconFilterIe;
3734
3735typedef PACKED_PRE struct PACKED_POST
3736{
3737 tHalMsgHeader header;
3738 tBeaconFilterMsg addBcnFilterParams;
3739} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3740
3741/*---------------------------------------------------------------------------
3742 * WLAN_HAL_REM_BCN_FILTER_REQ
3743 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003744typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003745{
3746 tANI_U8 ucIeCount;
3747 tANI_U8 ucRemIeId[1];
3748} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3749
3750typedef PACKED_PRE struct PACKED_POST
3751{
3752 tHalMsgHeader header;
3753 tRemBeaconFilterMsg remBcnFilterParams;
3754} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3755
3756/*---------------------------------------------------------------------------
3757 * WLAN_HAL_HOST_OFFLOAD_REQ
3758 *--------------------------------------------------------------------------*/
3759#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3760#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3761#define HAL_IPV6_NS_OFFLOAD 2
3762#define HAL_IPV6_ADDR_LEN 16
3763#define HAL_MAC_ADDR_LEN 6
3764#define HAL_OFFLOAD_DISABLE 0
3765#define HAL_OFFLOAD_ENABLE 1
3766#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003767#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003768#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003769#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003770
3771typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3772{
3773 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3774 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3775 //Only support 2 possible Network Advertisement IPv6 address
3776 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3777 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3778 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3779 tANI_U8 srcIPv6AddrValid : 1;
3780 tANI_U8 targetIPv6Addr1Valid : 1;
3781 tANI_U8 targetIPv6Addr2Valid : 1;
3782 tANI_U8 reserved1 : 5;
3783 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003784 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003785 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003786} tHalNSOffloadParams;
3787
3788typedef PACKED_PRE struct PACKED_POST
3789{
3790 tANI_U8 offloadType;
3791 tANI_U8 enableOrDisable;
3792 PACKED_PRE union PACKED_POST
3793 {
3794 tANI_U8 hostIpv4Addr [4];
3795 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3796 } params;
3797} tHalHostOffloadReq, *tpHalHostOffloadReq;
3798
3799typedef PACKED_PRE struct PACKED_POST
3800{
3801 tHalMsgHeader header;
3802 tHalHostOffloadReq hostOffloadParams;
3803 tHalNSOffloadParams nsOffloadParams;
3804} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3805
3806/*---------------------------------------------------------------------------
3807 * WLAN_HAL_KEEP_ALIVE_REQ
3808 *--------------------------------------------------------------------------*/
3809/* Packet Types. */
3810#define HAL_KEEP_ALIVE_NULL_PKT 1
3811#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3812
3813/* Enable or disable keep alive */
3814#define HAL_KEEP_ALIVE_DISABLE 0
3815#define HAL_KEEP_ALIVE_ENABLE 1
3816
3817/* Keep Alive request. */
3818typedef PACKED_PRE struct PACKED_POST
3819{
3820 tANI_U8 packetType;
3821 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003822 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003823 tHalIpv4Addr destIpv4Addr;
3824 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003825 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003826} tHalKeepAliveReq, *tpHalKeepAliveReq;
3827
3828typedef PACKED_PRE struct PACKED_POST
3829{
3830 tHalMsgHeader header;
3831 tHalKeepAliveReq KeepAliveParams;
3832} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3833
3834/*---------------------------------------------------------------------------
3835 * WLAN_HAL_SET_RSSI_THRESH_REQ
3836 *--------------------------------------------------------------------------*/
3837typedef PACKED_PRE struct PACKED_POST
3838{
3839 tANI_S8 ucRssiThreshold1 : 8;
3840 tANI_S8 ucRssiThreshold2 : 8;
3841 tANI_S8 ucRssiThreshold3 : 8;
3842 tANI_U8 bRssiThres1PosNotify : 1;
3843 tANI_U8 bRssiThres1NegNotify : 1;
3844 tANI_U8 bRssiThres2PosNotify : 1;
3845 tANI_U8 bRssiThres2NegNotify : 1;
3846 tANI_U8 bRssiThres3PosNotify : 1;
3847 tANI_U8 bRssiThres3NegNotify : 1;
3848 tANI_U8 bReserved10 : 2;
3849} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003850
Jeff Johnson295189b2012-06-20 16:38:30 -07003851typedef PACKED_PRE struct PACKED_POST
3852{
3853 tHalMsgHeader header;
3854 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003855} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003856
3857/*---------------------------------------------------------------------------
3858 * WLAN_HAL_ENTER_UAPSD_REQ
3859 *--------------------------------------------------------------------------*/
3860typedef PACKED_PRE struct PACKED_POST
3861{
3862 tANI_U8 bkDeliveryEnabled:1;
3863 tANI_U8 beDeliveryEnabled:1;
3864 tANI_U8 viDeliveryEnabled:1;
3865 tANI_U8 voDeliveryEnabled:1;
3866 tANI_U8 bkTriggerEnabled:1;
3867 tANI_U8 beTriggerEnabled:1;
3868 tANI_U8 viTriggerEnabled:1;
3869 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003870 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003871} tUapsdReqParams, *tpUapsdReqParams;
3872
3873typedef PACKED_PRE struct PACKED_POST
3874{
3875 tHalMsgHeader header;
3876 tUapsdReqParams enterUapsdParams;
3877} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3878
3879/*---------------------------------------------------------------------------
3880 * WLAN_HAL_EXIT_UAPSD_REQ
3881 *--------------------------------------------------------------------------*/
3882typedef PACKED_PRE struct PACKED_POST
3883{
3884 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003885 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003886} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3887
3888/*---------------------------------------------------------------------------
3889 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3890 *--------------------------------------------------------------------------*/
3891#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3892#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3893
3894typedef PACKED_PRE struct PACKED_POST
3895{
3896 tANI_U8 ucPatternId; // Pattern ID
3897 // Pattern byte offset from beginning of the 802.11 packet to start of the
3898 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003899 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003900 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3901 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3902 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3903 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3904 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3905 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003906 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003907} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3908
3909typedef PACKED_PRE struct PACKED_POST
3910{
3911 tHalMsgHeader header;
3912 tHalWowlAddBcastPtrn ptrnParams;
3913} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003914
Jeff Johnsone7245742012-09-05 17:12:55 -07003915
3916
Jeff Johnson295189b2012-06-20 16:38:30 -07003917/*---------------------------------------------------------------------------
3918 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3919 *--------------------------------------------------------------------------*/
3920typedef PACKED_PRE struct PACKED_POST
3921{
3922 /* Pattern ID of the wakeup pattern to be deleted */
3923 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003924 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003925} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3926
3927typedef PACKED_PRE struct PACKED_POST
3928{
3929 tHalMsgHeader header;
3930 tHalWowlDelBcastPtrn ptrnParams;
3931} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3932
3933/*---------------------------------------------------------------------------
3934 * WLAN_HAL_ENTER_WOWL_REQ
3935 *--------------------------------------------------------------------------*/
3936typedef PACKED_PRE struct PACKED_POST
3937{
3938 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003939 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003940
3941 /* Magic pattern */
3942 tSirMacAddr magicPtrn;
3943
Jeff Johnson32d95a32012-09-10 13:15:23 -07003944 /* Enables/disables packet pattern filtering in firmware.
3945 Enabling this flag enables broadcast pattern matching
3946 in Firmware. If unicast pattern matching is also desired,
3947 ucUcastPatternFilteringEnable flag must be set tot true
3948 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003949 */
3950 tANI_U8 ucPatternFilteringEnable;
3951
Jeff Johnson32d95a32012-09-10 13:15:23 -07003952 /* Enables/disables unicast packet pattern filtering.
3953 This flag specifies whether we want to do pattern match
3954 on unicast packets as well and not just broadcast packets.
3955 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003956 (main controlling flag) is set to false
3957 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003958 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003959
Jeff Johnson32d95a32012-09-10 13:15:23 -07003960 /* This configuration is valid only when magicPktEnable=1.
3961 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003962 * Channel Switch Action Frame.
3963 */
3964 tANI_U8 ucWowChnlSwitchRcv;
3965
Jeff Johnson32d95a32012-09-10 13:15:23 -07003966 /* This configuration is valid only when magicPktEnable=1.
3967 * It requests hardware to wake up when it receives the
3968 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003969 */
3970 tANI_U8 ucWowDeauthRcv;
3971
Jeff Johnson32d95a32012-09-10 13:15:23 -07003972 /* This configuration is valid only when magicPktEnable=1.
3973 * It requests hardware to wake up when it receives the
3974 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003975 */
3976 tANI_U8 ucWowDisassocRcv;
3977
Jeff Johnson32d95a32012-09-10 13:15:23 -07003978 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003979 * It requests hardware to wake up when it has missed
3980 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003981 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003982 */
3983 tANI_U8 ucWowMaxMissedBeacons;
3984
Jeff Johnson32d95a32012-09-10 13:15:23 -07003985 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003986 * This is a timeout value in units of microsec. It requests
3987 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003988 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003989 */
3990 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003991
Jeff Johnson295189b2012-06-20 16:38:30 -07003992 /* This configuration directs the WoW packet filtering to look for EAP-ID
3993 * requests embedded in EAPOL frames and use this as a wake source.
3994 */
3995 tANI_U8 ucWoWEAPIDRequestEnable;
3996
3997 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3998 * requests and use this as a wake source.
3999 */
4000 tANI_U8 ucWoWEAPOL4WayEnable;
4001
4002 /* This configuration allows a host wakeup on an network scan offload match.
4003 */
4004 tANI_U8 ucWowNetScanOffloadMatch;
4005
4006 /* This configuration allows a host wakeup on any GTK rekeying error.
4007 */
4008 tANI_U8 ucWowGTKRekeyError;
4009
4010 /* This configuration allows a host wakeup on BSS connection loss.
4011 */
4012 tANI_U8 ucWoWBSSConnLoss;
4013
Jeff Johnsone7245742012-09-05 17:12:55 -07004014 tANI_U8 bssIdx;
4015
Jeff Johnson295189b2012-06-20 16:38:30 -07004016} tHalWowlEnterParams, *tpHalWowlEnterParams;
4017
4018typedef PACKED_PRE struct PACKED_POST
4019{
4020 tHalMsgHeader header;
4021 tHalWowlEnterParams enterWowlParams;
4022} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4023
4024/*---------------------------------------------------------------------------
4025 * WLAN_HAL_EXIT_WOWL_REQ
4026 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004027
Jeff Johnson295189b2012-06-20 16:38:30 -07004028typedef PACKED_PRE struct PACKED_POST
4029{
Jeff Johnsone7245742012-09-05 17:12:55 -07004030 tANI_U8 bssIdx;
4031
4032} tHalWowlExitParams, *tpHalWowlExitParams;
4033
4034typedef PACKED_PRE struct PACKED_POST
4035{
4036 tHalMsgHeader header;
4037 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004038} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4039
4040/*---------------------------------------------------------------------------
4041 * WLAN_HAL_GET_RSSI_REQ
4042 *--------------------------------------------------------------------------*/
4043typedef PACKED_PRE struct PACKED_POST
4044{
4045 tHalMsgHeader header;
4046} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4047
Anand Kumar012623a2013-01-11 17:00:00 -08004048typedef PACKED_PRE struct PACKED_POST
4049{
4050 /* Valid STA Idx for per STA stats request */
4051 tANI_U32 staId;
4052
4053}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4054
4055
4056/*---------------------------------------------------------------------------
4057 * WLAN_HAL_GET_ROAM_RSSI_REQ
4058 *--------------------------------------------------------------------------*/
4059typedef PACKED_PRE struct PACKED_POST
4060{
4061 tHalMsgHeader header;
4062 tHalRoamRssiReqParams roamRssiReqParams;
4063} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4064
4065
Jeff Johnson295189b2012-06-20 16:38:30 -07004066/*---------------------------------------------------------------------------
4067 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4068 *--------------------------------------------------------------------------*/
4069typedef PACKED_PRE struct PACKED_POST {
4070 tANI_U8 staidx; // STA index
4071 tANI_U8 ac; // Access Category
4072 tANI_U8 up; // User Priority
4073 tANI_U32 srvInterval; // Service Interval
4074 tANI_U32 susInterval; // Suspend Interval
4075 tANI_U32 delayInterval; // Delay Interval
4076} tUapsdInfo, tpUapsdInfo;
4077
4078typedef PACKED_PRE struct PACKED_POST
4079{
4080 tHalMsgHeader header;
4081 tUapsdInfo enableUapsdAcParams;
4082} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4083
4084/*---------------------------------------------------------------------------
4085 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4086 *--------------------------------------------------------------------------*/
4087typedef PACKED_PRE struct PACKED_POST {
4088 tANI_U8 setMcstBcstFilterSetting;
4089 tANI_U8 setMcstBcstFilter;
4090} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4091
4092typedef PACKED_PRE struct PACKED_POST
4093{
4094 tHalMsgHeader header;
4095 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4096} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4097
4098/*---------------------------------------------------------------------------
4099 * WLAN_HAL_ENTER_IMPS_RSP
4100 *--------------------------------------------------------------------------*/
4101typedef PACKED_PRE struct PACKED_POST
4102{
4103 /* success or failure */
4104 tANI_U32 status;
4105} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4106
4107typedef PACKED_PRE struct PACKED_POST
4108{
4109 tHalMsgHeader header;
4110 tHalEnterImpsRspParams enterImpsRspParams;
4111} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4112
4113/*---------------------------------------------------------------------------
4114 * WLAN_HAL_EXIT_IMPS_RSP
4115 *--------------------------------------------------------------------------*/
4116typedef PACKED_PRE struct PACKED_POST
4117{
4118 /* success or failure */
4119 tANI_U32 status;
4120} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4121
4122typedef PACKED_PRE struct PACKED_POST
4123{
4124 tHalMsgHeader header;
4125 tHalExitImpsRspParams exitImpsRspParams;
4126} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4127
4128/*---------------------------------------------------------------------------
4129 * WLAN_HAL_ENTER_BMPS_RSP
4130 *--------------------------------------------------------------------------*/
4131typedef PACKED_PRE struct PACKED_POST
4132{
4133 /* success or failure */
4134 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004135 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004136} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4137
4138typedef PACKED_PRE struct PACKED_POST
4139{
4140 tHalMsgHeader header;
4141 tHalEnterBmpsRspParams enterBmpsRspParams;
4142} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4143
4144/*---------------------------------------------------------------------------
4145 * WLAN_HAL_EXIT_BMPS_RSP
4146 *--------------------------------------------------------------------------*/
4147typedef PACKED_PRE struct PACKED_POST
4148{
4149 /* success or failure */
4150 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004151 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004152} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4153
4154typedef PACKED_PRE struct PACKED_POST
4155{
4156 tHalMsgHeader header;
4157 tHalExitBmpsRspParams exitBmpsRspParams;
4158} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4159
4160/*---------------------------------------------------------------------------
4161 * WLAN_HAL_ENTER_UAPSD_RSP
4162 *--------------------------------------------------------------------------*/
4163typedef PACKED_PRE struct PACKED_POST
4164{
4165 /* success or failure */
4166 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004167 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004168}tUapsdRspParams, *tpUapsdRspParams;
4169
4170typedef PACKED_PRE struct PACKED_POST
4171{
4172 tHalMsgHeader header;
4173 tUapsdRspParams enterUapsdRspParams;
4174} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4175
4176/*---------------------------------------------------------------------------
4177 * WLAN_HAL_EXIT_UAPSD_RSP
4178 *--------------------------------------------------------------------------*/
4179typedef PACKED_PRE struct PACKED_POST
4180{
4181 /* success or failure */
4182 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004183 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004184} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4185
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tHalMsgHeader header;
4189 tHalExitUapsdRspParams exitUapsdRspParams;
4190} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4191
4192/*---------------------------------------------------------------------------
4193 * WLAN_HAL_RSSI_NOTIFICATION_IND
4194 *--------------------------------------------------------------------------*/
4195typedef PACKED_PRE struct PACKED_POST
4196{
4197 tANI_U32 bRssiThres1PosCross : 1;
4198 tANI_U32 bRssiThres1NegCross : 1;
4199 tANI_U32 bRssiThres2PosCross : 1;
4200 tANI_U32 bRssiThres2NegCross : 1;
4201 tANI_U32 bRssiThres3PosCross : 1;
4202 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004203 tANI_U32 avgRssi : 8;
4204 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004205} tHalRSSINotification, *tpHalRSSINotification;
4206
4207typedef PACKED_PRE struct PACKED_POST
4208{
4209 tHalMsgHeader header;
4210 tHalRSSINotification rssiNotificationParams;
4211} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4212
4213/*---------------------------------------------------------------------------
4214 * WLAN_HAL_GET_RSSI_RSP
4215 *--------------------------------------------------------------------------*/
4216typedef PACKED_PRE struct PACKED_POST
4217{
4218 /* success or failure */
4219 tANI_U32 status;
4220 tANI_S8 rssi;
4221} tHalGetRssiParams, *tpHalGetRspParams;
4222
4223typedef PACKED_PRE struct PACKED_POST
4224{
4225 tHalMsgHeader header;
4226 tHalGetRssiParams rssiRspParams;
4227} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4228
4229/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004230 * WLAN_HAL_GET_ROAM_RSSI_RSP
4231 *--------------------------------------------------------------------------*/
4232typedef PACKED_PRE struct PACKED_POST
4233{
4234 /* success or failure */
4235 tANI_U32 status;
4236
4237 tANI_U8 staId;
4238 tANI_S8 rssi;
4239} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4240
4241typedef PACKED_PRE struct PACKED_POST
4242{
4243 tHalMsgHeader header;
4244 tHalGetRoamRssiParams roamRssiRspParams;
4245} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4246
4247/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004248 * WLAN_HAL_ENTER_WOWL_RSP
4249 *--------------------------------------------------------------------------*/
4250typedef PACKED_PRE struct PACKED_POST
4251{
4252 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004253 tANI_U32 status;
4254 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004255} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4256
4257typedef PACKED_PRE struct PACKED_POST
4258{
4259 tHalMsgHeader header;
4260 tHalEnterWowlRspParams enterWowlRspParams;
4261} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4262
4263/*---------------------------------------------------------------------------
4264 * WLAN_HAL_EXIT_WOWL_RSP
4265 *--------------------------------------------------------------------------*/
4266typedef PACKED_PRE struct PACKED_POST
4267{
4268 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004269 tANI_U32 status;
4270 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004271} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4272
4273typedef PACKED_PRE struct PACKED_POST
4274{
4275 tHalMsgHeader header;
4276 tHalExitWowlRspParams exitWowlRspParams;
4277} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4278
4279/*---------------------------------------------------------------------------
4280 * WLAN_HAL_ADD_BCN_FILTER_RSP
4281 *--------------------------------------------------------------------------*/
4282typedef PACKED_PRE struct PACKED_POST
4283{
4284 /* success or failure */
4285 tANI_U32 status;
4286} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4287
4288typedef PACKED_PRE struct PACKED_POST
4289{
4290 tHalMsgHeader header;
4291 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4292} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4293
4294/*---------------------------------------------------------------------------
4295 * WLAN_HAL_REM_BCN_FILTER_RSP
4296 *--------------------------------------------------------------------------*/
4297typedef PACKED_PRE struct PACKED_POST
4298{
4299 /* success or failure */
4300 tANI_U32 status;
4301} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4302
4303typedef PACKED_PRE struct PACKED_POST
4304{
4305 tHalMsgHeader header;
4306 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4307} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4308
4309/*---------------------------------------------------------------------------
4310 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4311 *--------------------------------------------------------------------------*/
4312typedef PACKED_PRE struct PACKED_POST
4313{
4314 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004315 tANI_U32 status;
4316 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004317} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4318
4319typedef PACKED_PRE struct PACKED_POST
4320{
4321 tHalMsgHeader header;
4322 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4323} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4324
4325/*---------------------------------------------------------------------------
4326 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4327 *--------------------------------------------------------------------------*/
4328typedef PACKED_PRE struct PACKED_POST
4329{
4330 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004331 tANI_U32 status;
4332 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004333} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4334
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 tHalMsgHeader header;
4338 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4339} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4340
4341/*---------------------------------------------------------------------------
4342 * WLAN_HAL_HOST_OFFLOAD_RSP
4343 *--------------------------------------------------------------------------*/
4344typedef PACKED_PRE struct PACKED_POST
4345{
4346 /* success or failure */
4347 tANI_U32 status;
4348} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4349
4350typedef PACKED_PRE struct PACKED_POST
4351{
4352 tHalMsgHeader header;
4353 tHalHostOffloadRspParams hostOffloadRspParams;
4354} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4355
4356/*---------------------------------------------------------------------------
4357 * WLAN_HAL_KEEP_ALIVE_RSP
4358 *--------------------------------------------------------------------------*/
4359typedef PACKED_PRE struct PACKED_POST
4360{
4361 /* success or failure */
4362 tANI_U32 status;
4363} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4364
4365typedef PACKED_PRE struct PACKED_POST
4366{
4367 tHalMsgHeader header;
4368 tHalKeepAliveRspParams keepAliveRspParams;
4369} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4370
4371/*---------------------------------------------------------------------------
4372 * WLAN_HAL_SET_RSSI_THRESH_RSP
4373 *--------------------------------------------------------------------------*/
4374typedef PACKED_PRE struct PACKED_POST
4375{
4376 /* success or failure */
4377 tANI_U32 status;
4378} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4379
4380typedef PACKED_PRE struct PACKED_POST
4381{
4382 tHalMsgHeader header;
4383 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4384} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4385
4386/*---------------------------------------------------------------------------
4387 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4388 *--------------------------------------------------------------------------*/
4389typedef PACKED_PRE struct PACKED_POST
4390{
4391 /* success or failure */
4392 tANI_U32 status;
4393} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4394
4395typedef PACKED_PRE struct PACKED_POST
4396{
4397 tHalMsgHeader header;
4398 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4399} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4400
4401/*---------------------------------------------------------------------------
4402 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4403 *--------------------------------------------------------------------------*/
4404typedef PACKED_PRE struct PACKED_POST
4405{
4406 /* success or failure */
4407 tANI_U32 status;
4408} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4409
4410typedef PACKED_PRE struct PACKED_POST
4411{
4412 tHalMsgHeader header;
4413 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4414} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4415
4416/*---------------------------------------------------------------------------
4417 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4418 *--------------------------------------------------------------------------*/
4419
4420typedef PACKED_PRE struct PACKED_POST
4421{
4422 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4423 //the request has power constraints, this should be applied only to that session
4424 tSirMacAddr selfStaMacAddr;
4425 //In request,
4426 //power == MaxTx power to be used.
4427 tPowerdBm power;
4428
4429}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4430
4431
4432typedef PACKED_PRE struct PACKED_POST
4433{
4434 tHalMsgHeader header;
4435 tSetMaxTxPwrParams setMaxTxPwrParams;
4436}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4437
4438/*---------------------------------------------------------------------------
4439*WLAN_HAL_SET_MAX_TX_POWER_RSP
4440*--------------------------------------------------------------------------*/
4441
4442typedef PACKED_PRE struct PACKED_POST
4443{
4444 //power == tx power used for management frames.
4445 tPowerdBm power;
4446
4447 /* success or failure */
4448 tANI_U32 status;
4449}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4450
4451typedef PACKED_PRE struct PACKED_POST
4452{
4453 tHalMsgHeader header;
4454 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4455}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4456
4457/*---------------------------------------------------------------------------
4458 *WLAN_HAL_SET_TX_POWER_REQ
4459 *--------------------------------------------------------------------------*/
4460
4461typedef PACKED_PRE struct PACKED_POST
4462{
4463 /* TX Power in milli watts */
4464 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004465 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004466}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4467
4468
4469typedef PACKED_PRE struct PACKED_POST
4470{
4471 tHalMsgHeader header;
4472 tSetTxPwrReqParams setTxPwrReqParams;
4473}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4474
4475/*---------------------------------------------------------------------------
4476*WLAN_HAL_SET_TX_POWER_RSP
4477*--------------------------------------------------------------------------*/
4478
4479typedef PACKED_PRE struct PACKED_POST
4480{
4481 /* success or failure */
4482 tANI_U32 status;
4483}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4484
4485typedef PACKED_PRE struct PACKED_POST
4486{
4487 tHalMsgHeader header;
4488 tSetTxPwrRspParams setTxPwrRspParams;
4489}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4490
4491/*---------------------------------------------------------------------------
4492 *WLAN_HAL_GET_TX_POWER_REQ
4493 *--------------------------------------------------------------------------*/
4494
4495typedef PACKED_PRE struct PACKED_POST
4496{
4497 tANI_U8 staId;
4498}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4499
4500typedef PACKED_PRE struct PACKED_POST
4501{
4502 tHalMsgHeader header;
4503 tGetTxPwrReqParams getTxPwrReqParams;
4504}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4505
4506/*---------------------------------------------------------------------------
4507*WLAN_HAL_GET_TX_POWER_RSP
4508*--------------------------------------------------------------------------*/
4509
4510typedef PACKED_PRE struct PACKED_POST
4511{
4512 /* success or failure */
4513 tANI_U32 status;
4514
4515 /* TX Power in milli watts */
4516 tANI_U32 txPower;
4517}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4518
4519typedef PACKED_PRE struct PACKED_POST
4520{
4521 tHalMsgHeader header;
4522 tGetTxPwrRspParams getTxPwrRspParams;
4523}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4524
4525#ifdef WLAN_FEATURE_P2P
4526/*---------------------------------------------------------------------------
4527 *WLAN_HAL_SET_P2P_GONOA_REQ
4528 *--------------------------------------------------------------------------*/
4529
4530typedef PACKED_PRE struct PACKED_POST
4531{
4532 tANI_U8 opp_ps;
4533 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004534 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004535 tANI_U32 duration;
4536 tANI_U32 interval;
4537 tANI_U32 single_noa_duration;
4538 tANI_U8 psSelection;
4539}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4540
4541
4542typedef PACKED_PRE struct PACKED_POST
4543{
4544 tHalMsgHeader header;
4545 tSetP2PGONOAParams setP2PGONOAParams;
4546}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4547
4548/*---------------------------------------------------------------------------
4549*WLAN_HAL_SET_P2P_GONOA_RSP
4550*--------------------------------------------------------------------------*/
4551
4552typedef PACKED_PRE struct PACKED_POST
4553{
4554 /* success or failure */
4555 tANI_U32 status;
4556}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4557
4558typedef PACKED_PRE struct PACKED_POST
4559{
4560 tHalMsgHeader header;
4561 tSetP2PGONOARspParams setP2PGONOARspParams;
4562}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4563#endif
4564
4565/*---------------------------------------------------------------------------
4566 *WLAN_HAL_ADD_SELF_STA_REQ
4567 *--------------------------------------------------------------------------*/
4568
4569typedef PACKED_PRE struct PACKED_POST
4570{
4571 tSirMacAddr selfMacAddr;
4572 tANI_U32 status;
4573}tAddStaSelfParams, *tpAddStaSelfParams;
4574
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004575typedef PACKED_PRE struct PACKED_POST
4576{
4577 tSirMacAddr selfMacAddr;
4578 tANI_U32 status;
4579 tHalIfacePersona iface_persona;
4580}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004581
4582typedef PACKED_PRE struct PACKED_POST
4583{
4584 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004585 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07004586 tAddStaSelfParams addStaSelfParams;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004587 tAddStaSelfParams_V1 addStaSelfParams_V1;
4588 }uAddStaSelfParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004589}tAddStaSelfReq, *tpAddStaSelfReq;
4590
4591/*---------------------------------------------------------------------------
4592*WLAN_HAL_ADD_SELF_STA_RSP
4593*--------------------------------------------------------------------------*/
4594
4595typedef PACKED_PRE struct PACKED_POST
4596{
4597 /* success or failure */
4598 tANI_U32 status;
4599
4600 /*Self STA Index */
4601 tANI_U8 selfStaIdx;
4602
4603 /* DPU Index (IGTK, PTK, GTK all same) */
4604 tANI_U8 dpuIdx;
4605
4606 /* DPU Signature */
4607 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004608
Jeff Johnson295189b2012-06-20 16:38:30 -07004609}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4610
4611typedef PACKED_PRE struct PACKED_POST
4612{
4613 tHalMsgHeader header;
4614 tAddStaSelfRspParams addStaSelfRspParams;
4615}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4616
4617
4618/*---------------------------------------------------------------------------
4619 WLAN_HAL_DEL_STA_SELF_REQ
4620---------------------------------------------------------------------------*/
4621
4622typedef PACKED_PRE struct PACKED_POST
4623{
4624 tSirMacAddr selfMacAddr;
4625
4626}tDelStaSelfParams, *tpDelStaSelfParams;
4627
4628typedef PACKED_PRE struct PACKED_POST
4629{
4630 tHalMsgHeader header;
4631 tDelStaSelfParams delStaSelfParams;
4632} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4633
4634
4635/*---------------------------------------------------------------------------
4636 WLAN_HAL_DEL_STA_SELF_RSP
4637---------------------------------------------------------------------------*/
4638
4639typedef PACKED_PRE struct PACKED_POST
4640{
4641 /*success or failure */
4642 tANI_U32 status;
4643
4644 tSirMacAddr selfMacAddr;
4645}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4646
4647typedef PACKED_PRE struct PACKED_POST
4648{
4649 tHalMsgHeader header;
4650 tDelStaSelfRspParams delStaSelfRspParams;
4651} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4652
4653
4654#ifdef WLAN_FEATURE_VOWIFI_11R
4655
4656/*---------------------------------------------------------------------------
4657 *WLAN_HAL_AGGR_ADD_TS_REQ
4658 *--------------------------------------------------------------------------*/
4659
4660typedef PACKED_PRE struct PACKED_POST
4661{
4662 /* Station Index */
4663 tANI_U16 staIdx;
4664
4665 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4666 /* This will carry the bitmap with the bit positions representing different AC.s*/
4667 tANI_U16 tspecIdx;
4668
4669 /* Tspec info per AC To program TPE with required parameters */
4670 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4671
4672 /* U-APSD Flags: 1b per AC. Encoded as follows:
4673 b7 b6 b5 b4 b3 b2 b1 b0 =
4674 X X X X BE BK VI VO */
4675 tANI_U8 uAPSD;
4676
4677 /* These parameters are for all the access categories */
4678 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4679 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4680 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4681
4682}tAggrAddTsParams, *tpAggrAddTsParams;
4683
4684
4685typedef PACKED_PRE struct PACKED_POST
4686{
4687 tHalMsgHeader header;
4688 tAggrAddTsParams aggrAddTsParam;
4689}tAggrAddTsReq, *tpAggrAddTsReq;
4690
4691/*---------------------------------------------------------------------------
4692*WLAN_HAL_AGGR_ADD_TS_RSP
4693*--------------------------------------------------------------------------*/
4694
4695typedef PACKED_PRE struct PACKED_POST
4696{
4697 /* success or failure */
4698 tANI_U32 status0;
4699 /* FIXME PRIMA for future use for 11R */
4700 tANI_U32 status1;
4701}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4702
4703typedef PACKED_PRE struct PACKED_POST
4704{
4705 tHalMsgHeader header;
4706 tAggrAddTsRspParams aggrAddTsRspParam;
4707}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4708
4709#endif
4710
4711/*---------------------------------------------------------------------------
4712 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4713 *--------------------------------------------------------------------------*/
4714typedef PACKED_PRE struct PACKED_POST
4715{
4716 tANI_U8 isAppsCpuAwake;
4717} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4718
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 tHalMsgHeader header;
4722 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4723} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4724
4725/*---------------------------------------------------------------------------
4726 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4727 *--------------------------------------------------------------------------*/
4728typedef PACKED_PRE struct PACKED_POST
4729{
4730 /* success or failure */
4731 tANI_U32 status;
4732} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4733
4734typedef PACKED_PRE struct PACKED_POST
4735{
4736 tHalMsgHeader header;
4737 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4738} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4739/*---------------------------------------------------------------------------
4740 * WLAN_HAL_DUMP_COMMAND_REQ
4741 *--------------------------------------------------------------------------*/
4742
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 tANI_U32 argument1;
4746 tANI_U32 argument2;
4747 tANI_U32 argument3;
4748 tANI_U32 argument4;
4749 tANI_U32 argument5;
4750
4751}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4752
4753typedef PACKED_PRE struct PACKED_POST
4754{
4755 tHalMsgHeader header;
4756 tHalDumpCmdReqParams dumpCmdReqParams;
4757} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4758
4759/*---------------------------------------------------------------------------
4760 * WLAN_HAL_DUMP_COMMAND_RSP
4761 *--------------------------------------------------------------------------*/
4762
4763typedef PACKED_PRE struct PACKED_POST
4764{
4765 /* success or failure */
4766 tANI_U32 status;
4767 /*Length of the responce message*/
4768 tANI_U32 rspLength;
4769 /*FiXME: Currently considering the the responce will be less than 100bytes */
4770 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004771
Jeff Johnson295189b2012-06-20 16:38:30 -07004772} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4773
4774typedef PACKED_PRE struct PACKED_POST
4775{
4776 tHalMsgHeader header;
4777 tHalDumpCmdRspParams dumpCmdRspParams;
4778} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4779
4780/*---------------------------------------------------------------------------
4781 *WLAN_HAL_COEX_IND
4782 *-------------------------------------------------------------------------*/
4783#define WLAN_COEX_IND_DATA_SIZE (4)
4784#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4785#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004786#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
4787#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004788#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
4789#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07004790
4791typedef PACKED_PRE struct PACKED_POST
4792{
4793 /*Coex Indication Type*/
4794 tANI_U32 coexIndType;
4795
4796 /*Coex Indication Data*/
4797 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4798}tCoexIndParams,*tpCoexIndParams;
4799
4800typedef PACKED_PRE struct PACKED_POST
4801{
4802 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004803 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004804}tCoexIndMsg, *tpCoexIndMsg;
4805
4806/*---------------------------------------------------------------------------
4807 *WLAN_HAL_OTA_TX_COMPL_IND
4808 *-------------------------------------------------------------------------*/
4809
4810typedef PACKED_PRE struct PACKED_POST
4811{
4812 /*Tx Complete Indication Success or Failure*/
4813 tANI_U32 status;
4814}tTxComplParams,*tpTxComplParams;
4815
4816typedef PACKED_PRE struct PACKED_POST
4817{
4818 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004819 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004820}tTxComplIndMsg, *tpTxComplIndMsg;
4821
4822/*---------------------------------------------------------------------------
4823 * WLAN_HAL_HOST_SUSPEND_IND
4824 *-------------------------------------------------------------------------*/
4825
4826typedef PACKED_PRE struct PACKED_POST
4827{
4828 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004829 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004830}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4831
4832typedef PACKED_PRE struct PACKED_POST
4833{
4834 tHalMsgHeader header;
4835 tHalWlanHostSuspendIndParam suspendIndParams;
4836}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4837
4838/*---------------------------------------------------------------------------
4839 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4840 *-------------------------------------------------------------------------*/
4841
4842typedef PACKED_PRE struct PACKED_POST
4843{
4844 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004845 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004846}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4847
4848typedef PACKED_PRE struct PACKED_POST
4849{
4850 tHalMsgHeader header;
4851 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4852}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4853
4854#ifdef WLAN_FEATURE_P2P
4855/*---------------------------------------------------------------------------
4856 *WLAN_HAL_NOA_ATTR_IND
4857 *-------------------------------------------------------------------------*/
4858
4859typedef PACKED_PRE struct PACKED_POST
4860{
4861 tANI_U8 index ;
4862 tANI_U8 oppPsFlag ;
4863 tANI_U16 ctWin ;
4864
4865 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004866 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004867 tANI_U32 uNoa1Duration;
4868 tANI_U32 uNoa1Interval;
4869 tANI_U32 uNoa1StartTime;
4870
4871 tANI_U16 uNoa2IntervalCnt;
4872 tANI_U16 rsvd2;
4873 tANI_U32 uNoa2Duration;
4874 tANI_U32 uNoa2Interval;
4875 tANI_U32 uNoa2StartTime;
4876
4877 tANI_U32 status;
4878}tNoaAttrIndParams, *tpNoaAttrIndParams;
4879
4880typedef PACKED_PRE struct PACKED_POST
4881{
4882 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004883 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004884}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004885
4886/*---------------------------------------------------------------------------
4887 *WLAN_HAL_NOA_START_IND
4888 *-------------------------------------------------------------------------*/
4889
4890typedef PACKED_PRE struct PACKED_POST
4891{
4892 tANI_U32 status;
4893 tANI_U32 bssIdx;
4894}tNoaStartIndParams, *tpNoaStartIndParams;
4895
4896typedef PACKED_PRE struct PACKED_POST
4897{
4898 tHalMsgHeader header;
4899 tNoaStartIndParams noaStartIndParams;
4900}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004901#endif
4902
4903/*---------------------------------------------------------------------------
4904 * WLAN_HAL_HOST_RESUME_REQ
4905 *-------------------------------------------------------------------------*/
4906
4907typedef PACKED_PRE struct PACKED_POST
4908{
4909 tANI_U8 configuredMcstBcstFilterSetting;
4910}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4911
4912typedef PACKED_PRE struct PACKED_POST
4913{
4914 tHalMsgHeader header;
4915 tHalWlanHostResumeReqParam resumeReqParams;
4916}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4917
4918/*---------------------------------------------------------------------------
4919 * WLAN_HAL_HOST_RESUME_RSP
4920 *--------------------------------------------------------------------------*/
4921typedef PACKED_PRE struct PACKED_POST
4922{
4923 /* success or failure */
4924 tANI_U32 status;
4925} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4926
4927typedef PACKED_PRE struct PACKED_POST
4928{
4929 tHalMsgHeader header;
4930 tHalHostResumeRspParams hostResumeRspParams;
4931} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4932
Anand Kumar012623a2013-01-11 17:00:00 -08004933typedef PACKED_PRE struct PACKED_POST
4934{
4935 tANI_U16 staIdx;
4936 // Peer MAC Address, whose BA session has timed out
4937 tSirMacAddr peerMacAddr;
4938 // TID for which a BA session timeout is being triggered
4939 tANI_U8 baTID;
4940 // DELBA direction
4941 // 1 - Originator
4942 // 0 - Recipient
4943 tANI_U8 baDirection;
4944 tANI_U32 reasonCode;
4945 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4946} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4947
4948typedef PACKED_PRE struct PACKED_POST
4949{
4950 tHalMsgHeader header;
4951 tHalWlanDelBaIndMsg hostdelBaParam;
4952} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4953
Jeff Johnson295189b2012-06-20 16:38:30 -07004954/*---------------------------------------------------------------------------
4955 *PNO Messages
4956 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004957/* Max number of channels that a network can be found on*/
4958/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
4959 * be changed at same time
4960 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07004961#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07004962
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304963/*Max number of channels that a network can be found on*/
4964#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4965
Jeff Johnson295189b2012-06-20 16:38:30 -07004966/*Maximum numbers of networks supported by PNO*/
4967#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4968
4969/*The number of scan time intervals that can be programmed into PNO*/
4970#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4971
4972/*Maximum size of the probe template*/
4973#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4974
Jeff Johnson32d95a32012-09-10 13:15:23 -07004975/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004976 Immediate - scanning will start immediately and PNO procedure will
4977 be repeated based on timer
4978 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004979 Resume - scanning will start on system resume
4980 Delay - start the scan timer to trigger PNO scan
4981 */
Jeff Johnson295189b2012-06-20 16:38:30 -07004982typedef enum
4983{
4984 ePNO_MODE_IMMEDIATE,
4985 ePNO_MODE_ON_SUSPEND,
4986 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05304987 ePNO_MODE_DELAY,
4988 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07004989 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4990} ePNOMode;
4991
4992/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004993typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004994{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004995 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004996 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004997
Jeff Johnson295189b2012-06-20 16:38:30 -07004998 // Upper layer authentication types
4999 eAUTH_TYPE_WPA = 2,
5000 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005001
Jeff Johnson295189b2012-06-20 16:38:30 -07005002 eAUTH_TYPE_RSN = 4,
5003 eAUTH_TYPE_RSN_PSK = 5,
5004 eAUTH_TYPE_FT_RSN = 6,
5005 eAUTH_TYPE_FT_RSN_PSK = 7,
5006 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5007 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005008 eAUTH_TYPE_CCKM_WPA = 10,
5009 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005010
Jeff Johnson295189b2012-06-20 16:38:30 -07005011 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5012
5013}tAuthType;
5014
5015/* Encryption type */
5016typedef enum eEdType
5017{
5018 eED_ANY = 0,
5019 eED_NONE = 1,
5020 eED_WEP = 2,
5021 eED_TKIP = 3,
5022 eED_CCMP = 4,
5023 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005024
Jeff Johnson295189b2012-06-20 16:38:30 -07005025 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5026} tEdType;
5027
5028/* SSID broadcast type */
5029typedef enum eSSIDBcastType
5030{
5031 eBCAST_UNKNOWN = 0,
5032 eBCAST_NORMAL = 1,
5033 eBCAST_HIDDEN = 2,
5034
5035 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5036} tSSIDBcastType;
5037
Jeff Johnson32d95a32012-09-10 13:15:23 -07005038/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005039 The network description for which PNO will have to look for
5040*/
5041typedef PACKED_PRE struct PACKED_POST
5042{
5043 /*SSID of the BSS*/
5044 tSirMacSSid ssId;
5045
5046 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005047 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005048
5049 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005050 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005051
Jeff Johnson32d95a32012-09-10 13:15:23 -07005052 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005053 0 - if all channels */
5054 tANI_U8 ucChannelCount;
5055 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5056
5057 /*Indicates the RSSI threshold for the network to be considered*/
5058 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005059}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005060
5061typedef PACKED_PRE struct PACKED_POST
5062{
5063 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005064 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005065
Jeff Johnson32d95a32012-09-10 13:15:23 -07005066 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005067 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005068 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005069
Jeff Johnson32d95a32012-09-10 13:15:23 -07005070 /*e.g: 2 3
5071 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005072 - it will wait 2s between consecutive scans for 3 times
5073 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005074}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005075
Jeff Johnson32d95a32012-09-10 13:15:23 -07005076/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005077 The network parameters to be sent to the PNO algorithm
5078*/
5079typedef PACKED_PRE struct PACKED_POST
5080{
5081 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005082 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005083
Jeff Johnson32d95a32012-09-10 13:15:23 -07005084 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005085 two consecutive scan procedures
5086 If the desired is for a uniform timer that fires always at the exact same
5087 interval - one single value is to be set
5088 If there is a desire for a more complex - telescopic like timer multiple
5089 values can be set - once PNO reaches the end of the array it will
5090 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005091 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005092
5093}tScanTimersType;
5094
5095typedef PACKED_PRE struct PACKED_POST {
5096
5097 /*Enable PNO*/
5098 tANI_U32 enable;
5099
5100 /*Immediate, On Suspend, On Resume*/
5101 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005102
Jeff Johnson295189b2012-06-20 16:38:30 -07005103 /*Number of networks sent for PNO*/
5104 tANI_U32 ucNetworksCount;
5105
5106 /*The networks that PNO needs to look for*/
5107 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5108
5109 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005110 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005111
5112 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005113 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005114 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5115
5116 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005117 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005118 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5119
5120} tPrefNetwListParams, * tpPrefNetwListParams;
5121
5122/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005123 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005124*/
5125typedef PACKED_PRE struct PACKED_POST
5126{
5127 tHalMsgHeader header;
5128 tPrefNetwListParams prefNetwListParams;
5129} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5130
5131
Jeff Johnson32d95a32012-09-10 13:15:23 -07005132/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005133 The network description for which PNO will have to look for
5134*/
5135typedef PACKED_PRE struct PACKED_POST
5136{
5137 /*SSID of the BSS*/
5138 tSirMacSSid ssId;
5139
5140 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005141 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005142
5143 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005144 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005145
5146 /*SSID broadcast type, normal, hidden or unknown*/
5147 tSSIDBcastType bcastNetworkType;
5148
Jeff Johnson32d95a32012-09-10 13:15:23 -07005149 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005150 0 - if all channels */
5151 tANI_U8 ucChannelCount;
5152 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5153
5154 /*Indicates the RSSI threshold for the network to be considered*/
5155 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005156}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005157
5158typedef PACKED_PRE struct PACKED_POST {
5159
5160 /*Enable PNO*/
5161 tANI_U32 enable;
5162
5163 /*Immediate, On Suspend, On Resume*/
5164 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005165
Jeff Johnson295189b2012-06-20 16:38:30 -07005166 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005167 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005168
5169 /*The networks that PNO needs to look for*/
5170 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5171
5172 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005173 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005174
5175 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005176 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005177 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5178
5179 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005180 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005181 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5182
5183} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5184
5185/*
5186 Preferred network list request new
5187*/
5188typedef PACKED_PRE struct PACKED_POST
5189{
5190 tHalMsgHeader header;
5191 tPrefNetwListParamsNew prefNetwListParams;
5192} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5193
5194/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005195 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005196*/
5197typedef PACKED_PRE struct PACKED_POST
5198{
5199 tHalMsgHeader header;
5200
Jeff Johnson32d95a32012-09-10 13:15:23 -07005201 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005202 the request and will start scanning*/
5203 tANI_U32 status;
5204} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5205
5206/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005207 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005208*/
5209typedef PACKED_PRE struct PACKED_POST {
5210
5211 /*Network that was found with the highest RSSI*/
5212 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005213
Jeff Johnson295189b2012-06-20 16:38:30 -07005214 /*Indicates the RSSI */
5215 tANI_U8 rssi;
5216
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005217 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
Gopichand Nakkalaa14f43b2013-05-14 00:08:53 +05305218 tANI_U16 frameLength;
5219
Jeff Johnson295189b2012-06-20 16:38:30 -07005220} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5221
5222/*
5223 Preferred network found indication
5224*/
5225typedef PACKED_PRE struct PACKED_POST {
5226
5227 tHalMsgHeader header;
5228 tPrefNetwFoundParams prefNetwFoundParams;
5229} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5230
5231
5232typedef PACKED_PRE struct PACKED_POST {
5233
5234 /*RSSI Threshold*/
5235 tANI_U8 ucRssiThreshold;
5236
5237} tRssiFilterParams, * tpRssiFilterParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005238#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5239typedef PACKED_PRE struct PACKED_POST
5240{
5241 tSirMacSSid ssId;
5242 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5243 tANI_U32 authentication;
5244 tEdType encryption;
5245 tEdType mcencryption;
5246 tANI_U8 ChannelCount;
5247 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5248}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005249
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005250typedef PACKED_PRE struct PACKED_POST
5251{
5252 tANI_U8 mdiePresent;
5253 tANI_U16 mobilityDomain;
5254}tMobilityDomainInfo;
5255
5256typedef PACKED_PRE struct PACKED_POST {
5257 eAniBoolean RoamScanOffloadEnabled;
5258 tANI_S8 LookupThreshold;
5259 tANI_U8 RoamRssiDiff;
5260 tANI_U8 ChannelCacheType;
5261 tANI_U8 Command;
5262 tANI_U8 StartScanReason;
5263 tANI_U16 NeighborScanTimerPeriod;
5264 tANI_U16 NeighborRoamScanRefreshPeriod;
5265 tANI_U16 NeighborScanChannelMinTime;
5266 tANI_U16 NeighborScanChannelMaxTime;
5267 tANI_U16 EmptyRefreshScanPeriod;
5268 tANI_U8 ValidChannelCount;
5269 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5270 eAniBoolean IsCCXEnabled;
5271
5272 tANI_U16 us24GProbeSize;
5273 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5274 tANI_U16 us5GProbeSize;
5275 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5276 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005277 tANI_U8 nProbes;
5278 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005279 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5280 tRoamNetworkType ConnectedNetwork;
5281 tMobilityDomainInfo MDID;
5282} tRoamCandidateListParams, * tpRoamCandidateListParams;
5283
5284typedef PACKED_PRE struct PACKED_POST
5285{
5286 tHalMsgHeader header;
5287 tRoamCandidateListParams RoamScanOffloadNetwListParams;
5288} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5289
5290typedef PACKED_PRE struct PACKED_POST
5291{
5292 tHalMsgHeader header;
5293
5294 /*status of the request - just to indicate that PNO has acknowledged
5295 * the request and will start scanning*/
5296 tANI_U32 status;
5297} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5298#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005299/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005300 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005301*/
5302typedef PACKED_PRE struct PACKED_POST
5303{
5304 tHalMsgHeader header;
5305 tRssiFilterParams prefRSSIFilterParams;
5306} tSetRssiFilterReq, *tpSetRssiFilterReq;
5307
5308/*
5309 Set RSSI filter resp
5310*/
5311typedef PACKED_PRE struct PACKED_POST{
5312 tHalMsgHeader header;
5313 /*status of the request */
5314 tANI_U32 status;
5315} tSetRssiFilterResp, *tpSetRssiFilterResp;
5316/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005317 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005318*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005319typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005320{
5321
5322 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005323 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005324
5325 /*Lets PNO know that host has determined the regulatory domain*/
5326 tANI_U8 b11dResolved;
5327
5328 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005329 tANI_U8 ucChannelCount;
5330 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005331
5332 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005333 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005334
5335 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005336 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005337
5338 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005339 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005340
5341 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005342 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005343
5344 /*Cb State*/
5345 ePhyChanBondState cbState;
5346
5347} tUpdateScanParams, * tpUpdateScanParams;
5348
5349/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305350 Update scan params
5351*/
5352typedef PACKED_PRE struct PACKED_POST
5353{
5354
5355 /*Host setting for 11d*/
5356 tANI_U8 b11dEnabled;
5357
5358 /*Lets PNO know that host has determined the regulatory domain*/
5359 tANI_U8 b11dResolved;
5360
5361 /*Channels on which PNO is allowed to scan*/
5362 tANI_U8 ucChannelCount;
5363 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5364
5365 /*Minimum channel time*/
5366 tANI_U16 usActiveMinChTime;
5367
5368 /*Maximum channel time*/
5369 tANI_U16 usActiveMaxChTime;
5370
5371 /*Minimum channel time*/
5372 tANI_U16 usPassiveMinChTime;
5373
5374 /*Maximum channel time*/
5375 tANI_U16 usPassiveMaxChTime;
5376
5377 /*Cb State*/
5378 ePhyChanBondState cbState;
5379
5380} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5381
5382/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005383 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005384 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005385*/
5386typedef PACKED_PRE struct PACKED_POST{
5387
5388 tHalMsgHeader header;
5389 tUpdateScanParams scanParams;
5390} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5391
5392/*
5393 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005394 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005395*/
5396typedef PACKED_PRE struct PACKED_POST{
5397
5398 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305399 tUpdateScanParamsEx scanParams;
5400} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5401
5402/*
5403 Update scan params - sent from host to PNO
5404 to be used during PNO scanning
5405*/
5406typedef PACKED_PRE struct PACKED_POST{
5407
5408 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005409
5410 /*status of the request */
5411 tANI_U32 status;
5412
5413} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5414
5415/*---------------------------------------------------------------------------
5416 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5417 *--------------------------------------------------------------------------*/
5418typedef PACKED_PRE struct PACKED_POST
5419{
5420 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5421 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5422 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5423 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5424} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5425
5426typedef PACKED_PRE struct PACKED_POST
5427{
5428 tHalMsgHeader header;
5429 tHalTxPerTrackingReqParam txPerTrackingParams;
5430} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5431
5432/*---------------------------------------------------------------------------
5433 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5434 *--------------------------------------------------------------------------*/
5435typedef PACKED_PRE struct PACKED_POST
5436{
5437 /* success or failure */
5438 tANI_U32 status;
5439} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5440
5441typedef PACKED_PRE struct PACKED_POST
5442{
5443 tHalMsgHeader header;
5444 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5445} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5446
5447/*---------------------------------------------------------------------------
5448 * WLAN_HAL_TX_PER_HIT_IND
5449 *--------------------------------------------------------------------------*/
5450typedef PACKED_PRE struct PACKED_POST
5451{
5452 tHalMsgHeader header;
5453}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5454
5455/*---------------------------------------------------------------------------
5456 *******************Packet Filtering Definitions Begin*******************
5457 *--------------------------------------------------------------------------*/
5458#define HAL_PROTOCOL_DATA_LEN 8
5459#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5460#define HAL_MAX_NUM_FILTERS 20
5461#define HAL_MAX_CMP_PER_FILTER 10
5462
5463typedef enum
5464{
5465 HAL_RCV_FILTER_TYPE_INVALID,
5466 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5467 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5468 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5469}tHalReceivePacketFilterType;
5470
Jeff Johnson32d95a32012-09-10 13:15:23 -07005471typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005472{
5473 HAL_FILTER_PROTO_TYPE_INVALID,
5474 HAL_FILTER_PROTO_TYPE_MAC,
5475 HAL_FILTER_PROTO_TYPE_ARP,
5476 HAL_FILTER_PROTO_TYPE_IPV4,
5477 HAL_FILTER_PROTO_TYPE_IPV6,
5478 HAL_FILTER_PROTO_TYPE_UDP,
5479 HAL_FILTER_PROTO_TYPE_MAX
5480}tHalRcvPktFltProtocolType;
5481
Jeff Johnson32d95a32012-09-10 13:15:23 -07005482typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005483{
5484 HAL_FILTER_CMP_TYPE_INVALID,
5485 HAL_FILTER_CMP_TYPE_EQUAL,
5486 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5487 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5488 HAL_FILTER_CMP_TYPE_MAX
5489}tHalRcvPktFltCmpFlagType;
5490
Jeff Johnson32d95a32012-09-10 13:15:23 -07005491typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005492{
5493 tANI_U8 protocolLayer;
5494 tANI_U8 cmpFlag;
5495 tANI_U16 dataLength; /* Length of the data to compare */
5496 tANI_U8 dataOffset; /* from start of the respective frame header */
5497 tANI_U8 reserved; /* Reserved field */
5498 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5499 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5500}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5501
5502typedef PACKED_PRE struct PACKED_POST
5503{
5504 tANI_U8 filterId;
5505 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005506 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005507 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005508 tHalRcvPktFilterParams paramsData[1];
5509}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5510
5511typedef PACKED_PRE struct PACKED_POST
5512{
Jeff Johnsone7245742012-09-05 17:12:55 -07005513 tANI_U8 filterId;
5514 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005515 tANI_U8 numParams;
5516 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005517 tANI_U8 bssIdx;
5518 tHalRcvPktFilterParams paramsData[1];
5519}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5520
5521typedef PACKED_PRE struct PACKED_POST
5522{
Jeff Johnson295189b2012-06-20 16:38:30 -07005523 tHalMsgHeader header;
5524 tHalRcvPktFilterCfgType pktFilterCfg;
5525} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5526
Jeff Johnsone7245742012-09-05 17:12:55 -07005527typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005528{
5529 tANI_U8 dataOffset; /* from start of the respective frame header */
5530 tANI_U32 cMulticastAddr;
5531 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005532 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005533} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5534
5535typedef PACKED_PRE struct PACKED_POST
5536{
5537 /* success or failure */
5538 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005539 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005540} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5541
5542typedef PACKED_PRE struct PACKED_POST
5543{
5544 tHalMsgHeader header;
5545 tHalSetPktFilterRspParams pktFilterRspParams;
5546} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5547
Jeff Johnsone7245742012-09-05 17:12:55 -07005548typedef PACKED_PRE struct PACKED_POST
5549{
5550 tANI_U8 bssIdx;
5551} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005552
5553typedef PACKED_PRE struct PACKED_POST
5554{
5555 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005556 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005557} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5558
Jeff Johnsone7245742012-09-05 17:12:55 -07005559
Jeff Johnson295189b2012-06-20 16:38:30 -07005560typedef PACKED_PRE struct PACKED_POST
5561{
5562 tANI_U8 filterId;
5563 tANI_U32 matchCnt;
5564} tHalRcvFltPktMatchCnt;
5565typedef PACKED_PRE struct PACKED_POST
5566{
5567 /* Success or Failure */
5568 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005569 tANI_U32 matchCnt;
5570 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005571 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005572} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5573
5574typedef PACKED_PRE struct PACKED_POST
5575{
5576 tHalMsgHeader header;
5577 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5578} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5579
5580typedef PACKED_PRE struct PACKED_POST
5581{
5582 tANI_U32 status; /* only valid for response message */
5583 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005584 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005585}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5586
5587typedef PACKED_PRE struct PACKED_POST
5588{
5589 tHalMsgHeader header;
5590 tHalRcvFltPktClearParam filterClearParam;
5591} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5592
5593typedef PACKED_PRE struct PACKED_POST
5594{
5595 tHalMsgHeader header;
5596 tHalRcvFltPktClearParam filterClearParam;
5597} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5598
5599typedef PACKED_PRE struct PACKED_POST
5600{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005601 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005602 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005603}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5604
5605typedef PACKED_PRE struct PACKED_POST
5606{
5607 tHalMsgHeader header;
5608 tHalRcvFltMcAddrListType mcAddrList;
5609} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5610
5611typedef PACKED_PRE struct PACKED_POST
5612{
5613 tHalMsgHeader header;
5614 tHalRcvFltPktSetMcListRspType rspParam;
5615} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5616
5617
5618/*---------------------------------------------------------------------------
5619 *******************Packet Filtering Definitions End*******************
5620 *--------------------------------------------------------------------------*/
5621
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005622/*
5623 * There are two versions of this message
5624 * Version 1 : Base version
5625 * Current version : Base version + Max LI modulated DTIM
5626 */
5627typedef PACKED_PRE struct PACKED_POST
5628{
5629 /* Ignore DTIM */
5630 tANI_U32 uIgnoreDTIM;
5631
5632 /*DTIM Period*/
5633 tANI_U32 uDTIMPeriod;
5634
5635 /* Listen Interval */
5636 tANI_U32 uListenInterval;
5637
5638 /* Broadcast Multicast Filter */
5639 tANI_U32 uBcastMcastFilter;
5640
5641 /* Beacon Early Termination */
5642 tANI_U32 uEnableBET;
5643
5644 /* Beacon Early Termination Interval */
5645 tANI_U32 uBETInterval;
5646}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
5647
5648typedef PACKED_PRE struct PACKED_POST
5649{
5650 tHalMsgHeader header;
5651 tSetPowerParamsVer1Type powerParams;
5652} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
5653
Jeff Johnson295189b2012-06-20 16:38:30 -07005654typedef PACKED_PRE struct PACKED_POST
5655{
5656 /* Ignore DTIM */
5657 tANI_U32 uIgnoreDTIM;
5658
5659 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005660 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005661
5662 /* Listen Interval */
5663 tANI_U32 uListenInterval;
5664
5665 /* Broadcast Multicast Filter */
5666 tANI_U32 uBcastMcastFilter;
5667
5668 /* Beacon Early Termination */
5669 tANI_U32 uEnableBET;
5670
5671 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005672 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07005673
5674 /* MAX LI for modulated DTIM */
5675 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07005676}tSetPowerParamsType, *tpSetPowerParamsType;
5677
5678typedef PACKED_PRE struct PACKED_POST
5679{
5680 tHalMsgHeader header;
5681 tSetPowerParamsType powerParams;
5682} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5683
5684typedef PACKED_PRE struct PACKED_POST{
5685
5686 tHalMsgHeader header;
5687
5688 /*status of the request */
5689 tANI_U32 status;
5690
5691} tSetPowerParamsResp, *tpSetPowerParamsResp;
5692
5693/*---------------------------------------------------------------------------
5694 ****************Capability bitmap exchange definitions and macros starts*************
5695 *--------------------------------------------------------------------------*/
5696
Anand Kumar012623a2013-01-11 17:00:00 -08005697typedef enum {
5698 MCC = 0,
5699 P2P = 1,
5700 DOT11AC = 2,
5701 SLM_SESSIONIZATION = 3,
5702 DOT11AC_OPMODE = 4,
5703 SAP32STA = 5,
5704 TDLS = 6,
5705 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5706 WLANACTIVE_OFFLOAD = 8,
5707 BEACON_OFFLOAD = 9,
5708 SCAN_OFFLOAD = 10,
5709 ROAM_OFFLOAD = 11,
5710 BCN_MISS_OFFLOAD = 12,
5711 STA_POWERSAVE = 13,
5712 STA_ADVANCED_PWRSAVE = 14,
5713 AP_UAPSD = 15,
5714 AP_DFS = 16,
5715 BLOCKACK = 17,
5716 PHY_ERR = 18,
5717 BCN_FILTER = 19,
5718 RTT = 20,
5719 RATECTRL = 21,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005720 WOW = 22,
5721 WLAN_ROAM_SCAN_OFFLOAD = 23,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005722 SPECULATIVE_PS_POLL = 24,
5723 SCAN_SCH = 25,
5724 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08005725} placeHolderInCapBitmap;
5726
Jeff Johnson295189b2012-06-20 16:38:30 -07005727typedef PACKED_PRE struct PACKED_POST{
5728
5729 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005730} tWlanFeatCaps, *tpWlanFeatCaps;
5731
5732typedef PACKED_PRE struct PACKED_POST{
5733
Jeff Johnson32d95a32012-09-10 13:15:23 -07005734 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005735 tWlanFeatCaps wlanFeatCaps;
5736
5737} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5738
Jeff Johnsone7245742012-09-05 17:12:55 -07005739#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5740#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005741#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005742#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005743#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5744#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
5745#endif
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005746
Jeff Johnsone7245742012-09-05 17:12:55 -07005747tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5748
Jeff Johnson295189b2012-06-20 16:38:30 -07005749#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005750 if ((b)<=127) { \
5751 arr_index = (b)/32; \
5752 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005753 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07005754 (a)->featCaps[arr_index] |= (1<<bit_index); \
5755 } \
5756 }
5757#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005758 if ((b)<=127) { \
5759 arr_index = (b)/32; \
5760 bit_index = (b)%32; \
5761 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005762 } \
5763 }
5764#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005765 if ((b)<=127) { \
5766 arr_index = (b)/32; \
5767 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005768 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005769 } \
5770 }
5771
5772/*---------------------------------------------------------------------------
5773 * WLAN_HAL_WAKE_REASON_IND
5774 *--------------------------------------------------------------------------*/
5775
5776/* status codes to help debug rekey failures */
5777typedef enum
5778{
5779 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5780 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5781 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5782 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5783 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5784 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5785 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5786 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5787 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5788 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5789
5790 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5791} tGTKRekeyStatus;
5792
5793/* wake reason types */
5794typedef enum
5795{
5796 WLAN_HAL_WAKE_REASON_NONE = 0,
5797 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5798 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5799 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5800 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5801 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5802 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5803 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5804} tWakeReasonType;
5805
5806/*
5807 Wake Packet which is saved at tWakeReasonParams.DataStart
5808 This data is sent for any wake reasons that involve a packet-based wakeup :
5809
5810 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5811 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5812 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5813 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5814 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5815
5816 The information is provided to the host for auditing and debug purposes
5817
5818*/
5819
5820/*
5821 Wake reason indication parameters
5822*/
5823typedef PACKED_PRE struct PACKED_POST
5824{
5825 uint32 ulReason; /* see tWakeReasonType */
5826 uint32 ulReasonArg; /* argument specific to the reason type */
5827 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5828 HAL truncates the data (i.e. data packets) this length
5829 will be less than the actual length */
5830 uint32 ulActualDataLen; /* actual length of data */
5831 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5832 see specific wake type */
5833} tWakeReasonParams, *tpWakeReasonParams;
5834
5835/*
5836 Wake reason indication
5837*/
5838typedef PACKED_PRE struct PACKED_POST
5839{
5840 tHalMsgHeader header;
5841 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005842 tANI_U32 uBssIdx : 8;
5843 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005844} tHalWakeReasonInd, *tpHalWakeReasonInd;
5845
5846/*---------------------------------------------------------------------------
5847* WLAN_HAL_GTK_OFFLOAD_REQ
5848*--------------------------------------------------------------------------*/
5849
5850#define HAL_GTK_KEK_BYTES 16
5851#define HAL_GTK_KCK_BYTES 16
5852
5853#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5854
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005855#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5856
Jeff Johnson295189b2012-06-20 16:38:30 -07005857typedef PACKED_PRE struct PACKED_POST
5858{
5859 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005860 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005861 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5862 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005863 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005864} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5865
5866typedef PACKED_PRE struct PACKED_POST
5867{
5868 tHalMsgHeader header;
5869 tHalGtkOffloadReqParams gtkOffloadReqParams;
5870} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5871
5872/*---------------------------------------------------------------------------
5873* WLAN_HAL_GTK_OFFLOAD_RSP
5874*--------------------------------------------------------------------------*/
5875typedef PACKED_PRE struct PACKED_POST
5876{
5877 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005878 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005879} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5880
5881typedef PACKED_PRE struct PACKED_POST
5882{
5883 tHalMsgHeader header;
5884 tHalGtkOffloadRspParams gtkOffloadRspParams;
5885} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5886
5887
5888/*---------------------------------------------------------------------------
5889* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5890*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005891typedef PACKED_PRE struct PACKED_POST
5892{
5893 tANI_U8 bssIdx;
5894
5895} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005896
5897typedef PACKED_PRE struct PACKED_POST
5898{
5899 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005900 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005901} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5902
5903/*---------------------------------------------------------------------------
5904* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5905*--------------------------------------------------------------------------*/
5906typedef PACKED_PRE struct PACKED_POST
5907{
5908 tANI_U32 ulStatus; /* success or failure */
5909 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5910 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5911 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5912 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5913 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005914 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005915} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5916
5917typedef PACKED_PRE struct PACKED_POST
5918{
5919 tHalMsgHeader header;
5920 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5921} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5922
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005923/*---------------------------------------------------------------------------
5924* WLAN_HAL_DHCP_IND
5925*--------------------------------------------------------------------------*/
5926typedef PACKED_PRE struct PACKED_POST
5927{
5928 /*Indicates the device mode which indicates about the DHCP activity */
5929 tANI_U8 device_mode;
5930 tSirMacAddr macAddr;
5931} tDHCPInfo, *tpDHCPInfo;
5932
5933typedef PACKED_PRE struct PACKED_POST
5934{
5935 tHalMsgHeader header;
5936 tANI_U32 status; /* success or failure */
5937} tDHCPIndStatus, *tpDHCPIndstatus;
5938
Jeff Johnson295189b2012-06-20 16:38:30 -07005939/*
5940 Thermal Mitigation mode of operation.
5941 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5942 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5943 reducing transmit power
5944 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5945*/
5946typedef enum
5947{
5948 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5949 HAL_THERMAL_MITIGATION_MODE_0,
5950 HAL_THERMAL_MITIGATION_MODE_1,
5951 HAL_THERMAL_MITIGATION_MODE_2,
5952 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5953}tHalThermalMitigationModeType;
5954//typedef tANI_S16 tHalThermalMitigationModeType;
5955
5956/*
5957 Thermal Mitigation level.
5958 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5959 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5960
5961 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5962 level indicates normal mode of operation
5963 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5964 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5965 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5966 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5967*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005968typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005969{
5970 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5971 HAL_THERMAL_MITIGATION_LEVEL_0,
5972 HAL_THERMAL_MITIGATION_LEVEL_1,
5973 HAL_THERMAL_MITIGATION_LEVEL_2,
5974 HAL_THERMAL_MITIGATION_LEVEL_3,
5975 HAL_THERMAL_MITIGATION_LEVEL_4,
5976 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5977}tHalThermalMitigationLevelType;
5978//typedef tANI_S16 tHalThermalMitigationLevelType;
5979
5980typedef PACKED_PRE struct PACKED_POST
5981{
5982 /* Thermal Mitigation Operation Mode */
5983 tHalThermalMitigationModeType thermalMitMode;
5984
5985 /* Thermal Mitigation Level */
5986 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005987
Jeff Johnson295189b2012-06-20 16:38:30 -07005988}tSetThermalMitgationType, *tpSetThermalMitgationType;
5989
5990/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5991typedef PACKED_PRE struct PACKED_POST
5992{
5993 tHalMsgHeader header;
5994 tSetThermalMitgationType thermalMitParams;
5995} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5996
5997typedef PACKED_PRE struct PACKED_POST{
5998
5999 tHalMsgHeader header;
6000
6001 /*status of the request */
6002 tANI_U32 status;
6003
6004} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6005
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006006/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6007provided to FW from Host via periodic messages */
6008typedef PACKED_PRE struct PACKED_POST {
6009 /* TX stats */
6010 uint32 txBytesPushed;
6011 uint32 txPacketsPushed;
6012
6013 /* RX stats */
6014 uint32 rxBytesRcvd;
6015 uint32 rxPacketsRcvd;
6016 uint32 rxTimeTotal;
6017} tStaStatsClassB, *tpStaStatsClassB;
6018
6019typedef PACKED_PRE struct PACKED_POST {
6020
6021 /* Duration over which this stats was collected */
6022 tANI_U32 duration;
6023
6024 /* Per STA Stats */
6025 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6026} tStatsClassBIndParams, *tpStatsClassBIndParams;
6027
6028typedef PACKED_PRE struct PACKED_POST {
6029
6030 tHalMsgHeader header;
6031
6032 /* Class B Stats */
6033 tStatsClassBIndParams statsClassBIndParams;
6034} tStatsClassBInd, *tpStatsClassBInd;
6035
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306036/*Wifi Proximity paramters in AP mode*/
6037#ifdef FEATURE_WIFI_PROXIMITY
6038
6039typedef PACKED_PRE struct PACKED_POST{
6040
6041 tANI_U8 wifiProximityChannel;
6042 tANI_U32 wifiProximityDuration;
6043 tANI_U32 wifiProximityInterval;
6044 tANI_U32 wifiProximityMode;
6045 tANI_U32 wifiProximityStatus;
6046 tSirMacAddr bssId;
6047 tSirMacSSid ssId;
6048
6049} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6050
6051typedef PACKED_PRE struct PACKED_POST
6052{
6053 tHalMsgHeader header;
6054
6055 tSetWifiProximityReqParam wifiProximityReqParams;
6056
6057}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6058
6059/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6060typedef PACKED_PRE struct PACKED_POST{
6061
6062 tHalMsgHeader header;
6063
6064 /*status of the request */
6065 tANI_U32 status;
6066
6067} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6068
6069#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006070
6071#ifdef FEATURE_SPECULATIVE_PS_POLL
6072/*---------------------------------------------------------------------------
6073 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6074 *--------------------------------------------------------------------------*/
6075typedef PACKED_PRE struct PACKED_POST
6076{
6077 tANI_U8 bssIdx;
6078 tANI_U16 serviceInterval;
6079 tANI_U16 suspendInterval;
6080 tANI_U8 acMask;
6081} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6082
6083typedef PACKED_PRE struct PACKED_POST
6084{
6085 tHalMsgHeader header;
6086 tHalStartSpecPsPollReqParams specPsPollReq;
6087} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6088
6089/*---------------------------------------------------------------------------
6090 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6091 *--------------------------------------------------------------------------*/
6092typedef PACKED_PRE struct PACKED_POST
6093{
6094 /* success or failure */
6095 tANI_U32 status;
6096 tANI_U8 bssIdx;
6097} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6098
6099typedef PACKED_PRE struct PACKED_POST
6100{
6101 tHalMsgHeader header;
6102 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6103} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6104
6105/*---------------------------------------------------------------------------
6106 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6107 *--------------------------------------------------------------------------*/
6108typedef PACKED_PRE struct PACKED_POST
6109{
6110 tHalMsgHeader header;
6111 tANI_U8 bssIdx;
6112} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6113#endif
6114
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306115#ifdef FEATURE_WLAN_TDLS
6116/*---------------------------------------------------------------------------
6117 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6118 *-------------------------------------------------------------------------*/
6119typedef PACKED_PRE struct PACKED_POST
6120{
6121 /*STA Index*/
6122 tANI_U16 staIdx;
6123
6124 /* if this is 1, self is initiator and peer is reponder */
6125 tANI_U8 bIsResponder;
6126
6127 /* QoS Info */
6128 tANI_U8 acVOUAPSDFlag:1;
6129 tANI_U8 acVIUAPSDFlag:1;
6130 tANI_U8 acBKUAPSDFlag:1;
6131 tANI_U8 acBEUAPSDFlag:1;
6132 tANI_U8 aAck:1;
6133 tANI_U8 maxServicePeriodLength:2;
6134 tANI_U8 moreDataAck:1;
6135
6136 /*TDLS Peer U-APSD Buffer STA Support*/
6137 tANI_U8 TPUBufferStaSupport;
6138
6139}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6140
6141typedef PACKED_PRE struct PACKED_POST
6142{
6143 tHalMsgHeader header;
6144 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6145} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6146
6147/*---------------------------------------------------------------------------
6148 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6149 *-------------------------------------------------------------------------*/
6150
6151typedef PACKED_PRE struct PACKED_POST
6152{
6153 tANI_U32 status;
6154
6155 /*STA Index*/
6156 tANI_U16 staIdx;
6157} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6158
6159typedef PACKED_PRE struct PACKED_POST
6160{
6161 tHalMsgHeader header;
6162 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6163} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6164
6165/*---------------------------------------------------------------------------
6166 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6167 *-------------------------------------------------------------------------*/
6168typedef PACKED_PRE struct PACKED_POST
6169{
6170 /*STA Index*/
6171 tANI_U16 staIdx;
6172}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6173
6174typedef PACKED_PRE struct PACKED_POST
6175{
6176 tHalMsgHeader header;
6177 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6178} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6179
6180/*---------------------------------------------------------------------------
6181 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6182 *-------------------------------------------------------------------------*/
6183
6184typedef PACKED_PRE struct PACKED_POST
6185{
6186 tANI_U32 status;
6187
6188 /*STA Index*/
6189 tANI_U16 staIdx;
6190} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6191
6192typedef PACKED_PRE struct PACKED_POST
6193{
6194 tHalMsgHeader header;
6195 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6196} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6197
6198/*---------------------------------------------------------------------------
6199 *WLAN_HAL_TDLS_IND
6200 *--------------------------------------------------------------------------*/
6201
6202typedef PACKED_PRE struct PACKED_POST
6203{
6204 tANI_U16 assocId;
6205 tANI_U16 staIdx;
6206 tANI_U16 status;
6207 tANI_U16 reasonCode;
6208}tTdlsIndParams, *tpTdlsIndParams;
6209
6210
6211typedef PACKED_PRE struct PACKED_POST
6212{
6213 tHalMsgHeader header;
6214 tTdlsIndParams tdlsIndParams;
6215}tTdlsIndMsg, *tpTdlsIndMsg;
6216
6217#endif
6218
Jeff Johnson295189b2012-06-20 16:38:30 -07006219#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6220#pragma pack(pop)
6221#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6222#else
6223#endif
6224
6225#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006226