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