blob: 64fe762596993bd63f040ed7285d124d91191522 [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
Kumar Anandea78e792013-10-10 23:47:01 -070058#define WLAN_HAL_VER_MINOR 5
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
Kumar Anandea78e792013-10-10 23:47:01 -070088
89//Max Tx Data Rate samples
90#define MAX_TX_RATE_SAMPLES 10
91//Max Beacon Rssi samples
92#define MAX_BCN_RSSI_SAMPLES 10
93
Jeff Johnson32d95a32012-09-10 13:15:23 -070094//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070095#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
96#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
97#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
98#define PARAM_llACOEXIST_CHANGED (1 << 3)
99#define PARAM_llBCOEXIST_CHANGED (1 << 4)
100#define PARAM_llGCOEXIST_CHANGED (1 << 5)
101#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
102#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
103#define PARAM_RIFS_MODE_CHANGED (1<<8)
104#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
105#define PARAM_OBSS_MODE_CHANGED (1<<10)
106#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
107 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)
108
109/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530110#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700111
112/*Version string max length (including NUL) */
113#define WLAN_HAL_VERSION_LENGTH 64
114
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530115#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
116#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS NUM_RF_CHANNELS
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700117#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 61
Yue Maab3ccfc2013-08-14 17:19:08 -0700118
Jeff Johnson295189b2012-06-20 16:38:30 -0700119/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700120typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700121{
122 //Init/De-Init
123 WLAN_HAL_START_REQ = 0,
124 WLAN_HAL_START_RSP = 1,
125 WLAN_HAL_STOP_REQ = 2,
126 WLAN_HAL_STOP_RSP = 3,
127
128 //Scan
129 WLAN_HAL_INIT_SCAN_REQ = 4,
130 WLAN_HAL_INIT_SCAN_RSP = 5,
131 WLAN_HAL_START_SCAN_REQ = 6,
132 WLAN_HAL_START_SCAN_RSP = 7 ,
133 WLAN_HAL_END_SCAN_REQ = 8,
134 WLAN_HAL_END_SCAN_RSP = 9,
135 WLAN_HAL_FINISH_SCAN_REQ = 10,
136 WLAN_HAL_FINISH_SCAN_RSP = 11,
137
138 // HW STA configuration/deconfiguration
139 WLAN_HAL_CONFIG_STA_REQ = 12,
140 WLAN_HAL_CONFIG_STA_RSP = 13,
141 WLAN_HAL_DELETE_STA_REQ = 14,
142 WLAN_HAL_DELETE_STA_RSP = 15,
143 WLAN_HAL_CONFIG_BSS_REQ = 16,
144 WLAN_HAL_CONFIG_BSS_RSP = 17,
145 WLAN_HAL_DELETE_BSS_REQ = 18,
146 WLAN_HAL_DELETE_BSS_RSP = 19,
147
148 //Infra STA asscoiation
149 WLAN_HAL_JOIN_REQ = 20,
150 WLAN_HAL_JOIN_RSP = 21,
151 WLAN_HAL_POST_ASSOC_REQ = 22,
152 WLAN_HAL_POST_ASSOC_RSP = 23,
153
154 //Security
155 WLAN_HAL_SET_BSSKEY_REQ = 24,
156 WLAN_HAL_SET_BSSKEY_RSP = 25,
157 WLAN_HAL_SET_STAKEY_REQ = 26,
158 WLAN_HAL_SET_STAKEY_RSP = 27,
159 WLAN_HAL_RMV_BSSKEY_REQ = 28,
160 WLAN_HAL_RMV_BSSKEY_RSP = 29,
161 WLAN_HAL_RMV_STAKEY_REQ = 30,
162 WLAN_HAL_RMV_STAKEY_RSP = 31,
163
164 //Qos Related
165 WLAN_HAL_ADD_TS_REQ = 32,
166 WLAN_HAL_ADD_TS_RSP = 33,
167 WLAN_HAL_DEL_TS_REQ = 34,
168 WLAN_HAL_DEL_TS_RSP = 35,
169 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
170 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
171 WLAN_HAL_ADD_BA_REQ = 38,
172 WLAN_HAL_ADD_BA_RSP = 39,
173 WLAN_HAL_DEL_BA_REQ = 40,
174 WLAN_HAL_DEL_BA_RSP = 41,
175
176 WLAN_HAL_CH_SWITCH_REQ = 42,
177 WLAN_HAL_CH_SWITCH_RSP = 43,
178 WLAN_HAL_SET_LINK_ST_REQ = 44,
179 WLAN_HAL_SET_LINK_ST_RSP = 45,
180 WLAN_HAL_GET_STATS_REQ = 46,
181 WLAN_HAL_GET_STATS_RSP = 47,
182 WLAN_HAL_UPDATE_CFG_REQ = 48,
183 WLAN_HAL_UPDATE_CFG_RSP = 49,
184
185 WLAN_HAL_MISSED_BEACON_IND = 50,
186 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
187 WLAN_HAL_MIC_FAILURE_IND = 52,
188 WLAN_HAL_FATAL_ERROR_IND = 53,
189 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700190
Jeff Johnson295189b2012-06-20 16:38:30 -0700191 //NV Interface
192 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
193 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
194
195 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
196 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
197 WLAN_HAL_TRIGGER_BA_REQ = 59,
198 WLAN_HAL_TRIGGER_BA_RSP = 60,
199 WLAN_HAL_UPDATE_BEACON_REQ = 61,
200 WLAN_HAL_UPDATE_BEACON_RSP = 62,
201 WLAN_HAL_SEND_BEACON_REQ = 63,
202 WLAN_HAL_SEND_BEACON_RSP = 64,
203
204 WLAN_HAL_SET_BCASTKEY_REQ = 65,
205 WLAN_HAL_SET_BCASTKEY_RSP = 66,
206 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
207 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
208 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700209
Jeff Johnson295189b2012-06-20 16:38:30 -0700210 // PTT interface support
211 WLAN_HAL_PROCESS_PTT_REQ = 70,
212 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700213
Jeff Johnson295189b2012-06-20 16:38:30 -0700214 // BTAMP related events
215 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
216 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
217 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
218 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
219
220 WLAN_HAL_ENTER_IMPS_REQ = 76,
221 WLAN_HAL_EXIT_IMPS_REQ = 77,
222 WLAN_HAL_ENTER_BMPS_REQ = 78,
223 WLAN_HAL_EXIT_BMPS_REQ = 79,
224 WLAN_HAL_ENTER_UAPSD_REQ = 80,
225 WLAN_HAL_EXIT_UAPSD_REQ = 81,
226 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
227 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
228 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
229 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
230 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
231 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
232 WLAN_HAL_ENTER_WOWL_REQ = 88,
233 WLAN_HAL_EXIT_WOWL_REQ = 89,
234 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
235 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
236 WLAN_HAL_GET_RSSI_REQ = 92,
237 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
238 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
239
240 WLAN_HAL_ENTER_IMPS_RSP = 95,
241 WLAN_HAL_EXIT_IMPS_RSP = 96,
242 WLAN_HAL_ENTER_BMPS_RSP = 97,
243 WLAN_HAL_EXIT_BMPS_RSP = 98,
244 WLAN_HAL_ENTER_UAPSD_RSP = 99,
245 WLAN_HAL_EXIT_UAPSD_RSP = 100,
246 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
247 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
248 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
249 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
250 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
251 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
252 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
253 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
254 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
255 WLAN_HAL_ENTER_WOWL_RSP = 110,
256 WLAN_HAL_EXIT_WOWL_RSP = 111,
257 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
258 WLAN_HAL_GET_RSSI_RSP = 113,
259 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
260
261 //11k related events
262 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
263 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
264
265 //11R related msgs
266 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
267 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
268
269 //P2P WLAN_FEATURE_P2P
270 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
271 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700272
Jeff Johnson295189b2012-06-20 16:38:30 -0700273 //WLAN Dump commands
274 WLAN_HAL_DUMP_COMMAND_REQ = 121,
275 WLAN_HAL_DUMP_COMMAND_RSP = 122,
276
Jeff Johnsone7245742012-09-05 17:12:55 -0700277 //OEM_DATA FEATURE SUPPORT
278 WLAN_HAL_START_OEM_DATA_REQ = 123,
279 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700280
281 //ADD SELF STA REQ and RSP
282 WLAN_HAL_ADD_STA_SELF_REQ = 125,
283 WLAN_HAL_ADD_STA_SELF_RSP = 126,
284
285 //DEL SELF STA SUPPORT
286 WLAN_HAL_DEL_STA_SELF_REQ = 127,
287 WLAN_HAL_DEL_STA_SELF_RSP = 128,
288
289 // Coex Indication
290 WLAN_HAL_COEX_IND = 129,
291
Jeff Johnson32d95a32012-09-10 13:15:23 -0700292 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700293 WLAN_HAL_OTA_TX_COMPL_IND = 130,
294
295 //Host Suspend/resume messages
296 WLAN_HAL_HOST_SUSPEND_IND = 131,
297 WLAN_HAL_HOST_RESUME_REQ = 132,
298 WLAN_HAL_HOST_RESUME_RSP = 133,
299
300 WLAN_HAL_SET_TX_POWER_REQ = 134,
301 WLAN_HAL_SET_TX_POWER_RSP = 135,
302 WLAN_HAL_GET_TX_POWER_REQ = 136,
303 WLAN_HAL_GET_TX_POWER_RSP = 137,
304
305 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700306
Jeff Johnson295189b2012-06-20 16:38:30 -0700307 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
308 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
309 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
310 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
311 WLAN_HAL_RADAR_DETECT_IND = 143,
312 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
313 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700314 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700315
316 /*PNO messages*/
317 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
318 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
319 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
320 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
321 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
322 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700323 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700324
325 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
326 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
327 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700328
Jeff Johnson295189b2012-06-20 16:38:30 -0700329 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700330 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700331
332 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700333 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700334 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700335 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700336 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700337 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
338 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700339 * Host and Riva code is in sync*/
340 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700341
Jeff Johnson295189b2012-06-20 16:38:30 -0700342 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
343 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
344
345 WLAN_HAL_TSM_STATS_REQ = 168,
346 WLAN_HAL_TSM_STATS_RSP = 169,
347
348 // wake reason indication (WOW)
349 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700350 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700351 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
352 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
353 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
354 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
355
356 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
357 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
358 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
359
360 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
361 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
362
Anand Kumar012623a2013-01-11 17:00:00 -0800363 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
364 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800365
Anand Kumar012623a2013-01-11 17:00:00 -0800366 WLAN_HAL_P2P_NOA_START_IND = 184,
367
368 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
369 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700370
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800371 WLAN_HAL_CLASS_B_STATS_IND = 187,
372 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800373 WLAN_HAL_DHCP_START_IND = 189,
374 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700375 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
376 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530377 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
378 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700379
380 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
381 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
382 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
383
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530384 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
385 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
386 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
387 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
388 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700389 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700390
Kumar Anandf53016f2013-09-04 15:15:53 -0700391 /* Scan Offload APIs */
392 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
393 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
394 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
395 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
396 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
397 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
398 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
399
Leo Chang397deb72013-08-22 11:33:16 -0700400 /* APIs to offload TCP/UDP Heartbeat handshakes */
401 WLAN_HAL_LPHB_CFG_REQ = 211,
402 WLAN_HAL_LPHB_CFG_RSP = 212,
403 WLAN_HAL_LPHB_IND = 213,
404
Yue Maab3ccfc2013-08-14 17:19:08 -0700405 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
406 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
407 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530408
Kumar Anandf53016f2013-09-04 15:15:53 -0700409 // Events to set Per-Band Tx Power Limit
410 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
411 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
412
413 /* Reliable Multicast using Leader Based Protocol */
414 WLAN_HAL_LBP_LEADER_REQ = 219,
415 WLAN_HAL_LBP_LEADER_RSP = 220,
416 WLAN_HAL_LBP_UPDATE_IND = 221,
417
krunal soni2a4728d2013-09-20 21:56:50 -0700418 /* Batchscan */
419 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
420 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
421 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
422 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
423 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
424
425 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
426 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
427
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800428 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700429}tHalHostMsgType;
430
Jeff Johnsone7245742012-09-05 17:12:55 -0700431/* Enumeration for Version */
432typedef enum
433{
434 WLAN_HAL_MSG_VERSION0 = 0,
435 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800436 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
437 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700438}tHalHostMsgVersion;
439
Jeff Johnson295189b2012-06-20 16:38:30 -0700440/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700441typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700442{
443 eANI_BOOLEAN_FALSE = 0,
444 eANI_BOOLEAN_TRUE,
445 eANI_BOOLEAN_OFF = 0,
446 eANI_BOOLEAN_ON = 1,
447 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
448} eAniBoolean;
449
450typedef enum
451{
452 eDRIVER_TYPE_PRODUCTION = 0,
453 eDRIVER_TYPE_MFG = 1,
454 eDRIVER_TYPE_DVT = 2,
455 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
456} tDriverType;
457
458typedef enum
459{
460 HAL_STOP_TYPE_SYS_RESET,
461 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
462 HAL_STOP_TYPE_RF_KILL,
463 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
464}tHalStopType;
465
466typedef enum
467{
468 eHAL_SYS_MODE_NORMAL,
469 eHAL_SYS_MODE_LEARN,
470 eHAL_SYS_MODE_SCAN,
471 eHAL_SYS_MODE_PROMISC,
472 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700473 eHAL_SYS_MODE_ROAM_SCAN,
474 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700475 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700476 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
477} eHalSysMode;
478
479typedef enum
480{
481 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
482 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
483 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
484 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700485#ifdef WLAN_FEATURE_11AC
486 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
487 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
488 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
489 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
490 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
491 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
492 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
493#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700494 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
495}ePhyChanBondState;
496
497// Spatial Multiplexing(SM) Power Save mode
498typedef enum eSirMacHTMIMOPowerSaveState
499{
500 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
501 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
502 eSIR_HT_MIMO_PS_NA = 2, // reserved
503 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
504 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
505} tSirMacHTMIMOPowerSaveState;
506
507/* each station added has a rate mode which specifies the sta attributes */
508typedef enum eStaRateMode {
509 eSTA_TAURUS = 0,
510 eSTA_TITAN,
511 eSTA_POLARIS,
512 eSTA_11b,
513 eSTA_11bg,
514 eSTA_11a,
515 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700516#ifdef WLAN_FEATURE_11AC
517 eSTA_11ac,
518#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700519 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
520} tStaRateMode, *tpStaRateMode;
521
522#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
523#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
524#define SIR_NUM_POLARIS_RATES 3 //72,96,108
525
526#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
527
528
529typedef enum eSirBssType
530{
531 eSIR_INFRASTRUCTURE_MODE,
532 eSIR_INFRA_AP_MODE, //Added for softAP support
533 eSIR_IBSS_MODE,
534 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
535 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
536 eSIR_AUTO_MODE,
537 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
538} tSirBssType;
539
540typedef enum eSirNwType
541{
542 eSIR_11A_NW_TYPE,
543 eSIR_11B_NW_TYPE,
544 eSIR_11G_NW_TYPE,
545 eSIR_11N_NW_TYPE,
546 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
547} tSirNwType;
548
549typedef tANI_U16 tSirMacBeaconInterval;
550
551#define SIR_MAC_RATESET_EID_MAX 12
552
553typedef enum eSirMacHTOperatingMode
554{
555 eSIR_HT_OP_MODE_PURE, // No Protection
556 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
557 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
558 eSIR_HT_OP_MODE_MIXED, // Protection is required
559 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
560} tSirMacHTOperatingMode;
561
Jeff Johnson295189b2012-06-20 16:38:30 -0700562/// Encryption type enum used with peer
563typedef enum eAniEdType
564{
565 eSIR_ED_NONE,
566 eSIR_ED_WEP40,
567 eSIR_ED_WEP104,
568 eSIR_ED_TKIP,
569 eSIR_ED_CCMP,
570 eSIR_ED_WPI,
571 eSIR_ED_AES_128_CMAC,
572 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
573} tAniEdType;
574
575#define WLAN_MAX_KEY_RSC_LEN 16
576#define WLAN_WAPI_KEY_RSC_LEN 16
577
578/// MAX key length when ULA is used
579#define SIR_MAC_MAX_KEY_LENGTH 32
580#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
581
582/// Enum to specify whether key is used
583/// for TX only, RX only or both
584typedef enum eAniKeyDirection
585{
586 eSIR_TX_ONLY,
587 eSIR_RX_ONLY,
588 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700589 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700590 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
591} tAniKeyDirection;
592
593typedef enum eAniWepType
594{
595 eSIR_WEP_STATIC,
596 eSIR_WEP_DYNAMIC,
597 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
598} tAniWepType;
599
600typedef enum eSriLinkState {
601
602 eSIR_LINK_IDLE_STATE = 0,
603 eSIR_LINK_PREASSOC_STATE = 1,
604 eSIR_LINK_POSTASSOC_STATE = 2,
605 eSIR_LINK_AP_STATE = 3,
606 eSIR_LINK_IBSS_STATE = 4,
607
608 /* BT-AMP Case */
609 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
610 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
611 eSIR_LINK_BTAMP_AP_STATE = 7,
612 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700613
Jeff Johnson295189b2012-06-20 16:38:30 -0700614 /* Reserved for HAL Internal Use */
615 eSIR_LINK_LEARN_STATE = 9,
616 eSIR_LINK_SCAN_STATE = 10,
617 eSIR_LINK_FINISH_SCAN_STATE = 11,
618 eSIR_LINK_INIT_CAL_STATE = 12,
619 eSIR_LINK_FINISH_CAL_STATE = 13,
620#ifdef WLAN_FEATURE_P2P
621 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530622 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700623#endif
624 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
625} tSirLinkState;
626
627typedef enum
628{
629 HAL_SUMMARY_STATS_INFO = 0x00000001,
630 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
631 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
632 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
633 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
634 HAL_PER_STA_STATS_INFO = 0x00000020
635}eHalStatsMask;
636
637/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700638typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700639{
640 BTAMP_EVENT_CONNECTION_START,
641 BTAMP_EVENT_CONNECTION_STOP,
642 BTAMP_EVENT_CONNECTION_TERMINATED,
643 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
644} tBtAmpEventType;
645
646//***************************************************************
647
648
649/*******************PE Statistics*************************/
650typedef enum
651{
652 PE_SUMMARY_STATS_INFO = 0x00000001,
653 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
654 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
655 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
656 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
657 PE_PER_STA_STATS_INFO = 0x00000020,
658 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
659}ePEStatsMask;
660
661/*---------------------------------------------------------------------------
662 Message definitons - All the messages below need to be packed
663 ---------------------------------------------------------------------------*/
664
665#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
666#pragma pack(push, 1)
667#elif defined(__ANI_COMPILER_PRAGMA_PACK)
668#pragma pack(1)
669#else
670#endif
671
672/// Definition for HAL API Version.
673typedef PACKED_PRE struct PACKED_POST
674{
675 tANI_U8 revision;
676 tANI_U8 version;
677 tANI_U8 minor;
678 tANI_U8 major;
679} tWcnssWlanVersion, *tpWcnssWlanVersion;
680
681/// Definition for Encryption Keys
682typedef PACKED_PRE struct PACKED_POST
683{
684 tANI_U8 keyId;
685 tANI_U8 unicast; // 0 for multicast
686 tAniKeyDirection keyDirection;
687 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
688 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
689 tANI_U16 keyLength;
690 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
691} tSirKeys, *tpSirKeys;
692
693
694//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
695typedef PACKED_PRE struct PACKED_POST
696{
697 /*STA Index*/
698 tANI_U16 staIdx;
699
700 /*Encryption Type used with peer*/
701 tAniEdType encType;
702
703 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700704 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700705
706 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
707 tANI_U8 defWEPIdx;
708
Jeff Johnson295189b2012-06-20 16:38:30 -0700709 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700710 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
711
Jeff Johnson295189b2012-06-20 16:38:30 -0700712 /*Control for Replay Count, 1= Single TID based replay count on Tx
713 0 = Per TID based replay count on TX */
714 tANI_U8 singleTidRc;
715
716} tSetStaKeyParams, *tpSetStaKeyParams;
717
718
719
720/* 4-byte control message header used by HAL*/
721typedef PACKED_PRE struct PACKED_POST
722{
Jeff Johnsone7245742012-09-05 17:12:55 -0700723 tHalHostMsgType msgType:16;
724 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700725 tANI_U32 msgLen;
726} tHalMsgHeader, *tpHalMsgHeader;
727
728/* Config format required by HAL for each CFG item*/
729typedef PACKED_PRE struct PACKED_POST
730{
731 /* Cfg Id. The Id required by HAL is exported by HAL
732 * in shared header file between UMAC and HAL.*/
733 tANI_U16 uCfgId;
734
Jeff Johnson32d95a32012-09-10 13:15:23 -0700735 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700736 * in the TLV format.*/
737 tANI_U16 uCfgLen;
738
739 /* Padding bytes for unaligned address's */
740 tANI_U16 uCfgPadBytes;
741
742 /* Reserve bytes for making cfgVal to align address */
743 tANI_U16 uCfgReserve;
744
745 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
746 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
747} tHalCfg, *tpHalCfg;
748
749/*---------------------------------------------------------------------------
750 WLAN_HAL_START_REQ
751---------------------------------------------------------------------------*/
752
753typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
754{
755 /* Drive Type - Production or FTM etc */
756 tDriverType driverType;
757
758 /*Length of the config buffer*/
759 tANI_U32 uConfigBufferLen;
760
Jeff Johnson32d95a32012-09-10 13:15:23 -0700761 /* Following this there is a TLV formatted buffer of length
762 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700763 * The TLV is expected to be formatted like this:
764 * 0 15 31 31+CFG_LEN-1 length-1
765 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
766 */
767} tHalMacStartParameters, *tpHalMacStartParameters;
768
769typedef PACKED_PRE struct PACKED_POST
770{
771 /* Note: The length specified in tHalMacStartReqMsg messages should be
772 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
773 tHalMsgHeader header;
774 tHalMacStartParameters startReqParams;
775} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
776
777/*---------------------------------------------------------------------------
778 WLAN_HAL_START_RSP
779---------------------------------------------------------------------------*/
780
781typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
782{
783 /*success or failure */
784 tANI_U16 status;
785
786 /*Max number of STA supported by the device*/
787 tANI_U8 ucMaxStations;
788
789 /*Max number of BSS supported by the device*/
790 tANI_U8 ucMaxBssids;
791
792 /*API Version */
793 tWcnssWlanVersion wcnssWlanVersion;
794
795 /*CRM build information */
796 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
797
798 /*hardware/chipset/misc version information */
799 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
800
801} tHalMacStartRspParams, *tpHalMacStartRspParams;
802
803typedef PACKED_PRE struct PACKED_POST
804{
805 tHalMsgHeader header;
806 tHalMacStartRspParams startRspParams;
807} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
808
809/*---------------------------------------------------------------------------
810 WLAN_HAL_STOP_REQ
811---------------------------------------------------------------------------*/
812
813typedef PACKED_PRE struct PACKED_POST
814{
815 /*The reason for which the device is being stopped*/
816 tHalStopType reason;
817
818}tHalMacStopReqParams, *tpHalMacStopReqParams;
819
820typedef PACKED_PRE struct PACKED_POST
821{
822 tHalMsgHeader header;
823 tHalMacStopReqParams stopReqParams;
824} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
825
826/*---------------------------------------------------------------------------
827 WLAN_HAL_STOP_RSP
828---------------------------------------------------------------------------*/
829
830typedef PACKED_PRE struct PACKED_POST
831{
832 /*success or failure */
833 tANI_U32 status;
834
835}tHalMacStopRspParams, *tpHalMacStopRspParams;
836
837typedef PACKED_PRE struct PACKED_POST
838{
839 tHalMsgHeader header;
840 tHalMacStopRspParams stopRspParams;
841} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
842
843/*---------------------------------------------------------------------------
844 WLAN_HAL_UPDATE_CFG_REQ
845---------------------------------------------------------------------------*/
846
847typedef PACKED_PRE struct PACKED_POST
848{
849 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
850 tANI_U32 uConfigBufferLen;
851
Jeff Johnson32d95a32012-09-10 13:15:23 -0700852 /* Following this there is a TLV formatted buffer of length
853 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700854 * The TLV is expected to be formatted like this:
855 * 0 15 31 31+CFG_LEN-1 length-1
856 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
857 */
858} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
859
860typedef PACKED_PRE struct PACKED_POST
861{
862 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
863 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
864 tHalMsgHeader header;
865 tHalUpdateCfgReqParams updateCfgReqParams;
866} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
867
868/*---------------------------------------------------------------------------
869 WLAN_HAL_UPDATE_CFG_RSP
870---------------------------------------------------------------------------*/
871
872typedef PACKED_PRE struct PACKED_POST
873{
874 /* success or failure */
875 tANI_U32 status;
876
877}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
878
879typedef PACKED_PRE struct PACKED_POST
880{
881 tHalMsgHeader header;
882 tHalUpdateCfgRspParams updateCfgRspParams;
883} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
884
885/*---------------------------------------------------------------------------
886 WLAN_HAL_INIT_SCAN_REQ
887---------------------------------------------------------------------------*/
888
889/// Frame control field format (2 bytes)
890typedef __ani_attr_pre_packed struct sSirMacFrameCtl
891{
892
893#ifndef ANI_LITTLE_BIT_ENDIAN
894
895 tANI_U8 subType :4;
896 tANI_U8 type :2;
897 tANI_U8 protVer :2;
898
899 tANI_U8 order :1;
900 tANI_U8 wep :1;
901 tANI_U8 moreData :1;
902 tANI_U8 powerMgmt :1;
903 tANI_U8 retry :1;
904 tANI_U8 moreFrag :1;
905 tANI_U8 fromDS :1;
906 tANI_U8 toDS :1;
907
908#else
909
910 tANI_U8 protVer :2;
911 tANI_U8 type :2;
912 tANI_U8 subType :4;
913
914 tANI_U8 toDS :1;
915 tANI_U8 fromDS :1;
916 tANI_U8 moreFrag :1;
917 tANI_U8 retry :1;
918 tANI_U8 powerMgmt :1;
919 tANI_U8 moreData :1;
920 tANI_U8 wep :1;
921 tANI_U8 order :1;
922
923#endif
924
925} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
926
927/// Sequence control field
928typedef __ani_attr_pre_packed struct sSirMacSeqCtl
929{
930 tANI_U8 fragNum : 4;
931 tANI_U8 seqNumLo : 4;
932 tANI_U8 seqNumHi : 8;
933} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
934
935/// Management header format
936typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
937{
938 tSirMacFrameCtl fc;
939 tANI_U8 durationLo;
940 tANI_U8 durationHi;
941 tANI_U8 da[6];
942 tANI_U8 sa[6];
943 tANI_U8 bssId[6];
944 tSirMacSeqCtl seqControl;
945} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
946
947/// Scan Entry to hold active BSS idx's
948typedef __ani_attr_pre_packed struct sSirScanEntry
949{
950 tANI_U8 bssIdx[HAL_NUM_BSSID];
951 tANI_U8 activeBSScnt;
952}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
953
954typedef PACKED_PRE struct PACKED_POST {
955
956 /*LEARN - AP Role
957 SCAN - STA Role*/
958 eHalSysMode scanMode;
959
960 /*BSSID of the BSS*/
961 tSirMacAddr bssid;
962
963 /*Whether BSS needs to be notified*/
964 tANI_U8 notifyBss;
965
966 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
967 CTS to Self). Must always be a valid frame type.*/
968 tANI_U8 frameType;
969
970 /*UMAC has the option of passing the MAC frame to be used for notifying
971 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
972 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
973 frameType.*/
974 tANI_U8 frameLength;
975
Jeff Johnson32d95a32012-09-10 13:15:23 -0700976 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700977 is non-zero. */
978 tSirMacMgmtHdr macMgmtHdr;
979
980 /*Entry to hold number of active BSS idx's*/
981 tSirScanEntry scanEntry;
982
983} tInitScanParams, * tpInitScanParams;
984
985typedef PACKED_PRE struct PACKED_POST
986{
987 tHalMsgHeader header;
988 tInitScanParams initScanParams;
989} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
990
991typedef PACKED_PRE struct PACKED_POST {
992
993 /*LEARN - AP Role
994 SCAN - STA Role*/
995 eHalSysMode scanMode;
996
997 /*BSSID of the BSS*/
998 tSirMacAddr bssid;
999
1000 /*Whether BSS needs to be notified*/
1001 tANI_U8 notifyBss;
1002
1003 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1004 CTS to Self). Must always be a valid frame type.*/
1005 tANI_U8 frameType;
1006
1007 /*UMAC has the option of passing the MAC frame to be used for notifying
1008 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1009 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1010 frameType.*/
1011 tANI_U8 frameLength;
1012
Jeff Johnson32d95a32012-09-10 13:15:23 -07001013 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001014 is non-zero. */
1015 tSirMacMgmtHdr macMgmtHdr;
1016
1017 /*Entry to hold number of active BSS idx's*/
1018 tSirScanEntry scanEntry;
1019
1020 /* Single NoA usage in Scanning */
1021 tANI_U8 useNoA;
1022
1023 /* Indicates the scan duration (in ms) */
1024 tANI_U16 scanDuration;
1025
1026} tInitScanConParams, * tpInitScanConParams;
1027
1028typedef PACKED_PRE struct PACKED_POST
1029{
1030 tHalMsgHeader header;
1031 tInitScanConParams initScanParams;
1032} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1033
1034
1035/*---------------------------------------------------------------------------
1036 WLAN_HAL_INIT_SCAN_RSP
1037---------------------------------------------------------------------------*/
1038
1039typedef PACKED_PRE struct PACKED_POST
1040{
1041 /*success or failure */
1042 tANI_U32 status;
1043
1044}tHalInitScanRspParams, *tpHalInitScanRspParams;
1045
1046typedef PACKED_PRE struct PACKED_POST
1047{
1048 tHalMsgHeader header;
1049 tHalInitScanRspParams initScanRspParams;
1050} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1051
1052/*---------------------------------------------------------------------------
1053 WLAN_HAL_START_SCAN_REQ
1054---------------------------------------------------------------------------*/
1055
Jeff Johnson32d95a32012-09-10 13:15:23 -07001056typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001057{
1058 /*Indicates the channel to scan*/
1059 tANI_U8 scanChannel;
1060
1061 } tStartScanParams, * tpStartScanParams;
1062
1063typedef PACKED_PRE struct PACKED_POST
1064{
1065 tHalMsgHeader header;
1066 tStartScanParams startScanParams;
1067} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1068
1069/*---------------------------------------------------------------------------
1070 WLAN_HAL_START_SCAN_RSP
1071---------------------------------------------------------------------------*/
1072
1073typedef PACKED_PRE struct PACKED_POST
1074{
1075 /*success or failure */
1076 tANI_U32 status;
1077
1078 tANI_U32 startTSF[2];
1079 tPowerdBm txMgmtPower;
1080
1081}tHalStartScanRspParams, *tpHalStartScanRspParams;
1082
1083typedef PACKED_PRE struct PACKED_POST
1084{
1085 tHalMsgHeader header;
1086 tHalStartScanRspParams startScanRspParams;
1087} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1088
1089/*---------------------------------------------------------------------------
1090 WLAN_HAL_END_SCAN_REQ
1091---------------------------------------------------------------------------*/
1092
1093typedef PACKED_PRE struct PACKED_POST
1094{
1095 /*Indicates the channel to stop scanning. Not used really. But retained
1096 for symmetry with "start Scan" message. It can also help in error
1097 check if needed.*/
1098 tANI_U8 scanChannel;
1099
1100} tEndScanParams, *tpEndScanParams;
1101
1102typedef PACKED_PRE struct PACKED_POST
1103{
1104 tHalMsgHeader header;
1105 tEndScanParams endScanParams;
1106} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1107
1108/*---------------------------------------------------------------------------
1109 WLAN_HAL_END_SCAN_RSP
1110---------------------------------------------------------------------------*/
1111
1112typedef PACKED_PRE struct PACKED_POST
1113{
1114 /*success or failure */
1115 tANI_U32 status;
1116
1117}tHalEndScanRspParams, *tpHalEndScanRspParams;
1118
1119typedef PACKED_PRE struct PACKED_POST
1120{
1121 tHalMsgHeader header;
1122 tHalEndScanRspParams endScanRspParams;
1123} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1124
1125/*---------------------------------------------------------------------------
1126 WLAN_HAL_FINISH_SCAN_REQ
1127---------------------------------------------------------------------------*/
1128
1129typedef PACKED_PRE struct PACKED_POST
1130{
1131 /* Identifies the operational state of the AP/STA
1132 * LEARN - AP Role SCAN - STA Role */
1133 eHalSysMode scanMode;
1134
1135 /*Operating channel to tune to.*/
1136 tANI_U8 currentOperChannel;
1137
1138 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1139 40 MHz extension channel in combination with the control channel*/
1140 ePhyChanBondState cbState;
1141
1142 /*BSSID of the BSS*/
1143 tSirMacAddr bssid;
1144
1145 /*Whether BSS needs to be notified*/
1146 tANI_U8 notifyBss;
1147
1148 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1149 CTS to Self). Must always be a valid frame type.*/
1150 tANI_U8 frameType;
1151
1152 /*UMAC has the option of passing the MAC frame to be used for notifying
1153 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1154 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1155 frameType.*/
1156 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001157
1158 /*Following the framelength there is a MAC frame buffer if frameLength
1159 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001160 tSirMacMgmtHdr macMgmtHdr;
1161
1162 /*Entry to hold number of active BSS idx's*/
1163 tSirScanEntry scanEntry;
1164
1165} tFinishScanParams, *tpFinishScanParams;
1166
1167typedef PACKED_PRE struct PACKED_POST
1168{
1169 tHalMsgHeader header;
1170 tFinishScanParams finishScanParams;
1171} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1172
1173/*---------------------------------------------------------------------------
1174 WLAN_HAL_FINISH_SCAN_RSP
1175---------------------------------------------------------------------------*/
1176
1177typedef PACKED_PRE struct PACKED_POST
1178{
1179 /*success or failure */
1180 tANI_U32 status;
1181
1182}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1183
1184typedef PACKED_PRE struct PACKED_POST
1185{
1186 tHalMsgHeader header;
1187 tHalFinishScanRspParams finishScanRspParams;
1188} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1189
1190/*---------------------------------------------------------------------------
1191 WLAN_HAL_CONFIG_STA_REQ
1192---------------------------------------------------------------------------*/
1193
1194typedef PACKED_PRE struct PACKED_POST {
1195 /*
1196 * For Self STA Entry: this represents Self Mode.
1197 * For Peer Stations, this represents the mode of the peer.
1198 * On Station:
1199 * --this mode is updated when PE adds the Self Entry.
1200 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1201 * ON AP:
1202 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1203 * to indicate the self mode of the AP.
1204 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1205 */
1206
1207 tStaRateMode opRateMode;
1208 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1209 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1210 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1211 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1212 tANI_U16 reserved;
1213
1214 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1215 //First 26 bits are reserved for those Titan rates and
1216 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1217 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1218
1219 /*
1220 * 0-76 bits used, remaining reserved
1221 * bits 0-15 and 32 should be set.
1222 */
1223 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1224
1225 /*
1226 * RX Highest Supported Data Rate defines the highest data
1227 * rate that the STA is able to receive, in unites of 1Mbps.
1228 * This value is derived from "Supported MCS Set field" inside
1229 * the HT capability element.
1230 */
1231 tANI_U16 rxHighestDataRate;
1232
1233} tSirSupportedRates, *tpSirSupportedRates;
1234
1235typedef PACKED_PRE struct PACKED_POST
1236{
1237 /*BSSID of STA*/
1238 tSirMacAddr bssId;
1239
1240 /*ASSOC ID, as assigned by UMAC*/
1241 tANI_U16 assocId;
1242
1243 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1244 tANI_U8 staType;
1245
1246 /*Short Preamble Supported.*/
1247 tANI_U8 shortPreambleSupported;
1248
1249 /*MAC Address of STA*/
1250 tSirMacAddr staMac;
1251
1252 /*Listen interval of the STA*/
1253 tANI_U16 listenInterval;
1254
1255 /*Support for 11e/WMM*/
1256 tANI_U8 wmmEnabled;
1257
1258 /*11n HT capable STA*/
1259 tANI_U8 htCapable;
1260
1261 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1262 tANI_U8 txChannelWidthSet;
1263
1264 /*RIFS mode 0 - NA, 1 - Allowed */
1265 tANI_U8 rifsMode;
1266
Jeff Johnson32d95a32012-09-10 13:15:23 -07001267 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001268 0 - No Support, 1 - Supported
1269 SG - there is global field */
1270 tANI_U8 lsigTxopProtection;
1271
1272 /*Max Ampdu Size supported by STA. TPE programming.
1273 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1274 tANI_U8 maxAmpduSize;
1275
1276 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1277 tANI_U8 maxAmpduDensity;
1278
1279 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1280 tANI_U8 maxAmsduSize;
1281
1282 /*Short GI support for 40Mhz packets*/
1283 tANI_U8 fShortGI40Mhz;
1284
1285 /*Short GI support for 20Mhz packets*/
1286 tANI_U8 fShortGI20Mhz;
1287
Jeff Johnson295189b2012-06-20 16:38:30 -07001288 /*Robust Management Frame (RMF) enabled/disabled*/
1289 tANI_U8 rmfEnabled;
1290
1291 /* The unicast encryption type in the association */
1292 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001293
1294 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001295 will set this flag in case of RE-ASSOC, where we want to reuse the old
1296 STA ID. 0 = Add, 1 = Update*/
1297 tANI_U8 action;
1298
1299 /*U-APSD Flags: 1b per AC. Encoded as follows:
1300 b7 b6 b5 b4 b3 b2 b1 b0 =
1301 X X X X BE BK VI VO */
1302 tANI_U8 uAPSD;
1303
1304 /*Max SP Length*/
1305 tANI_U8 maxSPLen;
1306
1307 /*11n Green Field preamble support
1308 0 - Not supported, 1 - Supported */
1309 tANI_U8 greenFieldCapable;
1310
1311 /*MIMO Power Save mode*/
1312 tSirMacHTMIMOPowerSaveState mimoPS;
1313
1314 /*Delayed BA Support*/
1315 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001316
Jeff Johnson295189b2012-06-20 16:38:30 -07001317 /*Max AMPDU duration in 32us*/
1318 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001319
Jeff Johnson295189b2012-06-20 16:38:30 -07001320 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1321 it to 0 if AP does not support it. This indication is sent to HAL and
1322 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1323 tANI_U8 fDsssCckMode40Mhz;
1324
1325 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1326 Retained for backward compalibity with existing HAL code*/
1327 tANI_U8 staIdx;
1328
1329 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1330 Retained for backward compalibity with existing HAL code*/
1331 tANI_U8 bssIdx;
1332
1333 tANI_U8 p2pCapableSta;
1334
Jeff Johnsone7245742012-09-05 17:12:55 -07001335 /*Reserved to align next field on a dword boundary*/
1336 tANI_U8 reserved;
1337
1338 /*These rates are the intersection of peer and self capabilities.*/
1339 tSirSupportedRates supportedRates;
1340
Jeff Johnson295189b2012-06-20 16:38:30 -07001341} tConfigStaParams, *tpConfigStaParams;
1342
Jeff Johnsone7245742012-09-05 17:12:55 -07001343/*------------------------------------------------------------------------
1344 * WLAN_HAL_CONFIG_STA_REQ
1345 * ----------------------------------------------------------------------*/
1346
1347typedef PACKED_PRE struct PACKED_POST {
1348 /*
1349 * For Self STA Entry: this represents Self Mode.
1350 * For Peer Stations, this represents the mode of the peer.
1351 * On Station:
1352 * --this mode is updated when PE adds the Self Entry.
1353 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1354 * ON AP:
1355 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1356 * to indicate the self mode of the AP.
1357 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1358 */
1359
1360 tStaRateMode opRateMode;
1361 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1362 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1363 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1364 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1365 tANI_U16 reserved;
1366
1367 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1368 //First 26 bits are reserved for those Titan rates and
1369 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1370 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1371
1372 /*
1373 * 0-76 bits used, remaining reserved
1374 * bits 0-15 and 32 should be set.
1375 */
1376 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1377
1378 /*
1379 * RX Highest Supported Data Rate defines the highest data
1380 * rate that the STA is able to receive, in unites of 1Mbps.
1381 * This value is derived from "Supported MCS Set field" inside
1382 * the HT capability element.
1383 */
1384 tANI_U16 rxHighestDataRate;
1385
1386 /* Indicates the Maximum MCS that can be received for each number
1387 * of spacial streams */
1388 tANI_U16 vhtRxMCSMap;
1389
1390 /*Indicate the highest VHT data rate that the STA is able to receive*/
1391 tANI_U16 vhtRxHighestDataRate;
1392
1393 /* Indicates the Maximum MCS that can be transmitted for each number
1394 * of spacial streams */
1395 tANI_U16 vhtTxMCSMap;
1396
1397 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1398 tANI_U16 vhtTxHighestDataRate;
1399
1400} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1401
1402typedef PACKED_PRE struct PACKED_POST
1403{
1404 /*BSSID of STA*/
1405 tSirMacAddr bssId;
1406
1407 /*ASSOC ID, as assigned by UMAC*/
1408 tANI_U16 assocId;
1409
1410 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1411 tANI_U8 staType;
1412
1413 /*Short Preamble Supported.*/
1414 tANI_U8 shortPreambleSupported;
1415
1416 /*MAC Address of STA*/
1417 tSirMacAddr staMac;
1418
1419 /*Listen interval of the STA*/
1420 tANI_U16 listenInterval;
1421
1422 /*Support for 11e/WMM*/
1423 tANI_U8 wmmEnabled;
1424
1425 /*11n HT capable STA*/
1426 tANI_U8 htCapable;
1427
1428 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1429 tANI_U8 txChannelWidthSet;
1430
1431 /*RIFS mode 0 - NA, 1 - Allowed */
1432 tANI_U8 rifsMode;
1433
1434 /*L-SIG TXOP Protection mechanism
1435 0 - No Support, 1 - Supported
1436 SG - there is global field */
1437 tANI_U8 lsigTxopProtection;
1438
1439 /*Max Ampdu Size supported by STA. TPE programming.
1440 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1441 tANI_U8 maxAmpduSize;
1442
1443 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1444 tANI_U8 maxAmpduDensity;
1445
1446 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1447 tANI_U8 maxAmsduSize;
1448
1449 /*Short GI support for 40Mhz packets*/
1450 tANI_U8 fShortGI40Mhz;
1451
1452 /*Short GI support for 20Mhz packets*/
1453 tANI_U8 fShortGI20Mhz;
1454
1455 /*Robust Management Frame (RMF) enabled/disabled*/
1456 tANI_U8 rmfEnabled;
1457
1458 /* The unicast encryption type in the association */
1459 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001460
1461 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001462 will set this flag in case of RE-ASSOC, where we want to reuse the old
1463 STA ID. 0 = Add, 1 = Update*/
1464 tANI_U8 action;
1465
1466 /*U-APSD Flags: 1b per AC. Encoded as follows:
1467 b7 b6 b5 b4 b3 b2 b1 b0 =
1468 X X X X BE BK VI VO */
1469 tANI_U8 uAPSD;
1470
1471 /*Max SP Length*/
1472 tANI_U8 maxSPLen;
1473
1474 /*11n Green Field preamble support
1475 0 - Not supported, 1 - Supported */
1476 tANI_U8 greenFieldCapable;
1477
1478 /*MIMO Power Save mode*/
1479 tSirMacHTMIMOPowerSaveState mimoPS;
1480
1481 /*Delayed BA Support*/
1482 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001483
Jeff Johnsone7245742012-09-05 17:12:55 -07001484 /*Max AMPDU duration in 32us*/
1485 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001486
Jeff Johnsone7245742012-09-05 17:12:55 -07001487 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1488 it to 0 if AP does not support it. This indication is sent to HAL and
1489 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1490 tANI_U8 fDsssCckMode40Mhz;
1491
1492 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1493 Retained for backward compalibity with existing HAL code*/
1494 tANI_U8 staIdx;
1495
1496 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1497 Retained for backward compalibity with existing HAL code*/
1498 tANI_U8 bssIdx;
1499
1500 tANI_U8 p2pCapableSta;
1501
1502 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001503 tANI_U8 htLdpcEnabled:1;
1504 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001505 tANI_U8 vhtTxBFEnabled:1;
1506 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001507
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001508 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001509 tSirSupportedRates_V1 supportedRates;
1510
1511 tANI_U8 vhtCapable;
1512 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001513
Jeff Johnsone7245742012-09-05 17:12:55 -07001514} tConfigStaParams_V1, *tpConfigStaParams_V1;
1515
Jeff Johnson295189b2012-06-20 16:38:30 -07001516typedef PACKED_PRE struct PACKED_POST
1517{
1518 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001519 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001520 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001521 tConfigStaParams_V1 configStaParams_V1;
1522 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001523} tConfigStaReqMsg, *tpConfigStaReqMsg;
1524
1525/*---------------------------------------------------------------------------
1526 WLAN_HAL_CONFIG_STA_RSP
1527---------------------------------------------------------------------------*/
1528
1529typedef PACKED_PRE struct PACKED_POST
1530{
1531 /*success or failure */
1532 tANI_U32 status;
1533
1534 /* Station index; valid only when 'status' field value SUCCESS */
1535 tANI_U8 staIdx;
1536
1537 /* BSSID Index of BSS to which the station is associated */
1538 tANI_U8 bssIdx;
1539
1540 /* DPU Index for PTK */
1541 tANI_U8 dpuIndex;
1542
Jeff Johnson32d95a32012-09-10 13:15:23 -07001543 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001544 tANI_U8 bcastDpuIndex;
1545
1546 /*DPU Index for IGTK */
1547 tANI_U8 bcastMgmtDpuIdx;
1548
1549 /*PTK DPU signature*/
1550 tANI_U8 ucUcastSig;
1551
1552 /*GTK DPU isignature*/
1553 tANI_U8 ucBcastSig;
1554
1555 /* IGTK DPU signature*/
1556 tANI_U8 ucMgmtSig;
1557
1558 tANI_U8 p2pCapableSta;
1559
1560}tConfigStaRspParams, *tpConfigStaRspParams;
1561
1562typedef PACKED_PRE struct PACKED_POST
1563{
1564 tHalMsgHeader header;
1565 tConfigStaRspParams configStaRspParams;
1566}tConfigStaRspMsg, *tpConfigStaRspMsg;
1567
1568/*---------------------------------------------------------------------------
1569 WLAN_HAL_DELETE_STA_REQ
1570---------------------------------------------------------------------------*/
1571
1572/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001573typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001574{
1575 /* Index of STA to delete */
1576 tANI_U8 staIdx;
1577} tDeleteStaParams, *tpDeleteStaParams;
1578
1579/* Delete STA Request message*/
1580typedef PACKED_PRE struct PACKED_POST
1581{
1582 tHalMsgHeader header;
1583 tDeleteStaParams delStaParams;
1584} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1585
1586/*---------------------------------------------------------------------------
1587 WLAN_HAL_DELETE_STA_RSP
1588---------------------------------------------------------------------------*/
1589
1590/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001591typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001592{
1593 /*success or failure */
1594 tANI_U32 status;
1595
1596 /* Index of STA deleted */
1597 tANI_U8 staId;
1598} tDeleteStaRspParams, *tpDeleteStaRspParams;
1599
1600/* Delete STA Response message*/
1601typedef PACKED_PRE struct PACKED_POST
1602{
1603 tHalMsgHeader header;
1604 tDeleteStaRspParams delStaRspParams;
1605} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1606
1607/*---------------------------------------------------------------------------
1608 WLAN_HAL_CONFIG_BSS_REQ
1609---------------------------------------------------------------------------*/
1610
1611//12 Bytes long because this structure can be used to represent rate
1612//and extended rate set IEs. The parser assume this to be at least 12
1613typedef __ani_attr_pre_packed struct sSirMacRateSet
1614{
1615 tANI_U8 numRates;
1616 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1617} __ani_attr_packed tSirMacRateSet;
1618
1619// access category record
1620typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1621{
1622#ifndef ANI_LITTLE_BIT_ENDIAN
1623 tANI_U8 rsvd : 1;
1624 tANI_U8 aci : 2;
1625 tANI_U8 acm : 1;
1626 tANI_U8 aifsn : 4;
1627#else
1628 tANI_U8 aifsn : 4;
1629 tANI_U8 acm : 1;
1630 tANI_U8 aci : 2;
1631 tANI_U8 rsvd : 1;
1632#endif
1633} __ani_attr_packed tSirMacAciAifsn;
1634
1635// contention window size
1636typedef __ani_attr_pre_packed struct sSirMacCW
1637{
1638#ifndef ANI_LITTLE_BIT_ENDIAN
1639 tANI_U8 max : 4;
1640 tANI_U8 min : 4;
1641#else
1642 tANI_U8 min : 4;
1643 tANI_U8 max : 4;
1644#endif
1645} __ani_attr_packed tSirMacCW;
1646
1647typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1648{
1649 tSirMacAciAifsn aci;
1650 tSirMacCW cw;
1651 tANI_U16 txoplimit;
1652} __ani_attr_packed tSirMacEdcaParamRecord;
1653
1654typedef __ani_attr_pre_packed struct sSirMacSSid
1655{
1656 tANI_U8 length;
1657 tANI_U8 ssId[32];
1658} __ani_attr_packed tSirMacSSid;
1659
1660// Concurrency role. These are generic IDs that identify the various roles
1661// in the software system.
1662typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001663 HAL_STA_MODE=0,
1664 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001665 HAL_P2P_CLIENT_MODE,
1666 HAL_P2P_GO_MODE,
1667 HAL_MONITOR_MODE,
1668} tHalConMode;
1669
1670//This is a bit pattern to be set for each mode
1671//bit 0 - sta mode
1672//bit 1 - ap mode
1673//bit 2 - p2p client mode
1674//bit 3 - p2p go mode
1675typedef enum
1676{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001677 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001678 HAL_SAP=2,
1679 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1680 HAL_P2P_CLIENT=4,
1681 HAL_P2P_GO=8,
1682 HAL_MAX_CONCURRENCY_PERSONA=4
1683} tHalConcurrencyMode;
1684
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001685// IFACE PERSONA for different Operating modes
1686typedef enum
1687{
1688 HAL_IFACE_UNKNOWN,
1689 HAL_IFACE_STA_MODE,
1690 HAL_IFACE_P2P_MODE,
1691 HAL_IFACE_MAX
1692} tHalIfacePersona;
1693
Jeff Johnson295189b2012-06-20 16:38:30 -07001694typedef PACKED_PRE struct PACKED_POST
1695{
1696 /* BSSID */
1697 tSirMacAddr bssId;
1698
Jeff Johnson295189b2012-06-20 16:38:30 -07001699 /* Self Mac Address */
1700 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001701
1702 /* BSS type */
1703 tSirBssType bssType;
1704
1705 /*Operational Mode: AP =0, STA = 1*/
1706 tANI_U8 operMode;
1707
1708 /*Network Type*/
1709 tSirNwType nwType;
1710
1711 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1712 tANI_U8 shortSlotTimeSupported;
1713
1714 /*Co-exist with 11a STA*/
1715 tANI_U8 llaCoexist;
1716
1717 /*Co-exist with 11b STA*/
1718 tANI_U8 llbCoexist;
1719
1720 /*Co-exist with 11g STA*/
1721 tANI_U8 llgCoexist;
1722
1723 /*Coexistence with 11n STA*/
1724 tANI_U8 ht20Coexist;
1725
1726 /*Non GF coexist flag*/
1727 tANI_U8 llnNonGFCoexist;
1728
1729 /*TXOP protection support*/
1730 tANI_U8 fLsigTXOPProtectionFullSupport;
1731
1732 /*RIFS mode*/
1733 tANI_U8 fRIFSMode;
1734
1735 /*Beacon Interval in TU*/
1736 tSirMacBeaconInterval beaconInterval;
1737
1738 /*DTIM period*/
1739 tANI_U8 dtimPeriod;
1740
1741 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1742 tANI_U8 txChannelWidthSet;
1743
1744 /*Operating channel*/
1745 tANI_U8 currentOperChannel;
1746
1747 /*Extension channel for channel bonding*/
1748 tANI_U8 currentExtChannel;
1749
1750 /*Reserved to align next field on a dword boundary*/
1751 tANI_U8 reserved;
1752
Jeff Johnsone7245742012-09-05 17:12:55 -07001753 /*SSID of the BSS*/
1754 tSirMacSSid ssId;
1755
1756 /*HAL should update the existing BSS entry, if this flag is set.
1757 UMAC will set this flag in case of reassoc, where we want to resue the
1758 the old BSSID and still return success 0 = Add, 1 = Update*/
1759 tANI_U8 action;
1760
1761 /* MAC Rate Set */
1762 tSirMacRateSet rateSet;
1763
1764 /*Enable/Disable HT capabilities of the BSS*/
1765 tANI_U8 htCapable;
1766
1767 // Enable/Disable OBSS protection
1768 tANI_U8 obssProtEnabled;
1769
1770 /*RMF enabled/disabled*/
1771 tANI_U8 rmfEnabled;
1772
1773 /*HT Operating Mode operating mode of the 802.11n STA*/
1774 tSirMacHTOperatingMode htOperMode;
1775
1776 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1777 tANI_U8 dualCTSProtection;
1778
1779 /* Probe Response Max retries */
1780 tANI_U8 ucMaxProbeRespRetryLimit;
1781
1782 /* To Enable Hidden ssid */
1783 tANI_U8 bHiddenSSIDEn;
1784
1785 /* To Enable Disable FW Proxy Probe Resp */
1786 tANI_U8 bProxyProbeRespEn;
1787
1788 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1789 EDCA params or might not desire to apply EDCA params during config BSS.
1790 0 implies Not Valid ; Non-Zero implies valid*/
1791 tANI_U8 edcaParamsValid;
1792
1793 /*EDCA Parameters for Best Effort Access Category*/
1794 tSirMacEdcaParamRecord acbe;
1795
1796 /*EDCA Parameters forBackground Access Category*/
1797 tSirMacEdcaParamRecord acbk;
1798
1799 /*EDCA Parameters for Video Access Category*/
1800 tSirMacEdcaParamRecord acvi;
1801
1802 /*EDCA Parameters for Voice Access Category*/
1803 tSirMacEdcaParamRecord acvo;
1804
1805#ifdef WLAN_FEATURE_VOWIFI_11R
1806 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1807 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1808#endif
1809
1810 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1811 tANI_U8 halPersona;
1812
1813 tANI_U8 bSpectrumMgtEnable;
1814
1815 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1816 tANI_S8 txMgmtPower;
1817 /*maxTxPower has max power to be used after applying the power constraint if any */
1818 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001819 /*Context of the station being added in HW
1820 Add a STA entry for "itself" -
1821 On AP - Add the AP itself in an "STA context"
1822 On STA - Add the AP to which this STA is joining in an "STA context" */
1823 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001824} tConfigBssParams, * tpConfigBssParams;
1825
1826
1827/*--------------------------------------------------------------------------
1828 * WLAN_HAL_CONFIG_BSS_REQ
1829 *--------------------------------------------------------------------------*/
1830typedef PACKED_PRE struct PACKED_POST
1831{
1832 /* BSSID */
1833 tSirMacAddr bssId;
1834
Jeff Johnsone7245742012-09-05 17:12:55 -07001835 /* Self Mac Address */
1836 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001837
1838 /* BSS type */
1839 tSirBssType bssType;
1840
1841 /*Operational Mode: AP =0, STA = 1*/
1842 tANI_U8 operMode;
1843
1844 /*Network Type*/
1845 tSirNwType nwType;
1846
1847 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1848 tANI_U8 shortSlotTimeSupported;
1849
1850 /*Co-exist with 11a STA*/
1851 tANI_U8 llaCoexist;
1852
1853 /*Co-exist with 11b STA*/
1854 tANI_U8 llbCoexist;
1855
1856 /*Co-exist with 11g STA*/
1857 tANI_U8 llgCoexist;
1858
1859 /*Coexistence with 11n STA*/
1860 tANI_U8 ht20Coexist;
1861
1862 /*Non GF coexist flag*/
1863 tANI_U8 llnNonGFCoexist;
1864
1865 /*TXOP protection support*/
1866 tANI_U8 fLsigTXOPProtectionFullSupport;
1867 /*RIFS mode*/
1868 tANI_U8 fRIFSMode;
1869
1870 /*Beacon Interval in TU*/
1871 tSirMacBeaconInterval beaconInterval;
1872
1873 /*DTIM period*/
1874 tANI_U8 dtimPeriod;
1875
1876 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1877 tANI_U8 txChannelWidthSet;
1878
1879 /*Operating channel*/
1880 tANI_U8 currentOperChannel;
1881
1882 /*Extension channel for channel bonding*/
1883 tANI_U8 currentExtChannel;
1884
1885 /*Reserved to align next field on a dword boundary*/
1886 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001887
1888 /*SSID of the BSS*/
1889 tSirMacSSid ssId;
1890
1891 /*HAL should update the existing BSS entry, if this flag is set.
1892 UMAC will set this flag in case of reassoc, where we want to resue the
1893 the old BSSID and still return success 0 = Add, 1 = Update*/
1894 tANI_U8 action;
1895
1896 /* MAC Rate Set */
1897 tSirMacRateSet rateSet;
1898
1899 /*Enable/Disable HT capabilities of the BSS*/
1900 tANI_U8 htCapable;
1901
1902 // Enable/Disable OBSS protection
1903 tANI_U8 obssProtEnabled;
1904
1905 /*RMF enabled/disabled*/
1906 tANI_U8 rmfEnabled;
1907
1908 /*HT Operating Mode operating mode of the 802.11n STA*/
1909 tSirMacHTOperatingMode htOperMode;
1910
1911 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1912 tANI_U8 dualCTSProtection;
1913
1914 /* Probe Response Max retries */
1915 tANI_U8 ucMaxProbeRespRetryLimit;
1916
1917 /* To Enable Hidden ssid */
1918 tANI_U8 bHiddenSSIDEn;
1919
1920 /* To Enable Disable FW Proxy Probe Resp */
1921 tANI_U8 bProxyProbeRespEn;
1922
Jeff Johnson32d95a32012-09-10 13:15:23 -07001923 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1924 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001925 0 implies Not Valid ; Non-Zero implies valid*/
1926 tANI_U8 edcaParamsValid;
1927
1928 /*EDCA Parameters for Best Effort Access Category*/
1929 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001930
Jeff Johnson295189b2012-06-20 16:38:30 -07001931 /*EDCA Parameters forBackground Access Category*/
1932 tSirMacEdcaParamRecord acbk;
1933
1934 /*EDCA Parameters for Video Access Category*/
1935 tSirMacEdcaParamRecord acvi;
1936
1937 /*EDCA Parameters for Voice Access Category*/
1938 tSirMacEdcaParamRecord acvo;
1939
1940#ifdef WLAN_FEATURE_VOWIFI_11R
1941 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1942 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1943#endif
1944
Jeff Johnson32d95a32012-09-10 13:15:23 -07001945 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001946 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001947
Jeff Johnson295189b2012-06-20 16:38:30 -07001948 tANI_U8 bSpectrumMgtEnable;
1949
1950 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1951 tANI_S8 txMgmtPower;
1952 /*maxTxPower has max power to be used after applying the power constraint if any */
1953 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001954 /*Context of the station being added in HW
1955 Add a STA entry for "itself" -
1956 On AP - Add the AP itself in an "STA context"
1957 On STA - Add the AP to which this STA is joining in an "STA context" */
1958 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001959
Jeff Johnsone7245742012-09-05 17:12:55 -07001960 tANI_U8 vhtCapable;
1961 tANI_U8 vhtTxChannelWidthSet;
1962} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001963
1964typedef PACKED_PRE struct PACKED_POST
1965{
1966 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001967 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001968 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001969 tConfigBssParams_V1 configBssParams_V1;
1970 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001971} tConfigBssReqMsg, *tpConfigBssReqMsg;
1972
1973/*---------------------------------------------------------------------------
1974 WLAN_HAL_CONFIG_BSS_RSP
1975---------------------------------------------------------------------------*/
1976
1977typedef PACKED_PRE struct PACKED_POST
1978{
1979 /* Success or Failure */
1980 tANI_U32 status;
1981
1982 /* BSS index allocated by HAL */
1983 tANI_U8 bssIdx;
1984
1985 /* DPU descriptor index for PTK */
1986 tANI_U8 dpuDescIndx;
1987
1988 /* PTK DPU signature */
1989 tANI_U8 ucastDpuSignature;
1990
1991 /* DPU descriptor index for GTK*/
1992 tANI_U8 bcastDpuDescIndx;
1993
1994 /* GTK DPU signature */
1995 tANI_U8 bcastDpuSignature;
1996
1997 /*DPU descriptor for IGTK*/
1998 tANI_U8 mgmtDpuDescIndx;
1999
2000 /* IGTK DPU signature */
2001 tANI_U8 mgmtDpuSignature;
2002
2003 /* Station Index for BSS entry*/
2004 tANI_U8 bssStaIdx;
2005
2006 /* Self station index for this BSS */
2007 tANI_U8 bssSelfStaIdx;
2008
2009 /* Bcast station for buffering bcast frames in AP role */
2010 tANI_U8 bssBcastStaIdx;
2011
2012 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2013 tSirMacAddr staMac;
2014
2015 /*HAL fills in the tx power used for mgmt frames in this field. */
2016 tANI_S8 txMgmtPower;
2017
2018} tConfigBssRspParams, * tpConfigBssRspParams;
2019
2020typedef PACKED_PRE struct PACKED_POST
2021{
2022 tHalMsgHeader header;
2023 tConfigBssRspParams configBssRspParams;
2024} tConfigBssRspMsg, *tpConfigBssRspMsg;
2025
2026/*---------------------------------------------------------------------------
2027 WLAN_HAL_DELETE_BSS_REQ
2028---------------------------------------------------------------------------*/
2029
2030typedef PACKED_PRE struct PACKED_POST
2031{
2032 /* BSS index to be deleted */
2033 tANI_U8 bssIdx;
2034
2035} tDeleteBssParams, *tpDeleteBssParams;
2036
2037typedef PACKED_PRE struct PACKED_POST
2038{
2039 tHalMsgHeader header;
2040 tDeleteBssParams deleteBssParams;
2041} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2042
2043/*---------------------------------------------------------------------------
2044 WLAN_HAL_DELETE_BSS_RSP
2045---------------------------------------------------------------------------*/
2046
2047typedef PACKED_PRE struct PACKED_POST
2048{
2049 /* Success or Failure */
2050 tANI_U32 status;
2051
2052 /* BSS index that has been deleted */
2053 tANI_U8 bssIdx;
2054
2055} tDeleteBssRspParams, *tpDeleteBssRspParams;
2056
2057typedef PACKED_PRE struct PACKED_POST
2058{
2059 tHalMsgHeader header;
2060 tDeleteBssRspParams deleteBssRspParams;
2061} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2062
2063/*---------------------------------------------------------------------------
2064 WLAN_HAL_JOIN_REQ
2065---------------------------------------------------------------------------*/
2066
2067typedef PACKED_PRE struct PACKED_POST
2068{
2069 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002070 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002071
2072 /*Indicates the channel to switch to.*/
2073 tANI_U8 ucChannel;
2074
2075 /* Self STA MAC */
2076 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002077
Jeff Johnson295189b2012-06-20 16:38:30 -07002078 /*Local power constraint*/
2079 tANI_U8 ucLocalPowerConstraint;
2080
2081 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002082 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002083
2084 /*link State*/
2085 tSirLinkState linkState;
2086
2087 /* Max TX power */
2088 tANI_S8 maxTxPower;
2089
2090} tHalJoinReqParams, *tpHalJoinReqParams;
2091
2092typedef PACKED_PRE struct PACKED_POST
2093{
2094 tHalMsgHeader header;
2095 tHalJoinReqParams joinReqParams;
2096} tHalJoinReqMsg, *tpHalJoinReqMsg;
2097
2098/*---------------------------------------------------------------------------
2099 WLAN_HAL_JOIN_RSP
2100---------------------------------------------------------------------------*/
2101
2102typedef PACKED_PRE struct PACKED_POST
2103{
2104 /*success or failure */
2105 tANI_U32 status;
2106
2107 /* HAL fills in the tx power used for mgmt frames in this field */
2108 tPowerdBm txMgmtPower;
2109
2110}tHalJoinRspParams, *tpHalJoinRspParams;
2111
2112typedef PACKED_PRE struct PACKED_POST
2113{
2114 tHalMsgHeader header;
2115 tHalJoinRspParams joinRspParams;
2116}tHalJoinRspMsg, *tpHalJoinRspMsg;
2117
2118/*---------------------------------------------------------------------------
2119 WLAN_HAL_POST_ASSOC_REQ
2120---------------------------------------------------------------------------*/
2121
2122typedef PACKED_PRE struct PACKED_POST
2123{
2124 tConfigStaParams configStaParams;
2125 tConfigBssParams configBssParams;
2126} tPostAssocReqParams, *tpPostAssocReqParams;
2127
2128typedef PACKED_PRE struct PACKED_POST
2129{
2130 tHalMsgHeader header;
2131 tPostAssocReqParams postAssocReqParams;
2132} tPostAssocReqMsg, *tpPostAssocReqMsg;
2133
2134/*---------------------------------------------------------------------------
2135 WLAN_HAL_POST_ASSOC_RSP
2136---------------------------------------------------------------------------*/
2137
2138typedef PACKED_PRE struct PACKED_POST
2139{
2140 tConfigStaRspParams configStaRspParams;
2141 tConfigBssRspParams configBssRspParams;
2142} tPostAssocRspParams, *tpPostAssocRspParams;
2143
2144typedef PACKED_PRE struct PACKED_POST
2145{
2146 tHalMsgHeader header;
2147 tPostAssocRspParams postAssocRspParams;
2148} tPostAssocRspMsg, *tpPostAssocRspMsg;
2149
2150/*---------------------------------------------------------------------------
2151 WLAN_HAL_SET_BSSKEY_REQ
2152---------------------------------------------------------------------------*/
2153
2154/*
2155 * This is used by PE to create a set of WEP keys for a given BSS.
2156 */
2157typedef PACKED_PRE struct PACKED_POST
2158{
2159 /*BSS Index of the BSS*/
2160 tANI_U8 bssIdx;
2161
2162 /*Encryption Type used with peer*/
2163 tAniEdType encType;
2164
2165 /*Number of keys*/
2166 tANI_U8 numKeys;
2167
2168 /*Array of keys.*/
2169 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002170
Jeff Johnson295189b2012-06-20 16:38:30 -07002171 /*Control for Replay Count, 1= Single TID based replay count on Tx
2172 0 = Per TID based replay count on TX */
2173 tANI_U8 singleTidRc;
2174} tSetBssKeyParams, *tpSetBssKeyParams;
2175
2176typedef PACKED_PRE struct PACKED_POST
2177{
2178 tHalMsgHeader header;
2179 tSetBssKeyParams setBssKeyParams;
2180} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2181
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002182/* tagged version of set bss key */
2183typedef PACKED_PRE struct PACKED_POST
2184{
2185 tSetBssKeyReqMsg Msg;
2186 uint32 Tag;
2187} tSetBssKeyReqMsgTagged;
2188
Jeff Johnson295189b2012-06-20 16:38:30 -07002189/*---------------------------------------------------------------------------
2190 WLAN_HAL_SET_BSSKEY_RSP
2191---------------------------------------------------------------------------*/
2192typedef PACKED_PRE struct PACKED_POST
2193{
2194 /*success or failure */
2195 tANI_U32 status;
2196
2197} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2198
2199typedef PACKED_PRE struct PACKED_POST
2200{
2201 tHalMsgHeader header;
2202 tSetBssKeyRspParams setBssKeyRspParams;
2203} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2204
2205/*---------------------------------------------------------------------------
2206 WLAN_HAL_SET_STAKEY_REQ,
2207---------------------------------------------------------------------------*/
2208
2209/*
2210 * This is used by PE to configure the key information on a given station.
2211 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2212 * a preconfigured key from a BSS the station assoicated with; otherwise
2213 * a new key descriptor is created based on the key field.
2214 */
2215
2216typedef PACKED_PRE struct PACKED_POST
2217{
2218 tHalMsgHeader header;
2219 tSetStaKeyParams setStaKeyParams;
2220} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2221
2222/*---------------------------------------------------------------------------
2223 WLAN_HAL_SET_STAKEY_RSP,
2224---------------------------------------------------------------------------*/
2225typedef PACKED_PRE struct PACKED_POST
2226{
2227 /*success or failure */
2228 tANI_U32 status;
2229
2230} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2231
2232typedef PACKED_PRE struct PACKED_POST
2233{
2234 tHalMsgHeader header;
2235 tSetStaKeyRspParams setStaKeyRspParams;
2236} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2237
2238/*---------------------------------------------------------------------------
2239 WLAN_HAL_RMV_BSSKEY_REQ,
2240---------------------------------------------------------------------------*/
2241/*
2242 * This is used by PE to remove keys for a given BSS.
2243 */
2244typedef PACKED_PRE struct PACKED_POST
2245
2246{
2247 /*BSS Index of the BSS*/
2248 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002249
Jeff Johnson295189b2012-06-20 16:38:30 -07002250 /*Encryption Type used with peer*/
2251 tAniEdType encType;
2252
2253 /*Key Id*/
2254 tANI_U8 keyId;
2255
2256 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2257 tAniWepType wepType;
2258
2259} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2260
2261typedef PACKED_PRE struct PACKED_POST
2262{
2263 tHalMsgHeader header;
2264 tRemoveBssKeyParams removeBssKeyParams;
2265} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2266
2267/*---------------------------------------------------------------------------
2268 WLAN_HAL_RMV_BSSKEY_RSP,
2269---------------------------------------------------------------------------*/
2270typedef PACKED_PRE struct PACKED_POST
2271{
2272 /*success or failure */
2273 tANI_U32 status;
2274
2275} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2276
2277typedef PACKED_PRE struct PACKED_POST
2278{
2279 tHalMsgHeader header;
2280 tRemoveBssKeyRspParams removeBssKeyRspParams;
2281} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2282
2283/*---------------------------------------------------------------------------
2284 WLAN_HAL_RMV_STAKEY_REQ,
2285---------------------------------------------------------------------------*/
2286/*
2287 * This is used by PE to Remove the key information on a given station.
2288 */
2289typedef PACKED_PRE struct PACKED_POST
2290{
2291 /*STA Index*/
2292 tANI_U16 staIdx;
2293
2294 /*Encryption Type used with peer*/
2295 tAniEdType encType;
2296
2297 /*Key Id*/
2298 tANI_U8 keyId;
2299
2300 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2301 the same key is used for both broadcast and unicast.*/
2302 tANI_BOOLEAN unicast;
2303
2304} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2305
2306typedef PACKED_PRE struct PACKED_POST
2307{
2308 tHalMsgHeader header;
2309 tRemoveStaKeyParams removeStaKeyParams;
2310} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2311
2312/*---------------------------------------------------------------------------
2313 WLAN_HAL_RMV_STAKEY_RSP,
2314---------------------------------------------------------------------------*/
2315typedef PACKED_PRE struct PACKED_POST
2316{
2317 /*success or failure */
2318 tANI_U32 status;
2319} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2320
2321typedef PACKED_PRE struct PACKED_POST
2322{
2323 tHalMsgHeader header;
2324 tRemoveStaKeyRspParams removeStaKeyRspParams;
2325} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2326
Jeff Johnsone7245742012-09-05 17:12:55 -07002327#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002328
Jeff Johnsone7245742012-09-05 17:12:55 -07002329#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002330#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002331#endif
2332
2333#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002334#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002335#endif
2336
2337/*-------------------------------------------------------------------------
2338WLAN_HAL_START_OEM_DATA_REQ
2339--------------------------------------------------------------------------*/
2340typedef PACKED_PRE struct PACKED_POST
2341{
2342 tANI_U32 status;
2343 tSirMacAddr selfMacAddr;
2344 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2345} tStartOemDataReqParams, *tpStartOemDataReqParams;
2346
2347typedef PACKED_PRE struct PACKED_POST
2348{
2349 tHalMsgHeader header;
2350 tStartOemDataReqParams startOemDataReqParams;
2351} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2352
2353/*-------------------------------------------------------------------------
2354WLAN_HAL_START_OEM_DATA_RSP
2355--------------------------------------------------------------------------*/
2356
2357typedef PACKED_PRE struct PACKED_POST
2358{
2359 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2360} tStartOemDataRspParams, *tpStartOemDataRspParams;
2361
2362typedef PACKED_PRE struct PACKED_POST
2363{
2364 tHalMsgHeader header;
2365 tStartOemDataRspParams startOemDataRspParams;
2366} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2367
2368#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002369
2370
2371
2372/*---------------------------------------------------------------------------
2373WLAN_HAL_CH_SWITCH_REQ
2374---------------------------------------------------------------------------*/
2375
2376typedef PACKED_PRE struct PACKED_POST
2377{
2378 /* Channel number */
2379 tANI_U8 channelNumber;
2380
2381 /* Local power constraint */
2382 tANI_U8 localPowerConstraint;
2383
2384 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002385 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002386
2387 //HAL fills in the tx power used for mgmt frames in this field.
2388 tPowerdBm txMgmtPower;
2389
2390 /* Max TX power */
2391 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002392
Jeff Johnson295189b2012-06-20 16:38:30 -07002393 /* Self STA MAC */
2394 tSirMacAddr selfStaMacAddr;
2395
2396 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2397 this should be applied only to that session*/
2398 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2399 * bssid needs to be out of the VOWifi feature flag */
2400 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2401 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2402 */
2403 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002404
Jeff Johnson295189b2012-06-20 16:38:30 -07002405}tSwitchChannelParams, *tpSwitchChannelParams;
2406
2407typedef PACKED_PRE struct PACKED_POST
2408{
2409 tHalMsgHeader header;
2410 tSwitchChannelParams switchChannelParams;
2411} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2412
2413/*---------------------------------------------------------------------------
2414WLAN_HAL_CH_SWITCH_RSP
2415---------------------------------------------------------------------------*/
2416
2417typedef PACKED_PRE struct PACKED_POST
2418{
2419 /* Status */
2420 tANI_U32 status;
2421
2422 /* Channel number - same as in request*/
2423 tANI_U8 channelNumber;
2424
2425 /* HAL fills in the tx power used for mgmt frames in this field */
2426 tPowerdBm txMgmtPower;
2427
2428 /* BSSID needed to identify session - same as in request*/
2429 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002430
Jeff Johnson295189b2012-06-20 16:38:30 -07002431}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2432
2433typedef PACKED_PRE struct PACKED_POST
2434{
2435 tHalMsgHeader header;
2436 tSwitchChannelRspParams switchChannelRspParams;
2437} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2438
2439/*---------------------------------------------------------------------------
2440WLAN_HAL_UPD_EDCA_PARAMS_REQ
2441---------------------------------------------------------------------------*/
2442
2443typedef PACKED_PRE struct PACKED_POST
2444{
2445 /*BSS Index*/
2446 tANI_U16 bssIdx;
2447
2448 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002449 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002450
2451 /* Background */
2452 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002453
Jeff Johnson295189b2012-06-20 16:38:30 -07002454 /* Video */
2455 tSirMacEdcaParamRecord acvi;
2456
2457 /* Voice */
2458 tSirMacEdcaParamRecord acvo;
2459
2460} tEdcaParams, *tpEdcaParams;
2461
2462typedef PACKED_PRE struct PACKED_POST
2463{
2464 tHalMsgHeader header;
2465 tEdcaParams edcaParams;
2466} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2467
2468/*---------------------------------------------------------------------------
2469WLAN_HAL_UPD_EDCA_PARAMS_RSP
2470---------------------------------------------------------------------------*/
2471typedef PACKED_PRE struct PACKED_POST
2472{
2473 /*success or failure */
2474 tANI_U32 status;
2475} tEdcaRspParams, *tpEdcaRspParams;
2476
2477typedef PACKED_PRE struct PACKED_POST
2478{
2479 tHalMsgHeader header;
2480 tEdcaRspParams edcaRspParams;
2481} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2482
2483
2484
2485/*---------------------------------------------------------------------------
2486 * WLAN_HAL_GET_STATS_REQ
2487 *--------------------------------------------------------------------------*/
2488typedef PACKED_PRE struct PACKED_POST
2489
2490{
2491 /* Index of STA to which the statistics */
2492 tANI_U16 staIdx;
2493
2494 /* Encryption mode */
2495 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002496
Jeff Johnson295189b2012-06-20 16:38:30 -07002497 /* status */
2498 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002499
Jeff Johnson295189b2012-06-20 16:38:30 -07002500 /* Statistics */
2501 tANI_U32 sendBlocks;
2502 tANI_U32 recvBlocks;
2503 tANI_U32 replays;
2504 tANI_U8 micErrorCnt;
2505 tANI_U32 protExclCnt;
2506 tANI_U16 formatErrCnt;
2507 tANI_U16 unDecryptableCnt;
2508 tANI_U32 decryptErrCnt;
2509 tANI_U32 decryptOkCnt;
2510} tDpuStatsParams, * tpDpuStatsParams;
2511
2512typedef PACKED_PRE struct PACKED_POST
2513{
2514 /* Valid STA Idx for per STA stats request */
2515 tANI_U32 staId;
2516
2517 /* Categories of stats requested as specified in eHalStatsMask*/
2518 tANI_U32 statsMask;
2519}tHalStatsReqParams, *tpHalStatsReqParams;
2520
2521typedef PACKED_PRE struct PACKED_POST
2522{
2523 tHalMsgHeader header;
2524 tHalStatsReqParams statsReqParams;
2525} tHalStatsReqMsg, *tpHalStatsReqMsg;
2526
2527/*---------------------------------------------------------------------------
2528 * WLAN_HAL_GET_STATS_RSP
2529 *--------------------------------------------------------------------------*/
2530
2531typedef PACKED_PRE struct PACKED_POST
2532{
2533 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2534 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2535 // station successfully transmitted after more than one retransmission attempt
2536
Jeff Johnson32d95a32012-09-10 13:15:23 -07002537 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2538 //(with and without retries, including multi-cast, broadcast)
2539 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2540 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002541 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2542 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2543 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2544 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 -07002545 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2546 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 -07002547 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2548 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 -07002549 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2550 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002551 //to provide this.
2552}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2553
2554
2555// defines tx_rate_flags
2556typedef enum eTxRateInfo
2557{
2558 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2559 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2560 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2561 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2562 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2563} tTxrateinfoflags;
2564
2565
2566typedef PACKED_PRE struct PACKED_POST
2567{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002568 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 -07002569 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002570 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 -07002571 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002572 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2573 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002574 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002575 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2576 //for eg: if it is 10.5dBm, the value would be 105
2577 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2578 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002579
Jeff Johnson32d95a32012-09-10 13:15:23 -07002580 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2581 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002582 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002583 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2584 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002585}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2586
2587typedef PACKED_PRE struct PACKED_POST
2588{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002589 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2590 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002591 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002592 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 -07002593 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002594 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 -07002595 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002596 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 -07002597 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002598 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 -07002599 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002600 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 -07002601 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002602 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 -07002603 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002604 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 -07002605 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002606 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 -07002607 //decrypted
2608 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2609
2610}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002611
Jeff Johnson295189b2012-06-20 16:38:30 -07002612typedef PACKED_PRE struct PACKED_POST
2613{
2614 tAniGlobalSecurityStats ucStats;
2615 tAniGlobalSecurityStats mcbcStats;
2616}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2617
2618typedef PACKED_PRE struct PACKED_POST
2619{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002620 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2621 //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 -07002622 //address 1 field
2623 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 -07002624 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 -07002625 //primary channel
2626 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 -07002627 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 -07002628 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002629 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2630 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002631 //decoded correctly
2632}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2633
2634typedef PACKED_PRE struct PACKED_POST
2635{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002636 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 -07002637 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002638 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2639 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 -07002640 //is transmitted
2641}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2642
2643typedef PACKED_PRE struct PACKED_POST
2644{
2645 /* Success or Failure */
2646 tANI_U32 status;
2647
2648 /* STA Idx */
2649 tANI_U32 staId;
2650
2651 /* Categories of STATS being returned as per eHalStatsMask*/
2652 tANI_U32 statsMask;
2653
2654 /* message type is same as the request type */
2655 tANI_U16 msgType;
2656
2657 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002658 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002659
2660} tHalStatsRspParams, *tpHalStatsRspParams;
2661
2662
2663
2664typedef PACKED_PRE struct PACKED_POST
2665{
2666 tHalMsgHeader header;
2667 tHalStatsRspParams statsRspParams;
2668} tHalStatsRspMsg, *tpHalStatsRspMsg;
2669
2670/*---------------------------------------------------------------------------
2671 * WLAN_HAL_SET_LINK_ST_REQ
2672 *--------------------------------------------------------------------------*/
2673typedef PACKED_PRE struct PACKED_POST
2674{
2675 tSirMacAddr bssid;
2676 tSirLinkState state;
2677 tSirMacAddr selfMacAddr;
2678} tLinkStateParams, *tpLinkStateParams;
2679
2680typedef PACKED_PRE struct PACKED_POST
2681{
2682 tHalMsgHeader header;
2683 tLinkStateParams linkStateParams;
2684} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2685
2686/*---------------------------------------------------------------------------
2687 * WLAN_HAL_SET_LINK_ST_RSP
2688 *--------------------------------------------------------------------------*/
2689
2690typedef PACKED_PRE struct PACKED_POST
2691{
2692 /*success or failure */
2693 tANI_U32 status;
2694} tLinkStateRspParams, *tpLinkStateRspParams;
2695
2696typedef PACKED_PRE struct PACKED_POST
2697{
2698 tHalMsgHeader header;
2699 tLinkStateRspParams linkStateRspParams;
2700} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2701
2702/*---------------------------------------------------------------------------
2703 * WLAN_HAL_ADD_TS_REQ
2704 *--------------------------------------------------------------------------*/
2705
2706/* TSPEC Params */
2707typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2708{
Jeff Johnson295189b2012-06-20 16:38:30 -07002709 tANI_U16 trafficType : 1;
2710 tANI_U16 tsid : 4;
2711 tANI_U16 direction : 2;
2712 tANI_U16 accessPolicy : 2;
2713 tANI_U16 aggregation : 1;
2714 tANI_U16 psb : 1;
2715 tANI_U16 userPrio : 3;
2716 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07002717} __ani_attr_packed tSirMacTSInfoTfc;
2718
2719/* Flag to schedule the traffic type */
2720typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2721{
Jeff Johnson295189b2012-06-20 16:38:30 -07002722 tANI_U8 schedule : 1;
2723 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07002724} __ani_attr_packed tSirMacTSInfoSch;
2725
2726/* Traffic and scheduling info */
2727typedef __ani_attr_pre_packed struct sSirMacTSInfo
2728{
2729 tSirMacTSInfoTfc traffic;
2730 tSirMacTSInfoSch schedule;
2731} __ani_attr_packed tSirMacTSInfo;
2732
2733/* Information elements */
2734typedef __ani_attr_pre_packed struct sSirMacTspecIE
2735{
2736 tANI_U8 type;
2737 tANI_U8 length;
2738 tSirMacTSInfo tsinfo;
2739 tANI_U16 nomMsduSz;
2740 tANI_U16 maxMsduSz;
2741 tANI_U32 minSvcInterval;
2742 tANI_U32 maxSvcInterval;
2743 tANI_U32 inactInterval;
2744 tANI_U32 suspendInterval;
2745 tANI_U32 svcStartTime;
2746 tANI_U32 minDataRate;
2747 tANI_U32 meanDataRate;
2748 tANI_U32 peakDataRate;
2749 tANI_U32 maxBurstSz;
2750 tANI_U32 delayBound;
2751 tANI_U32 minPhyRate;
2752 tANI_U16 surplusBw;
2753 tANI_U16 mediumTime;
2754}__ani_attr_packed tSirMacTspecIE;
2755
2756typedef PACKED_PRE struct PACKED_POST
2757{
2758 /* Station Index */
2759 tANI_U16 staIdx;
2760
2761 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2762 tANI_U16 tspecIdx;
2763
2764 /* To program TPE with required parameters */
2765 tSirMacTspecIE tspec;
2766
2767 /* U-APSD Flags: 1b per AC. Encoded as follows:
2768 b7 b6 b5 b4 b3 b2 b1 b0 =
2769 X X X X BE BK VI VO */
2770 tANI_U8 uAPSD;
2771
2772 /* These parameters are for all the access categories */
2773 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2774 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2775 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002776
Jeff Johnson295189b2012-06-20 16:38:30 -07002777} tAddTsParams, *tpAddTsParams;
2778
2779typedef PACKED_PRE struct PACKED_POST
2780{
2781 tHalMsgHeader header;
2782 tAddTsParams addTsParams;
2783} tAddTsReqMsg, *tpAddTsReqMsg;
2784
2785/*---------------------------------------------------------------------------
2786 * WLAN_HAL_ADD_TS_RSP
2787 *--------------------------------------------------------------------------*/
2788
2789typedef PACKED_PRE struct PACKED_POST
2790{
2791 /*success or failure */
2792 tANI_U32 status;
2793} tAddTsRspParams, *tpAddTsRspParams;
2794
2795typedef PACKED_PRE struct PACKED_POST
2796{
2797 tHalMsgHeader header;
2798 tAddTsRspParams addTsRspParams;
2799} tAddTsRspMsg, *tpAddTsRspMsg;
2800
2801
2802/*---------------------------------------------------------------------------
2803 * WLAN_HAL_DEL_TS_REQ
2804 *--------------------------------------------------------------------------*/
2805
2806typedef PACKED_PRE struct PACKED_POST
2807{
2808 /* Station Index */
2809 tANI_U16 staIdx;
2810
2811 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2812 tANI_U16 tspecIdx;
2813
2814 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002815 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002816
2817} tDelTsParams, *tpDelTsParams;
2818
2819typedef PACKED_PRE struct PACKED_POST
2820{
2821 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002822 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002823} tDelTsReqMsg, *tpDelTsReqMsg;
2824
2825/*---------------------------------------------------------------------------
2826 * WLAN_HAL_DEL_TS_RSP
2827 *--------------------------------------------------------------------------*/
2828
2829typedef PACKED_PRE struct PACKED_POST
2830{
2831 /*success or failure */
2832 tANI_U32 status;
2833} tDelTsRspParams, *tpDelTsRspParams;
2834
2835typedef PACKED_PRE struct PACKED_POST
2836{
2837 tHalMsgHeader header;
2838 tDelTsRspParams delTsRspParams;
2839} tDelTsRspMsg, *tpDelTsRspMsg;
2840
2841/* End of TSpec Parameters */
2842
2843/* Start of BLOCK ACK related Parameters */
2844
2845/*---------------------------------------------------------------------------
2846 * WLAN_HAL_ADD_BA_SESSION_REQ
2847 *--------------------------------------------------------------------------*/
2848
2849typedef PACKED_PRE struct PACKED_POST
2850{
2851 /* Station Index */
2852 tANI_U16 staIdx;
2853
2854 /* Peer MAC Address */
2855 tSirMacAddr peerMacAddr;
2856
2857 /* ADDBA Action Frame dialog token
2858 HAL will not interpret this object */
2859 tANI_U8 baDialogToken;
2860
2861 /* TID for which the BA is being setup
2862 This identifies the TC or TS of interest */
2863 tANI_U8 baTID;
2864
2865 /* 0 - Delayed BA (Not supported)
2866 1 - Immediate BA */
2867 tANI_U8 baPolicy;
2868
2869 /* Indicates the number of buffers for this TID (baTID)
2870 NOTE - This is the requested buffer size. When this
2871 is processed by HAL and subsequently by HDD, it is
2872 possible that HDD may change this buffer size. Any
2873 change in the buffer size should be noted by PE and
2874 advertized appropriately in the ADDBA response */
2875 tANI_U16 baBufferSize;
2876
2877 /* BA timeout in TU's 0 means no timeout will occur */
2878 tANI_U16 baTimeout;
2879
2880 /* b0..b3 - Fragment Number - Always set to 0
2881 b4..b15 - Starting Sequence Number of first MSDU
2882 for which this BA is setup */
2883 tANI_U16 baSSN;
2884
2885 /* ADDBA direction
2886 1 - Originator
2887 0 - Recipient */
2888 tANI_U8 baDirection;
2889} tAddBASessionParams, *tpAddBASessionParams;
2890
2891typedef PACKED_PRE struct PACKED_POST
2892{
2893 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002894 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002895}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2896
2897/*---------------------------------------------------------------------------
2898 * WLAN_HAL_ADD_BA_SESSION_RSP
2899 *--------------------------------------------------------------------------*/
2900
2901typedef PACKED_PRE struct PACKED_POST
2902{
2903 /*success or failure */
2904 tANI_U32 status;
2905
2906 /* Dialog token */
2907 tANI_U8 baDialogToken;
2908
2909 /* TID for which the BA session has been setup */
2910 tANI_U8 baTID;
2911
2912 /* BA Buffer Size allocated for the current BA session */
2913 tANI_U8 baBufferSize;
2914
2915 tANI_U8 baSessionID;
2916
2917 /* Reordering Window buffer */
2918 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002919
Jeff Johnson295189b2012-06-20 16:38:30 -07002920 /*Station Index to id the sta */
2921 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002922
Jeff Johnson295189b2012-06-20 16:38:30 -07002923 /* Starting Sequence Number */
2924 tANI_U16 SSN;
2925} tAddBASessionRspParams, *tpAddBASessionRspParams;
2926
2927typedef PACKED_PRE struct PACKED_POST
2928{
2929 tHalMsgHeader header;
2930 tAddBASessionRspParams addBASessionRspParams;
2931} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2932
2933/*---------------------------------------------------------------------------
2934 * WLAN_HAL_ADD_BA_REQ
2935 *--------------------------------------------------------------------------*/
2936
2937typedef PACKED_PRE struct PACKED_POST
2938{
2939 /* Session Id */
2940 tANI_U8 baSessionID;
2941
2942 /* Reorder Window Size */
2943 tANI_U8 winSize;
2944
2945#ifdef FEATURE_ON_CHIP_REORDERING
2946 tANI_BOOLEAN isReorderingDoneOnChip;
2947#endif
2948} tAddBAParams, *tpAddBAParams;
2949
2950typedef PACKED_PRE struct PACKED_POST
2951{
2952 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002953 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002954} tAddBAReqMsg, *tpAddBAReqMsg;
2955
2956
2957/*---------------------------------------------------------------------------
2958 * WLAN_HAL_ADD_BA_RSP
2959 *--------------------------------------------------------------------------*/
2960
2961typedef PACKED_PRE struct PACKED_POST
2962{
2963 /*success or failure */
2964 tANI_U32 status;
2965
2966 /* Dialog token */
2967 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002968
Jeff Johnson295189b2012-06-20 16:38:30 -07002969} tAddBARspParams, *tpAddBARspParams;
2970
2971typedef PACKED_PRE struct PACKED_POST
2972{
2973 tHalMsgHeader header;
2974 tAddBARspParams addBARspParams;
2975} tAddBARspMsg, *tpAddBARspMsg;
2976
2977
2978/*---------------------------------------------------------------------------
2979 * WLAN_HAL_TRIGGER_BA_REQ
2980 *--------------------------------------------------------------------------*/
2981
2982
2983typedef struct sAddBaInfo
2984{
2985 tANI_U16 fBaEnable : 1;
2986 tANI_U16 startingSeqNum: 12;
2987 tANI_U16 reserved : 3;
2988}tAddBaInfo, *tpAddBaInfo;
2989
2990typedef struct sTriggerBaRspCandidate
2991{
2992 tSirMacAddr staAddr;
2993 tAddBaInfo baInfo[STACFG_MAX_TC];
2994}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2995
2996typedef struct sTriggerBaCandidate
2997{
2998 tANI_U8 staIdx;
2999 tANI_U8 tidBitmap;
3000}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3001
3002typedef PACKED_PRE struct PACKED_POST
3003{
3004 /* Session Id */
3005 tANI_U8 baSessionID;
3006
Jeff Johnson32d95a32012-09-10 13:15:23 -07003007 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003008 * Candidate List(tTriggerBaCandidate)
3009 */
3010 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003011
Jeff Johnson295189b2012-06-20 16:38:30 -07003012} tTriggerBAParams, *tpTriggerBAParams;
3013
3014typedef PACKED_PRE struct PACKED_POST
3015{
3016 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003017 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003018} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3019
3020
3021/*---------------------------------------------------------------------------
3022 * WLAN_HAL_TRIGGER_BA_RSP
3023 *--------------------------------------------------------------------------*/
3024
3025typedef PACKED_PRE struct PACKED_POST
3026{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003027
Jeff Johnson295189b2012-06-20 16:38:30 -07003028 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003029 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003030
3031 /* success or failure */
3032 tANI_U32 status;
3033
Jeff Johnson32d95a32012-09-10 13:15:23 -07003034 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003035 * Rsp Candidate List(tTriggerRspBaCandidate)
3036 */
3037 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003038
Jeff Johnson295189b2012-06-20 16:38:30 -07003039
3040} tTriggerBARspParams, *tpTriggerBARspParams;
3041
3042typedef PACKED_PRE struct PACKED_POST
3043{
3044 tHalMsgHeader header;
3045 tTriggerBARspParams triggerBARspParams;
3046} tTriggerBARspMsg, *tpTriggerBARspMsg;
3047
3048/*---------------------------------------------------------------------------
3049 * WLAN_HAL_DEL_BA_REQ
3050 *--------------------------------------------------------------------------*/
3051
3052typedef PACKED_PRE struct PACKED_POST
3053{
3054 /* Station Index */
3055 tANI_U16 staIdx;
3056
3057 /* TID for which the BA session is being deleted */
3058 tANI_U8 baTID;
3059
3060 /* DELBA direction
3061 1 - Originator
3062 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003063 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003064} tDelBAParams, *tpDelBAParams;
3065
3066typedef PACKED_PRE struct PACKED_POST
3067{
3068 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003069 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003070} tDelBAReqMsg, *tpDelBAReqMsg;
3071
3072/*---------------------------------------------------------------------------
3073 * WLAN_HAL_DEL_BA_RSP
3074 *--------------------------------------------------------------------------*/
3075
3076typedef PACKED_PRE struct PACKED_POST
3077{
3078 /* success or failure */
3079 tANI_U32 status;
3080} tDelBARspParams, *tpDelBARspParams;
3081
3082typedef PACKED_PRE struct PACKED_POST
3083{
3084 tHalMsgHeader header;
3085 tDelBARspParams delBARspParams;
3086} tDelBARspMsg, *tpDelBARspMsg;
3087
3088
3089#ifdef FEATURE_WLAN_CCX
3090
3091/*---------------------------------------------------------------------------
3092 * WLAN_HAL_TSM_STATS_REQ
3093 *--------------------------------------------------------------------------*/
3094typedef PACKED_PRE struct PACKED_POST
3095{
3096 /* Traffic Id */
3097 tANI_U8 tsmTID;
3098
3099 tSirMacAddr bssId;
3100} tTsmStatsParams, *tpTsmStatsParams;
3101
3102typedef PACKED_PRE struct PACKED_POST
3103{
3104 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003105 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003106} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3107
3108
3109/*---------------------------------------------------------------------------
3110 * WLAN_HAL_TSM_STATS_RSP
3111 *--------------------------------------------------------------------------*/
3112typedef PACKED_PRE struct PACKED_POST
3113{
3114 /*success or failure */
3115 tANI_U32 status;
3116
Jeff Johnson32d95a32012-09-10 13:15:23 -07003117 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003118 tANI_U16 UplinkPktQueueDly;
3119
Jeff Johnson32d95a32012-09-10 13:15:23 -07003120 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003121 tANI_U16 UplinkPktQueueDlyHist[4];
3122
Jeff Johnson32d95a32012-09-10 13:15:23 -07003123 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003124 tANI_U32 UplinkPktTxDly;
3125
Jeff Johnson32d95a32012-09-10 13:15:23 -07003126 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003127 tANI_U16 UplinkPktLoss;
3128
Jeff Johnson32d95a32012-09-10 13:15:23 -07003129 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003130 tANI_U16 UplinkPktCount;
3131
Jeff Johnson32d95a32012-09-10 13:15:23 -07003132 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003133 tANI_U8 RoamingCount;
3134
Jeff Johnson32d95a32012-09-10 13:15:23 -07003135 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003136 tANI_U16 RoamingDly;
3137} tTsmStatsRspParams, *tpTsmStatsRspParams;
3138
3139typedef PACKED_PRE struct PACKED_POST
3140{
3141 tHalMsgHeader header;
3142 tTsmStatsRspParams tsmStatsRspParams;
3143} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3144
3145
3146#endif
3147
3148/*---------------------------------------------------------------------------
3149 * WLAN_HAL_SET_KEYDONE_MSG
3150 *--------------------------------------------------------------------------*/
3151
3152typedef PACKED_PRE struct PACKED_POST
3153{
3154 /*bssid of the keys */
3155 tANI_U8 bssidx;
3156 tANI_U8 encType;
3157} tSetKeyDoneParams, *tpSetKeyDoneParams;
3158
3159typedef PACKED_PRE struct PACKED_POST
3160{
3161 tHalMsgHeader header;
3162 tSetKeyDoneParams setKeyDoneParams;
3163} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3164
3165/*---------------------------------------------------------------------------
3166 * WLAN_HAL_DOWNLOAD_NV_REQ
3167 *--------------------------------------------------------------------------*/
3168typedef PACKED_PRE struct PACKED_POST
3169{
3170 /* Fragment sequence number of the NV Image. Note that NV Image might not
3171 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003172 * can hence choose to chop the NV blob into multiple fragments starting with
3173 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003174 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3175 * concatenated together by HAL without any padding bytes in between.*/
3176 tANI_U16 fragNumber;
3177
3178 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003179 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003180 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3181 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3182 tANI_U16 isLastFragment;
3183
3184 /* NV Image size (number of bytes) */
3185 tANI_U32 nvImgBufferSize;
3186
3187 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3188 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3189} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3190
3191typedef PACKED_PRE struct PACKED_POST
3192{
3193 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3194 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3195 tHalMsgHeader header;
3196 tHalNvImgDownloadReqParams nvImageReqParams;
3197} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3198
3199/*---------------------------------------------------------------------------
3200 * WLAN_HAL_DOWNLOAD_NV_RSP
3201 *--------------------------------------------------------------------------*/
3202typedef PACKED_PRE struct PACKED_POST
3203{
3204 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3205 * after each fragment */
3206 tANI_U32 status;
3207} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3208
3209typedef PACKED_PRE struct PACKED_POST
3210{
3211 tHalMsgHeader header;
3212 tHalNvImgDownloadRspParams nvImageRspParams;
3213} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3214
3215/*---------------------------------------------------------------------------
3216 * WLAN_HAL_STORE_NV_IND
3217 *--------------------------------------------------------------------------*/
3218typedef PACKED_PRE struct PACKED_POST
3219{
3220 /* NV Item */
3221 eNvTable tableID;
3222
3223 /* Size of NV Blob */
3224 tANI_U32 nvBlobSize;
3225
Jeff Johnson32d95a32012-09-10 13:15:23 -07003226 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003227 * NV blob i.e. uint8[nvBlobSize] */
3228} tHalNvStoreParams, *tpHalNvStoreParams;
3229
3230typedef PACKED_PRE struct PACKED_POST
3231{
3232 /* Note: The length specified in tHalNvStoreInd messages should be
3233 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3234 tHalMsgHeader header;
3235 tHalNvStoreParams nvStoreParams;
3236} tHalNvStoreInd, *tpHalNvStoreInd;
3237
3238/* End of Block Ack Related Parameters */
3239
3240/*---------------------------------------------------------------------------
3241 * WLAN_HAL_MIC_FAILURE_IND
3242 *--------------------------------------------------------------------------*/
3243
3244#define SIR_CIPHER_SEQ_CTR_SIZE 6
3245
3246typedef PACKED_PRE struct PACKED_POST
3247{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003248 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003249 tSirMacAddr taMacAddr; //transmitter address
3250 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003251 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003252 tANI_U8 IV1; // first byte of IV
3253 tANI_U8 keyId; // second byte of IV
3254 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3255 tSirMacAddr rxMacAddr; // receive address
3256} tSirMicFailureInfo, *tpSirMicFailureInfo;
3257
3258/* Definition for MIC failure indication
3259 MAC reports this each time a MIC failure occures on Rx TKIP packet
3260 */
3261typedef PACKED_PRE struct PACKED_POST
3262{
3263 tSirMacAddr bssId; // BSSID
3264 tSirMicFailureInfo info;
3265} tSirMicFailureInd, *tpSirMicFailureInd;
3266
3267typedef PACKED_PRE struct PACKED_POST
3268{
3269 tHalMsgHeader header;
3270 tSirMicFailureInd micFailureInd;
3271} tMicFailureIndMsg, *tpMicFailureIndMsg;
3272
Mohit Khanna4a70d262012-09-11 16:30:12 -07003273typedef PACKED_PRE struct PACKED_POST
3274{
3275 tANI_U16 opMode;
3276 tANI_U16 staId;
3277}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3278
3279typedef PACKED_PRE struct PACKED_POST
3280{
3281 tHalMsgHeader header;
3282 tUpdateVHTOpMode updateVhtOpMode;
3283} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3284
3285typedef PACKED_PRE struct PACKED_POST
3286{
3287 tANI_U32 status;
3288} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3289
3290typedef PACKED_PRE struct PACKED_POST
3291{
3292 tHalMsgHeader header;
3293 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3294} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3295
Jeff Johnson295189b2012-06-20 16:38:30 -07003296/*---------------------------------------------------------------------------
3297 * WLAN_HAL_UPDATE_BEACON_REQ
3298 *--------------------------------------------------------------------------*/
3299typedef PACKED_PRE struct PACKED_POST
3300{
3301
3302 tANI_U8 bssIdx;
3303
3304 //shortPreamble mode. HAL should update all the STA rates when it
3305 //receives this message
3306 tANI_U8 fShortPreamble;
3307 //short Slot time.
3308 tANI_U8 fShortSlotTime;
3309 //Beacon Interval
3310 tANI_U16 beaconInterval;
3311 //Protection related
3312 tANI_U8 llaCoexist;
3313 tANI_U8 llbCoexist;
3314 tANI_U8 llgCoexist;
3315 tANI_U8 ht20MhzCoexist;
3316 tANI_U8 llnNonGFCoexist;
3317 tANI_U8 fLsigTXOPProtectionFullSupport;
3318 tANI_U8 fRIFSMode;
3319
3320 tANI_U16 paramChangeBitmap;
3321}tUpdateBeaconParams, *tpUpdateBeaconParams;
3322
3323
3324typedef PACKED_PRE struct PACKED_POST
3325{
3326 tHalMsgHeader header;
3327 tUpdateBeaconParams updateBeaconParam;
3328} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3329
3330/*---------------------------------------------------------------------------
3331 * WLAN_HAL_UPDATE_BEACON_RSP
3332 *--------------------------------------------------------------------------*/
3333typedef PACKED_PRE struct PACKED_POST
3334{
3335 tANI_U32 status;
3336} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3337
3338typedef PACKED_PRE struct PACKED_POST
3339{
3340 tHalMsgHeader header;
3341 tUpdateBeaconRspParams updateBeaconRspParam;
3342} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3343
3344/*---------------------------------------------------------------------------
3345 * WLAN_HAL_SEND_BEACON_REQ
3346 *--------------------------------------------------------------------------*/
3347typedef PACKED_PRE struct PACKED_POST
3348{
3349 tANI_U32 beaconLength; //length of the template.
3350 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3351 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003352 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003353 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3354}tSendBeaconParams, *tpSendBeaconParams;
3355
3356
3357typedef PACKED_PRE struct PACKED_POST
3358{
3359 tHalMsgHeader header;
3360 tSendBeaconParams sendBeaconParam;
3361}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3362
3363/*---------------------------------------------------------------------------
3364 * WLAN_HAL_SEND_BEACON_RSP
3365 *--------------------------------------------------------------------------*/
3366typedef PACKED_PRE struct PACKED_POST
3367{
3368 tANI_U32 status;
3369} tSendBeaconRspParams, *tpSendBeaconRspParams;
3370
3371typedef PACKED_PRE struct PACKED_POST
3372{
3373 tHalMsgHeader header;
3374 tSendBeaconRspParams sendBeaconRspParam;
3375} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3376
3377#ifdef FEATURE_5GHZ_BAND
3378
3379/*---------------------------------------------------------------------------
3380 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3381 *--------------------------------------------------------------------------*/
3382typedef PACKED_PRE struct PACKED_POST
3383{
3384 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003385 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003386}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3387
3388
3389typedef PACKED_PRE struct PACKED_POST
3390{
3391 /* Link Parameters */
3392 tSirEnableRadarInfoType EnableRadarInfo;
3393}tEnableRadarReqParams, *tpEnableRadarReqParams;
3394
3395typedef PACKED_PRE struct PACKED_POST
3396{
3397 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003398 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003399}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3400
3401/*---------------------------------------------------------------------------
3402 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3403 *--------------------------------------------------------------------------*/
3404
3405typedef PACKED_PRE struct PACKED_POST
3406{
3407 /* Link Parameters */
3408 tSirMacAddr BSSID;
3409 /* success or failure */
3410 tANI_U32 status;
3411}tEnableRadarRspParams, *tpEnableRadarRspParams;
3412
3413typedef PACKED_PRE struct PACKED_POST
3414{
3415 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003416 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003417}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3418
3419/*---------------------------------------------------------------------------
3420 *WLAN_HAL_RADAR_DETECT_INTR_IND
3421 *--------------------------------------------------------------------------*/
3422
3423typedef PACKED_PRE struct PACKED_POST
3424{
3425 tANI_U8 radarDetChannel;
3426}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3427
3428typedef PACKED_PRE struct PACKED_POST
3429{
3430 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003431 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003432}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3433
3434/*---------------------------------------------------------------------------
3435 *WLAN_HAL_RADAR_DETECT_IND
3436 *-------------------------------------------------------------------------*/
3437typedef PACKED_PRE struct PACKED_POST
3438{
3439 /*channel number in which the RADAR detected*/
3440 tANI_U8 channelNumber;
3441
3442 /*RADAR pulse width*/
3443 tANI_U16 radarPulseWidth; // in usecond
3444
3445 /*Number of RADAR pulses */
3446 tANI_U16 numRadarPulse;
3447}tRadarDetectIndParams,*tpRadarDetectIndParams;
3448
3449typedef PACKED_PRE struct PACKED_POST
3450{
3451 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003452 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003453}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3454
3455
3456/*---------------------------------------------------------------------------
3457 *WLAN_HAL_GET_TPC_REPORT_REQ
3458 *-------------------------------------------------------------------------*/
3459typedef PACKED_PRE struct PACKED_POST
3460{
3461 tSirMacAddr sta;
3462 tANI_U8 dialogToken;
3463 tANI_U8 txpower;
3464}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3465
3466
3467typedef PACKED_PRE struct PACKED_POST
3468{
3469 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003470 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003471}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3472
3473/*---------------------------------------------------------------------------
3474 * WLAN_HAL_GET_TPC_REPORT_RSP
3475 *--------------------------------------------------------------------------*/
3476
3477typedef PACKED_PRE struct PACKED_POST
3478{
3479 /* success or failure */
3480 tANI_U32 status;
3481}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3482
3483typedef PACKED_PRE struct PACKED_POST
3484{
3485 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003486 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003487}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3488
3489#endif
3490
Jeff Johnson295189b2012-06-20 16:38:30 -07003491/*---------------------------------------------------------------------------
3492 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3493 *-------------------------------------------------------------------------*/
3494typedef PACKED_PRE struct PACKED_POST
3495{
3496 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3497 tANI_U32 probeRespTemplateLen;
3498 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3499 tSirMacAddr bssId;
3500
3501}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3502
3503typedef PACKED_PRE struct PACKED_POST
3504{
3505 tHalMsgHeader header;
3506 tSendProbeRespReqParams sendProbeRespReqParams ;
3507}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3508
3509/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003510 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003511 *--------------------------------------------------------------------------*/
3512
3513typedef PACKED_PRE struct PACKED_POST
3514{
3515 /* success or failure */
3516 tANI_U32 status;
3517}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3518
3519typedef PACKED_PRE struct PACKED_POST
3520{
3521 tHalMsgHeader header;
3522 tSendProbeRespRspParams sendProbeRespRspParams;
3523}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3524
3525
3526/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003527 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003528 *--------------------------------------------------------------------------*/
3529
3530typedef PACKED_PRE struct PACKED_POST
3531{
3532 /* success or failure */
3533 tANI_U32 status;
3534}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3535
3536typedef PACKED_PRE struct PACKED_POST
3537{
3538 tHalMsgHeader header;
3539 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3540}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3541
3542/*---------------------------------------------------------------------------
3543 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3544 *--------------------------------------------------------------------------*/
3545
3546typedef PACKED_PRE struct PACKED_POST
3547{
3548 tANI_U16 assocId;
3549 tANI_U16 staId;
3550 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3551 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003552 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003553 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003554
3555}tDeleteStaContextParams, *tpDeleteStaContextParams;
3556
3557
3558typedef PACKED_PRE struct PACKED_POST
3559{
3560 tHalMsgHeader header;
3561 tDeleteStaContextParams deleteStaContextParams;
3562}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3563
Anand Kumar012623a2013-01-11 17:00:00 -08003564typedef PACKED_PRE struct PACKED_POST
3565{
3566 tHalMsgHeader header;
3567 tANI_U8 assocId;
3568 tANI_U8 staIdx;
3569 tANI_U8 bssIdx;
3570 tANI_U8 uReasonCode;
3571 tANI_U32 uStatus;
3572} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003573
3574/*---------------------------------------------------------------------------
3575 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3576 *--------------------------------------------------------------------------*/
3577
3578typedef PACKED_PRE struct PACKED_POST
3579{
3580 tBtAmpEventType btAmpEventType;
3581
3582}tBtAmpEventParams, *tpBtAmpEventParams;
3583
3584
3585
3586typedef PACKED_PRE struct PACKED_POST
3587{
3588 tHalMsgHeader header;
3589 tBtAmpEventParams btAmpEventParams;
3590}tBtAmpEventMsg, *tpBtAmpEventMsg;
3591
3592/*---------------------------------------------------------------------------
3593*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3594*--------------------------------------------------------------------------*/
3595
3596typedef PACKED_PRE struct PACKED_POST
3597{
3598 /* success or failure */
3599 tANI_U32 status;
3600}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3601
3602typedef PACKED_PRE struct PACKED_POST
3603{
3604 tHalMsgHeader header;
3605 tBtAmpEventRspParams btAmpEventRspParams;
3606}tBtAmpEventRsp, *tpBtAmpEventRsp;
3607
3608
3609/*---------------------------------------------------------------------------
3610 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3611 *--------------------------------------------------------------------------*/
3612
3613typedef PACKED_PRE struct PACKED_POST
3614{
3615 // Station Index. originates from HAL
3616 tANI_U8 ucSTAId;
3617
3618 // TID for which the transmit queue is being flushed
3619 tANI_U8 ucTid;
3620
3621}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3622
3623
3624typedef PACKED_PRE struct PACKED_POST
3625{
3626 tHalMsgHeader header;
3627 tTlHalFlushAcParams tlHalFlushAcParam;
3628}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3629
3630/*---------------------------------------------------------------------------
3631*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3632*--------------------------------------------------------------------------*/
3633
3634typedef PACKED_PRE struct PACKED_POST
3635{
3636 // Station Index. originates from HAL
3637 tANI_U8 ucSTAId;
3638
3639 // TID for which the transmit queue is being flushed
3640 tANI_U8 ucTid;
3641
3642 /* success or failure */
3643 tANI_U32 status;
3644}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3645
3646typedef PACKED_PRE struct PACKED_POST
3647{
3648 tHalMsgHeader header;
3649 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3650}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3651
3652/*---------------------------------------------------------------------------
3653 * WLAN_HAL_ENTER_IMPS_REQ
3654 *--------------------------------------------------------------------------*/
3655typedef PACKED_PRE struct PACKED_POST
3656{
3657 tHalMsgHeader header;
3658} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3659
3660/*---------------------------------------------------------------------------
3661 * WLAN_HAL_EXIT_IMPS_REQ
3662 *--------------------------------------------------------------------------*/
3663typedef PACKED_PRE struct PACKED_POST
3664{
3665 tHalMsgHeader header;
3666} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3667
3668/*---------------------------------------------------------------------------
3669 * WLAN_HAL_ENTER_BMPS_REQ
3670 *--------------------------------------------------------------------------*/
3671
3672typedef PACKED_PRE struct PACKED_POST
3673{
3674 tANI_U8 bssIdx;
3675 //TBTT value derived from the last beacon
3676#ifndef BUILD_QWPTTSTATIC
3677 tANI_U64 tbtt;
3678#endif
3679 tANI_U8 dtimCount;
3680 //DTIM period given to HAL during association may not be valid,
3681 //if association is based on ProbeRsp instead of beacon.
3682 tANI_U8 dtimPeriod;
3683
3684 // For CCX and 11R Roaming
3685 tANI_U32 rssiFilterPeriod;
3686 tANI_U32 numBeaconPerRssiAverage;
3687 tANI_U8 bRssiFilterEnable;
3688
3689} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3690
3691
3692typedef PACKED_PRE struct PACKED_POST
3693{
3694 tHalMsgHeader header;
3695 tHalEnterBmpsReqParams enterBmpsReq;
3696} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3697
3698/*---------------------------------------------------------------------------
3699 * WLAN_HAL_EXIT_BMPS_REQ
3700 *--------------------------------------------------------------------------*/
3701typedef PACKED_PRE struct PACKED_POST
3702{
3703 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003704 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003705} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3706
3707typedef PACKED_PRE struct PACKED_POST
3708{
3709 tHalMsgHeader header;
3710 tHalExitBmpsReqParams exitBmpsReqParams;
3711} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3712
3713/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003714 * WLAN_HAL_MISSED_BEACON_IND
3715 *--------------------------------------------------------------------------*/
3716typedef PACKED_PRE struct PACKED_POST
3717{
3718 tANI_U8 bssIdx;
3719} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3720
3721typedef PACKED_PRE struct PACKED_POST
3722{
3723 tHalMsgHeader header;
3724 tHalMissedBeaconIndParams missedBeaconIndParams;
3725} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3726
3727/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003728 * WLAN_HAL_ADD_BCN_FILTER_REQ
3729 *--------------------------------------------------------------------------*/
3730/* Beacon Filtering data structures */
3731typedef PACKED_PRE struct PACKED_POST
3732{
3733 tANI_U8 offset;
3734 tANI_U8 value;
3735 tANI_U8 bitMask;
3736 tANI_U8 ref;
3737} tEidByteInfo, *tpEidByteInfo;
3738
Jeff Johnson32d95a32012-09-10 13:15:23 -07003739typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003740{
3741 tANI_U16 capabilityInfo;
3742 tANI_U16 capabilityMask;
3743 tANI_U16 beaconInterval;
3744 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003745 tANI_U8 bssIdx;
3746 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003747} tBeaconFilterMsg, *tpBeaconFilterMsg;
3748
3749/* The above structure would be followed by multiple of below mentioned structure */
3750typedef PACKED_PRE struct PACKED_POST
3751{
3752 tANI_U8 elementId;
3753 tANI_U8 checkIePresence;
3754 tEidByteInfo byte;
3755} tBeaconFilterIe, *tpBeaconFilterIe;
3756
3757typedef PACKED_PRE struct PACKED_POST
3758{
3759 tHalMsgHeader header;
3760 tBeaconFilterMsg addBcnFilterParams;
3761} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3762
3763/*---------------------------------------------------------------------------
3764 * WLAN_HAL_REM_BCN_FILTER_REQ
3765 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003766typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003767{
3768 tANI_U8 ucIeCount;
3769 tANI_U8 ucRemIeId[1];
3770} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3771
3772typedef PACKED_PRE struct PACKED_POST
3773{
3774 tHalMsgHeader header;
3775 tRemBeaconFilterMsg remBcnFilterParams;
3776} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3777
3778/*---------------------------------------------------------------------------
3779 * WLAN_HAL_HOST_OFFLOAD_REQ
3780 *--------------------------------------------------------------------------*/
3781#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3782#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3783#define HAL_IPV6_NS_OFFLOAD 2
3784#define HAL_IPV6_ADDR_LEN 16
3785#define HAL_MAC_ADDR_LEN 6
3786#define HAL_OFFLOAD_DISABLE 0
3787#define HAL_OFFLOAD_ENABLE 1
3788#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003789#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003790#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003791#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003792
3793typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3794{
3795 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3796 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3797 //Only support 2 possible Network Advertisement IPv6 address
3798 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3799 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3800 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3801 tANI_U8 srcIPv6AddrValid : 1;
3802 tANI_U8 targetIPv6Addr1Valid : 1;
3803 tANI_U8 targetIPv6Addr2Valid : 1;
3804 tANI_U8 reserved1 : 5;
3805 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003806 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003807 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003808} tHalNSOffloadParams;
3809
3810typedef PACKED_PRE struct PACKED_POST
3811{
3812 tANI_U8 offloadType;
3813 tANI_U8 enableOrDisable;
3814 PACKED_PRE union PACKED_POST
3815 {
3816 tANI_U8 hostIpv4Addr [4];
3817 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3818 } params;
3819} tHalHostOffloadReq, *tpHalHostOffloadReq;
3820
3821typedef PACKED_PRE struct PACKED_POST
3822{
3823 tHalMsgHeader header;
3824 tHalHostOffloadReq hostOffloadParams;
3825 tHalNSOffloadParams nsOffloadParams;
3826} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3827
Leo Chang397deb72013-08-22 11:33:16 -07003828
3829#ifdef FEATURE_WLAN_LPHB
3830typedef enum
3831{
3832 WIFI_HB_SET_ENABLE = 0x0001,
3833 WIFI_HB_SET_TCP_PARAMS = 0x0002,
3834 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
3835 WIFI_HB_SET_UDP_PARAMS = 0x0004,
3836 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
3837 WIFI_HB_SET_NETWORK_INFO = 0x0006,
3838}tLowPowerHeartBeatCmdType ;
3839
3840#define MAX_FLITER_SIZE 64
3841/*---------------------------------------------------------------------------
3842 *FEATURE_WLAN_LPHB REQ
3843 *--------------------------------------------------------------------------*/
3844typedef PACKED_PRE struct PACKED_POST
3845{
3846 uint32 hostIpv4Addr;
3847 uint32 destIpv4Addr;
3848 uint16 hostPort;
3849 uint16 destPort;
3850 uint16 timeOutSec; // in seconds
3851 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07003852 uint16 timePeriodSec; // in seconds
3853 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07003854} tlowPowerHeartBeatParamsTcpStruct;
3855
3856typedef PACKED_PRE struct PACKED_POST
3857{
3858 uint32 hostIpv4Addr;
3859 uint32 destIpv4Addr;
3860 uint16 hostPort;
3861 uint16 destPort;
3862 uint16 timePeriodSec;// in seconds
3863 uint16 timeOutSec; // in seconds
3864 tSirMacAddr gatewayMacAddr;
3865} tlowPowerHeartBeatParamsUdpStruct;
3866
3867typedef PACKED_PRE struct PACKED_POST
3868{
3869 uint32 offset;
3870 uint32 filterLength;
3871 uint8 filter[MAX_FLITER_SIZE];
3872} tlowPowerHeartBeatFilterStruct;
3873
3874typedef PACKED_PRE struct PACKED_POST
3875{
3876 uint8 heartBeatEnable;
3877 uint8 heartBeatType; //TCP or UDP
3878} tlowPowerHeartBeatEnableStruct;
3879
3880typedef PACKED_PRE struct PACKED_POST
3881{
3882 uint8 dummy;
3883} tlowPowerHeartBeatNetworkInfoStruct;
3884
3885
3886typedef PACKED_PRE struct PACKED_POST
3887{
3888 uint8 sessionIdx;
3889 uint16 lowPowerHeartBeatCmdType;
3890 PACKED_PRE union PACKED_PRO
3891 {
3892 tlowPowerHeartBeatEnableStruct control;
3893 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
3894 tlowPowerHeartBeatParamsTcpStruct tcpParams;
3895 tlowPowerHeartBeatParamsUdpStruct udpParams;
3896 tlowPowerHeartBeatNetworkInfoStruct info;
3897 }options;
3898} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
3899
3900
3901typedef PACKED_PRE struct PACKED_POST
3902{
3903 tHalMsgHeader header;
3904 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
3905} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
3906
3907/*---------------------------------------------------------------------------
3908 * FEATURE_WLAN_LPHB RSP
3909 *--------------------------------------------------------------------------*/
3910
3911typedef PACKED_PRE struct PACKED_POST
3912{
3913 /* success or failure */
3914 uint8 sessionIdx;
3915 uint32 status;
3916 uint16 lowPowerHeartBeatCmdType;
3917}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
3918
3919typedef PACKED_PRE struct PACKED_POST
3920{
3921 tHalMsgHeader header;
3922 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
3923}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
3924
3925
3926/*---------------------------------------------------------------------------
3927 * FEATURE_WLAN_LPHB IND
3928 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07003929#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
3930#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
3931
3932#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
3933#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07003934#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07003935
Kumar Anandea78e792013-10-10 23:47:01 -07003936
3937#define WIFI_LPHB_PROTO_UDP 0x01
3938#define WIFI_LPHB_PROTO_TCP 0x02
3939
Leo Chang397deb72013-08-22 11:33:16 -07003940typedef PACKED_PRE struct PACKED_POST
3941{
3942 uint8 bssIdx;
3943 uint8 sessionIdx;
3944 uint8 protocolType; /*TCP or UDP*/
3945 uint8 eventReason;
3946
3947}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
3948
3949typedef PACKED_PRE struct PACKED_POST
3950{
3951 tHalMsgHeader header;
3952 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
3953}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
3954
3955#endif
krunal soni2a4728d2013-09-20 21:56:50 -07003956
3957#ifdef FEATURE_WLAN_BATCH_SCAN
3958
3959/*---------------------------------------------------------------------------
3960 * WLAN_HAL_BATCHSCAN_SET_REQ
3961 *--------------------------------------------------------------------------*/
3962typedef PACKED_PRE struct PACKED_POST
3963{
3964 /* Scan Frerquency - default to 30Sec*/
3965 tANI_U32 scanInterval;
3966 tANI_U32 numScan2Batch;
3967 tANI_U32 bestNetworks;
3968 tANI_U8 rfBand;
3969 tANI_U8 rtt;
3970} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
3971
3972typedef PACKED_PRE struct PACKED_POST
3973{
3974 tHalMsgHeader header;
3975 tHalBatchScanSetParams batchScanParams;
3976} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
3977
3978/*---------------------------------------------------------------------------
3979 * WLAN_HAL_BATCHSCAN_SET_RSP
3980 *--------------------------------------------------------------------------*/
3981typedef PACKED_PRE struct PACKED_POST
3982{
3983 tANI_U32 supportedMscan;
3984} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
3985
3986typedef PACKED_PRE struct PACKED_POST
3987{
3988 tHalMsgHeader header;
3989 tHalBatchScanSetRspParam setBatchScanRspParam;
3990} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
3991
3992/*---------------------------------------------------------------------------
3993* WLAN_HAL_BATCHSCAN_STOP_IND
3994*--------------------------------------------------------------------------*/
3995typedef PACKED_PRE struct PACKED_POST
3996{
3997 tANI_U32 param;
3998} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
3999
4000typedef PACKED_PRE struct PACKED_POST
4001{
4002 tHalMsgHeader header;
4003 tHalBatchScanStopIndParam param;
4004} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4005
4006/*---------------------------------------------------------------------------
4007* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4008*--------------------------------------------------------------------------*/
4009typedef PACKED_PRE struct PACKED_POST
4010{
4011 tANI_U32 param;
4012} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4013
4014typedef PACKED_PRE struct PACKED_POST
4015{
4016 tHalMsgHeader header;
4017 tHalBatchScanTriggerResultParam param;
4018} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4019
4020/*---------------------------------------------------------------------------
4021 * WLAN_HAL_BATCHSCAN_GET_RSP
4022 *--------------------------------------------------------------------------*/
4023typedef PACKED_PRE struct PACKED_POST
4024{
4025 tANI_U8 bssid[6]; /* BSSID */
4026 tANI_U8 ssid[32]; /* SSID */
4027 tANI_U8 ch; /* Channel */
4028 tANI_U8 rssi; /* RSSI or Level */
4029 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4030 tANI_U32 timestamp;
4031} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4032
4033typedef PACKED_PRE struct PACKED_POST
4034{
4035 tANI_U32 scanId; /* Scan List ID. */
4036 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4037 tANI_U32 numNetworksInScanList;
4038 /* Variable data ptr: Number of AP in Scan List */
4039 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4040 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4041 tANI_U8 scanList[1];
4042} tHalBatchScanList, *tpHalBatchScanList;
4043
4044typedef PACKED_PRE struct PACKED_POST
4045{
4046 tANI_U32 timestamp;
4047 tANI_U32 numScanLists;
4048 boolean isLastResult;
4049 /* Variable Data ptr: Number of Scan Lists*/
4050 /* following isLastResult is data of type tHalBatchScanList
4051 * of sizeof(tHalBatchScanList) * numScanLists*/
4052 tANI_U8 scanResults[1];
4053} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4054
4055typedef PACKED_PRE struct PACKED_POST
4056{
4057 tHalMsgHeader header;
4058 tHalBatchScanResultIndParam resultIndMsgParam;
4059} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4060
4061#endif
4062
Jeff Johnson295189b2012-06-20 16:38:30 -07004063/*---------------------------------------------------------------------------
4064 * WLAN_HAL_KEEP_ALIVE_REQ
4065 *--------------------------------------------------------------------------*/
4066/* Packet Types. */
4067#define HAL_KEEP_ALIVE_NULL_PKT 1
4068#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4069
4070/* Enable or disable keep alive */
4071#define HAL_KEEP_ALIVE_DISABLE 0
4072#define HAL_KEEP_ALIVE_ENABLE 1
4073
4074/* Keep Alive request. */
4075typedef PACKED_PRE struct PACKED_POST
4076{
4077 tANI_U8 packetType;
4078 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004079 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004080 tHalIpv4Addr destIpv4Addr;
4081 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004082 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004083} tHalKeepAliveReq, *tpHalKeepAliveReq;
4084
4085typedef PACKED_PRE struct PACKED_POST
4086{
4087 tHalMsgHeader header;
4088 tHalKeepAliveReq KeepAliveParams;
4089} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4090
4091/*---------------------------------------------------------------------------
4092 * WLAN_HAL_SET_RSSI_THRESH_REQ
4093 *--------------------------------------------------------------------------*/
4094typedef PACKED_PRE struct PACKED_POST
4095{
4096 tANI_S8 ucRssiThreshold1 : 8;
4097 tANI_S8 ucRssiThreshold2 : 8;
4098 tANI_S8 ucRssiThreshold3 : 8;
4099 tANI_U8 bRssiThres1PosNotify : 1;
4100 tANI_U8 bRssiThres1NegNotify : 1;
4101 tANI_U8 bRssiThres2PosNotify : 1;
4102 tANI_U8 bRssiThres2NegNotify : 1;
4103 tANI_U8 bRssiThres3PosNotify : 1;
4104 tANI_U8 bRssiThres3NegNotify : 1;
4105 tANI_U8 bReserved10 : 2;
4106} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004107
Jeff Johnson295189b2012-06-20 16:38:30 -07004108typedef PACKED_PRE struct PACKED_POST
4109{
4110 tHalMsgHeader header;
4111 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004112} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004113
4114/*---------------------------------------------------------------------------
4115 * WLAN_HAL_ENTER_UAPSD_REQ
4116 *--------------------------------------------------------------------------*/
4117typedef PACKED_PRE struct PACKED_POST
4118{
4119 tANI_U8 bkDeliveryEnabled:1;
4120 tANI_U8 beDeliveryEnabled:1;
4121 tANI_U8 viDeliveryEnabled:1;
4122 tANI_U8 voDeliveryEnabled:1;
4123 tANI_U8 bkTriggerEnabled:1;
4124 tANI_U8 beTriggerEnabled:1;
4125 tANI_U8 viTriggerEnabled:1;
4126 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004127 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004128} tUapsdReqParams, *tpUapsdReqParams;
4129
4130typedef PACKED_PRE struct PACKED_POST
4131{
4132 tHalMsgHeader header;
4133 tUapsdReqParams enterUapsdParams;
4134} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4135
4136/*---------------------------------------------------------------------------
4137 * WLAN_HAL_EXIT_UAPSD_REQ
4138 *--------------------------------------------------------------------------*/
4139typedef PACKED_PRE struct PACKED_POST
4140{
4141 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004142 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004143} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4144
Kumar Anandea78e792013-10-10 23:47:01 -07004145#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4146#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004147/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004148 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4149 *--------------------------------------------------------------------------*/
4150typedef PACKED_PRE struct PACKED_POST
4151{
4152 tANI_U32 selfStaIdx:8;
4153 tANI_U32 ucPtrnId:8; // Pattern ID
4154 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4155 tANI_U32 uPtrnIntervalMs; // In msec
4156 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4157} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4158
4159typedef PACKED_PRE struct PACKED_POST
4160{
4161 tHalMsgHeader header;
4162 tHalAddPeriodicTxPtrn ptrnParams;
4163} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4164
4165/*---------------------------------------------------------------------------
4166 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4167 *--------------------------------------------------------------------------*/
4168typedef PACKED_PRE struct PACKED_POST
4169{
4170 tANI_U32 selfStaIdx:8;
4171 tANI_U32 rsvd:24;
4172 /* Bitmap of pattern IDs that needs to be deleted */
4173 tANI_U32 uPatternIdBitmap;
4174} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4175
4176typedef PACKED_PRE struct PACKED_POST
4177{
4178 tHalMsgHeader header;
4179 tHalDelPeriodicTxPtrn ptrnParams;
4180} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4181
4182/*---------------------------------------------------------------------------
4183 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4184 *--------------------------------------------------------------------------*/
4185typedef PACKED_PRE struct PACKED_POST
4186{
4187 /* Type of Failure indication */
4188 tANI_U32 bssIdx:8;
4189 tANI_U32 selfStaIdx:8;
4190 tANI_U32 rsvd:16;
4191 tANI_U32 status;
4192 tANI_U32 patternIdBitmap;
4193} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4194
4195typedef PACKED_PRE struct PACKED_POST
4196{
4197 tHalMsgHeader header;
4198 tHalPeriodicTxPtrnFwInd fwIndParams;
4199} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4200
4201/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004202 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4203 *--------------------------------------------------------------------------*/
4204#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4205#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4206
4207typedef PACKED_PRE struct PACKED_POST
4208{
4209 tANI_U8 ucPatternId; // Pattern ID
4210 // Pattern byte offset from beginning of the 802.11 packet to start of the
4211 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07004212 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004213 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4214 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4215 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4216 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4217 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4218 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004219 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004220} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4221
4222typedef PACKED_PRE struct PACKED_POST
4223{
4224 tHalMsgHeader header;
4225 tHalWowlAddBcastPtrn ptrnParams;
4226} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004227
Jeff Johnsone7245742012-09-05 17:12:55 -07004228
4229
Jeff Johnson295189b2012-06-20 16:38:30 -07004230/*---------------------------------------------------------------------------
4231 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4232 *--------------------------------------------------------------------------*/
4233typedef PACKED_PRE struct PACKED_POST
4234{
4235 /* Pattern ID of the wakeup pattern to be deleted */
4236 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004237 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004238} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4239
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 tHalMsgHeader header;
4243 tHalWowlDelBcastPtrn ptrnParams;
4244} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4245
4246/*---------------------------------------------------------------------------
4247 * WLAN_HAL_ENTER_WOWL_REQ
4248 *--------------------------------------------------------------------------*/
4249typedef PACKED_PRE struct PACKED_POST
4250{
4251 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004252 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004253
4254 /* Magic pattern */
4255 tSirMacAddr magicPtrn;
4256
Jeff Johnson32d95a32012-09-10 13:15:23 -07004257 /* Enables/disables packet pattern filtering in firmware.
4258 Enabling this flag enables broadcast pattern matching
4259 in Firmware. If unicast pattern matching is also desired,
4260 ucUcastPatternFilteringEnable flag must be set tot true
4261 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004262 */
4263 tANI_U8 ucPatternFilteringEnable;
4264
Jeff Johnson32d95a32012-09-10 13:15:23 -07004265 /* Enables/disables unicast packet pattern filtering.
4266 This flag specifies whether we want to do pattern match
4267 on unicast packets as well and not just broadcast packets.
4268 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004269 (main controlling flag) is set to false
4270 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004271 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004272
Jeff Johnson32d95a32012-09-10 13:15:23 -07004273 /* This configuration is valid only when magicPktEnable=1.
4274 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004275 * Channel Switch Action Frame.
4276 */
4277 tANI_U8 ucWowChnlSwitchRcv;
4278
Jeff Johnson32d95a32012-09-10 13:15:23 -07004279 /* This configuration is valid only when magicPktEnable=1.
4280 * It requests hardware to wake up when it receives the
4281 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004282 */
4283 tANI_U8 ucWowDeauthRcv;
4284
Jeff Johnson32d95a32012-09-10 13:15:23 -07004285 /* This configuration is valid only when magicPktEnable=1.
4286 * It requests hardware to wake up when it receives the
4287 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004288 */
4289 tANI_U8 ucWowDisassocRcv;
4290
Jeff Johnson32d95a32012-09-10 13:15:23 -07004291 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004292 * It requests hardware to wake up when it has missed
4293 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07004294 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004295 */
4296 tANI_U8 ucWowMaxMissedBeacons;
4297
Jeff Johnson32d95a32012-09-10 13:15:23 -07004298 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004299 * This is a timeout value in units of microsec. It requests
4300 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07004301 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004302 */
4303 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004304
Jeff Johnson295189b2012-06-20 16:38:30 -07004305 /* This configuration directs the WoW packet filtering to look for EAP-ID
4306 * requests embedded in EAPOL frames and use this as a wake source.
4307 */
4308 tANI_U8 ucWoWEAPIDRequestEnable;
4309
4310 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4311 * requests and use this as a wake source.
4312 */
4313 tANI_U8 ucWoWEAPOL4WayEnable;
4314
4315 /* This configuration allows a host wakeup on an network scan offload match.
4316 */
4317 tANI_U8 ucWowNetScanOffloadMatch;
4318
4319 /* This configuration allows a host wakeup on any GTK rekeying error.
4320 */
4321 tANI_U8 ucWowGTKRekeyError;
4322
4323 /* This configuration allows a host wakeup on BSS connection loss.
4324 */
4325 tANI_U8 ucWoWBSSConnLoss;
4326
Jeff Johnsone7245742012-09-05 17:12:55 -07004327 tANI_U8 bssIdx;
4328
Jeff Johnson295189b2012-06-20 16:38:30 -07004329} tHalWowlEnterParams, *tpHalWowlEnterParams;
4330
4331typedef PACKED_PRE struct PACKED_POST
4332{
4333 tHalMsgHeader header;
4334 tHalWowlEnterParams enterWowlParams;
4335} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4336
4337/*---------------------------------------------------------------------------
4338 * WLAN_HAL_EXIT_WOWL_REQ
4339 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004340
Jeff Johnson295189b2012-06-20 16:38:30 -07004341typedef PACKED_PRE struct PACKED_POST
4342{
Jeff Johnsone7245742012-09-05 17:12:55 -07004343 tANI_U8 bssIdx;
4344
4345} tHalWowlExitParams, *tpHalWowlExitParams;
4346
4347typedef PACKED_PRE struct PACKED_POST
4348{
4349 tHalMsgHeader header;
4350 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004351} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4352
4353/*---------------------------------------------------------------------------
4354 * WLAN_HAL_GET_RSSI_REQ
4355 *--------------------------------------------------------------------------*/
4356typedef PACKED_PRE struct PACKED_POST
4357{
4358 tHalMsgHeader header;
4359} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4360
Anand Kumar012623a2013-01-11 17:00:00 -08004361typedef PACKED_PRE struct PACKED_POST
4362{
4363 /* Valid STA Idx for per STA stats request */
4364 tANI_U32 staId;
4365
4366}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4367
4368
4369/*---------------------------------------------------------------------------
4370 * WLAN_HAL_GET_ROAM_RSSI_REQ
4371 *--------------------------------------------------------------------------*/
4372typedef PACKED_PRE struct PACKED_POST
4373{
4374 tHalMsgHeader header;
4375 tHalRoamRssiReqParams roamRssiReqParams;
4376} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4377
4378
Jeff Johnson295189b2012-06-20 16:38:30 -07004379/*---------------------------------------------------------------------------
4380 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4381 *--------------------------------------------------------------------------*/
4382typedef PACKED_PRE struct PACKED_POST {
4383 tANI_U8 staidx; // STA index
4384 tANI_U8 ac; // Access Category
4385 tANI_U8 up; // User Priority
4386 tANI_U32 srvInterval; // Service Interval
4387 tANI_U32 susInterval; // Suspend Interval
4388 tANI_U32 delayInterval; // Delay Interval
4389} tUapsdInfo, tpUapsdInfo;
4390
4391typedef PACKED_PRE struct PACKED_POST
4392{
4393 tHalMsgHeader header;
4394 tUapsdInfo enableUapsdAcParams;
4395} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4396
4397/*---------------------------------------------------------------------------
4398 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4399 *--------------------------------------------------------------------------*/
4400typedef PACKED_PRE struct PACKED_POST {
4401 tANI_U8 setMcstBcstFilterSetting;
4402 tANI_U8 setMcstBcstFilter;
4403} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4404
4405typedef PACKED_PRE struct PACKED_POST
4406{
4407 tHalMsgHeader header;
4408 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4409} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4410
4411/*---------------------------------------------------------------------------
4412 * WLAN_HAL_ENTER_IMPS_RSP
4413 *--------------------------------------------------------------------------*/
4414typedef PACKED_PRE struct PACKED_POST
4415{
4416 /* success or failure */
4417 tANI_U32 status;
4418} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4419
4420typedef PACKED_PRE struct PACKED_POST
4421{
4422 tHalMsgHeader header;
4423 tHalEnterImpsRspParams enterImpsRspParams;
4424} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4425
4426/*---------------------------------------------------------------------------
4427 * WLAN_HAL_EXIT_IMPS_RSP
4428 *--------------------------------------------------------------------------*/
4429typedef PACKED_PRE struct PACKED_POST
4430{
4431 /* success or failure */
4432 tANI_U32 status;
4433} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4434
4435typedef PACKED_PRE struct PACKED_POST
4436{
4437 tHalMsgHeader header;
4438 tHalExitImpsRspParams exitImpsRspParams;
4439} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4440
4441/*---------------------------------------------------------------------------
4442 * WLAN_HAL_ENTER_BMPS_RSP
4443 *--------------------------------------------------------------------------*/
4444typedef PACKED_PRE struct PACKED_POST
4445{
4446 /* success or failure */
4447 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004448 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004449} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4450
4451typedef PACKED_PRE struct PACKED_POST
4452{
4453 tHalMsgHeader header;
4454 tHalEnterBmpsRspParams enterBmpsRspParams;
4455} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4456
4457/*---------------------------------------------------------------------------
4458 * WLAN_HAL_EXIT_BMPS_RSP
4459 *--------------------------------------------------------------------------*/
4460typedef PACKED_PRE struct PACKED_POST
4461{
4462 /* success or failure */
4463 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004464 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004465} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4466
4467typedef PACKED_PRE struct PACKED_POST
4468{
4469 tHalMsgHeader header;
4470 tHalExitBmpsRspParams exitBmpsRspParams;
4471} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4472
4473/*---------------------------------------------------------------------------
4474 * WLAN_HAL_ENTER_UAPSD_RSP
4475 *--------------------------------------------------------------------------*/
4476typedef PACKED_PRE struct PACKED_POST
4477{
4478 /* success or failure */
4479 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004480 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004481}tUapsdRspParams, *tpUapsdRspParams;
4482
4483typedef PACKED_PRE struct PACKED_POST
4484{
4485 tHalMsgHeader header;
4486 tUapsdRspParams enterUapsdRspParams;
4487} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4488
4489/*---------------------------------------------------------------------------
4490 * WLAN_HAL_EXIT_UAPSD_RSP
4491 *--------------------------------------------------------------------------*/
4492typedef PACKED_PRE struct PACKED_POST
4493{
4494 /* success or failure */
4495 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004496 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004497} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4498
4499typedef PACKED_PRE struct PACKED_POST
4500{
4501 tHalMsgHeader header;
4502 tHalExitUapsdRspParams exitUapsdRspParams;
4503} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4504
4505/*---------------------------------------------------------------------------
4506 * WLAN_HAL_RSSI_NOTIFICATION_IND
4507 *--------------------------------------------------------------------------*/
4508typedef PACKED_PRE struct PACKED_POST
4509{
4510 tANI_U32 bRssiThres1PosCross : 1;
4511 tANI_U32 bRssiThres1NegCross : 1;
4512 tANI_U32 bRssiThres2PosCross : 1;
4513 tANI_U32 bRssiThres2NegCross : 1;
4514 tANI_U32 bRssiThres3PosCross : 1;
4515 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004516 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004517 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07004518 tANI_U32 isBTCoexCompromise : 1;
4519 tANI_U32 bReserved : 9;
Jeff Johnson295189b2012-06-20 16:38:30 -07004520} tHalRSSINotification, *tpHalRSSINotification;
4521
4522typedef PACKED_PRE struct PACKED_POST
4523{
4524 tHalMsgHeader header;
4525 tHalRSSINotification rssiNotificationParams;
4526} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4527
4528/*---------------------------------------------------------------------------
4529 * WLAN_HAL_GET_RSSI_RSP
4530 *--------------------------------------------------------------------------*/
4531typedef PACKED_PRE struct PACKED_POST
4532{
4533 /* success or failure */
4534 tANI_U32 status;
4535 tANI_S8 rssi;
4536} tHalGetRssiParams, *tpHalGetRspParams;
4537
4538typedef PACKED_PRE struct PACKED_POST
4539{
4540 tHalMsgHeader header;
4541 tHalGetRssiParams rssiRspParams;
4542} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4543
4544/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004545 * WLAN_HAL_GET_ROAM_RSSI_RSP
4546 *--------------------------------------------------------------------------*/
4547typedef PACKED_PRE struct PACKED_POST
4548{
4549 /* success or failure */
4550 tANI_U32 status;
4551
4552 tANI_U8 staId;
4553 tANI_S8 rssi;
4554} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4555
4556typedef PACKED_PRE struct PACKED_POST
4557{
4558 tHalMsgHeader header;
4559 tHalGetRoamRssiParams roamRssiRspParams;
4560} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4561
4562/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004563 * WLAN_HAL_ENTER_WOWL_RSP
4564 *--------------------------------------------------------------------------*/
4565typedef PACKED_PRE struct PACKED_POST
4566{
4567 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004568 tANI_U32 status;
4569 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004570} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4571
4572typedef PACKED_PRE struct PACKED_POST
4573{
4574 tHalMsgHeader header;
4575 tHalEnterWowlRspParams enterWowlRspParams;
4576} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4577
4578/*---------------------------------------------------------------------------
4579 * WLAN_HAL_EXIT_WOWL_RSP
4580 *--------------------------------------------------------------------------*/
4581typedef PACKED_PRE struct PACKED_POST
4582{
4583 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004584 tANI_U32 status;
4585 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004586} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4587
4588typedef PACKED_PRE struct PACKED_POST
4589{
4590 tHalMsgHeader header;
4591 tHalExitWowlRspParams exitWowlRspParams;
4592} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4593
4594/*---------------------------------------------------------------------------
4595 * WLAN_HAL_ADD_BCN_FILTER_RSP
4596 *--------------------------------------------------------------------------*/
4597typedef PACKED_PRE struct PACKED_POST
4598{
4599 /* success or failure */
4600 tANI_U32 status;
4601} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4602
4603typedef PACKED_PRE struct PACKED_POST
4604{
4605 tHalMsgHeader header;
4606 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4607} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4608
4609/*---------------------------------------------------------------------------
4610 * WLAN_HAL_REM_BCN_FILTER_RSP
4611 *--------------------------------------------------------------------------*/
4612typedef PACKED_PRE struct PACKED_POST
4613{
4614 /* success or failure */
4615 tANI_U32 status;
4616} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4617
4618typedef PACKED_PRE struct PACKED_POST
4619{
4620 tHalMsgHeader header;
4621 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4622} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4623
4624/*---------------------------------------------------------------------------
4625 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4626 *--------------------------------------------------------------------------*/
4627typedef PACKED_PRE struct PACKED_POST
4628{
4629 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004630 tANI_U32 status;
4631 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004632} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4633
4634typedef PACKED_PRE struct PACKED_POST
4635{
4636 tHalMsgHeader header;
4637 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4638} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4639
4640/*---------------------------------------------------------------------------
4641 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4642 *--------------------------------------------------------------------------*/
4643typedef PACKED_PRE struct PACKED_POST
4644{
4645 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004646 tANI_U32 status;
4647 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004648} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4649
4650typedef PACKED_PRE struct PACKED_POST
4651{
4652 tHalMsgHeader header;
4653 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4654} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4655
4656/*---------------------------------------------------------------------------
4657 * WLAN_HAL_HOST_OFFLOAD_RSP
4658 *--------------------------------------------------------------------------*/
4659typedef PACKED_PRE struct PACKED_POST
4660{
4661 /* success or failure */
4662 tANI_U32 status;
4663} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4664
4665typedef PACKED_PRE struct PACKED_POST
4666{
4667 tHalMsgHeader header;
4668 tHalHostOffloadRspParams hostOffloadRspParams;
4669} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4670
4671/*---------------------------------------------------------------------------
4672 * WLAN_HAL_KEEP_ALIVE_RSP
4673 *--------------------------------------------------------------------------*/
4674typedef PACKED_PRE struct PACKED_POST
4675{
4676 /* success or failure */
4677 tANI_U32 status;
4678} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4679
4680typedef PACKED_PRE struct PACKED_POST
4681{
4682 tHalMsgHeader header;
4683 tHalKeepAliveRspParams keepAliveRspParams;
4684} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4685
4686/*---------------------------------------------------------------------------
4687 * WLAN_HAL_SET_RSSI_THRESH_RSP
4688 *--------------------------------------------------------------------------*/
4689typedef PACKED_PRE struct PACKED_POST
4690{
4691 /* success or failure */
4692 tANI_U32 status;
4693} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4694
4695typedef PACKED_PRE struct PACKED_POST
4696{
4697 tHalMsgHeader header;
4698 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4699} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4700
4701/*---------------------------------------------------------------------------
4702 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4703 *--------------------------------------------------------------------------*/
4704typedef PACKED_PRE struct PACKED_POST
4705{
4706 /* success or failure */
4707 tANI_U32 status;
4708} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4709
4710typedef PACKED_PRE struct PACKED_POST
4711{
4712 tHalMsgHeader header;
4713 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4714} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4715
4716/*---------------------------------------------------------------------------
4717 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4718 *--------------------------------------------------------------------------*/
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 /* success or failure */
4722 tANI_U32 status;
4723} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4724
4725typedef PACKED_PRE struct PACKED_POST
4726{
4727 tHalMsgHeader header;
4728 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4729} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4730
4731/*---------------------------------------------------------------------------
4732 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4733 *--------------------------------------------------------------------------*/
4734
4735typedef PACKED_PRE struct PACKED_POST
4736{
4737 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4738 //the request has power constraints, this should be applied only to that session
4739 tSirMacAddr selfStaMacAddr;
4740 //In request,
4741 //power == MaxTx power to be used.
4742 tPowerdBm power;
4743
4744}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4745
4746
4747typedef PACKED_PRE struct PACKED_POST
4748{
4749 tHalMsgHeader header;
4750 tSetMaxTxPwrParams setMaxTxPwrParams;
4751}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4752
4753/*---------------------------------------------------------------------------
4754*WLAN_HAL_SET_MAX_TX_POWER_RSP
4755*--------------------------------------------------------------------------*/
4756
4757typedef PACKED_PRE struct PACKED_POST
4758{
4759 //power == tx power used for management frames.
4760 tPowerdBm power;
4761
4762 /* success or failure */
4763 tANI_U32 status;
4764}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4765
4766typedef PACKED_PRE struct PACKED_POST
4767{
4768 tHalMsgHeader header;
4769 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4770}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4771
Kumar Anandea78e792013-10-10 23:47:01 -07004772
Jeff Johnson295189b2012-06-20 16:38:30 -07004773/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07004774 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
4775 *--------------------------------------------------------------------------*/
4776
4777/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
4778typedef enum
4779{
4780 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
4781 // For 2.4GHz or 5GHz bands
4782 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
4783 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
4784 // End of valid enums
4785 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
4786}tHalSetMaxTxPwrBandInfo;
4787
4788typedef PACKED_PRE struct PACKED_POST
4789{
4790 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07004791 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07004792}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
4793
Kumar Anandea78e792013-10-10 23:47:01 -07004794
Arif Hussain36fda162013-08-30 14:46:57 -07004795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tHalMsgHeader header;
4798 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
4799}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
4800
4801/*---------------------------------------------------------------------------
4802*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
4803*--------------------------------------------------------------------------*/
4804
4805typedef PACKED_PRE struct PACKED_POST
4806{
4807 //power == tx power used for management frames.
4808 tPowerdBm power;
4809
4810 /* success or failure */
4811 tANI_U32 status;
4812}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
4813
4814typedef PACKED_PRE struct PACKED_POST
4815{
4816 tHalMsgHeader header;
4817 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
4818}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
4819
4820/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004821 *WLAN_HAL_SET_TX_POWER_REQ
4822 *--------------------------------------------------------------------------*/
4823
4824typedef PACKED_PRE struct PACKED_POST
4825{
4826 /* TX Power in milli watts */
4827 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004828 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004829}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4830
4831
4832typedef PACKED_PRE struct PACKED_POST
4833{
4834 tHalMsgHeader header;
4835 tSetTxPwrReqParams setTxPwrReqParams;
4836}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4837
4838/*---------------------------------------------------------------------------
4839*WLAN_HAL_SET_TX_POWER_RSP
4840*--------------------------------------------------------------------------*/
4841
4842typedef PACKED_PRE struct PACKED_POST
4843{
4844 /* success or failure */
4845 tANI_U32 status;
4846}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4847
4848typedef PACKED_PRE struct PACKED_POST
4849{
4850 tHalMsgHeader header;
4851 tSetTxPwrRspParams setTxPwrRspParams;
4852}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4853
4854/*---------------------------------------------------------------------------
4855 *WLAN_HAL_GET_TX_POWER_REQ
4856 *--------------------------------------------------------------------------*/
4857
4858typedef PACKED_PRE struct PACKED_POST
4859{
4860 tANI_U8 staId;
4861}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4862
4863typedef PACKED_PRE struct PACKED_POST
4864{
4865 tHalMsgHeader header;
4866 tGetTxPwrReqParams getTxPwrReqParams;
4867}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4868
4869/*---------------------------------------------------------------------------
4870*WLAN_HAL_GET_TX_POWER_RSP
4871*--------------------------------------------------------------------------*/
4872
4873typedef PACKED_PRE struct PACKED_POST
4874{
4875 /* success or failure */
4876 tANI_U32 status;
4877
4878 /* TX Power in milli watts */
4879 tANI_U32 txPower;
4880}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4881
4882typedef PACKED_PRE struct PACKED_POST
4883{
4884 tHalMsgHeader header;
4885 tGetTxPwrRspParams getTxPwrRspParams;
4886}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4887
4888#ifdef WLAN_FEATURE_P2P
4889/*---------------------------------------------------------------------------
4890 *WLAN_HAL_SET_P2P_GONOA_REQ
4891 *--------------------------------------------------------------------------*/
4892
4893typedef PACKED_PRE struct PACKED_POST
4894{
4895 tANI_U8 opp_ps;
4896 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004897 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004898 tANI_U32 duration;
4899 tANI_U32 interval;
4900 tANI_U32 single_noa_duration;
4901 tANI_U8 psSelection;
4902}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4903
4904
4905typedef PACKED_PRE struct PACKED_POST
4906{
4907 tHalMsgHeader header;
4908 tSetP2PGONOAParams setP2PGONOAParams;
4909}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4910
4911/*---------------------------------------------------------------------------
4912*WLAN_HAL_SET_P2P_GONOA_RSP
4913*--------------------------------------------------------------------------*/
4914
4915typedef PACKED_PRE struct PACKED_POST
4916{
4917 /* success or failure */
4918 tANI_U32 status;
4919}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4920
4921typedef PACKED_PRE struct PACKED_POST
4922{
4923 tHalMsgHeader header;
4924 tSetP2PGONOARspParams setP2PGONOARspParams;
4925}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4926#endif
4927
4928/*---------------------------------------------------------------------------
4929 *WLAN_HAL_ADD_SELF_STA_REQ
4930 *--------------------------------------------------------------------------*/
4931
4932typedef PACKED_PRE struct PACKED_POST
4933{
4934 tSirMacAddr selfMacAddr;
4935 tANI_U32 status;
4936}tAddStaSelfParams, *tpAddStaSelfParams;
4937
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004938typedef PACKED_PRE struct PACKED_POST
4939{
4940 tSirMacAddr selfMacAddr;
4941 tANI_U32 status;
4942 tHalIfacePersona iface_persona;
4943}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004944
4945typedef PACKED_PRE struct PACKED_POST
4946{
4947 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004948 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07004949 tAddStaSelfParams addStaSelfParams;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004950 tAddStaSelfParams_V1 addStaSelfParams_V1;
4951 }uAddStaSelfParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004952}tAddStaSelfReq, *tpAddStaSelfReq;
4953
4954/*---------------------------------------------------------------------------
4955*WLAN_HAL_ADD_SELF_STA_RSP
4956*--------------------------------------------------------------------------*/
4957
4958typedef PACKED_PRE struct PACKED_POST
4959{
4960 /* success or failure */
4961 tANI_U32 status;
4962
4963 /*Self STA Index */
4964 tANI_U8 selfStaIdx;
4965
4966 /* DPU Index (IGTK, PTK, GTK all same) */
4967 tANI_U8 dpuIdx;
4968
4969 /* DPU Signature */
4970 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004971
Jeff Johnson295189b2012-06-20 16:38:30 -07004972}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4973
4974typedef PACKED_PRE struct PACKED_POST
4975{
4976 tHalMsgHeader header;
4977 tAddStaSelfRspParams addStaSelfRspParams;
4978}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4979
4980
4981/*---------------------------------------------------------------------------
4982 WLAN_HAL_DEL_STA_SELF_REQ
4983---------------------------------------------------------------------------*/
4984
4985typedef PACKED_PRE struct PACKED_POST
4986{
4987 tSirMacAddr selfMacAddr;
4988
4989}tDelStaSelfParams, *tpDelStaSelfParams;
4990
4991typedef PACKED_PRE struct PACKED_POST
4992{
4993 tHalMsgHeader header;
4994 tDelStaSelfParams delStaSelfParams;
4995} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4996
4997
4998/*---------------------------------------------------------------------------
4999 WLAN_HAL_DEL_STA_SELF_RSP
5000---------------------------------------------------------------------------*/
5001
5002typedef PACKED_PRE struct PACKED_POST
5003{
5004 /*success or failure */
5005 tANI_U32 status;
5006
5007 tSirMacAddr selfMacAddr;
5008}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5009
5010typedef PACKED_PRE struct PACKED_POST
5011{
5012 tHalMsgHeader header;
5013 tDelStaSelfRspParams delStaSelfRspParams;
5014} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5015
5016
5017#ifdef WLAN_FEATURE_VOWIFI_11R
5018
5019/*---------------------------------------------------------------------------
5020 *WLAN_HAL_AGGR_ADD_TS_REQ
5021 *--------------------------------------------------------------------------*/
5022
5023typedef PACKED_PRE struct PACKED_POST
5024{
5025 /* Station Index */
5026 tANI_U16 staIdx;
5027
5028 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5029 /* This will carry the bitmap with the bit positions representing different AC.s*/
5030 tANI_U16 tspecIdx;
5031
5032 /* Tspec info per AC To program TPE with required parameters */
5033 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5034
5035 /* U-APSD Flags: 1b per AC. Encoded as follows:
5036 b7 b6 b5 b4 b3 b2 b1 b0 =
5037 X X X X BE BK VI VO */
5038 tANI_U8 uAPSD;
5039
5040 /* These parameters are for all the access categories */
5041 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5042 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5043 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5044
5045}tAggrAddTsParams, *tpAggrAddTsParams;
5046
5047
5048typedef PACKED_PRE struct PACKED_POST
5049{
5050 tHalMsgHeader header;
5051 tAggrAddTsParams aggrAddTsParam;
5052}tAggrAddTsReq, *tpAggrAddTsReq;
5053
5054/*---------------------------------------------------------------------------
5055*WLAN_HAL_AGGR_ADD_TS_RSP
5056*--------------------------------------------------------------------------*/
5057
5058typedef PACKED_PRE struct PACKED_POST
5059{
5060 /* success or failure */
5061 tANI_U32 status0;
5062 /* FIXME PRIMA for future use for 11R */
5063 tANI_U32 status1;
5064}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5065
5066typedef PACKED_PRE struct PACKED_POST
5067{
5068 tHalMsgHeader header;
5069 tAggrAddTsRspParams aggrAddTsRspParam;
5070}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5071
5072#endif
5073
5074/*---------------------------------------------------------------------------
5075 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5076 *--------------------------------------------------------------------------*/
5077typedef PACKED_PRE struct PACKED_POST
5078{
5079 tANI_U8 isAppsCpuAwake;
5080} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5081
5082typedef PACKED_PRE struct PACKED_POST
5083{
5084 tHalMsgHeader header;
5085 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5086} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5087
5088/*---------------------------------------------------------------------------
5089 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5090 *--------------------------------------------------------------------------*/
5091typedef PACKED_PRE struct PACKED_POST
5092{
5093 /* success or failure */
5094 tANI_U32 status;
5095} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5096
5097typedef PACKED_PRE struct PACKED_POST
5098{
5099 tHalMsgHeader header;
5100 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5101} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5102/*---------------------------------------------------------------------------
5103 * WLAN_HAL_DUMP_COMMAND_REQ
5104 *--------------------------------------------------------------------------*/
5105
5106typedef PACKED_PRE struct PACKED_POST
5107{
5108 tANI_U32 argument1;
5109 tANI_U32 argument2;
5110 tANI_U32 argument3;
5111 tANI_U32 argument4;
5112 tANI_U32 argument5;
5113
5114}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5115
5116typedef PACKED_PRE struct PACKED_POST
5117{
5118 tHalMsgHeader header;
5119 tHalDumpCmdReqParams dumpCmdReqParams;
5120} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5121
5122/*---------------------------------------------------------------------------
5123 * WLAN_HAL_DUMP_COMMAND_RSP
5124 *--------------------------------------------------------------------------*/
5125
5126typedef PACKED_PRE struct PACKED_POST
5127{
5128 /* success or failure */
5129 tANI_U32 status;
5130 /*Length of the responce message*/
5131 tANI_U32 rspLength;
5132 /*FiXME: Currently considering the the responce will be less than 100bytes */
5133 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07005134
Jeff Johnson295189b2012-06-20 16:38:30 -07005135} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5136
5137typedef PACKED_PRE struct PACKED_POST
5138{
5139 tHalMsgHeader header;
5140 tHalDumpCmdRspParams dumpCmdRspParams;
5141} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5142
5143/*---------------------------------------------------------------------------
5144 *WLAN_HAL_COEX_IND
5145 *-------------------------------------------------------------------------*/
5146#define WLAN_COEX_IND_DATA_SIZE (4)
5147#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5148#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005149#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5150#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005151#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5152#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07005153
5154typedef PACKED_PRE struct PACKED_POST
5155{
5156 /*Coex Indication Type*/
5157 tANI_U32 coexIndType;
5158
5159 /*Coex Indication Data*/
5160 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5161}tCoexIndParams,*tpCoexIndParams;
5162
5163typedef PACKED_PRE struct PACKED_POST
5164{
5165 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005166 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005167}tCoexIndMsg, *tpCoexIndMsg;
5168
5169/*---------------------------------------------------------------------------
5170 *WLAN_HAL_OTA_TX_COMPL_IND
5171 *-------------------------------------------------------------------------*/
5172
5173typedef PACKED_PRE struct PACKED_POST
5174{
5175 /*Tx Complete Indication Success or Failure*/
5176 tANI_U32 status;
5177}tTxComplParams,*tpTxComplParams;
5178
5179typedef PACKED_PRE struct PACKED_POST
5180{
5181 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005182 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005183}tTxComplIndMsg, *tpTxComplIndMsg;
5184
5185/*---------------------------------------------------------------------------
5186 * WLAN_HAL_HOST_SUSPEND_IND
5187 *-------------------------------------------------------------------------*/
5188
5189typedef PACKED_PRE struct PACKED_POST
5190{
5191 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005192 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005193}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5194
5195typedef PACKED_PRE struct PACKED_POST
5196{
5197 tHalMsgHeader header;
5198 tHalWlanHostSuspendIndParam suspendIndParams;
5199}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5200
5201/*---------------------------------------------------------------------------
5202 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5203 *-------------------------------------------------------------------------*/
5204
5205typedef PACKED_PRE struct PACKED_POST
5206{
5207 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005208 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005209}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5210
5211typedef PACKED_PRE struct PACKED_POST
5212{
5213 tHalMsgHeader header;
5214 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5215}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5216
5217#ifdef WLAN_FEATURE_P2P
5218/*---------------------------------------------------------------------------
5219 *WLAN_HAL_NOA_ATTR_IND
5220 *-------------------------------------------------------------------------*/
5221
5222typedef PACKED_PRE struct PACKED_POST
5223{
5224 tANI_U8 index ;
5225 tANI_U8 oppPsFlag ;
5226 tANI_U16 ctWin ;
5227
5228 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005229 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005230 tANI_U32 uNoa1Duration;
5231 tANI_U32 uNoa1Interval;
5232 tANI_U32 uNoa1StartTime;
5233
5234 tANI_U16 uNoa2IntervalCnt;
5235 tANI_U16 rsvd2;
5236 tANI_U32 uNoa2Duration;
5237 tANI_U32 uNoa2Interval;
5238 tANI_U32 uNoa2StartTime;
5239
5240 tANI_U32 status;
5241}tNoaAttrIndParams, *tpNoaAttrIndParams;
5242
5243typedef PACKED_PRE struct PACKED_POST
5244{
5245 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005246 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005247}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005248
5249/*---------------------------------------------------------------------------
5250 *WLAN_HAL_NOA_START_IND
5251 *-------------------------------------------------------------------------*/
5252
5253typedef PACKED_PRE struct PACKED_POST
5254{
5255 tANI_U32 status;
5256 tANI_U32 bssIdx;
5257}tNoaStartIndParams, *tpNoaStartIndParams;
5258
5259typedef PACKED_PRE struct PACKED_POST
5260{
5261 tHalMsgHeader header;
5262 tNoaStartIndParams noaStartIndParams;
5263}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005264#endif
5265
5266/*---------------------------------------------------------------------------
5267 * WLAN_HAL_HOST_RESUME_REQ
5268 *-------------------------------------------------------------------------*/
5269
5270typedef PACKED_PRE struct PACKED_POST
5271{
5272 tANI_U8 configuredMcstBcstFilterSetting;
5273}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5274
5275typedef PACKED_PRE struct PACKED_POST
5276{
5277 tHalMsgHeader header;
5278 tHalWlanHostResumeReqParam resumeReqParams;
5279}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5280
5281/*---------------------------------------------------------------------------
5282 * WLAN_HAL_HOST_RESUME_RSP
5283 *--------------------------------------------------------------------------*/
5284typedef PACKED_PRE struct PACKED_POST
5285{
5286 /* success or failure */
5287 tANI_U32 status;
5288} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5289
5290typedef PACKED_PRE struct PACKED_POST
5291{
5292 tHalMsgHeader header;
5293 tHalHostResumeRspParams hostResumeRspParams;
5294} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5295
Anand Kumar012623a2013-01-11 17:00:00 -08005296typedef PACKED_PRE struct PACKED_POST
5297{
5298 tANI_U16 staIdx;
5299 // Peer MAC Address, whose BA session has timed out
5300 tSirMacAddr peerMacAddr;
5301 // TID for which a BA session timeout is being triggered
5302 tANI_U8 baTID;
5303 // DELBA direction
5304 // 1 - Originator
5305 // 0 - Recipient
5306 tANI_U8 baDirection;
5307 tANI_U32 reasonCode;
5308 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5309} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5310
5311typedef PACKED_PRE struct PACKED_POST
5312{
5313 tHalMsgHeader header;
5314 tHalWlanDelBaIndMsg hostdelBaParam;
5315} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5316
Jeff Johnson295189b2012-06-20 16:38:30 -07005317/*---------------------------------------------------------------------------
5318 *PNO Messages
5319 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005320/* Max number of channels that a network can be found on*/
5321/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5322 * be changed at same time
5323 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005324#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005325
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305326/*Max number of channels that a network can be found on*/
5327#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5328
Jeff Johnson295189b2012-06-20 16:38:30 -07005329/*Maximum numbers of networks supported by PNO*/
5330#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5331
5332/*The number of scan time intervals that can be programmed into PNO*/
5333#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5334
5335/*Maximum size of the probe template*/
5336#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5337
Jeff Johnson32d95a32012-09-10 13:15:23 -07005338/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005339 Immediate - scanning will start immediately and PNO procedure will
5340 be repeated based on timer
5341 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005342 Resume - scanning will start on system resume
5343 Delay - start the scan timer to trigger PNO scan
5344 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005345typedef enum
5346{
5347 ePNO_MODE_IMMEDIATE,
5348 ePNO_MODE_ON_SUSPEND,
5349 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305350 ePNO_MODE_DELAY,
5351 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005352 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5353} ePNOMode;
5354
5355/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005356typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005357{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005358 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005359 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005360
Jeff Johnson295189b2012-06-20 16:38:30 -07005361 // Upper layer authentication types
5362 eAUTH_TYPE_WPA = 2,
5363 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005364
Jeff Johnson295189b2012-06-20 16:38:30 -07005365 eAUTH_TYPE_RSN = 4,
5366 eAUTH_TYPE_RSN_PSK = 5,
5367 eAUTH_TYPE_FT_RSN = 6,
5368 eAUTH_TYPE_FT_RSN_PSK = 7,
5369 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5370 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005371 eAUTH_TYPE_CCKM_WPA = 10,
5372 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005373
Jeff Johnson295189b2012-06-20 16:38:30 -07005374 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5375
5376}tAuthType;
5377
5378/* Encryption type */
5379typedef enum eEdType
5380{
5381 eED_ANY = 0,
5382 eED_NONE = 1,
5383 eED_WEP = 2,
5384 eED_TKIP = 3,
5385 eED_CCMP = 4,
5386 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005387
Jeff Johnson295189b2012-06-20 16:38:30 -07005388 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5389} tEdType;
5390
5391/* SSID broadcast type */
5392typedef enum eSSIDBcastType
5393{
5394 eBCAST_UNKNOWN = 0,
5395 eBCAST_NORMAL = 1,
5396 eBCAST_HIDDEN = 2,
5397
5398 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5399} tSSIDBcastType;
5400
Jeff Johnson32d95a32012-09-10 13:15:23 -07005401/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005402 The network description for which PNO will have to look for
5403*/
5404typedef PACKED_PRE struct PACKED_POST
5405{
5406 /*SSID of the BSS*/
5407 tSirMacSSid ssId;
5408
5409 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005410 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005411
5412 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005413 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005414
Jeff Johnson32d95a32012-09-10 13:15:23 -07005415 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005416 0 - if all channels */
5417 tANI_U8 ucChannelCount;
5418 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5419
5420 /*Indicates the RSSI threshold for the network to be considered*/
5421 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005422}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005423
5424typedef PACKED_PRE struct PACKED_POST
5425{
5426 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005427 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005428
Jeff Johnson32d95a32012-09-10 13:15:23 -07005429 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005430 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005431 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005432
Jeff Johnson32d95a32012-09-10 13:15:23 -07005433 /*e.g: 2 3
5434 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005435 - it will wait 2s between consecutive scans for 3 times
5436 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005437}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005438
Jeff Johnson32d95a32012-09-10 13:15:23 -07005439/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005440 The network parameters to be sent to the PNO algorithm
5441*/
5442typedef PACKED_PRE struct PACKED_POST
5443{
5444 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005445 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005446
Jeff Johnson32d95a32012-09-10 13:15:23 -07005447 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005448 two consecutive scan procedures
5449 If the desired is for a uniform timer that fires always at the exact same
5450 interval - one single value is to be set
5451 If there is a desire for a more complex - telescopic like timer multiple
5452 values can be set - once PNO reaches the end of the array it will
5453 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005454 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005455
5456}tScanTimersType;
5457
5458typedef PACKED_PRE struct PACKED_POST {
5459
5460 /*Enable PNO*/
5461 tANI_U32 enable;
5462
5463 /*Immediate, On Suspend, On Resume*/
5464 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005465
Jeff Johnson295189b2012-06-20 16:38:30 -07005466 /*Number of networks sent for PNO*/
5467 tANI_U32 ucNetworksCount;
5468
5469 /*The networks that PNO needs to look for*/
5470 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5471
5472 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005473 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005474
5475 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005476 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005477 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5478
5479 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005480 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005481 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5482
5483} tPrefNetwListParams, * tpPrefNetwListParams;
5484
5485/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005486 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005487*/
5488typedef PACKED_PRE struct PACKED_POST
5489{
5490 tHalMsgHeader header;
5491 tPrefNetwListParams prefNetwListParams;
5492} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5493
5494
Jeff Johnson32d95a32012-09-10 13:15:23 -07005495/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005496 The network description for which PNO will have to look for
5497*/
5498typedef PACKED_PRE struct PACKED_POST
5499{
5500 /*SSID of the BSS*/
5501 tSirMacSSid ssId;
5502
5503 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005504 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005505
5506 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005507 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005508
5509 /*SSID broadcast type, normal, hidden or unknown*/
5510 tSSIDBcastType bcastNetworkType;
5511
Jeff Johnson32d95a32012-09-10 13:15:23 -07005512 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005513 0 - if all channels */
5514 tANI_U8 ucChannelCount;
5515 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5516
5517 /*Indicates the RSSI threshold for the network to be considered*/
5518 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005519}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005520
5521typedef PACKED_PRE struct PACKED_POST {
5522
5523 /*Enable PNO*/
5524 tANI_U32 enable;
5525
5526 /*Immediate, On Suspend, On Resume*/
5527 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005528
Jeff Johnson295189b2012-06-20 16:38:30 -07005529 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005530 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005531
5532 /*The networks that PNO needs to look for*/
5533 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5534
5535 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005536 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005537
5538 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005539 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005540 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5541
5542 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005543 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005544 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5545
5546} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5547
5548/*
5549 Preferred network list request new
5550*/
5551typedef PACKED_PRE struct PACKED_POST
5552{
5553 tHalMsgHeader header;
5554 tPrefNetwListParamsNew prefNetwListParams;
5555} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5556
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005557#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5558typedef PACKED_PRE struct PACKED_POST
5559{
5560 tSirMacSSid ssId;
5561 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5562 tANI_U32 authentication;
5563 tEdType encryption;
5564 tEdType mcencryption;
5565 tANI_U8 ChannelCount;
5566 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5567}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005568
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005569typedef PACKED_PRE struct PACKED_POST
5570{
5571 tANI_U8 mdiePresent;
5572 tANI_U16 mobilityDomain;
5573}tMobilityDomainInfo;
5574
5575typedef PACKED_PRE struct PACKED_POST {
5576 eAniBoolean RoamScanOffloadEnabled;
5577 tANI_S8 LookupThreshold;
5578 tANI_U8 RoamRssiDiff;
5579 tANI_U8 ChannelCacheType;
5580 tANI_U8 Command;
5581 tANI_U8 StartScanReason;
5582 tANI_U16 NeighborScanTimerPeriod;
5583 tANI_U16 NeighborRoamScanRefreshPeriod;
5584 tANI_U16 NeighborScanChannelMinTime;
5585 tANI_U16 NeighborScanChannelMaxTime;
5586 tANI_U16 EmptyRefreshScanPeriod;
5587 tANI_U8 ValidChannelCount;
5588 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5589 eAniBoolean IsCCXEnabled;
5590
5591 tANI_U16 us24GProbeSize;
5592 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5593 tANI_U16 us5GProbeSize;
5594 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5595 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005596 tANI_U8 nProbes;
5597 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005598 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5599 tRoamNetworkType ConnectedNetwork;
5600 tMobilityDomainInfo MDID;
5601} tRoamCandidateListParams, * tpRoamCandidateListParams;
5602
5603typedef PACKED_PRE struct PACKED_POST
5604{
Kumar Anandea78e792013-10-10 23:47:01 -07005605 tHalMsgHeader header;
5606 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005607} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5608
5609typedef PACKED_PRE struct PACKED_POST
5610{
Kumar Anandea78e792013-10-10 23:47:01 -07005611 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005612
Kumar Anandea78e792013-10-10 23:47:01 -07005613 /* status of the request - just to indicate that PNO has acknowledged
5614 * the request and will start scanning */
5615 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005616} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5617#endif
Kumar Anandea78e792013-10-10 23:47:01 -07005618
5619/*
5620 Preferred network list response
5621*/
5622typedef PACKED_PRE struct PACKED_POST
5623{
5624 tHalMsgHeader header;
5625
5626 /* status of the request - just to indicate that PNO has acknowledged
5627 * the request and will start scanning*/
5628 tANI_U32 status;
5629} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5630
5631/*
5632 Preferred network indication parameters
5633*/
5634typedef PACKED_PRE struct PACKED_POST {
5635
5636 /*Network that was found with the highest RSSI*/
5637 tSirMacSSid ssId;
5638
5639 /*Indicates the RSSI */
5640 tANI_U8 rssi;
5641
5642 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
5643 tANI_U16 frameLength;
5644
5645} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5646
5647/*
5648 Preferred network found indication
5649*/
5650typedef PACKED_PRE struct PACKED_POST {
5651
5652 tHalMsgHeader header;
5653 tPrefNetwFoundParams prefNetwFoundParams;
5654} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5655
5656
5657typedef PACKED_PRE struct PACKED_POST {
5658
5659 /*RSSI Threshold*/
5660 tANI_U8 ucRssiThreshold;
5661
5662} tRssiFilterParams, * tpRssiFilterParams;
5663
Jeff Johnson295189b2012-06-20 16:38:30 -07005664/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005665 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005666*/
5667typedef PACKED_PRE struct PACKED_POST
5668{
5669 tHalMsgHeader header;
5670 tRssiFilterParams prefRSSIFilterParams;
5671} tSetRssiFilterReq, *tpSetRssiFilterReq;
5672
5673/*
5674 Set RSSI filter resp
5675*/
5676typedef PACKED_PRE struct PACKED_POST{
5677 tHalMsgHeader header;
5678 /*status of the request */
5679 tANI_U32 status;
5680} tSetRssiFilterResp, *tpSetRssiFilterResp;
5681/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005682 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005683*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005684typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005685{
5686
5687 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005688 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005689
5690 /*Lets PNO know that host has determined the regulatory domain*/
5691 tANI_U8 b11dResolved;
5692
5693 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005694 tANI_U8 ucChannelCount;
5695 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005696
5697 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005698 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005699
5700 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005701 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005702
5703 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005704 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005705
5706 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005707 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005708
5709 /*Cb State*/
5710 ePhyChanBondState cbState;
5711
5712} tUpdateScanParams, * tpUpdateScanParams;
5713
5714/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305715 Update scan params
5716*/
5717typedef PACKED_PRE struct PACKED_POST
5718{
5719
5720 /*Host setting for 11d*/
5721 tANI_U8 b11dEnabled;
5722
5723 /*Lets PNO know that host has determined the regulatory domain*/
5724 tANI_U8 b11dResolved;
5725
5726 /*Channels on which PNO is allowed to scan*/
5727 tANI_U8 ucChannelCount;
5728 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5729
5730 /*Minimum channel time*/
5731 tANI_U16 usActiveMinChTime;
5732
5733 /*Maximum channel time*/
5734 tANI_U16 usActiveMaxChTime;
5735
5736 /*Minimum channel time*/
5737 tANI_U16 usPassiveMinChTime;
5738
5739 /*Maximum channel time*/
5740 tANI_U16 usPassiveMaxChTime;
5741
5742 /*Cb State*/
5743 ePhyChanBondState cbState;
5744
5745} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5746
5747/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005748 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005749 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005750*/
5751typedef PACKED_PRE struct PACKED_POST{
5752
5753 tHalMsgHeader header;
5754 tUpdateScanParams scanParams;
5755} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5756
5757/*
5758 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005759 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005760*/
5761typedef PACKED_PRE struct PACKED_POST{
5762
5763 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305764 tUpdateScanParamsEx scanParams;
5765} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5766
5767/*
5768 Update scan params - sent from host to PNO
5769 to be used during PNO scanning
5770*/
5771typedef PACKED_PRE struct PACKED_POST{
5772
5773 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005774
5775 /*status of the request */
5776 tANI_U32 status;
5777
5778} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5779
5780/*---------------------------------------------------------------------------
5781 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5782 *--------------------------------------------------------------------------*/
5783typedef PACKED_PRE struct PACKED_POST
5784{
5785 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5786 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5787 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5788 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5789} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5790
5791typedef PACKED_PRE struct PACKED_POST
5792{
5793 tHalMsgHeader header;
5794 tHalTxPerTrackingReqParam txPerTrackingParams;
5795} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5796
5797/*---------------------------------------------------------------------------
5798 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5799 *--------------------------------------------------------------------------*/
5800typedef PACKED_PRE struct PACKED_POST
5801{
5802 /* success or failure */
5803 tANI_U32 status;
5804} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5805
5806typedef PACKED_PRE struct PACKED_POST
5807{
5808 tHalMsgHeader header;
5809 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5810} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5811
5812/*---------------------------------------------------------------------------
5813 * WLAN_HAL_TX_PER_HIT_IND
5814 *--------------------------------------------------------------------------*/
5815typedef PACKED_PRE struct PACKED_POST
5816{
5817 tHalMsgHeader header;
5818}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5819
5820/*---------------------------------------------------------------------------
5821 *******************Packet Filtering Definitions Begin*******************
5822 *--------------------------------------------------------------------------*/
5823#define HAL_PROTOCOL_DATA_LEN 8
5824#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5825#define HAL_MAX_NUM_FILTERS 20
5826#define HAL_MAX_CMP_PER_FILTER 10
5827
5828typedef enum
5829{
5830 HAL_RCV_FILTER_TYPE_INVALID,
5831 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5832 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5833 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5834}tHalReceivePacketFilterType;
5835
Jeff Johnson32d95a32012-09-10 13:15:23 -07005836typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005837{
5838 HAL_FILTER_PROTO_TYPE_INVALID,
5839 HAL_FILTER_PROTO_TYPE_MAC,
5840 HAL_FILTER_PROTO_TYPE_ARP,
5841 HAL_FILTER_PROTO_TYPE_IPV4,
5842 HAL_FILTER_PROTO_TYPE_IPV6,
5843 HAL_FILTER_PROTO_TYPE_UDP,
5844 HAL_FILTER_PROTO_TYPE_MAX
5845}tHalRcvPktFltProtocolType;
5846
Jeff Johnson32d95a32012-09-10 13:15:23 -07005847typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005848{
5849 HAL_FILTER_CMP_TYPE_INVALID,
5850 HAL_FILTER_CMP_TYPE_EQUAL,
5851 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5852 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5853 HAL_FILTER_CMP_TYPE_MAX
5854}tHalRcvPktFltCmpFlagType;
5855
Jeff Johnson32d95a32012-09-10 13:15:23 -07005856typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005857{
5858 tANI_U8 protocolLayer;
5859 tANI_U8 cmpFlag;
5860 tANI_U16 dataLength; /* Length of the data to compare */
5861 tANI_U8 dataOffset; /* from start of the respective frame header */
5862 tANI_U8 reserved; /* Reserved field */
5863 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5864 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5865}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5866
5867typedef PACKED_PRE struct PACKED_POST
5868{
5869 tANI_U8 filterId;
5870 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005871 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005872 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005873 tHalRcvPktFilterParams paramsData[1];
5874}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5875
5876typedef PACKED_PRE struct PACKED_POST
5877{
Jeff Johnsone7245742012-09-05 17:12:55 -07005878 tANI_U8 filterId;
5879 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005880 tANI_U8 numParams;
5881 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005882 tANI_U8 bssIdx;
5883 tHalRcvPktFilterParams paramsData[1];
5884}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5885
5886typedef PACKED_PRE struct PACKED_POST
5887{
Jeff Johnson295189b2012-06-20 16:38:30 -07005888 tHalMsgHeader header;
5889 tHalRcvPktFilterCfgType pktFilterCfg;
5890} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5891
Jeff Johnsone7245742012-09-05 17:12:55 -07005892typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005893{
5894 tANI_U8 dataOffset; /* from start of the respective frame header */
5895 tANI_U32 cMulticastAddr;
5896 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005897 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005898} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5899
5900typedef PACKED_PRE struct PACKED_POST
5901{
5902 /* success or failure */
5903 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005904 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005905} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5906
5907typedef PACKED_PRE struct PACKED_POST
5908{
5909 tHalMsgHeader header;
5910 tHalSetPktFilterRspParams pktFilterRspParams;
5911} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5912
Jeff Johnsone7245742012-09-05 17:12:55 -07005913typedef PACKED_PRE struct PACKED_POST
5914{
5915 tANI_U8 bssIdx;
5916} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005917
5918typedef PACKED_PRE struct PACKED_POST
5919{
5920 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005921 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005922} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5923
Jeff Johnsone7245742012-09-05 17:12:55 -07005924
Jeff Johnson295189b2012-06-20 16:38:30 -07005925typedef PACKED_PRE struct PACKED_POST
5926{
5927 tANI_U8 filterId;
5928 tANI_U32 matchCnt;
5929} tHalRcvFltPktMatchCnt;
5930typedef PACKED_PRE struct PACKED_POST
5931{
5932 /* Success or Failure */
5933 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005934 tANI_U32 matchCnt;
5935 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005936 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005937} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5938
5939typedef PACKED_PRE struct PACKED_POST
5940{
5941 tHalMsgHeader header;
5942 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5943} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5944
5945typedef PACKED_PRE struct PACKED_POST
5946{
5947 tANI_U32 status; /* only valid for response message */
5948 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005949 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005950}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5951
5952typedef PACKED_PRE struct PACKED_POST
5953{
5954 tHalMsgHeader header;
5955 tHalRcvFltPktClearParam filterClearParam;
5956} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5957
5958typedef PACKED_PRE struct PACKED_POST
5959{
5960 tHalMsgHeader header;
5961 tHalRcvFltPktClearParam filterClearParam;
5962} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5963
5964typedef PACKED_PRE struct PACKED_POST
5965{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005966 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005967 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005968}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5969
5970typedef PACKED_PRE struct PACKED_POST
5971{
5972 tHalMsgHeader header;
5973 tHalRcvFltMcAddrListType mcAddrList;
5974} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5975
5976typedef PACKED_PRE struct PACKED_POST
5977{
5978 tHalMsgHeader header;
5979 tHalRcvFltPktSetMcListRspType rspParam;
5980} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5981
5982
5983/*---------------------------------------------------------------------------
5984 *******************Packet Filtering Definitions End*******************
5985 *--------------------------------------------------------------------------*/
5986
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005987/*
5988 * There are two versions of this message
5989 * Version 1 : Base version
5990 * Current version : Base version + Max LI modulated DTIM
5991 */
5992typedef PACKED_PRE struct PACKED_POST
5993{
5994 /* Ignore DTIM */
5995 tANI_U32 uIgnoreDTIM;
5996
5997 /*DTIM Period*/
5998 tANI_U32 uDTIMPeriod;
5999
6000 /* Listen Interval */
6001 tANI_U32 uListenInterval;
6002
6003 /* Broadcast Multicast Filter */
6004 tANI_U32 uBcastMcastFilter;
6005
6006 /* Beacon Early Termination */
6007 tANI_U32 uEnableBET;
6008
6009 /* Beacon Early Termination Interval */
6010 tANI_U32 uBETInterval;
6011}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6012
6013typedef PACKED_PRE struct PACKED_POST
6014{
6015 tHalMsgHeader header;
6016 tSetPowerParamsVer1Type powerParams;
6017} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6018
Jeff Johnson295189b2012-06-20 16:38:30 -07006019typedef PACKED_PRE struct PACKED_POST
6020{
6021 /* Ignore DTIM */
6022 tANI_U32 uIgnoreDTIM;
6023
6024 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006025 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006026
6027 /* Listen Interval */
6028 tANI_U32 uListenInterval;
6029
6030 /* Broadcast Multicast Filter */
6031 tANI_U32 uBcastMcastFilter;
6032
6033 /* Beacon Early Termination */
6034 tANI_U32 uEnableBET;
6035
6036 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006037 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006038
6039 /* MAX LI for modulated DTIM */
6040 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006041}tSetPowerParamsType, *tpSetPowerParamsType;
6042
6043typedef PACKED_PRE struct PACKED_POST
6044{
6045 tHalMsgHeader header;
6046 tSetPowerParamsType powerParams;
6047} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6048
6049typedef PACKED_PRE struct PACKED_POST{
6050
6051 tHalMsgHeader header;
6052
6053 /*status of the request */
6054 tANI_U32 status;
6055
6056} tSetPowerParamsResp, *tpSetPowerParamsResp;
6057
6058/*---------------------------------------------------------------------------
6059 ****************Capability bitmap exchange definitions and macros starts*************
6060 *--------------------------------------------------------------------------*/
6061
Anand Kumar012623a2013-01-11 17:00:00 -08006062typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006063 MCC = 0,
6064 P2P = 1,
6065 DOT11AC = 2,
6066 SLM_SESSIONIZATION = 3,
6067 DOT11AC_OPMODE = 4,
6068 SAP32STA = 5,
6069 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006070 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006071 WLANACTIVE_OFFLOAD = 8,
6072 BEACON_OFFLOAD = 9,
6073 SCAN_OFFLOAD = 10,
6074 ROAM_OFFLOAD = 11,
6075 BCN_MISS_OFFLOAD = 12,
6076 STA_POWERSAVE = 13,
6077 STA_ADVANCED_PWRSAVE = 14,
6078 AP_UAPSD = 15,
6079 AP_DFS = 16,
6080 BLOCKACK = 17,
6081 PHY_ERR = 18,
6082 BCN_FILTER = 19,
6083 RTT = 20,
6084 RATECTRL = 21,
6085 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006086 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006087 SPECULATIVE_PS_POLL = 24,
6088 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006089 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006090 WLAN_SCAN_OFFLOAD = 27,
6091 WLAN_PERIODIC_TX_PTRN = 28,
6092 ADVANCE_TDLS = 29,
6093 BATCH_SCAN = 30,
6094 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006095} placeHolderInCapBitmap;
6096
Jeff Johnson295189b2012-06-20 16:38:30 -07006097typedef PACKED_PRE struct PACKED_POST{
6098
6099 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006100} tWlanFeatCaps, *tpWlanFeatCaps;
6101
6102typedef PACKED_PRE struct PACKED_POST{
6103
Jeff Johnson32d95a32012-09-10 13:15:23 -07006104 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006105 tWlanFeatCaps wlanFeatCaps;
6106
6107} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6108
Jeff Johnsone7245742012-09-05 17:12:55 -07006109#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6110#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006111#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006112#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006113#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006114#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006115#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006116
Jeff Johnsone7245742012-09-05 17:12:55 -07006117tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6118
Jeff Johnson295189b2012-06-20 16:38:30 -07006119#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006120 if ((b)<=127) { \
6121 arr_index = (b)/32; \
6122 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006123 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006124 (a)->featCaps[arr_index] |= (1<<bit_index); \
6125 } \
6126 }
6127#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006128 if ((b)<=127) { \
6129 arr_index = (b)/32; \
6130 bit_index = (b)%32; \
6131 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006132 } \
6133 }
6134#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006135 if ((b)<=127) { \
6136 arr_index = (b)/32; \
6137 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006138 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006139 } \
6140 }
6141
6142/*---------------------------------------------------------------------------
6143 * WLAN_HAL_WAKE_REASON_IND
6144 *--------------------------------------------------------------------------*/
6145
6146/* status codes to help debug rekey failures */
6147typedef enum
6148{
6149 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6150 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6151 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6152 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6153 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6154 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6155 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6156 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6157 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6158 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6159
6160 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6161} tGTKRekeyStatus;
6162
6163/* wake reason types */
6164typedef enum
6165{
6166 WLAN_HAL_WAKE_REASON_NONE = 0,
6167 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6168 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6169 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6170 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6171 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6172 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6173 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6174} tWakeReasonType;
6175
6176/*
6177 Wake Packet which is saved at tWakeReasonParams.DataStart
6178 This data is sent for any wake reasons that involve a packet-based wakeup :
6179
6180 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6181 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6182 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6183 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6184 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6185
6186 The information is provided to the host for auditing and debug purposes
6187
6188*/
6189
6190/*
6191 Wake reason indication parameters
6192*/
6193typedef PACKED_PRE struct PACKED_POST
6194{
6195 uint32 ulReason; /* see tWakeReasonType */
6196 uint32 ulReasonArg; /* argument specific to the reason type */
6197 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6198 HAL truncates the data (i.e. data packets) this length
6199 will be less than the actual length */
6200 uint32 ulActualDataLen; /* actual length of data */
6201 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6202 see specific wake type */
6203} tWakeReasonParams, *tpWakeReasonParams;
6204
6205/*
6206 Wake reason indication
6207*/
6208typedef PACKED_PRE struct PACKED_POST
6209{
6210 tHalMsgHeader header;
6211 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006212 tANI_U32 uBssIdx : 8;
6213 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006214} tHalWakeReasonInd, *tpHalWakeReasonInd;
6215
6216/*---------------------------------------------------------------------------
6217* WLAN_HAL_GTK_OFFLOAD_REQ
6218*--------------------------------------------------------------------------*/
6219
6220#define HAL_GTK_KEK_BYTES 16
6221#define HAL_GTK_KCK_BYTES 16
6222
6223#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6224
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006225#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6226
Jeff Johnson295189b2012-06-20 16:38:30 -07006227typedef PACKED_PRE struct PACKED_POST
6228{
6229 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006230 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006231 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6232 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006233 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006234} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6235
6236typedef PACKED_PRE struct PACKED_POST
6237{
6238 tHalMsgHeader header;
6239 tHalGtkOffloadReqParams gtkOffloadReqParams;
6240} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6241
6242/*---------------------------------------------------------------------------
6243* WLAN_HAL_GTK_OFFLOAD_RSP
6244*--------------------------------------------------------------------------*/
6245typedef PACKED_PRE struct PACKED_POST
6246{
6247 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006248 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006249} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6250
6251typedef PACKED_PRE struct PACKED_POST
6252{
6253 tHalMsgHeader header;
6254 tHalGtkOffloadRspParams gtkOffloadRspParams;
6255} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6256
6257
6258/*---------------------------------------------------------------------------
6259* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6260*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006261typedef PACKED_PRE struct PACKED_POST
6262{
6263 tANI_U8 bssIdx;
6264
6265} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006266
6267typedef PACKED_PRE struct PACKED_POST
6268{
6269 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006270 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006271} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6272
6273/*---------------------------------------------------------------------------
6274* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6275*--------------------------------------------------------------------------*/
6276typedef PACKED_PRE struct PACKED_POST
6277{
6278 tANI_U32 ulStatus; /* success or failure */
6279 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6280 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6281 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6282 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6283 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006284 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006285} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6286
6287typedef PACKED_PRE struct PACKED_POST
6288{
6289 tHalMsgHeader header;
6290 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6291} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6292
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006293/*---------------------------------------------------------------------------
6294* WLAN_HAL_DHCP_IND
6295*--------------------------------------------------------------------------*/
6296typedef PACKED_PRE struct PACKED_POST
6297{
6298 /*Indicates the device mode which indicates about the DHCP activity */
6299 tANI_U8 device_mode;
6300 tSirMacAddr macAddr;
6301} tDHCPInfo, *tpDHCPInfo;
6302
6303typedef PACKED_PRE struct PACKED_POST
6304{
6305 tHalMsgHeader header;
6306 tANI_U32 status; /* success or failure */
6307} tDHCPIndStatus, *tpDHCPIndstatus;
6308
Jeff Johnson295189b2012-06-20 16:38:30 -07006309/*
6310 Thermal Mitigation mode of operation.
6311 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6312 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6313 reducing transmit power
6314 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6315*/
6316typedef enum
6317{
6318 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6319 HAL_THERMAL_MITIGATION_MODE_0,
6320 HAL_THERMAL_MITIGATION_MODE_1,
6321 HAL_THERMAL_MITIGATION_MODE_2,
6322 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6323}tHalThermalMitigationModeType;
6324//typedef tANI_S16 tHalThermalMitigationModeType;
6325
6326/*
6327 Thermal Mitigation level.
6328 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6329 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6330
6331 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6332 level indicates normal mode of operation
6333 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6334 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6335 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6336 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6337*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006338typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006339{
6340 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6341 HAL_THERMAL_MITIGATION_LEVEL_0,
6342 HAL_THERMAL_MITIGATION_LEVEL_1,
6343 HAL_THERMAL_MITIGATION_LEVEL_2,
6344 HAL_THERMAL_MITIGATION_LEVEL_3,
6345 HAL_THERMAL_MITIGATION_LEVEL_4,
6346 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6347}tHalThermalMitigationLevelType;
6348//typedef tANI_S16 tHalThermalMitigationLevelType;
6349
6350typedef PACKED_PRE struct PACKED_POST
6351{
6352 /* Thermal Mitigation Operation Mode */
6353 tHalThermalMitigationModeType thermalMitMode;
6354
6355 /* Thermal Mitigation Level */
6356 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006357
Jeff Johnson295189b2012-06-20 16:38:30 -07006358}tSetThermalMitgationType, *tpSetThermalMitgationType;
6359
6360/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6361typedef PACKED_PRE struct PACKED_POST
6362{
6363 tHalMsgHeader header;
6364 tSetThermalMitgationType thermalMitParams;
6365} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6366
6367typedef PACKED_PRE struct PACKED_POST{
6368
6369 tHalMsgHeader header;
6370
6371 /*status of the request */
6372 tANI_U32 status;
6373
6374} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6375
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006376/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6377provided to FW from Host via periodic messages */
6378typedef PACKED_PRE struct PACKED_POST {
6379 /* TX stats */
6380 uint32 txBytesPushed;
6381 uint32 txPacketsPushed;
6382
6383 /* RX stats */
6384 uint32 rxBytesRcvd;
6385 uint32 rxPacketsRcvd;
6386 uint32 rxTimeTotal;
6387} tStaStatsClassB, *tpStaStatsClassB;
6388
6389typedef PACKED_PRE struct PACKED_POST {
6390
6391 /* Duration over which this stats was collected */
6392 tANI_U32 duration;
6393
6394 /* Per STA Stats */
6395 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6396} tStatsClassBIndParams, *tpStatsClassBIndParams;
6397
6398typedef PACKED_PRE struct PACKED_POST {
6399
6400 tHalMsgHeader header;
6401
6402 /* Class B Stats */
6403 tStatsClassBIndParams statsClassBIndParams;
6404} tStatsClassBInd, *tpStatsClassBInd;
6405
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306406/*Wifi Proximity paramters in AP mode*/
6407#ifdef FEATURE_WIFI_PROXIMITY
6408
6409typedef PACKED_PRE struct PACKED_POST{
6410
6411 tANI_U8 wifiProximityChannel;
6412 tANI_U32 wifiProximityDuration;
6413 tANI_U32 wifiProximityInterval;
6414 tANI_U32 wifiProximityMode;
6415 tANI_U32 wifiProximityStatus;
6416 tSirMacAddr bssId;
6417 tSirMacSSid ssId;
6418
6419} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6420
6421typedef PACKED_PRE struct PACKED_POST
6422{
6423 tHalMsgHeader header;
6424
6425 tSetWifiProximityReqParam wifiProximityReqParams;
6426
6427}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6428
6429/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6430typedef PACKED_PRE struct PACKED_POST{
6431
6432 tHalMsgHeader header;
6433
6434 /*status of the request */
6435 tANI_U32 status;
6436
6437} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6438
6439#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006440
6441#ifdef FEATURE_SPECULATIVE_PS_POLL
6442/*---------------------------------------------------------------------------
6443 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6444 *--------------------------------------------------------------------------*/
6445typedef PACKED_PRE struct PACKED_POST
6446{
6447 tANI_U8 bssIdx;
6448 tANI_U16 serviceInterval;
6449 tANI_U16 suspendInterval;
6450 tANI_U8 acMask;
6451} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6452
6453typedef PACKED_PRE struct PACKED_POST
6454{
6455 tHalMsgHeader header;
6456 tHalStartSpecPsPollReqParams specPsPollReq;
6457} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6458
6459/*---------------------------------------------------------------------------
6460 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6461 *--------------------------------------------------------------------------*/
6462typedef PACKED_PRE struct PACKED_POST
6463{
6464 /* success or failure */
6465 tANI_U32 status;
6466 tANI_U8 bssIdx;
6467} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6468
6469typedef PACKED_PRE struct PACKED_POST
6470{
6471 tHalMsgHeader header;
6472 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6473} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6474
6475/*---------------------------------------------------------------------------
6476 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6477 *--------------------------------------------------------------------------*/
6478typedef PACKED_PRE struct PACKED_POST
6479{
6480 tHalMsgHeader header;
6481 tANI_U8 bssIdx;
6482} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6483#endif
6484
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306485#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306486#define HAL_MAX_SUPP_CHANNELS 128
6487#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306488/*---------------------------------------------------------------------------
6489 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6490 *-------------------------------------------------------------------------*/
6491typedef PACKED_PRE struct PACKED_POST
6492{
6493 /*STA Index*/
6494 tANI_U16 staIdx;
6495
6496 /* if this is 1, self is initiator and peer is reponder */
6497 tANI_U8 bIsResponder;
6498
6499 /* QoS Info */
6500 tANI_U8 acVOUAPSDFlag:1;
6501 tANI_U8 acVIUAPSDFlag:1;
6502 tANI_U8 acBKUAPSDFlag:1;
6503 tANI_U8 acBEUAPSDFlag:1;
6504 tANI_U8 aAck:1;
6505 tANI_U8 maxServicePeriodLength:2;
6506 tANI_U8 moreDataAck:1;
6507
6508 /*TDLS Peer U-APSD Buffer STA Support*/
6509 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07006510
6511 /*TDLS off channel related params */
6512 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306513 tANI_U8 peerCurrOperClass;
6514 tANI_U8 selfCurrOperClass;
6515 tANI_U8 validChannelsLen;
6516 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
6517 tANI_U8 validOperClassesLen;
6518 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306519}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6520
6521typedef PACKED_PRE struct PACKED_POST
6522{
6523 tHalMsgHeader header;
6524 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6525} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6526
6527/*---------------------------------------------------------------------------
6528 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6529 *-------------------------------------------------------------------------*/
6530
6531typedef PACKED_PRE struct PACKED_POST
6532{
6533 tANI_U32 status;
6534
6535 /*STA Index*/
6536 tANI_U16 staIdx;
6537} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6538
6539typedef PACKED_PRE struct PACKED_POST
6540{
6541 tHalMsgHeader header;
6542 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6543} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6544
6545/*---------------------------------------------------------------------------
6546 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6547 *-------------------------------------------------------------------------*/
6548typedef PACKED_PRE struct PACKED_POST
6549{
6550 /*STA Index*/
6551 tANI_U16 staIdx;
6552}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6553
6554typedef PACKED_PRE struct PACKED_POST
6555{
6556 tHalMsgHeader header;
6557 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6558} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6559
6560/*---------------------------------------------------------------------------
6561 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6562 *-------------------------------------------------------------------------*/
6563
6564typedef PACKED_PRE struct PACKED_POST
6565{
6566 tANI_U32 status;
6567
6568 /*STA Index*/
6569 tANI_U16 staIdx;
6570} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6571
6572typedef PACKED_PRE struct PACKED_POST
6573{
6574 tHalMsgHeader header;
6575 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6576} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6577
6578/*---------------------------------------------------------------------------
6579 *WLAN_HAL_TDLS_IND
6580 *--------------------------------------------------------------------------*/
6581
6582typedef PACKED_PRE struct PACKED_POST
6583{
6584 tANI_U16 assocId;
6585 tANI_U16 staIdx;
6586 tANI_U16 status;
6587 tANI_U16 reasonCode;
6588}tTdlsIndParams, *tpTdlsIndParams;
6589
6590
6591typedef PACKED_PRE struct PACKED_POST
6592{
6593 tHalMsgHeader header;
6594 tTdlsIndParams tdlsIndParams;
6595}tTdlsIndMsg, *tpTdlsIndMsg;
6596
6597#endif
6598
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006599/*---------------------------------------------------------------------------
6600 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6601 *--------------------------------------------------------------------------*/
6602
6603typedef PACKED_PRE struct PACKED_POST
6604{
6605 tANI_U8 bssIdx;
6606 tANI_U8 staIdx;
6607 tSirMacAddr staAddr;
6608}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
6609
6610
6611typedef PACKED_PRE struct PACKED_POST
6612{
6613 tHalMsgHeader header;
6614 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
6615}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
6616
6617
Kumar Anandea78e792013-10-10 23:47:01 -07006618/*********** Scan Offload Related Structures *************/
6619#define HAL_NUM_SCAN_SSID 10
6620#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07006621
Kumar Anandea78e792013-10-10 23:47:01 -07006622/*
6623 * Enumetation to indicate scan type (active/passive)
6624 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006625typedef enum
6626{
Kumar Anandea78e792013-10-10 23:47:01 -07006627 eSIR_PASSIVE_SCAN,
6628 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
6629} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006630
6631typedef PACKED_PRE struct PACKED_POST
6632{
Kumar Anandea78e792013-10-10 23:47:01 -07006633 tANI_U8 numBssid;
6634 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
6635 tANI_U8 numSsid;
6636 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
6637 tANI_BOOLEAN hiddenSsid;
6638 tSirMacAddr selfMacAddr;
6639 tSirBssType bssType;
6640 tSirScanType scanType;
6641 tANI_U32 minChannelTime;
6642 tANI_U32 maxChannelTime;
6643 tANI_BOOLEAN p2pSearch;
6644 tANI_U8 channelCount;
6645 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6646 tANI_U16 ieFieldLen;
6647 tANI_U8 ieField[1];
6648}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006649
6650/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006651 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07006652 *-------------------------------------------------------------------------*/
6653typedef PACKED_PRE struct PACKED_POST
6654{
Kumar Anandf53016f2013-09-04 15:15:53 -07006655 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006656 tScanOffloadReqType scanOffloadParams;
6657} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006658
6659/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006660 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07006661 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07006662typedef PACKED_PRE struct PACKED_POST
6663{
6664 tHalMsgHeader header;
6665
6666 /*status of the request - just to indicate SO has acknowledged
6667 * * the request and will start scanning*/
6668 tANI_U32 status;
6669} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
6670
6671/*---------------------------------------------------------------------------
6672 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
6673 *-------------------------------------------------------------------------*/
6674typedef PACKED_PRE struct PACKED_POST
6675{
6676 tHalMsgHeader header;
6677} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
6678
6679/*---------------------------------------------------------------------------
6680 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
6681 *-------------------------------------------------------------------------*/
6682typedef PACKED_PRE struct PACKED_POST
6683{
6684 tHalMsgHeader header;
6685
6686 /*status of the request - just to indicate SO has acknowledged
6687 the request and will start scanning*/
6688 tANI_U32 status;
6689} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
6690
6691/*
6692 * Enumetation of scan events indicated by firmware to the host
6693 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006694typedef enum
6695{
Kumar Anandea78e792013-10-10 23:47:01 -07006696 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
6697 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
6698 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
6699 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
6700 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
6701 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
6702 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
6703 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
6704 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
6705} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006706
6707typedef PACKED_PRE struct PACKED_POST
6708{
Kumar Anandea78e792013-10-10 23:47:01 -07006709 tScanEventType event;
6710 tANI_U32 channel;
6711 tANI_U32 scanId;
6712} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07006713
Kumar Anandea78e792013-10-10 23:47:01 -07006714/*---------------------------------------------------------------------------
6715 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
6716 *-------------------------------------------------------------------------*/
6717typedef PACKED_PRE struct PACKED_POST
6718{
6719 tHalMsgHeader header;
6720 tScanOffloadEventInfo scanOffloadInd;
6721} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006722
Kumar Anandea78e792013-10-10 23:47:01 -07006723typedef PACKED_PRE struct PACKED_POST {
6724 /** primary 20 MHz channel frequency in mhz */
6725 tANI_U32 mhz;
6726 /** Center frequency 1 in MHz*/
6727 tANI_U32 band_center_freq1;
6728 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
6729 tANI_U32 band_center_freq2;
6730 /* The first 26 bits are a bit mask to indicate any channel flags,
6731 (see WLAN_HAL_CHAN_FLAG*)
6732 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
6733 tANI_U32 channel_info;
6734 /** contains min power, max power, reg power and reg class id. */
6735 tANI_U32 reg_info_1;
6736 /** contains antennamax */
6737 tANI_U32 reg_info_2;
6738} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006739
Kumar Anandf53016f2013-09-04 15:15:53 -07006740
Kumar Anandea78e792013-10-10 23:47:01 -07006741typedef enum {
6742 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
6743 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
6744 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
6745 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
6746 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
6747 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
6748 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
6749 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
6750 WLAN_HAL_MODE_11AC_VHT20 = 8,
6751 WLAN_HAL_MODE_11AC_VHT40 = 9,
6752 WLAN_HAL_MODE_11AC_VHT80 = 10,
6753 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
6754 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
6755 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
6756 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07006757
Kumar Anandea78e792013-10-10 23:47:01 -07006758} tChannelPhyModeType;
6759
6760#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
6761#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
6762#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
6763#define WLAN_HAL_CHAN_AP_DISABLED 9
6764#define WLAN_HAL_CHAN_FLAG_DFS 10
6765#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
6766#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
6767
6768typedef PACKED_PRE struct PACKED_POST
6769{
6770 tANI_U8 numChan;
6771 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6772} tUpdateChannelReqType;
6773
6774/*---------------------------------------------------------------------------
6775 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
6776 *-------------------------------------------------------------------------*/
6777typedef PACKED_PRE struct PACKED_POST
6778{
6779 tHalMsgHeader header;
6780 tUpdateChannelReqType updateChannelParams;
6781} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
6782
6783/*---------------------------------------------------------------------------
6784 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
6785 *-------------------------------------------------------------------------*/
6786typedef PACKED_PRE struct PACKED_POST
6787{
6788 tHalMsgHeader header;
6789
6790 /*status of the request - just to indicate SO has acknowledged
6791 * * the request and will start scanning*/
6792 tANI_U32 status;
6793} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
6794
6795
6796/*---------------------------------------------------------------------------
6797* WLAN_HAL_TX_FAIL_IND
6798*--------------------------------------------------------------------------*/
6799// Northbound indication from FW to host on weak link detection
6800typedef PACKED_PRE struct PACKED_POST
6801{
6802 // Sequence number increases by 1 whenever the device driver
6803 // sends a notification event. This is cleared as 0 when the
6804 // JOIN IBSS commamd is issued
6805 tANI_U16 seqNo;
6806 tANI_U16 staId;
6807 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
6808} tHalTXFailIndParams, *tpHalTXFailIndParams;
6809
6810typedef PACKED_PRE struct PACKED_POST
6811{
6812 tHalMsgHeader header;
6813 tHalTXFailIndParams txFailIndParams;
6814} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
6815
6816/*---------------------------------------------------------------------------
6817* WLAN_HAL_TX_FAIL_MONITOR_IND
6818*--------------------------------------------------------------------------*/
6819// Southbound message from Host to monitor the Tx failures
6820typedef PACKED_PRE struct PACKED_POST
6821{
6822 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
6823 tANI_U8 tx_fail_count;
6824} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
6825
6826typedef PACKED_PRE struct PACKED_POST
6827{
6828 tHalMsgHeader header;
6829 tTXFailMonitorInfo txFailMonitor;
6830} tTXFailMonitorInd, *tpTXFailMonitorInd;
6831
6832/*---------------------------------------------------------------------------
6833* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
6834*--------------------------------------------------------------------------*/
6835typedef PACKED_PRE struct PACKED_POST
6836{
6837 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
6838 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
6839} tDestIpNextHopMacPair;
6840
6841typedef PACKED_PRE struct PACKED_POST
6842{
6843 tANI_U8 numEntries;
6844 tDestIpNextHopMacPair destIpMacPair[1];
6845} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006846
6847typedef PACKED_PRE struct PACKED_POST
6848{
6849 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006850 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
6851} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07006852
Kumar Anandf53016f2013-09-04 15:15:53 -07006853/*---------------------------------------------------------------------------
6854 *-------------------------------------------------------------------------*/
6855
Jeff Johnson295189b2012-06-20 16:38:30 -07006856#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6857#pragma pack(pop)
6858#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6859#else
6860#endif
6861
6862#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006863