blob: 14cc6122d31b1dc701f7ab57b257c5697db25b7c [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,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800379 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700380}tHalHostMsgType;
381
Jeff Johnsone7245742012-09-05 17:12:55 -0700382/* Enumeration for Version */
383typedef enum
384{
385 WLAN_HAL_MSG_VERSION0 = 0,
386 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800387 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
388 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700389}tHalHostMsgVersion;
390
Jeff Johnson295189b2012-06-20 16:38:30 -0700391/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700392typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700393{
394 eANI_BOOLEAN_FALSE = 0,
395 eANI_BOOLEAN_TRUE,
396 eANI_BOOLEAN_OFF = 0,
397 eANI_BOOLEAN_ON = 1,
398 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
399} eAniBoolean;
400
401typedef enum
402{
403 eDRIVER_TYPE_PRODUCTION = 0,
404 eDRIVER_TYPE_MFG = 1,
405 eDRIVER_TYPE_DVT = 2,
406 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
407} tDriverType;
408
409typedef enum
410{
411 HAL_STOP_TYPE_SYS_RESET,
412 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
413 HAL_STOP_TYPE_RF_KILL,
414 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
415}tHalStopType;
416
417typedef enum
418{
419 eHAL_SYS_MODE_NORMAL,
420 eHAL_SYS_MODE_LEARN,
421 eHAL_SYS_MODE_SCAN,
422 eHAL_SYS_MODE_PROMISC,
423 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700424 eHAL_SYS_MODE_ROAM_SCAN,
425 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700426 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
427} eHalSysMode;
428
429typedef enum
430{
431 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
432 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
433 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
434 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700435#ifdef WLAN_FEATURE_11AC
436 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
437 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
438 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
439 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
440 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
441 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
442 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
443#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700444 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
445}ePhyChanBondState;
446
447// Spatial Multiplexing(SM) Power Save mode
448typedef enum eSirMacHTMIMOPowerSaveState
449{
450 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
451 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
452 eSIR_HT_MIMO_PS_NA = 2, // reserved
453 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
454 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
455} tSirMacHTMIMOPowerSaveState;
456
457/* each station added has a rate mode which specifies the sta attributes */
458typedef enum eStaRateMode {
459 eSTA_TAURUS = 0,
460 eSTA_TITAN,
461 eSTA_POLARIS,
462 eSTA_11b,
463 eSTA_11bg,
464 eSTA_11a,
465 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700466#ifdef WLAN_FEATURE_11AC
467 eSTA_11ac,
468#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700469 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
470} tStaRateMode, *tpStaRateMode;
471
472#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
473#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
474#define SIR_NUM_POLARIS_RATES 3 //72,96,108
475
476#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
477
478
479typedef enum eSirBssType
480{
481 eSIR_INFRASTRUCTURE_MODE,
482 eSIR_INFRA_AP_MODE, //Added for softAP support
483 eSIR_IBSS_MODE,
484 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
485 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
486 eSIR_AUTO_MODE,
487 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
488} tSirBssType;
489
490typedef enum eSirNwType
491{
492 eSIR_11A_NW_TYPE,
493 eSIR_11B_NW_TYPE,
494 eSIR_11G_NW_TYPE,
495 eSIR_11N_NW_TYPE,
496 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
497} tSirNwType;
498
499typedef tANI_U16 tSirMacBeaconInterval;
500
501#define SIR_MAC_RATESET_EID_MAX 12
502
503typedef enum eSirMacHTOperatingMode
504{
505 eSIR_HT_OP_MODE_PURE, // No Protection
506 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
507 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
508 eSIR_HT_OP_MODE_MIXED, // Protection is required
509 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
510} tSirMacHTOperatingMode;
511
Jeff Johnson295189b2012-06-20 16:38:30 -0700512/// Encryption type enum used with peer
513typedef enum eAniEdType
514{
515 eSIR_ED_NONE,
516 eSIR_ED_WEP40,
517 eSIR_ED_WEP104,
518 eSIR_ED_TKIP,
519 eSIR_ED_CCMP,
520 eSIR_ED_WPI,
521 eSIR_ED_AES_128_CMAC,
522 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
523} tAniEdType;
524
525#define WLAN_MAX_KEY_RSC_LEN 16
526#define WLAN_WAPI_KEY_RSC_LEN 16
527
528/// MAX key length when ULA is used
529#define SIR_MAC_MAX_KEY_LENGTH 32
530#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
531
532/// Enum to specify whether key is used
533/// for TX only, RX only or both
534typedef enum eAniKeyDirection
535{
536 eSIR_TX_ONLY,
537 eSIR_RX_ONLY,
538 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700539 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700540 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
541} tAniKeyDirection;
542
543typedef enum eAniWepType
544{
545 eSIR_WEP_STATIC,
546 eSIR_WEP_DYNAMIC,
547 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
548} tAniWepType;
549
550typedef enum eSriLinkState {
551
552 eSIR_LINK_IDLE_STATE = 0,
553 eSIR_LINK_PREASSOC_STATE = 1,
554 eSIR_LINK_POSTASSOC_STATE = 2,
555 eSIR_LINK_AP_STATE = 3,
556 eSIR_LINK_IBSS_STATE = 4,
557
558 /* BT-AMP Case */
559 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
560 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
561 eSIR_LINK_BTAMP_AP_STATE = 7,
562 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700563
Jeff Johnson295189b2012-06-20 16:38:30 -0700564 /* Reserved for HAL Internal Use */
565 eSIR_LINK_LEARN_STATE = 9,
566 eSIR_LINK_SCAN_STATE = 10,
567 eSIR_LINK_FINISH_SCAN_STATE = 11,
568 eSIR_LINK_INIT_CAL_STATE = 12,
569 eSIR_LINK_FINISH_CAL_STATE = 13,
570#ifdef WLAN_FEATURE_P2P
571 eSIR_LINK_LISTEN_STATE = 14,
572#endif
573 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
574} tSirLinkState;
575
576typedef enum
577{
578 HAL_SUMMARY_STATS_INFO = 0x00000001,
579 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
580 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
581 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
582 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
583 HAL_PER_STA_STATS_INFO = 0x00000020
584}eHalStatsMask;
585
586/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700587typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700588{
589 BTAMP_EVENT_CONNECTION_START,
590 BTAMP_EVENT_CONNECTION_STOP,
591 BTAMP_EVENT_CONNECTION_TERMINATED,
592 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
593} tBtAmpEventType;
594
595//***************************************************************
596
597
598/*******************PE Statistics*************************/
599typedef enum
600{
601 PE_SUMMARY_STATS_INFO = 0x00000001,
602 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
603 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
604 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
605 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
606 PE_PER_STA_STATS_INFO = 0x00000020,
607 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
608}ePEStatsMask;
609
610/*---------------------------------------------------------------------------
611 Message definitons - All the messages below need to be packed
612 ---------------------------------------------------------------------------*/
613
614#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
615#pragma pack(push, 1)
616#elif defined(__ANI_COMPILER_PRAGMA_PACK)
617#pragma pack(1)
618#else
619#endif
620
621/// Definition for HAL API Version.
622typedef PACKED_PRE struct PACKED_POST
623{
624 tANI_U8 revision;
625 tANI_U8 version;
626 tANI_U8 minor;
627 tANI_U8 major;
628} tWcnssWlanVersion, *tpWcnssWlanVersion;
629
630/// Definition for Encryption Keys
631typedef PACKED_PRE struct PACKED_POST
632{
633 tANI_U8 keyId;
634 tANI_U8 unicast; // 0 for multicast
635 tAniKeyDirection keyDirection;
636 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
637 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
638 tANI_U16 keyLength;
639 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
640} tSirKeys, *tpSirKeys;
641
642
643//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
644typedef PACKED_PRE struct PACKED_POST
645{
646 /*STA Index*/
647 tANI_U16 staIdx;
648
649 /*Encryption Type used with peer*/
650 tAniEdType encType;
651
652 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700653 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700654
655 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
656 tANI_U8 defWEPIdx;
657
Jeff Johnson295189b2012-06-20 16:38:30 -0700658 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700659 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
660
Jeff Johnson295189b2012-06-20 16:38:30 -0700661 /*Control for Replay Count, 1= Single TID based replay count on Tx
662 0 = Per TID based replay count on TX */
663 tANI_U8 singleTidRc;
664
665} tSetStaKeyParams, *tpSetStaKeyParams;
666
667
668
669/* 4-byte control message header used by HAL*/
670typedef PACKED_PRE struct PACKED_POST
671{
Jeff Johnsone7245742012-09-05 17:12:55 -0700672 tHalHostMsgType msgType:16;
673 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700674 tANI_U32 msgLen;
675} tHalMsgHeader, *tpHalMsgHeader;
676
677/* Config format required by HAL for each CFG item*/
678typedef PACKED_PRE struct PACKED_POST
679{
680 /* Cfg Id. The Id required by HAL is exported by HAL
681 * in shared header file between UMAC and HAL.*/
682 tANI_U16 uCfgId;
683
Jeff Johnson32d95a32012-09-10 13:15:23 -0700684 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700685 * in the TLV format.*/
686 tANI_U16 uCfgLen;
687
688 /* Padding bytes for unaligned address's */
689 tANI_U16 uCfgPadBytes;
690
691 /* Reserve bytes for making cfgVal to align address */
692 tANI_U16 uCfgReserve;
693
694 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
695 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
696} tHalCfg, *tpHalCfg;
697
698/*---------------------------------------------------------------------------
699 WLAN_HAL_START_REQ
700---------------------------------------------------------------------------*/
701
702typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
703{
704 /* Drive Type - Production or FTM etc */
705 tDriverType driverType;
706
707 /*Length of the config buffer*/
708 tANI_U32 uConfigBufferLen;
709
Jeff Johnson32d95a32012-09-10 13:15:23 -0700710 /* Following this there is a TLV formatted buffer of length
711 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700712 * The TLV is expected to be formatted like this:
713 * 0 15 31 31+CFG_LEN-1 length-1
714 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
715 */
716} tHalMacStartParameters, *tpHalMacStartParameters;
717
718typedef PACKED_PRE struct PACKED_POST
719{
720 /* Note: The length specified in tHalMacStartReqMsg messages should be
721 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
722 tHalMsgHeader header;
723 tHalMacStartParameters startReqParams;
724} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
725
726/*---------------------------------------------------------------------------
727 WLAN_HAL_START_RSP
728---------------------------------------------------------------------------*/
729
730typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
731{
732 /*success or failure */
733 tANI_U16 status;
734
735 /*Max number of STA supported by the device*/
736 tANI_U8 ucMaxStations;
737
738 /*Max number of BSS supported by the device*/
739 tANI_U8 ucMaxBssids;
740
741 /*API Version */
742 tWcnssWlanVersion wcnssWlanVersion;
743
744 /*CRM build information */
745 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
746
747 /*hardware/chipset/misc version information */
748 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
749
750} tHalMacStartRspParams, *tpHalMacStartRspParams;
751
752typedef PACKED_PRE struct PACKED_POST
753{
754 tHalMsgHeader header;
755 tHalMacStartRspParams startRspParams;
756} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
757
758/*---------------------------------------------------------------------------
759 WLAN_HAL_STOP_REQ
760---------------------------------------------------------------------------*/
761
762typedef PACKED_PRE struct PACKED_POST
763{
764 /*The reason for which the device is being stopped*/
765 tHalStopType reason;
766
767}tHalMacStopReqParams, *tpHalMacStopReqParams;
768
769typedef PACKED_PRE struct PACKED_POST
770{
771 tHalMsgHeader header;
772 tHalMacStopReqParams stopReqParams;
773} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
774
775/*---------------------------------------------------------------------------
776 WLAN_HAL_STOP_RSP
777---------------------------------------------------------------------------*/
778
779typedef PACKED_PRE struct PACKED_POST
780{
781 /*success or failure */
782 tANI_U32 status;
783
784}tHalMacStopRspParams, *tpHalMacStopRspParams;
785
786typedef PACKED_PRE struct PACKED_POST
787{
788 tHalMsgHeader header;
789 tHalMacStopRspParams stopRspParams;
790} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
791
792/*---------------------------------------------------------------------------
793 WLAN_HAL_UPDATE_CFG_REQ
794---------------------------------------------------------------------------*/
795
796typedef PACKED_PRE struct PACKED_POST
797{
798 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
799 tANI_U32 uConfigBufferLen;
800
Jeff Johnson32d95a32012-09-10 13:15:23 -0700801 /* Following this there is a TLV formatted buffer of length
802 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700803 * The TLV is expected to be formatted like this:
804 * 0 15 31 31+CFG_LEN-1 length-1
805 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
806 */
807} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
808
809typedef PACKED_PRE struct PACKED_POST
810{
811 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
812 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
813 tHalMsgHeader header;
814 tHalUpdateCfgReqParams updateCfgReqParams;
815} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
816
817/*---------------------------------------------------------------------------
818 WLAN_HAL_UPDATE_CFG_RSP
819---------------------------------------------------------------------------*/
820
821typedef PACKED_PRE struct PACKED_POST
822{
823 /* success or failure */
824 tANI_U32 status;
825
826}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
827
828typedef PACKED_PRE struct PACKED_POST
829{
830 tHalMsgHeader header;
831 tHalUpdateCfgRspParams updateCfgRspParams;
832} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
833
834/*---------------------------------------------------------------------------
835 WLAN_HAL_INIT_SCAN_REQ
836---------------------------------------------------------------------------*/
837
838/// Frame control field format (2 bytes)
839typedef __ani_attr_pre_packed struct sSirMacFrameCtl
840{
841
842#ifndef ANI_LITTLE_BIT_ENDIAN
843
844 tANI_U8 subType :4;
845 tANI_U8 type :2;
846 tANI_U8 protVer :2;
847
848 tANI_U8 order :1;
849 tANI_U8 wep :1;
850 tANI_U8 moreData :1;
851 tANI_U8 powerMgmt :1;
852 tANI_U8 retry :1;
853 tANI_U8 moreFrag :1;
854 tANI_U8 fromDS :1;
855 tANI_U8 toDS :1;
856
857#else
858
859 tANI_U8 protVer :2;
860 tANI_U8 type :2;
861 tANI_U8 subType :4;
862
863 tANI_U8 toDS :1;
864 tANI_U8 fromDS :1;
865 tANI_U8 moreFrag :1;
866 tANI_U8 retry :1;
867 tANI_U8 powerMgmt :1;
868 tANI_U8 moreData :1;
869 tANI_U8 wep :1;
870 tANI_U8 order :1;
871
872#endif
873
874} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
875
876/// Sequence control field
877typedef __ani_attr_pre_packed struct sSirMacSeqCtl
878{
879 tANI_U8 fragNum : 4;
880 tANI_U8 seqNumLo : 4;
881 tANI_U8 seqNumHi : 8;
882} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
883
884/// Management header format
885typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
886{
887 tSirMacFrameCtl fc;
888 tANI_U8 durationLo;
889 tANI_U8 durationHi;
890 tANI_U8 da[6];
891 tANI_U8 sa[6];
892 tANI_U8 bssId[6];
893 tSirMacSeqCtl seqControl;
894} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
895
896/// Scan Entry to hold active BSS idx's
897typedef __ani_attr_pre_packed struct sSirScanEntry
898{
899 tANI_U8 bssIdx[HAL_NUM_BSSID];
900 tANI_U8 activeBSScnt;
901}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
902
903typedef PACKED_PRE struct PACKED_POST {
904
905 /*LEARN - AP Role
906 SCAN - STA Role*/
907 eHalSysMode scanMode;
908
909 /*BSSID of the BSS*/
910 tSirMacAddr bssid;
911
912 /*Whether BSS needs to be notified*/
913 tANI_U8 notifyBss;
914
915 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
916 CTS to Self). Must always be a valid frame type.*/
917 tANI_U8 frameType;
918
919 /*UMAC has the option of passing the MAC frame to be used for notifying
920 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
921 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
922 frameType.*/
923 tANI_U8 frameLength;
924
Jeff Johnson32d95a32012-09-10 13:15:23 -0700925 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700926 is non-zero. */
927 tSirMacMgmtHdr macMgmtHdr;
928
929 /*Entry to hold number of active BSS idx's*/
930 tSirScanEntry scanEntry;
931
932} tInitScanParams, * tpInitScanParams;
933
934typedef PACKED_PRE struct PACKED_POST
935{
936 tHalMsgHeader header;
937 tInitScanParams initScanParams;
938} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
939
940typedef PACKED_PRE struct PACKED_POST {
941
942 /*LEARN - AP Role
943 SCAN - STA Role*/
944 eHalSysMode scanMode;
945
946 /*BSSID of the BSS*/
947 tSirMacAddr bssid;
948
949 /*Whether BSS needs to be notified*/
950 tANI_U8 notifyBss;
951
952 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
953 CTS to Self). Must always be a valid frame type.*/
954 tANI_U8 frameType;
955
956 /*UMAC has the option of passing the MAC frame to be used for notifying
957 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
958 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
959 frameType.*/
960 tANI_U8 frameLength;
961
Jeff Johnson32d95a32012-09-10 13:15:23 -0700962 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700963 is non-zero. */
964 tSirMacMgmtHdr macMgmtHdr;
965
966 /*Entry to hold number of active BSS idx's*/
967 tSirScanEntry scanEntry;
968
969 /* Single NoA usage in Scanning */
970 tANI_U8 useNoA;
971
972 /* Indicates the scan duration (in ms) */
973 tANI_U16 scanDuration;
974
975} tInitScanConParams, * tpInitScanConParams;
976
977typedef PACKED_PRE struct PACKED_POST
978{
979 tHalMsgHeader header;
980 tInitScanConParams initScanParams;
981} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
982
983
984/*---------------------------------------------------------------------------
985 WLAN_HAL_INIT_SCAN_RSP
986---------------------------------------------------------------------------*/
987
988typedef PACKED_PRE struct PACKED_POST
989{
990 /*success or failure */
991 tANI_U32 status;
992
993}tHalInitScanRspParams, *tpHalInitScanRspParams;
994
995typedef PACKED_PRE struct PACKED_POST
996{
997 tHalMsgHeader header;
998 tHalInitScanRspParams initScanRspParams;
999} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1000
1001/*---------------------------------------------------------------------------
1002 WLAN_HAL_START_SCAN_REQ
1003---------------------------------------------------------------------------*/
1004
Jeff Johnson32d95a32012-09-10 13:15:23 -07001005typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001006{
1007 /*Indicates the channel to scan*/
1008 tANI_U8 scanChannel;
1009
1010 } tStartScanParams, * tpStartScanParams;
1011
1012typedef PACKED_PRE struct PACKED_POST
1013{
1014 tHalMsgHeader header;
1015 tStartScanParams startScanParams;
1016} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1017
1018/*---------------------------------------------------------------------------
1019 WLAN_HAL_START_SCAN_RSP
1020---------------------------------------------------------------------------*/
1021
1022typedef PACKED_PRE struct PACKED_POST
1023{
1024 /*success or failure */
1025 tANI_U32 status;
1026
1027 tANI_U32 startTSF[2];
1028 tPowerdBm txMgmtPower;
1029
1030}tHalStartScanRspParams, *tpHalStartScanRspParams;
1031
1032typedef PACKED_PRE struct PACKED_POST
1033{
1034 tHalMsgHeader header;
1035 tHalStartScanRspParams startScanRspParams;
1036} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1037
1038/*---------------------------------------------------------------------------
1039 WLAN_HAL_END_SCAN_REQ
1040---------------------------------------------------------------------------*/
1041
1042typedef PACKED_PRE struct PACKED_POST
1043{
1044 /*Indicates the channel to stop scanning. Not used really. But retained
1045 for symmetry with "start Scan" message. It can also help in error
1046 check if needed.*/
1047 tANI_U8 scanChannel;
1048
1049} tEndScanParams, *tpEndScanParams;
1050
1051typedef PACKED_PRE struct PACKED_POST
1052{
1053 tHalMsgHeader header;
1054 tEndScanParams endScanParams;
1055} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1056
1057/*---------------------------------------------------------------------------
1058 WLAN_HAL_END_SCAN_RSP
1059---------------------------------------------------------------------------*/
1060
1061typedef PACKED_PRE struct PACKED_POST
1062{
1063 /*success or failure */
1064 tANI_U32 status;
1065
1066}tHalEndScanRspParams, *tpHalEndScanRspParams;
1067
1068typedef PACKED_PRE struct PACKED_POST
1069{
1070 tHalMsgHeader header;
1071 tHalEndScanRspParams endScanRspParams;
1072} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1073
1074/*---------------------------------------------------------------------------
1075 WLAN_HAL_FINISH_SCAN_REQ
1076---------------------------------------------------------------------------*/
1077
1078typedef PACKED_PRE struct PACKED_POST
1079{
1080 /* Identifies the operational state of the AP/STA
1081 * LEARN - AP Role SCAN - STA Role */
1082 eHalSysMode scanMode;
1083
1084 /*Operating channel to tune to.*/
1085 tANI_U8 currentOperChannel;
1086
1087 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1088 40 MHz extension channel in combination with the control channel*/
1089 ePhyChanBondState cbState;
1090
1091 /*BSSID of the BSS*/
1092 tSirMacAddr bssid;
1093
1094 /*Whether BSS needs to be notified*/
1095 tANI_U8 notifyBss;
1096
1097 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1098 CTS to Self). Must always be a valid frame type.*/
1099 tANI_U8 frameType;
1100
1101 /*UMAC has the option of passing the MAC frame to be used for notifying
1102 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1103 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1104 frameType.*/
1105 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001106
1107 /*Following the framelength there is a MAC frame buffer if frameLength
1108 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001109 tSirMacMgmtHdr macMgmtHdr;
1110
1111 /*Entry to hold number of active BSS idx's*/
1112 tSirScanEntry scanEntry;
1113
1114} tFinishScanParams, *tpFinishScanParams;
1115
1116typedef PACKED_PRE struct PACKED_POST
1117{
1118 tHalMsgHeader header;
1119 tFinishScanParams finishScanParams;
1120} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1121
1122/*---------------------------------------------------------------------------
1123 WLAN_HAL_FINISH_SCAN_RSP
1124---------------------------------------------------------------------------*/
1125
1126typedef PACKED_PRE struct PACKED_POST
1127{
1128 /*success or failure */
1129 tANI_U32 status;
1130
1131}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1132
1133typedef PACKED_PRE struct PACKED_POST
1134{
1135 tHalMsgHeader header;
1136 tHalFinishScanRspParams finishScanRspParams;
1137} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1138
1139/*---------------------------------------------------------------------------
1140 WLAN_HAL_CONFIG_STA_REQ
1141---------------------------------------------------------------------------*/
1142
1143typedef PACKED_PRE struct PACKED_POST {
1144 /*
1145 * For Self STA Entry: this represents Self Mode.
1146 * For Peer Stations, this represents the mode of the peer.
1147 * On Station:
1148 * --this mode is updated when PE adds the Self Entry.
1149 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1150 * ON AP:
1151 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1152 * to indicate the self mode of the AP.
1153 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1154 */
1155
1156 tStaRateMode opRateMode;
1157 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1158 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1159 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1160 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1161 tANI_U16 reserved;
1162
1163 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1164 //First 26 bits are reserved for those Titan rates and
1165 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1166 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1167
1168 /*
1169 * 0-76 bits used, remaining reserved
1170 * bits 0-15 and 32 should be set.
1171 */
1172 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1173
1174 /*
1175 * RX Highest Supported Data Rate defines the highest data
1176 * rate that the STA is able to receive, in unites of 1Mbps.
1177 * This value is derived from "Supported MCS Set field" inside
1178 * the HT capability element.
1179 */
1180 tANI_U16 rxHighestDataRate;
1181
1182} tSirSupportedRates, *tpSirSupportedRates;
1183
1184typedef PACKED_PRE struct PACKED_POST
1185{
1186 /*BSSID of STA*/
1187 tSirMacAddr bssId;
1188
1189 /*ASSOC ID, as assigned by UMAC*/
1190 tANI_U16 assocId;
1191
1192 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1193 tANI_U8 staType;
1194
1195 /*Short Preamble Supported.*/
1196 tANI_U8 shortPreambleSupported;
1197
1198 /*MAC Address of STA*/
1199 tSirMacAddr staMac;
1200
1201 /*Listen interval of the STA*/
1202 tANI_U16 listenInterval;
1203
1204 /*Support for 11e/WMM*/
1205 tANI_U8 wmmEnabled;
1206
1207 /*11n HT capable STA*/
1208 tANI_U8 htCapable;
1209
1210 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1211 tANI_U8 txChannelWidthSet;
1212
1213 /*RIFS mode 0 - NA, 1 - Allowed */
1214 tANI_U8 rifsMode;
1215
Jeff Johnson32d95a32012-09-10 13:15:23 -07001216 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001217 0 - No Support, 1 - Supported
1218 SG - there is global field */
1219 tANI_U8 lsigTxopProtection;
1220
1221 /*Max Ampdu Size supported by STA. TPE programming.
1222 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1223 tANI_U8 maxAmpduSize;
1224
1225 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1226 tANI_U8 maxAmpduDensity;
1227
1228 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1229 tANI_U8 maxAmsduSize;
1230
1231 /*Short GI support for 40Mhz packets*/
1232 tANI_U8 fShortGI40Mhz;
1233
1234 /*Short GI support for 20Mhz packets*/
1235 tANI_U8 fShortGI20Mhz;
1236
Jeff Johnson295189b2012-06-20 16:38:30 -07001237 /*Robust Management Frame (RMF) enabled/disabled*/
1238 tANI_U8 rmfEnabled;
1239
1240 /* The unicast encryption type in the association */
1241 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001242
1243 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001244 will set this flag in case of RE-ASSOC, where we want to reuse the old
1245 STA ID. 0 = Add, 1 = Update*/
1246 tANI_U8 action;
1247
1248 /*U-APSD Flags: 1b per AC. Encoded as follows:
1249 b7 b6 b5 b4 b3 b2 b1 b0 =
1250 X X X X BE BK VI VO */
1251 tANI_U8 uAPSD;
1252
1253 /*Max SP Length*/
1254 tANI_U8 maxSPLen;
1255
1256 /*11n Green Field preamble support
1257 0 - Not supported, 1 - Supported */
1258 tANI_U8 greenFieldCapable;
1259
1260 /*MIMO Power Save mode*/
1261 tSirMacHTMIMOPowerSaveState mimoPS;
1262
1263 /*Delayed BA Support*/
1264 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001265
Jeff Johnson295189b2012-06-20 16:38:30 -07001266 /*Max AMPDU duration in 32us*/
1267 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001268
Jeff Johnson295189b2012-06-20 16:38:30 -07001269 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1270 it to 0 if AP does not support it. This indication is sent to HAL and
1271 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1272 tANI_U8 fDsssCckMode40Mhz;
1273
1274 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1275 Retained for backward compalibity with existing HAL code*/
1276 tANI_U8 staIdx;
1277
1278 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1279 Retained for backward compalibity with existing HAL code*/
1280 tANI_U8 bssIdx;
1281
1282 tANI_U8 p2pCapableSta;
1283
Jeff Johnsone7245742012-09-05 17:12:55 -07001284 /*Reserved to align next field on a dword boundary*/
1285 tANI_U8 reserved;
1286
1287 /*These rates are the intersection of peer and self capabilities.*/
1288 tSirSupportedRates supportedRates;
1289
Jeff Johnson295189b2012-06-20 16:38:30 -07001290} tConfigStaParams, *tpConfigStaParams;
1291
Jeff Johnsone7245742012-09-05 17:12:55 -07001292/*------------------------------------------------------------------------
1293 * WLAN_HAL_CONFIG_STA_REQ
1294 * ----------------------------------------------------------------------*/
1295
1296typedef PACKED_PRE struct PACKED_POST {
1297 /*
1298 * For Self STA Entry: this represents Self Mode.
1299 * For Peer Stations, this represents the mode of the peer.
1300 * On Station:
1301 * --this mode is updated when PE adds the Self Entry.
1302 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1303 * ON AP:
1304 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1305 * to indicate the self mode of the AP.
1306 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1307 */
1308
1309 tStaRateMode opRateMode;
1310 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1311 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1312 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1313 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1314 tANI_U16 reserved;
1315
1316 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1317 //First 26 bits are reserved for those Titan rates and
1318 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1319 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1320
1321 /*
1322 * 0-76 bits used, remaining reserved
1323 * bits 0-15 and 32 should be set.
1324 */
1325 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1326
1327 /*
1328 * RX Highest Supported Data Rate defines the highest data
1329 * rate that the STA is able to receive, in unites of 1Mbps.
1330 * This value is derived from "Supported MCS Set field" inside
1331 * the HT capability element.
1332 */
1333 tANI_U16 rxHighestDataRate;
1334
1335 /* Indicates the Maximum MCS that can be received for each number
1336 * of spacial streams */
1337 tANI_U16 vhtRxMCSMap;
1338
1339 /*Indicate the highest VHT data rate that the STA is able to receive*/
1340 tANI_U16 vhtRxHighestDataRate;
1341
1342 /* Indicates the Maximum MCS that can be transmitted for each number
1343 * of spacial streams */
1344 tANI_U16 vhtTxMCSMap;
1345
1346 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1347 tANI_U16 vhtTxHighestDataRate;
1348
1349} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1350
1351typedef PACKED_PRE struct PACKED_POST
1352{
1353 /*BSSID of STA*/
1354 tSirMacAddr bssId;
1355
1356 /*ASSOC ID, as assigned by UMAC*/
1357 tANI_U16 assocId;
1358
1359 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1360 tANI_U8 staType;
1361
1362 /*Short Preamble Supported.*/
1363 tANI_U8 shortPreambleSupported;
1364
1365 /*MAC Address of STA*/
1366 tSirMacAddr staMac;
1367
1368 /*Listen interval of the STA*/
1369 tANI_U16 listenInterval;
1370
1371 /*Support for 11e/WMM*/
1372 tANI_U8 wmmEnabled;
1373
1374 /*11n HT capable STA*/
1375 tANI_U8 htCapable;
1376
1377 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1378 tANI_U8 txChannelWidthSet;
1379
1380 /*RIFS mode 0 - NA, 1 - Allowed */
1381 tANI_U8 rifsMode;
1382
1383 /*L-SIG TXOP Protection mechanism
1384 0 - No Support, 1 - Supported
1385 SG - there is global field */
1386 tANI_U8 lsigTxopProtection;
1387
1388 /*Max Ampdu Size supported by STA. TPE programming.
1389 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1390 tANI_U8 maxAmpduSize;
1391
1392 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1393 tANI_U8 maxAmpduDensity;
1394
1395 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1396 tANI_U8 maxAmsduSize;
1397
1398 /*Short GI support for 40Mhz packets*/
1399 tANI_U8 fShortGI40Mhz;
1400
1401 /*Short GI support for 20Mhz packets*/
1402 tANI_U8 fShortGI20Mhz;
1403
1404 /*Robust Management Frame (RMF) enabled/disabled*/
1405 tANI_U8 rmfEnabled;
1406
1407 /* The unicast encryption type in the association */
1408 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001409
1410 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001411 will set this flag in case of RE-ASSOC, where we want to reuse the old
1412 STA ID. 0 = Add, 1 = Update*/
1413 tANI_U8 action;
1414
1415 /*U-APSD Flags: 1b per AC. Encoded as follows:
1416 b7 b6 b5 b4 b3 b2 b1 b0 =
1417 X X X X BE BK VI VO */
1418 tANI_U8 uAPSD;
1419
1420 /*Max SP Length*/
1421 tANI_U8 maxSPLen;
1422
1423 /*11n Green Field preamble support
1424 0 - Not supported, 1 - Supported */
1425 tANI_U8 greenFieldCapable;
1426
1427 /*MIMO Power Save mode*/
1428 tSirMacHTMIMOPowerSaveState mimoPS;
1429
1430 /*Delayed BA Support*/
1431 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001432
Jeff Johnsone7245742012-09-05 17:12:55 -07001433 /*Max AMPDU duration in 32us*/
1434 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001435
Jeff Johnsone7245742012-09-05 17:12:55 -07001436 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1437 it to 0 if AP does not support it. This indication is sent to HAL and
1438 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1439 tANI_U8 fDsssCckMode40Mhz;
1440
1441 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1442 Retained for backward compalibity with existing HAL code*/
1443 tANI_U8 staIdx;
1444
1445 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1446 Retained for backward compalibity with existing HAL code*/
1447 tANI_U8 bssIdx;
1448
1449 tANI_U8 p2pCapableSta;
1450
1451 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001452 tANI_U8 htLdpcEnabled:1;
1453 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001454 tANI_U8 vhtTxBFEnabled:1;
1455 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001456
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001457 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001458 tSirSupportedRates_V1 supportedRates;
1459
1460 tANI_U8 vhtCapable;
1461 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001462
Jeff Johnsone7245742012-09-05 17:12:55 -07001463} tConfigStaParams_V1, *tpConfigStaParams_V1;
1464
Jeff Johnson295189b2012-06-20 16:38:30 -07001465typedef PACKED_PRE struct PACKED_POST
1466{
1467 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001468 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001469 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001470 tConfigStaParams_V1 configStaParams_V1;
1471 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001472} tConfigStaReqMsg, *tpConfigStaReqMsg;
1473
1474/*---------------------------------------------------------------------------
1475 WLAN_HAL_CONFIG_STA_RSP
1476---------------------------------------------------------------------------*/
1477
1478typedef PACKED_PRE struct PACKED_POST
1479{
1480 /*success or failure */
1481 tANI_U32 status;
1482
1483 /* Station index; valid only when 'status' field value SUCCESS */
1484 tANI_U8 staIdx;
1485
1486 /* BSSID Index of BSS to which the station is associated */
1487 tANI_U8 bssIdx;
1488
1489 /* DPU Index for PTK */
1490 tANI_U8 dpuIndex;
1491
Jeff Johnson32d95a32012-09-10 13:15:23 -07001492 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001493 tANI_U8 bcastDpuIndex;
1494
1495 /*DPU Index for IGTK */
1496 tANI_U8 bcastMgmtDpuIdx;
1497
1498 /*PTK DPU signature*/
1499 tANI_U8 ucUcastSig;
1500
1501 /*GTK DPU isignature*/
1502 tANI_U8 ucBcastSig;
1503
1504 /* IGTK DPU signature*/
1505 tANI_U8 ucMgmtSig;
1506
1507 tANI_U8 p2pCapableSta;
1508
1509}tConfigStaRspParams, *tpConfigStaRspParams;
1510
1511typedef PACKED_PRE struct PACKED_POST
1512{
1513 tHalMsgHeader header;
1514 tConfigStaRspParams configStaRspParams;
1515}tConfigStaRspMsg, *tpConfigStaRspMsg;
1516
1517/*---------------------------------------------------------------------------
1518 WLAN_HAL_DELETE_STA_REQ
1519---------------------------------------------------------------------------*/
1520
1521/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001522typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001523{
1524 /* Index of STA to delete */
1525 tANI_U8 staIdx;
1526} tDeleteStaParams, *tpDeleteStaParams;
1527
1528/* Delete STA Request message*/
1529typedef PACKED_PRE struct PACKED_POST
1530{
1531 tHalMsgHeader header;
1532 tDeleteStaParams delStaParams;
1533} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1534
1535/*---------------------------------------------------------------------------
1536 WLAN_HAL_DELETE_STA_RSP
1537---------------------------------------------------------------------------*/
1538
1539/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001540typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001541{
1542 /*success or failure */
1543 tANI_U32 status;
1544
1545 /* Index of STA deleted */
1546 tANI_U8 staId;
1547} tDeleteStaRspParams, *tpDeleteStaRspParams;
1548
1549/* Delete STA Response message*/
1550typedef PACKED_PRE struct PACKED_POST
1551{
1552 tHalMsgHeader header;
1553 tDeleteStaRspParams delStaRspParams;
1554} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1555
1556/*---------------------------------------------------------------------------
1557 WLAN_HAL_CONFIG_BSS_REQ
1558---------------------------------------------------------------------------*/
1559
1560//12 Bytes long because this structure can be used to represent rate
1561//and extended rate set IEs. The parser assume this to be at least 12
1562typedef __ani_attr_pre_packed struct sSirMacRateSet
1563{
1564 tANI_U8 numRates;
1565 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1566} __ani_attr_packed tSirMacRateSet;
1567
1568// access category record
1569typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1570{
1571#ifndef ANI_LITTLE_BIT_ENDIAN
1572 tANI_U8 rsvd : 1;
1573 tANI_U8 aci : 2;
1574 tANI_U8 acm : 1;
1575 tANI_U8 aifsn : 4;
1576#else
1577 tANI_U8 aifsn : 4;
1578 tANI_U8 acm : 1;
1579 tANI_U8 aci : 2;
1580 tANI_U8 rsvd : 1;
1581#endif
1582} __ani_attr_packed tSirMacAciAifsn;
1583
1584// contention window size
1585typedef __ani_attr_pre_packed struct sSirMacCW
1586{
1587#ifndef ANI_LITTLE_BIT_ENDIAN
1588 tANI_U8 max : 4;
1589 tANI_U8 min : 4;
1590#else
1591 tANI_U8 min : 4;
1592 tANI_U8 max : 4;
1593#endif
1594} __ani_attr_packed tSirMacCW;
1595
1596typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1597{
1598 tSirMacAciAifsn aci;
1599 tSirMacCW cw;
1600 tANI_U16 txoplimit;
1601} __ani_attr_packed tSirMacEdcaParamRecord;
1602
1603typedef __ani_attr_pre_packed struct sSirMacSSid
1604{
1605 tANI_U8 length;
1606 tANI_U8 ssId[32];
1607} __ani_attr_packed tSirMacSSid;
1608
1609// Concurrency role. These are generic IDs that identify the various roles
1610// in the software system.
1611typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001612 HAL_STA_MODE=0,
1613 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001614 HAL_P2P_CLIENT_MODE,
1615 HAL_P2P_GO_MODE,
1616 HAL_MONITOR_MODE,
1617} tHalConMode;
1618
1619//This is a bit pattern to be set for each mode
1620//bit 0 - sta mode
1621//bit 1 - ap mode
1622//bit 2 - p2p client mode
1623//bit 3 - p2p go mode
1624typedef enum
1625{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001626 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001627 HAL_SAP=2,
1628 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1629 HAL_P2P_CLIENT=4,
1630 HAL_P2P_GO=8,
1631 HAL_MAX_CONCURRENCY_PERSONA=4
1632} tHalConcurrencyMode;
1633
1634typedef PACKED_PRE struct PACKED_POST
1635{
1636 /* BSSID */
1637 tSirMacAddr bssId;
1638
Jeff Johnson295189b2012-06-20 16:38:30 -07001639 /* Self Mac Address */
1640 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001641
1642 /* BSS type */
1643 tSirBssType bssType;
1644
1645 /*Operational Mode: AP =0, STA = 1*/
1646 tANI_U8 operMode;
1647
1648 /*Network Type*/
1649 tSirNwType nwType;
1650
1651 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1652 tANI_U8 shortSlotTimeSupported;
1653
1654 /*Co-exist with 11a STA*/
1655 tANI_U8 llaCoexist;
1656
1657 /*Co-exist with 11b STA*/
1658 tANI_U8 llbCoexist;
1659
1660 /*Co-exist with 11g STA*/
1661 tANI_U8 llgCoexist;
1662
1663 /*Coexistence with 11n STA*/
1664 tANI_U8 ht20Coexist;
1665
1666 /*Non GF coexist flag*/
1667 tANI_U8 llnNonGFCoexist;
1668
1669 /*TXOP protection support*/
1670 tANI_U8 fLsigTXOPProtectionFullSupport;
1671
1672 /*RIFS mode*/
1673 tANI_U8 fRIFSMode;
1674
1675 /*Beacon Interval in TU*/
1676 tSirMacBeaconInterval beaconInterval;
1677
1678 /*DTIM period*/
1679 tANI_U8 dtimPeriod;
1680
1681 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1682 tANI_U8 txChannelWidthSet;
1683
1684 /*Operating channel*/
1685 tANI_U8 currentOperChannel;
1686
1687 /*Extension channel for channel bonding*/
1688 tANI_U8 currentExtChannel;
1689
1690 /*Reserved to align next field on a dword boundary*/
1691 tANI_U8 reserved;
1692
Jeff Johnsone7245742012-09-05 17:12:55 -07001693 /*SSID of the BSS*/
1694 tSirMacSSid ssId;
1695
1696 /*HAL should update the existing BSS entry, if this flag is set.
1697 UMAC will set this flag in case of reassoc, where we want to resue the
1698 the old BSSID and still return success 0 = Add, 1 = Update*/
1699 tANI_U8 action;
1700
1701 /* MAC Rate Set */
1702 tSirMacRateSet rateSet;
1703
1704 /*Enable/Disable HT capabilities of the BSS*/
1705 tANI_U8 htCapable;
1706
1707 // Enable/Disable OBSS protection
1708 tANI_U8 obssProtEnabled;
1709
1710 /*RMF enabled/disabled*/
1711 tANI_U8 rmfEnabled;
1712
1713 /*HT Operating Mode operating mode of the 802.11n STA*/
1714 tSirMacHTOperatingMode htOperMode;
1715
1716 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1717 tANI_U8 dualCTSProtection;
1718
1719 /* Probe Response Max retries */
1720 tANI_U8 ucMaxProbeRespRetryLimit;
1721
1722 /* To Enable Hidden ssid */
1723 tANI_U8 bHiddenSSIDEn;
1724
1725 /* To Enable Disable FW Proxy Probe Resp */
1726 tANI_U8 bProxyProbeRespEn;
1727
1728 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1729 EDCA params or might not desire to apply EDCA params during config BSS.
1730 0 implies Not Valid ; Non-Zero implies valid*/
1731 tANI_U8 edcaParamsValid;
1732
1733 /*EDCA Parameters for Best Effort Access Category*/
1734 tSirMacEdcaParamRecord acbe;
1735
1736 /*EDCA Parameters forBackground Access Category*/
1737 tSirMacEdcaParamRecord acbk;
1738
1739 /*EDCA Parameters for Video Access Category*/
1740 tSirMacEdcaParamRecord acvi;
1741
1742 /*EDCA Parameters for Voice Access Category*/
1743 tSirMacEdcaParamRecord acvo;
1744
1745#ifdef WLAN_FEATURE_VOWIFI_11R
1746 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1747 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1748#endif
1749
1750 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1751 tANI_U8 halPersona;
1752
1753 tANI_U8 bSpectrumMgtEnable;
1754
1755 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1756 tANI_S8 txMgmtPower;
1757 /*maxTxPower has max power to be used after applying the power constraint if any */
1758 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001759 /*Context of the station being added in HW
1760 Add a STA entry for "itself" -
1761 On AP - Add the AP itself in an "STA context"
1762 On STA - Add the AP to which this STA is joining in an "STA context" */
1763 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001764} tConfigBssParams, * tpConfigBssParams;
1765
1766
1767/*--------------------------------------------------------------------------
1768 * WLAN_HAL_CONFIG_BSS_REQ
1769 *--------------------------------------------------------------------------*/
1770typedef PACKED_PRE struct PACKED_POST
1771{
1772 /* BSSID */
1773 tSirMacAddr bssId;
1774
Jeff Johnsone7245742012-09-05 17:12:55 -07001775 /* Self Mac Address */
1776 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001777
1778 /* BSS type */
1779 tSirBssType bssType;
1780
1781 /*Operational Mode: AP =0, STA = 1*/
1782 tANI_U8 operMode;
1783
1784 /*Network Type*/
1785 tSirNwType nwType;
1786
1787 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1788 tANI_U8 shortSlotTimeSupported;
1789
1790 /*Co-exist with 11a STA*/
1791 tANI_U8 llaCoexist;
1792
1793 /*Co-exist with 11b STA*/
1794 tANI_U8 llbCoexist;
1795
1796 /*Co-exist with 11g STA*/
1797 tANI_U8 llgCoexist;
1798
1799 /*Coexistence with 11n STA*/
1800 tANI_U8 ht20Coexist;
1801
1802 /*Non GF coexist flag*/
1803 tANI_U8 llnNonGFCoexist;
1804
1805 /*TXOP protection support*/
1806 tANI_U8 fLsigTXOPProtectionFullSupport;
1807 /*RIFS mode*/
1808 tANI_U8 fRIFSMode;
1809
1810 /*Beacon Interval in TU*/
1811 tSirMacBeaconInterval beaconInterval;
1812
1813 /*DTIM period*/
1814 tANI_U8 dtimPeriod;
1815
1816 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1817 tANI_U8 txChannelWidthSet;
1818
1819 /*Operating channel*/
1820 tANI_U8 currentOperChannel;
1821
1822 /*Extension channel for channel bonding*/
1823 tANI_U8 currentExtChannel;
1824
1825 /*Reserved to align next field on a dword boundary*/
1826 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001827
1828 /*SSID of the BSS*/
1829 tSirMacSSid ssId;
1830
1831 /*HAL should update the existing BSS entry, if this flag is set.
1832 UMAC will set this flag in case of reassoc, where we want to resue the
1833 the old BSSID and still return success 0 = Add, 1 = Update*/
1834 tANI_U8 action;
1835
1836 /* MAC Rate Set */
1837 tSirMacRateSet rateSet;
1838
1839 /*Enable/Disable HT capabilities of the BSS*/
1840 tANI_U8 htCapable;
1841
1842 // Enable/Disable OBSS protection
1843 tANI_U8 obssProtEnabled;
1844
1845 /*RMF enabled/disabled*/
1846 tANI_U8 rmfEnabled;
1847
1848 /*HT Operating Mode operating mode of the 802.11n STA*/
1849 tSirMacHTOperatingMode htOperMode;
1850
1851 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1852 tANI_U8 dualCTSProtection;
1853
1854 /* Probe Response Max retries */
1855 tANI_U8 ucMaxProbeRespRetryLimit;
1856
1857 /* To Enable Hidden ssid */
1858 tANI_U8 bHiddenSSIDEn;
1859
1860 /* To Enable Disable FW Proxy Probe Resp */
1861 tANI_U8 bProxyProbeRespEn;
1862
Jeff Johnson32d95a32012-09-10 13:15:23 -07001863 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1864 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001865 0 implies Not Valid ; Non-Zero implies valid*/
1866 tANI_U8 edcaParamsValid;
1867
1868 /*EDCA Parameters for Best Effort Access Category*/
1869 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001870
Jeff Johnson295189b2012-06-20 16:38:30 -07001871 /*EDCA Parameters forBackground Access Category*/
1872 tSirMacEdcaParamRecord acbk;
1873
1874 /*EDCA Parameters for Video Access Category*/
1875 tSirMacEdcaParamRecord acvi;
1876
1877 /*EDCA Parameters for Voice Access Category*/
1878 tSirMacEdcaParamRecord acvo;
1879
1880#ifdef WLAN_FEATURE_VOWIFI_11R
1881 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1882 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1883#endif
1884
Jeff Johnson32d95a32012-09-10 13:15:23 -07001885 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001886 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001887
Jeff Johnson295189b2012-06-20 16:38:30 -07001888 tANI_U8 bSpectrumMgtEnable;
1889
1890 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1891 tANI_S8 txMgmtPower;
1892 /*maxTxPower has max power to be used after applying the power constraint if any */
1893 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001894 /*Context of the station being added in HW
1895 Add a STA entry for "itself" -
1896 On AP - Add the AP itself in an "STA context"
1897 On STA - Add the AP to which this STA is joining in an "STA context" */
1898 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001899
Jeff Johnsone7245742012-09-05 17:12:55 -07001900 tANI_U8 vhtCapable;
1901 tANI_U8 vhtTxChannelWidthSet;
1902} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001903
1904typedef PACKED_PRE struct PACKED_POST
1905{
1906 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001907 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001908 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001909 tConfigBssParams_V1 configBssParams_V1;
1910 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001911} tConfigBssReqMsg, *tpConfigBssReqMsg;
1912
1913/*---------------------------------------------------------------------------
1914 WLAN_HAL_CONFIG_BSS_RSP
1915---------------------------------------------------------------------------*/
1916
1917typedef PACKED_PRE struct PACKED_POST
1918{
1919 /* Success or Failure */
1920 tANI_U32 status;
1921
1922 /* BSS index allocated by HAL */
1923 tANI_U8 bssIdx;
1924
1925 /* DPU descriptor index for PTK */
1926 tANI_U8 dpuDescIndx;
1927
1928 /* PTK DPU signature */
1929 tANI_U8 ucastDpuSignature;
1930
1931 /* DPU descriptor index for GTK*/
1932 tANI_U8 bcastDpuDescIndx;
1933
1934 /* GTK DPU signature */
1935 tANI_U8 bcastDpuSignature;
1936
1937 /*DPU descriptor for IGTK*/
1938 tANI_U8 mgmtDpuDescIndx;
1939
1940 /* IGTK DPU signature */
1941 tANI_U8 mgmtDpuSignature;
1942
1943 /* Station Index for BSS entry*/
1944 tANI_U8 bssStaIdx;
1945
1946 /* Self station index for this BSS */
1947 tANI_U8 bssSelfStaIdx;
1948
1949 /* Bcast station for buffering bcast frames in AP role */
1950 tANI_U8 bssBcastStaIdx;
1951
1952 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1953 tSirMacAddr staMac;
1954
1955 /*HAL fills in the tx power used for mgmt frames in this field. */
1956 tANI_S8 txMgmtPower;
1957
1958} tConfigBssRspParams, * tpConfigBssRspParams;
1959
1960typedef PACKED_PRE struct PACKED_POST
1961{
1962 tHalMsgHeader header;
1963 tConfigBssRspParams configBssRspParams;
1964} tConfigBssRspMsg, *tpConfigBssRspMsg;
1965
1966/*---------------------------------------------------------------------------
1967 WLAN_HAL_DELETE_BSS_REQ
1968---------------------------------------------------------------------------*/
1969
1970typedef PACKED_PRE struct PACKED_POST
1971{
1972 /* BSS index to be deleted */
1973 tANI_U8 bssIdx;
1974
1975} tDeleteBssParams, *tpDeleteBssParams;
1976
1977typedef PACKED_PRE struct PACKED_POST
1978{
1979 tHalMsgHeader header;
1980 tDeleteBssParams deleteBssParams;
1981} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1982
1983/*---------------------------------------------------------------------------
1984 WLAN_HAL_DELETE_BSS_RSP
1985---------------------------------------------------------------------------*/
1986
1987typedef PACKED_PRE struct PACKED_POST
1988{
1989 /* Success or Failure */
1990 tANI_U32 status;
1991
1992 /* BSS index that has been deleted */
1993 tANI_U8 bssIdx;
1994
1995} tDeleteBssRspParams, *tpDeleteBssRspParams;
1996
1997typedef PACKED_PRE struct PACKED_POST
1998{
1999 tHalMsgHeader header;
2000 tDeleteBssRspParams deleteBssRspParams;
2001} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2002
2003/*---------------------------------------------------------------------------
2004 WLAN_HAL_JOIN_REQ
2005---------------------------------------------------------------------------*/
2006
2007typedef PACKED_PRE struct PACKED_POST
2008{
2009 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002010 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002011
2012 /*Indicates the channel to switch to.*/
2013 tANI_U8 ucChannel;
2014
2015 /* Self STA MAC */
2016 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002017
Jeff Johnson295189b2012-06-20 16:38:30 -07002018 /*Local power constraint*/
2019 tANI_U8 ucLocalPowerConstraint;
2020
2021 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002022 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002023
2024 /*link State*/
2025 tSirLinkState linkState;
2026
2027 /* Max TX power */
2028 tANI_S8 maxTxPower;
2029
2030} tHalJoinReqParams, *tpHalJoinReqParams;
2031
2032typedef PACKED_PRE struct PACKED_POST
2033{
2034 tHalMsgHeader header;
2035 tHalJoinReqParams joinReqParams;
2036} tHalJoinReqMsg, *tpHalJoinReqMsg;
2037
2038/*---------------------------------------------------------------------------
2039 WLAN_HAL_JOIN_RSP
2040---------------------------------------------------------------------------*/
2041
2042typedef PACKED_PRE struct PACKED_POST
2043{
2044 /*success or failure */
2045 tANI_U32 status;
2046
2047 /* HAL fills in the tx power used for mgmt frames in this field */
2048 tPowerdBm txMgmtPower;
2049
2050}tHalJoinRspParams, *tpHalJoinRspParams;
2051
2052typedef PACKED_PRE struct PACKED_POST
2053{
2054 tHalMsgHeader header;
2055 tHalJoinRspParams joinRspParams;
2056}tHalJoinRspMsg, *tpHalJoinRspMsg;
2057
2058/*---------------------------------------------------------------------------
2059 WLAN_HAL_POST_ASSOC_REQ
2060---------------------------------------------------------------------------*/
2061
2062typedef PACKED_PRE struct PACKED_POST
2063{
2064 tConfigStaParams configStaParams;
2065 tConfigBssParams configBssParams;
2066} tPostAssocReqParams, *tpPostAssocReqParams;
2067
2068typedef PACKED_PRE struct PACKED_POST
2069{
2070 tHalMsgHeader header;
2071 tPostAssocReqParams postAssocReqParams;
2072} tPostAssocReqMsg, *tpPostAssocReqMsg;
2073
2074/*---------------------------------------------------------------------------
2075 WLAN_HAL_POST_ASSOC_RSP
2076---------------------------------------------------------------------------*/
2077
2078typedef PACKED_PRE struct PACKED_POST
2079{
2080 tConfigStaRspParams configStaRspParams;
2081 tConfigBssRspParams configBssRspParams;
2082} tPostAssocRspParams, *tpPostAssocRspParams;
2083
2084typedef PACKED_PRE struct PACKED_POST
2085{
2086 tHalMsgHeader header;
2087 tPostAssocRspParams postAssocRspParams;
2088} tPostAssocRspMsg, *tpPostAssocRspMsg;
2089
2090/*---------------------------------------------------------------------------
2091 WLAN_HAL_SET_BSSKEY_REQ
2092---------------------------------------------------------------------------*/
2093
2094/*
2095 * This is used by PE to create a set of WEP keys for a given BSS.
2096 */
2097typedef PACKED_PRE struct PACKED_POST
2098{
2099 /*BSS Index of the BSS*/
2100 tANI_U8 bssIdx;
2101
2102 /*Encryption Type used with peer*/
2103 tAniEdType encType;
2104
2105 /*Number of keys*/
2106 tANI_U8 numKeys;
2107
2108 /*Array of keys.*/
2109 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002110
Jeff Johnson295189b2012-06-20 16:38:30 -07002111 /*Control for Replay Count, 1= Single TID based replay count on Tx
2112 0 = Per TID based replay count on TX */
2113 tANI_U8 singleTidRc;
2114} tSetBssKeyParams, *tpSetBssKeyParams;
2115
2116typedef PACKED_PRE struct PACKED_POST
2117{
2118 tHalMsgHeader header;
2119 tSetBssKeyParams setBssKeyParams;
2120} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2121
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002122/* tagged version of set bss key */
2123typedef PACKED_PRE struct PACKED_POST
2124{
2125 tSetBssKeyReqMsg Msg;
2126 uint32 Tag;
2127} tSetBssKeyReqMsgTagged;
2128
Jeff Johnson295189b2012-06-20 16:38:30 -07002129/*---------------------------------------------------------------------------
2130 WLAN_HAL_SET_BSSKEY_RSP
2131---------------------------------------------------------------------------*/
2132typedef PACKED_PRE struct PACKED_POST
2133{
2134 /*success or failure */
2135 tANI_U32 status;
2136
2137} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2138
2139typedef PACKED_PRE struct PACKED_POST
2140{
2141 tHalMsgHeader header;
2142 tSetBssKeyRspParams setBssKeyRspParams;
2143} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2144
2145/*---------------------------------------------------------------------------
2146 WLAN_HAL_SET_STAKEY_REQ,
2147---------------------------------------------------------------------------*/
2148
2149/*
2150 * This is used by PE to configure the key information on a given station.
2151 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2152 * a preconfigured key from a BSS the station assoicated with; otherwise
2153 * a new key descriptor is created based on the key field.
2154 */
2155
2156typedef PACKED_PRE struct PACKED_POST
2157{
2158 tHalMsgHeader header;
2159 tSetStaKeyParams setStaKeyParams;
2160} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2161
2162/*---------------------------------------------------------------------------
2163 WLAN_HAL_SET_STAKEY_RSP,
2164---------------------------------------------------------------------------*/
2165typedef PACKED_PRE struct PACKED_POST
2166{
2167 /*success or failure */
2168 tANI_U32 status;
2169
2170} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2171
2172typedef PACKED_PRE struct PACKED_POST
2173{
2174 tHalMsgHeader header;
2175 tSetStaKeyRspParams setStaKeyRspParams;
2176} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2177
2178/*---------------------------------------------------------------------------
2179 WLAN_HAL_RMV_BSSKEY_REQ,
2180---------------------------------------------------------------------------*/
2181/*
2182 * This is used by PE to remove keys for a given BSS.
2183 */
2184typedef PACKED_PRE struct PACKED_POST
2185
2186{
2187 /*BSS Index of the BSS*/
2188 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002189
Jeff Johnson295189b2012-06-20 16:38:30 -07002190 /*Encryption Type used with peer*/
2191 tAniEdType encType;
2192
2193 /*Key Id*/
2194 tANI_U8 keyId;
2195
2196 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2197 tAniWepType wepType;
2198
2199} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2200
2201typedef PACKED_PRE struct PACKED_POST
2202{
2203 tHalMsgHeader header;
2204 tRemoveBssKeyParams removeBssKeyParams;
2205} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2206
2207/*---------------------------------------------------------------------------
2208 WLAN_HAL_RMV_BSSKEY_RSP,
2209---------------------------------------------------------------------------*/
2210typedef PACKED_PRE struct PACKED_POST
2211{
2212 /*success or failure */
2213 tANI_U32 status;
2214
2215} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2216
2217typedef PACKED_PRE struct PACKED_POST
2218{
2219 tHalMsgHeader header;
2220 tRemoveBssKeyRspParams removeBssKeyRspParams;
2221} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2222
2223/*---------------------------------------------------------------------------
2224 WLAN_HAL_RMV_STAKEY_REQ,
2225---------------------------------------------------------------------------*/
2226/*
2227 * This is used by PE to Remove the key information on a given station.
2228 */
2229typedef PACKED_PRE struct PACKED_POST
2230{
2231 /*STA Index*/
2232 tANI_U16 staIdx;
2233
2234 /*Encryption Type used with peer*/
2235 tAniEdType encType;
2236
2237 /*Key Id*/
2238 tANI_U8 keyId;
2239
2240 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2241 the same key is used for both broadcast and unicast.*/
2242 tANI_BOOLEAN unicast;
2243
2244} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2245
2246typedef PACKED_PRE struct PACKED_POST
2247{
2248 tHalMsgHeader header;
2249 tRemoveStaKeyParams removeStaKeyParams;
2250} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2251
2252/*---------------------------------------------------------------------------
2253 WLAN_HAL_RMV_STAKEY_RSP,
2254---------------------------------------------------------------------------*/
2255typedef PACKED_PRE struct PACKED_POST
2256{
2257 /*success or failure */
2258 tANI_U32 status;
2259} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2260
2261typedef PACKED_PRE struct PACKED_POST
2262{
2263 tHalMsgHeader header;
2264 tRemoveStaKeyRspParams removeStaKeyRspParams;
2265} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2266
Jeff Johnsone7245742012-09-05 17:12:55 -07002267#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002268
Jeff Johnsone7245742012-09-05 17:12:55 -07002269#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002270#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002271#endif
2272
2273#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002274#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002275#endif
2276
2277/*-------------------------------------------------------------------------
2278WLAN_HAL_START_OEM_DATA_REQ
2279--------------------------------------------------------------------------*/
2280typedef PACKED_PRE struct PACKED_POST
2281{
2282 tANI_U32 status;
2283 tSirMacAddr selfMacAddr;
2284 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2285} tStartOemDataReqParams, *tpStartOemDataReqParams;
2286
2287typedef PACKED_PRE struct PACKED_POST
2288{
2289 tHalMsgHeader header;
2290 tStartOemDataReqParams startOemDataReqParams;
2291} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2292
2293/*-------------------------------------------------------------------------
2294WLAN_HAL_START_OEM_DATA_RSP
2295--------------------------------------------------------------------------*/
2296
2297typedef PACKED_PRE struct PACKED_POST
2298{
2299 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2300} tStartOemDataRspParams, *tpStartOemDataRspParams;
2301
2302typedef PACKED_PRE struct PACKED_POST
2303{
2304 tHalMsgHeader header;
2305 tStartOemDataRspParams startOemDataRspParams;
2306} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2307
2308#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002309
2310
2311
2312/*---------------------------------------------------------------------------
2313WLAN_HAL_CH_SWITCH_REQ
2314---------------------------------------------------------------------------*/
2315
2316typedef PACKED_PRE struct PACKED_POST
2317{
2318 /* Channel number */
2319 tANI_U8 channelNumber;
2320
2321 /* Local power constraint */
2322 tANI_U8 localPowerConstraint;
2323
2324 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002325 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002326
2327 //HAL fills in the tx power used for mgmt frames in this field.
2328 tPowerdBm txMgmtPower;
2329
2330 /* Max TX power */
2331 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002332
Jeff Johnson295189b2012-06-20 16:38:30 -07002333 /* Self STA MAC */
2334 tSirMacAddr selfStaMacAddr;
2335
2336 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2337 this should be applied only to that session*/
2338 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2339 * bssid needs to be out of the VOWifi feature flag */
2340 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2341 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2342 */
2343 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002344
Jeff Johnson295189b2012-06-20 16:38:30 -07002345}tSwitchChannelParams, *tpSwitchChannelParams;
2346
2347typedef PACKED_PRE struct PACKED_POST
2348{
2349 tHalMsgHeader header;
2350 tSwitchChannelParams switchChannelParams;
2351} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2352
2353/*---------------------------------------------------------------------------
2354WLAN_HAL_CH_SWITCH_RSP
2355---------------------------------------------------------------------------*/
2356
2357typedef PACKED_PRE struct PACKED_POST
2358{
2359 /* Status */
2360 tANI_U32 status;
2361
2362 /* Channel number - same as in request*/
2363 tANI_U8 channelNumber;
2364
2365 /* HAL fills in the tx power used for mgmt frames in this field */
2366 tPowerdBm txMgmtPower;
2367
2368 /* BSSID needed to identify session - same as in request*/
2369 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002370
Jeff Johnson295189b2012-06-20 16:38:30 -07002371}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2372
2373typedef PACKED_PRE struct PACKED_POST
2374{
2375 tHalMsgHeader header;
2376 tSwitchChannelRspParams switchChannelRspParams;
2377} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2378
2379/*---------------------------------------------------------------------------
2380WLAN_HAL_UPD_EDCA_PARAMS_REQ
2381---------------------------------------------------------------------------*/
2382
2383typedef PACKED_PRE struct PACKED_POST
2384{
2385 /*BSS Index*/
2386 tANI_U16 bssIdx;
2387
2388 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002389 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002390
2391 /* Background */
2392 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002393
Jeff Johnson295189b2012-06-20 16:38:30 -07002394 /* Video */
2395 tSirMacEdcaParamRecord acvi;
2396
2397 /* Voice */
2398 tSirMacEdcaParamRecord acvo;
2399
2400} tEdcaParams, *tpEdcaParams;
2401
2402typedef PACKED_PRE struct PACKED_POST
2403{
2404 tHalMsgHeader header;
2405 tEdcaParams edcaParams;
2406} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2407
2408/*---------------------------------------------------------------------------
2409WLAN_HAL_UPD_EDCA_PARAMS_RSP
2410---------------------------------------------------------------------------*/
2411typedef PACKED_PRE struct PACKED_POST
2412{
2413 /*success or failure */
2414 tANI_U32 status;
2415} tEdcaRspParams, *tpEdcaRspParams;
2416
2417typedef PACKED_PRE struct PACKED_POST
2418{
2419 tHalMsgHeader header;
2420 tEdcaRspParams edcaRspParams;
2421} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2422
2423
2424
2425/*---------------------------------------------------------------------------
2426 * WLAN_HAL_GET_STATS_REQ
2427 *--------------------------------------------------------------------------*/
2428typedef PACKED_PRE struct PACKED_POST
2429
2430{
2431 /* Index of STA to which the statistics */
2432 tANI_U16 staIdx;
2433
2434 /* Encryption mode */
2435 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002436
Jeff Johnson295189b2012-06-20 16:38:30 -07002437 /* status */
2438 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002439
Jeff Johnson295189b2012-06-20 16:38:30 -07002440 /* Statistics */
2441 tANI_U32 sendBlocks;
2442 tANI_U32 recvBlocks;
2443 tANI_U32 replays;
2444 tANI_U8 micErrorCnt;
2445 tANI_U32 protExclCnt;
2446 tANI_U16 formatErrCnt;
2447 tANI_U16 unDecryptableCnt;
2448 tANI_U32 decryptErrCnt;
2449 tANI_U32 decryptOkCnt;
2450} tDpuStatsParams, * tpDpuStatsParams;
2451
2452typedef PACKED_PRE struct PACKED_POST
2453{
2454 /* Valid STA Idx for per STA stats request */
2455 tANI_U32 staId;
2456
2457 /* Categories of stats requested as specified in eHalStatsMask*/
2458 tANI_U32 statsMask;
2459}tHalStatsReqParams, *tpHalStatsReqParams;
2460
2461typedef PACKED_PRE struct PACKED_POST
2462{
2463 tHalMsgHeader header;
2464 tHalStatsReqParams statsReqParams;
2465} tHalStatsReqMsg, *tpHalStatsReqMsg;
2466
2467/*---------------------------------------------------------------------------
2468 * WLAN_HAL_GET_STATS_RSP
2469 *--------------------------------------------------------------------------*/
2470
2471typedef PACKED_PRE struct PACKED_POST
2472{
2473 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2474 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2475 // station successfully transmitted after more than one retransmission attempt
2476
Jeff Johnson32d95a32012-09-10 13:15:23 -07002477 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2478 //(with and without retries, including multi-cast, broadcast)
2479 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2480 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002481 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2482 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2483 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2484 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 -07002485 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2486 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 -07002487 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2488 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 -07002489 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2490 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002491 //to provide this.
2492}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2493
2494
2495// defines tx_rate_flags
2496typedef enum eTxRateInfo
2497{
2498 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2499 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2500 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2501 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2502 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2503} tTxrateinfoflags;
2504
2505
2506typedef PACKED_PRE struct PACKED_POST
2507{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002508 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 -07002509 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002510 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 -07002511 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002512 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2513 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002514 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002515 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2516 //for eg: if it is 10.5dBm, the value would be 105
2517 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2518 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002519
Jeff Johnson32d95a32012-09-10 13:15:23 -07002520 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2521 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002522 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002523 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2524 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002525}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2526
2527typedef PACKED_PRE struct PACKED_POST
2528{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002529 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2530 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002531 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002532 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 -07002533 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002534 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 -07002535 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002536 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 -07002537 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002538 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 -07002539 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002540 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 -07002541 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002542 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 -07002543 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002544 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 -07002545 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002546 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 -07002547 //decrypted
2548 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2549
2550}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002551
Jeff Johnson295189b2012-06-20 16:38:30 -07002552typedef PACKED_PRE struct PACKED_POST
2553{
2554 tAniGlobalSecurityStats ucStats;
2555 tAniGlobalSecurityStats mcbcStats;
2556}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2557
2558typedef PACKED_PRE struct PACKED_POST
2559{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002560 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2561 //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 -07002562 //address 1 field
2563 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 -07002564 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 -07002565 //primary channel
2566 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 -07002567 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 -07002568 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002569 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2570 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002571 //decoded correctly
2572}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2573
2574typedef PACKED_PRE struct PACKED_POST
2575{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002576 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 -07002577 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002578 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2579 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 -07002580 //is transmitted
2581}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2582
2583typedef PACKED_PRE struct PACKED_POST
2584{
2585 /* Success or Failure */
2586 tANI_U32 status;
2587
2588 /* STA Idx */
2589 tANI_U32 staId;
2590
2591 /* Categories of STATS being returned as per eHalStatsMask*/
2592 tANI_U32 statsMask;
2593
2594 /* message type is same as the request type */
2595 tANI_U16 msgType;
2596
2597 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002598 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002599
2600} tHalStatsRspParams, *tpHalStatsRspParams;
2601
2602
2603
2604typedef PACKED_PRE struct PACKED_POST
2605{
2606 tHalMsgHeader header;
2607 tHalStatsRspParams statsRspParams;
2608} tHalStatsRspMsg, *tpHalStatsRspMsg;
2609
2610/*---------------------------------------------------------------------------
2611 * WLAN_HAL_SET_LINK_ST_REQ
2612 *--------------------------------------------------------------------------*/
2613typedef PACKED_PRE struct PACKED_POST
2614{
2615 tSirMacAddr bssid;
2616 tSirLinkState state;
2617 tSirMacAddr selfMacAddr;
2618} tLinkStateParams, *tpLinkStateParams;
2619
2620typedef PACKED_PRE struct PACKED_POST
2621{
2622 tHalMsgHeader header;
2623 tLinkStateParams linkStateParams;
2624} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2625
2626/*---------------------------------------------------------------------------
2627 * WLAN_HAL_SET_LINK_ST_RSP
2628 *--------------------------------------------------------------------------*/
2629
2630typedef PACKED_PRE struct PACKED_POST
2631{
2632 /*success or failure */
2633 tANI_U32 status;
2634} tLinkStateRspParams, *tpLinkStateRspParams;
2635
2636typedef PACKED_PRE struct PACKED_POST
2637{
2638 tHalMsgHeader header;
2639 tLinkStateRspParams linkStateRspParams;
2640} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2641
2642/*---------------------------------------------------------------------------
2643 * WLAN_HAL_ADD_TS_REQ
2644 *--------------------------------------------------------------------------*/
2645
2646/* TSPEC Params */
2647typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2648{
2649#ifndef ANI_LITTLE_BIT_ENDIAN
2650 tANI_U16 ackPolicy : 2;
2651 tANI_U16 userPrio : 3;
2652 tANI_U16 psb : 1;
2653 tANI_U16 aggregation : 1;
2654 tANI_U16 accessPolicy : 2;
2655 tANI_U16 direction : 2;
2656 tANI_U16 tsid : 4;
2657 tANI_U16 trafficType : 1;
2658#else
2659 tANI_U16 trafficType : 1;
2660 tANI_U16 tsid : 4;
2661 tANI_U16 direction : 2;
2662 tANI_U16 accessPolicy : 2;
2663 tANI_U16 aggregation : 1;
2664 tANI_U16 psb : 1;
2665 tANI_U16 userPrio : 3;
2666 tANI_U16 ackPolicy : 2;
2667#endif
2668} __ani_attr_packed tSirMacTSInfoTfc;
2669
2670/* Flag to schedule the traffic type */
2671typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2672{
2673#ifndef ANI_LITTLE_BIT_ENDIAN
2674 tANI_U8 rsvd : 7;
2675 tANI_U8 schedule : 1;
2676#else
2677 tANI_U8 schedule : 1;
2678 tANI_U8 rsvd : 7;
2679#endif
2680} __ani_attr_packed tSirMacTSInfoSch;
2681
2682/* Traffic and scheduling info */
2683typedef __ani_attr_pre_packed struct sSirMacTSInfo
2684{
2685 tSirMacTSInfoTfc traffic;
2686 tSirMacTSInfoSch schedule;
2687} __ani_attr_packed tSirMacTSInfo;
2688
2689/* Information elements */
2690typedef __ani_attr_pre_packed struct sSirMacTspecIE
2691{
2692 tANI_U8 type;
2693 tANI_U8 length;
2694 tSirMacTSInfo tsinfo;
2695 tANI_U16 nomMsduSz;
2696 tANI_U16 maxMsduSz;
2697 tANI_U32 minSvcInterval;
2698 tANI_U32 maxSvcInterval;
2699 tANI_U32 inactInterval;
2700 tANI_U32 suspendInterval;
2701 tANI_U32 svcStartTime;
2702 tANI_U32 minDataRate;
2703 tANI_U32 meanDataRate;
2704 tANI_U32 peakDataRate;
2705 tANI_U32 maxBurstSz;
2706 tANI_U32 delayBound;
2707 tANI_U32 minPhyRate;
2708 tANI_U16 surplusBw;
2709 tANI_U16 mediumTime;
2710}__ani_attr_packed tSirMacTspecIE;
2711
2712typedef PACKED_PRE struct PACKED_POST
2713{
2714 /* Station Index */
2715 tANI_U16 staIdx;
2716
2717 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2718 tANI_U16 tspecIdx;
2719
2720 /* To program TPE with required parameters */
2721 tSirMacTspecIE tspec;
2722
2723 /* U-APSD Flags: 1b per AC. Encoded as follows:
2724 b7 b6 b5 b4 b3 b2 b1 b0 =
2725 X X X X BE BK VI VO */
2726 tANI_U8 uAPSD;
2727
2728 /* These parameters are for all the access categories */
2729 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2730 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2731 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002732
Jeff Johnson295189b2012-06-20 16:38:30 -07002733} tAddTsParams, *tpAddTsParams;
2734
2735typedef PACKED_PRE struct PACKED_POST
2736{
2737 tHalMsgHeader header;
2738 tAddTsParams addTsParams;
2739} tAddTsReqMsg, *tpAddTsReqMsg;
2740
2741/*---------------------------------------------------------------------------
2742 * WLAN_HAL_ADD_TS_RSP
2743 *--------------------------------------------------------------------------*/
2744
2745typedef PACKED_PRE struct PACKED_POST
2746{
2747 /*success or failure */
2748 tANI_U32 status;
2749} tAddTsRspParams, *tpAddTsRspParams;
2750
2751typedef PACKED_PRE struct PACKED_POST
2752{
2753 tHalMsgHeader header;
2754 tAddTsRspParams addTsRspParams;
2755} tAddTsRspMsg, *tpAddTsRspMsg;
2756
2757
2758/*---------------------------------------------------------------------------
2759 * WLAN_HAL_DEL_TS_REQ
2760 *--------------------------------------------------------------------------*/
2761
2762typedef PACKED_PRE struct PACKED_POST
2763{
2764 /* Station Index */
2765 tANI_U16 staIdx;
2766
2767 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2768 tANI_U16 tspecIdx;
2769
2770 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002771 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002772
2773} tDelTsParams, *tpDelTsParams;
2774
2775typedef PACKED_PRE struct PACKED_POST
2776{
2777 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002778 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002779} tDelTsReqMsg, *tpDelTsReqMsg;
2780
2781/*---------------------------------------------------------------------------
2782 * WLAN_HAL_DEL_TS_RSP
2783 *--------------------------------------------------------------------------*/
2784
2785typedef PACKED_PRE struct PACKED_POST
2786{
2787 /*success or failure */
2788 tANI_U32 status;
2789} tDelTsRspParams, *tpDelTsRspParams;
2790
2791typedef PACKED_PRE struct PACKED_POST
2792{
2793 tHalMsgHeader header;
2794 tDelTsRspParams delTsRspParams;
2795} tDelTsRspMsg, *tpDelTsRspMsg;
2796
2797/* End of TSpec Parameters */
2798
2799/* Start of BLOCK ACK related Parameters */
2800
2801/*---------------------------------------------------------------------------
2802 * WLAN_HAL_ADD_BA_SESSION_REQ
2803 *--------------------------------------------------------------------------*/
2804
2805typedef PACKED_PRE struct PACKED_POST
2806{
2807 /* Station Index */
2808 tANI_U16 staIdx;
2809
2810 /* Peer MAC Address */
2811 tSirMacAddr peerMacAddr;
2812
2813 /* ADDBA Action Frame dialog token
2814 HAL will not interpret this object */
2815 tANI_U8 baDialogToken;
2816
2817 /* TID for which the BA is being setup
2818 This identifies the TC or TS of interest */
2819 tANI_U8 baTID;
2820
2821 /* 0 - Delayed BA (Not supported)
2822 1 - Immediate BA */
2823 tANI_U8 baPolicy;
2824
2825 /* Indicates the number of buffers for this TID (baTID)
2826 NOTE - This is the requested buffer size. When this
2827 is processed by HAL and subsequently by HDD, it is
2828 possible that HDD may change this buffer size. Any
2829 change in the buffer size should be noted by PE and
2830 advertized appropriately in the ADDBA response */
2831 tANI_U16 baBufferSize;
2832
2833 /* BA timeout in TU's 0 means no timeout will occur */
2834 tANI_U16 baTimeout;
2835
2836 /* b0..b3 - Fragment Number - Always set to 0
2837 b4..b15 - Starting Sequence Number of first MSDU
2838 for which this BA is setup */
2839 tANI_U16 baSSN;
2840
2841 /* ADDBA direction
2842 1 - Originator
2843 0 - Recipient */
2844 tANI_U8 baDirection;
2845} tAddBASessionParams, *tpAddBASessionParams;
2846
2847typedef PACKED_PRE struct PACKED_POST
2848{
2849 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002850 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002851}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2852
2853/*---------------------------------------------------------------------------
2854 * WLAN_HAL_ADD_BA_SESSION_RSP
2855 *--------------------------------------------------------------------------*/
2856
2857typedef PACKED_PRE struct PACKED_POST
2858{
2859 /*success or failure */
2860 tANI_U32 status;
2861
2862 /* Dialog token */
2863 tANI_U8 baDialogToken;
2864
2865 /* TID for which the BA session has been setup */
2866 tANI_U8 baTID;
2867
2868 /* BA Buffer Size allocated for the current BA session */
2869 tANI_U8 baBufferSize;
2870
2871 tANI_U8 baSessionID;
2872
2873 /* Reordering Window buffer */
2874 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002875
Jeff Johnson295189b2012-06-20 16:38:30 -07002876 /*Station Index to id the sta */
2877 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002878
Jeff Johnson295189b2012-06-20 16:38:30 -07002879 /* Starting Sequence Number */
2880 tANI_U16 SSN;
2881} tAddBASessionRspParams, *tpAddBASessionRspParams;
2882
2883typedef PACKED_PRE struct PACKED_POST
2884{
2885 tHalMsgHeader header;
2886 tAddBASessionRspParams addBASessionRspParams;
2887} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2888
2889/*---------------------------------------------------------------------------
2890 * WLAN_HAL_ADD_BA_REQ
2891 *--------------------------------------------------------------------------*/
2892
2893typedef PACKED_PRE struct PACKED_POST
2894{
2895 /* Session Id */
2896 tANI_U8 baSessionID;
2897
2898 /* Reorder Window Size */
2899 tANI_U8 winSize;
2900
2901#ifdef FEATURE_ON_CHIP_REORDERING
2902 tANI_BOOLEAN isReorderingDoneOnChip;
2903#endif
2904} tAddBAParams, *tpAddBAParams;
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002909 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002910} tAddBAReqMsg, *tpAddBAReqMsg;
2911
2912
2913/*---------------------------------------------------------------------------
2914 * WLAN_HAL_ADD_BA_RSP
2915 *--------------------------------------------------------------------------*/
2916
2917typedef PACKED_PRE struct PACKED_POST
2918{
2919 /*success or failure */
2920 tANI_U32 status;
2921
2922 /* Dialog token */
2923 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002924
Jeff Johnson295189b2012-06-20 16:38:30 -07002925} tAddBARspParams, *tpAddBARspParams;
2926
2927typedef PACKED_PRE struct PACKED_POST
2928{
2929 tHalMsgHeader header;
2930 tAddBARspParams addBARspParams;
2931} tAddBARspMsg, *tpAddBARspMsg;
2932
2933
2934/*---------------------------------------------------------------------------
2935 * WLAN_HAL_TRIGGER_BA_REQ
2936 *--------------------------------------------------------------------------*/
2937
2938
2939typedef struct sAddBaInfo
2940{
2941 tANI_U16 fBaEnable : 1;
2942 tANI_U16 startingSeqNum: 12;
2943 tANI_U16 reserved : 3;
2944}tAddBaInfo, *tpAddBaInfo;
2945
2946typedef struct sTriggerBaRspCandidate
2947{
2948 tSirMacAddr staAddr;
2949 tAddBaInfo baInfo[STACFG_MAX_TC];
2950}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2951
2952typedef struct sTriggerBaCandidate
2953{
2954 tANI_U8 staIdx;
2955 tANI_U8 tidBitmap;
2956}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2957
2958typedef PACKED_PRE struct PACKED_POST
2959{
2960 /* Session Id */
2961 tANI_U8 baSessionID;
2962
Jeff Johnson32d95a32012-09-10 13:15:23 -07002963 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002964 * Candidate List(tTriggerBaCandidate)
2965 */
2966 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002967
Jeff Johnson295189b2012-06-20 16:38:30 -07002968} tTriggerBAParams, *tpTriggerBAParams;
2969
2970typedef PACKED_PRE struct PACKED_POST
2971{
2972 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002973 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002974} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2975
2976
2977/*---------------------------------------------------------------------------
2978 * WLAN_HAL_TRIGGER_BA_RSP
2979 *--------------------------------------------------------------------------*/
2980
2981typedef PACKED_PRE struct PACKED_POST
2982{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002983
Jeff Johnson295189b2012-06-20 16:38:30 -07002984 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002985 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002986
2987 /* success or failure */
2988 tANI_U32 status;
2989
Jeff Johnson32d95a32012-09-10 13:15:23 -07002990 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002991 * Rsp Candidate List(tTriggerRspBaCandidate)
2992 */
2993 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002994
Jeff Johnson295189b2012-06-20 16:38:30 -07002995
2996} tTriggerBARspParams, *tpTriggerBARspParams;
2997
2998typedef PACKED_PRE struct PACKED_POST
2999{
3000 tHalMsgHeader header;
3001 tTriggerBARspParams triggerBARspParams;
3002} tTriggerBARspMsg, *tpTriggerBARspMsg;
3003
3004/*---------------------------------------------------------------------------
3005 * WLAN_HAL_DEL_BA_REQ
3006 *--------------------------------------------------------------------------*/
3007
3008typedef PACKED_PRE struct PACKED_POST
3009{
3010 /* Station Index */
3011 tANI_U16 staIdx;
3012
3013 /* TID for which the BA session is being deleted */
3014 tANI_U8 baTID;
3015
3016 /* DELBA direction
3017 1 - Originator
3018 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003019 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003020} tDelBAParams, *tpDelBAParams;
3021
3022typedef PACKED_PRE struct PACKED_POST
3023{
3024 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003025 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003026} tDelBAReqMsg, *tpDelBAReqMsg;
3027
3028/*---------------------------------------------------------------------------
3029 * WLAN_HAL_DEL_BA_RSP
3030 *--------------------------------------------------------------------------*/
3031
3032typedef PACKED_PRE struct PACKED_POST
3033{
3034 /* success or failure */
3035 tANI_U32 status;
3036} tDelBARspParams, *tpDelBARspParams;
3037
3038typedef PACKED_PRE struct PACKED_POST
3039{
3040 tHalMsgHeader header;
3041 tDelBARspParams delBARspParams;
3042} tDelBARspMsg, *tpDelBARspMsg;
3043
3044
3045#ifdef FEATURE_WLAN_CCX
3046
3047/*---------------------------------------------------------------------------
3048 * WLAN_HAL_TSM_STATS_REQ
3049 *--------------------------------------------------------------------------*/
3050typedef PACKED_PRE struct PACKED_POST
3051{
3052 /* Traffic Id */
3053 tANI_U8 tsmTID;
3054
3055 tSirMacAddr bssId;
3056} tTsmStatsParams, *tpTsmStatsParams;
3057
3058typedef PACKED_PRE struct PACKED_POST
3059{
3060 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003061 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003062} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3063
3064
3065/*---------------------------------------------------------------------------
3066 * WLAN_HAL_TSM_STATS_RSP
3067 *--------------------------------------------------------------------------*/
3068typedef PACKED_PRE struct PACKED_POST
3069{
3070 /*success or failure */
3071 tANI_U32 status;
3072
Jeff Johnson32d95a32012-09-10 13:15:23 -07003073 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003074 tANI_U16 UplinkPktQueueDly;
3075
Jeff Johnson32d95a32012-09-10 13:15:23 -07003076 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003077 tANI_U16 UplinkPktQueueDlyHist[4];
3078
Jeff Johnson32d95a32012-09-10 13:15:23 -07003079 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003080 tANI_U32 UplinkPktTxDly;
3081
Jeff Johnson32d95a32012-09-10 13:15:23 -07003082 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003083 tANI_U16 UplinkPktLoss;
3084
Jeff Johnson32d95a32012-09-10 13:15:23 -07003085 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003086 tANI_U16 UplinkPktCount;
3087
Jeff Johnson32d95a32012-09-10 13:15:23 -07003088 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003089 tANI_U8 RoamingCount;
3090
Jeff Johnson32d95a32012-09-10 13:15:23 -07003091 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003092 tANI_U16 RoamingDly;
3093} tTsmStatsRspParams, *tpTsmStatsRspParams;
3094
3095typedef PACKED_PRE struct PACKED_POST
3096{
3097 tHalMsgHeader header;
3098 tTsmStatsRspParams tsmStatsRspParams;
3099} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3100
3101
3102#endif
3103
3104/*---------------------------------------------------------------------------
3105 * WLAN_HAL_SET_KEYDONE_MSG
3106 *--------------------------------------------------------------------------*/
3107
3108typedef PACKED_PRE struct PACKED_POST
3109{
3110 /*bssid of the keys */
3111 tANI_U8 bssidx;
3112 tANI_U8 encType;
3113} tSetKeyDoneParams, *tpSetKeyDoneParams;
3114
3115typedef PACKED_PRE struct PACKED_POST
3116{
3117 tHalMsgHeader header;
3118 tSetKeyDoneParams setKeyDoneParams;
3119} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3120
3121/*---------------------------------------------------------------------------
3122 * WLAN_HAL_DOWNLOAD_NV_REQ
3123 *--------------------------------------------------------------------------*/
3124typedef PACKED_PRE struct PACKED_POST
3125{
3126 /* Fragment sequence number of the NV Image. Note that NV Image might not
3127 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003128 * can hence choose to chop the NV blob into multiple fragments starting with
3129 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003130 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3131 * concatenated together by HAL without any padding bytes in between.*/
3132 tANI_U16 fragNumber;
3133
3134 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003135 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003136 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3137 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3138 tANI_U16 isLastFragment;
3139
3140 /* NV Image size (number of bytes) */
3141 tANI_U32 nvImgBufferSize;
3142
3143 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3144 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3145} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3146
3147typedef PACKED_PRE struct PACKED_POST
3148{
3149 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3150 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3151 tHalMsgHeader header;
3152 tHalNvImgDownloadReqParams nvImageReqParams;
3153} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3154
3155/*---------------------------------------------------------------------------
3156 * WLAN_HAL_DOWNLOAD_NV_RSP
3157 *--------------------------------------------------------------------------*/
3158typedef PACKED_PRE struct PACKED_POST
3159{
3160 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3161 * after each fragment */
3162 tANI_U32 status;
3163} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3164
3165typedef PACKED_PRE struct PACKED_POST
3166{
3167 tHalMsgHeader header;
3168 tHalNvImgDownloadRspParams nvImageRspParams;
3169} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3170
3171/*---------------------------------------------------------------------------
3172 * WLAN_HAL_STORE_NV_IND
3173 *--------------------------------------------------------------------------*/
3174typedef PACKED_PRE struct PACKED_POST
3175{
3176 /* NV Item */
3177 eNvTable tableID;
3178
3179 /* Size of NV Blob */
3180 tANI_U32 nvBlobSize;
3181
Jeff Johnson32d95a32012-09-10 13:15:23 -07003182 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003183 * NV blob i.e. uint8[nvBlobSize] */
3184} tHalNvStoreParams, *tpHalNvStoreParams;
3185
3186typedef PACKED_PRE struct PACKED_POST
3187{
3188 /* Note: The length specified in tHalNvStoreInd messages should be
3189 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3190 tHalMsgHeader header;
3191 tHalNvStoreParams nvStoreParams;
3192} tHalNvStoreInd, *tpHalNvStoreInd;
3193
3194/* End of Block Ack Related Parameters */
3195
3196/*---------------------------------------------------------------------------
3197 * WLAN_HAL_MIC_FAILURE_IND
3198 *--------------------------------------------------------------------------*/
3199
3200#define SIR_CIPHER_SEQ_CTR_SIZE 6
3201
3202typedef PACKED_PRE struct PACKED_POST
3203{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003204 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003205 tSirMacAddr taMacAddr; //transmitter address
3206 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003207 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003208 tANI_U8 IV1; // first byte of IV
3209 tANI_U8 keyId; // second byte of IV
3210 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3211 tSirMacAddr rxMacAddr; // receive address
3212} tSirMicFailureInfo, *tpSirMicFailureInfo;
3213
3214/* Definition for MIC failure indication
3215 MAC reports this each time a MIC failure occures on Rx TKIP packet
3216 */
3217typedef PACKED_PRE struct PACKED_POST
3218{
3219 tSirMacAddr bssId; // BSSID
3220 tSirMicFailureInfo info;
3221} tSirMicFailureInd, *tpSirMicFailureInd;
3222
3223typedef PACKED_PRE struct PACKED_POST
3224{
3225 tHalMsgHeader header;
3226 tSirMicFailureInd micFailureInd;
3227} tMicFailureIndMsg, *tpMicFailureIndMsg;
3228
Mohit Khanna4a70d262012-09-11 16:30:12 -07003229typedef PACKED_PRE struct PACKED_POST
3230{
3231 tANI_U16 opMode;
3232 tANI_U16 staId;
3233}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3234
3235typedef PACKED_PRE struct PACKED_POST
3236{
3237 tHalMsgHeader header;
3238 tUpdateVHTOpMode updateVhtOpMode;
3239} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3240
3241typedef PACKED_PRE struct PACKED_POST
3242{
3243 tANI_U32 status;
3244} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3245
3246typedef PACKED_PRE struct PACKED_POST
3247{
3248 tHalMsgHeader header;
3249 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3250} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3251
Jeff Johnson295189b2012-06-20 16:38:30 -07003252/*---------------------------------------------------------------------------
3253 * WLAN_HAL_UPDATE_BEACON_REQ
3254 *--------------------------------------------------------------------------*/
3255typedef PACKED_PRE struct PACKED_POST
3256{
3257
3258 tANI_U8 bssIdx;
3259
3260 //shortPreamble mode. HAL should update all the STA rates when it
3261 //receives this message
3262 tANI_U8 fShortPreamble;
3263 //short Slot time.
3264 tANI_U8 fShortSlotTime;
3265 //Beacon Interval
3266 tANI_U16 beaconInterval;
3267 //Protection related
3268 tANI_U8 llaCoexist;
3269 tANI_U8 llbCoexist;
3270 tANI_U8 llgCoexist;
3271 tANI_U8 ht20MhzCoexist;
3272 tANI_U8 llnNonGFCoexist;
3273 tANI_U8 fLsigTXOPProtectionFullSupport;
3274 tANI_U8 fRIFSMode;
3275
3276 tANI_U16 paramChangeBitmap;
3277}tUpdateBeaconParams, *tpUpdateBeaconParams;
3278
3279
3280typedef PACKED_PRE struct PACKED_POST
3281{
3282 tHalMsgHeader header;
3283 tUpdateBeaconParams updateBeaconParam;
3284} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3285
3286/*---------------------------------------------------------------------------
3287 * WLAN_HAL_UPDATE_BEACON_RSP
3288 *--------------------------------------------------------------------------*/
3289typedef PACKED_PRE struct PACKED_POST
3290{
3291 tANI_U32 status;
3292} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3293
3294typedef PACKED_PRE struct PACKED_POST
3295{
3296 tHalMsgHeader header;
3297 tUpdateBeaconRspParams updateBeaconRspParam;
3298} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3299
3300/*---------------------------------------------------------------------------
3301 * WLAN_HAL_SEND_BEACON_REQ
3302 *--------------------------------------------------------------------------*/
3303typedef PACKED_PRE struct PACKED_POST
3304{
3305 tANI_U32 beaconLength; //length of the template.
3306 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3307 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003308 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003309 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3310}tSendBeaconParams, *tpSendBeaconParams;
3311
3312
3313typedef PACKED_PRE struct PACKED_POST
3314{
3315 tHalMsgHeader header;
3316 tSendBeaconParams sendBeaconParam;
3317}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3318
3319/*---------------------------------------------------------------------------
3320 * WLAN_HAL_SEND_BEACON_RSP
3321 *--------------------------------------------------------------------------*/
3322typedef PACKED_PRE struct PACKED_POST
3323{
3324 tANI_U32 status;
3325} tSendBeaconRspParams, *tpSendBeaconRspParams;
3326
3327typedef PACKED_PRE struct PACKED_POST
3328{
3329 tHalMsgHeader header;
3330 tSendBeaconRspParams sendBeaconRspParam;
3331} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3332
3333#ifdef FEATURE_5GHZ_BAND
3334
3335/*---------------------------------------------------------------------------
3336 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3337 *--------------------------------------------------------------------------*/
3338typedef PACKED_PRE struct PACKED_POST
3339{
3340 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003341 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003342}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3343
3344
3345typedef PACKED_PRE struct PACKED_POST
3346{
3347 /* Link Parameters */
3348 tSirEnableRadarInfoType EnableRadarInfo;
3349}tEnableRadarReqParams, *tpEnableRadarReqParams;
3350
3351typedef PACKED_PRE struct PACKED_POST
3352{
3353 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003354 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003355}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3356
3357/*---------------------------------------------------------------------------
3358 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3359 *--------------------------------------------------------------------------*/
3360
3361typedef PACKED_PRE struct PACKED_POST
3362{
3363 /* Link Parameters */
3364 tSirMacAddr BSSID;
3365 /* success or failure */
3366 tANI_U32 status;
3367}tEnableRadarRspParams, *tpEnableRadarRspParams;
3368
3369typedef PACKED_PRE struct PACKED_POST
3370{
3371 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003372 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003373}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3374
3375/*---------------------------------------------------------------------------
3376 *WLAN_HAL_RADAR_DETECT_INTR_IND
3377 *--------------------------------------------------------------------------*/
3378
3379typedef PACKED_PRE struct PACKED_POST
3380{
3381 tANI_U8 radarDetChannel;
3382}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3383
3384typedef PACKED_PRE struct PACKED_POST
3385{
3386 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003387 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003388}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3389
3390/*---------------------------------------------------------------------------
3391 *WLAN_HAL_RADAR_DETECT_IND
3392 *-------------------------------------------------------------------------*/
3393typedef PACKED_PRE struct PACKED_POST
3394{
3395 /*channel number in which the RADAR detected*/
3396 tANI_U8 channelNumber;
3397
3398 /*RADAR pulse width*/
3399 tANI_U16 radarPulseWidth; // in usecond
3400
3401 /*Number of RADAR pulses */
3402 tANI_U16 numRadarPulse;
3403}tRadarDetectIndParams,*tpRadarDetectIndParams;
3404
3405typedef PACKED_PRE struct PACKED_POST
3406{
3407 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003408 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003409}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3410
3411
3412/*---------------------------------------------------------------------------
3413 *WLAN_HAL_GET_TPC_REPORT_REQ
3414 *-------------------------------------------------------------------------*/
3415typedef PACKED_PRE struct PACKED_POST
3416{
3417 tSirMacAddr sta;
3418 tANI_U8 dialogToken;
3419 tANI_U8 txpower;
3420}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3421
3422
3423typedef PACKED_PRE struct PACKED_POST
3424{
3425 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003426 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003427}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3428
3429/*---------------------------------------------------------------------------
3430 * WLAN_HAL_GET_TPC_REPORT_RSP
3431 *--------------------------------------------------------------------------*/
3432
3433typedef PACKED_PRE struct PACKED_POST
3434{
3435 /* success or failure */
3436 tANI_U32 status;
3437}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3438
3439typedef PACKED_PRE struct PACKED_POST
3440{
3441 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003442 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003443}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3444
3445#endif
3446
Jeff Johnson295189b2012-06-20 16:38:30 -07003447/*---------------------------------------------------------------------------
3448 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3449 *-------------------------------------------------------------------------*/
3450typedef PACKED_PRE struct PACKED_POST
3451{
3452 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3453 tANI_U32 probeRespTemplateLen;
3454 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3455 tSirMacAddr bssId;
3456
3457}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3458
3459typedef PACKED_PRE struct PACKED_POST
3460{
3461 tHalMsgHeader header;
3462 tSendProbeRespReqParams sendProbeRespReqParams ;
3463}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3464
3465/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003466 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003467 *--------------------------------------------------------------------------*/
3468
3469typedef PACKED_PRE struct PACKED_POST
3470{
3471 /* success or failure */
3472 tANI_U32 status;
3473}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3474
3475typedef PACKED_PRE struct PACKED_POST
3476{
3477 tHalMsgHeader header;
3478 tSendProbeRespRspParams sendProbeRespRspParams;
3479}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3480
3481
3482/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003483 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003484 *--------------------------------------------------------------------------*/
3485
3486typedef PACKED_PRE struct PACKED_POST
3487{
3488 /* success or failure */
3489 tANI_U32 status;
3490}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3491
3492typedef PACKED_PRE struct PACKED_POST
3493{
3494 tHalMsgHeader header;
3495 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3496}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3497
3498/*---------------------------------------------------------------------------
3499 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3500 *--------------------------------------------------------------------------*/
3501
3502typedef PACKED_PRE struct PACKED_POST
3503{
3504 tANI_U16 assocId;
3505 tANI_U16 staId;
3506 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3507 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003508 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003509 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003510
3511}tDeleteStaContextParams, *tpDeleteStaContextParams;
3512
3513
3514typedef PACKED_PRE struct PACKED_POST
3515{
3516 tHalMsgHeader header;
3517 tDeleteStaContextParams deleteStaContextParams;
3518}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3519
Anand Kumar012623a2013-01-11 17:00:00 -08003520typedef PACKED_PRE struct PACKED_POST
3521{
3522 tHalMsgHeader header;
3523 tANI_U8 assocId;
3524 tANI_U8 staIdx;
3525 tANI_U8 bssIdx;
3526 tANI_U8 uReasonCode;
3527 tANI_U32 uStatus;
3528} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003529
3530/*---------------------------------------------------------------------------
3531 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3532 *--------------------------------------------------------------------------*/
3533
3534typedef PACKED_PRE struct PACKED_POST
3535{
3536 tBtAmpEventType btAmpEventType;
3537
3538}tBtAmpEventParams, *tpBtAmpEventParams;
3539
3540
3541
3542typedef PACKED_PRE struct PACKED_POST
3543{
3544 tHalMsgHeader header;
3545 tBtAmpEventParams btAmpEventParams;
3546}tBtAmpEventMsg, *tpBtAmpEventMsg;
3547
3548/*---------------------------------------------------------------------------
3549*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3550*--------------------------------------------------------------------------*/
3551
3552typedef PACKED_PRE struct PACKED_POST
3553{
3554 /* success or failure */
3555 tANI_U32 status;
3556}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3557
3558typedef PACKED_PRE struct PACKED_POST
3559{
3560 tHalMsgHeader header;
3561 tBtAmpEventRspParams btAmpEventRspParams;
3562}tBtAmpEventRsp, *tpBtAmpEventRsp;
3563
3564
3565/*---------------------------------------------------------------------------
3566 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3567 *--------------------------------------------------------------------------*/
3568
3569typedef PACKED_PRE struct PACKED_POST
3570{
3571 // Station Index. originates from HAL
3572 tANI_U8 ucSTAId;
3573
3574 // TID for which the transmit queue is being flushed
3575 tANI_U8 ucTid;
3576
3577}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3578
3579
3580typedef PACKED_PRE struct PACKED_POST
3581{
3582 tHalMsgHeader header;
3583 tTlHalFlushAcParams tlHalFlushAcParam;
3584}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3585
3586/*---------------------------------------------------------------------------
3587*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3588*--------------------------------------------------------------------------*/
3589
3590typedef PACKED_PRE struct PACKED_POST
3591{
3592 // Station Index. originates from HAL
3593 tANI_U8 ucSTAId;
3594
3595 // TID for which the transmit queue is being flushed
3596 tANI_U8 ucTid;
3597
3598 /* success or failure */
3599 tANI_U32 status;
3600}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3601
3602typedef PACKED_PRE struct PACKED_POST
3603{
3604 tHalMsgHeader header;
3605 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3606}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3607
3608/*---------------------------------------------------------------------------
3609 * WLAN_HAL_ENTER_IMPS_REQ
3610 *--------------------------------------------------------------------------*/
3611typedef PACKED_PRE struct PACKED_POST
3612{
3613 tHalMsgHeader header;
3614} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3615
3616/*---------------------------------------------------------------------------
3617 * WLAN_HAL_EXIT_IMPS_REQ
3618 *--------------------------------------------------------------------------*/
3619typedef PACKED_PRE struct PACKED_POST
3620{
3621 tHalMsgHeader header;
3622} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3623
3624/*---------------------------------------------------------------------------
3625 * WLAN_HAL_ENTER_BMPS_REQ
3626 *--------------------------------------------------------------------------*/
3627
3628typedef PACKED_PRE struct PACKED_POST
3629{
3630 tANI_U8 bssIdx;
3631 //TBTT value derived from the last beacon
3632#ifndef BUILD_QWPTTSTATIC
3633 tANI_U64 tbtt;
3634#endif
3635 tANI_U8 dtimCount;
3636 //DTIM period given to HAL during association may not be valid,
3637 //if association is based on ProbeRsp instead of beacon.
3638 tANI_U8 dtimPeriod;
3639
3640 // For CCX and 11R Roaming
3641 tANI_U32 rssiFilterPeriod;
3642 tANI_U32 numBeaconPerRssiAverage;
3643 tANI_U8 bRssiFilterEnable;
3644
3645} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3646
3647
3648typedef PACKED_PRE struct PACKED_POST
3649{
3650 tHalMsgHeader header;
3651 tHalEnterBmpsReqParams enterBmpsReq;
3652} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3653
3654/*---------------------------------------------------------------------------
3655 * WLAN_HAL_EXIT_BMPS_REQ
3656 *--------------------------------------------------------------------------*/
3657typedef PACKED_PRE struct PACKED_POST
3658{
3659 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003660 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003661} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3662
3663typedef PACKED_PRE struct PACKED_POST
3664{
3665 tHalMsgHeader header;
3666 tHalExitBmpsReqParams exitBmpsReqParams;
3667} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3668
3669/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003670 * WLAN_HAL_MISSED_BEACON_IND
3671 *--------------------------------------------------------------------------*/
3672typedef PACKED_PRE struct PACKED_POST
3673{
3674 tANI_U8 bssIdx;
3675} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3676
3677typedef PACKED_PRE struct PACKED_POST
3678{
3679 tHalMsgHeader header;
3680 tHalMissedBeaconIndParams missedBeaconIndParams;
3681} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3682
3683/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003684 * WLAN_HAL_ADD_BCN_FILTER_REQ
3685 *--------------------------------------------------------------------------*/
3686/* Beacon Filtering data structures */
3687typedef PACKED_PRE struct PACKED_POST
3688{
3689 tANI_U8 offset;
3690 tANI_U8 value;
3691 tANI_U8 bitMask;
3692 tANI_U8 ref;
3693} tEidByteInfo, *tpEidByteInfo;
3694
Jeff Johnson32d95a32012-09-10 13:15:23 -07003695typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003696{
3697 tANI_U16 capabilityInfo;
3698 tANI_U16 capabilityMask;
3699 tANI_U16 beaconInterval;
3700 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003701 tANI_U8 bssIdx;
3702 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003703} tBeaconFilterMsg, *tpBeaconFilterMsg;
3704
3705/* The above structure would be followed by multiple of below mentioned structure */
3706typedef PACKED_PRE struct PACKED_POST
3707{
3708 tANI_U8 elementId;
3709 tANI_U8 checkIePresence;
3710 tEidByteInfo byte;
3711} tBeaconFilterIe, *tpBeaconFilterIe;
3712
3713typedef PACKED_PRE struct PACKED_POST
3714{
3715 tHalMsgHeader header;
3716 tBeaconFilterMsg addBcnFilterParams;
3717} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3718
3719/*---------------------------------------------------------------------------
3720 * WLAN_HAL_REM_BCN_FILTER_REQ
3721 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003722typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003723{
3724 tANI_U8 ucIeCount;
3725 tANI_U8 ucRemIeId[1];
3726} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3727
3728typedef PACKED_PRE struct PACKED_POST
3729{
3730 tHalMsgHeader header;
3731 tRemBeaconFilterMsg remBcnFilterParams;
3732} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3733
3734/*---------------------------------------------------------------------------
3735 * WLAN_HAL_HOST_OFFLOAD_REQ
3736 *--------------------------------------------------------------------------*/
3737#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3738#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3739#define HAL_IPV6_NS_OFFLOAD 2
3740#define HAL_IPV6_ADDR_LEN 16
3741#define HAL_MAC_ADDR_LEN 6
3742#define HAL_OFFLOAD_DISABLE 0
3743#define HAL_OFFLOAD_ENABLE 1
3744#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003745#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003746#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003747#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003748
3749typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3750{
3751 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3752 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3753 //Only support 2 possible Network Advertisement IPv6 address
3754 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3755 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3756 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3757 tANI_U8 srcIPv6AddrValid : 1;
3758 tANI_U8 targetIPv6Addr1Valid : 1;
3759 tANI_U8 targetIPv6Addr2Valid : 1;
3760 tANI_U8 reserved1 : 5;
3761 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003762 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003763 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003764} tHalNSOffloadParams;
3765
3766typedef PACKED_PRE struct PACKED_POST
3767{
3768 tANI_U8 offloadType;
3769 tANI_U8 enableOrDisable;
3770 PACKED_PRE union PACKED_POST
3771 {
3772 tANI_U8 hostIpv4Addr [4];
3773 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3774 } params;
3775} tHalHostOffloadReq, *tpHalHostOffloadReq;
3776
3777typedef PACKED_PRE struct PACKED_POST
3778{
3779 tHalMsgHeader header;
3780 tHalHostOffloadReq hostOffloadParams;
3781 tHalNSOffloadParams nsOffloadParams;
3782} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3783
3784/*---------------------------------------------------------------------------
3785 * WLAN_HAL_KEEP_ALIVE_REQ
3786 *--------------------------------------------------------------------------*/
3787/* Packet Types. */
3788#define HAL_KEEP_ALIVE_NULL_PKT 1
3789#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3790
3791/* Enable or disable keep alive */
3792#define HAL_KEEP_ALIVE_DISABLE 0
3793#define HAL_KEEP_ALIVE_ENABLE 1
3794
3795/* Keep Alive request. */
3796typedef PACKED_PRE struct PACKED_POST
3797{
3798 tANI_U8 packetType;
3799 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003800 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003801 tHalIpv4Addr destIpv4Addr;
3802 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003803 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003804} tHalKeepAliveReq, *tpHalKeepAliveReq;
3805
3806typedef PACKED_PRE struct PACKED_POST
3807{
3808 tHalMsgHeader header;
3809 tHalKeepAliveReq KeepAliveParams;
3810} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3811
3812/*---------------------------------------------------------------------------
3813 * WLAN_HAL_SET_RSSI_THRESH_REQ
3814 *--------------------------------------------------------------------------*/
3815typedef PACKED_PRE struct PACKED_POST
3816{
3817 tANI_S8 ucRssiThreshold1 : 8;
3818 tANI_S8 ucRssiThreshold2 : 8;
3819 tANI_S8 ucRssiThreshold3 : 8;
3820 tANI_U8 bRssiThres1PosNotify : 1;
3821 tANI_U8 bRssiThres1NegNotify : 1;
3822 tANI_U8 bRssiThres2PosNotify : 1;
3823 tANI_U8 bRssiThres2NegNotify : 1;
3824 tANI_U8 bRssiThres3PosNotify : 1;
3825 tANI_U8 bRssiThres3NegNotify : 1;
3826 tANI_U8 bReserved10 : 2;
3827} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003828
Jeff Johnson295189b2012-06-20 16:38:30 -07003829typedef PACKED_PRE struct PACKED_POST
3830{
3831 tHalMsgHeader header;
3832 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003833} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003834
3835/*---------------------------------------------------------------------------
3836 * WLAN_HAL_ENTER_UAPSD_REQ
3837 *--------------------------------------------------------------------------*/
3838typedef PACKED_PRE struct PACKED_POST
3839{
3840 tANI_U8 bkDeliveryEnabled:1;
3841 tANI_U8 beDeliveryEnabled:1;
3842 tANI_U8 viDeliveryEnabled:1;
3843 tANI_U8 voDeliveryEnabled:1;
3844 tANI_U8 bkTriggerEnabled:1;
3845 tANI_U8 beTriggerEnabled:1;
3846 tANI_U8 viTriggerEnabled:1;
3847 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003848 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003849} tUapsdReqParams, *tpUapsdReqParams;
3850
3851typedef PACKED_PRE struct PACKED_POST
3852{
3853 tHalMsgHeader header;
3854 tUapsdReqParams enterUapsdParams;
3855} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3856
3857/*---------------------------------------------------------------------------
3858 * WLAN_HAL_EXIT_UAPSD_REQ
3859 *--------------------------------------------------------------------------*/
3860typedef PACKED_PRE struct PACKED_POST
3861{
3862 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003863 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003864} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3865
3866/*---------------------------------------------------------------------------
3867 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3868 *--------------------------------------------------------------------------*/
3869#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3870#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3871
3872typedef PACKED_PRE struct PACKED_POST
3873{
3874 tANI_U8 ucPatternId; // Pattern ID
3875 // Pattern byte offset from beginning of the 802.11 packet to start of the
3876 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003877 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003878 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3879 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3880 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3881 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3882 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3883 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003884 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003885} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3886
3887typedef PACKED_PRE struct PACKED_POST
3888{
3889 tHalMsgHeader header;
3890 tHalWowlAddBcastPtrn ptrnParams;
3891} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003892
Jeff Johnsone7245742012-09-05 17:12:55 -07003893
3894
Jeff Johnson295189b2012-06-20 16:38:30 -07003895/*---------------------------------------------------------------------------
3896 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3897 *--------------------------------------------------------------------------*/
3898typedef PACKED_PRE struct PACKED_POST
3899{
3900 /* Pattern ID of the wakeup pattern to be deleted */
3901 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003902 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003903} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3904
3905typedef PACKED_PRE struct PACKED_POST
3906{
3907 tHalMsgHeader header;
3908 tHalWowlDelBcastPtrn ptrnParams;
3909} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3910
3911/*---------------------------------------------------------------------------
3912 * WLAN_HAL_ENTER_WOWL_REQ
3913 *--------------------------------------------------------------------------*/
3914typedef PACKED_PRE struct PACKED_POST
3915{
3916 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003917 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003918
3919 /* Magic pattern */
3920 tSirMacAddr magicPtrn;
3921
Jeff Johnson32d95a32012-09-10 13:15:23 -07003922 /* Enables/disables packet pattern filtering in firmware.
3923 Enabling this flag enables broadcast pattern matching
3924 in Firmware. If unicast pattern matching is also desired,
3925 ucUcastPatternFilteringEnable flag must be set tot true
3926 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003927 */
3928 tANI_U8 ucPatternFilteringEnable;
3929
Jeff Johnson32d95a32012-09-10 13:15:23 -07003930 /* Enables/disables unicast packet pattern filtering.
3931 This flag specifies whether we want to do pattern match
3932 on unicast packets as well and not just broadcast packets.
3933 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003934 (main controlling flag) is set to false
3935 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003936 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003937
Jeff Johnson32d95a32012-09-10 13:15:23 -07003938 /* This configuration is valid only when magicPktEnable=1.
3939 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003940 * Channel Switch Action Frame.
3941 */
3942 tANI_U8 ucWowChnlSwitchRcv;
3943
Jeff Johnson32d95a32012-09-10 13:15:23 -07003944 /* This configuration is valid only when magicPktEnable=1.
3945 * It requests hardware to wake up when it receives the
3946 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003947 */
3948 tANI_U8 ucWowDeauthRcv;
3949
Jeff Johnson32d95a32012-09-10 13:15:23 -07003950 /* This configuration is valid only when magicPktEnable=1.
3951 * It requests hardware to wake up when it receives the
3952 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003953 */
3954 tANI_U8 ucWowDisassocRcv;
3955
Jeff Johnson32d95a32012-09-10 13:15:23 -07003956 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003957 * It requests hardware to wake up when it has missed
3958 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003959 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003960 */
3961 tANI_U8 ucWowMaxMissedBeacons;
3962
Jeff Johnson32d95a32012-09-10 13:15:23 -07003963 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003964 * This is a timeout value in units of microsec. It requests
3965 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003966 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003967 */
3968 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003969
Jeff Johnson295189b2012-06-20 16:38:30 -07003970 /* This configuration directs the WoW packet filtering to look for EAP-ID
3971 * requests embedded in EAPOL frames and use this as a wake source.
3972 */
3973 tANI_U8 ucWoWEAPIDRequestEnable;
3974
3975 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3976 * requests and use this as a wake source.
3977 */
3978 tANI_U8 ucWoWEAPOL4WayEnable;
3979
3980 /* This configuration allows a host wakeup on an network scan offload match.
3981 */
3982 tANI_U8 ucWowNetScanOffloadMatch;
3983
3984 /* This configuration allows a host wakeup on any GTK rekeying error.
3985 */
3986 tANI_U8 ucWowGTKRekeyError;
3987
3988 /* This configuration allows a host wakeup on BSS connection loss.
3989 */
3990 tANI_U8 ucWoWBSSConnLoss;
3991
Jeff Johnsone7245742012-09-05 17:12:55 -07003992 tANI_U8 bssIdx;
3993
Jeff Johnson295189b2012-06-20 16:38:30 -07003994} tHalWowlEnterParams, *tpHalWowlEnterParams;
3995
3996typedef PACKED_PRE struct PACKED_POST
3997{
3998 tHalMsgHeader header;
3999 tHalWowlEnterParams enterWowlParams;
4000} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4001
4002/*---------------------------------------------------------------------------
4003 * WLAN_HAL_EXIT_WOWL_REQ
4004 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004005
Jeff Johnson295189b2012-06-20 16:38:30 -07004006typedef PACKED_PRE struct PACKED_POST
4007{
Jeff Johnsone7245742012-09-05 17:12:55 -07004008 tANI_U8 bssIdx;
4009
4010} tHalWowlExitParams, *tpHalWowlExitParams;
4011
4012typedef PACKED_PRE struct PACKED_POST
4013{
4014 tHalMsgHeader header;
4015 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004016} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4017
4018/*---------------------------------------------------------------------------
4019 * WLAN_HAL_GET_RSSI_REQ
4020 *--------------------------------------------------------------------------*/
4021typedef PACKED_PRE struct PACKED_POST
4022{
4023 tHalMsgHeader header;
4024} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4025
Anand Kumar012623a2013-01-11 17:00:00 -08004026typedef PACKED_PRE struct PACKED_POST
4027{
4028 /* Valid STA Idx for per STA stats request */
4029 tANI_U32 staId;
4030
4031}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4032
4033
4034/*---------------------------------------------------------------------------
4035 * WLAN_HAL_GET_ROAM_RSSI_REQ
4036 *--------------------------------------------------------------------------*/
4037typedef PACKED_PRE struct PACKED_POST
4038{
4039 tHalMsgHeader header;
4040 tHalRoamRssiReqParams roamRssiReqParams;
4041} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4042
4043
Jeff Johnson295189b2012-06-20 16:38:30 -07004044/*---------------------------------------------------------------------------
4045 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4046 *--------------------------------------------------------------------------*/
4047typedef PACKED_PRE struct PACKED_POST {
4048 tANI_U8 staidx; // STA index
4049 tANI_U8 ac; // Access Category
4050 tANI_U8 up; // User Priority
4051 tANI_U32 srvInterval; // Service Interval
4052 tANI_U32 susInterval; // Suspend Interval
4053 tANI_U32 delayInterval; // Delay Interval
4054} tUapsdInfo, tpUapsdInfo;
4055
4056typedef PACKED_PRE struct PACKED_POST
4057{
4058 tHalMsgHeader header;
4059 tUapsdInfo enableUapsdAcParams;
4060} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4061
4062/*---------------------------------------------------------------------------
4063 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4064 *--------------------------------------------------------------------------*/
4065typedef PACKED_PRE struct PACKED_POST {
4066 tANI_U8 setMcstBcstFilterSetting;
4067 tANI_U8 setMcstBcstFilter;
4068} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4069
4070typedef PACKED_PRE struct PACKED_POST
4071{
4072 tHalMsgHeader header;
4073 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4074} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4075
4076/*---------------------------------------------------------------------------
4077 * WLAN_HAL_ENTER_IMPS_RSP
4078 *--------------------------------------------------------------------------*/
4079typedef PACKED_PRE struct PACKED_POST
4080{
4081 /* success or failure */
4082 tANI_U32 status;
4083} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4084
4085typedef PACKED_PRE struct PACKED_POST
4086{
4087 tHalMsgHeader header;
4088 tHalEnterImpsRspParams enterImpsRspParams;
4089} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4090
4091/*---------------------------------------------------------------------------
4092 * WLAN_HAL_EXIT_IMPS_RSP
4093 *--------------------------------------------------------------------------*/
4094typedef PACKED_PRE struct PACKED_POST
4095{
4096 /* success or failure */
4097 tANI_U32 status;
4098} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4099
4100typedef PACKED_PRE struct PACKED_POST
4101{
4102 tHalMsgHeader header;
4103 tHalExitImpsRspParams exitImpsRspParams;
4104} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4105
4106/*---------------------------------------------------------------------------
4107 * WLAN_HAL_ENTER_BMPS_RSP
4108 *--------------------------------------------------------------------------*/
4109typedef PACKED_PRE struct PACKED_POST
4110{
4111 /* success or failure */
4112 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004113 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004114} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4115
4116typedef PACKED_PRE struct PACKED_POST
4117{
4118 tHalMsgHeader header;
4119 tHalEnterBmpsRspParams enterBmpsRspParams;
4120} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4121
4122/*---------------------------------------------------------------------------
4123 * WLAN_HAL_EXIT_BMPS_RSP
4124 *--------------------------------------------------------------------------*/
4125typedef PACKED_PRE struct PACKED_POST
4126{
4127 /* success or failure */
4128 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004129 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004130} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4131
4132typedef PACKED_PRE struct PACKED_POST
4133{
4134 tHalMsgHeader header;
4135 tHalExitBmpsRspParams exitBmpsRspParams;
4136} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4137
4138/*---------------------------------------------------------------------------
4139 * WLAN_HAL_ENTER_UAPSD_RSP
4140 *--------------------------------------------------------------------------*/
4141typedef PACKED_PRE struct PACKED_POST
4142{
4143 /* success or failure */
4144 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004145 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004146}tUapsdRspParams, *tpUapsdRspParams;
4147
4148typedef PACKED_PRE struct PACKED_POST
4149{
4150 tHalMsgHeader header;
4151 tUapsdRspParams enterUapsdRspParams;
4152} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4153
4154/*---------------------------------------------------------------------------
4155 * WLAN_HAL_EXIT_UAPSD_RSP
4156 *--------------------------------------------------------------------------*/
4157typedef PACKED_PRE struct PACKED_POST
4158{
4159 /* success or failure */
4160 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004161 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004162} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4163
4164typedef PACKED_PRE struct PACKED_POST
4165{
4166 tHalMsgHeader header;
4167 tHalExitUapsdRspParams exitUapsdRspParams;
4168} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4169
4170/*---------------------------------------------------------------------------
4171 * WLAN_HAL_RSSI_NOTIFICATION_IND
4172 *--------------------------------------------------------------------------*/
4173typedef PACKED_PRE struct PACKED_POST
4174{
4175 tANI_U32 bRssiThres1PosCross : 1;
4176 tANI_U32 bRssiThres1NegCross : 1;
4177 tANI_U32 bRssiThres2PosCross : 1;
4178 tANI_U32 bRssiThres2NegCross : 1;
4179 tANI_U32 bRssiThres3PosCross : 1;
4180 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004181 tANI_U32 avgRssi : 8;
4182 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004183} tHalRSSINotification, *tpHalRSSINotification;
4184
4185typedef PACKED_PRE struct PACKED_POST
4186{
4187 tHalMsgHeader header;
4188 tHalRSSINotification rssiNotificationParams;
4189} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4190
4191/*---------------------------------------------------------------------------
4192 * WLAN_HAL_GET_RSSI_RSP
4193 *--------------------------------------------------------------------------*/
4194typedef PACKED_PRE struct PACKED_POST
4195{
4196 /* success or failure */
4197 tANI_U32 status;
4198 tANI_S8 rssi;
4199} tHalGetRssiParams, *tpHalGetRspParams;
4200
4201typedef PACKED_PRE struct PACKED_POST
4202{
4203 tHalMsgHeader header;
4204 tHalGetRssiParams rssiRspParams;
4205} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4206
4207/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004208 * WLAN_HAL_GET_ROAM_RSSI_RSP
4209 *--------------------------------------------------------------------------*/
4210typedef PACKED_PRE struct PACKED_POST
4211{
4212 /* success or failure */
4213 tANI_U32 status;
4214
4215 tANI_U8 staId;
4216 tANI_S8 rssi;
4217} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4218
4219typedef PACKED_PRE struct PACKED_POST
4220{
4221 tHalMsgHeader header;
4222 tHalGetRoamRssiParams roamRssiRspParams;
4223} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4224
4225/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004226 * WLAN_HAL_ENTER_WOWL_RSP
4227 *--------------------------------------------------------------------------*/
4228typedef PACKED_PRE struct PACKED_POST
4229{
4230 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004231 tANI_U32 status;
4232 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004233} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4234
4235typedef PACKED_PRE struct PACKED_POST
4236{
4237 tHalMsgHeader header;
4238 tHalEnterWowlRspParams enterWowlRspParams;
4239} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4240
4241/*---------------------------------------------------------------------------
4242 * WLAN_HAL_EXIT_WOWL_RSP
4243 *--------------------------------------------------------------------------*/
4244typedef PACKED_PRE struct PACKED_POST
4245{
4246 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004247 tANI_U32 status;
4248 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004249} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4250
4251typedef PACKED_PRE struct PACKED_POST
4252{
4253 tHalMsgHeader header;
4254 tHalExitWowlRspParams exitWowlRspParams;
4255} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4256
4257/*---------------------------------------------------------------------------
4258 * WLAN_HAL_ADD_BCN_FILTER_RSP
4259 *--------------------------------------------------------------------------*/
4260typedef PACKED_PRE struct PACKED_POST
4261{
4262 /* success or failure */
4263 tANI_U32 status;
4264} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4265
4266typedef PACKED_PRE struct PACKED_POST
4267{
4268 tHalMsgHeader header;
4269 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4270} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4271
4272/*---------------------------------------------------------------------------
4273 * WLAN_HAL_REM_BCN_FILTER_RSP
4274 *--------------------------------------------------------------------------*/
4275typedef PACKED_PRE struct PACKED_POST
4276{
4277 /* success or failure */
4278 tANI_U32 status;
4279} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4280
4281typedef PACKED_PRE struct PACKED_POST
4282{
4283 tHalMsgHeader header;
4284 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4285} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4286
4287/*---------------------------------------------------------------------------
4288 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4289 *--------------------------------------------------------------------------*/
4290typedef PACKED_PRE struct PACKED_POST
4291{
4292 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004293 tANI_U32 status;
4294 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004295} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4296
4297typedef PACKED_PRE struct PACKED_POST
4298{
4299 tHalMsgHeader header;
4300 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4301} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4302
4303/*---------------------------------------------------------------------------
4304 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4305 *--------------------------------------------------------------------------*/
4306typedef PACKED_PRE struct PACKED_POST
4307{
4308 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004309 tANI_U32 status;
4310 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004311} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4312
4313typedef PACKED_PRE struct PACKED_POST
4314{
4315 tHalMsgHeader header;
4316 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4317} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4318
4319/*---------------------------------------------------------------------------
4320 * WLAN_HAL_HOST_OFFLOAD_RSP
4321 *--------------------------------------------------------------------------*/
4322typedef PACKED_PRE struct PACKED_POST
4323{
4324 /* success or failure */
4325 tANI_U32 status;
4326} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4327
4328typedef PACKED_PRE struct PACKED_POST
4329{
4330 tHalMsgHeader header;
4331 tHalHostOffloadRspParams hostOffloadRspParams;
4332} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4333
4334/*---------------------------------------------------------------------------
4335 * WLAN_HAL_KEEP_ALIVE_RSP
4336 *--------------------------------------------------------------------------*/
4337typedef PACKED_PRE struct PACKED_POST
4338{
4339 /* success or failure */
4340 tANI_U32 status;
4341} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4342
4343typedef PACKED_PRE struct PACKED_POST
4344{
4345 tHalMsgHeader header;
4346 tHalKeepAliveRspParams keepAliveRspParams;
4347} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4348
4349/*---------------------------------------------------------------------------
4350 * WLAN_HAL_SET_RSSI_THRESH_RSP
4351 *--------------------------------------------------------------------------*/
4352typedef PACKED_PRE struct PACKED_POST
4353{
4354 /* success or failure */
4355 tANI_U32 status;
4356} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4357
4358typedef PACKED_PRE struct PACKED_POST
4359{
4360 tHalMsgHeader header;
4361 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4362} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4363
4364/*---------------------------------------------------------------------------
4365 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4366 *--------------------------------------------------------------------------*/
4367typedef PACKED_PRE struct PACKED_POST
4368{
4369 /* success or failure */
4370 tANI_U32 status;
4371} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4372
4373typedef PACKED_PRE struct PACKED_POST
4374{
4375 tHalMsgHeader header;
4376 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4377} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4378
4379/*---------------------------------------------------------------------------
4380 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4381 *--------------------------------------------------------------------------*/
4382typedef PACKED_PRE struct PACKED_POST
4383{
4384 /* success or failure */
4385 tANI_U32 status;
4386} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4387
4388typedef PACKED_PRE struct PACKED_POST
4389{
4390 tHalMsgHeader header;
4391 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4392} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4393
4394/*---------------------------------------------------------------------------
4395 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4396 *--------------------------------------------------------------------------*/
4397
4398typedef PACKED_PRE struct PACKED_POST
4399{
4400 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4401 //the request has power constraints, this should be applied only to that session
4402 tSirMacAddr selfStaMacAddr;
4403 //In request,
4404 //power == MaxTx power to be used.
4405 tPowerdBm power;
4406
4407}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4408
4409
4410typedef PACKED_PRE struct PACKED_POST
4411{
4412 tHalMsgHeader header;
4413 tSetMaxTxPwrParams setMaxTxPwrParams;
4414}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4415
4416/*---------------------------------------------------------------------------
4417*WLAN_HAL_SET_MAX_TX_POWER_RSP
4418*--------------------------------------------------------------------------*/
4419
4420typedef PACKED_PRE struct PACKED_POST
4421{
4422 //power == tx power used for management frames.
4423 tPowerdBm power;
4424
4425 /* success or failure */
4426 tANI_U32 status;
4427}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4428
4429typedef PACKED_PRE struct PACKED_POST
4430{
4431 tHalMsgHeader header;
4432 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4433}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4434
4435/*---------------------------------------------------------------------------
4436 *WLAN_HAL_SET_TX_POWER_REQ
4437 *--------------------------------------------------------------------------*/
4438
4439typedef PACKED_PRE struct PACKED_POST
4440{
4441 /* TX Power in milli watts */
4442 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004443 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004444}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4445
4446
4447typedef PACKED_PRE struct PACKED_POST
4448{
4449 tHalMsgHeader header;
4450 tSetTxPwrReqParams setTxPwrReqParams;
4451}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4452
4453/*---------------------------------------------------------------------------
4454*WLAN_HAL_SET_TX_POWER_RSP
4455*--------------------------------------------------------------------------*/
4456
4457typedef PACKED_PRE struct PACKED_POST
4458{
4459 /* success or failure */
4460 tANI_U32 status;
4461}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4462
4463typedef PACKED_PRE struct PACKED_POST
4464{
4465 tHalMsgHeader header;
4466 tSetTxPwrRspParams setTxPwrRspParams;
4467}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4468
4469/*---------------------------------------------------------------------------
4470 *WLAN_HAL_GET_TX_POWER_REQ
4471 *--------------------------------------------------------------------------*/
4472
4473typedef PACKED_PRE struct PACKED_POST
4474{
4475 tANI_U8 staId;
4476}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4477
4478typedef PACKED_PRE struct PACKED_POST
4479{
4480 tHalMsgHeader header;
4481 tGetTxPwrReqParams getTxPwrReqParams;
4482}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4483
4484/*---------------------------------------------------------------------------
4485*WLAN_HAL_GET_TX_POWER_RSP
4486*--------------------------------------------------------------------------*/
4487
4488typedef PACKED_PRE struct PACKED_POST
4489{
4490 /* success or failure */
4491 tANI_U32 status;
4492
4493 /* TX Power in milli watts */
4494 tANI_U32 txPower;
4495}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4496
4497typedef PACKED_PRE struct PACKED_POST
4498{
4499 tHalMsgHeader header;
4500 tGetTxPwrRspParams getTxPwrRspParams;
4501}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4502
4503#ifdef WLAN_FEATURE_P2P
4504/*---------------------------------------------------------------------------
4505 *WLAN_HAL_SET_P2P_GONOA_REQ
4506 *--------------------------------------------------------------------------*/
4507
4508typedef PACKED_PRE struct PACKED_POST
4509{
4510 tANI_U8 opp_ps;
4511 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004512 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004513 tANI_U32 duration;
4514 tANI_U32 interval;
4515 tANI_U32 single_noa_duration;
4516 tANI_U8 psSelection;
4517}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4518
4519
4520typedef PACKED_PRE struct PACKED_POST
4521{
4522 tHalMsgHeader header;
4523 tSetP2PGONOAParams setP2PGONOAParams;
4524}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4525
4526/*---------------------------------------------------------------------------
4527*WLAN_HAL_SET_P2P_GONOA_RSP
4528*--------------------------------------------------------------------------*/
4529
4530typedef PACKED_PRE struct PACKED_POST
4531{
4532 /* success or failure */
4533 tANI_U32 status;
4534}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4535
4536typedef PACKED_PRE struct PACKED_POST
4537{
4538 tHalMsgHeader header;
4539 tSetP2PGONOARspParams setP2PGONOARspParams;
4540}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4541#endif
4542
4543/*---------------------------------------------------------------------------
4544 *WLAN_HAL_ADD_SELF_STA_REQ
4545 *--------------------------------------------------------------------------*/
4546
4547typedef PACKED_PRE struct PACKED_POST
4548{
4549 tSirMacAddr selfMacAddr;
4550 tANI_U32 status;
4551}tAddStaSelfParams, *tpAddStaSelfParams;
4552
4553
4554typedef PACKED_PRE struct PACKED_POST
4555{
4556 tHalMsgHeader header;
4557 tAddStaSelfParams addStaSelfParams;
4558}tAddStaSelfReq, *tpAddStaSelfReq;
4559
4560/*---------------------------------------------------------------------------
4561*WLAN_HAL_ADD_SELF_STA_RSP
4562*--------------------------------------------------------------------------*/
4563
4564typedef PACKED_PRE struct PACKED_POST
4565{
4566 /* success or failure */
4567 tANI_U32 status;
4568
4569 /*Self STA Index */
4570 tANI_U8 selfStaIdx;
4571
4572 /* DPU Index (IGTK, PTK, GTK all same) */
4573 tANI_U8 dpuIdx;
4574
4575 /* DPU Signature */
4576 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004577
Jeff Johnson295189b2012-06-20 16:38:30 -07004578}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4579
4580typedef PACKED_PRE struct PACKED_POST
4581{
4582 tHalMsgHeader header;
4583 tAddStaSelfRspParams addStaSelfRspParams;
4584}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4585
4586
4587/*---------------------------------------------------------------------------
4588 WLAN_HAL_DEL_STA_SELF_REQ
4589---------------------------------------------------------------------------*/
4590
4591typedef PACKED_PRE struct PACKED_POST
4592{
4593 tSirMacAddr selfMacAddr;
4594
4595}tDelStaSelfParams, *tpDelStaSelfParams;
4596
4597typedef PACKED_PRE struct PACKED_POST
4598{
4599 tHalMsgHeader header;
4600 tDelStaSelfParams delStaSelfParams;
4601} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4602
4603
4604/*---------------------------------------------------------------------------
4605 WLAN_HAL_DEL_STA_SELF_RSP
4606---------------------------------------------------------------------------*/
4607
4608typedef PACKED_PRE struct PACKED_POST
4609{
4610 /*success or failure */
4611 tANI_U32 status;
4612
4613 tSirMacAddr selfMacAddr;
4614}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4615
4616typedef PACKED_PRE struct PACKED_POST
4617{
4618 tHalMsgHeader header;
4619 tDelStaSelfRspParams delStaSelfRspParams;
4620} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4621
4622
4623#ifdef WLAN_FEATURE_VOWIFI_11R
4624
4625/*---------------------------------------------------------------------------
4626 *WLAN_HAL_AGGR_ADD_TS_REQ
4627 *--------------------------------------------------------------------------*/
4628
4629typedef PACKED_PRE struct PACKED_POST
4630{
4631 /* Station Index */
4632 tANI_U16 staIdx;
4633
4634 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4635 /* This will carry the bitmap with the bit positions representing different AC.s*/
4636 tANI_U16 tspecIdx;
4637
4638 /* Tspec info per AC To program TPE with required parameters */
4639 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4640
4641 /* U-APSD Flags: 1b per AC. Encoded as follows:
4642 b7 b6 b5 b4 b3 b2 b1 b0 =
4643 X X X X BE BK VI VO */
4644 tANI_U8 uAPSD;
4645
4646 /* These parameters are for all the access categories */
4647 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4648 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4649 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4650
4651}tAggrAddTsParams, *tpAggrAddTsParams;
4652
4653
4654typedef PACKED_PRE struct PACKED_POST
4655{
4656 tHalMsgHeader header;
4657 tAggrAddTsParams aggrAddTsParam;
4658}tAggrAddTsReq, *tpAggrAddTsReq;
4659
4660/*---------------------------------------------------------------------------
4661*WLAN_HAL_AGGR_ADD_TS_RSP
4662*--------------------------------------------------------------------------*/
4663
4664typedef PACKED_PRE struct PACKED_POST
4665{
4666 /* success or failure */
4667 tANI_U32 status0;
4668 /* FIXME PRIMA for future use for 11R */
4669 tANI_U32 status1;
4670}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4671
4672typedef PACKED_PRE struct PACKED_POST
4673{
4674 tHalMsgHeader header;
4675 tAggrAddTsRspParams aggrAddTsRspParam;
4676}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4677
4678#endif
4679
4680/*---------------------------------------------------------------------------
4681 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4682 *--------------------------------------------------------------------------*/
4683typedef PACKED_PRE struct PACKED_POST
4684{
4685 tANI_U8 isAppsCpuAwake;
4686} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4687
4688typedef PACKED_PRE struct PACKED_POST
4689{
4690 tHalMsgHeader header;
4691 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4692} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4693
4694/*---------------------------------------------------------------------------
4695 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4696 *--------------------------------------------------------------------------*/
4697typedef PACKED_PRE struct PACKED_POST
4698{
4699 /* success or failure */
4700 tANI_U32 status;
4701} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4702
4703typedef PACKED_PRE struct PACKED_POST
4704{
4705 tHalMsgHeader header;
4706 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4707} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4708/*---------------------------------------------------------------------------
4709 * WLAN_HAL_DUMP_COMMAND_REQ
4710 *--------------------------------------------------------------------------*/
4711
4712typedef PACKED_PRE struct PACKED_POST
4713{
4714 tANI_U32 argument1;
4715 tANI_U32 argument2;
4716 tANI_U32 argument3;
4717 tANI_U32 argument4;
4718 tANI_U32 argument5;
4719
4720}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4721
4722typedef PACKED_PRE struct PACKED_POST
4723{
4724 tHalMsgHeader header;
4725 tHalDumpCmdReqParams dumpCmdReqParams;
4726} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4727
4728/*---------------------------------------------------------------------------
4729 * WLAN_HAL_DUMP_COMMAND_RSP
4730 *--------------------------------------------------------------------------*/
4731
4732typedef PACKED_PRE struct PACKED_POST
4733{
4734 /* success or failure */
4735 tANI_U32 status;
4736 /*Length of the responce message*/
4737 tANI_U32 rspLength;
4738 /*FiXME: Currently considering the the responce will be less than 100bytes */
4739 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004740
Jeff Johnson295189b2012-06-20 16:38:30 -07004741} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4742
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 tHalMsgHeader header;
4746 tHalDumpCmdRspParams dumpCmdRspParams;
4747} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4748
4749/*---------------------------------------------------------------------------
4750 *WLAN_HAL_COEX_IND
4751 *-------------------------------------------------------------------------*/
4752#define WLAN_COEX_IND_DATA_SIZE (4)
4753#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4754#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004755#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
4756#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Jeff Johnson295189b2012-06-20 16:38:30 -07004757
4758typedef PACKED_PRE struct PACKED_POST
4759{
4760 /*Coex Indication Type*/
4761 tANI_U32 coexIndType;
4762
4763 /*Coex Indication Data*/
4764 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4765}tCoexIndParams,*tpCoexIndParams;
4766
4767typedef PACKED_PRE struct PACKED_POST
4768{
4769 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004770 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004771}tCoexIndMsg, *tpCoexIndMsg;
4772
4773/*---------------------------------------------------------------------------
4774 *WLAN_HAL_OTA_TX_COMPL_IND
4775 *-------------------------------------------------------------------------*/
4776
4777typedef PACKED_PRE struct PACKED_POST
4778{
4779 /*Tx Complete Indication Success or Failure*/
4780 tANI_U32 status;
4781}tTxComplParams,*tpTxComplParams;
4782
4783typedef PACKED_PRE struct PACKED_POST
4784{
4785 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004786 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004787}tTxComplIndMsg, *tpTxComplIndMsg;
4788
4789/*---------------------------------------------------------------------------
4790 * WLAN_HAL_HOST_SUSPEND_IND
4791 *-------------------------------------------------------------------------*/
4792
4793typedef PACKED_PRE struct PACKED_POST
4794{
4795 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004796 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004797}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4798
4799typedef PACKED_PRE struct PACKED_POST
4800{
4801 tHalMsgHeader header;
4802 tHalWlanHostSuspendIndParam suspendIndParams;
4803}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4804
4805/*---------------------------------------------------------------------------
4806 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4807 *-------------------------------------------------------------------------*/
4808
4809typedef PACKED_PRE struct PACKED_POST
4810{
4811 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004812 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004813}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4814
4815typedef PACKED_PRE struct PACKED_POST
4816{
4817 tHalMsgHeader header;
4818 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4819}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4820
4821#ifdef WLAN_FEATURE_P2P
4822/*---------------------------------------------------------------------------
4823 *WLAN_HAL_NOA_ATTR_IND
4824 *-------------------------------------------------------------------------*/
4825
4826typedef PACKED_PRE struct PACKED_POST
4827{
4828 tANI_U8 index ;
4829 tANI_U8 oppPsFlag ;
4830 tANI_U16 ctWin ;
4831
4832 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004833 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004834 tANI_U32 uNoa1Duration;
4835 tANI_U32 uNoa1Interval;
4836 tANI_U32 uNoa1StartTime;
4837
4838 tANI_U16 uNoa2IntervalCnt;
4839 tANI_U16 rsvd2;
4840 tANI_U32 uNoa2Duration;
4841 tANI_U32 uNoa2Interval;
4842 tANI_U32 uNoa2StartTime;
4843
4844 tANI_U32 status;
4845}tNoaAttrIndParams, *tpNoaAttrIndParams;
4846
4847typedef PACKED_PRE struct PACKED_POST
4848{
4849 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004850 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004851}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004852
4853/*---------------------------------------------------------------------------
4854 *WLAN_HAL_NOA_START_IND
4855 *-------------------------------------------------------------------------*/
4856
4857typedef PACKED_PRE struct PACKED_POST
4858{
4859 tANI_U32 status;
4860 tANI_U32 bssIdx;
4861}tNoaStartIndParams, *tpNoaStartIndParams;
4862
4863typedef PACKED_PRE struct PACKED_POST
4864{
4865 tHalMsgHeader header;
4866 tNoaStartIndParams noaStartIndParams;
4867}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004868#endif
4869
4870/*---------------------------------------------------------------------------
4871 * WLAN_HAL_HOST_RESUME_REQ
4872 *-------------------------------------------------------------------------*/
4873
4874typedef PACKED_PRE struct PACKED_POST
4875{
4876 tANI_U8 configuredMcstBcstFilterSetting;
4877}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4878
4879typedef PACKED_PRE struct PACKED_POST
4880{
4881 tHalMsgHeader header;
4882 tHalWlanHostResumeReqParam resumeReqParams;
4883}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4884
4885/*---------------------------------------------------------------------------
4886 * WLAN_HAL_HOST_RESUME_RSP
4887 *--------------------------------------------------------------------------*/
4888typedef PACKED_PRE struct PACKED_POST
4889{
4890 /* success or failure */
4891 tANI_U32 status;
4892} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4893
4894typedef PACKED_PRE struct PACKED_POST
4895{
4896 tHalMsgHeader header;
4897 tHalHostResumeRspParams hostResumeRspParams;
4898} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4899
Anand Kumar012623a2013-01-11 17:00:00 -08004900typedef PACKED_PRE struct PACKED_POST
4901{
4902 tANI_U16 staIdx;
4903 // Peer MAC Address, whose BA session has timed out
4904 tSirMacAddr peerMacAddr;
4905 // TID for which a BA session timeout is being triggered
4906 tANI_U8 baTID;
4907 // DELBA direction
4908 // 1 - Originator
4909 // 0 - Recipient
4910 tANI_U8 baDirection;
4911 tANI_U32 reasonCode;
4912 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4913} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4914
4915typedef PACKED_PRE struct PACKED_POST
4916{
4917 tHalMsgHeader header;
4918 tHalWlanDelBaIndMsg hostdelBaParam;
4919} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4920
Jeff Johnson295189b2012-06-20 16:38:30 -07004921/*---------------------------------------------------------------------------
4922 *PNO Messages
4923 *-------------------------------------------------------------------------*/
4924/*Max number of channels that a network can be found on*/
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07004925#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07004926
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304927/*Max number of channels that a network can be found on*/
4928#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4929
Jeff Johnson295189b2012-06-20 16:38:30 -07004930/*Maximum numbers of networks supported by PNO*/
4931#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4932
4933/*The number of scan time intervals that can be programmed into PNO*/
4934#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4935
4936/*Maximum size of the probe template*/
4937#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4938
Jeff Johnson32d95a32012-09-10 13:15:23 -07004939/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004940 Immediate - scanning will start immediately and PNO procedure will
4941 be repeated based on timer
4942 Suspend - scanning will start at suspend
4943 Resume - scanning will start on system resume*/
4944typedef enum
4945{
4946 ePNO_MODE_IMMEDIATE,
4947 ePNO_MODE_ON_SUSPEND,
4948 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05304949 ePNO_MODE_DELAY,
4950 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07004951 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4952} ePNOMode;
4953
4954/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004955typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004956{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004957 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004958 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004959
Jeff Johnson295189b2012-06-20 16:38:30 -07004960 // Upper layer authentication types
4961 eAUTH_TYPE_WPA = 2,
4962 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004963
Jeff Johnson295189b2012-06-20 16:38:30 -07004964 eAUTH_TYPE_RSN = 4,
4965 eAUTH_TYPE_RSN_PSK = 5,
4966 eAUTH_TYPE_FT_RSN = 6,
4967 eAUTH_TYPE_FT_RSN_PSK = 7,
4968 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4969 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004970 eAUTH_TYPE_CCKM_WPA = 10,
4971 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004972
Jeff Johnson295189b2012-06-20 16:38:30 -07004973 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4974
4975}tAuthType;
4976
4977/* Encryption type */
4978typedef enum eEdType
4979{
4980 eED_ANY = 0,
4981 eED_NONE = 1,
4982 eED_WEP = 2,
4983 eED_TKIP = 3,
4984 eED_CCMP = 4,
4985 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004986
Jeff Johnson295189b2012-06-20 16:38:30 -07004987 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4988} tEdType;
4989
4990/* SSID broadcast type */
4991typedef enum eSSIDBcastType
4992{
4993 eBCAST_UNKNOWN = 0,
4994 eBCAST_NORMAL = 1,
4995 eBCAST_HIDDEN = 2,
4996
4997 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4998} tSSIDBcastType;
4999
Jeff Johnson32d95a32012-09-10 13:15:23 -07005000/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005001 The network description for which PNO will have to look for
5002*/
5003typedef PACKED_PRE struct PACKED_POST
5004{
5005 /*SSID of the BSS*/
5006 tSirMacSSid ssId;
5007
5008 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005009 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005010
5011 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005012 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005013
Jeff Johnson32d95a32012-09-10 13:15:23 -07005014 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005015 0 - if all channels */
5016 tANI_U8 ucChannelCount;
5017 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5018
5019 /*Indicates the RSSI threshold for the network to be considered*/
5020 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005021}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005022
5023typedef PACKED_PRE struct PACKED_POST
5024{
5025 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005026 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005027
Jeff Johnson32d95a32012-09-10 13:15:23 -07005028 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005029 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005030 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005031
Jeff Johnson32d95a32012-09-10 13:15:23 -07005032 /*e.g: 2 3
5033 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005034 - it will wait 2s between consecutive scans for 3 times
5035 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005036}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005037
Jeff Johnson32d95a32012-09-10 13:15:23 -07005038/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005039 The network parameters to be sent to the PNO algorithm
5040*/
5041typedef PACKED_PRE struct PACKED_POST
5042{
5043 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005044 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005045
Jeff Johnson32d95a32012-09-10 13:15:23 -07005046 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005047 two consecutive scan procedures
5048 If the desired is for a uniform timer that fires always at the exact same
5049 interval - one single value is to be set
5050 If there is a desire for a more complex - telescopic like timer multiple
5051 values can be set - once PNO reaches the end of the array it will
5052 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005053 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005054
5055}tScanTimersType;
5056
5057typedef PACKED_PRE struct PACKED_POST {
5058
5059 /*Enable PNO*/
5060 tANI_U32 enable;
5061
5062 /*Immediate, On Suspend, On Resume*/
5063 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005064
Jeff Johnson295189b2012-06-20 16:38:30 -07005065 /*Number of networks sent for PNO*/
5066 tANI_U32 ucNetworksCount;
5067
5068 /*The networks that PNO needs to look for*/
5069 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5070
5071 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005072 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005073
5074 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005075 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005076 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5077
5078 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005079 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005080 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5081
5082} tPrefNetwListParams, * tpPrefNetwListParams;
5083
5084/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005085 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005086*/
5087typedef PACKED_PRE struct PACKED_POST
5088{
5089 tHalMsgHeader header;
5090 tPrefNetwListParams prefNetwListParams;
5091} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5092
5093
Jeff Johnson32d95a32012-09-10 13:15:23 -07005094/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005095 The network description for which PNO will have to look for
5096*/
5097typedef PACKED_PRE struct PACKED_POST
5098{
5099 /*SSID of the BSS*/
5100 tSirMacSSid ssId;
5101
5102 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005103 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005104
5105 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005106 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005107
5108 /*SSID broadcast type, normal, hidden or unknown*/
5109 tSSIDBcastType bcastNetworkType;
5110
Jeff Johnson32d95a32012-09-10 13:15:23 -07005111 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005112 0 - if all channels */
5113 tANI_U8 ucChannelCount;
5114 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5115
5116 /*Indicates the RSSI threshold for the network to be considered*/
5117 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005118}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005119
5120typedef PACKED_PRE struct PACKED_POST {
5121
5122 /*Enable PNO*/
5123 tANI_U32 enable;
5124
5125 /*Immediate, On Suspend, On Resume*/
5126 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005127
Jeff Johnson295189b2012-06-20 16:38:30 -07005128 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005129 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005130
5131 /*The networks that PNO needs to look for*/
5132 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5133
5134 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005135 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005136
5137 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005138 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005139 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5140
5141 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005142 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005143 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5144
5145} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5146
5147/*
5148 Preferred network list request new
5149*/
5150typedef PACKED_PRE struct PACKED_POST
5151{
5152 tHalMsgHeader header;
5153 tPrefNetwListParamsNew prefNetwListParams;
5154} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5155
5156/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005157 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005158*/
5159typedef PACKED_PRE struct PACKED_POST
5160{
5161 tHalMsgHeader header;
5162
Jeff Johnson32d95a32012-09-10 13:15:23 -07005163 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005164 the request and will start scanning*/
5165 tANI_U32 status;
5166} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5167
5168/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005169 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005170*/
5171typedef PACKED_PRE struct PACKED_POST {
5172
5173 /*Network that was found with the highest RSSI*/
5174 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005175
Jeff Johnson295189b2012-06-20 16:38:30 -07005176 /*Indicates the RSSI */
5177 tANI_U8 rssi;
5178
Gopichand Nakkalaa14f43b2013-05-14 00:08:53 +05305179 tANI_U16 frameLength;
5180
Jeff Johnson295189b2012-06-20 16:38:30 -07005181} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5182
5183/*
5184 Preferred network found indication
5185*/
5186typedef PACKED_PRE struct PACKED_POST {
5187
5188 tHalMsgHeader header;
5189 tPrefNetwFoundParams prefNetwFoundParams;
5190} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5191
5192
5193typedef PACKED_PRE struct PACKED_POST {
5194
5195 /*RSSI Threshold*/
5196 tANI_U8 ucRssiThreshold;
5197
5198} tRssiFilterParams, * tpRssiFilterParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005199#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5200typedef PACKED_PRE struct PACKED_POST
5201{
5202 tSirMacSSid ssId;
5203 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5204 tANI_U32 authentication;
5205 tEdType encryption;
5206 tEdType mcencryption;
5207 tANI_U8 ChannelCount;
5208 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5209}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005210
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005211typedef PACKED_PRE struct PACKED_POST
5212{
5213 tANI_U8 mdiePresent;
5214 tANI_U16 mobilityDomain;
5215}tMobilityDomainInfo;
5216
5217typedef PACKED_PRE struct PACKED_POST {
5218 eAniBoolean RoamScanOffloadEnabled;
5219 tANI_S8 LookupThreshold;
5220 tANI_U8 RoamRssiDiff;
5221 tANI_U8 ChannelCacheType;
5222 tANI_U8 Command;
5223 tANI_U8 StartScanReason;
5224 tANI_U16 NeighborScanTimerPeriod;
5225 tANI_U16 NeighborRoamScanRefreshPeriod;
5226 tANI_U16 NeighborScanChannelMinTime;
5227 tANI_U16 NeighborScanChannelMaxTime;
5228 tANI_U16 EmptyRefreshScanPeriod;
5229 tANI_U8 ValidChannelCount;
5230 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5231 eAniBoolean IsCCXEnabled;
5232
5233 tANI_U16 us24GProbeSize;
5234 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5235 tANI_U16 us5GProbeSize;
5236 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5237 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005238 tANI_U8 nProbes;
5239 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005240 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5241 tRoamNetworkType ConnectedNetwork;
5242 tMobilityDomainInfo MDID;
5243} tRoamCandidateListParams, * tpRoamCandidateListParams;
5244
5245typedef PACKED_PRE struct PACKED_POST
5246{
5247 tHalMsgHeader header;
5248 tRoamCandidateListParams RoamScanOffloadNetwListParams;
5249} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5250
5251typedef PACKED_PRE struct PACKED_POST
5252{
5253 tHalMsgHeader header;
5254
5255 /*status of the request - just to indicate that PNO has acknowledged
5256 * the request and will start scanning*/
5257 tANI_U32 status;
5258} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5259#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005260/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005261 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005262*/
5263typedef PACKED_PRE struct PACKED_POST
5264{
5265 tHalMsgHeader header;
5266 tRssiFilterParams prefRSSIFilterParams;
5267} tSetRssiFilterReq, *tpSetRssiFilterReq;
5268
5269/*
5270 Set RSSI filter resp
5271*/
5272typedef PACKED_PRE struct PACKED_POST{
5273 tHalMsgHeader header;
5274 /*status of the request */
5275 tANI_U32 status;
5276} tSetRssiFilterResp, *tpSetRssiFilterResp;
5277/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005278 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005279*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005280typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005281{
5282
5283 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005284 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005285
5286 /*Lets PNO know that host has determined the regulatory domain*/
5287 tANI_U8 b11dResolved;
5288
5289 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005290 tANI_U8 ucChannelCount;
5291 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005292
5293 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005294 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005295
5296 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005297 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005298
5299 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005300 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005301
5302 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005303 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005304
5305 /*Cb State*/
5306 ePhyChanBondState cbState;
5307
5308} tUpdateScanParams, * tpUpdateScanParams;
5309
5310/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305311 Update scan params
5312*/
5313typedef PACKED_PRE struct PACKED_POST
5314{
5315
5316 /*Host setting for 11d*/
5317 tANI_U8 b11dEnabled;
5318
5319 /*Lets PNO know that host has determined the regulatory domain*/
5320 tANI_U8 b11dResolved;
5321
5322 /*Channels on which PNO is allowed to scan*/
5323 tANI_U8 ucChannelCount;
5324 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5325
5326 /*Minimum channel time*/
5327 tANI_U16 usActiveMinChTime;
5328
5329 /*Maximum channel time*/
5330 tANI_U16 usActiveMaxChTime;
5331
5332 /*Minimum channel time*/
5333 tANI_U16 usPassiveMinChTime;
5334
5335 /*Maximum channel time*/
5336 tANI_U16 usPassiveMaxChTime;
5337
5338 /*Cb State*/
5339 ePhyChanBondState cbState;
5340
5341} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5342
5343/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005344 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005345 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005346*/
5347typedef PACKED_PRE struct PACKED_POST{
5348
5349 tHalMsgHeader header;
5350 tUpdateScanParams scanParams;
5351} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5352
5353/*
5354 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005355 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005356*/
5357typedef PACKED_PRE struct PACKED_POST{
5358
5359 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305360 tUpdateScanParamsEx scanParams;
5361} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5362
5363/*
5364 Update scan params - sent from host to PNO
5365 to be used during PNO scanning
5366*/
5367typedef PACKED_PRE struct PACKED_POST{
5368
5369 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005370
5371 /*status of the request */
5372 tANI_U32 status;
5373
5374} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5375
5376/*---------------------------------------------------------------------------
5377 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5378 *--------------------------------------------------------------------------*/
5379typedef PACKED_PRE struct PACKED_POST
5380{
5381 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5382 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5383 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5384 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5385} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5386
5387typedef PACKED_PRE struct PACKED_POST
5388{
5389 tHalMsgHeader header;
5390 tHalTxPerTrackingReqParam txPerTrackingParams;
5391} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5392
5393/*---------------------------------------------------------------------------
5394 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5395 *--------------------------------------------------------------------------*/
5396typedef PACKED_PRE struct PACKED_POST
5397{
5398 /* success or failure */
5399 tANI_U32 status;
5400} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5401
5402typedef PACKED_PRE struct PACKED_POST
5403{
5404 tHalMsgHeader header;
5405 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5406} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5407
5408/*---------------------------------------------------------------------------
5409 * WLAN_HAL_TX_PER_HIT_IND
5410 *--------------------------------------------------------------------------*/
5411typedef PACKED_PRE struct PACKED_POST
5412{
5413 tHalMsgHeader header;
5414}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5415
5416/*---------------------------------------------------------------------------
5417 *******************Packet Filtering Definitions Begin*******************
5418 *--------------------------------------------------------------------------*/
5419#define HAL_PROTOCOL_DATA_LEN 8
5420#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5421#define HAL_MAX_NUM_FILTERS 20
5422#define HAL_MAX_CMP_PER_FILTER 10
5423
5424typedef enum
5425{
5426 HAL_RCV_FILTER_TYPE_INVALID,
5427 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5428 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5429 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5430}tHalReceivePacketFilterType;
5431
Jeff Johnson32d95a32012-09-10 13:15:23 -07005432typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005433{
5434 HAL_FILTER_PROTO_TYPE_INVALID,
5435 HAL_FILTER_PROTO_TYPE_MAC,
5436 HAL_FILTER_PROTO_TYPE_ARP,
5437 HAL_FILTER_PROTO_TYPE_IPV4,
5438 HAL_FILTER_PROTO_TYPE_IPV6,
5439 HAL_FILTER_PROTO_TYPE_UDP,
5440 HAL_FILTER_PROTO_TYPE_MAX
5441}tHalRcvPktFltProtocolType;
5442
Jeff Johnson32d95a32012-09-10 13:15:23 -07005443typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005444{
5445 HAL_FILTER_CMP_TYPE_INVALID,
5446 HAL_FILTER_CMP_TYPE_EQUAL,
5447 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5448 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5449 HAL_FILTER_CMP_TYPE_MAX
5450}tHalRcvPktFltCmpFlagType;
5451
Jeff Johnson32d95a32012-09-10 13:15:23 -07005452typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005453{
5454 tANI_U8 protocolLayer;
5455 tANI_U8 cmpFlag;
5456 tANI_U16 dataLength; /* Length of the data to compare */
5457 tANI_U8 dataOffset; /* from start of the respective frame header */
5458 tANI_U8 reserved; /* Reserved field */
5459 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5460 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5461}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5462
5463typedef PACKED_PRE struct PACKED_POST
5464{
5465 tANI_U8 filterId;
5466 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005467 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005468 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005469 tHalRcvPktFilterParams paramsData[1];
5470}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5471
5472typedef PACKED_PRE struct PACKED_POST
5473{
Jeff Johnsone7245742012-09-05 17:12:55 -07005474 tANI_U8 filterId;
5475 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005476 tANI_U8 numParams;
5477 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005478 tANI_U8 bssIdx;
5479 tHalRcvPktFilterParams paramsData[1];
5480}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5481
5482typedef PACKED_PRE struct PACKED_POST
5483{
Jeff Johnson295189b2012-06-20 16:38:30 -07005484 tHalMsgHeader header;
5485 tHalRcvPktFilterCfgType pktFilterCfg;
5486} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5487
Jeff Johnsone7245742012-09-05 17:12:55 -07005488typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005489{
5490 tANI_U8 dataOffset; /* from start of the respective frame header */
5491 tANI_U32 cMulticastAddr;
5492 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005493 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005494} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5495
5496typedef PACKED_PRE struct PACKED_POST
5497{
5498 /* success or failure */
5499 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005500 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005501} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5502
5503typedef PACKED_PRE struct PACKED_POST
5504{
5505 tHalMsgHeader header;
5506 tHalSetPktFilterRspParams pktFilterRspParams;
5507} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5508
Jeff Johnsone7245742012-09-05 17:12:55 -07005509typedef PACKED_PRE struct PACKED_POST
5510{
5511 tANI_U8 bssIdx;
5512} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005513
5514typedef PACKED_PRE struct PACKED_POST
5515{
5516 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005517 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005518} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5519
Jeff Johnsone7245742012-09-05 17:12:55 -07005520
Jeff Johnson295189b2012-06-20 16:38:30 -07005521typedef PACKED_PRE struct PACKED_POST
5522{
5523 tANI_U8 filterId;
5524 tANI_U32 matchCnt;
5525} tHalRcvFltPktMatchCnt;
5526typedef PACKED_PRE struct PACKED_POST
5527{
5528 /* Success or Failure */
5529 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005530 tANI_U32 matchCnt;
5531 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005532 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005533} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5534
5535typedef PACKED_PRE struct PACKED_POST
5536{
5537 tHalMsgHeader header;
5538 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5539} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5540
5541typedef PACKED_PRE struct PACKED_POST
5542{
5543 tANI_U32 status; /* only valid for response message */
5544 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005545 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005546}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5547
5548typedef PACKED_PRE struct PACKED_POST
5549{
5550 tHalMsgHeader header;
5551 tHalRcvFltPktClearParam filterClearParam;
5552} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5553
5554typedef PACKED_PRE struct PACKED_POST
5555{
5556 tHalMsgHeader header;
5557 tHalRcvFltPktClearParam filterClearParam;
5558} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5559
5560typedef PACKED_PRE struct PACKED_POST
5561{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005562 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005563 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005564}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5565
5566typedef PACKED_PRE struct PACKED_POST
5567{
5568 tHalMsgHeader header;
5569 tHalRcvFltMcAddrListType mcAddrList;
5570} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5571
5572typedef PACKED_PRE struct PACKED_POST
5573{
5574 tHalMsgHeader header;
5575 tHalRcvFltPktSetMcListRspType rspParam;
5576} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5577
5578
5579/*---------------------------------------------------------------------------
5580 *******************Packet Filtering Definitions End*******************
5581 *--------------------------------------------------------------------------*/
5582
5583typedef PACKED_PRE struct PACKED_POST
5584{
5585 /* Ignore DTIM */
5586 tANI_U32 uIgnoreDTIM;
5587
5588 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005589 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005590
5591 /* Listen Interval */
5592 tANI_U32 uListenInterval;
5593
5594 /* Broadcast Multicast Filter */
5595 tANI_U32 uBcastMcastFilter;
5596
5597 /* Beacon Early Termination */
5598 tANI_U32 uEnableBET;
5599
5600 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005601 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07005602
5603 /* MAX LI for modulated DTIM */
5604 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07005605}tSetPowerParamsType, *tpSetPowerParamsType;
5606
5607typedef PACKED_PRE struct PACKED_POST
5608{
5609 tHalMsgHeader header;
5610 tSetPowerParamsType powerParams;
5611} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5612
5613typedef PACKED_PRE struct PACKED_POST{
5614
5615 tHalMsgHeader header;
5616
5617 /*status of the request */
5618 tANI_U32 status;
5619
5620} tSetPowerParamsResp, *tpSetPowerParamsResp;
5621
5622/*---------------------------------------------------------------------------
5623 ****************Capability bitmap exchange definitions and macros starts*************
5624 *--------------------------------------------------------------------------*/
5625
Anand Kumar012623a2013-01-11 17:00:00 -08005626typedef enum {
5627 MCC = 0,
5628 P2P = 1,
5629 DOT11AC = 2,
5630 SLM_SESSIONIZATION = 3,
5631 DOT11AC_OPMODE = 4,
5632 SAP32STA = 5,
5633 TDLS = 6,
5634 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5635 WLANACTIVE_OFFLOAD = 8,
5636 BEACON_OFFLOAD = 9,
5637 SCAN_OFFLOAD = 10,
5638 ROAM_OFFLOAD = 11,
5639 BCN_MISS_OFFLOAD = 12,
5640 STA_POWERSAVE = 13,
5641 STA_ADVANCED_PWRSAVE = 14,
5642 AP_UAPSD = 15,
5643 AP_DFS = 16,
5644 BLOCKACK = 17,
5645 PHY_ERR = 18,
5646 BCN_FILTER = 19,
5647 RTT = 20,
5648 RATECTRL = 21,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005649 WOW = 22,
5650 WLAN_ROAM_SCAN_OFFLOAD = 23,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -07005651 //MAX_FEATURE_SUPPORTED = 128
Anand Kumar012623a2013-01-11 17:00:00 -08005652} placeHolderInCapBitmap;
5653
Jeff Johnson295189b2012-06-20 16:38:30 -07005654typedef PACKED_PRE struct PACKED_POST{
5655
5656 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005657} tWlanFeatCaps, *tpWlanFeatCaps;
5658
5659typedef PACKED_PRE struct PACKED_POST{
5660
Jeff Johnson32d95a32012-09-10 13:15:23 -07005661 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005662 tWlanFeatCaps wlanFeatCaps;
5663
5664} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5665
Jeff Johnsone7245742012-09-05 17:12:55 -07005666#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5667#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005668#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005669#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005670#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5671#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
5672#endif
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005673
Jeff Johnsone7245742012-09-05 17:12:55 -07005674tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5675
Jeff Johnson295189b2012-06-20 16:38:30 -07005676#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005677 if ((b)<=127) { \
5678 arr_index = (b)/32; \
5679 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005680 (a)->featCaps[arr_index] |= (1<<bit_index); \
5681 } \
5682 }
5683#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005684 if ((b)<=127) { \
5685 arr_index = (b)/32; \
5686 bit_index = (b)%32; \
5687 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005688 } \
5689 }
5690#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005691 if ((b)<=127) { \
5692 arr_index = (b)/32; \
5693 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005694 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005695 } \
5696 }
5697
5698/*---------------------------------------------------------------------------
5699 * WLAN_HAL_WAKE_REASON_IND
5700 *--------------------------------------------------------------------------*/
5701
5702/* status codes to help debug rekey failures */
5703typedef enum
5704{
5705 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5706 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5707 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5708 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5709 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5710 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5711 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5712 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5713 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5714 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5715
5716 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5717} tGTKRekeyStatus;
5718
5719/* wake reason types */
5720typedef enum
5721{
5722 WLAN_HAL_WAKE_REASON_NONE = 0,
5723 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5724 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5725 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5726 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5727 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5728 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5729 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5730} tWakeReasonType;
5731
5732/*
5733 Wake Packet which is saved at tWakeReasonParams.DataStart
5734 This data is sent for any wake reasons that involve a packet-based wakeup :
5735
5736 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5737 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5738 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5739 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5740 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5741
5742 The information is provided to the host for auditing and debug purposes
5743
5744*/
5745
5746/*
5747 Wake reason indication parameters
5748*/
5749typedef PACKED_PRE struct PACKED_POST
5750{
5751 uint32 ulReason; /* see tWakeReasonType */
5752 uint32 ulReasonArg; /* argument specific to the reason type */
5753 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5754 HAL truncates the data (i.e. data packets) this length
5755 will be less than the actual length */
5756 uint32 ulActualDataLen; /* actual length of data */
5757 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5758 see specific wake type */
5759} tWakeReasonParams, *tpWakeReasonParams;
5760
5761/*
5762 Wake reason indication
5763*/
5764typedef PACKED_PRE struct PACKED_POST
5765{
5766 tHalMsgHeader header;
5767 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005768 tANI_U32 uBssIdx : 8;
5769 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005770} tHalWakeReasonInd, *tpHalWakeReasonInd;
5771
5772/*---------------------------------------------------------------------------
5773* WLAN_HAL_GTK_OFFLOAD_REQ
5774*--------------------------------------------------------------------------*/
5775
5776#define HAL_GTK_KEK_BYTES 16
5777#define HAL_GTK_KCK_BYTES 16
5778
5779#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5780
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005781#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5782
Jeff Johnson295189b2012-06-20 16:38:30 -07005783typedef PACKED_PRE struct PACKED_POST
5784{
5785 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005786 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005787 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5788 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005789 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005790} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5791
5792typedef PACKED_PRE struct PACKED_POST
5793{
5794 tHalMsgHeader header;
5795 tHalGtkOffloadReqParams gtkOffloadReqParams;
5796} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5797
5798/*---------------------------------------------------------------------------
5799* WLAN_HAL_GTK_OFFLOAD_RSP
5800*--------------------------------------------------------------------------*/
5801typedef PACKED_PRE struct PACKED_POST
5802{
5803 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005804 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005805} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5806
5807typedef PACKED_PRE struct PACKED_POST
5808{
5809 tHalMsgHeader header;
5810 tHalGtkOffloadRspParams gtkOffloadRspParams;
5811} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5812
5813
5814/*---------------------------------------------------------------------------
5815* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5816*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005817typedef PACKED_PRE struct PACKED_POST
5818{
5819 tANI_U8 bssIdx;
5820
5821} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005822
5823typedef PACKED_PRE struct PACKED_POST
5824{
5825 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005826 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005827} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5828
5829/*---------------------------------------------------------------------------
5830* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5831*--------------------------------------------------------------------------*/
5832typedef PACKED_PRE struct PACKED_POST
5833{
5834 tANI_U32 ulStatus; /* success or failure */
5835 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5836 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5837 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5838 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5839 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005840 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005841} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5842
5843typedef PACKED_PRE struct PACKED_POST
5844{
5845 tHalMsgHeader header;
5846 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5847} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5848
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005849/*---------------------------------------------------------------------------
5850* WLAN_HAL_DHCP_IND
5851*--------------------------------------------------------------------------*/
5852typedef PACKED_PRE struct PACKED_POST
5853{
5854 /*Indicates the device mode which indicates about the DHCP activity */
5855 tANI_U8 device_mode;
5856 tSirMacAddr macAddr;
5857} tDHCPInfo, *tpDHCPInfo;
5858
5859typedef PACKED_PRE struct PACKED_POST
5860{
5861 tHalMsgHeader header;
5862 tANI_U32 status; /* success or failure */
5863} tDHCPIndStatus, *tpDHCPIndstatus;
5864
Jeff Johnson295189b2012-06-20 16:38:30 -07005865/*
5866 Thermal Mitigation mode of operation.
5867 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5868 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5869 reducing transmit power
5870 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5871*/
5872typedef enum
5873{
5874 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5875 HAL_THERMAL_MITIGATION_MODE_0,
5876 HAL_THERMAL_MITIGATION_MODE_1,
5877 HAL_THERMAL_MITIGATION_MODE_2,
5878 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5879}tHalThermalMitigationModeType;
5880//typedef tANI_S16 tHalThermalMitigationModeType;
5881
5882/*
5883 Thermal Mitigation level.
5884 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5885 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5886
5887 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5888 level indicates normal mode of operation
5889 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5890 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5891 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5892 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5893*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005894typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005895{
5896 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5897 HAL_THERMAL_MITIGATION_LEVEL_0,
5898 HAL_THERMAL_MITIGATION_LEVEL_1,
5899 HAL_THERMAL_MITIGATION_LEVEL_2,
5900 HAL_THERMAL_MITIGATION_LEVEL_3,
5901 HAL_THERMAL_MITIGATION_LEVEL_4,
5902 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5903}tHalThermalMitigationLevelType;
5904//typedef tANI_S16 tHalThermalMitigationLevelType;
5905
5906typedef PACKED_PRE struct PACKED_POST
5907{
5908 /* Thermal Mitigation Operation Mode */
5909 tHalThermalMitigationModeType thermalMitMode;
5910
5911 /* Thermal Mitigation Level */
5912 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005913
Jeff Johnson295189b2012-06-20 16:38:30 -07005914}tSetThermalMitgationType, *tpSetThermalMitgationType;
5915
5916/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5917typedef PACKED_PRE struct PACKED_POST
5918{
5919 tHalMsgHeader header;
5920 tSetThermalMitgationType thermalMitParams;
5921} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5922
5923typedef PACKED_PRE struct PACKED_POST{
5924
5925 tHalMsgHeader header;
5926
5927 /*status of the request */
5928 tANI_U32 status;
5929
5930} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5931
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08005932/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
5933provided to FW from Host via periodic messages */
5934typedef PACKED_PRE struct PACKED_POST {
5935 /* TX stats */
5936 uint32 txBytesPushed;
5937 uint32 txPacketsPushed;
5938
5939 /* RX stats */
5940 uint32 rxBytesRcvd;
5941 uint32 rxPacketsRcvd;
5942 uint32 rxTimeTotal;
5943} tStaStatsClassB, *tpStaStatsClassB;
5944
5945typedef PACKED_PRE struct PACKED_POST {
5946
5947 /* Duration over which this stats was collected */
5948 tANI_U32 duration;
5949
5950 /* Per STA Stats */
5951 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
5952} tStatsClassBIndParams, *tpStatsClassBIndParams;
5953
5954typedef PACKED_PRE struct PACKED_POST {
5955
5956 tHalMsgHeader header;
5957
5958 /* Class B Stats */
5959 tStatsClassBIndParams statsClassBIndParams;
5960} tStatsClassBInd, *tpStatsClassBInd;
5961
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305962/*Wifi Proximity paramters in AP mode*/
5963#ifdef FEATURE_WIFI_PROXIMITY
5964
5965typedef PACKED_PRE struct PACKED_POST{
5966
5967 tANI_U8 wifiProximityChannel;
5968 tANI_U32 wifiProximityDuration;
5969 tANI_U32 wifiProximityInterval;
5970 tANI_U32 wifiProximityMode;
5971 tANI_U32 wifiProximityStatus;
5972 tSirMacAddr bssId;
5973 tSirMacSSid ssId;
5974
5975} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
5976
5977typedef PACKED_PRE struct PACKED_POST
5978{
5979 tHalMsgHeader header;
5980
5981 tSetWifiProximityReqParam wifiProximityReqParams;
5982
5983}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
5984
5985/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
5986typedef PACKED_PRE struct PACKED_POST{
5987
5988 tHalMsgHeader header;
5989
5990 /*status of the request */
5991 tANI_U32 status;
5992
5993} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
5994
5995#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005996#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
5997#pragma pack(pop)
5998#elif defined(__ANI_COMPILER_PRAGMA_PACK)
5999#else
6000#endif
6001
6002#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006003