blob: 08503e542d9e7b1e6bfcc2b7a5763ef4ee98ed78 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Anand Kumar012623a2013-01-11 17:00:00 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070021
Jeff Johnson295189b2012-06-20 16:38:30 -070022/*==========================================================================
23 *
24 * @file: wlan_hal_msg.h
25 *
26 * @brief: Exports and types for messages sent to HAL from WDI
27 *
28 * @author: Kumar Anand
29 *
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070030 * Copyright (C) 2010, Qualcomm Technologies, Inc.
Jeff Johnson295189b2012-06-20 16:38:30 -070031 * All rights reserved.
32 *
33 *=========================================================================*/
34
35#ifndef _WLAN_HAL_MSG_H_
36#define _WLAN_HAL_MSG_H_
37
38#include "halLegacyPalTypes.h"
39#include "halCompiler.h"
40#include "wlan_qct_dev_defs.h"
41#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080042
Jeff Johnson295189b2012-06-20 16:38:30 -070043/*---------------------------------------------------------------------------
44 API VERSIONING INFORMATION
45
46 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
47 The MAJOR is incremented for major product/architecture changes
48 (and then MINOR/VERSION/REVISION are zeroed)
49 The MINOR is incremented for minor product/architecture changes
50 (and then VERSION/REVISION are zeroed)
51 The VERSION is incremented if a significant API change occurs
52 (and then REVISION is zeroed)
53 The REVISION is incremented if an insignificant API change occurs
54 or if a new API is added
55 All values are in the range 0..255 (ie they are 8-bit values)
56 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070057#define WLAN_HAL_VER_MAJOR 1
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -080058#define WLAN_HAL_VER_MINOR 4
Jeff Johnson295189b2012-06-20 16:38:30 -070059#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080060#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070061
62/*---------------------------------------------------------------------------
63 Commom Type definitons
64 ---------------------------------------------------------------------------*/
65
66//This is to force compiler to use the maximum of an int ( 4 bytes )
67#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070068#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070069
70//Max no. of transmit categories
71#define STACFG_MAX_TC 8
72
73//The maximum value of access category
74#define WLAN_HAL_MAX_AC 4
75
76typedef tANI_U8 tSirMacAddr[6];
77typedef tANI_U8 tHalIpv4Addr[4];
78
79#define HAL_MAC_ADDR_LEN 6
80#define HAL_IPV4_ADDR_LEN 4
81
82#define WALN_HAL_STA_INVALID_IDX 0xFF
83#define WLAN_HAL_BSS_INVALID_IDX 0xFF
84
85//Default Beacon template size
Jeff Johnson32d95a32012-09-10 13:15:23 -070086#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070087
Jeff Johnson32d95a32012-09-10 13:15:23 -070088//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070089#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
90#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
91#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
92#define PARAM_llACOEXIST_CHANGED (1 << 3)
93#define PARAM_llBCOEXIST_CHANGED (1 << 4)
94#define PARAM_llGCOEXIST_CHANGED (1 << 5)
95#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
96#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
97#define PARAM_RIFS_MODE_CHANGED (1<<8)
98#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
99#define PARAM_OBSS_MODE_CHANGED (1<<10)
100#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
101 PARAM_llGCOEXIST_CHANGED|PARAM_HT20MHZCOEXIST_CHANGED|PARAM_NON_GF_DEVICES_PRESENT_CHANGED|PARAM_RIFS_MODE_CHANGED|PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED| PARAM_OBSS_MODE_CHANGED)
102
103/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530104#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700105
106/*Version string max length (including NUL) */
107#define WLAN_HAL_VERSION_LENGTH 64
108
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530109#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700110#define CHANNEL_LIST_STATIC 1 /* Occupied channel list remains static */
111#define CHANNEL_LIST_DYNAMIC_INIT 2 /* Occupied channel list can be learnt after init */
112#define CHANNEL_LIST_DYNAMIC_FLUSH 3 /* Occupied channel list can be learnt after flush */
113#define CHANNEL_LIST_DYNAMIC_UPDATE 4 /* Occupied channel list can be learnt after update */
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530114#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
115#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS NUM_RF_CHANNELS
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700116#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 61
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530117#endif
118
Jeff Johnson295189b2012-06-20 16:38:30 -0700119/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700120typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700121{
122 //Init/De-Init
123 WLAN_HAL_START_REQ = 0,
124 WLAN_HAL_START_RSP = 1,
125 WLAN_HAL_STOP_REQ = 2,
126 WLAN_HAL_STOP_RSP = 3,
127
128 //Scan
129 WLAN_HAL_INIT_SCAN_REQ = 4,
130 WLAN_HAL_INIT_SCAN_RSP = 5,
131 WLAN_HAL_START_SCAN_REQ = 6,
132 WLAN_HAL_START_SCAN_RSP = 7 ,
133 WLAN_HAL_END_SCAN_REQ = 8,
134 WLAN_HAL_END_SCAN_RSP = 9,
135 WLAN_HAL_FINISH_SCAN_REQ = 10,
136 WLAN_HAL_FINISH_SCAN_RSP = 11,
137
138 // HW STA configuration/deconfiguration
139 WLAN_HAL_CONFIG_STA_REQ = 12,
140 WLAN_HAL_CONFIG_STA_RSP = 13,
141 WLAN_HAL_DELETE_STA_REQ = 14,
142 WLAN_HAL_DELETE_STA_RSP = 15,
143 WLAN_HAL_CONFIG_BSS_REQ = 16,
144 WLAN_HAL_CONFIG_BSS_RSP = 17,
145 WLAN_HAL_DELETE_BSS_REQ = 18,
146 WLAN_HAL_DELETE_BSS_RSP = 19,
147
148 //Infra STA asscoiation
149 WLAN_HAL_JOIN_REQ = 20,
150 WLAN_HAL_JOIN_RSP = 21,
151 WLAN_HAL_POST_ASSOC_REQ = 22,
152 WLAN_HAL_POST_ASSOC_RSP = 23,
153
154 //Security
155 WLAN_HAL_SET_BSSKEY_REQ = 24,
156 WLAN_HAL_SET_BSSKEY_RSP = 25,
157 WLAN_HAL_SET_STAKEY_REQ = 26,
158 WLAN_HAL_SET_STAKEY_RSP = 27,
159 WLAN_HAL_RMV_BSSKEY_REQ = 28,
160 WLAN_HAL_RMV_BSSKEY_RSP = 29,
161 WLAN_HAL_RMV_STAKEY_REQ = 30,
162 WLAN_HAL_RMV_STAKEY_RSP = 31,
163
164 //Qos Related
165 WLAN_HAL_ADD_TS_REQ = 32,
166 WLAN_HAL_ADD_TS_RSP = 33,
167 WLAN_HAL_DEL_TS_REQ = 34,
168 WLAN_HAL_DEL_TS_RSP = 35,
169 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
170 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
171 WLAN_HAL_ADD_BA_REQ = 38,
172 WLAN_HAL_ADD_BA_RSP = 39,
173 WLAN_HAL_DEL_BA_REQ = 40,
174 WLAN_HAL_DEL_BA_RSP = 41,
175
176 WLAN_HAL_CH_SWITCH_REQ = 42,
177 WLAN_HAL_CH_SWITCH_RSP = 43,
178 WLAN_HAL_SET_LINK_ST_REQ = 44,
179 WLAN_HAL_SET_LINK_ST_RSP = 45,
180 WLAN_HAL_GET_STATS_REQ = 46,
181 WLAN_HAL_GET_STATS_RSP = 47,
182 WLAN_HAL_UPDATE_CFG_REQ = 48,
183 WLAN_HAL_UPDATE_CFG_RSP = 49,
184
185 WLAN_HAL_MISSED_BEACON_IND = 50,
186 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
187 WLAN_HAL_MIC_FAILURE_IND = 52,
188 WLAN_HAL_FATAL_ERROR_IND = 53,
189 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700190
Jeff Johnson295189b2012-06-20 16:38:30 -0700191 //NV Interface
192 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
193 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
194
195 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
196 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
197 WLAN_HAL_TRIGGER_BA_REQ = 59,
198 WLAN_HAL_TRIGGER_BA_RSP = 60,
199 WLAN_HAL_UPDATE_BEACON_REQ = 61,
200 WLAN_HAL_UPDATE_BEACON_RSP = 62,
201 WLAN_HAL_SEND_BEACON_REQ = 63,
202 WLAN_HAL_SEND_BEACON_RSP = 64,
203
204 WLAN_HAL_SET_BCASTKEY_REQ = 65,
205 WLAN_HAL_SET_BCASTKEY_RSP = 66,
206 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
207 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
208 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700209
Jeff Johnson295189b2012-06-20 16:38:30 -0700210 // PTT interface support
211 WLAN_HAL_PROCESS_PTT_REQ = 70,
212 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700213
Jeff Johnson295189b2012-06-20 16:38:30 -0700214 // BTAMP related events
215 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
216 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
217 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
218 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
219
220 WLAN_HAL_ENTER_IMPS_REQ = 76,
221 WLAN_HAL_EXIT_IMPS_REQ = 77,
222 WLAN_HAL_ENTER_BMPS_REQ = 78,
223 WLAN_HAL_EXIT_BMPS_REQ = 79,
224 WLAN_HAL_ENTER_UAPSD_REQ = 80,
225 WLAN_HAL_EXIT_UAPSD_REQ = 81,
226 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
227 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
228 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
229 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
230 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
231 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
232 WLAN_HAL_ENTER_WOWL_REQ = 88,
233 WLAN_HAL_EXIT_WOWL_REQ = 89,
234 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
235 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
236 WLAN_HAL_GET_RSSI_REQ = 92,
237 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
238 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
239
240 WLAN_HAL_ENTER_IMPS_RSP = 95,
241 WLAN_HAL_EXIT_IMPS_RSP = 96,
242 WLAN_HAL_ENTER_BMPS_RSP = 97,
243 WLAN_HAL_EXIT_BMPS_RSP = 98,
244 WLAN_HAL_ENTER_UAPSD_RSP = 99,
245 WLAN_HAL_EXIT_UAPSD_RSP = 100,
246 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
247 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
248 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
249 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
250 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
251 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
252 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
253 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
254 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
255 WLAN_HAL_ENTER_WOWL_RSP = 110,
256 WLAN_HAL_EXIT_WOWL_RSP = 111,
257 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
258 WLAN_HAL_GET_RSSI_RSP = 113,
259 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
260
261 //11k related events
262 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
263 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
264
265 //11R related msgs
266 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
267 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
268
269 //P2P WLAN_FEATURE_P2P
270 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
271 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700272
Jeff Johnson295189b2012-06-20 16:38:30 -0700273 //WLAN Dump commands
274 WLAN_HAL_DUMP_COMMAND_REQ = 121,
275 WLAN_HAL_DUMP_COMMAND_RSP = 122,
276
Jeff Johnsone7245742012-09-05 17:12:55 -0700277 //OEM_DATA FEATURE SUPPORT
278 WLAN_HAL_START_OEM_DATA_REQ = 123,
279 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700280
281 //ADD SELF STA REQ and RSP
282 WLAN_HAL_ADD_STA_SELF_REQ = 125,
283 WLAN_HAL_ADD_STA_SELF_RSP = 126,
284
285 //DEL SELF STA SUPPORT
286 WLAN_HAL_DEL_STA_SELF_REQ = 127,
287 WLAN_HAL_DEL_STA_SELF_RSP = 128,
288
289 // Coex Indication
290 WLAN_HAL_COEX_IND = 129,
291
Jeff Johnson32d95a32012-09-10 13:15:23 -0700292 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700293 WLAN_HAL_OTA_TX_COMPL_IND = 130,
294
295 //Host Suspend/resume messages
296 WLAN_HAL_HOST_SUSPEND_IND = 131,
297 WLAN_HAL_HOST_RESUME_REQ = 132,
298 WLAN_HAL_HOST_RESUME_RSP = 133,
299
300 WLAN_HAL_SET_TX_POWER_REQ = 134,
301 WLAN_HAL_SET_TX_POWER_RSP = 135,
302 WLAN_HAL_GET_TX_POWER_REQ = 136,
303 WLAN_HAL_GET_TX_POWER_RSP = 137,
304
305 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700306
Jeff Johnson295189b2012-06-20 16:38:30 -0700307 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
308 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
309 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
310 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
311 WLAN_HAL_RADAR_DETECT_IND = 143,
312 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
313 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700314 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700315
316 /*PNO messages*/
317 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
318 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
319 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
320 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
321 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
322 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700323 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700324
325 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
326 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
327 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700328
Jeff Johnson295189b2012-06-20 16:38:30 -0700329 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700330 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700331
332 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700333 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700334 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700335 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700336 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700337 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
338 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700339 * Host and Riva code is in sync*/
340 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700341
Jeff Johnson295189b2012-06-20 16:38:30 -0700342 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
343 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
344
345 WLAN_HAL_TSM_STATS_REQ = 168,
346 WLAN_HAL_TSM_STATS_RSP = 169,
347
348 // wake reason indication (WOW)
349 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700350 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700351 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
352 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
353 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
354 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
355
356 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
357 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
358 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
359
360 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
361 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
362
Anand Kumar012623a2013-01-11 17:00:00 -0800363 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
364 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800365
Anand Kumar012623a2013-01-11 17:00:00 -0800366 WLAN_HAL_P2P_NOA_START_IND = 184,
367
368 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
369 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700370
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800371 WLAN_HAL_CLASS_B_STATS_IND = 187,
372 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800373 WLAN_HAL_DHCP_START_IND = 189,
374 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700375 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
376 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530377 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
378 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530379 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
380 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
381 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
382 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
383 WLAN_HAL_TDLS_IND = 202,
384
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800385 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700386}tHalHostMsgType;
387
Jeff Johnsone7245742012-09-05 17:12:55 -0700388/* Enumeration for Version */
389typedef enum
390{
391 WLAN_HAL_MSG_VERSION0 = 0,
392 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800393 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
394 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700395}tHalHostMsgVersion;
396
Jeff Johnson295189b2012-06-20 16:38:30 -0700397/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700398typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700399{
400 eANI_BOOLEAN_FALSE = 0,
401 eANI_BOOLEAN_TRUE,
402 eANI_BOOLEAN_OFF = 0,
403 eANI_BOOLEAN_ON = 1,
404 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
405} eAniBoolean;
406
407typedef enum
408{
409 eDRIVER_TYPE_PRODUCTION = 0,
410 eDRIVER_TYPE_MFG = 1,
411 eDRIVER_TYPE_DVT = 2,
412 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
413} tDriverType;
414
415typedef enum
416{
417 HAL_STOP_TYPE_SYS_RESET,
418 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
419 HAL_STOP_TYPE_RF_KILL,
420 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
421}tHalStopType;
422
423typedef enum
424{
425 eHAL_SYS_MODE_NORMAL,
426 eHAL_SYS_MODE_LEARN,
427 eHAL_SYS_MODE_SCAN,
428 eHAL_SYS_MODE_PROMISC,
429 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700430 eHAL_SYS_MODE_ROAM_SCAN,
431 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700432 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
433} eHalSysMode;
434
435typedef enum
436{
437 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
438 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
439 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
440 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700441#ifdef WLAN_FEATURE_11AC
442 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
443 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
444 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
445 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
446 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
447 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
448 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
449#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700450 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
451}ePhyChanBondState;
452
453// Spatial Multiplexing(SM) Power Save mode
454typedef enum eSirMacHTMIMOPowerSaveState
455{
456 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
457 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
458 eSIR_HT_MIMO_PS_NA = 2, // reserved
459 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
460 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
461} tSirMacHTMIMOPowerSaveState;
462
463/* each station added has a rate mode which specifies the sta attributes */
464typedef enum eStaRateMode {
465 eSTA_TAURUS = 0,
466 eSTA_TITAN,
467 eSTA_POLARIS,
468 eSTA_11b,
469 eSTA_11bg,
470 eSTA_11a,
471 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700472#ifdef WLAN_FEATURE_11AC
473 eSTA_11ac,
474#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700475 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
476} tStaRateMode, *tpStaRateMode;
477
478#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
479#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
480#define SIR_NUM_POLARIS_RATES 3 //72,96,108
481
482#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
483
484
485typedef enum eSirBssType
486{
487 eSIR_INFRASTRUCTURE_MODE,
488 eSIR_INFRA_AP_MODE, //Added for softAP support
489 eSIR_IBSS_MODE,
490 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
491 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
492 eSIR_AUTO_MODE,
493 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
494} tSirBssType;
495
496typedef enum eSirNwType
497{
498 eSIR_11A_NW_TYPE,
499 eSIR_11B_NW_TYPE,
500 eSIR_11G_NW_TYPE,
501 eSIR_11N_NW_TYPE,
502 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
503} tSirNwType;
504
505typedef tANI_U16 tSirMacBeaconInterval;
506
507#define SIR_MAC_RATESET_EID_MAX 12
508
509typedef enum eSirMacHTOperatingMode
510{
511 eSIR_HT_OP_MODE_PURE, // No Protection
512 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
513 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
514 eSIR_HT_OP_MODE_MIXED, // Protection is required
515 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
516} tSirMacHTOperatingMode;
517
Jeff Johnson295189b2012-06-20 16:38:30 -0700518/// Encryption type enum used with peer
519typedef enum eAniEdType
520{
521 eSIR_ED_NONE,
522 eSIR_ED_WEP40,
523 eSIR_ED_WEP104,
524 eSIR_ED_TKIP,
525 eSIR_ED_CCMP,
526 eSIR_ED_WPI,
527 eSIR_ED_AES_128_CMAC,
528 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
529} tAniEdType;
530
531#define WLAN_MAX_KEY_RSC_LEN 16
532#define WLAN_WAPI_KEY_RSC_LEN 16
533
534/// MAX key length when ULA is used
535#define SIR_MAC_MAX_KEY_LENGTH 32
536#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
537
538/// Enum to specify whether key is used
539/// for TX only, RX only or both
540typedef enum eAniKeyDirection
541{
542 eSIR_TX_ONLY,
543 eSIR_RX_ONLY,
544 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700545 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700546 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
547} tAniKeyDirection;
548
549typedef enum eAniWepType
550{
551 eSIR_WEP_STATIC,
552 eSIR_WEP_DYNAMIC,
553 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
554} tAniWepType;
555
556typedef enum eSriLinkState {
557
558 eSIR_LINK_IDLE_STATE = 0,
559 eSIR_LINK_PREASSOC_STATE = 1,
560 eSIR_LINK_POSTASSOC_STATE = 2,
561 eSIR_LINK_AP_STATE = 3,
562 eSIR_LINK_IBSS_STATE = 4,
563
564 /* BT-AMP Case */
565 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
566 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
567 eSIR_LINK_BTAMP_AP_STATE = 7,
568 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700569
Jeff Johnson295189b2012-06-20 16:38:30 -0700570 /* Reserved for HAL Internal Use */
571 eSIR_LINK_LEARN_STATE = 9,
572 eSIR_LINK_SCAN_STATE = 10,
573 eSIR_LINK_FINISH_SCAN_STATE = 11,
574 eSIR_LINK_INIT_CAL_STATE = 12,
575 eSIR_LINK_FINISH_CAL_STATE = 13,
576#ifdef WLAN_FEATURE_P2P
577 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530578 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700579#endif
580 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
581} tSirLinkState;
582
583typedef enum
584{
585 HAL_SUMMARY_STATS_INFO = 0x00000001,
586 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
587 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
588 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
589 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
590 HAL_PER_STA_STATS_INFO = 0x00000020
591}eHalStatsMask;
592
593/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700594typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700595{
596 BTAMP_EVENT_CONNECTION_START,
597 BTAMP_EVENT_CONNECTION_STOP,
598 BTAMP_EVENT_CONNECTION_TERMINATED,
599 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
600} tBtAmpEventType;
601
602//***************************************************************
603
604
605/*******************PE Statistics*************************/
606typedef enum
607{
608 PE_SUMMARY_STATS_INFO = 0x00000001,
609 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
610 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
611 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
612 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
613 PE_PER_STA_STATS_INFO = 0x00000020,
614 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
615}ePEStatsMask;
616
617/*---------------------------------------------------------------------------
618 Message definitons - All the messages below need to be packed
619 ---------------------------------------------------------------------------*/
620
621#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
622#pragma pack(push, 1)
623#elif defined(__ANI_COMPILER_PRAGMA_PACK)
624#pragma pack(1)
625#else
626#endif
627
628/// Definition for HAL API Version.
629typedef PACKED_PRE struct PACKED_POST
630{
631 tANI_U8 revision;
632 tANI_U8 version;
633 tANI_U8 minor;
634 tANI_U8 major;
635} tWcnssWlanVersion, *tpWcnssWlanVersion;
636
637/// Definition for Encryption Keys
638typedef PACKED_PRE struct PACKED_POST
639{
640 tANI_U8 keyId;
641 tANI_U8 unicast; // 0 for multicast
642 tAniKeyDirection keyDirection;
643 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
644 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
645 tANI_U16 keyLength;
646 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
647} tSirKeys, *tpSirKeys;
648
649
650//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
651typedef PACKED_PRE struct PACKED_POST
652{
653 /*STA Index*/
654 tANI_U16 staIdx;
655
656 /*Encryption Type used with peer*/
657 tAniEdType encType;
658
659 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700660 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700661
662 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
663 tANI_U8 defWEPIdx;
664
Jeff Johnson295189b2012-06-20 16:38:30 -0700665 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700666 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
667
Jeff Johnson295189b2012-06-20 16:38:30 -0700668 /*Control for Replay Count, 1= Single TID based replay count on Tx
669 0 = Per TID based replay count on TX */
670 tANI_U8 singleTidRc;
671
672} tSetStaKeyParams, *tpSetStaKeyParams;
673
674
675
676/* 4-byte control message header used by HAL*/
677typedef PACKED_PRE struct PACKED_POST
678{
Jeff Johnsone7245742012-09-05 17:12:55 -0700679 tHalHostMsgType msgType:16;
680 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700681 tANI_U32 msgLen;
682} tHalMsgHeader, *tpHalMsgHeader;
683
684/* Config format required by HAL for each CFG item*/
685typedef PACKED_PRE struct PACKED_POST
686{
687 /* Cfg Id. The Id required by HAL is exported by HAL
688 * in shared header file between UMAC and HAL.*/
689 tANI_U16 uCfgId;
690
Jeff Johnson32d95a32012-09-10 13:15:23 -0700691 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700692 * in the TLV format.*/
693 tANI_U16 uCfgLen;
694
695 /* Padding bytes for unaligned address's */
696 tANI_U16 uCfgPadBytes;
697
698 /* Reserve bytes for making cfgVal to align address */
699 tANI_U16 uCfgReserve;
700
701 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
702 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
703} tHalCfg, *tpHalCfg;
704
705/*---------------------------------------------------------------------------
706 WLAN_HAL_START_REQ
707---------------------------------------------------------------------------*/
708
709typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
710{
711 /* Drive Type - Production or FTM etc */
712 tDriverType driverType;
713
714 /*Length of the config buffer*/
715 tANI_U32 uConfigBufferLen;
716
Jeff Johnson32d95a32012-09-10 13:15:23 -0700717 /* Following this there is a TLV formatted buffer of length
718 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700719 * The TLV is expected to be formatted like this:
720 * 0 15 31 31+CFG_LEN-1 length-1
721 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
722 */
723} tHalMacStartParameters, *tpHalMacStartParameters;
724
725typedef PACKED_PRE struct PACKED_POST
726{
727 /* Note: The length specified in tHalMacStartReqMsg messages should be
728 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
729 tHalMsgHeader header;
730 tHalMacStartParameters startReqParams;
731} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
732
733/*---------------------------------------------------------------------------
734 WLAN_HAL_START_RSP
735---------------------------------------------------------------------------*/
736
737typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
738{
739 /*success or failure */
740 tANI_U16 status;
741
742 /*Max number of STA supported by the device*/
743 tANI_U8 ucMaxStations;
744
745 /*Max number of BSS supported by the device*/
746 tANI_U8 ucMaxBssids;
747
748 /*API Version */
749 tWcnssWlanVersion wcnssWlanVersion;
750
751 /*CRM build information */
752 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
753
754 /*hardware/chipset/misc version information */
755 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
756
757} tHalMacStartRspParams, *tpHalMacStartRspParams;
758
759typedef PACKED_PRE struct PACKED_POST
760{
761 tHalMsgHeader header;
762 tHalMacStartRspParams startRspParams;
763} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
764
765/*---------------------------------------------------------------------------
766 WLAN_HAL_STOP_REQ
767---------------------------------------------------------------------------*/
768
769typedef PACKED_PRE struct PACKED_POST
770{
771 /*The reason for which the device is being stopped*/
772 tHalStopType reason;
773
774}tHalMacStopReqParams, *tpHalMacStopReqParams;
775
776typedef PACKED_PRE struct PACKED_POST
777{
778 tHalMsgHeader header;
779 tHalMacStopReqParams stopReqParams;
780} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
781
782/*---------------------------------------------------------------------------
783 WLAN_HAL_STOP_RSP
784---------------------------------------------------------------------------*/
785
786typedef PACKED_PRE struct PACKED_POST
787{
788 /*success or failure */
789 tANI_U32 status;
790
791}tHalMacStopRspParams, *tpHalMacStopRspParams;
792
793typedef PACKED_PRE struct PACKED_POST
794{
795 tHalMsgHeader header;
796 tHalMacStopRspParams stopRspParams;
797} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
798
799/*---------------------------------------------------------------------------
800 WLAN_HAL_UPDATE_CFG_REQ
801---------------------------------------------------------------------------*/
802
803typedef PACKED_PRE struct PACKED_POST
804{
805 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
806 tANI_U32 uConfigBufferLen;
807
Jeff Johnson32d95a32012-09-10 13:15:23 -0700808 /* Following this there is a TLV formatted buffer of length
809 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700810 * The TLV is expected to be formatted like this:
811 * 0 15 31 31+CFG_LEN-1 length-1
812 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
813 */
814} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
815
816typedef PACKED_PRE struct PACKED_POST
817{
818 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
819 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
820 tHalMsgHeader header;
821 tHalUpdateCfgReqParams updateCfgReqParams;
822} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
823
824/*---------------------------------------------------------------------------
825 WLAN_HAL_UPDATE_CFG_RSP
826---------------------------------------------------------------------------*/
827
828typedef PACKED_PRE struct PACKED_POST
829{
830 /* success or failure */
831 tANI_U32 status;
832
833}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
834
835typedef PACKED_PRE struct PACKED_POST
836{
837 tHalMsgHeader header;
838 tHalUpdateCfgRspParams updateCfgRspParams;
839} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
840
841/*---------------------------------------------------------------------------
842 WLAN_HAL_INIT_SCAN_REQ
843---------------------------------------------------------------------------*/
844
845/// Frame control field format (2 bytes)
846typedef __ani_attr_pre_packed struct sSirMacFrameCtl
847{
848
849#ifndef ANI_LITTLE_BIT_ENDIAN
850
851 tANI_U8 subType :4;
852 tANI_U8 type :2;
853 tANI_U8 protVer :2;
854
855 tANI_U8 order :1;
856 tANI_U8 wep :1;
857 tANI_U8 moreData :1;
858 tANI_U8 powerMgmt :1;
859 tANI_U8 retry :1;
860 tANI_U8 moreFrag :1;
861 tANI_U8 fromDS :1;
862 tANI_U8 toDS :1;
863
864#else
865
866 tANI_U8 protVer :2;
867 tANI_U8 type :2;
868 tANI_U8 subType :4;
869
870 tANI_U8 toDS :1;
871 tANI_U8 fromDS :1;
872 tANI_U8 moreFrag :1;
873 tANI_U8 retry :1;
874 tANI_U8 powerMgmt :1;
875 tANI_U8 moreData :1;
876 tANI_U8 wep :1;
877 tANI_U8 order :1;
878
879#endif
880
881} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
882
883/// Sequence control field
884typedef __ani_attr_pre_packed struct sSirMacSeqCtl
885{
886 tANI_U8 fragNum : 4;
887 tANI_U8 seqNumLo : 4;
888 tANI_U8 seqNumHi : 8;
889} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
890
891/// Management header format
892typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
893{
894 tSirMacFrameCtl fc;
895 tANI_U8 durationLo;
896 tANI_U8 durationHi;
897 tANI_U8 da[6];
898 tANI_U8 sa[6];
899 tANI_U8 bssId[6];
900 tSirMacSeqCtl seqControl;
901} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
902
903/// Scan Entry to hold active BSS idx's
904typedef __ani_attr_pre_packed struct sSirScanEntry
905{
906 tANI_U8 bssIdx[HAL_NUM_BSSID];
907 tANI_U8 activeBSScnt;
908}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
909
910typedef PACKED_PRE struct PACKED_POST {
911
912 /*LEARN - AP Role
913 SCAN - STA Role*/
914 eHalSysMode scanMode;
915
916 /*BSSID of the BSS*/
917 tSirMacAddr bssid;
918
919 /*Whether BSS needs to be notified*/
920 tANI_U8 notifyBss;
921
922 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
923 CTS to Self). Must always be a valid frame type.*/
924 tANI_U8 frameType;
925
926 /*UMAC has the option of passing the MAC frame to be used for notifying
927 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
928 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
929 frameType.*/
930 tANI_U8 frameLength;
931
Jeff Johnson32d95a32012-09-10 13:15:23 -0700932 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700933 is non-zero. */
934 tSirMacMgmtHdr macMgmtHdr;
935
936 /*Entry to hold number of active BSS idx's*/
937 tSirScanEntry scanEntry;
938
939} tInitScanParams, * tpInitScanParams;
940
941typedef PACKED_PRE struct PACKED_POST
942{
943 tHalMsgHeader header;
944 tInitScanParams initScanParams;
945} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
946
947typedef PACKED_PRE struct PACKED_POST {
948
949 /*LEARN - AP Role
950 SCAN - STA Role*/
951 eHalSysMode scanMode;
952
953 /*BSSID of the BSS*/
954 tSirMacAddr bssid;
955
956 /*Whether BSS needs to be notified*/
957 tANI_U8 notifyBss;
958
959 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
960 CTS to Self). Must always be a valid frame type.*/
961 tANI_U8 frameType;
962
963 /*UMAC has the option of passing the MAC frame to be used for notifying
964 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
965 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
966 frameType.*/
967 tANI_U8 frameLength;
968
Jeff Johnson32d95a32012-09-10 13:15:23 -0700969 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700970 is non-zero. */
971 tSirMacMgmtHdr macMgmtHdr;
972
973 /*Entry to hold number of active BSS idx's*/
974 tSirScanEntry scanEntry;
975
976 /* Single NoA usage in Scanning */
977 tANI_U8 useNoA;
978
979 /* Indicates the scan duration (in ms) */
980 tANI_U16 scanDuration;
981
982} tInitScanConParams, * tpInitScanConParams;
983
984typedef PACKED_PRE struct PACKED_POST
985{
986 tHalMsgHeader header;
987 tInitScanConParams initScanParams;
988} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
989
990
991/*---------------------------------------------------------------------------
992 WLAN_HAL_INIT_SCAN_RSP
993---------------------------------------------------------------------------*/
994
995typedef PACKED_PRE struct PACKED_POST
996{
997 /*success or failure */
998 tANI_U32 status;
999
1000}tHalInitScanRspParams, *tpHalInitScanRspParams;
1001
1002typedef PACKED_PRE struct PACKED_POST
1003{
1004 tHalMsgHeader header;
1005 tHalInitScanRspParams initScanRspParams;
1006} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1007
1008/*---------------------------------------------------------------------------
1009 WLAN_HAL_START_SCAN_REQ
1010---------------------------------------------------------------------------*/
1011
Jeff Johnson32d95a32012-09-10 13:15:23 -07001012typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001013{
1014 /*Indicates the channel to scan*/
1015 tANI_U8 scanChannel;
1016
1017 } tStartScanParams, * tpStartScanParams;
1018
1019typedef PACKED_PRE struct PACKED_POST
1020{
1021 tHalMsgHeader header;
1022 tStartScanParams startScanParams;
1023} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1024
1025/*---------------------------------------------------------------------------
1026 WLAN_HAL_START_SCAN_RSP
1027---------------------------------------------------------------------------*/
1028
1029typedef PACKED_PRE struct PACKED_POST
1030{
1031 /*success or failure */
1032 tANI_U32 status;
1033
1034 tANI_U32 startTSF[2];
1035 tPowerdBm txMgmtPower;
1036
1037}tHalStartScanRspParams, *tpHalStartScanRspParams;
1038
1039typedef PACKED_PRE struct PACKED_POST
1040{
1041 tHalMsgHeader header;
1042 tHalStartScanRspParams startScanRspParams;
1043} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1044
1045/*---------------------------------------------------------------------------
1046 WLAN_HAL_END_SCAN_REQ
1047---------------------------------------------------------------------------*/
1048
1049typedef PACKED_PRE struct PACKED_POST
1050{
1051 /*Indicates the channel to stop scanning. Not used really. But retained
1052 for symmetry with "start Scan" message. It can also help in error
1053 check if needed.*/
1054 tANI_U8 scanChannel;
1055
1056} tEndScanParams, *tpEndScanParams;
1057
1058typedef PACKED_PRE struct PACKED_POST
1059{
1060 tHalMsgHeader header;
1061 tEndScanParams endScanParams;
1062} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1063
1064/*---------------------------------------------------------------------------
1065 WLAN_HAL_END_SCAN_RSP
1066---------------------------------------------------------------------------*/
1067
1068typedef PACKED_PRE struct PACKED_POST
1069{
1070 /*success or failure */
1071 tANI_U32 status;
1072
1073}tHalEndScanRspParams, *tpHalEndScanRspParams;
1074
1075typedef PACKED_PRE struct PACKED_POST
1076{
1077 tHalMsgHeader header;
1078 tHalEndScanRspParams endScanRspParams;
1079} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1080
1081/*---------------------------------------------------------------------------
1082 WLAN_HAL_FINISH_SCAN_REQ
1083---------------------------------------------------------------------------*/
1084
1085typedef PACKED_PRE struct PACKED_POST
1086{
1087 /* Identifies the operational state of the AP/STA
1088 * LEARN - AP Role SCAN - STA Role */
1089 eHalSysMode scanMode;
1090
1091 /*Operating channel to tune to.*/
1092 tANI_U8 currentOperChannel;
1093
1094 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1095 40 MHz extension channel in combination with the control channel*/
1096 ePhyChanBondState cbState;
1097
1098 /*BSSID of the BSS*/
1099 tSirMacAddr bssid;
1100
1101 /*Whether BSS needs to be notified*/
1102 tANI_U8 notifyBss;
1103
1104 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1105 CTS to Self). Must always be a valid frame type.*/
1106 tANI_U8 frameType;
1107
1108 /*UMAC has the option of passing the MAC frame to be used for notifying
1109 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1110 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1111 frameType.*/
1112 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001113
1114 /*Following the framelength there is a MAC frame buffer if frameLength
1115 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001116 tSirMacMgmtHdr macMgmtHdr;
1117
1118 /*Entry to hold number of active BSS idx's*/
1119 tSirScanEntry scanEntry;
1120
1121} tFinishScanParams, *tpFinishScanParams;
1122
1123typedef PACKED_PRE struct PACKED_POST
1124{
1125 tHalMsgHeader header;
1126 tFinishScanParams finishScanParams;
1127} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1128
1129/*---------------------------------------------------------------------------
1130 WLAN_HAL_FINISH_SCAN_RSP
1131---------------------------------------------------------------------------*/
1132
1133typedef PACKED_PRE struct PACKED_POST
1134{
1135 /*success or failure */
1136 tANI_U32 status;
1137
1138}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1139
1140typedef PACKED_PRE struct PACKED_POST
1141{
1142 tHalMsgHeader header;
1143 tHalFinishScanRspParams finishScanRspParams;
1144} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1145
1146/*---------------------------------------------------------------------------
1147 WLAN_HAL_CONFIG_STA_REQ
1148---------------------------------------------------------------------------*/
1149
1150typedef PACKED_PRE struct PACKED_POST {
1151 /*
1152 * For Self STA Entry: this represents Self Mode.
1153 * For Peer Stations, this represents the mode of the peer.
1154 * On Station:
1155 * --this mode is updated when PE adds the Self Entry.
1156 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1157 * ON AP:
1158 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1159 * to indicate the self mode of the AP.
1160 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1161 */
1162
1163 tStaRateMode opRateMode;
1164 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1165 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1166 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1167 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1168 tANI_U16 reserved;
1169
1170 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1171 //First 26 bits are reserved for those Titan rates and
1172 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1173 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1174
1175 /*
1176 * 0-76 bits used, remaining reserved
1177 * bits 0-15 and 32 should be set.
1178 */
1179 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1180
1181 /*
1182 * RX Highest Supported Data Rate defines the highest data
1183 * rate that the STA is able to receive, in unites of 1Mbps.
1184 * This value is derived from "Supported MCS Set field" inside
1185 * the HT capability element.
1186 */
1187 tANI_U16 rxHighestDataRate;
1188
1189} tSirSupportedRates, *tpSirSupportedRates;
1190
1191typedef PACKED_PRE struct PACKED_POST
1192{
1193 /*BSSID of STA*/
1194 tSirMacAddr bssId;
1195
1196 /*ASSOC ID, as assigned by UMAC*/
1197 tANI_U16 assocId;
1198
1199 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1200 tANI_U8 staType;
1201
1202 /*Short Preamble Supported.*/
1203 tANI_U8 shortPreambleSupported;
1204
1205 /*MAC Address of STA*/
1206 tSirMacAddr staMac;
1207
1208 /*Listen interval of the STA*/
1209 tANI_U16 listenInterval;
1210
1211 /*Support for 11e/WMM*/
1212 tANI_U8 wmmEnabled;
1213
1214 /*11n HT capable STA*/
1215 tANI_U8 htCapable;
1216
1217 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1218 tANI_U8 txChannelWidthSet;
1219
1220 /*RIFS mode 0 - NA, 1 - Allowed */
1221 tANI_U8 rifsMode;
1222
Jeff Johnson32d95a32012-09-10 13:15:23 -07001223 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001224 0 - No Support, 1 - Supported
1225 SG - there is global field */
1226 tANI_U8 lsigTxopProtection;
1227
1228 /*Max Ampdu Size supported by STA. TPE programming.
1229 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1230 tANI_U8 maxAmpduSize;
1231
1232 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1233 tANI_U8 maxAmpduDensity;
1234
1235 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1236 tANI_U8 maxAmsduSize;
1237
1238 /*Short GI support for 40Mhz packets*/
1239 tANI_U8 fShortGI40Mhz;
1240
1241 /*Short GI support for 20Mhz packets*/
1242 tANI_U8 fShortGI20Mhz;
1243
Jeff Johnson295189b2012-06-20 16:38:30 -07001244 /*Robust Management Frame (RMF) enabled/disabled*/
1245 tANI_U8 rmfEnabled;
1246
1247 /* The unicast encryption type in the association */
1248 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001249
1250 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001251 will set this flag in case of RE-ASSOC, where we want to reuse the old
1252 STA ID. 0 = Add, 1 = Update*/
1253 tANI_U8 action;
1254
1255 /*U-APSD Flags: 1b per AC. Encoded as follows:
1256 b7 b6 b5 b4 b3 b2 b1 b0 =
1257 X X X X BE BK VI VO */
1258 tANI_U8 uAPSD;
1259
1260 /*Max SP Length*/
1261 tANI_U8 maxSPLen;
1262
1263 /*11n Green Field preamble support
1264 0 - Not supported, 1 - Supported */
1265 tANI_U8 greenFieldCapable;
1266
1267 /*MIMO Power Save mode*/
1268 tSirMacHTMIMOPowerSaveState mimoPS;
1269
1270 /*Delayed BA Support*/
1271 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001272
Jeff Johnson295189b2012-06-20 16:38:30 -07001273 /*Max AMPDU duration in 32us*/
1274 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001275
Jeff Johnson295189b2012-06-20 16:38:30 -07001276 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1277 it to 0 if AP does not support it. This indication is sent to HAL and
1278 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1279 tANI_U8 fDsssCckMode40Mhz;
1280
1281 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1282 Retained for backward compalibity with existing HAL code*/
1283 tANI_U8 staIdx;
1284
1285 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1286 Retained for backward compalibity with existing HAL code*/
1287 tANI_U8 bssIdx;
1288
1289 tANI_U8 p2pCapableSta;
1290
Jeff Johnsone7245742012-09-05 17:12:55 -07001291 /*Reserved to align next field on a dword boundary*/
1292 tANI_U8 reserved;
1293
1294 /*These rates are the intersection of peer and self capabilities.*/
1295 tSirSupportedRates supportedRates;
1296
Jeff Johnson295189b2012-06-20 16:38:30 -07001297} tConfigStaParams, *tpConfigStaParams;
1298
Jeff Johnsone7245742012-09-05 17:12:55 -07001299/*------------------------------------------------------------------------
1300 * WLAN_HAL_CONFIG_STA_REQ
1301 * ----------------------------------------------------------------------*/
1302
1303typedef PACKED_PRE struct PACKED_POST {
1304 /*
1305 * For Self STA Entry: this represents Self Mode.
1306 * For Peer Stations, this represents the mode of the peer.
1307 * On Station:
1308 * --this mode is updated when PE adds the Self Entry.
1309 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1310 * ON AP:
1311 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1312 * to indicate the self mode of the AP.
1313 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1314 */
1315
1316 tStaRateMode opRateMode;
1317 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1318 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1319 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1320 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1321 tANI_U16 reserved;
1322
1323 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1324 //First 26 bits are reserved for those Titan rates and
1325 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1326 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1327
1328 /*
1329 * 0-76 bits used, remaining reserved
1330 * bits 0-15 and 32 should be set.
1331 */
1332 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1333
1334 /*
1335 * RX Highest Supported Data Rate defines the highest data
1336 * rate that the STA is able to receive, in unites of 1Mbps.
1337 * This value is derived from "Supported MCS Set field" inside
1338 * the HT capability element.
1339 */
1340 tANI_U16 rxHighestDataRate;
1341
1342 /* Indicates the Maximum MCS that can be received for each number
1343 * of spacial streams */
1344 tANI_U16 vhtRxMCSMap;
1345
1346 /*Indicate the highest VHT data rate that the STA is able to receive*/
1347 tANI_U16 vhtRxHighestDataRate;
1348
1349 /* Indicates the Maximum MCS that can be transmitted for each number
1350 * of spacial streams */
1351 tANI_U16 vhtTxMCSMap;
1352
1353 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1354 tANI_U16 vhtTxHighestDataRate;
1355
1356} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1357
1358typedef PACKED_PRE struct PACKED_POST
1359{
1360 /*BSSID of STA*/
1361 tSirMacAddr bssId;
1362
1363 /*ASSOC ID, as assigned by UMAC*/
1364 tANI_U16 assocId;
1365
1366 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1367 tANI_U8 staType;
1368
1369 /*Short Preamble Supported.*/
1370 tANI_U8 shortPreambleSupported;
1371
1372 /*MAC Address of STA*/
1373 tSirMacAddr staMac;
1374
1375 /*Listen interval of the STA*/
1376 tANI_U16 listenInterval;
1377
1378 /*Support for 11e/WMM*/
1379 tANI_U8 wmmEnabled;
1380
1381 /*11n HT capable STA*/
1382 tANI_U8 htCapable;
1383
1384 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1385 tANI_U8 txChannelWidthSet;
1386
1387 /*RIFS mode 0 - NA, 1 - Allowed */
1388 tANI_U8 rifsMode;
1389
1390 /*L-SIG TXOP Protection mechanism
1391 0 - No Support, 1 - Supported
1392 SG - there is global field */
1393 tANI_U8 lsigTxopProtection;
1394
1395 /*Max Ampdu Size supported by STA. TPE programming.
1396 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1397 tANI_U8 maxAmpduSize;
1398
1399 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1400 tANI_U8 maxAmpduDensity;
1401
1402 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1403 tANI_U8 maxAmsduSize;
1404
1405 /*Short GI support for 40Mhz packets*/
1406 tANI_U8 fShortGI40Mhz;
1407
1408 /*Short GI support for 20Mhz packets*/
1409 tANI_U8 fShortGI20Mhz;
1410
1411 /*Robust Management Frame (RMF) enabled/disabled*/
1412 tANI_U8 rmfEnabled;
1413
1414 /* The unicast encryption type in the association */
1415 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001416
1417 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001418 will set this flag in case of RE-ASSOC, where we want to reuse the old
1419 STA ID. 0 = Add, 1 = Update*/
1420 tANI_U8 action;
1421
1422 /*U-APSD Flags: 1b per AC. Encoded as follows:
1423 b7 b6 b5 b4 b3 b2 b1 b0 =
1424 X X X X BE BK VI VO */
1425 tANI_U8 uAPSD;
1426
1427 /*Max SP Length*/
1428 tANI_U8 maxSPLen;
1429
1430 /*11n Green Field preamble support
1431 0 - Not supported, 1 - Supported */
1432 tANI_U8 greenFieldCapable;
1433
1434 /*MIMO Power Save mode*/
1435 tSirMacHTMIMOPowerSaveState mimoPS;
1436
1437 /*Delayed BA Support*/
1438 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001439
Jeff Johnsone7245742012-09-05 17:12:55 -07001440 /*Max AMPDU duration in 32us*/
1441 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001442
Jeff Johnsone7245742012-09-05 17:12:55 -07001443 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1444 it to 0 if AP does not support it. This indication is sent to HAL and
1445 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1446 tANI_U8 fDsssCckMode40Mhz;
1447
1448 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1449 Retained for backward compalibity with existing HAL code*/
1450 tANI_U8 staIdx;
1451
1452 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1453 Retained for backward compalibity with existing HAL code*/
1454 tANI_U8 bssIdx;
1455
1456 tANI_U8 p2pCapableSta;
1457
1458 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001459 tANI_U8 htLdpcEnabled:1;
1460 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001461 tANI_U8 vhtTxBFEnabled:1;
1462 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001463
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001464 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001465 tSirSupportedRates_V1 supportedRates;
1466
1467 tANI_U8 vhtCapable;
1468 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001469
Jeff Johnsone7245742012-09-05 17:12:55 -07001470} tConfigStaParams_V1, *tpConfigStaParams_V1;
1471
Jeff Johnson295189b2012-06-20 16:38:30 -07001472typedef PACKED_PRE struct PACKED_POST
1473{
1474 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001475 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001476 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001477 tConfigStaParams_V1 configStaParams_V1;
1478 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001479} tConfigStaReqMsg, *tpConfigStaReqMsg;
1480
1481/*---------------------------------------------------------------------------
1482 WLAN_HAL_CONFIG_STA_RSP
1483---------------------------------------------------------------------------*/
1484
1485typedef PACKED_PRE struct PACKED_POST
1486{
1487 /*success or failure */
1488 tANI_U32 status;
1489
1490 /* Station index; valid only when 'status' field value SUCCESS */
1491 tANI_U8 staIdx;
1492
1493 /* BSSID Index of BSS to which the station is associated */
1494 tANI_U8 bssIdx;
1495
1496 /* DPU Index for PTK */
1497 tANI_U8 dpuIndex;
1498
Jeff Johnson32d95a32012-09-10 13:15:23 -07001499 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001500 tANI_U8 bcastDpuIndex;
1501
1502 /*DPU Index for IGTK */
1503 tANI_U8 bcastMgmtDpuIdx;
1504
1505 /*PTK DPU signature*/
1506 tANI_U8 ucUcastSig;
1507
1508 /*GTK DPU isignature*/
1509 tANI_U8 ucBcastSig;
1510
1511 /* IGTK DPU signature*/
1512 tANI_U8 ucMgmtSig;
1513
1514 tANI_U8 p2pCapableSta;
1515
1516}tConfigStaRspParams, *tpConfigStaRspParams;
1517
1518typedef PACKED_PRE struct PACKED_POST
1519{
1520 tHalMsgHeader header;
1521 tConfigStaRspParams configStaRspParams;
1522}tConfigStaRspMsg, *tpConfigStaRspMsg;
1523
1524/*---------------------------------------------------------------------------
1525 WLAN_HAL_DELETE_STA_REQ
1526---------------------------------------------------------------------------*/
1527
1528/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001529typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001530{
1531 /* Index of STA to delete */
1532 tANI_U8 staIdx;
1533} tDeleteStaParams, *tpDeleteStaParams;
1534
1535/* Delete STA Request message*/
1536typedef PACKED_PRE struct PACKED_POST
1537{
1538 tHalMsgHeader header;
1539 tDeleteStaParams delStaParams;
1540} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1541
1542/*---------------------------------------------------------------------------
1543 WLAN_HAL_DELETE_STA_RSP
1544---------------------------------------------------------------------------*/
1545
1546/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001547typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001548{
1549 /*success or failure */
1550 tANI_U32 status;
1551
1552 /* Index of STA deleted */
1553 tANI_U8 staId;
1554} tDeleteStaRspParams, *tpDeleteStaRspParams;
1555
1556/* Delete STA Response message*/
1557typedef PACKED_PRE struct PACKED_POST
1558{
1559 tHalMsgHeader header;
1560 tDeleteStaRspParams delStaRspParams;
1561} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1562
1563/*---------------------------------------------------------------------------
1564 WLAN_HAL_CONFIG_BSS_REQ
1565---------------------------------------------------------------------------*/
1566
1567//12 Bytes long because this structure can be used to represent rate
1568//and extended rate set IEs. The parser assume this to be at least 12
1569typedef __ani_attr_pre_packed struct sSirMacRateSet
1570{
1571 tANI_U8 numRates;
1572 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1573} __ani_attr_packed tSirMacRateSet;
1574
1575// access category record
1576typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1577{
1578#ifndef ANI_LITTLE_BIT_ENDIAN
1579 tANI_U8 rsvd : 1;
1580 tANI_U8 aci : 2;
1581 tANI_U8 acm : 1;
1582 tANI_U8 aifsn : 4;
1583#else
1584 tANI_U8 aifsn : 4;
1585 tANI_U8 acm : 1;
1586 tANI_U8 aci : 2;
1587 tANI_U8 rsvd : 1;
1588#endif
1589} __ani_attr_packed tSirMacAciAifsn;
1590
1591// contention window size
1592typedef __ani_attr_pre_packed struct sSirMacCW
1593{
1594#ifndef ANI_LITTLE_BIT_ENDIAN
1595 tANI_U8 max : 4;
1596 tANI_U8 min : 4;
1597#else
1598 tANI_U8 min : 4;
1599 tANI_U8 max : 4;
1600#endif
1601} __ani_attr_packed tSirMacCW;
1602
1603typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1604{
1605 tSirMacAciAifsn aci;
1606 tSirMacCW cw;
1607 tANI_U16 txoplimit;
1608} __ani_attr_packed tSirMacEdcaParamRecord;
1609
1610typedef __ani_attr_pre_packed struct sSirMacSSid
1611{
1612 tANI_U8 length;
1613 tANI_U8 ssId[32];
1614} __ani_attr_packed tSirMacSSid;
1615
1616// Concurrency role. These are generic IDs that identify the various roles
1617// in the software system.
1618typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001619 HAL_STA_MODE=0,
1620 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001621 HAL_P2P_CLIENT_MODE,
1622 HAL_P2P_GO_MODE,
1623 HAL_MONITOR_MODE,
1624} tHalConMode;
1625
1626//This is a bit pattern to be set for each mode
1627//bit 0 - sta mode
1628//bit 1 - ap mode
1629//bit 2 - p2p client mode
1630//bit 3 - p2p go mode
1631typedef enum
1632{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001633 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001634 HAL_SAP=2,
1635 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1636 HAL_P2P_CLIENT=4,
1637 HAL_P2P_GO=8,
1638 HAL_MAX_CONCURRENCY_PERSONA=4
1639} tHalConcurrencyMode;
1640
1641typedef PACKED_PRE struct PACKED_POST
1642{
1643 /* BSSID */
1644 tSirMacAddr bssId;
1645
Jeff Johnson295189b2012-06-20 16:38:30 -07001646 /* Self Mac Address */
1647 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001648
1649 /* BSS type */
1650 tSirBssType bssType;
1651
1652 /*Operational Mode: AP =0, STA = 1*/
1653 tANI_U8 operMode;
1654
1655 /*Network Type*/
1656 tSirNwType nwType;
1657
1658 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1659 tANI_U8 shortSlotTimeSupported;
1660
1661 /*Co-exist with 11a STA*/
1662 tANI_U8 llaCoexist;
1663
1664 /*Co-exist with 11b STA*/
1665 tANI_U8 llbCoexist;
1666
1667 /*Co-exist with 11g STA*/
1668 tANI_U8 llgCoexist;
1669
1670 /*Coexistence with 11n STA*/
1671 tANI_U8 ht20Coexist;
1672
1673 /*Non GF coexist flag*/
1674 tANI_U8 llnNonGFCoexist;
1675
1676 /*TXOP protection support*/
1677 tANI_U8 fLsigTXOPProtectionFullSupport;
1678
1679 /*RIFS mode*/
1680 tANI_U8 fRIFSMode;
1681
1682 /*Beacon Interval in TU*/
1683 tSirMacBeaconInterval beaconInterval;
1684
1685 /*DTIM period*/
1686 tANI_U8 dtimPeriod;
1687
1688 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1689 tANI_U8 txChannelWidthSet;
1690
1691 /*Operating channel*/
1692 tANI_U8 currentOperChannel;
1693
1694 /*Extension channel for channel bonding*/
1695 tANI_U8 currentExtChannel;
1696
1697 /*Reserved to align next field on a dword boundary*/
1698 tANI_U8 reserved;
1699
Jeff Johnsone7245742012-09-05 17:12:55 -07001700 /*SSID of the BSS*/
1701 tSirMacSSid ssId;
1702
1703 /*HAL should update the existing BSS entry, if this flag is set.
1704 UMAC will set this flag in case of reassoc, where we want to resue the
1705 the old BSSID and still return success 0 = Add, 1 = Update*/
1706 tANI_U8 action;
1707
1708 /* MAC Rate Set */
1709 tSirMacRateSet rateSet;
1710
1711 /*Enable/Disable HT capabilities of the BSS*/
1712 tANI_U8 htCapable;
1713
1714 // Enable/Disable OBSS protection
1715 tANI_U8 obssProtEnabled;
1716
1717 /*RMF enabled/disabled*/
1718 tANI_U8 rmfEnabled;
1719
1720 /*HT Operating Mode operating mode of the 802.11n STA*/
1721 tSirMacHTOperatingMode htOperMode;
1722
1723 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1724 tANI_U8 dualCTSProtection;
1725
1726 /* Probe Response Max retries */
1727 tANI_U8 ucMaxProbeRespRetryLimit;
1728
1729 /* To Enable Hidden ssid */
1730 tANI_U8 bHiddenSSIDEn;
1731
1732 /* To Enable Disable FW Proxy Probe Resp */
1733 tANI_U8 bProxyProbeRespEn;
1734
1735 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1736 EDCA params or might not desire to apply EDCA params during config BSS.
1737 0 implies Not Valid ; Non-Zero implies valid*/
1738 tANI_U8 edcaParamsValid;
1739
1740 /*EDCA Parameters for Best Effort Access Category*/
1741 tSirMacEdcaParamRecord acbe;
1742
1743 /*EDCA Parameters forBackground Access Category*/
1744 tSirMacEdcaParamRecord acbk;
1745
1746 /*EDCA Parameters for Video Access Category*/
1747 tSirMacEdcaParamRecord acvi;
1748
1749 /*EDCA Parameters for Voice Access Category*/
1750 tSirMacEdcaParamRecord acvo;
1751
1752#ifdef WLAN_FEATURE_VOWIFI_11R
1753 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1754 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1755#endif
1756
1757 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1758 tANI_U8 halPersona;
1759
1760 tANI_U8 bSpectrumMgtEnable;
1761
1762 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1763 tANI_S8 txMgmtPower;
1764 /*maxTxPower has max power to be used after applying the power constraint if any */
1765 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001766 /*Context of the station being added in HW
1767 Add a STA entry for "itself" -
1768 On AP - Add the AP itself in an "STA context"
1769 On STA - Add the AP to which this STA is joining in an "STA context" */
1770 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001771} tConfigBssParams, * tpConfigBssParams;
1772
1773
1774/*--------------------------------------------------------------------------
1775 * WLAN_HAL_CONFIG_BSS_REQ
1776 *--------------------------------------------------------------------------*/
1777typedef PACKED_PRE struct PACKED_POST
1778{
1779 /* BSSID */
1780 tSirMacAddr bssId;
1781
Jeff Johnsone7245742012-09-05 17:12:55 -07001782 /* Self Mac Address */
1783 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001784
1785 /* BSS type */
1786 tSirBssType bssType;
1787
1788 /*Operational Mode: AP =0, STA = 1*/
1789 tANI_U8 operMode;
1790
1791 /*Network Type*/
1792 tSirNwType nwType;
1793
1794 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1795 tANI_U8 shortSlotTimeSupported;
1796
1797 /*Co-exist with 11a STA*/
1798 tANI_U8 llaCoexist;
1799
1800 /*Co-exist with 11b STA*/
1801 tANI_U8 llbCoexist;
1802
1803 /*Co-exist with 11g STA*/
1804 tANI_U8 llgCoexist;
1805
1806 /*Coexistence with 11n STA*/
1807 tANI_U8 ht20Coexist;
1808
1809 /*Non GF coexist flag*/
1810 tANI_U8 llnNonGFCoexist;
1811
1812 /*TXOP protection support*/
1813 tANI_U8 fLsigTXOPProtectionFullSupport;
1814 /*RIFS mode*/
1815 tANI_U8 fRIFSMode;
1816
1817 /*Beacon Interval in TU*/
1818 tSirMacBeaconInterval beaconInterval;
1819
1820 /*DTIM period*/
1821 tANI_U8 dtimPeriod;
1822
1823 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1824 tANI_U8 txChannelWidthSet;
1825
1826 /*Operating channel*/
1827 tANI_U8 currentOperChannel;
1828
1829 /*Extension channel for channel bonding*/
1830 tANI_U8 currentExtChannel;
1831
1832 /*Reserved to align next field on a dword boundary*/
1833 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001834
1835 /*SSID of the BSS*/
1836 tSirMacSSid ssId;
1837
1838 /*HAL should update the existing BSS entry, if this flag is set.
1839 UMAC will set this flag in case of reassoc, where we want to resue the
1840 the old BSSID and still return success 0 = Add, 1 = Update*/
1841 tANI_U8 action;
1842
1843 /* MAC Rate Set */
1844 tSirMacRateSet rateSet;
1845
1846 /*Enable/Disable HT capabilities of the BSS*/
1847 tANI_U8 htCapable;
1848
1849 // Enable/Disable OBSS protection
1850 tANI_U8 obssProtEnabled;
1851
1852 /*RMF enabled/disabled*/
1853 tANI_U8 rmfEnabled;
1854
1855 /*HT Operating Mode operating mode of the 802.11n STA*/
1856 tSirMacHTOperatingMode htOperMode;
1857
1858 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1859 tANI_U8 dualCTSProtection;
1860
1861 /* Probe Response Max retries */
1862 tANI_U8 ucMaxProbeRespRetryLimit;
1863
1864 /* To Enable Hidden ssid */
1865 tANI_U8 bHiddenSSIDEn;
1866
1867 /* To Enable Disable FW Proxy Probe Resp */
1868 tANI_U8 bProxyProbeRespEn;
1869
Jeff Johnson32d95a32012-09-10 13:15:23 -07001870 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1871 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001872 0 implies Not Valid ; Non-Zero implies valid*/
1873 tANI_U8 edcaParamsValid;
1874
1875 /*EDCA Parameters for Best Effort Access Category*/
1876 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001877
Jeff Johnson295189b2012-06-20 16:38:30 -07001878 /*EDCA Parameters forBackground Access Category*/
1879 tSirMacEdcaParamRecord acbk;
1880
1881 /*EDCA Parameters for Video Access Category*/
1882 tSirMacEdcaParamRecord acvi;
1883
1884 /*EDCA Parameters for Voice Access Category*/
1885 tSirMacEdcaParamRecord acvo;
1886
1887#ifdef WLAN_FEATURE_VOWIFI_11R
1888 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1889 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1890#endif
1891
Jeff Johnson32d95a32012-09-10 13:15:23 -07001892 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001893 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001894
Jeff Johnson295189b2012-06-20 16:38:30 -07001895 tANI_U8 bSpectrumMgtEnable;
1896
1897 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1898 tANI_S8 txMgmtPower;
1899 /*maxTxPower has max power to be used after applying the power constraint if any */
1900 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001901 /*Context of the station being added in HW
1902 Add a STA entry for "itself" -
1903 On AP - Add the AP itself in an "STA context"
1904 On STA - Add the AP to which this STA is joining in an "STA context" */
1905 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001906
Jeff Johnsone7245742012-09-05 17:12:55 -07001907 tANI_U8 vhtCapable;
1908 tANI_U8 vhtTxChannelWidthSet;
1909} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001910
1911typedef PACKED_PRE struct PACKED_POST
1912{
1913 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001914 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001915 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001916 tConfigBssParams_V1 configBssParams_V1;
1917 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001918} tConfigBssReqMsg, *tpConfigBssReqMsg;
1919
1920/*---------------------------------------------------------------------------
1921 WLAN_HAL_CONFIG_BSS_RSP
1922---------------------------------------------------------------------------*/
1923
1924typedef PACKED_PRE struct PACKED_POST
1925{
1926 /* Success or Failure */
1927 tANI_U32 status;
1928
1929 /* BSS index allocated by HAL */
1930 tANI_U8 bssIdx;
1931
1932 /* DPU descriptor index for PTK */
1933 tANI_U8 dpuDescIndx;
1934
1935 /* PTK DPU signature */
1936 tANI_U8 ucastDpuSignature;
1937
1938 /* DPU descriptor index for GTK*/
1939 tANI_U8 bcastDpuDescIndx;
1940
1941 /* GTK DPU signature */
1942 tANI_U8 bcastDpuSignature;
1943
1944 /*DPU descriptor for IGTK*/
1945 tANI_U8 mgmtDpuDescIndx;
1946
1947 /* IGTK DPU signature */
1948 tANI_U8 mgmtDpuSignature;
1949
1950 /* Station Index for BSS entry*/
1951 tANI_U8 bssStaIdx;
1952
1953 /* Self station index for this BSS */
1954 tANI_U8 bssSelfStaIdx;
1955
1956 /* Bcast station for buffering bcast frames in AP role */
1957 tANI_U8 bssBcastStaIdx;
1958
1959 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1960 tSirMacAddr staMac;
1961
1962 /*HAL fills in the tx power used for mgmt frames in this field. */
1963 tANI_S8 txMgmtPower;
1964
1965} tConfigBssRspParams, * tpConfigBssRspParams;
1966
1967typedef PACKED_PRE struct PACKED_POST
1968{
1969 tHalMsgHeader header;
1970 tConfigBssRspParams configBssRspParams;
1971} tConfigBssRspMsg, *tpConfigBssRspMsg;
1972
1973/*---------------------------------------------------------------------------
1974 WLAN_HAL_DELETE_BSS_REQ
1975---------------------------------------------------------------------------*/
1976
1977typedef PACKED_PRE struct PACKED_POST
1978{
1979 /* BSS index to be deleted */
1980 tANI_U8 bssIdx;
1981
1982} tDeleteBssParams, *tpDeleteBssParams;
1983
1984typedef PACKED_PRE struct PACKED_POST
1985{
1986 tHalMsgHeader header;
1987 tDeleteBssParams deleteBssParams;
1988} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1989
1990/*---------------------------------------------------------------------------
1991 WLAN_HAL_DELETE_BSS_RSP
1992---------------------------------------------------------------------------*/
1993
1994typedef PACKED_PRE struct PACKED_POST
1995{
1996 /* Success or Failure */
1997 tANI_U32 status;
1998
1999 /* BSS index that has been deleted */
2000 tANI_U8 bssIdx;
2001
2002} tDeleteBssRspParams, *tpDeleteBssRspParams;
2003
2004typedef PACKED_PRE struct PACKED_POST
2005{
2006 tHalMsgHeader header;
2007 tDeleteBssRspParams deleteBssRspParams;
2008} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2009
2010/*---------------------------------------------------------------------------
2011 WLAN_HAL_JOIN_REQ
2012---------------------------------------------------------------------------*/
2013
2014typedef PACKED_PRE struct PACKED_POST
2015{
2016 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002017 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002018
2019 /*Indicates the channel to switch to.*/
2020 tANI_U8 ucChannel;
2021
2022 /* Self STA MAC */
2023 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002024
Jeff Johnson295189b2012-06-20 16:38:30 -07002025 /*Local power constraint*/
2026 tANI_U8 ucLocalPowerConstraint;
2027
2028 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002029 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002030
2031 /*link State*/
2032 tSirLinkState linkState;
2033
2034 /* Max TX power */
2035 tANI_S8 maxTxPower;
2036
2037} tHalJoinReqParams, *tpHalJoinReqParams;
2038
2039typedef PACKED_PRE struct PACKED_POST
2040{
2041 tHalMsgHeader header;
2042 tHalJoinReqParams joinReqParams;
2043} tHalJoinReqMsg, *tpHalJoinReqMsg;
2044
2045/*---------------------------------------------------------------------------
2046 WLAN_HAL_JOIN_RSP
2047---------------------------------------------------------------------------*/
2048
2049typedef PACKED_PRE struct PACKED_POST
2050{
2051 /*success or failure */
2052 tANI_U32 status;
2053
2054 /* HAL fills in the tx power used for mgmt frames in this field */
2055 tPowerdBm txMgmtPower;
2056
2057}tHalJoinRspParams, *tpHalJoinRspParams;
2058
2059typedef PACKED_PRE struct PACKED_POST
2060{
2061 tHalMsgHeader header;
2062 tHalJoinRspParams joinRspParams;
2063}tHalJoinRspMsg, *tpHalJoinRspMsg;
2064
2065/*---------------------------------------------------------------------------
2066 WLAN_HAL_POST_ASSOC_REQ
2067---------------------------------------------------------------------------*/
2068
2069typedef PACKED_PRE struct PACKED_POST
2070{
2071 tConfigStaParams configStaParams;
2072 tConfigBssParams configBssParams;
2073} tPostAssocReqParams, *tpPostAssocReqParams;
2074
2075typedef PACKED_PRE struct PACKED_POST
2076{
2077 tHalMsgHeader header;
2078 tPostAssocReqParams postAssocReqParams;
2079} tPostAssocReqMsg, *tpPostAssocReqMsg;
2080
2081/*---------------------------------------------------------------------------
2082 WLAN_HAL_POST_ASSOC_RSP
2083---------------------------------------------------------------------------*/
2084
2085typedef PACKED_PRE struct PACKED_POST
2086{
2087 tConfigStaRspParams configStaRspParams;
2088 tConfigBssRspParams configBssRspParams;
2089} tPostAssocRspParams, *tpPostAssocRspParams;
2090
2091typedef PACKED_PRE struct PACKED_POST
2092{
2093 tHalMsgHeader header;
2094 tPostAssocRspParams postAssocRspParams;
2095} tPostAssocRspMsg, *tpPostAssocRspMsg;
2096
2097/*---------------------------------------------------------------------------
2098 WLAN_HAL_SET_BSSKEY_REQ
2099---------------------------------------------------------------------------*/
2100
2101/*
2102 * This is used by PE to create a set of WEP keys for a given BSS.
2103 */
2104typedef PACKED_PRE struct PACKED_POST
2105{
2106 /*BSS Index of the BSS*/
2107 tANI_U8 bssIdx;
2108
2109 /*Encryption Type used with peer*/
2110 tAniEdType encType;
2111
2112 /*Number of keys*/
2113 tANI_U8 numKeys;
2114
2115 /*Array of keys.*/
2116 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002117
Jeff Johnson295189b2012-06-20 16:38:30 -07002118 /*Control for Replay Count, 1= Single TID based replay count on Tx
2119 0 = Per TID based replay count on TX */
2120 tANI_U8 singleTidRc;
2121} tSetBssKeyParams, *tpSetBssKeyParams;
2122
2123typedef PACKED_PRE struct PACKED_POST
2124{
2125 tHalMsgHeader header;
2126 tSetBssKeyParams setBssKeyParams;
2127} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2128
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002129/* tagged version of set bss key */
2130typedef PACKED_PRE struct PACKED_POST
2131{
2132 tSetBssKeyReqMsg Msg;
2133 uint32 Tag;
2134} tSetBssKeyReqMsgTagged;
2135
Jeff Johnson295189b2012-06-20 16:38:30 -07002136/*---------------------------------------------------------------------------
2137 WLAN_HAL_SET_BSSKEY_RSP
2138---------------------------------------------------------------------------*/
2139typedef PACKED_PRE struct PACKED_POST
2140{
2141 /*success or failure */
2142 tANI_U32 status;
2143
2144} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2145
2146typedef PACKED_PRE struct PACKED_POST
2147{
2148 tHalMsgHeader header;
2149 tSetBssKeyRspParams setBssKeyRspParams;
2150} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2151
2152/*---------------------------------------------------------------------------
2153 WLAN_HAL_SET_STAKEY_REQ,
2154---------------------------------------------------------------------------*/
2155
2156/*
2157 * This is used by PE to configure the key information on a given station.
2158 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2159 * a preconfigured key from a BSS the station assoicated with; otherwise
2160 * a new key descriptor is created based on the key field.
2161 */
2162
2163typedef PACKED_PRE struct PACKED_POST
2164{
2165 tHalMsgHeader header;
2166 tSetStaKeyParams setStaKeyParams;
2167} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2168
2169/*---------------------------------------------------------------------------
2170 WLAN_HAL_SET_STAKEY_RSP,
2171---------------------------------------------------------------------------*/
2172typedef PACKED_PRE struct PACKED_POST
2173{
2174 /*success or failure */
2175 tANI_U32 status;
2176
2177} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2178
2179typedef PACKED_PRE struct PACKED_POST
2180{
2181 tHalMsgHeader header;
2182 tSetStaKeyRspParams setStaKeyRspParams;
2183} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2184
2185/*---------------------------------------------------------------------------
2186 WLAN_HAL_RMV_BSSKEY_REQ,
2187---------------------------------------------------------------------------*/
2188/*
2189 * This is used by PE to remove keys for a given BSS.
2190 */
2191typedef PACKED_PRE struct PACKED_POST
2192
2193{
2194 /*BSS Index of the BSS*/
2195 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002196
Jeff Johnson295189b2012-06-20 16:38:30 -07002197 /*Encryption Type used with peer*/
2198 tAniEdType encType;
2199
2200 /*Key Id*/
2201 tANI_U8 keyId;
2202
2203 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2204 tAniWepType wepType;
2205
2206} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2207
2208typedef PACKED_PRE struct PACKED_POST
2209{
2210 tHalMsgHeader header;
2211 tRemoveBssKeyParams removeBssKeyParams;
2212} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2213
2214/*---------------------------------------------------------------------------
2215 WLAN_HAL_RMV_BSSKEY_RSP,
2216---------------------------------------------------------------------------*/
2217typedef PACKED_PRE struct PACKED_POST
2218{
2219 /*success or failure */
2220 tANI_U32 status;
2221
2222} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2223
2224typedef PACKED_PRE struct PACKED_POST
2225{
2226 tHalMsgHeader header;
2227 tRemoveBssKeyRspParams removeBssKeyRspParams;
2228} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2229
2230/*---------------------------------------------------------------------------
2231 WLAN_HAL_RMV_STAKEY_REQ,
2232---------------------------------------------------------------------------*/
2233/*
2234 * This is used by PE to Remove the key information on a given station.
2235 */
2236typedef PACKED_PRE struct PACKED_POST
2237{
2238 /*STA Index*/
2239 tANI_U16 staIdx;
2240
2241 /*Encryption Type used with peer*/
2242 tAniEdType encType;
2243
2244 /*Key Id*/
2245 tANI_U8 keyId;
2246
2247 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2248 the same key is used for both broadcast and unicast.*/
2249 tANI_BOOLEAN unicast;
2250
2251} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2252
2253typedef PACKED_PRE struct PACKED_POST
2254{
2255 tHalMsgHeader header;
2256 tRemoveStaKeyParams removeStaKeyParams;
2257} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2258
2259/*---------------------------------------------------------------------------
2260 WLAN_HAL_RMV_STAKEY_RSP,
2261---------------------------------------------------------------------------*/
2262typedef PACKED_PRE struct PACKED_POST
2263{
2264 /*success or failure */
2265 tANI_U32 status;
2266} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2267
2268typedef PACKED_PRE struct PACKED_POST
2269{
2270 tHalMsgHeader header;
2271 tRemoveStaKeyRspParams removeStaKeyRspParams;
2272} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2273
Jeff Johnsone7245742012-09-05 17:12:55 -07002274#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002275
Jeff Johnsone7245742012-09-05 17:12:55 -07002276#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002277#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002278#endif
2279
2280#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002281#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002282#endif
2283
2284/*-------------------------------------------------------------------------
2285WLAN_HAL_START_OEM_DATA_REQ
2286--------------------------------------------------------------------------*/
2287typedef PACKED_PRE struct PACKED_POST
2288{
2289 tANI_U32 status;
2290 tSirMacAddr selfMacAddr;
2291 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2292} tStartOemDataReqParams, *tpStartOemDataReqParams;
2293
2294typedef PACKED_PRE struct PACKED_POST
2295{
2296 tHalMsgHeader header;
2297 tStartOemDataReqParams startOemDataReqParams;
2298} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2299
2300/*-------------------------------------------------------------------------
2301WLAN_HAL_START_OEM_DATA_RSP
2302--------------------------------------------------------------------------*/
2303
2304typedef PACKED_PRE struct PACKED_POST
2305{
2306 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2307} tStartOemDataRspParams, *tpStartOemDataRspParams;
2308
2309typedef PACKED_PRE struct PACKED_POST
2310{
2311 tHalMsgHeader header;
2312 tStartOemDataRspParams startOemDataRspParams;
2313} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2314
2315#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002316
2317
2318
2319/*---------------------------------------------------------------------------
2320WLAN_HAL_CH_SWITCH_REQ
2321---------------------------------------------------------------------------*/
2322
2323typedef PACKED_PRE struct PACKED_POST
2324{
2325 /* Channel number */
2326 tANI_U8 channelNumber;
2327
2328 /* Local power constraint */
2329 tANI_U8 localPowerConstraint;
2330
2331 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002332 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002333
2334 //HAL fills in the tx power used for mgmt frames in this field.
2335 tPowerdBm txMgmtPower;
2336
2337 /* Max TX power */
2338 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002339
Jeff Johnson295189b2012-06-20 16:38:30 -07002340 /* Self STA MAC */
2341 tSirMacAddr selfStaMacAddr;
2342
2343 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2344 this should be applied only to that session*/
2345 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2346 * bssid needs to be out of the VOWifi feature flag */
2347 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2348 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2349 */
2350 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002351
Jeff Johnson295189b2012-06-20 16:38:30 -07002352}tSwitchChannelParams, *tpSwitchChannelParams;
2353
2354typedef PACKED_PRE struct PACKED_POST
2355{
2356 tHalMsgHeader header;
2357 tSwitchChannelParams switchChannelParams;
2358} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2359
2360/*---------------------------------------------------------------------------
2361WLAN_HAL_CH_SWITCH_RSP
2362---------------------------------------------------------------------------*/
2363
2364typedef PACKED_PRE struct PACKED_POST
2365{
2366 /* Status */
2367 tANI_U32 status;
2368
2369 /* Channel number - same as in request*/
2370 tANI_U8 channelNumber;
2371
2372 /* HAL fills in the tx power used for mgmt frames in this field */
2373 tPowerdBm txMgmtPower;
2374
2375 /* BSSID needed to identify session - same as in request*/
2376 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002377
Jeff Johnson295189b2012-06-20 16:38:30 -07002378}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2379
2380typedef PACKED_PRE struct PACKED_POST
2381{
2382 tHalMsgHeader header;
2383 tSwitchChannelRspParams switchChannelRspParams;
2384} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2385
2386/*---------------------------------------------------------------------------
2387WLAN_HAL_UPD_EDCA_PARAMS_REQ
2388---------------------------------------------------------------------------*/
2389
2390typedef PACKED_PRE struct PACKED_POST
2391{
2392 /*BSS Index*/
2393 tANI_U16 bssIdx;
2394
2395 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002396 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002397
2398 /* Background */
2399 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002400
Jeff Johnson295189b2012-06-20 16:38:30 -07002401 /* Video */
2402 tSirMacEdcaParamRecord acvi;
2403
2404 /* Voice */
2405 tSirMacEdcaParamRecord acvo;
2406
2407} tEdcaParams, *tpEdcaParams;
2408
2409typedef PACKED_PRE struct PACKED_POST
2410{
2411 tHalMsgHeader header;
2412 tEdcaParams edcaParams;
2413} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2414
2415/*---------------------------------------------------------------------------
2416WLAN_HAL_UPD_EDCA_PARAMS_RSP
2417---------------------------------------------------------------------------*/
2418typedef PACKED_PRE struct PACKED_POST
2419{
2420 /*success or failure */
2421 tANI_U32 status;
2422} tEdcaRspParams, *tpEdcaRspParams;
2423
2424typedef PACKED_PRE struct PACKED_POST
2425{
2426 tHalMsgHeader header;
2427 tEdcaRspParams edcaRspParams;
2428} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2429
2430
2431
2432/*---------------------------------------------------------------------------
2433 * WLAN_HAL_GET_STATS_REQ
2434 *--------------------------------------------------------------------------*/
2435typedef PACKED_PRE struct PACKED_POST
2436
2437{
2438 /* Index of STA to which the statistics */
2439 tANI_U16 staIdx;
2440
2441 /* Encryption mode */
2442 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002443
Jeff Johnson295189b2012-06-20 16:38:30 -07002444 /* status */
2445 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002446
Jeff Johnson295189b2012-06-20 16:38:30 -07002447 /* Statistics */
2448 tANI_U32 sendBlocks;
2449 tANI_U32 recvBlocks;
2450 tANI_U32 replays;
2451 tANI_U8 micErrorCnt;
2452 tANI_U32 protExclCnt;
2453 tANI_U16 formatErrCnt;
2454 tANI_U16 unDecryptableCnt;
2455 tANI_U32 decryptErrCnt;
2456 tANI_U32 decryptOkCnt;
2457} tDpuStatsParams, * tpDpuStatsParams;
2458
2459typedef PACKED_PRE struct PACKED_POST
2460{
2461 /* Valid STA Idx for per STA stats request */
2462 tANI_U32 staId;
2463
2464 /* Categories of stats requested as specified in eHalStatsMask*/
2465 tANI_U32 statsMask;
2466}tHalStatsReqParams, *tpHalStatsReqParams;
2467
2468typedef PACKED_PRE struct PACKED_POST
2469{
2470 tHalMsgHeader header;
2471 tHalStatsReqParams statsReqParams;
2472} tHalStatsReqMsg, *tpHalStatsReqMsg;
2473
2474/*---------------------------------------------------------------------------
2475 * WLAN_HAL_GET_STATS_RSP
2476 *--------------------------------------------------------------------------*/
2477
2478typedef PACKED_PRE struct PACKED_POST
2479{
2480 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2481 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2482 // station successfully transmitted after more than one retransmission attempt
2483
Jeff Johnson32d95a32012-09-10 13:15:23 -07002484 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2485 //(with and without retries, including multi-cast, broadcast)
2486 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2487 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002488 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2489 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2490 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2491 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 -07002492 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2493 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 -07002494 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2495 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 -07002496 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2497 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002498 //to provide this.
2499}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2500
2501
2502// defines tx_rate_flags
2503typedef enum eTxRateInfo
2504{
2505 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2506 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2507 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2508 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2509 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2510} tTxrateinfoflags;
2511
2512
2513typedef PACKED_PRE struct PACKED_POST
2514{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002515 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 -07002516 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002517 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 -07002518 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002519 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2520 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002521 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002522 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2523 //for eg: if it is 10.5dBm, the value would be 105
2524 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2525 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002526
Jeff Johnson32d95a32012-09-10 13:15:23 -07002527 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2528 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002529 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002530 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2531 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002532}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2533
2534typedef PACKED_PRE struct PACKED_POST
2535{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002536 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2537 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002538 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002539 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 -07002540 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002541 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 -07002542 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002543 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 -07002544 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002545 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 -07002546 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002547 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 -07002548 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002549 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 -07002550 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002551 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 -07002552 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002553 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 -07002554 //decrypted
2555 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2556
2557}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002558
Jeff Johnson295189b2012-06-20 16:38:30 -07002559typedef PACKED_PRE struct PACKED_POST
2560{
2561 tAniGlobalSecurityStats ucStats;
2562 tAniGlobalSecurityStats mcbcStats;
2563}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2564
2565typedef PACKED_PRE struct PACKED_POST
2566{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002567 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2568 //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 -07002569 //address 1 field
2570 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 -07002571 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 -07002572 //primary channel
2573 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 -07002574 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 -07002575 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002576 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2577 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002578 //decoded correctly
2579}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2580
2581typedef PACKED_PRE struct PACKED_POST
2582{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002583 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 -07002584 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002585 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2586 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 -07002587 //is transmitted
2588}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2589
2590typedef PACKED_PRE struct PACKED_POST
2591{
2592 /* Success or Failure */
2593 tANI_U32 status;
2594
2595 /* STA Idx */
2596 tANI_U32 staId;
2597
2598 /* Categories of STATS being returned as per eHalStatsMask*/
2599 tANI_U32 statsMask;
2600
2601 /* message type is same as the request type */
2602 tANI_U16 msgType;
2603
2604 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002605 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002606
2607} tHalStatsRspParams, *tpHalStatsRspParams;
2608
2609
2610
2611typedef PACKED_PRE struct PACKED_POST
2612{
2613 tHalMsgHeader header;
2614 tHalStatsRspParams statsRspParams;
2615} tHalStatsRspMsg, *tpHalStatsRspMsg;
2616
2617/*---------------------------------------------------------------------------
2618 * WLAN_HAL_SET_LINK_ST_REQ
2619 *--------------------------------------------------------------------------*/
2620typedef PACKED_PRE struct PACKED_POST
2621{
2622 tSirMacAddr bssid;
2623 tSirLinkState state;
2624 tSirMacAddr selfMacAddr;
2625} tLinkStateParams, *tpLinkStateParams;
2626
2627typedef PACKED_PRE struct PACKED_POST
2628{
2629 tHalMsgHeader header;
2630 tLinkStateParams linkStateParams;
2631} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2632
2633/*---------------------------------------------------------------------------
2634 * WLAN_HAL_SET_LINK_ST_RSP
2635 *--------------------------------------------------------------------------*/
2636
2637typedef PACKED_PRE struct PACKED_POST
2638{
2639 /*success or failure */
2640 tANI_U32 status;
2641} tLinkStateRspParams, *tpLinkStateRspParams;
2642
2643typedef PACKED_PRE struct PACKED_POST
2644{
2645 tHalMsgHeader header;
2646 tLinkStateRspParams linkStateRspParams;
2647} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2648
2649/*---------------------------------------------------------------------------
2650 * WLAN_HAL_ADD_TS_REQ
2651 *--------------------------------------------------------------------------*/
2652
2653/* TSPEC Params */
2654typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2655{
2656#ifndef ANI_LITTLE_BIT_ENDIAN
2657 tANI_U16 ackPolicy : 2;
2658 tANI_U16 userPrio : 3;
2659 tANI_U16 psb : 1;
2660 tANI_U16 aggregation : 1;
2661 tANI_U16 accessPolicy : 2;
2662 tANI_U16 direction : 2;
2663 tANI_U16 tsid : 4;
2664 tANI_U16 trafficType : 1;
2665#else
2666 tANI_U16 trafficType : 1;
2667 tANI_U16 tsid : 4;
2668 tANI_U16 direction : 2;
2669 tANI_U16 accessPolicy : 2;
2670 tANI_U16 aggregation : 1;
2671 tANI_U16 psb : 1;
2672 tANI_U16 userPrio : 3;
2673 tANI_U16 ackPolicy : 2;
2674#endif
2675} __ani_attr_packed tSirMacTSInfoTfc;
2676
2677/* Flag to schedule the traffic type */
2678typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2679{
2680#ifndef ANI_LITTLE_BIT_ENDIAN
2681 tANI_U8 rsvd : 7;
2682 tANI_U8 schedule : 1;
2683#else
2684 tANI_U8 schedule : 1;
2685 tANI_U8 rsvd : 7;
2686#endif
2687} __ani_attr_packed tSirMacTSInfoSch;
2688
2689/* Traffic and scheduling info */
2690typedef __ani_attr_pre_packed struct sSirMacTSInfo
2691{
2692 tSirMacTSInfoTfc traffic;
2693 tSirMacTSInfoSch schedule;
2694} __ani_attr_packed tSirMacTSInfo;
2695
2696/* Information elements */
2697typedef __ani_attr_pre_packed struct sSirMacTspecIE
2698{
2699 tANI_U8 type;
2700 tANI_U8 length;
2701 tSirMacTSInfo tsinfo;
2702 tANI_U16 nomMsduSz;
2703 tANI_U16 maxMsduSz;
2704 tANI_U32 minSvcInterval;
2705 tANI_U32 maxSvcInterval;
2706 tANI_U32 inactInterval;
2707 tANI_U32 suspendInterval;
2708 tANI_U32 svcStartTime;
2709 tANI_U32 minDataRate;
2710 tANI_U32 meanDataRate;
2711 tANI_U32 peakDataRate;
2712 tANI_U32 maxBurstSz;
2713 tANI_U32 delayBound;
2714 tANI_U32 minPhyRate;
2715 tANI_U16 surplusBw;
2716 tANI_U16 mediumTime;
2717}__ani_attr_packed tSirMacTspecIE;
2718
2719typedef PACKED_PRE struct PACKED_POST
2720{
2721 /* Station Index */
2722 tANI_U16 staIdx;
2723
2724 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2725 tANI_U16 tspecIdx;
2726
2727 /* To program TPE with required parameters */
2728 tSirMacTspecIE tspec;
2729
2730 /* U-APSD Flags: 1b per AC. Encoded as follows:
2731 b7 b6 b5 b4 b3 b2 b1 b0 =
2732 X X X X BE BK VI VO */
2733 tANI_U8 uAPSD;
2734
2735 /* These parameters are for all the access categories */
2736 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2737 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2738 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002739
Jeff Johnson295189b2012-06-20 16:38:30 -07002740} tAddTsParams, *tpAddTsParams;
2741
2742typedef PACKED_PRE struct PACKED_POST
2743{
2744 tHalMsgHeader header;
2745 tAddTsParams addTsParams;
2746} tAddTsReqMsg, *tpAddTsReqMsg;
2747
2748/*---------------------------------------------------------------------------
2749 * WLAN_HAL_ADD_TS_RSP
2750 *--------------------------------------------------------------------------*/
2751
2752typedef PACKED_PRE struct PACKED_POST
2753{
2754 /*success or failure */
2755 tANI_U32 status;
2756} tAddTsRspParams, *tpAddTsRspParams;
2757
2758typedef PACKED_PRE struct PACKED_POST
2759{
2760 tHalMsgHeader header;
2761 tAddTsRspParams addTsRspParams;
2762} tAddTsRspMsg, *tpAddTsRspMsg;
2763
2764
2765/*---------------------------------------------------------------------------
2766 * WLAN_HAL_DEL_TS_REQ
2767 *--------------------------------------------------------------------------*/
2768
2769typedef PACKED_PRE struct PACKED_POST
2770{
2771 /* Station Index */
2772 tANI_U16 staIdx;
2773
2774 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2775 tANI_U16 tspecIdx;
2776
2777 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002778 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002779
2780} tDelTsParams, *tpDelTsParams;
2781
2782typedef PACKED_PRE struct PACKED_POST
2783{
2784 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002785 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002786} tDelTsReqMsg, *tpDelTsReqMsg;
2787
2788/*---------------------------------------------------------------------------
2789 * WLAN_HAL_DEL_TS_RSP
2790 *--------------------------------------------------------------------------*/
2791
2792typedef PACKED_PRE struct PACKED_POST
2793{
2794 /*success or failure */
2795 tANI_U32 status;
2796} tDelTsRspParams, *tpDelTsRspParams;
2797
2798typedef PACKED_PRE struct PACKED_POST
2799{
2800 tHalMsgHeader header;
2801 tDelTsRspParams delTsRspParams;
2802} tDelTsRspMsg, *tpDelTsRspMsg;
2803
2804/* End of TSpec Parameters */
2805
2806/* Start of BLOCK ACK related Parameters */
2807
2808/*---------------------------------------------------------------------------
2809 * WLAN_HAL_ADD_BA_SESSION_REQ
2810 *--------------------------------------------------------------------------*/
2811
2812typedef PACKED_PRE struct PACKED_POST
2813{
2814 /* Station Index */
2815 tANI_U16 staIdx;
2816
2817 /* Peer MAC Address */
2818 tSirMacAddr peerMacAddr;
2819
2820 /* ADDBA Action Frame dialog token
2821 HAL will not interpret this object */
2822 tANI_U8 baDialogToken;
2823
2824 /* TID for which the BA is being setup
2825 This identifies the TC or TS of interest */
2826 tANI_U8 baTID;
2827
2828 /* 0 - Delayed BA (Not supported)
2829 1 - Immediate BA */
2830 tANI_U8 baPolicy;
2831
2832 /* Indicates the number of buffers for this TID (baTID)
2833 NOTE - This is the requested buffer size. When this
2834 is processed by HAL and subsequently by HDD, it is
2835 possible that HDD may change this buffer size. Any
2836 change in the buffer size should be noted by PE and
2837 advertized appropriately in the ADDBA response */
2838 tANI_U16 baBufferSize;
2839
2840 /* BA timeout in TU's 0 means no timeout will occur */
2841 tANI_U16 baTimeout;
2842
2843 /* b0..b3 - Fragment Number - Always set to 0
2844 b4..b15 - Starting Sequence Number of first MSDU
2845 for which this BA is setup */
2846 tANI_U16 baSSN;
2847
2848 /* ADDBA direction
2849 1 - Originator
2850 0 - Recipient */
2851 tANI_U8 baDirection;
2852} tAddBASessionParams, *tpAddBASessionParams;
2853
2854typedef PACKED_PRE struct PACKED_POST
2855{
2856 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002857 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002858}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2859
2860/*---------------------------------------------------------------------------
2861 * WLAN_HAL_ADD_BA_SESSION_RSP
2862 *--------------------------------------------------------------------------*/
2863
2864typedef PACKED_PRE struct PACKED_POST
2865{
2866 /*success or failure */
2867 tANI_U32 status;
2868
2869 /* Dialog token */
2870 tANI_U8 baDialogToken;
2871
2872 /* TID for which the BA session has been setup */
2873 tANI_U8 baTID;
2874
2875 /* BA Buffer Size allocated for the current BA session */
2876 tANI_U8 baBufferSize;
2877
2878 tANI_U8 baSessionID;
2879
2880 /* Reordering Window buffer */
2881 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002882
Jeff Johnson295189b2012-06-20 16:38:30 -07002883 /*Station Index to id the sta */
2884 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002885
Jeff Johnson295189b2012-06-20 16:38:30 -07002886 /* Starting Sequence Number */
2887 tANI_U16 SSN;
2888} tAddBASessionRspParams, *tpAddBASessionRspParams;
2889
2890typedef PACKED_PRE struct PACKED_POST
2891{
2892 tHalMsgHeader header;
2893 tAddBASessionRspParams addBASessionRspParams;
2894} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2895
2896/*---------------------------------------------------------------------------
2897 * WLAN_HAL_ADD_BA_REQ
2898 *--------------------------------------------------------------------------*/
2899
2900typedef PACKED_PRE struct PACKED_POST
2901{
2902 /* Session Id */
2903 tANI_U8 baSessionID;
2904
2905 /* Reorder Window Size */
2906 tANI_U8 winSize;
2907
2908#ifdef FEATURE_ON_CHIP_REORDERING
2909 tANI_BOOLEAN isReorderingDoneOnChip;
2910#endif
2911} tAddBAParams, *tpAddBAParams;
2912
2913typedef PACKED_PRE struct PACKED_POST
2914{
2915 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002916 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002917} tAddBAReqMsg, *tpAddBAReqMsg;
2918
2919
2920/*---------------------------------------------------------------------------
2921 * WLAN_HAL_ADD_BA_RSP
2922 *--------------------------------------------------------------------------*/
2923
2924typedef PACKED_PRE struct PACKED_POST
2925{
2926 /*success or failure */
2927 tANI_U32 status;
2928
2929 /* Dialog token */
2930 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002931
Jeff Johnson295189b2012-06-20 16:38:30 -07002932} tAddBARspParams, *tpAddBARspParams;
2933
2934typedef PACKED_PRE struct PACKED_POST
2935{
2936 tHalMsgHeader header;
2937 tAddBARspParams addBARspParams;
2938} tAddBARspMsg, *tpAddBARspMsg;
2939
2940
2941/*---------------------------------------------------------------------------
2942 * WLAN_HAL_TRIGGER_BA_REQ
2943 *--------------------------------------------------------------------------*/
2944
2945
2946typedef struct sAddBaInfo
2947{
2948 tANI_U16 fBaEnable : 1;
2949 tANI_U16 startingSeqNum: 12;
2950 tANI_U16 reserved : 3;
2951}tAddBaInfo, *tpAddBaInfo;
2952
2953typedef struct sTriggerBaRspCandidate
2954{
2955 tSirMacAddr staAddr;
2956 tAddBaInfo baInfo[STACFG_MAX_TC];
2957}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2958
2959typedef struct sTriggerBaCandidate
2960{
2961 tANI_U8 staIdx;
2962 tANI_U8 tidBitmap;
2963}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2964
2965typedef PACKED_PRE struct PACKED_POST
2966{
2967 /* Session Id */
2968 tANI_U8 baSessionID;
2969
Jeff Johnson32d95a32012-09-10 13:15:23 -07002970 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002971 * Candidate List(tTriggerBaCandidate)
2972 */
2973 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002974
Jeff Johnson295189b2012-06-20 16:38:30 -07002975} tTriggerBAParams, *tpTriggerBAParams;
2976
2977typedef PACKED_PRE struct PACKED_POST
2978{
2979 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002980 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002981} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2982
2983
2984/*---------------------------------------------------------------------------
2985 * WLAN_HAL_TRIGGER_BA_RSP
2986 *--------------------------------------------------------------------------*/
2987
2988typedef PACKED_PRE struct PACKED_POST
2989{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002990
Jeff Johnson295189b2012-06-20 16:38:30 -07002991 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002992 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002993
2994 /* success or failure */
2995 tANI_U32 status;
2996
Jeff Johnson32d95a32012-09-10 13:15:23 -07002997 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002998 * Rsp Candidate List(tTriggerRspBaCandidate)
2999 */
3000 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003001
Jeff Johnson295189b2012-06-20 16:38:30 -07003002
3003} tTriggerBARspParams, *tpTriggerBARspParams;
3004
3005typedef PACKED_PRE struct PACKED_POST
3006{
3007 tHalMsgHeader header;
3008 tTriggerBARspParams triggerBARspParams;
3009} tTriggerBARspMsg, *tpTriggerBARspMsg;
3010
3011/*---------------------------------------------------------------------------
3012 * WLAN_HAL_DEL_BA_REQ
3013 *--------------------------------------------------------------------------*/
3014
3015typedef PACKED_PRE struct PACKED_POST
3016{
3017 /* Station Index */
3018 tANI_U16 staIdx;
3019
3020 /* TID for which the BA session is being deleted */
3021 tANI_U8 baTID;
3022
3023 /* DELBA direction
3024 1 - Originator
3025 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003026 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003027} tDelBAParams, *tpDelBAParams;
3028
3029typedef PACKED_PRE struct PACKED_POST
3030{
3031 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003032 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003033} tDelBAReqMsg, *tpDelBAReqMsg;
3034
3035/*---------------------------------------------------------------------------
3036 * WLAN_HAL_DEL_BA_RSP
3037 *--------------------------------------------------------------------------*/
3038
3039typedef PACKED_PRE struct PACKED_POST
3040{
3041 /* success or failure */
3042 tANI_U32 status;
3043} tDelBARspParams, *tpDelBARspParams;
3044
3045typedef PACKED_PRE struct PACKED_POST
3046{
3047 tHalMsgHeader header;
3048 tDelBARspParams delBARspParams;
3049} tDelBARspMsg, *tpDelBARspMsg;
3050
3051
3052#ifdef FEATURE_WLAN_CCX
3053
3054/*---------------------------------------------------------------------------
3055 * WLAN_HAL_TSM_STATS_REQ
3056 *--------------------------------------------------------------------------*/
3057typedef PACKED_PRE struct PACKED_POST
3058{
3059 /* Traffic Id */
3060 tANI_U8 tsmTID;
3061
3062 tSirMacAddr bssId;
3063} tTsmStatsParams, *tpTsmStatsParams;
3064
3065typedef PACKED_PRE struct PACKED_POST
3066{
3067 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003068 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003069} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3070
3071
3072/*---------------------------------------------------------------------------
3073 * WLAN_HAL_TSM_STATS_RSP
3074 *--------------------------------------------------------------------------*/
3075typedef PACKED_PRE struct PACKED_POST
3076{
3077 /*success or failure */
3078 tANI_U32 status;
3079
Jeff Johnson32d95a32012-09-10 13:15:23 -07003080 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003081 tANI_U16 UplinkPktQueueDly;
3082
Jeff Johnson32d95a32012-09-10 13:15:23 -07003083 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003084 tANI_U16 UplinkPktQueueDlyHist[4];
3085
Jeff Johnson32d95a32012-09-10 13:15:23 -07003086 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003087 tANI_U32 UplinkPktTxDly;
3088
Jeff Johnson32d95a32012-09-10 13:15:23 -07003089 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003090 tANI_U16 UplinkPktLoss;
3091
Jeff Johnson32d95a32012-09-10 13:15:23 -07003092 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003093 tANI_U16 UplinkPktCount;
3094
Jeff Johnson32d95a32012-09-10 13:15:23 -07003095 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003096 tANI_U8 RoamingCount;
3097
Jeff Johnson32d95a32012-09-10 13:15:23 -07003098 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003099 tANI_U16 RoamingDly;
3100} tTsmStatsRspParams, *tpTsmStatsRspParams;
3101
3102typedef PACKED_PRE struct PACKED_POST
3103{
3104 tHalMsgHeader header;
3105 tTsmStatsRspParams tsmStatsRspParams;
3106} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3107
3108
3109#endif
3110
3111/*---------------------------------------------------------------------------
3112 * WLAN_HAL_SET_KEYDONE_MSG
3113 *--------------------------------------------------------------------------*/
3114
3115typedef PACKED_PRE struct PACKED_POST
3116{
3117 /*bssid of the keys */
3118 tANI_U8 bssidx;
3119 tANI_U8 encType;
3120} tSetKeyDoneParams, *tpSetKeyDoneParams;
3121
3122typedef PACKED_PRE struct PACKED_POST
3123{
3124 tHalMsgHeader header;
3125 tSetKeyDoneParams setKeyDoneParams;
3126} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3127
3128/*---------------------------------------------------------------------------
3129 * WLAN_HAL_DOWNLOAD_NV_REQ
3130 *--------------------------------------------------------------------------*/
3131typedef PACKED_PRE struct PACKED_POST
3132{
3133 /* Fragment sequence number of the NV Image. Note that NV Image might not
3134 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003135 * can hence choose to chop the NV blob into multiple fragments starting with
3136 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003137 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3138 * concatenated together by HAL without any padding bytes in between.*/
3139 tANI_U16 fragNumber;
3140
3141 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003142 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003143 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3144 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3145 tANI_U16 isLastFragment;
3146
3147 /* NV Image size (number of bytes) */
3148 tANI_U32 nvImgBufferSize;
3149
3150 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3151 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3152} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3153
3154typedef PACKED_PRE struct PACKED_POST
3155{
3156 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3157 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3158 tHalMsgHeader header;
3159 tHalNvImgDownloadReqParams nvImageReqParams;
3160} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3161
3162/*---------------------------------------------------------------------------
3163 * WLAN_HAL_DOWNLOAD_NV_RSP
3164 *--------------------------------------------------------------------------*/
3165typedef PACKED_PRE struct PACKED_POST
3166{
3167 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3168 * after each fragment */
3169 tANI_U32 status;
3170} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3171
3172typedef PACKED_PRE struct PACKED_POST
3173{
3174 tHalMsgHeader header;
3175 tHalNvImgDownloadRspParams nvImageRspParams;
3176} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3177
3178/*---------------------------------------------------------------------------
3179 * WLAN_HAL_STORE_NV_IND
3180 *--------------------------------------------------------------------------*/
3181typedef PACKED_PRE struct PACKED_POST
3182{
3183 /* NV Item */
3184 eNvTable tableID;
3185
3186 /* Size of NV Blob */
3187 tANI_U32 nvBlobSize;
3188
Jeff Johnson32d95a32012-09-10 13:15:23 -07003189 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003190 * NV blob i.e. uint8[nvBlobSize] */
3191} tHalNvStoreParams, *tpHalNvStoreParams;
3192
3193typedef PACKED_PRE struct PACKED_POST
3194{
3195 /* Note: The length specified in tHalNvStoreInd messages should be
3196 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3197 tHalMsgHeader header;
3198 tHalNvStoreParams nvStoreParams;
3199} tHalNvStoreInd, *tpHalNvStoreInd;
3200
3201/* End of Block Ack Related Parameters */
3202
3203/*---------------------------------------------------------------------------
3204 * WLAN_HAL_MIC_FAILURE_IND
3205 *--------------------------------------------------------------------------*/
3206
3207#define SIR_CIPHER_SEQ_CTR_SIZE 6
3208
3209typedef PACKED_PRE struct PACKED_POST
3210{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003211 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003212 tSirMacAddr taMacAddr; //transmitter address
3213 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003214 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003215 tANI_U8 IV1; // first byte of IV
3216 tANI_U8 keyId; // second byte of IV
3217 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3218 tSirMacAddr rxMacAddr; // receive address
3219} tSirMicFailureInfo, *tpSirMicFailureInfo;
3220
3221/* Definition for MIC failure indication
3222 MAC reports this each time a MIC failure occures on Rx TKIP packet
3223 */
3224typedef PACKED_PRE struct PACKED_POST
3225{
3226 tSirMacAddr bssId; // BSSID
3227 tSirMicFailureInfo info;
3228} tSirMicFailureInd, *tpSirMicFailureInd;
3229
3230typedef PACKED_PRE struct PACKED_POST
3231{
3232 tHalMsgHeader header;
3233 tSirMicFailureInd micFailureInd;
3234} tMicFailureIndMsg, *tpMicFailureIndMsg;
3235
Mohit Khanna4a70d262012-09-11 16:30:12 -07003236typedef PACKED_PRE struct PACKED_POST
3237{
3238 tANI_U16 opMode;
3239 tANI_U16 staId;
3240}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3241
3242typedef PACKED_PRE struct PACKED_POST
3243{
3244 tHalMsgHeader header;
3245 tUpdateVHTOpMode updateVhtOpMode;
3246} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3247
3248typedef PACKED_PRE struct PACKED_POST
3249{
3250 tANI_U32 status;
3251} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3252
3253typedef PACKED_PRE struct PACKED_POST
3254{
3255 tHalMsgHeader header;
3256 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3257} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3258
Jeff Johnson295189b2012-06-20 16:38:30 -07003259/*---------------------------------------------------------------------------
3260 * WLAN_HAL_UPDATE_BEACON_REQ
3261 *--------------------------------------------------------------------------*/
3262typedef PACKED_PRE struct PACKED_POST
3263{
3264
3265 tANI_U8 bssIdx;
3266
3267 //shortPreamble mode. HAL should update all the STA rates when it
3268 //receives this message
3269 tANI_U8 fShortPreamble;
3270 //short Slot time.
3271 tANI_U8 fShortSlotTime;
3272 //Beacon Interval
3273 tANI_U16 beaconInterval;
3274 //Protection related
3275 tANI_U8 llaCoexist;
3276 tANI_U8 llbCoexist;
3277 tANI_U8 llgCoexist;
3278 tANI_U8 ht20MhzCoexist;
3279 tANI_U8 llnNonGFCoexist;
3280 tANI_U8 fLsigTXOPProtectionFullSupport;
3281 tANI_U8 fRIFSMode;
3282
3283 tANI_U16 paramChangeBitmap;
3284}tUpdateBeaconParams, *tpUpdateBeaconParams;
3285
3286
3287typedef PACKED_PRE struct PACKED_POST
3288{
3289 tHalMsgHeader header;
3290 tUpdateBeaconParams updateBeaconParam;
3291} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3292
3293/*---------------------------------------------------------------------------
3294 * WLAN_HAL_UPDATE_BEACON_RSP
3295 *--------------------------------------------------------------------------*/
3296typedef PACKED_PRE struct PACKED_POST
3297{
3298 tANI_U32 status;
3299} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3300
3301typedef PACKED_PRE struct PACKED_POST
3302{
3303 tHalMsgHeader header;
3304 tUpdateBeaconRspParams updateBeaconRspParam;
3305} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3306
3307/*---------------------------------------------------------------------------
3308 * WLAN_HAL_SEND_BEACON_REQ
3309 *--------------------------------------------------------------------------*/
3310typedef PACKED_PRE struct PACKED_POST
3311{
3312 tANI_U32 beaconLength; //length of the template.
3313 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3314 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003315 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003316 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3317}tSendBeaconParams, *tpSendBeaconParams;
3318
3319
3320typedef PACKED_PRE struct PACKED_POST
3321{
3322 tHalMsgHeader header;
3323 tSendBeaconParams sendBeaconParam;
3324}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3325
3326/*---------------------------------------------------------------------------
3327 * WLAN_HAL_SEND_BEACON_RSP
3328 *--------------------------------------------------------------------------*/
3329typedef PACKED_PRE struct PACKED_POST
3330{
3331 tANI_U32 status;
3332} tSendBeaconRspParams, *tpSendBeaconRspParams;
3333
3334typedef PACKED_PRE struct PACKED_POST
3335{
3336 tHalMsgHeader header;
3337 tSendBeaconRspParams sendBeaconRspParam;
3338} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3339
3340#ifdef FEATURE_5GHZ_BAND
3341
3342/*---------------------------------------------------------------------------
3343 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3344 *--------------------------------------------------------------------------*/
3345typedef PACKED_PRE struct PACKED_POST
3346{
3347 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003348 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003349}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3350
3351
3352typedef PACKED_PRE struct PACKED_POST
3353{
3354 /* Link Parameters */
3355 tSirEnableRadarInfoType EnableRadarInfo;
3356}tEnableRadarReqParams, *tpEnableRadarReqParams;
3357
3358typedef PACKED_PRE struct PACKED_POST
3359{
3360 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003361 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003362}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3363
3364/*---------------------------------------------------------------------------
3365 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3366 *--------------------------------------------------------------------------*/
3367
3368typedef PACKED_PRE struct PACKED_POST
3369{
3370 /* Link Parameters */
3371 tSirMacAddr BSSID;
3372 /* success or failure */
3373 tANI_U32 status;
3374}tEnableRadarRspParams, *tpEnableRadarRspParams;
3375
3376typedef PACKED_PRE struct PACKED_POST
3377{
3378 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003379 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003380}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3381
3382/*---------------------------------------------------------------------------
3383 *WLAN_HAL_RADAR_DETECT_INTR_IND
3384 *--------------------------------------------------------------------------*/
3385
3386typedef PACKED_PRE struct PACKED_POST
3387{
3388 tANI_U8 radarDetChannel;
3389}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3390
3391typedef PACKED_PRE struct PACKED_POST
3392{
3393 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003394 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003395}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3396
3397/*---------------------------------------------------------------------------
3398 *WLAN_HAL_RADAR_DETECT_IND
3399 *-------------------------------------------------------------------------*/
3400typedef PACKED_PRE struct PACKED_POST
3401{
3402 /*channel number in which the RADAR detected*/
3403 tANI_U8 channelNumber;
3404
3405 /*RADAR pulse width*/
3406 tANI_U16 radarPulseWidth; // in usecond
3407
3408 /*Number of RADAR pulses */
3409 tANI_U16 numRadarPulse;
3410}tRadarDetectIndParams,*tpRadarDetectIndParams;
3411
3412typedef PACKED_PRE struct PACKED_POST
3413{
3414 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003415 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003416}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3417
3418
3419/*---------------------------------------------------------------------------
3420 *WLAN_HAL_GET_TPC_REPORT_REQ
3421 *-------------------------------------------------------------------------*/
3422typedef PACKED_PRE struct PACKED_POST
3423{
3424 tSirMacAddr sta;
3425 tANI_U8 dialogToken;
3426 tANI_U8 txpower;
3427}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3428
3429
3430typedef PACKED_PRE struct PACKED_POST
3431{
3432 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003433 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003434}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3435
3436/*---------------------------------------------------------------------------
3437 * WLAN_HAL_GET_TPC_REPORT_RSP
3438 *--------------------------------------------------------------------------*/
3439
3440typedef PACKED_PRE struct PACKED_POST
3441{
3442 /* success or failure */
3443 tANI_U32 status;
3444}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3445
3446typedef PACKED_PRE struct PACKED_POST
3447{
3448 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003449 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003450}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3451
3452#endif
3453
Jeff Johnson295189b2012-06-20 16:38:30 -07003454/*---------------------------------------------------------------------------
3455 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3456 *-------------------------------------------------------------------------*/
3457typedef PACKED_PRE struct PACKED_POST
3458{
3459 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3460 tANI_U32 probeRespTemplateLen;
3461 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3462 tSirMacAddr bssId;
3463
3464}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3465
3466typedef PACKED_PRE struct PACKED_POST
3467{
3468 tHalMsgHeader header;
3469 tSendProbeRespReqParams sendProbeRespReqParams ;
3470}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3471
3472/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003473 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003474 *--------------------------------------------------------------------------*/
3475
3476typedef PACKED_PRE struct PACKED_POST
3477{
3478 /* success or failure */
3479 tANI_U32 status;
3480}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3481
3482typedef PACKED_PRE struct PACKED_POST
3483{
3484 tHalMsgHeader header;
3485 tSendProbeRespRspParams sendProbeRespRspParams;
3486}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3487
3488
3489/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003490 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003491 *--------------------------------------------------------------------------*/
3492
3493typedef PACKED_PRE struct PACKED_POST
3494{
3495 /* success or failure */
3496 tANI_U32 status;
3497}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3498
3499typedef PACKED_PRE struct PACKED_POST
3500{
3501 tHalMsgHeader header;
3502 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3503}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3504
3505/*---------------------------------------------------------------------------
3506 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3507 *--------------------------------------------------------------------------*/
3508
3509typedef PACKED_PRE struct PACKED_POST
3510{
3511 tANI_U16 assocId;
3512 tANI_U16 staId;
3513 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3514 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003515 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003516 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003517
3518}tDeleteStaContextParams, *tpDeleteStaContextParams;
3519
3520
3521typedef PACKED_PRE struct PACKED_POST
3522{
3523 tHalMsgHeader header;
3524 tDeleteStaContextParams deleteStaContextParams;
3525}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3526
Anand Kumar012623a2013-01-11 17:00:00 -08003527typedef PACKED_PRE struct PACKED_POST
3528{
3529 tHalMsgHeader header;
3530 tANI_U8 assocId;
3531 tANI_U8 staIdx;
3532 tANI_U8 bssIdx;
3533 tANI_U8 uReasonCode;
3534 tANI_U32 uStatus;
3535} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003536
3537/*---------------------------------------------------------------------------
3538 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3539 *--------------------------------------------------------------------------*/
3540
3541typedef PACKED_PRE struct PACKED_POST
3542{
3543 tBtAmpEventType btAmpEventType;
3544
3545}tBtAmpEventParams, *tpBtAmpEventParams;
3546
3547
3548
3549typedef PACKED_PRE struct PACKED_POST
3550{
3551 tHalMsgHeader header;
3552 tBtAmpEventParams btAmpEventParams;
3553}tBtAmpEventMsg, *tpBtAmpEventMsg;
3554
3555/*---------------------------------------------------------------------------
3556*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3557*--------------------------------------------------------------------------*/
3558
3559typedef PACKED_PRE struct PACKED_POST
3560{
3561 /* success or failure */
3562 tANI_U32 status;
3563}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3564
3565typedef PACKED_PRE struct PACKED_POST
3566{
3567 tHalMsgHeader header;
3568 tBtAmpEventRspParams btAmpEventRspParams;
3569}tBtAmpEventRsp, *tpBtAmpEventRsp;
3570
3571
3572/*---------------------------------------------------------------------------
3573 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3574 *--------------------------------------------------------------------------*/
3575
3576typedef PACKED_PRE struct PACKED_POST
3577{
3578 // Station Index. originates from HAL
3579 tANI_U8 ucSTAId;
3580
3581 // TID for which the transmit queue is being flushed
3582 tANI_U8 ucTid;
3583
3584}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3585
3586
3587typedef PACKED_PRE struct PACKED_POST
3588{
3589 tHalMsgHeader header;
3590 tTlHalFlushAcParams tlHalFlushAcParam;
3591}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3592
3593/*---------------------------------------------------------------------------
3594*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3595*--------------------------------------------------------------------------*/
3596
3597typedef PACKED_PRE struct PACKED_POST
3598{
3599 // Station Index. originates from HAL
3600 tANI_U8 ucSTAId;
3601
3602 // TID for which the transmit queue is being flushed
3603 tANI_U8 ucTid;
3604
3605 /* success or failure */
3606 tANI_U32 status;
3607}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3608
3609typedef PACKED_PRE struct PACKED_POST
3610{
3611 tHalMsgHeader header;
3612 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3613}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3614
3615/*---------------------------------------------------------------------------
3616 * WLAN_HAL_ENTER_IMPS_REQ
3617 *--------------------------------------------------------------------------*/
3618typedef PACKED_PRE struct PACKED_POST
3619{
3620 tHalMsgHeader header;
3621} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3622
3623/*---------------------------------------------------------------------------
3624 * WLAN_HAL_EXIT_IMPS_REQ
3625 *--------------------------------------------------------------------------*/
3626typedef PACKED_PRE struct PACKED_POST
3627{
3628 tHalMsgHeader header;
3629} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3630
3631/*---------------------------------------------------------------------------
3632 * WLAN_HAL_ENTER_BMPS_REQ
3633 *--------------------------------------------------------------------------*/
3634
3635typedef PACKED_PRE struct PACKED_POST
3636{
3637 tANI_U8 bssIdx;
3638 //TBTT value derived from the last beacon
3639#ifndef BUILD_QWPTTSTATIC
3640 tANI_U64 tbtt;
3641#endif
3642 tANI_U8 dtimCount;
3643 //DTIM period given to HAL during association may not be valid,
3644 //if association is based on ProbeRsp instead of beacon.
3645 tANI_U8 dtimPeriod;
3646
3647 // For CCX and 11R Roaming
3648 tANI_U32 rssiFilterPeriod;
3649 tANI_U32 numBeaconPerRssiAverage;
3650 tANI_U8 bRssiFilterEnable;
3651
3652} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3653
3654
3655typedef PACKED_PRE struct PACKED_POST
3656{
3657 tHalMsgHeader header;
3658 tHalEnterBmpsReqParams enterBmpsReq;
3659} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3660
3661/*---------------------------------------------------------------------------
3662 * WLAN_HAL_EXIT_BMPS_REQ
3663 *--------------------------------------------------------------------------*/
3664typedef PACKED_PRE struct PACKED_POST
3665{
3666 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003667 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003668} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3669
3670typedef PACKED_PRE struct PACKED_POST
3671{
3672 tHalMsgHeader header;
3673 tHalExitBmpsReqParams exitBmpsReqParams;
3674} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3675
3676/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003677 * WLAN_HAL_MISSED_BEACON_IND
3678 *--------------------------------------------------------------------------*/
3679typedef PACKED_PRE struct PACKED_POST
3680{
3681 tANI_U8 bssIdx;
3682} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3683
3684typedef PACKED_PRE struct PACKED_POST
3685{
3686 tHalMsgHeader header;
3687 tHalMissedBeaconIndParams missedBeaconIndParams;
3688} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3689
3690/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003691 * WLAN_HAL_ADD_BCN_FILTER_REQ
3692 *--------------------------------------------------------------------------*/
3693/* Beacon Filtering data structures */
3694typedef PACKED_PRE struct PACKED_POST
3695{
3696 tANI_U8 offset;
3697 tANI_U8 value;
3698 tANI_U8 bitMask;
3699 tANI_U8 ref;
3700} tEidByteInfo, *tpEidByteInfo;
3701
Jeff Johnson32d95a32012-09-10 13:15:23 -07003702typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003703{
3704 tANI_U16 capabilityInfo;
3705 tANI_U16 capabilityMask;
3706 tANI_U16 beaconInterval;
3707 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003708 tANI_U8 bssIdx;
3709 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003710} tBeaconFilterMsg, *tpBeaconFilterMsg;
3711
3712/* The above structure would be followed by multiple of below mentioned structure */
3713typedef PACKED_PRE struct PACKED_POST
3714{
3715 tANI_U8 elementId;
3716 tANI_U8 checkIePresence;
3717 tEidByteInfo byte;
3718} tBeaconFilterIe, *tpBeaconFilterIe;
3719
3720typedef PACKED_PRE struct PACKED_POST
3721{
3722 tHalMsgHeader header;
3723 tBeaconFilterMsg addBcnFilterParams;
3724} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3725
3726/*---------------------------------------------------------------------------
3727 * WLAN_HAL_REM_BCN_FILTER_REQ
3728 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003729typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003730{
3731 tANI_U8 ucIeCount;
3732 tANI_U8 ucRemIeId[1];
3733} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3734
3735typedef PACKED_PRE struct PACKED_POST
3736{
3737 tHalMsgHeader header;
3738 tRemBeaconFilterMsg remBcnFilterParams;
3739} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3740
3741/*---------------------------------------------------------------------------
3742 * WLAN_HAL_HOST_OFFLOAD_REQ
3743 *--------------------------------------------------------------------------*/
3744#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3745#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3746#define HAL_IPV6_NS_OFFLOAD 2
3747#define HAL_IPV6_ADDR_LEN 16
3748#define HAL_MAC_ADDR_LEN 6
3749#define HAL_OFFLOAD_DISABLE 0
3750#define HAL_OFFLOAD_ENABLE 1
3751#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003752#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003753#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003754#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003755
3756typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3757{
3758 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3759 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3760 //Only support 2 possible Network Advertisement IPv6 address
3761 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3762 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3763 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3764 tANI_U8 srcIPv6AddrValid : 1;
3765 tANI_U8 targetIPv6Addr1Valid : 1;
3766 tANI_U8 targetIPv6Addr2Valid : 1;
3767 tANI_U8 reserved1 : 5;
3768 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003769 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003770 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003771} tHalNSOffloadParams;
3772
3773typedef PACKED_PRE struct PACKED_POST
3774{
3775 tANI_U8 offloadType;
3776 tANI_U8 enableOrDisable;
3777 PACKED_PRE union PACKED_POST
3778 {
3779 tANI_U8 hostIpv4Addr [4];
3780 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3781 } params;
3782} tHalHostOffloadReq, *tpHalHostOffloadReq;
3783
3784typedef PACKED_PRE struct PACKED_POST
3785{
3786 tHalMsgHeader header;
3787 tHalHostOffloadReq hostOffloadParams;
3788 tHalNSOffloadParams nsOffloadParams;
3789} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3790
3791/*---------------------------------------------------------------------------
3792 * WLAN_HAL_KEEP_ALIVE_REQ
3793 *--------------------------------------------------------------------------*/
3794/* Packet Types. */
3795#define HAL_KEEP_ALIVE_NULL_PKT 1
3796#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3797
3798/* Enable or disable keep alive */
3799#define HAL_KEEP_ALIVE_DISABLE 0
3800#define HAL_KEEP_ALIVE_ENABLE 1
3801
3802/* Keep Alive request. */
3803typedef PACKED_PRE struct PACKED_POST
3804{
3805 tANI_U8 packetType;
3806 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003807 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003808 tHalIpv4Addr destIpv4Addr;
3809 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003810 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003811} tHalKeepAliveReq, *tpHalKeepAliveReq;
3812
3813typedef PACKED_PRE struct PACKED_POST
3814{
3815 tHalMsgHeader header;
3816 tHalKeepAliveReq KeepAliveParams;
3817} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3818
3819/*---------------------------------------------------------------------------
3820 * WLAN_HAL_SET_RSSI_THRESH_REQ
3821 *--------------------------------------------------------------------------*/
3822typedef PACKED_PRE struct PACKED_POST
3823{
3824 tANI_S8 ucRssiThreshold1 : 8;
3825 tANI_S8 ucRssiThreshold2 : 8;
3826 tANI_S8 ucRssiThreshold3 : 8;
3827 tANI_U8 bRssiThres1PosNotify : 1;
3828 tANI_U8 bRssiThres1NegNotify : 1;
3829 tANI_U8 bRssiThres2PosNotify : 1;
3830 tANI_U8 bRssiThres2NegNotify : 1;
3831 tANI_U8 bRssiThres3PosNotify : 1;
3832 tANI_U8 bRssiThres3NegNotify : 1;
3833 tANI_U8 bReserved10 : 2;
3834} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003835
Jeff Johnson295189b2012-06-20 16:38:30 -07003836typedef PACKED_PRE struct PACKED_POST
3837{
3838 tHalMsgHeader header;
3839 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003840} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003841
3842/*---------------------------------------------------------------------------
3843 * WLAN_HAL_ENTER_UAPSD_REQ
3844 *--------------------------------------------------------------------------*/
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 tANI_U8 bkDeliveryEnabled:1;
3848 tANI_U8 beDeliveryEnabled:1;
3849 tANI_U8 viDeliveryEnabled:1;
3850 tANI_U8 voDeliveryEnabled:1;
3851 tANI_U8 bkTriggerEnabled:1;
3852 tANI_U8 beTriggerEnabled:1;
3853 tANI_U8 viTriggerEnabled:1;
3854 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003855 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003856} tUapsdReqParams, *tpUapsdReqParams;
3857
3858typedef PACKED_PRE struct PACKED_POST
3859{
3860 tHalMsgHeader header;
3861 tUapsdReqParams enterUapsdParams;
3862} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3863
3864/*---------------------------------------------------------------------------
3865 * WLAN_HAL_EXIT_UAPSD_REQ
3866 *--------------------------------------------------------------------------*/
3867typedef PACKED_PRE struct PACKED_POST
3868{
3869 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003870 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003871} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3872
3873/*---------------------------------------------------------------------------
3874 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3875 *--------------------------------------------------------------------------*/
3876#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3877#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3878
3879typedef PACKED_PRE struct PACKED_POST
3880{
3881 tANI_U8 ucPatternId; // Pattern ID
3882 // Pattern byte offset from beginning of the 802.11 packet to start of the
3883 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003884 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003885 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3886 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3887 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3888 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3889 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3890 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003891 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003892} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3893
3894typedef PACKED_PRE struct PACKED_POST
3895{
3896 tHalMsgHeader header;
3897 tHalWowlAddBcastPtrn ptrnParams;
3898} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003899
Jeff Johnsone7245742012-09-05 17:12:55 -07003900
3901
Jeff Johnson295189b2012-06-20 16:38:30 -07003902/*---------------------------------------------------------------------------
3903 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3904 *--------------------------------------------------------------------------*/
3905typedef PACKED_PRE struct PACKED_POST
3906{
3907 /* Pattern ID of the wakeup pattern to be deleted */
3908 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003909 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003910} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3911
3912typedef PACKED_PRE struct PACKED_POST
3913{
3914 tHalMsgHeader header;
3915 tHalWowlDelBcastPtrn ptrnParams;
3916} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3917
3918/*---------------------------------------------------------------------------
3919 * WLAN_HAL_ENTER_WOWL_REQ
3920 *--------------------------------------------------------------------------*/
3921typedef PACKED_PRE struct PACKED_POST
3922{
3923 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003924 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003925
3926 /* Magic pattern */
3927 tSirMacAddr magicPtrn;
3928
Jeff Johnson32d95a32012-09-10 13:15:23 -07003929 /* Enables/disables packet pattern filtering in firmware.
3930 Enabling this flag enables broadcast pattern matching
3931 in Firmware. If unicast pattern matching is also desired,
3932 ucUcastPatternFilteringEnable flag must be set tot true
3933 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003934 */
3935 tANI_U8 ucPatternFilteringEnable;
3936
Jeff Johnson32d95a32012-09-10 13:15:23 -07003937 /* Enables/disables unicast packet pattern filtering.
3938 This flag specifies whether we want to do pattern match
3939 on unicast packets as well and not just broadcast packets.
3940 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003941 (main controlling flag) is set to false
3942 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003943 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003944
Jeff Johnson32d95a32012-09-10 13:15:23 -07003945 /* This configuration is valid only when magicPktEnable=1.
3946 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003947 * Channel Switch Action Frame.
3948 */
3949 tANI_U8 ucWowChnlSwitchRcv;
3950
Jeff Johnson32d95a32012-09-10 13:15:23 -07003951 /* This configuration is valid only when magicPktEnable=1.
3952 * It requests hardware to wake up when it receives the
3953 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003954 */
3955 tANI_U8 ucWowDeauthRcv;
3956
Jeff Johnson32d95a32012-09-10 13:15:23 -07003957 /* This configuration is valid only when magicPktEnable=1.
3958 * It requests hardware to wake up when it receives the
3959 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003960 */
3961 tANI_U8 ucWowDisassocRcv;
3962
Jeff Johnson32d95a32012-09-10 13:15:23 -07003963 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003964 * It requests hardware to wake up when it has missed
3965 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003966 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003967 */
3968 tANI_U8 ucWowMaxMissedBeacons;
3969
Jeff Johnson32d95a32012-09-10 13:15:23 -07003970 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003971 * This is a timeout value in units of microsec. It requests
3972 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003973 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003974 */
3975 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003976
Jeff Johnson295189b2012-06-20 16:38:30 -07003977 /* This configuration directs the WoW packet filtering to look for EAP-ID
3978 * requests embedded in EAPOL frames and use this as a wake source.
3979 */
3980 tANI_U8 ucWoWEAPIDRequestEnable;
3981
3982 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3983 * requests and use this as a wake source.
3984 */
3985 tANI_U8 ucWoWEAPOL4WayEnable;
3986
3987 /* This configuration allows a host wakeup on an network scan offload match.
3988 */
3989 tANI_U8 ucWowNetScanOffloadMatch;
3990
3991 /* This configuration allows a host wakeup on any GTK rekeying error.
3992 */
3993 tANI_U8 ucWowGTKRekeyError;
3994
3995 /* This configuration allows a host wakeup on BSS connection loss.
3996 */
3997 tANI_U8 ucWoWBSSConnLoss;
3998
Jeff Johnsone7245742012-09-05 17:12:55 -07003999 tANI_U8 bssIdx;
4000
Jeff Johnson295189b2012-06-20 16:38:30 -07004001} tHalWowlEnterParams, *tpHalWowlEnterParams;
4002
4003typedef PACKED_PRE struct PACKED_POST
4004{
4005 tHalMsgHeader header;
4006 tHalWowlEnterParams enterWowlParams;
4007} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4008
4009/*---------------------------------------------------------------------------
4010 * WLAN_HAL_EXIT_WOWL_REQ
4011 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004012
Jeff Johnson295189b2012-06-20 16:38:30 -07004013typedef PACKED_PRE struct PACKED_POST
4014{
Jeff Johnsone7245742012-09-05 17:12:55 -07004015 tANI_U8 bssIdx;
4016
4017} tHalWowlExitParams, *tpHalWowlExitParams;
4018
4019typedef PACKED_PRE struct PACKED_POST
4020{
4021 tHalMsgHeader header;
4022 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004023} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4024
4025/*---------------------------------------------------------------------------
4026 * WLAN_HAL_GET_RSSI_REQ
4027 *--------------------------------------------------------------------------*/
4028typedef PACKED_PRE struct PACKED_POST
4029{
4030 tHalMsgHeader header;
4031} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4032
Anand Kumar012623a2013-01-11 17:00:00 -08004033typedef PACKED_PRE struct PACKED_POST
4034{
4035 /* Valid STA Idx for per STA stats request */
4036 tANI_U32 staId;
4037
4038}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4039
4040
4041/*---------------------------------------------------------------------------
4042 * WLAN_HAL_GET_ROAM_RSSI_REQ
4043 *--------------------------------------------------------------------------*/
4044typedef PACKED_PRE struct PACKED_POST
4045{
4046 tHalMsgHeader header;
4047 tHalRoamRssiReqParams roamRssiReqParams;
4048} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4049
4050
Jeff Johnson295189b2012-06-20 16:38:30 -07004051/*---------------------------------------------------------------------------
4052 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4053 *--------------------------------------------------------------------------*/
4054typedef PACKED_PRE struct PACKED_POST {
4055 tANI_U8 staidx; // STA index
4056 tANI_U8 ac; // Access Category
4057 tANI_U8 up; // User Priority
4058 tANI_U32 srvInterval; // Service Interval
4059 tANI_U32 susInterval; // Suspend Interval
4060 tANI_U32 delayInterval; // Delay Interval
4061} tUapsdInfo, tpUapsdInfo;
4062
4063typedef PACKED_PRE struct PACKED_POST
4064{
4065 tHalMsgHeader header;
4066 tUapsdInfo enableUapsdAcParams;
4067} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4068
4069/*---------------------------------------------------------------------------
4070 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4071 *--------------------------------------------------------------------------*/
4072typedef PACKED_PRE struct PACKED_POST {
4073 tANI_U8 setMcstBcstFilterSetting;
4074 tANI_U8 setMcstBcstFilter;
4075} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4076
4077typedef PACKED_PRE struct PACKED_POST
4078{
4079 tHalMsgHeader header;
4080 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4081} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4082
4083/*---------------------------------------------------------------------------
4084 * WLAN_HAL_ENTER_IMPS_RSP
4085 *--------------------------------------------------------------------------*/
4086typedef PACKED_PRE struct PACKED_POST
4087{
4088 /* success or failure */
4089 tANI_U32 status;
4090} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4091
4092typedef PACKED_PRE struct PACKED_POST
4093{
4094 tHalMsgHeader header;
4095 tHalEnterImpsRspParams enterImpsRspParams;
4096} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4097
4098/*---------------------------------------------------------------------------
4099 * WLAN_HAL_EXIT_IMPS_RSP
4100 *--------------------------------------------------------------------------*/
4101typedef PACKED_PRE struct PACKED_POST
4102{
4103 /* success or failure */
4104 tANI_U32 status;
4105} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4106
4107typedef PACKED_PRE struct PACKED_POST
4108{
4109 tHalMsgHeader header;
4110 tHalExitImpsRspParams exitImpsRspParams;
4111} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4112
4113/*---------------------------------------------------------------------------
4114 * WLAN_HAL_ENTER_BMPS_RSP
4115 *--------------------------------------------------------------------------*/
4116typedef PACKED_PRE struct PACKED_POST
4117{
4118 /* success or failure */
4119 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004120 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004121} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4122
4123typedef PACKED_PRE struct PACKED_POST
4124{
4125 tHalMsgHeader header;
4126 tHalEnterBmpsRspParams enterBmpsRspParams;
4127} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4128
4129/*---------------------------------------------------------------------------
4130 * WLAN_HAL_EXIT_BMPS_RSP
4131 *--------------------------------------------------------------------------*/
4132typedef PACKED_PRE struct PACKED_POST
4133{
4134 /* success or failure */
4135 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004136 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004137} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4138
4139typedef PACKED_PRE struct PACKED_POST
4140{
4141 tHalMsgHeader header;
4142 tHalExitBmpsRspParams exitBmpsRspParams;
4143} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4144
4145/*---------------------------------------------------------------------------
4146 * WLAN_HAL_ENTER_UAPSD_RSP
4147 *--------------------------------------------------------------------------*/
4148typedef PACKED_PRE struct PACKED_POST
4149{
4150 /* success or failure */
4151 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004152 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004153}tUapsdRspParams, *tpUapsdRspParams;
4154
4155typedef PACKED_PRE struct PACKED_POST
4156{
4157 tHalMsgHeader header;
4158 tUapsdRspParams enterUapsdRspParams;
4159} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4160
4161/*---------------------------------------------------------------------------
4162 * WLAN_HAL_EXIT_UAPSD_RSP
4163 *--------------------------------------------------------------------------*/
4164typedef PACKED_PRE struct PACKED_POST
4165{
4166 /* success or failure */
4167 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004168 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004169} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4170
4171typedef PACKED_PRE struct PACKED_POST
4172{
4173 tHalMsgHeader header;
4174 tHalExitUapsdRspParams exitUapsdRspParams;
4175} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4176
4177/*---------------------------------------------------------------------------
4178 * WLAN_HAL_RSSI_NOTIFICATION_IND
4179 *--------------------------------------------------------------------------*/
4180typedef PACKED_PRE struct PACKED_POST
4181{
4182 tANI_U32 bRssiThres1PosCross : 1;
4183 tANI_U32 bRssiThres1NegCross : 1;
4184 tANI_U32 bRssiThres2PosCross : 1;
4185 tANI_U32 bRssiThres2NegCross : 1;
4186 tANI_U32 bRssiThres3PosCross : 1;
4187 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004188 tANI_U32 avgRssi : 8;
4189 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004190} tHalRSSINotification, *tpHalRSSINotification;
4191
4192typedef PACKED_PRE struct PACKED_POST
4193{
4194 tHalMsgHeader header;
4195 tHalRSSINotification rssiNotificationParams;
4196} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4197
4198/*---------------------------------------------------------------------------
4199 * WLAN_HAL_GET_RSSI_RSP
4200 *--------------------------------------------------------------------------*/
4201typedef PACKED_PRE struct PACKED_POST
4202{
4203 /* success or failure */
4204 tANI_U32 status;
4205 tANI_S8 rssi;
4206} tHalGetRssiParams, *tpHalGetRspParams;
4207
4208typedef PACKED_PRE struct PACKED_POST
4209{
4210 tHalMsgHeader header;
4211 tHalGetRssiParams rssiRspParams;
4212} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4213
4214/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004215 * WLAN_HAL_GET_ROAM_RSSI_RSP
4216 *--------------------------------------------------------------------------*/
4217typedef PACKED_PRE struct PACKED_POST
4218{
4219 /* success or failure */
4220 tANI_U32 status;
4221
4222 tANI_U8 staId;
4223 tANI_S8 rssi;
4224} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4225
4226typedef PACKED_PRE struct PACKED_POST
4227{
4228 tHalMsgHeader header;
4229 tHalGetRoamRssiParams roamRssiRspParams;
4230} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4231
4232/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004233 * WLAN_HAL_ENTER_WOWL_RSP
4234 *--------------------------------------------------------------------------*/
4235typedef PACKED_PRE struct PACKED_POST
4236{
4237 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004238 tANI_U32 status;
4239 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004240} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4241
4242typedef PACKED_PRE struct PACKED_POST
4243{
4244 tHalMsgHeader header;
4245 tHalEnterWowlRspParams enterWowlRspParams;
4246} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4247
4248/*---------------------------------------------------------------------------
4249 * WLAN_HAL_EXIT_WOWL_RSP
4250 *--------------------------------------------------------------------------*/
4251typedef PACKED_PRE struct PACKED_POST
4252{
4253 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004254 tANI_U32 status;
4255 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004256} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4257
4258typedef PACKED_PRE struct PACKED_POST
4259{
4260 tHalMsgHeader header;
4261 tHalExitWowlRspParams exitWowlRspParams;
4262} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4263
4264/*---------------------------------------------------------------------------
4265 * WLAN_HAL_ADD_BCN_FILTER_RSP
4266 *--------------------------------------------------------------------------*/
4267typedef PACKED_PRE struct PACKED_POST
4268{
4269 /* success or failure */
4270 tANI_U32 status;
4271} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4272
4273typedef PACKED_PRE struct PACKED_POST
4274{
4275 tHalMsgHeader header;
4276 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4277} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4278
4279/*---------------------------------------------------------------------------
4280 * WLAN_HAL_REM_BCN_FILTER_RSP
4281 *--------------------------------------------------------------------------*/
4282typedef PACKED_PRE struct PACKED_POST
4283{
4284 /* success or failure */
4285 tANI_U32 status;
4286} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4287
4288typedef PACKED_PRE struct PACKED_POST
4289{
4290 tHalMsgHeader header;
4291 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4292} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4293
4294/*---------------------------------------------------------------------------
4295 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4296 *--------------------------------------------------------------------------*/
4297typedef PACKED_PRE struct PACKED_POST
4298{
4299 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004300 tANI_U32 status;
4301 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004302} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4303
4304typedef PACKED_PRE struct PACKED_POST
4305{
4306 tHalMsgHeader header;
4307 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4308} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4309
4310/*---------------------------------------------------------------------------
4311 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4312 *--------------------------------------------------------------------------*/
4313typedef PACKED_PRE struct PACKED_POST
4314{
4315 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004316 tANI_U32 status;
4317 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004318} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4319
4320typedef PACKED_PRE struct PACKED_POST
4321{
4322 tHalMsgHeader header;
4323 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4324} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4325
4326/*---------------------------------------------------------------------------
4327 * WLAN_HAL_HOST_OFFLOAD_RSP
4328 *--------------------------------------------------------------------------*/
4329typedef PACKED_PRE struct PACKED_POST
4330{
4331 /* success or failure */
4332 tANI_U32 status;
4333} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4334
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 tHalMsgHeader header;
4338 tHalHostOffloadRspParams hostOffloadRspParams;
4339} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4340
4341/*---------------------------------------------------------------------------
4342 * WLAN_HAL_KEEP_ALIVE_RSP
4343 *--------------------------------------------------------------------------*/
4344typedef PACKED_PRE struct PACKED_POST
4345{
4346 /* success or failure */
4347 tANI_U32 status;
4348} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4349
4350typedef PACKED_PRE struct PACKED_POST
4351{
4352 tHalMsgHeader header;
4353 tHalKeepAliveRspParams keepAliveRspParams;
4354} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4355
4356/*---------------------------------------------------------------------------
4357 * WLAN_HAL_SET_RSSI_THRESH_RSP
4358 *--------------------------------------------------------------------------*/
4359typedef PACKED_PRE struct PACKED_POST
4360{
4361 /* success or failure */
4362 tANI_U32 status;
4363} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4364
4365typedef PACKED_PRE struct PACKED_POST
4366{
4367 tHalMsgHeader header;
4368 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4369} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4370
4371/*---------------------------------------------------------------------------
4372 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4373 *--------------------------------------------------------------------------*/
4374typedef PACKED_PRE struct PACKED_POST
4375{
4376 /* success or failure */
4377 tANI_U32 status;
4378} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4379
4380typedef PACKED_PRE struct PACKED_POST
4381{
4382 tHalMsgHeader header;
4383 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4384} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4385
4386/*---------------------------------------------------------------------------
4387 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4388 *--------------------------------------------------------------------------*/
4389typedef PACKED_PRE struct PACKED_POST
4390{
4391 /* success or failure */
4392 tANI_U32 status;
4393} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4394
4395typedef PACKED_PRE struct PACKED_POST
4396{
4397 tHalMsgHeader header;
4398 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4399} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4400
4401/*---------------------------------------------------------------------------
4402 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4403 *--------------------------------------------------------------------------*/
4404
4405typedef PACKED_PRE struct PACKED_POST
4406{
4407 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4408 //the request has power constraints, this should be applied only to that session
4409 tSirMacAddr selfStaMacAddr;
4410 //In request,
4411 //power == MaxTx power to be used.
4412 tPowerdBm power;
4413
4414}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4415
4416
4417typedef PACKED_PRE struct PACKED_POST
4418{
4419 tHalMsgHeader header;
4420 tSetMaxTxPwrParams setMaxTxPwrParams;
4421}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4422
4423/*---------------------------------------------------------------------------
4424*WLAN_HAL_SET_MAX_TX_POWER_RSP
4425*--------------------------------------------------------------------------*/
4426
4427typedef PACKED_PRE struct PACKED_POST
4428{
4429 //power == tx power used for management frames.
4430 tPowerdBm power;
4431
4432 /* success or failure */
4433 tANI_U32 status;
4434}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4435
4436typedef PACKED_PRE struct PACKED_POST
4437{
4438 tHalMsgHeader header;
4439 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4440}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4441
4442/*---------------------------------------------------------------------------
4443 *WLAN_HAL_SET_TX_POWER_REQ
4444 *--------------------------------------------------------------------------*/
4445
4446typedef PACKED_PRE struct PACKED_POST
4447{
4448 /* TX Power in milli watts */
4449 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004450 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004451}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4452
4453
4454typedef PACKED_PRE struct PACKED_POST
4455{
4456 tHalMsgHeader header;
4457 tSetTxPwrReqParams setTxPwrReqParams;
4458}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4459
4460/*---------------------------------------------------------------------------
4461*WLAN_HAL_SET_TX_POWER_RSP
4462*--------------------------------------------------------------------------*/
4463
4464typedef PACKED_PRE struct PACKED_POST
4465{
4466 /* success or failure */
4467 tANI_U32 status;
4468}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4469
4470typedef PACKED_PRE struct PACKED_POST
4471{
4472 tHalMsgHeader header;
4473 tSetTxPwrRspParams setTxPwrRspParams;
4474}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4475
4476/*---------------------------------------------------------------------------
4477 *WLAN_HAL_GET_TX_POWER_REQ
4478 *--------------------------------------------------------------------------*/
4479
4480typedef PACKED_PRE struct PACKED_POST
4481{
4482 tANI_U8 staId;
4483}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4484
4485typedef PACKED_PRE struct PACKED_POST
4486{
4487 tHalMsgHeader header;
4488 tGetTxPwrReqParams getTxPwrReqParams;
4489}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4490
4491/*---------------------------------------------------------------------------
4492*WLAN_HAL_GET_TX_POWER_RSP
4493*--------------------------------------------------------------------------*/
4494
4495typedef PACKED_PRE struct PACKED_POST
4496{
4497 /* success or failure */
4498 tANI_U32 status;
4499
4500 /* TX Power in milli watts */
4501 tANI_U32 txPower;
4502}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4503
4504typedef PACKED_PRE struct PACKED_POST
4505{
4506 tHalMsgHeader header;
4507 tGetTxPwrRspParams getTxPwrRspParams;
4508}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4509
4510#ifdef WLAN_FEATURE_P2P
4511/*---------------------------------------------------------------------------
4512 *WLAN_HAL_SET_P2P_GONOA_REQ
4513 *--------------------------------------------------------------------------*/
4514
4515typedef PACKED_PRE struct PACKED_POST
4516{
4517 tANI_U8 opp_ps;
4518 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004519 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004520 tANI_U32 duration;
4521 tANI_U32 interval;
4522 tANI_U32 single_noa_duration;
4523 tANI_U8 psSelection;
4524}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4525
4526
4527typedef PACKED_PRE struct PACKED_POST
4528{
4529 tHalMsgHeader header;
4530 tSetP2PGONOAParams setP2PGONOAParams;
4531}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4532
4533/*---------------------------------------------------------------------------
4534*WLAN_HAL_SET_P2P_GONOA_RSP
4535*--------------------------------------------------------------------------*/
4536
4537typedef PACKED_PRE struct PACKED_POST
4538{
4539 /* success or failure */
4540 tANI_U32 status;
4541}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4542
4543typedef PACKED_PRE struct PACKED_POST
4544{
4545 tHalMsgHeader header;
4546 tSetP2PGONOARspParams setP2PGONOARspParams;
4547}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4548#endif
4549
4550/*---------------------------------------------------------------------------
4551 *WLAN_HAL_ADD_SELF_STA_REQ
4552 *--------------------------------------------------------------------------*/
4553
4554typedef PACKED_PRE struct PACKED_POST
4555{
4556 tSirMacAddr selfMacAddr;
4557 tANI_U32 status;
4558}tAddStaSelfParams, *tpAddStaSelfParams;
4559
4560
4561typedef PACKED_PRE struct PACKED_POST
4562{
4563 tHalMsgHeader header;
4564 tAddStaSelfParams addStaSelfParams;
4565}tAddStaSelfReq, *tpAddStaSelfReq;
4566
4567/*---------------------------------------------------------------------------
4568*WLAN_HAL_ADD_SELF_STA_RSP
4569*--------------------------------------------------------------------------*/
4570
4571typedef PACKED_PRE struct PACKED_POST
4572{
4573 /* success or failure */
4574 tANI_U32 status;
4575
4576 /*Self STA Index */
4577 tANI_U8 selfStaIdx;
4578
4579 /* DPU Index (IGTK, PTK, GTK all same) */
4580 tANI_U8 dpuIdx;
4581
4582 /* DPU Signature */
4583 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004584
Jeff Johnson295189b2012-06-20 16:38:30 -07004585}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4586
4587typedef PACKED_PRE struct PACKED_POST
4588{
4589 tHalMsgHeader header;
4590 tAddStaSelfRspParams addStaSelfRspParams;
4591}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4592
4593
4594/*---------------------------------------------------------------------------
4595 WLAN_HAL_DEL_STA_SELF_REQ
4596---------------------------------------------------------------------------*/
4597
4598typedef PACKED_PRE struct PACKED_POST
4599{
4600 tSirMacAddr selfMacAddr;
4601
4602}tDelStaSelfParams, *tpDelStaSelfParams;
4603
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 tHalMsgHeader header;
4607 tDelStaSelfParams delStaSelfParams;
4608} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4609
4610
4611/*---------------------------------------------------------------------------
4612 WLAN_HAL_DEL_STA_SELF_RSP
4613---------------------------------------------------------------------------*/
4614
4615typedef PACKED_PRE struct PACKED_POST
4616{
4617 /*success or failure */
4618 tANI_U32 status;
4619
4620 tSirMacAddr selfMacAddr;
4621}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4622
4623typedef PACKED_PRE struct PACKED_POST
4624{
4625 tHalMsgHeader header;
4626 tDelStaSelfRspParams delStaSelfRspParams;
4627} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4628
4629
4630#ifdef WLAN_FEATURE_VOWIFI_11R
4631
4632/*---------------------------------------------------------------------------
4633 *WLAN_HAL_AGGR_ADD_TS_REQ
4634 *--------------------------------------------------------------------------*/
4635
4636typedef PACKED_PRE struct PACKED_POST
4637{
4638 /* Station Index */
4639 tANI_U16 staIdx;
4640
4641 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4642 /* This will carry the bitmap with the bit positions representing different AC.s*/
4643 tANI_U16 tspecIdx;
4644
4645 /* Tspec info per AC To program TPE with required parameters */
4646 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4647
4648 /* U-APSD Flags: 1b per AC. Encoded as follows:
4649 b7 b6 b5 b4 b3 b2 b1 b0 =
4650 X X X X BE BK VI VO */
4651 tANI_U8 uAPSD;
4652
4653 /* These parameters are for all the access categories */
4654 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4655 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4656 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4657
4658}tAggrAddTsParams, *tpAggrAddTsParams;
4659
4660
4661typedef PACKED_PRE struct PACKED_POST
4662{
4663 tHalMsgHeader header;
4664 tAggrAddTsParams aggrAddTsParam;
4665}tAggrAddTsReq, *tpAggrAddTsReq;
4666
4667/*---------------------------------------------------------------------------
4668*WLAN_HAL_AGGR_ADD_TS_RSP
4669*--------------------------------------------------------------------------*/
4670
4671typedef PACKED_PRE struct PACKED_POST
4672{
4673 /* success or failure */
4674 tANI_U32 status0;
4675 /* FIXME PRIMA for future use for 11R */
4676 tANI_U32 status1;
4677}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4678
4679typedef PACKED_PRE struct PACKED_POST
4680{
4681 tHalMsgHeader header;
4682 tAggrAddTsRspParams aggrAddTsRspParam;
4683}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4684
4685#endif
4686
4687/*---------------------------------------------------------------------------
4688 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4689 *--------------------------------------------------------------------------*/
4690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tANI_U8 isAppsCpuAwake;
4693} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4694
4695typedef PACKED_PRE struct PACKED_POST
4696{
4697 tHalMsgHeader header;
4698 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4699} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4700
4701/*---------------------------------------------------------------------------
4702 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4703 *--------------------------------------------------------------------------*/
4704typedef PACKED_PRE struct PACKED_POST
4705{
4706 /* success or failure */
4707 tANI_U32 status;
4708} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4709
4710typedef PACKED_PRE struct PACKED_POST
4711{
4712 tHalMsgHeader header;
4713 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4714} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4715/*---------------------------------------------------------------------------
4716 * WLAN_HAL_DUMP_COMMAND_REQ
4717 *--------------------------------------------------------------------------*/
4718
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 tANI_U32 argument1;
4722 tANI_U32 argument2;
4723 tANI_U32 argument3;
4724 tANI_U32 argument4;
4725 tANI_U32 argument5;
4726
4727}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4728
4729typedef PACKED_PRE struct PACKED_POST
4730{
4731 tHalMsgHeader header;
4732 tHalDumpCmdReqParams dumpCmdReqParams;
4733} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4734
4735/*---------------------------------------------------------------------------
4736 * WLAN_HAL_DUMP_COMMAND_RSP
4737 *--------------------------------------------------------------------------*/
4738
4739typedef PACKED_PRE struct PACKED_POST
4740{
4741 /* success or failure */
4742 tANI_U32 status;
4743 /*Length of the responce message*/
4744 tANI_U32 rspLength;
4745 /*FiXME: Currently considering the the responce will be less than 100bytes */
4746 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004747
Jeff Johnson295189b2012-06-20 16:38:30 -07004748} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4749
4750typedef PACKED_PRE struct PACKED_POST
4751{
4752 tHalMsgHeader header;
4753 tHalDumpCmdRspParams dumpCmdRspParams;
4754} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4755
4756/*---------------------------------------------------------------------------
4757 *WLAN_HAL_COEX_IND
4758 *-------------------------------------------------------------------------*/
4759#define WLAN_COEX_IND_DATA_SIZE (4)
4760#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4761#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004762#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
4763#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Jeff Johnson295189b2012-06-20 16:38:30 -07004764
4765typedef PACKED_PRE struct PACKED_POST
4766{
4767 /*Coex Indication Type*/
4768 tANI_U32 coexIndType;
4769
4770 /*Coex Indication Data*/
4771 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4772}tCoexIndParams,*tpCoexIndParams;
4773
4774typedef PACKED_PRE struct PACKED_POST
4775{
4776 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004777 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004778}tCoexIndMsg, *tpCoexIndMsg;
4779
4780/*---------------------------------------------------------------------------
4781 *WLAN_HAL_OTA_TX_COMPL_IND
4782 *-------------------------------------------------------------------------*/
4783
4784typedef PACKED_PRE struct PACKED_POST
4785{
4786 /*Tx Complete Indication Success or Failure*/
4787 tANI_U32 status;
4788}tTxComplParams,*tpTxComplParams;
4789
4790typedef PACKED_PRE struct PACKED_POST
4791{
4792 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004793 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004794}tTxComplIndMsg, *tpTxComplIndMsg;
4795
4796/*---------------------------------------------------------------------------
4797 * WLAN_HAL_HOST_SUSPEND_IND
4798 *-------------------------------------------------------------------------*/
4799
4800typedef PACKED_PRE struct PACKED_POST
4801{
4802 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004803 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004804}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4805
4806typedef PACKED_PRE struct PACKED_POST
4807{
4808 tHalMsgHeader header;
4809 tHalWlanHostSuspendIndParam suspendIndParams;
4810}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4811
4812/*---------------------------------------------------------------------------
4813 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4814 *-------------------------------------------------------------------------*/
4815
4816typedef PACKED_PRE struct PACKED_POST
4817{
4818 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004819 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004820}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4821
4822typedef PACKED_PRE struct PACKED_POST
4823{
4824 tHalMsgHeader header;
4825 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4826}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4827
4828#ifdef WLAN_FEATURE_P2P
4829/*---------------------------------------------------------------------------
4830 *WLAN_HAL_NOA_ATTR_IND
4831 *-------------------------------------------------------------------------*/
4832
4833typedef PACKED_PRE struct PACKED_POST
4834{
4835 tANI_U8 index ;
4836 tANI_U8 oppPsFlag ;
4837 tANI_U16 ctWin ;
4838
4839 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004840 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004841 tANI_U32 uNoa1Duration;
4842 tANI_U32 uNoa1Interval;
4843 tANI_U32 uNoa1StartTime;
4844
4845 tANI_U16 uNoa2IntervalCnt;
4846 tANI_U16 rsvd2;
4847 tANI_U32 uNoa2Duration;
4848 tANI_U32 uNoa2Interval;
4849 tANI_U32 uNoa2StartTime;
4850
4851 tANI_U32 status;
4852}tNoaAttrIndParams, *tpNoaAttrIndParams;
4853
4854typedef PACKED_PRE struct PACKED_POST
4855{
4856 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004857 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004858}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004859
4860/*---------------------------------------------------------------------------
4861 *WLAN_HAL_NOA_START_IND
4862 *-------------------------------------------------------------------------*/
4863
4864typedef PACKED_PRE struct PACKED_POST
4865{
4866 tANI_U32 status;
4867 tANI_U32 bssIdx;
4868}tNoaStartIndParams, *tpNoaStartIndParams;
4869
4870typedef PACKED_PRE struct PACKED_POST
4871{
4872 tHalMsgHeader header;
4873 tNoaStartIndParams noaStartIndParams;
4874}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004875#endif
4876
4877/*---------------------------------------------------------------------------
4878 * WLAN_HAL_HOST_RESUME_REQ
4879 *-------------------------------------------------------------------------*/
4880
4881typedef PACKED_PRE struct PACKED_POST
4882{
4883 tANI_U8 configuredMcstBcstFilterSetting;
4884}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4885
4886typedef PACKED_PRE struct PACKED_POST
4887{
4888 tHalMsgHeader header;
4889 tHalWlanHostResumeReqParam resumeReqParams;
4890}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4891
4892/*---------------------------------------------------------------------------
4893 * WLAN_HAL_HOST_RESUME_RSP
4894 *--------------------------------------------------------------------------*/
4895typedef PACKED_PRE struct PACKED_POST
4896{
4897 /* success or failure */
4898 tANI_U32 status;
4899} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4900
4901typedef PACKED_PRE struct PACKED_POST
4902{
4903 tHalMsgHeader header;
4904 tHalHostResumeRspParams hostResumeRspParams;
4905} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4906
Anand Kumar012623a2013-01-11 17:00:00 -08004907typedef PACKED_PRE struct PACKED_POST
4908{
4909 tANI_U16 staIdx;
4910 // Peer MAC Address, whose BA session has timed out
4911 tSirMacAddr peerMacAddr;
4912 // TID for which a BA session timeout is being triggered
4913 tANI_U8 baTID;
4914 // DELBA direction
4915 // 1 - Originator
4916 // 0 - Recipient
4917 tANI_U8 baDirection;
4918 tANI_U32 reasonCode;
4919 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4920} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4921
4922typedef PACKED_PRE struct PACKED_POST
4923{
4924 tHalMsgHeader header;
4925 tHalWlanDelBaIndMsg hostdelBaParam;
4926} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4927
Jeff Johnson295189b2012-06-20 16:38:30 -07004928/*---------------------------------------------------------------------------
4929 *PNO Messages
4930 *-------------------------------------------------------------------------*/
4931/*Max number of channels that a network can be found on*/
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07004932#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07004933
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304934/*Max number of channels that a network can be found on*/
4935#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4936
Jeff Johnson295189b2012-06-20 16:38:30 -07004937/*Maximum numbers of networks supported by PNO*/
4938#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4939
4940/*The number of scan time intervals that can be programmed into PNO*/
4941#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4942
4943/*Maximum size of the probe template*/
4944#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4945
Jeff Johnson32d95a32012-09-10 13:15:23 -07004946/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004947 Immediate - scanning will start immediately and PNO procedure will
4948 be repeated based on timer
4949 Suspend - scanning will start at suspend
4950 Resume - scanning will start on system resume*/
4951typedef enum
4952{
4953 ePNO_MODE_IMMEDIATE,
4954 ePNO_MODE_ON_SUSPEND,
4955 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05304956 ePNO_MODE_DELAY,
4957 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07004958 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4959} ePNOMode;
4960
4961/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004962typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004963{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004964 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004965 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004966
Jeff Johnson295189b2012-06-20 16:38:30 -07004967 // Upper layer authentication types
4968 eAUTH_TYPE_WPA = 2,
4969 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004970
Jeff Johnson295189b2012-06-20 16:38:30 -07004971 eAUTH_TYPE_RSN = 4,
4972 eAUTH_TYPE_RSN_PSK = 5,
4973 eAUTH_TYPE_FT_RSN = 6,
4974 eAUTH_TYPE_FT_RSN_PSK = 7,
4975 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4976 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004977 eAUTH_TYPE_CCKM_WPA = 10,
4978 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004979
Jeff Johnson295189b2012-06-20 16:38:30 -07004980 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4981
4982}tAuthType;
4983
4984/* Encryption type */
4985typedef enum eEdType
4986{
4987 eED_ANY = 0,
4988 eED_NONE = 1,
4989 eED_WEP = 2,
4990 eED_TKIP = 3,
4991 eED_CCMP = 4,
4992 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004993
Jeff Johnson295189b2012-06-20 16:38:30 -07004994 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4995} tEdType;
4996
4997/* SSID broadcast type */
4998typedef enum eSSIDBcastType
4999{
5000 eBCAST_UNKNOWN = 0,
5001 eBCAST_NORMAL = 1,
5002 eBCAST_HIDDEN = 2,
5003
5004 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5005} tSSIDBcastType;
5006
Jeff Johnson32d95a32012-09-10 13:15:23 -07005007/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005008 The network description for which PNO will have to look for
5009*/
5010typedef PACKED_PRE struct PACKED_POST
5011{
5012 /*SSID of the BSS*/
5013 tSirMacSSid ssId;
5014
5015 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005016 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005017
5018 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005019 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005020
Jeff Johnson32d95a32012-09-10 13:15:23 -07005021 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005022 0 - if all channels */
5023 tANI_U8 ucChannelCount;
5024 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5025
5026 /*Indicates the RSSI threshold for the network to be considered*/
5027 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005028}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005029
5030typedef PACKED_PRE struct PACKED_POST
5031{
5032 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005033 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005034
Jeff Johnson32d95a32012-09-10 13:15:23 -07005035 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005036 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005037 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005038
Jeff Johnson32d95a32012-09-10 13:15:23 -07005039 /*e.g: 2 3
5040 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005041 - it will wait 2s between consecutive scans for 3 times
5042 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005043}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005044
Jeff Johnson32d95a32012-09-10 13:15:23 -07005045/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005046 The network parameters to be sent to the PNO algorithm
5047*/
5048typedef PACKED_PRE struct PACKED_POST
5049{
5050 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005051 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005052
Jeff Johnson32d95a32012-09-10 13:15:23 -07005053 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005054 two consecutive scan procedures
5055 If the desired is for a uniform timer that fires always at the exact same
5056 interval - one single value is to be set
5057 If there is a desire for a more complex - telescopic like timer multiple
5058 values can be set - once PNO reaches the end of the array it will
5059 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005060 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005061
5062}tScanTimersType;
5063
5064typedef PACKED_PRE struct PACKED_POST {
5065
5066 /*Enable PNO*/
5067 tANI_U32 enable;
5068
5069 /*Immediate, On Suspend, On Resume*/
5070 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005071
Jeff Johnson295189b2012-06-20 16:38:30 -07005072 /*Number of networks sent for PNO*/
5073 tANI_U32 ucNetworksCount;
5074
5075 /*The networks that PNO needs to look for*/
5076 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5077
5078 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005079 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005080
5081 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005082 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005083 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5084
5085 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005086 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005087 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5088
5089} tPrefNetwListParams, * tpPrefNetwListParams;
5090
5091/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005092 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005093*/
5094typedef PACKED_PRE struct PACKED_POST
5095{
5096 tHalMsgHeader header;
5097 tPrefNetwListParams prefNetwListParams;
5098} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5099
5100
Jeff Johnson32d95a32012-09-10 13:15:23 -07005101/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005102 The network description for which PNO will have to look for
5103*/
5104typedef PACKED_PRE struct PACKED_POST
5105{
5106 /*SSID of the BSS*/
5107 tSirMacSSid ssId;
5108
5109 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005110 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005111
5112 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005113 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005114
5115 /*SSID broadcast type, normal, hidden or unknown*/
5116 tSSIDBcastType bcastNetworkType;
5117
Jeff Johnson32d95a32012-09-10 13:15:23 -07005118 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005119 0 - if all channels */
5120 tANI_U8 ucChannelCount;
5121 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5122
5123 /*Indicates the RSSI threshold for the network to be considered*/
5124 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005125}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005126
5127typedef PACKED_PRE struct PACKED_POST {
5128
5129 /*Enable PNO*/
5130 tANI_U32 enable;
5131
5132 /*Immediate, On Suspend, On Resume*/
5133 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005134
Jeff Johnson295189b2012-06-20 16:38:30 -07005135 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005136 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005137
5138 /*The networks that PNO needs to look for*/
5139 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5140
5141 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005142 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005143
5144 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005145 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005146 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5147
5148 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005149 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005150 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5151
5152} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5153
5154/*
5155 Preferred network list request new
5156*/
5157typedef PACKED_PRE struct PACKED_POST
5158{
5159 tHalMsgHeader header;
5160 tPrefNetwListParamsNew prefNetwListParams;
5161} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5162
5163/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005164 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005165*/
5166typedef PACKED_PRE struct PACKED_POST
5167{
5168 tHalMsgHeader header;
5169
Jeff Johnson32d95a32012-09-10 13:15:23 -07005170 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005171 the request and will start scanning*/
5172 tANI_U32 status;
5173} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5174
5175/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005176 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005177*/
5178typedef PACKED_PRE struct PACKED_POST {
5179
5180 /*Network that was found with the highest RSSI*/
5181 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005182
Jeff Johnson295189b2012-06-20 16:38:30 -07005183 /*Indicates the RSSI */
5184 tANI_U8 rssi;
5185
Gopichand Nakkalaa14f43b2013-05-14 00:08:53 +05305186 tANI_U16 frameLength;
5187
Jeff Johnson295189b2012-06-20 16:38:30 -07005188} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5189
5190/*
5191 Preferred network found indication
5192*/
5193typedef PACKED_PRE struct PACKED_POST {
5194
5195 tHalMsgHeader header;
5196 tPrefNetwFoundParams prefNetwFoundParams;
5197} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5198
5199
5200typedef PACKED_PRE struct PACKED_POST {
5201
5202 /*RSSI Threshold*/
5203 tANI_U8 ucRssiThreshold;
5204
5205} tRssiFilterParams, * tpRssiFilterParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005206#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5207typedef PACKED_PRE struct PACKED_POST
5208{
5209 tSirMacSSid ssId;
5210 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5211 tANI_U32 authentication;
5212 tEdType encryption;
5213 tEdType mcencryption;
5214 tANI_U8 ChannelCount;
5215 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5216}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005217
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005218typedef PACKED_PRE struct PACKED_POST
5219{
5220 tANI_U8 mdiePresent;
5221 tANI_U16 mobilityDomain;
5222}tMobilityDomainInfo;
5223
5224typedef PACKED_PRE struct PACKED_POST {
5225 eAniBoolean RoamScanOffloadEnabled;
5226 tANI_S8 LookupThreshold;
5227 tANI_U8 RoamRssiDiff;
5228 tANI_U8 ChannelCacheType;
5229 tANI_U8 Command;
5230 tANI_U8 StartScanReason;
5231 tANI_U16 NeighborScanTimerPeriod;
5232 tANI_U16 NeighborRoamScanRefreshPeriod;
5233 tANI_U16 NeighborScanChannelMinTime;
5234 tANI_U16 NeighborScanChannelMaxTime;
5235 tANI_U16 EmptyRefreshScanPeriod;
5236 tANI_U8 ValidChannelCount;
5237 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5238 eAniBoolean IsCCXEnabled;
5239
5240 tANI_U16 us24GProbeSize;
5241 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5242 tANI_U16 us5GProbeSize;
5243 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5244 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005245 tANI_U8 nProbes;
5246 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005247 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5248 tRoamNetworkType ConnectedNetwork;
5249 tMobilityDomainInfo MDID;
5250} tRoamCandidateListParams, * tpRoamCandidateListParams;
5251
5252typedef PACKED_PRE struct PACKED_POST
5253{
5254 tHalMsgHeader header;
5255 tRoamCandidateListParams RoamScanOffloadNetwListParams;
5256} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5257
5258typedef PACKED_PRE struct PACKED_POST
5259{
5260 tHalMsgHeader header;
5261
5262 /*status of the request - just to indicate that PNO has acknowledged
5263 * the request and will start scanning*/
5264 tANI_U32 status;
5265} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5266#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005267/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005268 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005269*/
5270typedef PACKED_PRE struct PACKED_POST
5271{
5272 tHalMsgHeader header;
5273 tRssiFilterParams prefRSSIFilterParams;
5274} tSetRssiFilterReq, *tpSetRssiFilterReq;
5275
5276/*
5277 Set RSSI filter resp
5278*/
5279typedef PACKED_PRE struct PACKED_POST{
5280 tHalMsgHeader header;
5281 /*status of the request */
5282 tANI_U32 status;
5283} tSetRssiFilterResp, *tpSetRssiFilterResp;
5284/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005285 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005286*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005287typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005288{
5289
5290 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005291 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005292
5293 /*Lets PNO know that host has determined the regulatory domain*/
5294 tANI_U8 b11dResolved;
5295
5296 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005297 tANI_U8 ucChannelCount;
5298 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005299
5300 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005301 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005302
5303 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005304 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005305
5306 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005307 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005308
5309 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005310 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005311
5312 /*Cb State*/
5313 ePhyChanBondState cbState;
5314
5315} tUpdateScanParams, * tpUpdateScanParams;
5316
5317/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305318 Update scan params
5319*/
5320typedef PACKED_PRE struct PACKED_POST
5321{
5322
5323 /*Host setting for 11d*/
5324 tANI_U8 b11dEnabled;
5325
5326 /*Lets PNO know that host has determined the regulatory domain*/
5327 tANI_U8 b11dResolved;
5328
5329 /*Channels on which PNO is allowed to scan*/
5330 tANI_U8 ucChannelCount;
5331 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5332
5333 /*Minimum channel time*/
5334 tANI_U16 usActiveMinChTime;
5335
5336 /*Maximum channel time*/
5337 tANI_U16 usActiveMaxChTime;
5338
5339 /*Minimum channel time*/
5340 tANI_U16 usPassiveMinChTime;
5341
5342 /*Maximum channel time*/
5343 tANI_U16 usPassiveMaxChTime;
5344
5345 /*Cb State*/
5346 ePhyChanBondState cbState;
5347
5348} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5349
5350/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005351 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005352 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005353*/
5354typedef PACKED_PRE struct PACKED_POST{
5355
5356 tHalMsgHeader header;
5357 tUpdateScanParams scanParams;
5358} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5359
5360/*
5361 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005362 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005363*/
5364typedef PACKED_PRE struct PACKED_POST{
5365
5366 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305367 tUpdateScanParamsEx scanParams;
5368} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5369
5370/*
5371 Update scan params - sent from host to PNO
5372 to be used during PNO scanning
5373*/
5374typedef PACKED_PRE struct PACKED_POST{
5375
5376 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005377
5378 /*status of the request */
5379 tANI_U32 status;
5380
5381} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5382
5383/*---------------------------------------------------------------------------
5384 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5385 *--------------------------------------------------------------------------*/
5386typedef PACKED_PRE struct PACKED_POST
5387{
5388 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5389 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5390 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5391 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5392} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5393
5394typedef PACKED_PRE struct PACKED_POST
5395{
5396 tHalMsgHeader header;
5397 tHalTxPerTrackingReqParam txPerTrackingParams;
5398} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5399
5400/*---------------------------------------------------------------------------
5401 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5402 *--------------------------------------------------------------------------*/
5403typedef PACKED_PRE struct PACKED_POST
5404{
5405 /* success or failure */
5406 tANI_U32 status;
5407} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5408
5409typedef PACKED_PRE struct PACKED_POST
5410{
5411 tHalMsgHeader header;
5412 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5413} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5414
5415/*---------------------------------------------------------------------------
5416 * WLAN_HAL_TX_PER_HIT_IND
5417 *--------------------------------------------------------------------------*/
5418typedef PACKED_PRE struct PACKED_POST
5419{
5420 tHalMsgHeader header;
5421}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5422
5423/*---------------------------------------------------------------------------
5424 *******************Packet Filtering Definitions Begin*******************
5425 *--------------------------------------------------------------------------*/
5426#define HAL_PROTOCOL_DATA_LEN 8
5427#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5428#define HAL_MAX_NUM_FILTERS 20
5429#define HAL_MAX_CMP_PER_FILTER 10
5430
5431typedef enum
5432{
5433 HAL_RCV_FILTER_TYPE_INVALID,
5434 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5435 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5436 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5437}tHalReceivePacketFilterType;
5438
Jeff Johnson32d95a32012-09-10 13:15:23 -07005439typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005440{
5441 HAL_FILTER_PROTO_TYPE_INVALID,
5442 HAL_FILTER_PROTO_TYPE_MAC,
5443 HAL_FILTER_PROTO_TYPE_ARP,
5444 HAL_FILTER_PROTO_TYPE_IPV4,
5445 HAL_FILTER_PROTO_TYPE_IPV6,
5446 HAL_FILTER_PROTO_TYPE_UDP,
5447 HAL_FILTER_PROTO_TYPE_MAX
5448}tHalRcvPktFltProtocolType;
5449
Jeff Johnson32d95a32012-09-10 13:15:23 -07005450typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005451{
5452 HAL_FILTER_CMP_TYPE_INVALID,
5453 HAL_FILTER_CMP_TYPE_EQUAL,
5454 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5455 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5456 HAL_FILTER_CMP_TYPE_MAX
5457}tHalRcvPktFltCmpFlagType;
5458
Jeff Johnson32d95a32012-09-10 13:15:23 -07005459typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005460{
5461 tANI_U8 protocolLayer;
5462 tANI_U8 cmpFlag;
5463 tANI_U16 dataLength; /* Length of the data to compare */
5464 tANI_U8 dataOffset; /* from start of the respective frame header */
5465 tANI_U8 reserved; /* Reserved field */
5466 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5467 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5468}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5469
5470typedef PACKED_PRE struct PACKED_POST
5471{
5472 tANI_U8 filterId;
5473 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005474 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005475 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005476 tHalRcvPktFilterParams paramsData[1];
5477}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5478
5479typedef PACKED_PRE struct PACKED_POST
5480{
Jeff Johnsone7245742012-09-05 17:12:55 -07005481 tANI_U8 filterId;
5482 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005483 tANI_U8 numParams;
5484 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005485 tANI_U8 bssIdx;
5486 tHalRcvPktFilterParams paramsData[1];
5487}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5488
5489typedef PACKED_PRE struct PACKED_POST
5490{
Jeff Johnson295189b2012-06-20 16:38:30 -07005491 tHalMsgHeader header;
5492 tHalRcvPktFilterCfgType pktFilterCfg;
5493} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5494
Jeff Johnsone7245742012-09-05 17:12:55 -07005495typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005496{
5497 tANI_U8 dataOffset; /* from start of the respective frame header */
5498 tANI_U32 cMulticastAddr;
5499 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005500 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005501} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5502
5503typedef PACKED_PRE struct PACKED_POST
5504{
5505 /* success or failure */
5506 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005507 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005508} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5509
5510typedef PACKED_PRE struct PACKED_POST
5511{
5512 tHalMsgHeader header;
5513 tHalSetPktFilterRspParams pktFilterRspParams;
5514} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5515
Jeff Johnsone7245742012-09-05 17:12:55 -07005516typedef PACKED_PRE struct PACKED_POST
5517{
5518 tANI_U8 bssIdx;
5519} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005520
5521typedef PACKED_PRE struct PACKED_POST
5522{
5523 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005524 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005525} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5526
Jeff Johnsone7245742012-09-05 17:12:55 -07005527
Jeff Johnson295189b2012-06-20 16:38:30 -07005528typedef PACKED_PRE struct PACKED_POST
5529{
5530 tANI_U8 filterId;
5531 tANI_U32 matchCnt;
5532} tHalRcvFltPktMatchCnt;
5533typedef PACKED_PRE struct PACKED_POST
5534{
5535 /* Success or Failure */
5536 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005537 tANI_U32 matchCnt;
5538 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005539 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005540} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5541
5542typedef PACKED_PRE struct PACKED_POST
5543{
5544 tHalMsgHeader header;
5545 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5546} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5547
5548typedef PACKED_PRE struct PACKED_POST
5549{
5550 tANI_U32 status; /* only valid for response message */
5551 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005552 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005553}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5554
5555typedef PACKED_PRE struct PACKED_POST
5556{
5557 tHalMsgHeader header;
5558 tHalRcvFltPktClearParam filterClearParam;
5559} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5560
5561typedef PACKED_PRE struct PACKED_POST
5562{
5563 tHalMsgHeader header;
5564 tHalRcvFltPktClearParam filterClearParam;
5565} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5566
5567typedef PACKED_PRE struct PACKED_POST
5568{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005569 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005570 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005571}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5572
5573typedef PACKED_PRE struct PACKED_POST
5574{
5575 tHalMsgHeader header;
5576 tHalRcvFltMcAddrListType mcAddrList;
5577} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5578
5579typedef PACKED_PRE struct PACKED_POST
5580{
5581 tHalMsgHeader header;
5582 tHalRcvFltPktSetMcListRspType rspParam;
5583} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5584
5585
5586/*---------------------------------------------------------------------------
5587 *******************Packet Filtering Definitions End*******************
5588 *--------------------------------------------------------------------------*/
5589
5590typedef PACKED_PRE struct PACKED_POST
5591{
5592 /* Ignore DTIM */
5593 tANI_U32 uIgnoreDTIM;
5594
5595 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005596 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005597
5598 /* Listen Interval */
5599 tANI_U32 uListenInterval;
5600
5601 /* Broadcast Multicast Filter */
5602 tANI_U32 uBcastMcastFilter;
5603
5604 /* Beacon Early Termination */
5605 tANI_U32 uEnableBET;
5606
5607 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005608 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07005609
5610 /* MAX LI for modulated DTIM */
5611 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07005612}tSetPowerParamsType, *tpSetPowerParamsType;
5613
5614typedef PACKED_PRE struct PACKED_POST
5615{
5616 tHalMsgHeader header;
5617 tSetPowerParamsType powerParams;
5618} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5619
5620typedef PACKED_PRE struct PACKED_POST{
5621
5622 tHalMsgHeader header;
5623
5624 /*status of the request */
5625 tANI_U32 status;
5626
5627} tSetPowerParamsResp, *tpSetPowerParamsResp;
5628
5629/*---------------------------------------------------------------------------
5630 ****************Capability bitmap exchange definitions and macros starts*************
5631 *--------------------------------------------------------------------------*/
5632
Anand Kumar012623a2013-01-11 17:00:00 -08005633typedef enum {
5634 MCC = 0,
5635 P2P = 1,
5636 DOT11AC = 2,
5637 SLM_SESSIONIZATION = 3,
5638 DOT11AC_OPMODE = 4,
5639 SAP32STA = 5,
5640 TDLS = 6,
5641 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5642 WLANACTIVE_OFFLOAD = 8,
5643 BEACON_OFFLOAD = 9,
5644 SCAN_OFFLOAD = 10,
5645 ROAM_OFFLOAD = 11,
5646 BCN_MISS_OFFLOAD = 12,
5647 STA_POWERSAVE = 13,
5648 STA_ADVANCED_PWRSAVE = 14,
5649 AP_UAPSD = 15,
5650 AP_DFS = 16,
5651 BLOCKACK = 17,
5652 PHY_ERR = 18,
5653 BCN_FILTER = 19,
5654 RTT = 20,
5655 RATECTRL = 21,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005656 WOW = 22,
5657 WLAN_ROAM_SCAN_OFFLOAD = 23,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -07005658 //MAX_FEATURE_SUPPORTED = 128
Anand Kumar012623a2013-01-11 17:00:00 -08005659} placeHolderInCapBitmap;
5660
Jeff Johnson295189b2012-06-20 16:38:30 -07005661typedef PACKED_PRE struct PACKED_POST{
5662
5663 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005664} tWlanFeatCaps, *tpWlanFeatCaps;
5665
5666typedef PACKED_PRE struct PACKED_POST{
5667
Jeff Johnson32d95a32012-09-10 13:15:23 -07005668 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005669 tWlanFeatCaps wlanFeatCaps;
5670
5671} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5672
Jeff Johnsone7245742012-09-05 17:12:55 -07005673#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5674#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005675#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005676#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005677#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5678#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
5679#endif
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005680
Jeff Johnsone7245742012-09-05 17:12:55 -07005681tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5682
Jeff Johnson295189b2012-06-20 16:38:30 -07005683#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005684 if ((b)<=127) { \
5685 arr_index = (b)/32; \
5686 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005687 (a)->featCaps[arr_index] |= (1<<bit_index); \
5688 } \
5689 }
5690#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005691 if ((b)<=127) { \
5692 arr_index = (b)/32; \
5693 bit_index = (b)%32; \
5694 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005695 } \
5696 }
5697#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005698 if ((b)<=127) { \
5699 arr_index = (b)/32; \
5700 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005701 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005702 } \
5703 }
5704
5705/*---------------------------------------------------------------------------
5706 * WLAN_HAL_WAKE_REASON_IND
5707 *--------------------------------------------------------------------------*/
5708
5709/* status codes to help debug rekey failures */
5710typedef enum
5711{
5712 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5713 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5714 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5715 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5716 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5717 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5718 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5719 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5720 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5721 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5722
5723 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5724} tGTKRekeyStatus;
5725
5726/* wake reason types */
5727typedef enum
5728{
5729 WLAN_HAL_WAKE_REASON_NONE = 0,
5730 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5731 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5732 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5733 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5734 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5735 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5736 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5737} tWakeReasonType;
5738
5739/*
5740 Wake Packet which is saved at tWakeReasonParams.DataStart
5741 This data is sent for any wake reasons that involve a packet-based wakeup :
5742
5743 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5744 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5745 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5746 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5747 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5748
5749 The information is provided to the host for auditing and debug purposes
5750
5751*/
5752
5753/*
5754 Wake reason indication parameters
5755*/
5756typedef PACKED_PRE struct PACKED_POST
5757{
5758 uint32 ulReason; /* see tWakeReasonType */
5759 uint32 ulReasonArg; /* argument specific to the reason type */
5760 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5761 HAL truncates the data (i.e. data packets) this length
5762 will be less than the actual length */
5763 uint32 ulActualDataLen; /* actual length of data */
5764 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5765 see specific wake type */
5766} tWakeReasonParams, *tpWakeReasonParams;
5767
5768/*
5769 Wake reason indication
5770*/
5771typedef PACKED_PRE struct PACKED_POST
5772{
5773 tHalMsgHeader header;
5774 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005775 tANI_U32 uBssIdx : 8;
5776 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005777} tHalWakeReasonInd, *tpHalWakeReasonInd;
5778
5779/*---------------------------------------------------------------------------
5780* WLAN_HAL_GTK_OFFLOAD_REQ
5781*--------------------------------------------------------------------------*/
5782
5783#define HAL_GTK_KEK_BYTES 16
5784#define HAL_GTK_KCK_BYTES 16
5785
5786#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5787
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005788#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5789
Jeff Johnson295189b2012-06-20 16:38:30 -07005790typedef PACKED_PRE struct PACKED_POST
5791{
5792 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005793 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005794 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5795 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005796 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005797} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5798
5799typedef PACKED_PRE struct PACKED_POST
5800{
5801 tHalMsgHeader header;
5802 tHalGtkOffloadReqParams gtkOffloadReqParams;
5803} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5804
5805/*---------------------------------------------------------------------------
5806* WLAN_HAL_GTK_OFFLOAD_RSP
5807*--------------------------------------------------------------------------*/
5808typedef PACKED_PRE struct PACKED_POST
5809{
5810 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005811 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005812} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5813
5814typedef PACKED_PRE struct PACKED_POST
5815{
5816 tHalMsgHeader header;
5817 tHalGtkOffloadRspParams gtkOffloadRspParams;
5818} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5819
5820
5821/*---------------------------------------------------------------------------
5822* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5823*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005824typedef PACKED_PRE struct PACKED_POST
5825{
5826 tANI_U8 bssIdx;
5827
5828} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005829
5830typedef PACKED_PRE struct PACKED_POST
5831{
5832 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005833 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005834} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5835
5836/*---------------------------------------------------------------------------
5837* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5838*--------------------------------------------------------------------------*/
5839typedef PACKED_PRE struct PACKED_POST
5840{
5841 tANI_U32 ulStatus; /* success or failure */
5842 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5843 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5844 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5845 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5846 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005847 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005848} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5849
5850typedef PACKED_PRE struct PACKED_POST
5851{
5852 tHalMsgHeader header;
5853 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5854} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5855
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005856/*---------------------------------------------------------------------------
5857* WLAN_HAL_DHCP_IND
5858*--------------------------------------------------------------------------*/
5859typedef PACKED_PRE struct PACKED_POST
5860{
5861 /*Indicates the device mode which indicates about the DHCP activity */
5862 tANI_U8 device_mode;
5863 tSirMacAddr macAddr;
5864} tDHCPInfo, *tpDHCPInfo;
5865
5866typedef PACKED_PRE struct PACKED_POST
5867{
5868 tHalMsgHeader header;
5869 tANI_U32 status; /* success or failure */
5870} tDHCPIndStatus, *tpDHCPIndstatus;
5871
Jeff Johnson295189b2012-06-20 16:38:30 -07005872/*
5873 Thermal Mitigation mode of operation.
5874 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5875 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5876 reducing transmit power
5877 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5878*/
5879typedef enum
5880{
5881 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5882 HAL_THERMAL_MITIGATION_MODE_0,
5883 HAL_THERMAL_MITIGATION_MODE_1,
5884 HAL_THERMAL_MITIGATION_MODE_2,
5885 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5886}tHalThermalMitigationModeType;
5887//typedef tANI_S16 tHalThermalMitigationModeType;
5888
5889/*
5890 Thermal Mitigation level.
5891 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5892 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5893
5894 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5895 level indicates normal mode of operation
5896 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5897 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5898 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5899 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5900*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005901typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005902{
5903 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5904 HAL_THERMAL_MITIGATION_LEVEL_0,
5905 HAL_THERMAL_MITIGATION_LEVEL_1,
5906 HAL_THERMAL_MITIGATION_LEVEL_2,
5907 HAL_THERMAL_MITIGATION_LEVEL_3,
5908 HAL_THERMAL_MITIGATION_LEVEL_4,
5909 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5910}tHalThermalMitigationLevelType;
5911//typedef tANI_S16 tHalThermalMitigationLevelType;
5912
5913typedef PACKED_PRE struct PACKED_POST
5914{
5915 /* Thermal Mitigation Operation Mode */
5916 tHalThermalMitigationModeType thermalMitMode;
5917
5918 /* Thermal Mitigation Level */
5919 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005920
Jeff Johnson295189b2012-06-20 16:38:30 -07005921}tSetThermalMitgationType, *tpSetThermalMitgationType;
5922
5923/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5924typedef PACKED_PRE struct PACKED_POST
5925{
5926 tHalMsgHeader header;
5927 tSetThermalMitgationType thermalMitParams;
5928} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5929
5930typedef PACKED_PRE struct PACKED_POST{
5931
5932 tHalMsgHeader header;
5933
5934 /*status of the request */
5935 tANI_U32 status;
5936
5937} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5938
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08005939/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
5940provided to FW from Host via periodic messages */
5941typedef PACKED_PRE struct PACKED_POST {
5942 /* TX stats */
5943 uint32 txBytesPushed;
5944 uint32 txPacketsPushed;
5945
5946 /* RX stats */
5947 uint32 rxBytesRcvd;
5948 uint32 rxPacketsRcvd;
5949 uint32 rxTimeTotal;
5950} tStaStatsClassB, *tpStaStatsClassB;
5951
5952typedef PACKED_PRE struct PACKED_POST {
5953
5954 /* Duration over which this stats was collected */
5955 tANI_U32 duration;
5956
5957 /* Per STA Stats */
5958 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
5959} tStatsClassBIndParams, *tpStatsClassBIndParams;
5960
5961typedef PACKED_PRE struct PACKED_POST {
5962
5963 tHalMsgHeader header;
5964
5965 /* Class B Stats */
5966 tStatsClassBIndParams statsClassBIndParams;
5967} tStatsClassBInd, *tpStatsClassBInd;
5968
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305969/*Wifi Proximity paramters in AP mode*/
5970#ifdef FEATURE_WIFI_PROXIMITY
5971
5972typedef PACKED_PRE struct PACKED_POST{
5973
5974 tANI_U8 wifiProximityChannel;
5975 tANI_U32 wifiProximityDuration;
5976 tANI_U32 wifiProximityInterval;
5977 tANI_U32 wifiProximityMode;
5978 tANI_U32 wifiProximityStatus;
5979 tSirMacAddr bssId;
5980 tSirMacSSid ssId;
5981
5982} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
5983
5984typedef PACKED_PRE struct PACKED_POST
5985{
5986 tHalMsgHeader header;
5987
5988 tSetWifiProximityReqParam wifiProximityReqParams;
5989
5990}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
5991
5992/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
5993typedef PACKED_PRE struct PACKED_POST{
5994
5995 tHalMsgHeader header;
5996
5997 /*status of the request */
5998 tANI_U32 status;
5999
6000} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6001
6002#endif
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306003#ifdef FEATURE_WLAN_TDLS
6004/*---------------------------------------------------------------------------
6005 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6006 *-------------------------------------------------------------------------*/
6007typedef PACKED_PRE struct PACKED_POST
6008{
6009 /*STA Index*/
6010 tANI_U16 staIdx;
6011
6012 /* if this is 1, self is initiator and peer is reponder */
6013 tANI_U8 bIsResponder;
6014
6015 /* QoS Info */
6016 tANI_U8 acVOUAPSDFlag:1;
6017 tANI_U8 acVIUAPSDFlag:1;
6018 tANI_U8 acBKUAPSDFlag:1;
6019 tANI_U8 acBEUAPSDFlag:1;
6020 tANI_U8 aAck:1;
6021 tANI_U8 maxServicePeriodLength:2;
6022 tANI_U8 moreDataAck:1;
6023
6024 /*TDLS Peer U-APSD Buffer STA Support*/
6025 tANI_U8 TPUBufferStaSupport;
6026
6027}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6028
6029typedef PACKED_PRE struct PACKED_POST
6030{
6031 tHalMsgHeader header;
6032 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6033} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6034
6035/*---------------------------------------------------------------------------
6036 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6037 *-------------------------------------------------------------------------*/
6038
6039typedef PACKED_PRE struct PACKED_POST
6040{
6041 tANI_U32 status;
6042
6043 /*STA Index*/
6044 tANI_U16 staIdx;
6045} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6046
6047typedef PACKED_PRE struct PACKED_POST
6048{
6049 tHalMsgHeader header;
6050 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6051} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6052
6053/*---------------------------------------------------------------------------
6054 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6055 *-------------------------------------------------------------------------*/
6056typedef PACKED_PRE struct PACKED_POST
6057{
6058 /*STA Index*/
6059 tANI_U16 staIdx;
6060}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6061
6062typedef PACKED_PRE struct PACKED_POST
6063{
6064 tHalMsgHeader header;
6065 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6066} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6067
6068/*---------------------------------------------------------------------------
6069 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6070 *-------------------------------------------------------------------------*/
6071
6072typedef PACKED_PRE struct PACKED_POST
6073{
6074 tANI_U32 status;
6075
6076 /*STA Index*/
6077 tANI_U16 staIdx;
6078} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6079
6080typedef PACKED_PRE struct PACKED_POST
6081{
6082 tHalMsgHeader header;
6083 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6084} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6085
6086/*---------------------------------------------------------------------------
6087 *WLAN_HAL_TDLS_IND
6088 *--------------------------------------------------------------------------*/
6089
6090typedef PACKED_PRE struct PACKED_POST
6091{
6092 tANI_U16 assocId;
6093 tANI_U16 staIdx;
6094 tANI_U16 status;
6095 tANI_U16 reasonCode;
6096}tTdlsIndParams, *tpTdlsIndParams;
6097
6098
6099typedef PACKED_PRE struct PACKED_POST
6100{
6101 tHalMsgHeader header;
6102 tTdlsIndParams tdlsIndParams;
6103}tTdlsIndMsg, *tpTdlsIndMsg;
6104
6105#endif
6106
Jeff Johnson295189b2012-06-20 16:38:30 -07006107#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6108#pragma pack(pop)
6109#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6110#else
6111#endif
6112
6113#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006114