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