blob: 176e622e37475bc1f03153cbe23e598bbd29aa8a [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,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700389 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530390
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800391 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700392}tHalHostMsgType;
393
Jeff Johnsone7245742012-09-05 17:12:55 -0700394/* Enumeration for Version */
395typedef enum
396{
397 WLAN_HAL_MSG_VERSION0 = 0,
398 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800399 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
400 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700401}tHalHostMsgVersion;
402
Jeff Johnson295189b2012-06-20 16:38:30 -0700403/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700404typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700405{
406 eANI_BOOLEAN_FALSE = 0,
407 eANI_BOOLEAN_TRUE,
408 eANI_BOOLEAN_OFF = 0,
409 eANI_BOOLEAN_ON = 1,
410 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
411} eAniBoolean;
412
413typedef enum
414{
415 eDRIVER_TYPE_PRODUCTION = 0,
416 eDRIVER_TYPE_MFG = 1,
417 eDRIVER_TYPE_DVT = 2,
418 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
419} tDriverType;
420
421typedef enum
422{
423 HAL_STOP_TYPE_SYS_RESET,
424 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
425 HAL_STOP_TYPE_RF_KILL,
426 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
427}tHalStopType;
428
429typedef enum
430{
431 eHAL_SYS_MODE_NORMAL,
432 eHAL_SYS_MODE_LEARN,
433 eHAL_SYS_MODE_SCAN,
434 eHAL_SYS_MODE_PROMISC,
435 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700436 eHAL_SYS_MODE_ROAM_SCAN,
437 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700438 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700439 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
440} eHalSysMode;
441
442typedef enum
443{
444 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
445 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
446 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
447 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700448#ifdef WLAN_FEATURE_11AC
449 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
450 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
451 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
452 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
453 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
454 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
455 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
456#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700457 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
458}ePhyChanBondState;
459
460// Spatial Multiplexing(SM) Power Save mode
461typedef enum eSirMacHTMIMOPowerSaveState
462{
463 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
464 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
465 eSIR_HT_MIMO_PS_NA = 2, // reserved
466 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
467 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
468} tSirMacHTMIMOPowerSaveState;
469
470/* each station added has a rate mode which specifies the sta attributes */
471typedef enum eStaRateMode {
472 eSTA_TAURUS = 0,
473 eSTA_TITAN,
474 eSTA_POLARIS,
475 eSTA_11b,
476 eSTA_11bg,
477 eSTA_11a,
478 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700479#ifdef WLAN_FEATURE_11AC
480 eSTA_11ac,
481#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700482 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
483} tStaRateMode, *tpStaRateMode;
484
485#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
486#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
487#define SIR_NUM_POLARIS_RATES 3 //72,96,108
488
489#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
490
491
492typedef enum eSirBssType
493{
494 eSIR_INFRASTRUCTURE_MODE,
495 eSIR_INFRA_AP_MODE, //Added for softAP support
496 eSIR_IBSS_MODE,
497 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
498 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
499 eSIR_AUTO_MODE,
500 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
501} tSirBssType;
502
503typedef enum eSirNwType
504{
505 eSIR_11A_NW_TYPE,
506 eSIR_11B_NW_TYPE,
507 eSIR_11G_NW_TYPE,
508 eSIR_11N_NW_TYPE,
509 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
510} tSirNwType;
511
512typedef tANI_U16 tSirMacBeaconInterval;
513
514#define SIR_MAC_RATESET_EID_MAX 12
515
516typedef enum eSirMacHTOperatingMode
517{
518 eSIR_HT_OP_MODE_PURE, // No Protection
519 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
520 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
521 eSIR_HT_OP_MODE_MIXED, // Protection is required
522 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
523} tSirMacHTOperatingMode;
524
Jeff Johnson295189b2012-06-20 16:38:30 -0700525/// Encryption type enum used with peer
526typedef enum eAniEdType
527{
528 eSIR_ED_NONE,
529 eSIR_ED_WEP40,
530 eSIR_ED_WEP104,
531 eSIR_ED_TKIP,
532 eSIR_ED_CCMP,
533 eSIR_ED_WPI,
534 eSIR_ED_AES_128_CMAC,
535 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
536} tAniEdType;
537
538#define WLAN_MAX_KEY_RSC_LEN 16
539#define WLAN_WAPI_KEY_RSC_LEN 16
540
541/// MAX key length when ULA is used
542#define SIR_MAC_MAX_KEY_LENGTH 32
543#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
544
545/// Enum to specify whether key is used
546/// for TX only, RX only or both
547typedef enum eAniKeyDirection
548{
549 eSIR_TX_ONLY,
550 eSIR_RX_ONLY,
551 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700552 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700553 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
554} tAniKeyDirection;
555
556typedef enum eAniWepType
557{
558 eSIR_WEP_STATIC,
559 eSIR_WEP_DYNAMIC,
560 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
561} tAniWepType;
562
563typedef enum eSriLinkState {
564
565 eSIR_LINK_IDLE_STATE = 0,
566 eSIR_LINK_PREASSOC_STATE = 1,
567 eSIR_LINK_POSTASSOC_STATE = 2,
568 eSIR_LINK_AP_STATE = 3,
569 eSIR_LINK_IBSS_STATE = 4,
570
571 /* BT-AMP Case */
572 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
573 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
574 eSIR_LINK_BTAMP_AP_STATE = 7,
575 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700576
Jeff Johnson295189b2012-06-20 16:38:30 -0700577 /* Reserved for HAL Internal Use */
578 eSIR_LINK_LEARN_STATE = 9,
579 eSIR_LINK_SCAN_STATE = 10,
580 eSIR_LINK_FINISH_SCAN_STATE = 11,
581 eSIR_LINK_INIT_CAL_STATE = 12,
582 eSIR_LINK_FINISH_CAL_STATE = 13,
583#ifdef WLAN_FEATURE_P2P
584 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530585 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700586#endif
587 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
588} tSirLinkState;
589
590typedef enum
591{
592 HAL_SUMMARY_STATS_INFO = 0x00000001,
593 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
594 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
595 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
596 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
597 HAL_PER_STA_STATS_INFO = 0x00000020
598}eHalStatsMask;
599
600/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700601typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700602{
603 BTAMP_EVENT_CONNECTION_START,
604 BTAMP_EVENT_CONNECTION_STOP,
605 BTAMP_EVENT_CONNECTION_TERMINATED,
606 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
607} tBtAmpEventType;
608
609//***************************************************************
610
611
612/*******************PE Statistics*************************/
613typedef enum
614{
615 PE_SUMMARY_STATS_INFO = 0x00000001,
616 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
617 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
618 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
619 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
620 PE_PER_STA_STATS_INFO = 0x00000020,
621 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
622}ePEStatsMask;
623
624/*---------------------------------------------------------------------------
625 Message definitons - All the messages below need to be packed
626 ---------------------------------------------------------------------------*/
627
628#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
629#pragma pack(push, 1)
630#elif defined(__ANI_COMPILER_PRAGMA_PACK)
631#pragma pack(1)
632#else
633#endif
634
635/// Definition for HAL API Version.
636typedef PACKED_PRE struct PACKED_POST
637{
638 tANI_U8 revision;
639 tANI_U8 version;
640 tANI_U8 minor;
641 tANI_U8 major;
642} tWcnssWlanVersion, *tpWcnssWlanVersion;
643
644/// Definition for Encryption Keys
645typedef PACKED_PRE struct PACKED_POST
646{
647 tANI_U8 keyId;
648 tANI_U8 unicast; // 0 for multicast
649 tAniKeyDirection keyDirection;
650 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
651 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
652 tANI_U16 keyLength;
653 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
654} tSirKeys, *tpSirKeys;
655
656
657//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
658typedef PACKED_PRE struct PACKED_POST
659{
660 /*STA Index*/
661 tANI_U16 staIdx;
662
663 /*Encryption Type used with peer*/
664 tAniEdType encType;
665
666 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700667 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700668
669 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
670 tANI_U8 defWEPIdx;
671
Jeff Johnson295189b2012-06-20 16:38:30 -0700672 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700673 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
674
Jeff Johnson295189b2012-06-20 16:38:30 -0700675 /*Control for Replay Count, 1= Single TID based replay count on Tx
676 0 = Per TID based replay count on TX */
677 tANI_U8 singleTidRc;
678
679} tSetStaKeyParams, *tpSetStaKeyParams;
680
681
682
683/* 4-byte control message header used by HAL*/
684typedef PACKED_PRE struct PACKED_POST
685{
Jeff Johnsone7245742012-09-05 17:12:55 -0700686 tHalHostMsgType msgType:16;
687 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700688 tANI_U32 msgLen;
689} tHalMsgHeader, *tpHalMsgHeader;
690
691/* Config format required by HAL for each CFG item*/
692typedef PACKED_PRE struct PACKED_POST
693{
694 /* Cfg Id. The Id required by HAL is exported by HAL
695 * in shared header file between UMAC and HAL.*/
696 tANI_U16 uCfgId;
697
Jeff Johnson32d95a32012-09-10 13:15:23 -0700698 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700699 * in the TLV format.*/
700 tANI_U16 uCfgLen;
701
702 /* Padding bytes for unaligned address's */
703 tANI_U16 uCfgPadBytes;
704
705 /* Reserve bytes for making cfgVal to align address */
706 tANI_U16 uCfgReserve;
707
708 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
709 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
710} tHalCfg, *tpHalCfg;
711
712/*---------------------------------------------------------------------------
713 WLAN_HAL_START_REQ
714---------------------------------------------------------------------------*/
715
716typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
717{
718 /* Drive Type - Production or FTM etc */
719 tDriverType driverType;
720
721 /*Length of the config buffer*/
722 tANI_U32 uConfigBufferLen;
723
Jeff Johnson32d95a32012-09-10 13:15:23 -0700724 /* Following this there is a TLV formatted buffer of length
725 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700726 * The TLV is expected to be formatted like this:
727 * 0 15 31 31+CFG_LEN-1 length-1
728 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
729 */
730} tHalMacStartParameters, *tpHalMacStartParameters;
731
732typedef PACKED_PRE struct PACKED_POST
733{
734 /* Note: The length specified in tHalMacStartReqMsg messages should be
735 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
736 tHalMsgHeader header;
737 tHalMacStartParameters startReqParams;
738} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
739
740/*---------------------------------------------------------------------------
741 WLAN_HAL_START_RSP
742---------------------------------------------------------------------------*/
743
744typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
745{
746 /*success or failure */
747 tANI_U16 status;
748
749 /*Max number of STA supported by the device*/
750 tANI_U8 ucMaxStations;
751
752 /*Max number of BSS supported by the device*/
753 tANI_U8 ucMaxBssids;
754
755 /*API Version */
756 tWcnssWlanVersion wcnssWlanVersion;
757
758 /*CRM build information */
759 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
760
761 /*hardware/chipset/misc version information */
762 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
763
764} tHalMacStartRspParams, *tpHalMacStartRspParams;
765
766typedef PACKED_PRE struct PACKED_POST
767{
768 tHalMsgHeader header;
769 tHalMacStartRspParams startRspParams;
770} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
771
772/*---------------------------------------------------------------------------
773 WLAN_HAL_STOP_REQ
774---------------------------------------------------------------------------*/
775
776typedef PACKED_PRE struct PACKED_POST
777{
778 /*The reason for which the device is being stopped*/
779 tHalStopType reason;
780
781}tHalMacStopReqParams, *tpHalMacStopReqParams;
782
783typedef PACKED_PRE struct PACKED_POST
784{
785 tHalMsgHeader header;
786 tHalMacStopReqParams stopReqParams;
787} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
788
789/*---------------------------------------------------------------------------
790 WLAN_HAL_STOP_RSP
791---------------------------------------------------------------------------*/
792
793typedef PACKED_PRE struct PACKED_POST
794{
795 /*success or failure */
796 tANI_U32 status;
797
798}tHalMacStopRspParams, *tpHalMacStopRspParams;
799
800typedef PACKED_PRE struct PACKED_POST
801{
802 tHalMsgHeader header;
803 tHalMacStopRspParams stopRspParams;
804} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
805
806/*---------------------------------------------------------------------------
807 WLAN_HAL_UPDATE_CFG_REQ
808---------------------------------------------------------------------------*/
809
810typedef PACKED_PRE struct PACKED_POST
811{
812 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
813 tANI_U32 uConfigBufferLen;
814
Jeff Johnson32d95a32012-09-10 13:15:23 -0700815 /* Following this there is a TLV formatted buffer of length
816 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700817 * The TLV is expected to be formatted like this:
818 * 0 15 31 31+CFG_LEN-1 length-1
819 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
820 */
821} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
822
823typedef PACKED_PRE struct PACKED_POST
824{
825 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
826 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
827 tHalMsgHeader header;
828 tHalUpdateCfgReqParams updateCfgReqParams;
829} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
830
831/*---------------------------------------------------------------------------
832 WLAN_HAL_UPDATE_CFG_RSP
833---------------------------------------------------------------------------*/
834
835typedef PACKED_PRE struct PACKED_POST
836{
837 /* success or failure */
838 tANI_U32 status;
839
840}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
841
842typedef PACKED_PRE struct PACKED_POST
843{
844 tHalMsgHeader header;
845 tHalUpdateCfgRspParams updateCfgRspParams;
846} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
847
848/*---------------------------------------------------------------------------
849 WLAN_HAL_INIT_SCAN_REQ
850---------------------------------------------------------------------------*/
851
852/// Frame control field format (2 bytes)
853typedef __ani_attr_pre_packed struct sSirMacFrameCtl
854{
855
856#ifndef ANI_LITTLE_BIT_ENDIAN
857
858 tANI_U8 subType :4;
859 tANI_U8 type :2;
860 tANI_U8 protVer :2;
861
862 tANI_U8 order :1;
863 tANI_U8 wep :1;
864 tANI_U8 moreData :1;
865 tANI_U8 powerMgmt :1;
866 tANI_U8 retry :1;
867 tANI_U8 moreFrag :1;
868 tANI_U8 fromDS :1;
869 tANI_U8 toDS :1;
870
871#else
872
873 tANI_U8 protVer :2;
874 tANI_U8 type :2;
875 tANI_U8 subType :4;
876
877 tANI_U8 toDS :1;
878 tANI_U8 fromDS :1;
879 tANI_U8 moreFrag :1;
880 tANI_U8 retry :1;
881 tANI_U8 powerMgmt :1;
882 tANI_U8 moreData :1;
883 tANI_U8 wep :1;
884 tANI_U8 order :1;
885
886#endif
887
888} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
889
890/// Sequence control field
891typedef __ani_attr_pre_packed struct sSirMacSeqCtl
892{
893 tANI_U8 fragNum : 4;
894 tANI_U8 seqNumLo : 4;
895 tANI_U8 seqNumHi : 8;
896} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
897
898/// Management header format
899typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
900{
901 tSirMacFrameCtl fc;
902 tANI_U8 durationLo;
903 tANI_U8 durationHi;
904 tANI_U8 da[6];
905 tANI_U8 sa[6];
906 tANI_U8 bssId[6];
907 tSirMacSeqCtl seqControl;
908} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
909
910/// Scan Entry to hold active BSS idx's
911typedef __ani_attr_pre_packed struct sSirScanEntry
912{
913 tANI_U8 bssIdx[HAL_NUM_BSSID];
914 tANI_U8 activeBSScnt;
915}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
916
917typedef PACKED_PRE struct PACKED_POST {
918
919 /*LEARN - AP Role
920 SCAN - STA Role*/
921 eHalSysMode scanMode;
922
923 /*BSSID of the BSS*/
924 tSirMacAddr bssid;
925
926 /*Whether BSS needs to be notified*/
927 tANI_U8 notifyBss;
928
929 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
930 CTS to Self). Must always be a valid frame type.*/
931 tANI_U8 frameType;
932
933 /*UMAC has the option of passing the MAC frame to be used for notifying
934 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
935 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
936 frameType.*/
937 tANI_U8 frameLength;
938
Jeff Johnson32d95a32012-09-10 13:15:23 -0700939 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700940 is non-zero. */
941 tSirMacMgmtHdr macMgmtHdr;
942
943 /*Entry to hold number of active BSS idx's*/
944 tSirScanEntry scanEntry;
945
946} tInitScanParams, * tpInitScanParams;
947
948typedef PACKED_PRE struct PACKED_POST
949{
950 tHalMsgHeader header;
951 tInitScanParams initScanParams;
952} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
953
954typedef PACKED_PRE struct PACKED_POST {
955
956 /*LEARN - AP Role
957 SCAN - STA Role*/
958 eHalSysMode scanMode;
959
960 /*BSSID of the BSS*/
961 tSirMacAddr bssid;
962
963 /*Whether BSS needs to be notified*/
964 tANI_U8 notifyBss;
965
966 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
967 CTS to Self). Must always be a valid frame type.*/
968 tANI_U8 frameType;
969
970 /*UMAC has the option of passing the MAC frame to be used for notifying
971 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
972 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
973 frameType.*/
974 tANI_U8 frameLength;
975
Jeff Johnson32d95a32012-09-10 13:15:23 -0700976 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700977 is non-zero. */
978 tSirMacMgmtHdr macMgmtHdr;
979
980 /*Entry to hold number of active BSS idx's*/
981 tSirScanEntry scanEntry;
982
983 /* Single NoA usage in Scanning */
984 tANI_U8 useNoA;
985
986 /* Indicates the scan duration (in ms) */
987 tANI_U16 scanDuration;
988
989} tInitScanConParams, * tpInitScanConParams;
990
991typedef PACKED_PRE struct PACKED_POST
992{
993 tHalMsgHeader header;
994 tInitScanConParams initScanParams;
995} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
996
997
998/*---------------------------------------------------------------------------
999 WLAN_HAL_INIT_SCAN_RSP
1000---------------------------------------------------------------------------*/
1001
1002typedef PACKED_PRE struct PACKED_POST
1003{
1004 /*success or failure */
1005 tANI_U32 status;
1006
1007}tHalInitScanRspParams, *tpHalInitScanRspParams;
1008
1009typedef PACKED_PRE struct PACKED_POST
1010{
1011 tHalMsgHeader header;
1012 tHalInitScanRspParams initScanRspParams;
1013} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1014
1015/*---------------------------------------------------------------------------
1016 WLAN_HAL_START_SCAN_REQ
1017---------------------------------------------------------------------------*/
1018
Jeff Johnson32d95a32012-09-10 13:15:23 -07001019typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001020{
1021 /*Indicates the channel to scan*/
1022 tANI_U8 scanChannel;
1023
1024 } tStartScanParams, * tpStartScanParams;
1025
1026typedef PACKED_PRE struct PACKED_POST
1027{
1028 tHalMsgHeader header;
1029 tStartScanParams startScanParams;
1030} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1031
1032/*---------------------------------------------------------------------------
1033 WLAN_HAL_START_SCAN_RSP
1034---------------------------------------------------------------------------*/
1035
1036typedef PACKED_PRE struct PACKED_POST
1037{
1038 /*success or failure */
1039 tANI_U32 status;
1040
1041 tANI_U32 startTSF[2];
1042 tPowerdBm txMgmtPower;
1043
1044}tHalStartScanRspParams, *tpHalStartScanRspParams;
1045
1046typedef PACKED_PRE struct PACKED_POST
1047{
1048 tHalMsgHeader header;
1049 tHalStartScanRspParams startScanRspParams;
1050} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1051
1052/*---------------------------------------------------------------------------
1053 WLAN_HAL_END_SCAN_REQ
1054---------------------------------------------------------------------------*/
1055
1056typedef PACKED_PRE struct PACKED_POST
1057{
1058 /*Indicates the channel to stop scanning. Not used really. But retained
1059 for symmetry with "start Scan" message. It can also help in error
1060 check if needed.*/
1061 tANI_U8 scanChannel;
1062
1063} tEndScanParams, *tpEndScanParams;
1064
1065typedef PACKED_PRE struct PACKED_POST
1066{
1067 tHalMsgHeader header;
1068 tEndScanParams endScanParams;
1069} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1070
1071/*---------------------------------------------------------------------------
1072 WLAN_HAL_END_SCAN_RSP
1073---------------------------------------------------------------------------*/
1074
1075typedef PACKED_PRE struct PACKED_POST
1076{
1077 /*success or failure */
1078 tANI_U32 status;
1079
1080}tHalEndScanRspParams, *tpHalEndScanRspParams;
1081
1082typedef PACKED_PRE struct PACKED_POST
1083{
1084 tHalMsgHeader header;
1085 tHalEndScanRspParams endScanRspParams;
1086} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1087
1088/*---------------------------------------------------------------------------
1089 WLAN_HAL_FINISH_SCAN_REQ
1090---------------------------------------------------------------------------*/
1091
1092typedef PACKED_PRE struct PACKED_POST
1093{
1094 /* Identifies the operational state of the AP/STA
1095 * LEARN - AP Role SCAN - STA Role */
1096 eHalSysMode scanMode;
1097
1098 /*Operating channel to tune to.*/
1099 tANI_U8 currentOperChannel;
1100
1101 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1102 40 MHz extension channel in combination with the control channel*/
1103 ePhyChanBondState cbState;
1104
1105 /*BSSID of the BSS*/
1106 tSirMacAddr bssid;
1107
1108 /*Whether BSS needs to be notified*/
1109 tANI_U8 notifyBss;
1110
1111 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1112 CTS to Self). Must always be a valid frame type.*/
1113 tANI_U8 frameType;
1114
1115 /*UMAC has the option of passing the MAC frame to be used for notifying
1116 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1117 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1118 frameType.*/
1119 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001120
1121 /*Following the framelength there is a MAC frame buffer if frameLength
1122 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001123 tSirMacMgmtHdr macMgmtHdr;
1124
1125 /*Entry to hold number of active BSS idx's*/
1126 tSirScanEntry scanEntry;
1127
1128} tFinishScanParams, *tpFinishScanParams;
1129
1130typedef PACKED_PRE struct PACKED_POST
1131{
1132 tHalMsgHeader header;
1133 tFinishScanParams finishScanParams;
1134} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1135
1136/*---------------------------------------------------------------------------
1137 WLAN_HAL_FINISH_SCAN_RSP
1138---------------------------------------------------------------------------*/
1139
1140typedef PACKED_PRE struct PACKED_POST
1141{
1142 /*success or failure */
1143 tANI_U32 status;
1144
1145}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1146
1147typedef PACKED_PRE struct PACKED_POST
1148{
1149 tHalMsgHeader header;
1150 tHalFinishScanRspParams finishScanRspParams;
1151} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1152
1153/*---------------------------------------------------------------------------
1154 WLAN_HAL_CONFIG_STA_REQ
1155---------------------------------------------------------------------------*/
1156
1157typedef PACKED_PRE struct PACKED_POST {
1158 /*
1159 * For Self STA Entry: this represents Self Mode.
1160 * For Peer Stations, this represents the mode of the peer.
1161 * On Station:
1162 * --this mode is updated when PE adds the Self Entry.
1163 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1164 * ON AP:
1165 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1166 * to indicate the self mode of the AP.
1167 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1168 */
1169
1170 tStaRateMode opRateMode;
1171 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1172 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1173 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1174 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1175 tANI_U16 reserved;
1176
1177 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1178 //First 26 bits are reserved for those Titan rates and
1179 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1180 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1181
1182 /*
1183 * 0-76 bits used, remaining reserved
1184 * bits 0-15 and 32 should be set.
1185 */
1186 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1187
1188 /*
1189 * RX Highest Supported Data Rate defines the highest data
1190 * rate that the STA is able to receive, in unites of 1Mbps.
1191 * This value is derived from "Supported MCS Set field" inside
1192 * the HT capability element.
1193 */
1194 tANI_U16 rxHighestDataRate;
1195
1196} tSirSupportedRates, *tpSirSupportedRates;
1197
1198typedef PACKED_PRE struct PACKED_POST
1199{
1200 /*BSSID of STA*/
1201 tSirMacAddr bssId;
1202
1203 /*ASSOC ID, as assigned by UMAC*/
1204 tANI_U16 assocId;
1205
1206 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1207 tANI_U8 staType;
1208
1209 /*Short Preamble Supported.*/
1210 tANI_U8 shortPreambleSupported;
1211
1212 /*MAC Address of STA*/
1213 tSirMacAddr staMac;
1214
1215 /*Listen interval of the STA*/
1216 tANI_U16 listenInterval;
1217
1218 /*Support for 11e/WMM*/
1219 tANI_U8 wmmEnabled;
1220
1221 /*11n HT capable STA*/
1222 tANI_U8 htCapable;
1223
1224 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1225 tANI_U8 txChannelWidthSet;
1226
1227 /*RIFS mode 0 - NA, 1 - Allowed */
1228 tANI_U8 rifsMode;
1229
Jeff Johnson32d95a32012-09-10 13:15:23 -07001230 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001231 0 - No Support, 1 - Supported
1232 SG - there is global field */
1233 tANI_U8 lsigTxopProtection;
1234
1235 /*Max Ampdu Size supported by STA. TPE programming.
1236 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1237 tANI_U8 maxAmpduSize;
1238
1239 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1240 tANI_U8 maxAmpduDensity;
1241
1242 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1243 tANI_U8 maxAmsduSize;
1244
1245 /*Short GI support for 40Mhz packets*/
1246 tANI_U8 fShortGI40Mhz;
1247
1248 /*Short GI support for 20Mhz packets*/
1249 tANI_U8 fShortGI20Mhz;
1250
Jeff Johnson295189b2012-06-20 16:38:30 -07001251 /*Robust Management Frame (RMF) enabled/disabled*/
1252 tANI_U8 rmfEnabled;
1253
1254 /* The unicast encryption type in the association */
1255 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001256
1257 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001258 will set this flag in case of RE-ASSOC, where we want to reuse the old
1259 STA ID. 0 = Add, 1 = Update*/
1260 tANI_U8 action;
1261
1262 /*U-APSD Flags: 1b per AC. Encoded as follows:
1263 b7 b6 b5 b4 b3 b2 b1 b0 =
1264 X X X X BE BK VI VO */
1265 tANI_U8 uAPSD;
1266
1267 /*Max SP Length*/
1268 tANI_U8 maxSPLen;
1269
1270 /*11n Green Field preamble support
1271 0 - Not supported, 1 - Supported */
1272 tANI_U8 greenFieldCapable;
1273
1274 /*MIMO Power Save mode*/
1275 tSirMacHTMIMOPowerSaveState mimoPS;
1276
1277 /*Delayed BA Support*/
1278 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001279
Jeff Johnson295189b2012-06-20 16:38:30 -07001280 /*Max AMPDU duration in 32us*/
1281 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001282
Jeff Johnson295189b2012-06-20 16:38:30 -07001283 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1284 it to 0 if AP does not support it. This indication is sent to HAL and
1285 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1286 tANI_U8 fDsssCckMode40Mhz;
1287
1288 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1289 Retained for backward compalibity with existing HAL code*/
1290 tANI_U8 staIdx;
1291
1292 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1293 Retained for backward compalibity with existing HAL code*/
1294 tANI_U8 bssIdx;
1295
1296 tANI_U8 p2pCapableSta;
1297
Jeff Johnsone7245742012-09-05 17:12:55 -07001298 /*Reserved to align next field on a dword boundary*/
1299 tANI_U8 reserved;
1300
1301 /*These rates are the intersection of peer and self capabilities.*/
1302 tSirSupportedRates supportedRates;
1303
Jeff Johnson295189b2012-06-20 16:38:30 -07001304} tConfigStaParams, *tpConfigStaParams;
1305
Jeff Johnsone7245742012-09-05 17:12:55 -07001306/*------------------------------------------------------------------------
1307 * WLAN_HAL_CONFIG_STA_REQ
1308 * ----------------------------------------------------------------------*/
1309
1310typedef PACKED_PRE struct PACKED_POST {
1311 /*
1312 * For Self STA Entry: this represents Self Mode.
1313 * For Peer Stations, this represents the mode of the peer.
1314 * On Station:
1315 * --this mode is updated when PE adds the Self Entry.
1316 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1317 * ON AP:
1318 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1319 * to indicate the self mode of the AP.
1320 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1321 */
1322
1323 tStaRateMode opRateMode;
1324 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1325 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1326 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1327 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1328 tANI_U16 reserved;
1329
1330 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1331 //First 26 bits are reserved for those Titan rates and
1332 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1333 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1334
1335 /*
1336 * 0-76 bits used, remaining reserved
1337 * bits 0-15 and 32 should be set.
1338 */
1339 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1340
1341 /*
1342 * RX Highest Supported Data Rate defines the highest data
1343 * rate that the STA is able to receive, in unites of 1Mbps.
1344 * This value is derived from "Supported MCS Set field" inside
1345 * the HT capability element.
1346 */
1347 tANI_U16 rxHighestDataRate;
1348
1349 /* Indicates the Maximum MCS that can be received for each number
1350 * of spacial streams */
1351 tANI_U16 vhtRxMCSMap;
1352
1353 /*Indicate the highest VHT data rate that the STA is able to receive*/
1354 tANI_U16 vhtRxHighestDataRate;
1355
1356 /* Indicates the Maximum MCS that can be transmitted for each number
1357 * of spacial streams */
1358 tANI_U16 vhtTxMCSMap;
1359
1360 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1361 tANI_U16 vhtTxHighestDataRate;
1362
1363} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1364
1365typedef PACKED_PRE struct PACKED_POST
1366{
1367 /*BSSID of STA*/
1368 tSirMacAddr bssId;
1369
1370 /*ASSOC ID, as assigned by UMAC*/
1371 tANI_U16 assocId;
1372
1373 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1374 tANI_U8 staType;
1375
1376 /*Short Preamble Supported.*/
1377 tANI_U8 shortPreambleSupported;
1378
1379 /*MAC Address of STA*/
1380 tSirMacAddr staMac;
1381
1382 /*Listen interval of the STA*/
1383 tANI_U16 listenInterval;
1384
1385 /*Support for 11e/WMM*/
1386 tANI_U8 wmmEnabled;
1387
1388 /*11n HT capable STA*/
1389 tANI_U8 htCapable;
1390
1391 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1392 tANI_U8 txChannelWidthSet;
1393
1394 /*RIFS mode 0 - NA, 1 - Allowed */
1395 tANI_U8 rifsMode;
1396
1397 /*L-SIG TXOP Protection mechanism
1398 0 - No Support, 1 - Supported
1399 SG - there is global field */
1400 tANI_U8 lsigTxopProtection;
1401
1402 /*Max Ampdu Size supported by STA. TPE programming.
1403 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1404 tANI_U8 maxAmpduSize;
1405
1406 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1407 tANI_U8 maxAmpduDensity;
1408
1409 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1410 tANI_U8 maxAmsduSize;
1411
1412 /*Short GI support for 40Mhz packets*/
1413 tANI_U8 fShortGI40Mhz;
1414
1415 /*Short GI support for 20Mhz packets*/
1416 tANI_U8 fShortGI20Mhz;
1417
1418 /*Robust Management Frame (RMF) enabled/disabled*/
1419 tANI_U8 rmfEnabled;
1420
1421 /* The unicast encryption type in the association */
1422 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001423
1424 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001425 will set this flag in case of RE-ASSOC, where we want to reuse the old
1426 STA ID. 0 = Add, 1 = Update*/
1427 tANI_U8 action;
1428
1429 /*U-APSD Flags: 1b per AC. Encoded as follows:
1430 b7 b6 b5 b4 b3 b2 b1 b0 =
1431 X X X X BE BK VI VO */
1432 tANI_U8 uAPSD;
1433
1434 /*Max SP Length*/
1435 tANI_U8 maxSPLen;
1436
1437 /*11n Green Field preamble support
1438 0 - Not supported, 1 - Supported */
1439 tANI_U8 greenFieldCapable;
1440
1441 /*MIMO Power Save mode*/
1442 tSirMacHTMIMOPowerSaveState mimoPS;
1443
1444 /*Delayed BA Support*/
1445 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001446
Jeff Johnsone7245742012-09-05 17:12:55 -07001447 /*Max AMPDU duration in 32us*/
1448 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001449
Jeff Johnsone7245742012-09-05 17:12:55 -07001450 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1451 it to 0 if AP does not support it. This indication is sent to HAL and
1452 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1453 tANI_U8 fDsssCckMode40Mhz;
1454
1455 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1456 Retained for backward compalibity with existing HAL code*/
1457 tANI_U8 staIdx;
1458
1459 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1460 Retained for backward compalibity with existing HAL code*/
1461 tANI_U8 bssIdx;
1462
1463 tANI_U8 p2pCapableSta;
1464
1465 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001466 tANI_U8 htLdpcEnabled:1;
1467 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001468 tANI_U8 vhtTxBFEnabled:1;
1469 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001470
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001471 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001472 tSirSupportedRates_V1 supportedRates;
1473
1474 tANI_U8 vhtCapable;
1475 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001476
Jeff Johnsone7245742012-09-05 17:12:55 -07001477} tConfigStaParams_V1, *tpConfigStaParams_V1;
1478
Jeff Johnson295189b2012-06-20 16:38:30 -07001479typedef PACKED_PRE struct PACKED_POST
1480{
1481 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001482 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001483 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001484 tConfigStaParams_V1 configStaParams_V1;
1485 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001486} tConfigStaReqMsg, *tpConfigStaReqMsg;
1487
1488/*---------------------------------------------------------------------------
1489 WLAN_HAL_CONFIG_STA_RSP
1490---------------------------------------------------------------------------*/
1491
1492typedef PACKED_PRE struct PACKED_POST
1493{
1494 /*success or failure */
1495 tANI_U32 status;
1496
1497 /* Station index; valid only when 'status' field value SUCCESS */
1498 tANI_U8 staIdx;
1499
1500 /* BSSID Index of BSS to which the station is associated */
1501 tANI_U8 bssIdx;
1502
1503 /* DPU Index for PTK */
1504 tANI_U8 dpuIndex;
1505
Jeff Johnson32d95a32012-09-10 13:15:23 -07001506 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001507 tANI_U8 bcastDpuIndex;
1508
1509 /*DPU Index for IGTK */
1510 tANI_U8 bcastMgmtDpuIdx;
1511
1512 /*PTK DPU signature*/
1513 tANI_U8 ucUcastSig;
1514
1515 /*GTK DPU isignature*/
1516 tANI_U8 ucBcastSig;
1517
1518 /* IGTK DPU signature*/
1519 tANI_U8 ucMgmtSig;
1520
1521 tANI_U8 p2pCapableSta;
1522
1523}tConfigStaRspParams, *tpConfigStaRspParams;
1524
1525typedef PACKED_PRE struct PACKED_POST
1526{
1527 tHalMsgHeader header;
1528 tConfigStaRspParams configStaRspParams;
1529}tConfigStaRspMsg, *tpConfigStaRspMsg;
1530
1531/*---------------------------------------------------------------------------
1532 WLAN_HAL_DELETE_STA_REQ
1533---------------------------------------------------------------------------*/
1534
1535/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001536typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001537{
1538 /* Index of STA to delete */
1539 tANI_U8 staIdx;
1540} tDeleteStaParams, *tpDeleteStaParams;
1541
1542/* Delete STA Request message*/
1543typedef PACKED_PRE struct PACKED_POST
1544{
1545 tHalMsgHeader header;
1546 tDeleteStaParams delStaParams;
1547} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1548
1549/*---------------------------------------------------------------------------
1550 WLAN_HAL_DELETE_STA_RSP
1551---------------------------------------------------------------------------*/
1552
1553/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001554typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001555{
1556 /*success or failure */
1557 tANI_U32 status;
1558
1559 /* Index of STA deleted */
1560 tANI_U8 staId;
1561} tDeleteStaRspParams, *tpDeleteStaRspParams;
1562
1563/* Delete STA Response message*/
1564typedef PACKED_PRE struct PACKED_POST
1565{
1566 tHalMsgHeader header;
1567 tDeleteStaRspParams delStaRspParams;
1568} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1569
1570/*---------------------------------------------------------------------------
1571 WLAN_HAL_CONFIG_BSS_REQ
1572---------------------------------------------------------------------------*/
1573
1574//12 Bytes long because this structure can be used to represent rate
1575//and extended rate set IEs. The parser assume this to be at least 12
1576typedef __ani_attr_pre_packed struct sSirMacRateSet
1577{
1578 tANI_U8 numRates;
1579 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1580} __ani_attr_packed tSirMacRateSet;
1581
1582// access category record
1583typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1584{
1585#ifndef ANI_LITTLE_BIT_ENDIAN
1586 tANI_U8 rsvd : 1;
1587 tANI_U8 aci : 2;
1588 tANI_U8 acm : 1;
1589 tANI_U8 aifsn : 4;
1590#else
1591 tANI_U8 aifsn : 4;
1592 tANI_U8 acm : 1;
1593 tANI_U8 aci : 2;
1594 tANI_U8 rsvd : 1;
1595#endif
1596} __ani_attr_packed tSirMacAciAifsn;
1597
1598// contention window size
1599typedef __ani_attr_pre_packed struct sSirMacCW
1600{
1601#ifndef ANI_LITTLE_BIT_ENDIAN
1602 tANI_U8 max : 4;
1603 tANI_U8 min : 4;
1604#else
1605 tANI_U8 min : 4;
1606 tANI_U8 max : 4;
1607#endif
1608} __ani_attr_packed tSirMacCW;
1609
1610typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1611{
1612 tSirMacAciAifsn aci;
1613 tSirMacCW cw;
1614 tANI_U16 txoplimit;
1615} __ani_attr_packed tSirMacEdcaParamRecord;
1616
1617typedef __ani_attr_pre_packed struct sSirMacSSid
1618{
1619 tANI_U8 length;
1620 tANI_U8 ssId[32];
1621} __ani_attr_packed tSirMacSSid;
1622
1623// Concurrency role. These are generic IDs that identify the various roles
1624// in the software system.
1625typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001626 HAL_STA_MODE=0,
1627 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001628 HAL_P2P_CLIENT_MODE,
1629 HAL_P2P_GO_MODE,
1630 HAL_MONITOR_MODE,
1631} tHalConMode;
1632
1633//This is a bit pattern to be set for each mode
1634//bit 0 - sta mode
1635//bit 1 - ap mode
1636//bit 2 - p2p client mode
1637//bit 3 - p2p go mode
1638typedef enum
1639{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001640 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001641 HAL_SAP=2,
1642 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1643 HAL_P2P_CLIENT=4,
1644 HAL_P2P_GO=8,
1645 HAL_MAX_CONCURRENCY_PERSONA=4
1646} tHalConcurrencyMode;
1647
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001648// IFACE PERSONA for different Operating modes
1649typedef enum
1650{
1651 HAL_IFACE_UNKNOWN,
1652 HAL_IFACE_STA_MODE,
1653 HAL_IFACE_P2P_MODE,
1654 HAL_IFACE_MAX
1655} tHalIfacePersona;
1656
Jeff Johnson295189b2012-06-20 16:38:30 -07001657typedef PACKED_PRE struct PACKED_POST
1658{
1659 /* BSSID */
1660 tSirMacAddr bssId;
1661
Jeff Johnson295189b2012-06-20 16:38:30 -07001662 /* Self Mac Address */
1663 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001664
1665 /* BSS type */
1666 tSirBssType bssType;
1667
1668 /*Operational Mode: AP =0, STA = 1*/
1669 tANI_U8 operMode;
1670
1671 /*Network Type*/
1672 tSirNwType nwType;
1673
1674 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1675 tANI_U8 shortSlotTimeSupported;
1676
1677 /*Co-exist with 11a STA*/
1678 tANI_U8 llaCoexist;
1679
1680 /*Co-exist with 11b STA*/
1681 tANI_U8 llbCoexist;
1682
1683 /*Co-exist with 11g STA*/
1684 tANI_U8 llgCoexist;
1685
1686 /*Coexistence with 11n STA*/
1687 tANI_U8 ht20Coexist;
1688
1689 /*Non GF coexist flag*/
1690 tANI_U8 llnNonGFCoexist;
1691
1692 /*TXOP protection support*/
1693 tANI_U8 fLsigTXOPProtectionFullSupport;
1694
1695 /*RIFS mode*/
1696 tANI_U8 fRIFSMode;
1697
1698 /*Beacon Interval in TU*/
1699 tSirMacBeaconInterval beaconInterval;
1700
1701 /*DTIM period*/
1702 tANI_U8 dtimPeriod;
1703
1704 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1705 tANI_U8 txChannelWidthSet;
1706
1707 /*Operating channel*/
1708 tANI_U8 currentOperChannel;
1709
1710 /*Extension channel for channel bonding*/
1711 tANI_U8 currentExtChannel;
1712
1713 /*Reserved to align next field on a dword boundary*/
1714 tANI_U8 reserved;
1715
Jeff Johnsone7245742012-09-05 17:12:55 -07001716 /*SSID of the BSS*/
1717 tSirMacSSid ssId;
1718
1719 /*HAL should update the existing BSS entry, if this flag is set.
1720 UMAC will set this flag in case of reassoc, where we want to resue the
1721 the old BSSID and still return success 0 = Add, 1 = Update*/
1722 tANI_U8 action;
1723
1724 /* MAC Rate Set */
1725 tSirMacRateSet rateSet;
1726
1727 /*Enable/Disable HT capabilities of the BSS*/
1728 tANI_U8 htCapable;
1729
1730 // Enable/Disable OBSS protection
1731 tANI_U8 obssProtEnabled;
1732
1733 /*RMF enabled/disabled*/
1734 tANI_U8 rmfEnabled;
1735
1736 /*HT Operating Mode operating mode of the 802.11n STA*/
1737 tSirMacHTOperatingMode htOperMode;
1738
1739 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1740 tANI_U8 dualCTSProtection;
1741
1742 /* Probe Response Max retries */
1743 tANI_U8 ucMaxProbeRespRetryLimit;
1744
1745 /* To Enable Hidden ssid */
1746 tANI_U8 bHiddenSSIDEn;
1747
1748 /* To Enable Disable FW Proxy Probe Resp */
1749 tANI_U8 bProxyProbeRespEn;
1750
1751 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1752 EDCA params or might not desire to apply EDCA params during config BSS.
1753 0 implies Not Valid ; Non-Zero implies valid*/
1754 tANI_U8 edcaParamsValid;
1755
1756 /*EDCA Parameters for Best Effort Access Category*/
1757 tSirMacEdcaParamRecord acbe;
1758
1759 /*EDCA Parameters forBackground Access Category*/
1760 tSirMacEdcaParamRecord acbk;
1761
1762 /*EDCA Parameters for Video Access Category*/
1763 tSirMacEdcaParamRecord acvi;
1764
1765 /*EDCA Parameters for Voice Access Category*/
1766 tSirMacEdcaParamRecord acvo;
1767
1768#ifdef WLAN_FEATURE_VOWIFI_11R
1769 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1770 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1771#endif
1772
1773 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1774 tANI_U8 halPersona;
1775
1776 tANI_U8 bSpectrumMgtEnable;
1777
1778 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1779 tANI_S8 txMgmtPower;
1780 /*maxTxPower has max power to be used after applying the power constraint if any */
1781 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001782 /*Context of the station being added in HW
1783 Add a STA entry for "itself" -
1784 On AP - Add the AP itself in an "STA context"
1785 On STA - Add the AP to which this STA is joining in an "STA context" */
1786 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001787} tConfigBssParams, * tpConfigBssParams;
1788
1789
1790/*--------------------------------------------------------------------------
1791 * WLAN_HAL_CONFIG_BSS_REQ
1792 *--------------------------------------------------------------------------*/
1793typedef PACKED_PRE struct PACKED_POST
1794{
1795 /* BSSID */
1796 tSirMacAddr bssId;
1797
Jeff Johnsone7245742012-09-05 17:12:55 -07001798 /* Self Mac Address */
1799 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001800
1801 /* BSS type */
1802 tSirBssType bssType;
1803
1804 /*Operational Mode: AP =0, STA = 1*/
1805 tANI_U8 operMode;
1806
1807 /*Network Type*/
1808 tSirNwType nwType;
1809
1810 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1811 tANI_U8 shortSlotTimeSupported;
1812
1813 /*Co-exist with 11a STA*/
1814 tANI_U8 llaCoexist;
1815
1816 /*Co-exist with 11b STA*/
1817 tANI_U8 llbCoexist;
1818
1819 /*Co-exist with 11g STA*/
1820 tANI_U8 llgCoexist;
1821
1822 /*Coexistence with 11n STA*/
1823 tANI_U8 ht20Coexist;
1824
1825 /*Non GF coexist flag*/
1826 tANI_U8 llnNonGFCoexist;
1827
1828 /*TXOP protection support*/
1829 tANI_U8 fLsigTXOPProtectionFullSupport;
1830 /*RIFS mode*/
1831 tANI_U8 fRIFSMode;
1832
1833 /*Beacon Interval in TU*/
1834 tSirMacBeaconInterval beaconInterval;
1835
1836 /*DTIM period*/
1837 tANI_U8 dtimPeriod;
1838
1839 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1840 tANI_U8 txChannelWidthSet;
1841
1842 /*Operating channel*/
1843 tANI_U8 currentOperChannel;
1844
1845 /*Extension channel for channel bonding*/
1846 tANI_U8 currentExtChannel;
1847
1848 /*Reserved to align next field on a dword boundary*/
1849 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001850
1851 /*SSID of the BSS*/
1852 tSirMacSSid ssId;
1853
1854 /*HAL should update the existing BSS entry, if this flag is set.
1855 UMAC will set this flag in case of reassoc, where we want to resue the
1856 the old BSSID and still return success 0 = Add, 1 = Update*/
1857 tANI_U8 action;
1858
1859 /* MAC Rate Set */
1860 tSirMacRateSet rateSet;
1861
1862 /*Enable/Disable HT capabilities of the BSS*/
1863 tANI_U8 htCapable;
1864
1865 // Enable/Disable OBSS protection
1866 tANI_U8 obssProtEnabled;
1867
1868 /*RMF enabled/disabled*/
1869 tANI_U8 rmfEnabled;
1870
1871 /*HT Operating Mode operating mode of the 802.11n STA*/
1872 tSirMacHTOperatingMode htOperMode;
1873
1874 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1875 tANI_U8 dualCTSProtection;
1876
1877 /* Probe Response Max retries */
1878 tANI_U8 ucMaxProbeRespRetryLimit;
1879
1880 /* To Enable Hidden ssid */
1881 tANI_U8 bHiddenSSIDEn;
1882
1883 /* To Enable Disable FW Proxy Probe Resp */
1884 tANI_U8 bProxyProbeRespEn;
1885
Jeff Johnson32d95a32012-09-10 13:15:23 -07001886 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1887 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001888 0 implies Not Valid ; Non-Zero implies valid*/
1889 tANI_U8 edcaParamsValid;
1890
1891 /*EDCA Parameters for Best Effort Access Category*/
1892 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001893
Jeff Johnson295189b2012-06-20 16:38:30 -07001894 /*EDCA Parameters forBackground Access Category*/
1895 tSirMacEdcaParamRecord acbk;
1896
1897 /*EDCA Parameters for Video Access Category*/
1898 tSirMacEdcaParamRecord acvi;
1899
1900 /*EDCA Parameters for Voice Access Category*/
1901 tSirMacEdcaParamRecord acvo;
1902
1903#ifdef WLAN_FEATURE_VOWIFI_11R
1904 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1905 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1906#endif
1907
Jeff Johnson32d95a32012-09-10 13:15:23 -07001908 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001909 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001910
Jeff Johnson295189b2012-06-20 16:38:30 -07001911 tANI_U8 bSpectrumMgtEnable;
1912
1913 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1914 tANI_S8 txMgmtPower;
1915 /*maxTxPower has max power to be used after applying the power constraint if any */
1916 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001917 /*Context of the station being added in HW
1918 Add a STA entry for "itself" -
1919 On AP - Add the AP itself in an "STA context"
1920 On STA - Add the AP to which this STA is joining in an "STA context" */
1921 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001922
Jeff Johnsone7245742012-09-05 17:12:55 -07001923 tANI_U8 vhtCapable;
1924 tANI_U8 vhtTxChannelWidthSet;
1925} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001926
1927typedef PACKED_PRE struct PACKED_POST
1928{
1929 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001930 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001931 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001932 tConfigBssParams_V1 configBssParams_V1;
1933 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001934} tConfigBssReqMsg, *tpConfigBssReqMsg;
1935
1936/*---------------------------------------------------------------------------
1937 WLAN_HAL_CONFIG_BSS_RSP
1938---------------------------------------------------------------------------*/
1939
1940typedef PACKED_PRE struct PACKED_POST
1941{
1942 /* Success or Failure */
1943 tANI_U32 status;
1944
1945 /* BSS index allocated by HAL */
1946 tANI_U8 bssIdx;
1947
1948 /* DPU descriptor index for PTK */
1949 tANI_U8 dpuDescIndx;
1950
1951 /* PTK DPU signature */
1952 tANI_U8 ucastDpuSignature;
1953
1954 /* DPU descriptor index for GTK*/
1955 tANI_U8 bcastDpuDescIndx;
1956
1957 /* GTK DPU signature */
1958 tANI_U8 bcastDpuSignature;
1959
1960 /*DPU descriptor for IGTK*/
1961 tANI_U8 mgmtDpuDescIndx;
1962
1963 /* IGTK DPU signature */
1964 tANI_U8 mgmtDpuSignature;
1965
1966 /* Station Index for BSS entry*/
1967 tANI_U8 bssStaIdx;
1968
1969 /* Self station index for this BSS */
1970 tANI_U8 bssSelfStaIdx;
1971
1972 /* Bcast station for buffering bcast frames in AP role */
1973 tANI_U8 bssBcastStaIdx;
1974
1975 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1976 tSirMacAddr staMac;
1977
1978 /*HAL fills in the tx power used for mgmt frames in this field. */
1979 tANI_S8 txMgmtPower;
1980
1981} tConfigBssRspParams, * tpConfigBssRspParams;
1982
1983typedef PACKED_PRE struct PACKED_POST
1984{
1985 tHalMsgHeader header;
1986 tConfigBssRspParams configBssRspParams;
1987} tConfigBssRspMsg, *tpConfigBssRspMsg;
1988
1989/*---------------------------------------------------------------------------
1990 WLAN_HAL_DELETE_BSS_REQ
1991---------------------------------------------------------------------------*/
1992
1993typedef PACKED_PRE struct PACKED_POST
1994{
1995 /* BSS index to be deleted */
1996 tANI_U8 bssIdx;
1997
1998} tDeleteBssParams, *tpDeleteBssParams;
1999
2000typedef PACKED_PRE struct PACKED_POST
2001{
2002 tHalMsgHeader header;
2003 tDeleteBssParams deleteBssParams;
2004} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2005
2006/*---------------------------------------------------------------------------
2007 WLAN_HAL_DELETE_BSS_RSP
2008---------------------------------------------------------------------------*/
2009
2010typedef PACKED_PRE struct PACKED_POST
2011{
2012 /* Success or Failure */
2013 tANI_U32 status;
2014
2015 /* BSS index that has been deleted */
2016 tANI_U8 bssIdx;
2017
2018} tDeleteBssRspParams, *tpDeleteBssRspParams;
2019
2020typedef PACKED_PRE struct PACKED_POST
2021{
2022 tHalMsgHeader header;
2023 tDeleteBssRspParams deleteBssRspParams;
2024} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2025
2026/*---------------------------------------------------------------------------
2027 WLAN_HAL_JOIN_REQ
2028---------------------------------------------------------------------------*/
2029
2030typedef PACKED_PRE struct PACKED_POST
2031{
2032 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002033 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002034
2035 /*Indicates the channel to switch to.*/
2036 tANI_U8 ucChannel;
2037
2038 /* Self STA MAC */
2039 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002040
Jeff Johnson295189b2012-06-20 16:38:30 -07002041 /*Local power constraint*/
2042 tANI_U8 ucLocalPowerConstraint;
2043
2044 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002045 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002046
2047 /*link State*/
2048 tSirLinkState linkState;
2049
2050 /* Max TX power */
2051 tANI_S8 maxTxPower;
2052
2053} tHalJoinReqParams, *tpHalJoinReqParams;
2054
2055typedef PACKED_PRE struct PACKED_POST
2056{
2057 tHalMsgHeader header;
2058 tHalJoinReqParams joinReqParams;
2059} tHalJoinReqMsg, *tpHalJoinReqMsg;
2060
2061/*---------------------------------------------------------------------------
2062 WLAN_HAL_JOIN_RSP
2063---------------------------------------------------------------------------*/
2064
2065typedef PACKED_PRE struct PACKED_POST
2066{
2067 /*success or failure */
2068 tANI_U32 status;
2069
2070 /* HAL fills in the tx power used for mgmt frames in this field */
2071 tPowerdBm txMgmtPower;
2072
2073}tHalJoinRspParams, *tpHalJoinRspParams;
2074
2075typedef PACKED_PRE struct PACKED_POST
2076{
2077 tHalMsgHeader header;
2078 tHalJoinRspParams joinRspParams;
2079}tHalJoinRspMsg, *tpHalJoinRspMsg;
2080
2081/*---------------------------------------------------------------------------
2082 WLAN_HAL_POST_ASSOC_REQ
2083---------------------------------------------------------------------------*/
2084
2085typedef PACKED_PRE struct PACKED_POST
2086{
2087 tConfigStaParams configStaParams;
2088 tConfigBssParams configBssParams;
2089} tPostAssocReqParams, *tpPostAssocReqParams;
2090
2091typedef PACKED_PRE struct PACKED_POST
2092{
2093 tHalMsgHeader header;
2094 tPostAssocReqParams postAssocReqParams;
2095} tPostAssocReqMsg, *tpPostAssocReqMsg;
2096
2097/*---------------------------------------------------------------------------
2098 WLAN_HAL_POST_ASSOC_RSP
2099---------------------------------------------------------------------------*/
2100
2101typedef PACKED_PRE struct PACKED_POST
2102{
2103 tConfigStaRspParams configStaRspParams;
2104 tConfigBssRspParams configBssRspParams;
2105} tPostAssocRspParams, *tpPostAssocRspParams;
2106
2107typedef PACKED_PRE struct PACKED_POST
2108{
2109 tHalMsgHeader header;
2110 tPostAssocRspParams postAssocRspParams;
2111} tPostAssocRspMsg, *tpPostAssocRspMsg;
2112
2113/*---------------------------------------------------------------------------
2114 WLAN_HAL_SET_BSSKEY_REQ
2115---------------------------------------------------------------------------*/
2116
2117/*
2118 * This is used by PE to create a set of WEP keys for a given BSS.
2119 */
2120typedef PACKED_PRE struct PACKED_POST
2121{
2122 /*BSS Index of the BSS*/
2123 tANI_U8 bssIdx;
2124
2125 /*Encryption Type used with peer*/
2126 tAniEdType encType;
2127
2128 /*Number of keys*/
2129 tANI_U8 numKeys;
2130
2131 /*Array of keys.*/
2132 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002133
Jeff Johnson295189b2012-06-20 16:38:30 -07002134 /*Control for Replay Count, 1= Single TID based replay count on Tx
2135 0 = Per TID based replay count on TX */
2136 tANI_U8 singleTidRc;
2137} tSetBssKeyParams, *tpSetBssKeyParams;
2138
2139typedef PACKED_PRE struct PACKED_POST
2140{
2141 tHalMsgHeader header;
2142 tSetBssKeyParams setBssKeyParams;
2143} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2144
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002145/* tagged version of set bss key */
2146typedef PACKED_PRE struct PACKED_POST
2147{
2148 tSetBssKeyReqMsg Msg;
2149 uint32 Tag;
2150} tSetBssKeyReqMsgTagged;
2151
Jeff Johnson295189b2012-06-20 16:38:30 -07002152/*---------------------------------------------------------------------------
2153 WLAN_HAL_SET_BSSKEY_RSP
2154---------------------------------------------------------------------------*/
2155typedef PACKED_PRE struct PACKED_POST
2156{
2157 /*success or failure */
2158 tANI_U32 status;
2159
2160} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2161
2162typedef PACKED_PRE struct PACKED_POST
2163{
2164 tHalMsgHeader header;
2165 tSetBssKeyRspParams setBssKeyRspParams;
2166} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2167
2168/*---------------------------------------------------------------------------
2169 WLAN_HAL_SET_STAKEY_REQ,
2170---------------------------------------------------------------------------*/
2171
2172/*
2173 * This is used by PE to configure the key information on a given station.
2174 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2175 * a preconfigured key from a BSS the station assoicated with; otherwise
2176 * a new key descriptor is created based on the key field.
2177 */
2178
2179typedef PACKED_PRE struct PACKED_POST
2180{
2181 tHalMsgHeader header;
2182 tSetStaKeyParams setStaKeyParams;
2183} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2184
2185/*---------------------------------------------------------------------------
2186 WLAN_HAL_SET_STAKEY_RSP,
2187---------------------------------------------------------------------------*/
2188typedef PACKED_PRE struct PACKED_POST
2189{
2190 /*success or failure */
2191 tANI_U32 status;
2192
2193} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2194
2195typedef PACKED_PRE struct PACKED_POST
2196{
2197 tHalMsgHeader header;
2198 tSetStaKeyRspParams setStaKeyRspParams;
2199} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2200
2201/*---------------------------------------------------------------------------
2202 WLAN_HAL_RMV_BSSKEY_REQ,
2203---------------------------------------------------------------------------*/
2204/*
2205 * This is used by PE to remove keys for a given BSS.
2206 */
2207typedef PACKED_PRE struct PACKED_POST
2208
2209{
2210 /*BSS Index of the BSS*/
2211 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002212
Jeff Johnson295189b2012-06-20 16:38:30 -07002213 /*Encryption Type used with peer*/
2214 tAniEdType encType;
2215
2216 /*Key Id*/
2217 tANI_U8 keyId;
2218
2219 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2220 tAniWepType wepType;
2221
2222} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2223
2224typedef PACKED_PRE struct PACKED_POST
2225{
2226 tHalMsgHeader header;
2227 tRemoveBssKeyParams removeBssKeyParams;
2228} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2229
2230/*---------------------------------------------------------------------------
2231 WLAN_HAL_RMV_BSSKEY_RSP,
2232---------------------------------------------------------------------------*/
2233typedef PACKED_PRE struct PACKED_POST
2234{
2235 /*success or failure */
2236 tANI_U32 status;
2237
2238} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2239
2240typedef PACKED_PRE struct PACKED_POST
2241{
2242 tHalMsgHeader header;
2243 tRemoveBssKeyRspParams removeBssKeyRspParams;
2244} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2245
2246/*---------------------------------------------------------------------------
2247 WLAN_HAL_RMV_STAKEY_REQ,
2248---------------------------------------------------------------------------*/
2249/*
2250 * This is used by PE to Remove the key information on a given station.
2251 */
2252typedef PACKED_PRE struct PACKED_POST
2253{
2254 /*STA Index*/
2255 tANI_U16 staIdx;
2256
2257 /*Encryption Type used with peer*/
2258 tAniEdType encType;
2259
2260 /*Key Id*/
2261 tANI_U8 keyId;
2262
2263 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2264 the same key is used for both broadcast and unicast.*/
2265 tANI_BOOLEAN unicast;
2266
2267} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2268
2269typedef PACKED_PRE struct PACKED_POST
2270{
2271 tHalMsgHeader header;
2272 tRemoveStaKeyParams removeStaKeyParams;
2273} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2274
2275/*---------------------------------------------------------------------------
2276 WLAN_HAL_RMV_STAKEY_RSP,
2277---------------------------------------------------------------------------*/
2278typedef PACKED_PRE struct PACKED_POST
2279{
2280 /*success or failure */
2281 tANI_U32 status;
2282} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2283
2284typedef PACKED_PRE struct PACKED_POST
2285{
2286 tHalMsgHeader header;
2287 tRemoveStaKeyRspParams removeStaKeyRspParams;
2288} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2289
Jeff Johnsone7245742012-09-05 17:12:55 -07002290#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002291
Jeff Johnsone7245742012-09-05 17:12:55 -07002292#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002293#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002294#endif
2295
2296#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002297#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002298#endif
2299
2300/*-------------------------------------------------------------------------
2301WLAN_HAL_START_OEM_DATA_REQ
2302--------------------------------------------------------------------------*/
2303typedef PACKED_PRE struct PACKED_POST
2304{
2305 tANI_U32 status;
2306 tSirMacAddr selfMacAddr;
2307 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2308} tStartOemDataReqParams, *tpStartOemDataReqParams;
2309
2310typedef PACKED_PRE struct PACKED_POST
2311{
2312 tHalMsgHeader header;
2313 tStartOemDataReqParams startOemDataReqParams;
2314} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2315
2316/*-------------------------------------------------------------------------
2317WLAN_HAL_START_OEM_DATA_RSP
2318--------------------------------------------------------------------------*/
2319
2320typedef PACKED_PRE struct PACKED_POST
2321{
2322 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2323} tStartOemDataRspParams, *tpStartOemDataRspParams;
2324
2325typedef PACKED_PRE struct PACKED_POST
2326{
2327 tHalMsgHeader header;
2328 tStartOemDataRspParams startOemDataRspParams;
2329} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2330
2331#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002332
2333
2334
2335/*---------------------------------------------------------------------------
2336WLAN_HAL_CH_SWITCH_REQ
2337---------------------------------------------------------------------------*/
2338
2339typedef PACKED_PRE struct PACKED_POST
2340{
2341 /* Channel number */
2342 tANI_U8 channelNumber;
2343
2344 /* Local power constraint */
2345 tANI_U8 localPowerConstraint;
2346
2347 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002348 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002349
2350 //HAL fills in the tx power used for mgmt frames in this field.
2351 tPowerdBm txMgmtPower;
2352
2353 /* Max TX power */
2354 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002355
Jeff Johnson295189b2012-06-20 16:38:30 -07002356 /* Self STA MAC */
2357 tSirMacAddr selfStaMacAddr;
2358
2359 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2360 this should be applied only to that session*/
2361 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2362 * bssid needs to be out of the VOWifi feature flag */
2363 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2364 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2365 */
2366 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002367
Jeff Johnson295189b2012-06-20 16:38:30 -07002368}tSwitchChannelParams, *tpSwitchChannelParams;
2369
2370typedef PACKED_PRE struct PACKED_POST
2371{
2372 tHalMsgHeader header;
2373 tSwitchChannelParams switchChannelParams;
2374} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2375
2376/*---------------------------------------------------------------------------
2377WLAN_HAL_CH_SWITCH_RSP
2378---------------------------------------------------------------------------*/
2379
2380typedef PACKED_PRE struct PACKED_POST
2381{
2382 /* Status */
2383 tANI_U32 status;
2384
2385 /* Channel number - same as in request*/
2386 tANI_U8 channelNumber;
2387
2388 /* HAL fills in the tx power used for mgmt frames in this field */
2389 tPowerdBm txMgmtPower;
2390
2391 /* BSSID needed to identify session - same as in request*/
2392 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002393
Jeff Johnson295189b2012-06-20 16:38:30 -07002394}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2395
2396typedef PACKED_PRE struct PACKED_POST
2397{
2398 tHalMsgHeader header;
2399 tSwitchChannelRspParams switchChannelRspParams;
2400} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2401
2402/*---------------------------------------------------------------------------
2403WLAN_HAL_UPD_EDCA_PARAMS_REQ
2404---------------------------------------------------------------------------*/
2405
2406typedef PACKED_PRE struct PACKED_POST
2407{
2408 /*BSS Index*/
2409 tANI_U16 bssIdx;
2410
2411 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002412 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002413
2414 /* Background */
2415 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002416
Jeff Johnson295189b2012-06-20 16:38:30 -07002417 /* Video */
2418 tSirMacEdcaParamRecord acvi;
2419
2420 /* Voice */
2421 tSirMacEdcaParamRecord acvo;
2422
2423} tEdcaParams, *tpEdcaParams;
2424
2425typedef PACKED_PRE struct PACKED_POST
2426{
2427 tHalMsgHeader header;
2428 tEdcaParams edcaParams;
2429} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2430
2431/*---------------------------------------------------------------------------
2432WLAN_HAL_UPD_EDCA_PARAMS_RSP
2433---------------------------------------------------------------------------*/
2434typedef PACKED_PRE struct PACKED_POST
2435{
2436 /*success or failure */
2437 tANI_U32 status;
2438} tEdcaRspParams, *tpEdcaRspParams;
2439
2440typedef PACKED_PRE struct PACKED_POST
2441{
2442 tHalMsgHeader header;
2443 tEdcaRspParams edcaRspParams;
2444} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2445
2446
2447
2448/*---------------------------------------------------------------------------
2449 * WLAN_HAL_GET_STATS_REQ
2450 *--------------------------------------------------------------------------*/
2451typedef PACKED_PRE struct PACKED_POST
2452
2453{
2454 /* Index of STA to which the statistics */
2455 tANI_U16 staIdx;
2456
2457 /* Encryption mode */
2458 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002459
Jeff Johnson295189b2012-06-20 16:38:30 -07002460 /* status */
2461 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002462
Jeff Johnson295189b2012-06-20 16:38:30 -07002463 /* Statistics */
2464 tANI_U32 sendBlocks;
2465 tANI_U32 recvBlocks;
2466 tANI_U32 replays;
2467 tANI_U8 micErrorCnt;
2468 tANI_U32 protExclCnt;
2469 tANI_U16 formatErrCnt;
2470 tANI_U16 unDecryptableCnt;
2471 tANI_U32 decryptErrCnt;
2472 tANI_U32 decryptOkCnt;
2473} tDpuStatsParams, * tpDpuStatsParams;
2474
2475typedef PACKED_PRE struct PACKED_POST
2476{
2477 /* Valid STA Idx for per STA stats request */
2478 tANI_U32 staId;
2479
2480 /* Categories of stats requested as specified in eHalStatsMask*/
2481 tANI_U32 statsMask;
2482}tHalStatsReqParams, *tpHalStatsReqParams;
2483
2484typedef PACKED_PRE struct PACKED_POST
2485{
2486 tHalMsgHeader header;
2487 tHalStatsReqParams statsReqParams;
2488} tHalStatsReqMsg, *tpHalStatsReqMsg;
2489
2490/*---------------------------------------------------------------------------
2491 * WLAN_HAL_GET_STATS_RSP
2492 *--------------------------------------------------------------------------*/
2493
2494typedef PACKED_PRE struct PACKED_POST
2495{
2496 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2497 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2498 // station successfully transmitted after more than one retransmission attempt
2499
Jeff Johnson32d95a32012-09-10 13:15:23 -07002500 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2501 //(with and without retries, including multi-cast, broadcast)
2502 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2503 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002504 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2505 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2506 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2507 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 -07002508 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2509 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 -07002510 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2511 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 -07002512 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2513 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002514 //to provide this.
2515}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2516
2517
2518// defines tx_rate_flags
2519typedef enum eTxRateInfo
2520{
2521 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2522 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2523 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2524 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2525 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2526} tTxrateinfoflags;
2527
2528
2529typedef PACKED_PRE struct PACKED_POST
2530{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002531 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 -07002532 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002533 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 -07002534 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002535 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2536 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002537 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002538 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2539 //for eg: if it is 10.5dBm, the value would be 105
2540 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2541 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002542
Jeff Johnson32d95a32012-09-10 13:15:23 -07002543 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2544 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002545 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002546 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2547 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002548}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2549
2550typedef PACKED_PRE struct PACKED_POST
2551{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002552 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2553 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002554 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002555 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 -07002556 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002557 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 -07002558 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002559 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 -07002560 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002561 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 -07002562 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002563 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 -07002564 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002565 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 -07002566 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002567 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 -07002568 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002569 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 -07002570 //decrypted
2571 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2572
2573}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002574
Jeff Johnson295189b2012-06-20 16:38:30 -07002575typedef PACKED_PRE struct PACKED_POST
2576{
2577 tAniGlobalSecurityStats ucStats;
2578 tAniGlobalSecurityStats mcbcStats;
2579}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2580
2581typedef PACKED_PRE struct PACKED_POST
2582{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002583 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2584 //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 -07002585 //address 1 field
2586 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 -07002587 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 -07002588 //primary channel
2589 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 -07002590 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 -07002591 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002592 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2593 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002594 //decoded correctly
2595}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2596
2597typedef PACKED_PRE struct PACKED_POST
2598{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002599 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 -07002600 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002601 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2602 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 -07002603 //is transmitted
2604}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2605
2606typedef PACKED_PRE struct PACKED_POST
2607{
2608 /* Success or Failure */
2609 tANI_U32 status;
2610
2611 /* STA Idx */
2612 tANI_U32 staId;
2613
2614 /* Categories of STATS being returned as per eHalStatsMask*/
2615 tANI_U32 statsMask;
2616
2617 /* message type is same as the request type */
2618 tANI_U16 msgType;
2619
2620 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002621 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002622
2623} tHalStatsRspParams, *tpHalStatsRspParams;
2624
2625
2626
2627typedef PACKED_PRE struct PACKED_POST
2628{
2629 tHalMsgHeader header;
2630 tHalStatsRspParams statsRspParams;
2631} tHalStatsRspMsg, *tpHalStatsRspMsg;
2632
2633/*---------------------------------------------------------------------------
2634 * WLAN_HAL_SET_LINK_ST_REQ
2635 *--------------------------------------------------------------------------*/
2636typedef PACKED_PRE struct PACKED_POST
2637{
2638 tSirMacAddr bssid;
2639 tSirLinkState state;
2640 tSirMacAddr selfMacAddr;
2641} tLinkStateParams, *tpLinkStateParams;
2642
2643typedef PACKED_PRE struct PACKED_POST
2644{
2645 tHalMsgHeader header;
2646 tLinkStateParams linkStateParams;
2647} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2648
2649/*---------------------------------------------------------------------------
2650 * WLAN_HAL_SET_LINK_ST_RSP
2651 *--------------------------------------------------------------------------*/
2652
2653typedef PACKED_PRE struct PACKED_POST
2654{
2655 /*success or failure */
2656 tANI_U32 status;
2657} tLinkStateRspParams, *tpLinkStateRspParams;
2658
2659typedef PACKED_PRE struct PACKED_POST
2660{
2661 tHalMsgHeader header;
2662 tLinkStateRspParams linkStateRspParams;
2663} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2664
2665/*---------------------------------------------------------------------------
2666 * WLAN_HAL_ADD_TS_REQ
2667 *--------------------------------------------------------------------------*/
2668
2669/* TSPEC Params */
2670typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2671{
2672#ifndef ANI_LITTLE_BIT_ENDIAN
2673 tANI_U16 ackPolicy : 2;
2674 tANI_U16 userPrio : 3;
2675 tANI_U16 psb : 1;
2676 tANI_U16 aggregation : 1;
2677 tANI_U16 accessPolicy : 2;
2678 tANI_U16 direction : 2;
2679 tANI_U16 tsid : 4;
2680 tANI_U16 trafficType : 1;
2681#else
2682 tANI_U16 trafficType : 1;
2683 tANI_U16 tsid : 4;
2684 tANI_U16 direction : 2;
2685 tANI_U16 accessPolicy : 2;
2686 tANI_U16 aggregation : 1;
2687 tANI_U16 psb : 1;
2688 tANI_U16 userPrio : 3;
2689 tANI_U16 ackPolicy : 2;
2690#endif
2691} __ani_attr_packed tSirMacTSInfoTfc;
2692
2693/* Flag to schedule the traffic type */
2694typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2695{
2696#ifndef ANI_LITTLE_BIT_ENDIAN
2697 tANI_U8 rsvd : 7;
2698 tANI_U8 schedule : 1;
2699#else
2700 tANI_U8 schedule : 1;
2701 tANI_U8 rsvd : 7;
2702#endif
2703} __ani_attr_packed tSirMacTSInfoSch;
2704
2705/* Traffic and scheduling info */
2706typedef __ani_attr_pre_packed struct sSirMacTSInfo
2707{
2708 tSirMacTSInfoTfc traffic;
2709 tSirMacTSInfoSch schedule;
2710} __ani_attr_packed tSirMacTSInfo;
2711
2712/* Information elements */
2713typedef __ani_attr_pre_packed struct sSirMacTspecIE
2714{
2715 tANI_U8 type;
2716 tANI_U8 length;
2717 tSirMacTSInfo tsinfo;
2718 tANI_U16 nomMsduSz;
2719 tANI_U16 maxMsduSz;
2720 tANI_U32 minSvcInterval;
2721 tANI_U32 maxSvcInterval;
2722 tANI_U32 inactInterval;
2723 tANI_U32 suspendInterval;
2724 tANI_U32 svcStartTime;
2725 tANI_U32 minDataRate;
2726 tANI_U32 meanDataRate;
2727 tANI_U32 peakDataRate;
2728 tANI_U32 maxBurstSz;
2729 tANI_U32 delayBound;
2730 tANI_U32 minPhyRate;
2731 tANI_U16 surplusBw;
2732 tANI_U16 mediumTime;
2733}__ani_attr_packed tSirMacTspecIE;
2734
2735typedef PACKED_PRE struct PACKED_POST
2736{
2737 /* Station Index */
2738 tANI_U16 staIdx;
2739
2740 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2741 tANI_U16 tspecIdx;
2742
2743 /* To program TPE with required parameters */
2744 tSirMacTspecIE tspec;
2745
2746 /* U-APSD Flags: 1b per AC. Encoded as follows:
2747 b7 b6 b5 b4 b3 b2 b1 b0 =
2748 X X X X BE BK VI VO */
2749 tANI_U8 uAPSD;
2750
2751 /* These parameters are for all the access categories */
2752 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2753 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2754 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002755
Jeff Johnson295189b2012-06-20 16:38:30 -07002756} tAddTsParams, *tpAddTsParams;
2757
2758typedef PACKED_PRE struct PACKED_POST
2759{
2760 tHalMsgHeader header;
2761 tAddTsParams addTsParams;
2762} tAddTsReqMsg, *tpAddTsReqMsg;
2763
2764/*---------------------------------------------------------------------------
2765 * WLAN_HAL_ADD_TS_RSP
2766 *--------------------------------------------------------------------------*/
2767
2768typedef PACKED_PRE struct PACKED_POST
2769{
2770 /*success or failure */
2771 tANI_U32 status;
2772} tAddTsRspParams, *tpAddTsRspParams;
2773
2774typedef PACKED_PRE struct PACKED_POST
2775{
2776 tHalMsgHeader header;
2777 tAddTsRspParams addTsRspParams;
2778} tAddTsRspMsg, *tpAddTsRspMsg;
2779
2780
2781/*---------------------------------------------------------------------------
2782 * WLAN_HAL_DEL_TS_REQ
2783 *--------------------------------------------------------------------------*/
2784
2785typedef PACKED_PRE struct PACKED_POST
2786{
2787 /* Station Index */
2788 tANI_U16 staIdx;
2789
2790 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2791 tANI_U16 tspecIdx;
2792
2793 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002794 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002795
2796} tDelTsParams, *tpDelTsParams;
2797
2798typedef PACKED_PRE struct PACKED_POST
2799{
2800 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002801 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002802} tDelTsReqMsg, *tpDelTsReqMsg;
2803
2804/*---------------------------------------------------------------------------
2805 * WLAN_HAL_DEL_TS_RSP
2806 *--------------------------------------------------------------------------*/
2807
2808typedef PACKED_PRE struct PACKED_POST
2809{
2810 /*success or failure */
2811 tANI_U32 status;
2812} tDelTsRspParams, *tpDelTsRspParams;
2813
2814typedef PACKED_PRE struct PACKED_POST
2815{
2816 tHalMsgHeader header;
2817 tDelTsRspParams delTsRspParams;
2818} tDelTsRspMsg, *tpDelTsRspMsg;
2819
2820/* End of TSpec Parameters */
2821
2822/* Start of BLOCK ACK related Parameters */
2823
2824/*---------------------------------------------------------------------------
2825 * WLAN_HAL_ADD_BA_SESSION_REQ
2826 *--------------------------------------------------------------------------*/
2827
2828typedef PACKED_PRE struct PACKED_POST
2829{
2830 /* Station Index */
2831 tANI_U16 staIdx;
2832
2833 /* Peer MAC Address */
2834 tSirMacAddr peerMacAddr;
2835
2836 /* ADDBA Action Frame dialog token
2837 HAL will not interpret this object */
2838 tANI_U8 baDialogToken;
2839
2840 /* TID for which the BA is being setup
2841 This identifies the TC or TS of interest */
2842 tANI_U8 baTID;
2843
2844 /* 0 - Delayed BA (Not supported)
2845 1 - Immediate BA */
2846 tANI_U8 baPolicy;
2847
2848 /* Indicates the number of buffers for this TID (baTID)
2849 NOTE - This is the requested buffer size. When this
2850 is processed by HAL and subsequently by HDD, it is
2851 possible that HDD may change this buffer size. Any
2852 change in the buffer size should be noted by PE and
2853 advertized appropriately in the ADDBA response */
2854 tANI_U16 baBufferSize;
2855
2856 /* BA timeout in TU's 0 means no timeout will occur */
2857 tANI_U16 baTimeout;
2858
2859 /* b0..b3 - Fragment Number - Always set to 0
2860 b4..b15 - Starting Sequence Number of first MSDU
2861 for which this BA is setup */
2862 tANI_U16 baSSN;
2863
2864 /* ADDBA direction
2865 1 - Originator
2866 0 - Recipient */
2867 tANI_U8 baDirection;
2868} tAddBASessionParams, *tpAddBASessionParams;
2869
2870typedef PACKED_PRE struct PACKED_POST
2871{
2872 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002873 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002874}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2875
2876/*---------------------------------------------------------------------------
2877 * WLAN_HAL_ADD_BA_SESSION_RSP
2878 *--------------------------------------------------------------------------*/
2879
2880typedef PACKED_PRE struct PACKED_POST
2881{
2882 /*success or failure */
2883 tANI_U32 status;
2884
2885 /* Dialog token */
2886 tANI_U8 baDialogToken;
2887
2888 /* TID for which the BA session has been setup */
2889 tANI_U8 baTID;
2890
2891 /* BA Buffer Size allocated for the current BA session */
2892 tANI_U8 baBufferSize;
2893
2894 tANI_U8 baSessionID;
2895
2896 /* Reordering Window buffer */
2897 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002898
Jeff Johnson295189b2012-06-20 16:38:30 -07002899 /*Station Index to id the sta */
2900 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002901
Jeff Johnson295189b2012-06-20 16:38:30 -07002902 /* Starting Sequence Number */
2903 tANI_U16 SSN;
2904} tAddBASessionRspParams, *tpAddBASessionRspParams;
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 tHalMsgHeader header;
2909 tAddBASessionRspParams addBASessionRspParams;
2910} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2911
2912/*---------------------------------------------------------------------------
2913 * WLAN_HAL_ADD_BA_REQ
2914 *--------------------------------------------------------------------------*/
2915
2916typedef PACKED_PRE struct PACKED_POST
2917{
2918 /* Session Id */
2919 tANI_U8 baSessionID;
2920
2921 /* Reorder Window Size */
2922 tANI_U8 winSize;
2923
2924#ifdef FEATURE_ON_CHIP_REORDERING
2925 tANI_BOOLEAN isReorderingDoneOnChip;
2926#endif
2927} tAddBAParams, *tpAddBAParams;
2928
2929typedef PACKED_PRE struct PACKED_POST
2930{
2931 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002932 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002933} tAddBAReqMsg, *tpAddBAReqMsg;
2934
2935
2936/*---------------------------------------------------------------------------
2937 * WLAN_HAL_ADD_BA_RSP
2938 *--------------------------------------------------------------------------*/
2939
2940typedef PACKED_PRE struct PACKED_POST
2941{
2942 /*success or failure */
2943 tANI_U32 status;
2944
2945 /* Dialog token */
2946 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002947
Jeff Johnson295189b2012-06-20 16:38:30 -07002948} tAddBARspParams, *tpAddBARspParams;
2949
2950typedef PACKED_PRE struct PACKED_POST
2951{
2952 tHalMsgHeader header;
2953 tAddBARspParams addBARspParams;
2954} tAddBARspMsg, *tpAddBARspMsg;
2955
2956
2957/*---------------------------------------------------------------------------
2958 * WLAN_HAL_TRIGGER_BA_REQ
2959 *--------------------------------------------------------------------------*/
2960
2961
2962typedef struct sAddBaInfo
2963{
2964 tANI_U16 fBaEnable : 1;
2965 tANI_U16 startingSeqNum: 12;
2966 tANI_U16 reserved : 3;
2967}tAddBaInfo, *tpAddBaInfo;
2968
2969typedef struct sTriggerBaRspCandidate
2970{
2971 tSirMacAddr staAddr;
2972 tAddBaInfo baInfo[STACFG_MAX_TC];
2973}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2974
2975typedef struct sTriggerBaCandidate
2976{
2977 tANI_U8 staIdx;
2978 tANI_U8 tidBitmap;
2979}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2980
2981typedef PACKED_PRE struct PACKED_POST
2982{
2983 /* Session Id */
2984 tANI_U8 baSessionID;
2985
Jeff Johnson32d95a32012-09-10 13:15:23 -07002986 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002987 * Candidate List(tTriggerBaCandidate)
2988 */
2989 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002990
Jeff Johnson295189b2012-06-20 16:38:30 -07002991} tTriggerBAParams, *tpTriggerBAParams;
2992
2993typedef PACKED_PRE struct PACKED_POST
2994{
2995 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002996 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002997} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2998
2999
3000/*---------------------------------------------------------------------------
3001 * WLAN_HAL_TRIGGER_BA_RSP
3002 *--------------------------------------------------------------------------*/
3003
3004typedef PACKED_PRE struct PACKED_POST
3005{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003006
Jeff Johnson295189b2012-06-20 16:38:30 -07003007 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003008 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003009
3010 /* success or failure */
3011 tANI_U32 status;
3012
Jeff Johnson32d95a32012-09-10 13:15:23 -07003013 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003014 * Rsp Candidate List(tTriggerRspBaCandidate)
3015 */
3016 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003017
Jeff Johnson295189b2012-06-20 16:38:30 -07003018
3019} tTriggerBARspParams, *tpTriggerBARspParams;
3020
3021typedef PACKED_PRE struct PACKED_POST
3022{
3023 tHalMsgHeader header;
3024 tTriggerBARspParams triggerBARspParams;
3025} tTriggerBARspMsg, *tpTriggerBARspMsg;
3026
3027/*---------------------------------------------------------------------------
3028 * WLAN_HAL_DEL_BA_REQ
3029 *--------------------------------------------------------------------------*/
3030
3031typedef PACKED_PRE struct PACKED_POST
3032{
3033 /* Station Index */
3034 tANI_U16 staIdx;
3035
3036 /* TID for which the BA session is being deleted */
3037 tANI_U8 baTID;
3038
3039 /* DELBA direction
3040 1 - Originator
3041 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003042 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003043} tDelBAParams, *tpDelBAParams;
3044
3045typedef PACKED_PRE struct PACKED_POST
3046{
3047 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003048 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003049} tDelBAReqMsg, *tpDelBAReqMsg;
3050
3051/*---------------------------------------------------------------------------
3052 * WLAN_HAL_DEL_BA_RSP
3053 *--------------------------------------------------------------------------*/
3054
3055typedef PACKED_PRE struct PACKED_POST
3056{
3057 /* success or failure */
3058 tANI_U32 status;
3059} tDelBARspParams, *tpDelBARspParams;
3060
3061typedef PACKED_PRE struct PACKED_POST
3062{
3063 tHalMsgHeader header;
3064 tDelBARspParams delBARspParams;
3065} tDelBARspMsg, *tpDelBARspMsg;
3066
3067
3068#ifdef FEATURE_WLAN_CCX
3069
3070/*---------------------------------------------------------------------------
3071 * WLAN_HAL_TSM_STATS_REQ
3072 *--------------------------------------------------------------------------*/
3073typedef PACKED_PRE struct PACKED_POST
3074{
3075 /* Traffic Id */
3076 tANI_U8 tsmTID;
3077
3078 tSirMacAddr bssId;
3079} tTsmStatsParams, *tpTsmStatsParams;
3080
3081typedef PACKED_PRE struct PACKED_POST
3082{
3083 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003084 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003085} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3086
3087
3088/*---------------------------------------------------------------------------
3089 * WLAN_HAL_TSM_STATS_RSP
3090 *--------------------------------------------------------------------------*/
3091typedef PACKED_PRE struct PACKED_POST
3092{
3093 /*success or failure */
3094 tANI_U32 status;
3095
Jeff Johnson32d95a32012-09-10 13:15:23 -07003096 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003097 tANI_U16 UplinkPktQueueDly;
3098
Jeff Johnson32d95a32012-09-10 13:15:23 -07003099 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003100 tANI_U16 UplinkPktQueueDlyHist[4];
3101
Jeff Johnson32d95a32012-09-10 13:15:23 -07003102 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003103 tANI_U32 UplinkPktTxDly;
3104
Jeff Johnson32d95a32012-09-10 13:15:23 -07003105 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003106 tANI_U16 UplinkPktLoss;
3107
Jeff Johnson32d95a32012-09-10 13:15:23 -07003108 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003109 tANI_U16 UplinkPktCount;
3110
Jeff Johnson32d95a32012-09-10 13:15:23 -07003111 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003112 tANI_U8 RoamingCount;
3113
Jeff Johnson32d95a32012-09-10 13:15:23 -07003114 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003115 tANI_U16 RoamingDly;
3116} tTsmStatsRspParams, *tpTsmStatsRspParams;
3117
3118typedef PACKED_PRE struct PACKED_POST
3119{
3120 tHalMsgHeader header;
3121 tTsmStatsRspParams tsmStatsRspParams;
3122} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3123
3124
3125#endif
3126
3127/*---------------------------------------------------------------------------
3128 * WLAN_HAL_SET_KEYDONE_MSG
3129 *--------------------------------------------------------------------------*/
3130
3131typedef PACKED_PRE struct PACKED_POST
3132{
3133 /*bssid of the keys */
3134 tANI_U8 bssidx;
3135 tANI_U8 encType;
3136} tSetKeyDoneParams, *tpSetKeyDoneParams;
3137
3138typedef PACKED_PRE struct PACKED_POST
3139{
3140 tHalMsgHeader header;
3141 tSetKeyDoneParams setKeyDoneParams;
3142} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3143
3144/*---------------------------------------------------------------------------
3145 * WLAN_HAL_DOWNLOAD_NV_REQ
3146 *--------------------------------------------------------------------------*/
3147typedef PACKED_PRE struct PACKED_POST
3148{
3149 /* Fragment sequence number of the NV Image. Note that NV Image might not
3150 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003151 * can hence choose to chop the NV blob into multiple fragments starting with
3152 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003153 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3154 * concatenated together by HAL without any padding bytes in between.*/
3155 tANI_U16 fragNumber;
3156
3157 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003158 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003159 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3160 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3161 tANI_U16 isLastFragment;
3162
3163 /* NV Image size (number of bytes) */
3164 tANI_U32 nvImgBufferSize;
3165
3166 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3167 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3168} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3169
3170typedef PACKED_PRE struct PACKED_POST
3171{
3172 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3173 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3174 tHalMsgHeader header;
3175 tHalNvImgDownloadReqParams nvImageReqParams;
3176} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3177
3178/*---------------------------------------------------------------------------
3179 * WLAN_HAL_DOWNLOAD_NV_RSP
3180 *--------------------------------------------------------------------------*/
3181typedef PACKED_PRE struct PACKED_POST
3182{
3183 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3184 * after each fragment */
3185 tANI_U32 status;
3186} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3187
3188typedef PACKED_PRE struct PACKED_POST
3189{
3190 tHalMsgHeader header;
3191 tHalNvImgDownloadRspParams nvImageRspParams;
3192} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3193
3194/*---------------------------------------------------------------------------
3195 * WLAN_HAL_STORE_NV_IND
3196 *--------------------------------------------------------------------------*/
3197typedef PACKED_PRE struct PACKED_POST
3198{
3199 /* NV Item */
3200 eNvTable tableID;
3201
3202 /* Size of NV Blob */
3203 tANI_U32 nvBlobSize;
3204
Jeff Johnson32d95a32012-09-10 13:15:23 -07003205 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003206 * NV blob i.e. uint8[nvBlobSize] */
3207} tHalNvStoreParams, *tpHalNvStoreParams;
3208
3209typedef PACKED_PRE struct PACKED_POST
3210{
3211 /* Note: The length specified in tHalNvStoreInd messages should be
3212 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3213 tHalMsgHeader header;
3214 tHalNvStoreParams nvStoreParams;
3215} tHalNvStoreInd, *tpHalNvStoreInd;
3216
3217/* End of Block Ack Related Parameters */
3218
3219/*---------------------------------------------------------------------------
3220 * WLAN_HAL_MIC_FAILURE_IND
3221 *--------------------------------------------------------------------------*/
3222
3223#define SIR_CIPHER_SEQ_CTR_SIZE 6
3224
3225typedef PACKED_PRE struct PACKED_POST
3226{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003227 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003228 tSirMacAddr taMacAddr; //transmitter address
3229 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003230 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003231 tANI_U8 IV1; // first byte of IV
3232 tANI_U8 keyId; // second byte of IV
3233 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3234 tSirMacAddr rxMacAddr; // receive address
3235} tSirMicFailureInfo, *tpSirMicFailureInfo;
3236
3237/* Definition for MIC failure indication
3238 MAC reports this each time a MIC failure occures on Rx TKIP packet
3239 */
3240typedef PACKED_PRE struct PACKED_POST
3241{
3242 tSirMacAddr bssId; // BSSID
3243 tSirMicFailureInfo info;
3244} tSirMicFailureInd, *tpSirMicFailureInd;
3245
3246typedef PACKED_PRE struct PACKED_POST
3247{
3248 tHalMsgHeader header;
3249 tSirMicFailureInd micFailureInd;
3250} tMicFailureIndMsg, *tpMicFailureIndMsg;
3251
Mohit Khanna4a70d262012-09-11 16:30:12 -07003252typedef PACKED_PRE struct PACKED_POST
3253{
3254 tANI_U16 opMode;
3255 tANI_U16 staId;
3256}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3257
3258typedef PACKED_PRE struct PACKED_POST
3259{
3260 tHalMsgHeader header;
3261 tUpdateVHTOpMode updateVhtOpMode;
3262} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3263
3264typedef PACKED_PRE struct PACKED_POST
3265{
3266 tANI_U32 status;
3267} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3268
3269typedef PACKED_PRE struct PACKED_POST
3270{
3271 tHalMsgHeader header;
3272 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3273} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3274
Jeff Johnson295189b2012-06-20 16:38:30 -07003275/*---------------------------------------------------------------------------
3276 * WLAN_HAL_UPDATE_BEACON_REQ
3277 *--------------------------------------------------------------------------*/
3278typedef PACKED_PRE struct PACKED_POST
3279{
3280
3281 tANI_U8 bssIdx;
3282
3283 //shortPreamble mode. HAL should update all the STA rates when it
3284 //receives this message
3285 tANI_U8 fShortPreamble;
3286 //short Slot time.
3287 tANI_U8 fShortSlotTime;
3288 //Beacon Interval
3289 tANI_U16 beaconInterval;
3290 //Protection related
3291 tANI_U8 llaCoexist;
3292 tANI_U8 llbCoexist;
3293 tANI_U8 llgCoexist;
3294 tANI_U8 ht20MhzCoexist;
3295 tANI_U8 llnNonGFCoexist;
3296 tANI_U8 fLsigTXOPProtectionFullSupport;
3297 tANI_U8 fRIFSMode;
3298
3299 tANI_U16 paramChangeBitmap;
3300}tUpdateBeaconParams, *tpUpdateBeaconParams;
3301
3302
3303typedef PACKED_PRE struct PACKED_POST
3304{
3305 tHalMsgHeader header;
3306 tUpdateBeaconParams updateBeaconParam;
3307} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3308
3309/*---------------------------------------------------------------------------
3310 * WLAN_HAL_UPDATE_BEACON_RSP
3311 *--------------------------------------------------------------------------*/
3312typedef PACKED_PRE struct PACKED_POST
3313{
3314 tANI_U32 status;
3315} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3316
3317typedef PACKED_PRE struct PACKED_POST
3318{
3319 tHalMsgHeader header;
3320 tUpdateBeaconRspParams updateBeaconRspParam;
3321} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3322
3323/*---------------------------------------------------------------------------
3324 * WLAN_HAL_SEND_BEACON_REQ
3325 *--------------------------------------------------------------------------*/
3326typedef PACKED_PRE struct PACKED_POST
3327{
3328 tANI_U32 beaconLength; //length of the template.
3329 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3330 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003331 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003332 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3333}tSendBeaconParams, *tpSendBeaconParams;
3334
3335
3336typedef PACKED_PRE struct PACKED_POST
3337{
3338 tHalMsgHeader header;
3339 tSendBeaconParams sendBeaconParam;
3340}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3341
3342/*---------------------------------------------------------------------------
3343 * WLAN_HAL_SEND_BEACON_RSP
3344 *--------------------------------------------------------------------------*/
3345typedef PACKED_PRE struct PACKED_POST
3346{
3347 tANI_U32 status;
3348} tSendBeaconRspParams, *tpSendBeaconRspParams;
3349
3350typedef PACKED_PRE struct PACKED_POST
3351{
3352 tHalMsgHeader header;
3353 tSendBeaconRspParams sendBeaconRspParam;
3354} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3355
3356#ifdef FEATURE_5GHZ_BAND
3357
3358/*---------------------------------------------------------------------------
3359 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3360 *--------------------------------------------------------------------------*/
3361typedef PACKED_PRE struct PACKED_POST
3362{
3363 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003364 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003365}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3366
3367
3368typedef PACKED_PRE struct PACKED_POST
3369{
3370 /* Link Parameters */
3371 tSirEnableRadarInfoType EnableRadarInfo;
3372}tEnableRadarReqParams, *tpEnableRadarReqParams;
3373
3374typedef PACKED_PRE struct PACKED_POST
3375{
3376 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003377 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003378}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3379
3380/*---------------------------------------------------------------------------
3381 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3382 *--------------------------------------------------------------------------*/
3383
3384typedef PACKED_PRE struct PACKED_POST
3385{
3386 /* Link Parameters */
3387 tSirMacAddr BSSID;
3388 /* success or failure */
3389 tANI_U32 status;
3390}tEnableRadarRspParams, *tpEnableRadarRspParams;
3391
3392typedef PACKED_PRE struct PACKED_POST
3393{
3394 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003395 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003396}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3397
3398/*---------------------------------------------------------------------------
3399 *WLAN_HAL_RADAR_DETECT_INTR_IND
3400 *--------------------------------------------------------------------------*/
3401
3402typedef PACKED_PRE struct PACKED_POST
3403{
3404 tANI_U8 radarDetChannel;
3405}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3406
3407typedef PACKED_PRE struct PACKED_POST
3408{
3409 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003410 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003411}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3412
3413/*---------------------------------------------------------------------------
3414 *WLAN_HAL_RADAR_DETECT_IND
3415 *-------------------------------------------------------------------------*/
3416typedef PACKED_PRE struct PACKED_POST
3417{
3418 /*channel number in which the RADAR detected*/
3419 tANI_U8 channelNumber;
3420
3421 /*RADAR pulse width*/
3422 tANI_U16 radarPulseWidth; // in usecond
3423
3424 /*Number of RADAR pulses */
3425 tANI_U16 numRadarPulse;
3426}tRadarDetectIndParams,*tpRadarDetectIndParams;
3427
3428typedef PACKED_PRE struct PACKED_POST
3429{
3430 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003431 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003432}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3433
3434
3435/*---------------------------------------------------------------------------
3436 *WLAN_HAL_GET_TPC_REPORT_REQ
3437 *-------------------------------------------------------------------------*/
3438typedef PACKED_PRE struct PACKED_POST
3439{
3440 tSirMacAddr sta;
3441 tANI_U8 dialogToken;
3442 tANI_U8 txpower;
3443}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3444
3445
3446typedef PACKED_PRE struct PACKED_POST
3447{
3448 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003449 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003450}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3451
3452/*---------------------------------------------------------------------------
3453 * WLAN_HAL_GET_TPC_REPORT_RSP
3454 *--------------------------------------------------------------------------*/
3455
3456typedef PACKED_PRE struct PACKED_POST
3457{
3458 /* success or failure */
3459 tANI_U32 status;
3460}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3461
3462typedef PACKED_PRE struct PACKED_POST
3463{
3464 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003465 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003466}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3467
3468#endif
3469
Jeff Johnson295189b2012-06-20 16:38:30 -07003470/*---------------------------------------------------------------------------
3471 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3472 *-------------------------------------------------------------------------*/
3473typedef PACKED_PRE struct PACKED_POST
3474{
3475 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3476 tANI_U32 probeRespTemplateLen;
3477 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3478 tSirMacAddr bssId;
3479
3480}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3481
3482typedef PACKED_PRE struct PACKED_POST
3483{
3484 tHalMsgHeader header;
3485 tSendProbeRespReqParams sendProbeRespReqParams ;
3486}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3487
3488/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003489 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003490 *--------------------------------------------------------------------------*/
3491
3492typedef PACKED_PRE struct PACKED_POST
3493{
3494 /* success or failure */
3495 tANI_U32 status;
3496}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3497
3498typedef PACKED_PRE struct PACKED_POST
3499{
3500 tHalMsgHeader header;
3501 tSendProbeRespRspParams sendProbeRespRspParams;
3502}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3503
3504
3505/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003506 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003507 *--------------------------------------------------------------------------*/
3508
3509typedef PACKED_PRE struct PACKED_POST
3510{
3511 /* success or failure */
3512 tANI_U32 status;
3513}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3514
3515typedef PACKED_PRE struct PACKED_POST
3516{
3517 tHalMsgHeader header;
3518 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3519}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3520
3521/*---------------------------------------------------------------------------
3522 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3523 *--------------------------------------------------------------------------*/
3524
3525typedef PACKED_PRE struct PACKED_POST
3526{
3527 tANI_U16 assocId;
3528 tANI_U16 staId;
3529 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3530 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003531 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003532 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003533
3534}tDeleteStaContextParams, *tpDeleteStaContextParams;
3535
3536
3537typedef PACKED_PRE struct PACKED_POST
3538{
3539 tHalMsgHeader header;
3540 tDeleteStaContextParams deleteStaContextParams;
3541}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3542
Anand Kumar012623a2013-01-11 17:00:00 -08003543typedef PACKED_PRE struct PACKED_POST
3544{
3545 tHalMsgHeader header;
3546 tANI_U8 assocId;
3547 tANI_U8 staIdx;
3548 tANI_U8 bssIdx;
3549 tANI_U8 uReasonCode;
3550 tANI_U32 uStatus;
3551} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003552
3553/*---------------------------------------------------------------------------
3554 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3555 *--------------------------------------------------------------------------*/
3556
3557typedef PACKED_PRE struct PACKED_POST
3558{
3559 tBtAmpEventType btAmpEventType;
3560
3561}tBtAmpEventParams, *tpBtAmpEventParams;
3562
3563
3564
3565typedef PACKED_PRE struct PACKED_POST
3566{
3567 tHalMsgHeader header;
3568 tBtAmpEventParams btAmpEventParams;
3569}tBtAmpEventMsg, *tpBtAmpEventMsg;
3570
3571/*---------------------------------------------------------------------------
3572*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3573*--------------------------------------------------------------------------*/
3574
3575typedef PACKED_PRE struct PACKED_POST
3576{
3577 /* success or failure */
3578 tANI_U32 status;
3579}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3580
3581typedef PACKED_PRE struct PACKED_POST
3582{
3583 tHalMsgHeader header;
3584 tBtAmpEventRspParams btAmpEventRspParams;
3585}tBtAmpEventRsp, *tpBtAmpEventRsp;
3586
3587
3588/*---------------------------------------------------------------------------
3589 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3590 *--------------------------------------------------------------------------*/
3591
3592typedef PACKED_PRE struct PACKED_POST
3593{
3594 // Station Index. originates from HAL
3595 tANI_U8 ucSTAId;
3596
3597 // TID for which the transmit queue is being flushed
3598 tANI_U8 ucTid;
3599
3600}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3601
3602
3603typedef PACKED_PRE struct PACKED_POST
3604{
3605 tHalMsgHeader header;
3606 tTlHalFlushAcParams tlHalFlushAcParam;
3607}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3608
3609/*---------------------------------------------------------------------------
3610*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3611*--------------------------------------------------------------------------*/
3612
3613typedef PACKED_PRE struct PACKED_POST
3614{
3615 // Station Index. originates from HAL
3616 tANI_U8 ucSTAId;
3617
3618 // TID for which the transmit queue is being flushed
3619 tANI_U8 ucTid;
3620
3621 /* success or failure */
3622 tANI_U32 status;
3623}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3624
3625typedef PACKED_PRE struct PACKED_POST
3626{
3627 tHalMsgHeader header;
3628 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3629}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3630
3631/*---------------------------------------------------------------------------
3632 * WLAN_HAL_ENTER_IMPS_REQ
3633 *--------------------------------------------------------------------------*/
3634typedef PACKED_PRE struct PACKED_POST
3635{
3636 tHalMsgHeader header;
3637} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3638
3639/*---------------------------------------------------------------------------
3640 * WLAN_HAL_EXIT_IMPS_REQ
3641 *--------------------------------------------------------------------------*/
3642typedef PACKED_PRE struct PACKED_POST
3643{
3644 tHalMsgHeader header;
3645} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3646
3647/*---------------------------------------------------------------------------
3648 * WLAN_HAL_ENTER_BMPS_REQ
3649 *--------------------------------------------------------------------------*/
3650
3651typedef PACKED_PRE struct PACKED_POST
3652{
3653 tANI_U8 bssIdx;
3654 //TBTT value derived from the last beacon
3655#ifndef BUILD_QWPTTSTATIC
3656 tANI_U64 tbtt;
3657#endif
3658 tANI_U8 dtimCount;
3659 //DTIM period given to HAL during association may not be valid,
3660 //if association is based on ProbeRsp instead of beacon.
3661 tANI_U8 dtimPeriod;
3662
3663 // For CCX and 11R Roaming
3664 tANI_U32 rssiFilterPeriod;
3665 tANI_U32 numBeaconPerRssiAverage;
3666 tANI_U8 bRssiFilterEnable;
3667
3668} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3669
3670
3671typedef PACKED_PRE struct PACKED_POST
3672{
3673 tHalMsgHeader header;
3674 tHalEnterBmpsReqParams enterBmpsReq;
3675} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3676
3677/*---------------------------------------------------------------------------
3678 * WLAN_HAL_EXIT_BMPS_REQ
3679 *--------------------------------------------------------------------------*/
3680typedef PACKED_PRE struct PACKED_POST
3681{
3682 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003683 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003684} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3685
3686typedef PACKED_PRE struct PACKED_POST
3687{
3688 tHalMsgHeader header;
3689 tHalExitBmpsReqParams exitBmpsReqParams;
3690} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3691
3692/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003693 * WLAN_HAL_MISSED_BEACON_IND
3694 *--------------------------------------------------------------------------*/
3695typedef PACKED_PRE struct PACKED_POST
3696{
3697 tANI_U8 bssIdx;
3698} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3699
3700typedef PACKED_PRE struct PACKED_POST
3701{
3702 tHalMsgHeader header;
3703 tHalMissedBeaconIndParams missedBeaconIndParams;
3704} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3705
3706/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003707 * WLAN_HAL_ADD_BCN_FILTER_REQ
3708 *--------------------------------------------------------------------------*/
3709/* Beacon Filtering data structures */
3710typedef PACKED_PRE struct PACKED_POST
3711{
3712 tANI_U8 offset;
3713 tANI_U8 value;
3714 tANI_U8 bitMask;
3715 tANI_U8 ref;
3716} tEidByteInfo, *tpEidByteInfo;
3717
Jeff Johnson32d95a32012-09-10 13:15:23 -07003718typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003719{
3720 tANI_U16 capabilityInfo;
3721 tANI_U16 capabilityMask;
3722 tANI_U16 beaconInterval;
3723 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003724 tANI_U8 bssIdx;
3725 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003726} tBeaconFilterMsg, *tpBeaconFilterMsg;
3727
3728/* The above structure would be followed by multiple of below mentioned structure */
3729typedef PACKED_PRE struct PACKED_POST
3730{
3731 tANI_U8 elementId;
3732 tANI_U8 checkIePresence;
3733 tEidByteInfo byte;
3734} tBeaconFilterIe, *tpBeaconFilterIe;
3735
3736typedef PACKED_PRE struct PACKED_POST
3737{
3738 tHalMsgHeader header;
3739 tBeaconFilterMsg addBcnFilterParams;
3740} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3741
3742/*---------------------------------------------------------------------------
3743 * WLAN_HAL_REM_BCN_FILTER_REQ
3744 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003745typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003746{
3747 tANI_U8 ucIeCount;
3748 tANI_U8 ucRemIeId[1];
3749} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3750
3751typedef PACKED_PRE struct PACKED_POST
3752{
3753 tHalMsgHeader header;
3754 tRemBeaconFilterMsg remBcnFilterParams;
3755} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3756
3757/*---------------------------------------------------------------------------
3758 * WLAN_HAL_HOST_OFFLOAD_REQ
3759 *--------------------------------------------------------------------------*/
3760#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3761#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3762#define HAL_IPV6_NS_OFFLOAD 2
3763#define HAL_IPV6_ADDR_LEN 16
3764#define HAL_MAC_ADDR_LEN 6
3765#define HAL_OFFLOAD_DISABLE 0
3766#define HAL_OFFLOAD_ENABLE 1
3767#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003768#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003769#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003770#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003771
3772typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3773{
3774 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3775 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3776 //Only support 2 possible Network Advertisement IPv6 address
3777 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3778 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3779 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3780 tANI_U8 srcIPv6AddrValid : 1;
3781 tANI_U8 targetIPv6Addr1Valid : 1;
3782 tANI_U8 targetIPv6Addr2Valid : 1;
3783 tANI_U8 reserved1 : 5;
3784 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003785 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003786 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003787} tHalNSOffloadParams;
3788
3789typedef PACKED_PRE struct PACKED_POST
3790{
3791 tANI_U8 offloadType;
3792 tANI_U8 enableOrDisable;
3793 PACKED_PRE union PACKED_POST
3794 {
3795 tANI_U8 hostIpv4Addr [4];
3796 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3797 } params;
3798} tHalHostOffloadReq, *tpHalHostOffloadReq;
3799
3800typedef PACKED_PRE struct PACKED_POST
3801{
3802 tHalMsgHeader header;
3803 tHalHostOffloadReq hostOffloadParams;
3804 tHalNSOffloadParams nsOffloadParams;
3805} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3806
3807/*---------------------------------------------------------------------------
3808 * WLAN_HAL_KEEP_ALIVE_REQ
3809 *--------------------------------------------------------------------------*/
3810/* Packet Types. */
3811#define HAL_KEEP_ALIVE_NULL_PKT 1
3812#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3813
3814/* Enable or disable keep alive */
3815#define HAL_KEEP_ALIVE_DISABLE 0
3816#define HAL_KEEP_ALIVE_ENABLE 1
3817
3818/* Keep Alive request. */
3819typedef PACKED_PRE struct PACKED_POST
3820{
3821 tANI_U8 packetType;
3822 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003823 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003824 tHalIpv4Addr destIpv4Addr;
3825 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003826 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003827} tHalKeepAliveReq, *tpHalKeepAliveReq;
3828
3829typedef PACKED_PRE struct PACKED_POST
3830{
3831 tHalMsgHeader header;
3832 tHalKeepAliveReq KeepAliveParams;
3833} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3834
3835/*---------------------------------------------------------------------------
3836 * WLAN_HAL_SET_RSSI_THRESH_REQ
3837 *--------------------------------------------------------------------------*/
3838typedef PACKED_PRE struct PACKED_POST
3839{
3840 tANI_S8 ucRssiThreshold1 : 8;
3841 tANI_S8 ucRssiThreshold2 : 8;
3842 tANI_S8 ucRssiThreshold3 : 8;
3843 tANI_U8 bRssiThres1PosNotify : 1;
3844 tANI_U8 bRssiThres1NegNotify : 1;
3845 tANI_U8 bRssiThres2PosNotify : 1;
3846 tANI_U8 bRssiThres2NegNotify : 1;
3847 tANI_U8 bRssiThres3PosNotify : 1;
3848 tANI_U8 bRssiThres3NegNotify : 1;
3849 tANI_U8 bReserved10 : 2;
3850} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003851
Jeff Johnson295189b2012-06-20 16:38:30 -07003852typedef PACKED_PRE struct PACKED_POST
3853{
3854 tHalMsgHeader header;
3855 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003856} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003857
3858/*---------------------------------------------------------------------------
3859 * WLAN_HAL_ENTER_UAPSD_REQ
3860 *--------------------------------------------------------------------------*/
3861typedef PACKED_PRE struct PACKED_POST
3862{
3863 tANI_U8 bkDeliveryEnabled:1;
3864 tANI_U8 beDeliveryEnabled:1;
3865 tANI_U8 viDeliveryEnabled:1;
3866 tANI_U8 voDeliveryEnabled:1;
3867 tANI_U8 bkTriggerEnabled:1;
3868 tANI_U8 beTriggerEnabled:1;
3869 tANI_U8 viTriggerEnabled:1;
3870 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003871 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003872} tUapsdReqParams, *tpUapsdReqParams;
3873
3874typedef PACKED_PRE struct PACKED_POST
3875{
3876 tHalMsgHeader header;
3877 tUapsdReqParams enterUapsdParams;
3878} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3879
3880/*---------------------------------------------------------------------------
3881 * WLAN_HAL_EXIT_UAPSD_REQ
3882 *--------------------------------------------------------------------------*/
3883typedef PACKED_PRE struct PACKED_POST
3884{
3885 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003886 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003887} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3888
3889/*---------------------------------------------------------------------------
3890 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3891 *--------------------------------------------------------------------------*/
3892#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3893#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3894
3895typedef PACKED_PRE struct PACKED_POST
3896{
3897 tANI_U8 ucPatternId; // Pattern ID
3898 // Pattern byte offset from beginning of the 802.11 packet to start of the
3899 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003900 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003901 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3902 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3903 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3904 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3905 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3906 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003907 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003908} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3909
3910typedef PACKED_PRE struct PACKED_POST
3911{
3912 tHalMsgHeader header;
3913 tHalWowlAddBcastPtrn ptrnParams;
3914} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003915
Jeff Johnsone7245742012-09-05 17:12:55 -07003916
3917
Jeff Johnson295189b2012-06-20 16:38:30 -07003918/*---------------------------------------------------------------------------
3919 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3920 *--------------------------------------------------------------------------*/
3921typedef PACKED_PRE struct PACKED_POST
3922{
3923 /* Pattern ID of the wakeup pattern to be deleted */
3924 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003925 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003926} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3927
3928typedef PACKED_PRE struct PACKED_POST
3929{
3930 tHalMsgHeader header;
3931 tHalWowlDelBcastPtrn ptrnParams;
3932} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3933
3934/*---------------------------------------------------------------------------
3935 * WLAN_HAL_ENTER_WOWL_REQ
3936 *--------------------------------------------------------------------------*/
3937typedef PACKED_PRE struct PACKED_POST
3938{
3939 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003940 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003941
3942 /* Magic pattern */
3943 tSirMacAddr magicPtrn;
3944
Jeff Johnson32d95a32012-09-10 13:15:23 -07003945 /* Enables/disables packet pattern filtering in firmware.
3946 Enabling this flag enables broadcast pattern matching
3947 in Firmware. If unicast pattern matching is also desired,
3948 ucUcastPatternFilteringEnable flag must be set tot true
3949 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003950 */
3951 tANI_U8 ucPatternFilteringEnable;
3952
Jeff Johnson32d95a32012-09-10 13:15:23 -07003953 /* Enables/disables unicast packet pattern filtering.
3954 This flag specifies whether we want to do pattern match
3955 on unicast packets as well and not just broadcast packets.
3956 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003957 (main controlling flag) is set to false
3958 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003959 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003960
Jeff Johnson32d95a32012-09-10 13:15:23 -07003961 /* This configuration is valid only when magicPktEnable=1.
3962 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003963 * Channel Switch Action Frame.
3964 */
3965 tANI_U8 ucWowChnlSwitchRcv;
3966
Jeff Johnson32d95a32012-09-10 13:15:23 -07003967 /* This configuration is valid only when magicPktEnable=1.
3968 * It requests hardware to wake up when it receives the
3969 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003970 */
3971 tANI_U8 ucWowDeauthRcv;
3972
Jeff Johnson32d95a32012-09-10 13:15:23 -07003973 /* This configuration is valid only when magicPktEnable=1.
3974 * It requests hardware to wake up when it receives the
3975 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003976 */
3977 tANI_U8 ucWowDisassocRcv;
3978
Jeff Johnson32d95a32012-09-10 13:15:23 -07003979 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003980 * It requests hardware to wake up when it has missed
3981 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003982 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003983 */
3984 tANI_U8 ucWowMaxMissedBeacons;
3985
Jeff Johnson32d95a32012-09-10 13:15:23 -07003986 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003987 * This is a timeout value in units of microsec. It requests
3988 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003989 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003990 */
3991 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003992
Jeff Johnson295189b2012-06-20 16:38:30 -07003993 /* This configuration directs the WoW packet filtering to look for EAP-ID
3994 * requests embedded in EAPOL frames and use this as a wake source.
3995 */
3996 tANI_U8 ucWoWEAPIDRequestEnable;
3997
3998 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3999 * requests and use this as a wake source.
4000 */
4001 tANI_U8 ucWoWEAPOL4WayEnable;
4002
4003 /* This configuration allows a host wakeup on an network scan offload match.
4004 */
4005 tANI_U8 ucWowNetScanOffloadMatch;
4006
4007 /* This configuration allows a host wakeup on any GTK rekeying error.
4008 */
4009 tANI_U8 ucWowGTKRekeyError;
4010
4011 /* This configuration allows a host wakeup on BSS connection loss.
4012 */
4013 tANI_U8 ucWoWBSSConnLoss;
4014
Jeff Johnsone7245742012-09-05 17:12:55 -07004015 tANI_U8 bssIdx;
4016
Jeff Johnson295189b2012-06-20 16:38:30 -07004017} tHalWowlEnterParams, *tpHalWowlEnterParams;
4018
4019typedef PACKED_PRE struct PACKED_POST
4020{
4021 tHalMsgHeader header;
4022 tHalWowlEnterParams enterWowlParams;
4023} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4024
4025/*---------------------------------------------------------------------------
4026 * WLAN_HAL_EXIT_WOWL_REQ
4027 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004028
Jeff Johnson295189b2012-06-20 16:38:30 -07004029typedef PACKED_PRE struct PACKED_POST
4030{
Jeff Johnsone7245742012-09-05 17:12:55 -07004031 tANI_U8 bssIdx;
4032
4033} tHalWowlExitParams, *tpHalWowlExitParams;
4034
4035typedef PACKED_PRE struct PACKED_POST
4036{
4037 tHalMsgHeader header;
4038 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004039} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4040
4041/*---------------------------------------------------------------------------
4042 * WLAN_HAL_GET_RSSI_REQ
4043 *--------------------------------------------------------------------------*/
4044typedef PACKED_PRE struct PACKED_POST
4045{
4046 tHalMsgHeader header;
4047} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4048
Anand Kumar012623a2013-01-11 17:00:00 -08004049typedef PACKED_PRE struct PACKED_POST
4050{
4051 /* Valid STA Idx for per STA stats request */
4052 tANI_U32 staId;
4053
4054}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4055
4056
4057/*---------------------------------------------------------------------------
4058 * WLAN_HAL_GET_ROAM_RSSI_REQ
4059 *--------------------------------------------------------------------------*/
4060typedef PACKED_PRE struct PACKED_POST
4061{
4062 tHalMsgHeader header;
4063 tHalRoamRssiReqParams roamRssiReqParams;
4064} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4065
4066
Jeff Johnson295189b2012-06-20 16:38:30 -07004067/*---------------------------------------------------------------------------
4068 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4069 *--------------------------------------------------------------------------*/
4070typedef PACKED_PRE struct PACKED_POST {
4071 tANI_U8 staidx; // STA index
4072 tANI_U8 ac; // Access Category
4073 tANI_U8 up; // User Priority
4074 tANI_U32 srvInterval; // Service Interval
4075 tANI_U32 susInterval; // Suspend Interval
4076 tANI_U32 delayInterval; // Delay Interval
4077} tUapsdInfo, tpUapsdInfo;
4078
4079typedef PACKED_PRE struct PACKED_POST
4080{
4081 tHalMsgHeader header;
4082 tUapsdInfo enableUapsdAcParams;
4083} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4084
4085/*---------------------------------------------------------------------------
4086 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4087 *--------------------------------------------------------------------------*/
4088typedef PACKED_PRE struct PACKED_POST {
4089 tANI_U8 setMcstBcstFilterSetting;
4090 tANI_U8 setMcstBcstFilter;
4091} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4092
4093typedef PACKED_PRE struct PACKED_POST
4094{
4095 tHalMsgHeader header;
4096 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4097} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4098
4099/*---------------------------------------------------------------------------
4100 * WLAN_HAL_ENTER_IMPS_RSP
4101 *--------------------------------------------------------------------------*/
4102typedef PACKED_PRE struct PACKED_POST
4103{
4104 /* success or failure */
4105 tANI_U32 status;
4106} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4107
4108typedef PACKED_PRE struct PACKED_POST
4109{
4110 tHalMsgHeader header;
4111 tHalEnterImpsRspParams enterImpsRspParams;
4112} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4113
4114/*---------------------------------------------------------------------------
4115 * WLAN_HAL_EXIT_IMPS_RSP
4116 *--------------------------------------------------------------------------*/
4117typedef PACKED_PRE struct PACKED_POST
4118{
4119 /* success or failure */
4120 tANI_U32 status;
4121} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4122
4123typedef PACKED_PRE struct PACKED_POST
4124{
4125 tHalMsgHeader header;
4126 tHalExitImpsRspParams exitImpsRspParams;
4127} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4128
4129/*---------------------------------------------------------------------------
4130 * WLAN_HAL_ENTER_BMPS_RSP
4131 *--------------------------------------------------------------------------*/
4132typedef PACKED_PRE struct PACKED_POST
4133{
4134 /* success or failure */
4135 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004136 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004137} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4138
4139typedef PACKED_PRE struct PACKED_POST
4140{
4141 tHalMsgHeader header;
4142 tHalEnterBmpsRspParams enterBmpsRspParams;
4143} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4144
4145/*---------------------------------------------------------------------------
4146 * WLAN_HAL_EXIT_BMPS_RSP
4147 *--------------------------------------------------------------------------*/
4148typedef PACKED_PRE struct PACKED_POST
4149{
4150 /* success or failure */
4151 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004152 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004153} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4154
4155typedef PACKED_PRE struct PACKED_POST
4156{
4157 tHalMsgHeader header;
4158 tHalExitBmpsRspParams exitBmpsRspParams;
4159} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4160
4161/*---------------------------------------------------------------------------
4162 * WLAN_HAL_ENTER_UAPSD_RSP
4163 *--------------------------------------------------------------------------*/
4164typedef PACKED_PRE struct PACKED_POST
4165{
4166 /* success or failure */
4167 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004168 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004169}tUapsdRspParams, *tpUapsdRspParams;
4170
4171typedef PACKED_PRE struct PACKED_POST
4172{
4173 tHalMsgHeader header;
4174 tUapsdRspParams enterUapsdRspParams;
4175} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4176
4177/*---------------------------------------------------------------------------
4178 * WLAN_HAL_EXIT_UAPSD_RSP
4179 *--------------------------------------------------------------------------*/
4180typedef PACKED_PRE struct PACKED_POST
4181{
4182 /* success or failure */
4183 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004184 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004185} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4186
4187typedef PACKED_PRE struct PACKED_POST
4188{
4189 tHalMsgHeader header;
4190 tHalExitUapsdRspParams exitUapsdRspParams;
4191} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4192
4193/*---------------------------------------------------------------------------
4194 * WLAN_HAL_RSSI_NOTIFICATION_IND
4195 *--------------------------------------------------------------------------*/
4196typedef PACKED_PRE struct PACKED_POST
4197{
4198 tANI_U32 bRssiThres1PosCross : 1;
4199 tANI_U32 bRssiThres1NegCross : 1;
4200 tANI_U32 bRssiThres2PosCross : 1;
4201 tANI_U32 bRssiThres2NegCross : 1;
4202 tANI_U32 bRssiThres3PosCross : 1;
4203 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004204 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004205 tANI_U32 uBssIdx : 8;
4206 tANI_U32 bReserved : 10;
Jeff Johnson295189b2012-06-20 16:38:30 -07004207} tHalRSSINotification, *tpHalRSSINotification;
4208
4209typedef PACKED_PRE struct PACKED_POST
4210{
4211 tHalMsgHeader header;
4212 tHalRSSINotification rssiNotificationParams;
4213} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4214
4215/*---------------------------------------------------------------------------
4216 * WLAN_HAL_GET_RSSI_RSP
4217 *--------------------------------------------------------------------------*/
4218typedef PACKED_PRE struct PACKED_POST
4219{
4220 /* success or failure */
4221 tANI_U32 status;
4222 tANI_S8 rssi;
4223} tHalGetRssiParams, *tpHalGetRspParams;
4224
4225typedef PACKED_PRE struct PACKED_POST
4226{
4227 tHalMsgHeader header;
4228 tHalGetRssiParams rssiRspParams;
4229} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4230
4231/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004232 * WLAN_HAL_GET_ROAM_RSSI_RSP
4233 *--------------------------------------------------------------------------*/
4234typedef PACKED_PRE struct PACKED_POST
4235{
4236 /* success or failure */
4237 tANI_U32 status;
4238
4239 tANI_U8 staId;
4240 tANI_S8 rssi;
4241} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4242
4243typedef PACKED_PRE struct PACKED_POST
4244{
4245 tHalMsgHeader header;
4246 tHalGetRoamRssiParams roamRssiRspParams;
4247} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4248
4249/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004250 * WLAN_HAL_ENTER_WOWL_RSP
4251 *--------------------------------------------------------------------------*/
4252typedef PACKED_PRE struct PACKED_POST
4253{
4254 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004255 tANI_U32 status;
4256 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004257} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4258
4259typedef PACKED_PRE struct PACKED_POST
4260{
4261 tHalMsgHeader header;
4262 tHalEnterWowlRspParams enterWowlRspParams;
4263} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4264
4265/*---------------------------------------------------------------------------
4266 * WLAN_HAL_EXIT_WOWL_RSP
4267 *--------------------------------------------------------------------------*/
4268typedef PACKED_PRE struct PACKED_POST
4269{
4270 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004271 tANI_U32 status;
4272 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004273} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4274
4275typedef PACKED_PRE struct PACKED_POST
4276{
4277 tHalMsgHeader header;
4278 tHalExitWowlRspParams exitWowlRspParams;
4279} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4280
4281/*---------------------------------------------------------------------------
4282 * WLAN_HAL_ADD_BCN_FILTER_RSP
4283 *--------------------------------------------------------------------------*/
4284typedef PACKED_PRE struct PACKED_POST
4285{
4286 /* success or failure */
4287 tANI_U32 status;
4288} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4289
4290typedef PACKED_PRE struct PACKED_POST
4291{
4292 tHalMsgHeader header;
4293 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4294} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4295
4296/*---------------------------------------------------------------------------
4297 * WLAN_HAL_REM_BCN_FILTER_RSP
4298 *--------------------------------------------------------------------------*/
4299typedef PACKED_PRE struct PACKED_POST
4300{
4301 /* success or failure */
4302 tANI_U32 status;
4303} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4304
4305typedef PACKED_PRE struct PACKED_POST
4306{
4307 tHalMsgHeader header;
4308 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4309} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4310
4311/*---------------------------------------------------------------------------
4312 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4313 *--------------------------------------------------------------------------*/
4314typedef PACKED_PRE struct PACKED_POST
4315{
4316 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004317 tANI_U32 status;
4318 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004319} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4320
4321typedef PACKED_PRE struct PACKED_POST
4322{
4323 tHalMsgHeader header;
4324 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4325} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4326
4327/*---------------------------------------------------------------------------
4328 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4329 *--------------------------------------------------------------------------*/
4330typedef PACKED_PRE struct PACKED_POST
4331{
4332 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004333 tANI_U32 status;
4334 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004335} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4336
4337typedef PACKED_PRE struct PACKED_POST
4338{
4339 tHalMsgHeader header;
4340 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4341} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4342
4343/*---------------------------------------------------------------------------
4344 * WLAN_HAL_HOST_OFFLOAD_RSP
4345 *--------------------------------------------------------------------------*/
4346typedef PACKED_PRE struct PACKED_POST
4347{
4348 /* success or failure */
4349 tANI_U32 status;
4350} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4351
4352typedef PACKED_PRE struct PACKED_POST
4353{
4354 tHalMsgHeader header;
4355 tHalHostOffloadRspParams hostOffloadRspParams;
4356} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4357
4358/*---------------------------------------------------------------------------
4359 * WLAN_HAL_KEEP_ALIVE_RSP
4360 *--------------------------------------------------------------------------*/
4361typedef PACKED_PRE struct PACKED_POST
4362{
4363 /* success or failure */
4364 tANI_U32 status;
4365} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4366
4367typedef PACKED_PRE struct PACKED_POST
4368{
4369 tHalMsgHeader header;
4370 tHalKeepAliveRspParams keepAliveRspParams;
4371} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4372
4373/*---------------------------------------------------------------------------
4374 * WLAN_HAL_SET_RSSI_THRESH_RSP
4375 *--------------------------------------------------------------------------*/
4376typedef PACKED_PRE struct PACKED_POST
4377{
4378 /* success or failure */
4379 tANI_U32 status;
4380} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4381
4382typedef PACKED_PRE struct PACKED_POST
4383{
4384 tHalMsgHeader header;
4385 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4386} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4387
4388/*---------------------------------------------------------------------------
4389 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4390 *--------------------------------------------------------------------------*/
4391typedef PACKED_PRE struct PACKED_POST
4392{
4393 /* success or failure */
4394 tANI_U32 status;
4395} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4396
4397typedef PACKED_PRE struct PACKED_POST
4398{
4399 tHalMsgHeader header;
4400 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4401} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4402
4403/*---------------------------------------------------------------------------
4404 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4405 *--------------------------------------------------------------------------*/
4406typedef PACKED_PRE struct PACKED_POST
4407{
4408 /* success or failure */
4409 tANI_U32 status;
4410} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4411
4412typedef PACKED_PRE struct PACKED_POST
4413{
4414 tHalMsgHeader header;
4415 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4416} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4417
4418/*---------------------------------------------------------------------------
4419 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4420 *--------------------------------------------------------------------------*/
4421
4422typedef PACKED_PRE struct PACKED_POST
4423{
4424 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4425 //the request has power constraints, this should be applied only to that session
4426 tSirMacAddr selfStaMacAddr;
4427 //In request,
4428 //power == MaxTx power to be used.
4429 tPowerdBm power;
4430
4431}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4432
4433
4434typedef PACKED_PRE struct PACKED_POST
4435{
4436 tHalMsgHeader header;
4437 tSetMaxTxPwrParams setMaxTxPwrParams;
4438}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4439
4440/*---------------------------------------------------------------------------
4441*WLAN_HAL_SET_MAX_TX_POWER_RSP
4442*--------------------------------------------------------------------------*/
4443
4444typedef PACKED_PRE struct PACKED_POST
4445{
4446 //power == tx power used for management frames.
4447 tPowerdBm power;
4448
4449 /* success or failure */
4450 tANI_U32 status;
4451}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4452
4453typedef PACKED_PRE struct PACKED_POST
4454{
4455 tHalMsgHeader header;
4456 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4457}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4458
4459/*---------------------------------------------------------------------------
4460 *WLAN_HAL_SET_TX_POWER_REQ
4461 *--------------------------------------------------------------------------*/
4462
4463typedef PACKED_PRE struct PACKED_POST
4464{
4465 /* TX Power in milli watts */
4466 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004467 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004468}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4469
4470
4471typedef PACKED_PRE struct PACKED_POST
4472{
4473 tHalMsgHeader header;
4474 tSetTxPwrReqParams setTxPwrReqParams;
4475}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4476
4477/*---------------------------------------------------------------------------
4478*WLAN_HAL_SET_TX_POWER_RSP
4479*--------------------------------------------------------------------------*/
4480
4481typedef PACKED_PRE struct PACKED_POST
4482{
4483 /* success or failure */
4484 tANI_U32 status;
4485}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4486
4487typedef PACKED_PRE struct PACKED_POST
4488{
4489 tHalMsgHeader header;
4490 tSetTxPwrRspParams setTxPwrRspParams;
4491}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4492
4493/*---------------------------------------------------------------------------
4494 *WLAN_HAL_GET_TX_POWER_REQ
4495 *--------------------------------------------------------------------------*/
4496
4497typedef PACKED_PRE struct PACKED_POST
4498{
4499 tANI_U8 staId;
4500}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4501
4502typedef PACKED_PRE struct PACKED_POST
4503{
4504 tHalMsgHeader header;
4505 tGetTxPwrReqParams getTxPwrReqParams;
4506}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4507
4508/*---------------------------------------------------------------------------
4509*WLAN_HAL_GET_TX_POWER_RSP
4510*--------------------------------------------------------------------------*/
4511
4512typedef PACKED_PRE struct PACKED_POST
4513{
4514 /* success or failure */
4515 tANI_U32 status;
4516
4517 /* TX Power in milli watts */
4518 tANI_U32 txPower;
4519}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4520
4521typedef PACKED_PRE struct PACKED_POST
4522{
4523 tHalMsgHeader header;
4524 tGetTxPwrRspParams getTxPwrRspParams;
4525}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4526
4527#ifdef WLAN_FEATURE_P2P
4528/*---------------------------------------------------------------------------
4529 *WLAN_HAL_SET_P2P_GONOA_REQ
4530 *--------------------------------------------------------------------------*/
4531
4532typedef PACKED_PRE struct PACKED_POST
4533{
4534 tANI_U8 opp_ps;
4535 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004536 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004537 tANI_U32 duration;
4538 tANI_U32 interval;
4539 tANI_U32 single_noa_duration;
4540 tANI_U8 psSelection;
4541}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4542
4543
4544typedef PACKED_PRE struct PACKED_POST
4545{
4546 tHalMsgHeader header;
4547 tSetP2PGONOAParams setP2PGONOAParams;
4548}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4549
4550/*---------------------------------------------------------------------------
4551*WLAN_HAL_SET_P2P_GONOA_RSP
4552*--------------------------------------------------------------------------*/
4553
4554typedef PACKED_PRE struct PACKED_POST
4555{
4556 /* success or failure */
4557 tANI_U32 status;
4558}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4559
4560typedef PACKED_PRE struct PACKED_POST
4561{
4562 tHalMsgHeader header;
4563 tSetP2PGONOARspParams setP2PGONOARspParams;
4564}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4565#endif
4566
4567/*---------------------------------------------------------------------------
4568 *WLAN_HAL_ADD_SELF_STA_REQ
4569 *--------------------------------------------------------------------------*/
4570
4571typedef PACKED_PRE struct PACKED_POST
4572{
4573 tSirMacAddr selfMacAddr;
4574 tANI_U32 status;
4575}tAddStaSelfParams, *tpAddStaSelfParams;
4576
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004577typedef PACKED_PRE struct PACKED_POST
4578{
4579 tSirMacAddr selfMacAddr;
4580 tANI_U32 status;
4581 tHalIfacePersona iface_persona;
4582}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004583
4584typedef PACKED_PRE struct PACKED_POST
4585{
4586 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004587 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07004588 tAddStaSelfParams addStaSelfParams;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004589 tAddStaSelfParams_V1 addStaSelfParams_V1;
4590 }uAddStaSelfParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004591}tAddStaSelfReq, *tpAddStaSelfReq;
4592
4593/*---------------------------------------------------------------------------
4594*WLAN_HAL_ADD_SELF_STA_RSP
4595*--------------------------------------------------------------------------*/
4596
4597typedef PACKED_PRE struct PACKED_POST
4598{
4599 /* success or failure */
4600 tANI_U32 status;
4601
4602 /*Self STA Index */
4603 tANI_U8 selfStaIdx;
4604
4605 /* DPU Index (IGTK, PTK, GTK all same) */
4606 tANI_U8 dpuIdx;
4607
4608 /* DPU Signature */
4609 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004610
Jeff Johnson295189b2012-06-20 16:38:30 -07004611}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4612
4613typedef PACKED_PRE struct PACKED_POST
4614{
4615 tHalMsgHeader header;
4616 tAddStaSelfRspParams addStaSelfRspParams;
4617}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4618
4619
4620/*---------------------------------------------------------------------------
4621 WLAN_HAL_DEL_STA_SELF_REQ
4622---------------------------------------------------------------------------*/
4623
4624typedef PACKED_PRE struct PACKED_POST
4625{
4626 tSirMacAddr selfMacAddr;
4627
4628}tDelStaSelfParams, *tpDelStaSelfParams;
4629
4630typedef PACKED_PRE struct PACKED_POST
4631{
4632 tHalMsgHeader header;
4633 tDelStaSelfParams delStaSelfParams;
4634} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4635
4636
4637/*---------------------------------------------------------------------------
4638 WLAN_HAL_DEL_STA_SELF_RSP
4639---------------------------------------------------------------------------*/
4640
4641typedef PACKED_PRE struct PACKED_POST
4642{
4643 /*success or failure */
4644 tANI_U32 status;
4645
4646 tSirMacAddr selfMacAddr;
4647}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4648
4649typedef PACKED_PRE struct PACKED_POST
4650{
4651 tHalMsgHeader header;
4652 tDelStaSelfRspParams delStaSelfRspParams;
4653} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4654
4655
4656#ifdef WLAN_FEATURE_VOWIFI_11R
4657
4658/*---------------------------------------------------------------------------
4659 *WLAN_HAL_AGGR_ADD_TS_REQ
4660 *--------------------------------------------------------------------------*/
4661
4662typedef PACKED_PRE struct PACKED_POST
4663{
4664 /* Station Index */
4665 tANI_U16 staIdx;
4666
4667 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4668 /* This will carry the bitmap with the bit positions representing different AC.s*/
4669 tANI_U16 tspecIdx;
4670
4671 /* Tspec info per AC To program TPE with required parameters */
4672 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4673
4674 /* U-APSD Flags: 1b per AC. Encoded as follows:
4675 b7 b6 b5 b4 b3 b2 b1 b0 =
4676 X X X X BE BK VI VO */
4677 tANI_U8 uAPSD;
4678
4679 /* These parameters are for all the access categories */
4680 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4681 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4682 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4683
4684}tAggrAddTsParams, *tpAggrAddTsParams;
4685
4686
4687typedef PACKED_PRE struct PACKED_POST
4688{
4689 tHalMsgHeader header;
4690 tAggrAddTsParams aggrAddTsParam;
4691}tAggrAddTsReq, *tpAggrAddTsReq;
4692
4693/*---------------------------------------------------------------------------
4694*WLAN_HAL_AGGR_ADD_TS_RSP
4695*--------------------------------------------------------------------------*/
4696
4697typedef PACKED_PRE struct PACKED_POST
4698{
4699 /* success or failure */
4700 tANI_U32 status0;
4701 /* FIXME PRIMA for future use for 11R */
4702 tANI_U32 status1;
4703}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4704
4705typedef PACKED_PRE struct PACKED_POST
4706{
4707 tHalMsgHeader header;
4708 tAggrAddTsRspParams aggrAddTsRspParam;
4709}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4710
4711#endif
4712
4713/*---------------------------------------------------------------------------
4714 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4715 *--------------------------------------------------------------------------*/
4716typedef PACKED_PRE struct PACKED_POST
4717{
4718 tANI_U8 isAppsCpuAwake;
4719} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4720
4721typedef PACKED_PRE struct PACKED_POST
4722{
4723 tHalMsgHeader header;
4724 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4725} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4726
4727/*---------------------------------------------------------------------------
4728 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4729 *--------------------------------------------------------------------------*/
4730typedef PACKED_PRE struct PACKED_POST
4731{
4732 /* success or failure */
4733 tANI_U32 status;
4734} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4735
4736typedef PACKED_PRE struct PACKED_POST
4737{
4738 tHalMsgHeader header;
4739 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4740} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4741/*---------------------------------------------------------------------------
4742 * WLAN_HAL_DUMP_COMMAND_REQ
4743 *--------------------------------------------------------------------------*/
4744
4745typedef PACKED_PRE struct PACKED_POST
4746{
4747 tANI_U32 argument1;
4748 tANI_U32 argument2;
4749 tANI_U32 argument3;
4750 tANI_U32 argument4;
4751 tANI_U32 argument5;
4752
4753}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4754
4755typedef PACKED_PRE struct PACKED_POST
4756{
4757 tHalMsgHeader header;
4758 tHalDumpCmdReqParams dumpCmdReqParams;
4759} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4760
4761/*---------------------------------------------------------------------------
4762 * WLAN_HAL_DUMP_COMMAND_RSP
4763 *--------------------------------------------------------------------------*/
4764
4765typedef PACKED_PRE struct PACKED_POST
4766{
4767 /* success or failure */
4768 tANI_U32 status;
4769 /*Length of the responce message*/
4770 tANI_U32 rspLength;
4771 /*FiXME: Currently considering the the responce will be less than 100bytes */
4772 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004773
Jeff Johnson295189b2012-06-20 16:38:30 -07004774} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4775
4776typedef PACKED_PRE struct PACKED_POST
4777{
4778 tHalMsgHeader header;
4779 tHalDumpCmdRspParams dumpCmdRspParams;
4780} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4781
4782/*---------------------------------------------------------------------------
4783 *WLAN_HAL_COEX_IND
4784 *-------------------------------------------------------------------------*/
4785#define WLAN_COEX_IND_DATA_SIZE (4)
4786#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4787#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004788#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
4789#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004790#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
4791#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07004792
4793typedef PACKED_PRE struct PACKED_POST
4794{
4795 /*Coex Indication Type*/
4796 tANI_U32 coexIndType;
4797
4798 /*Coex Indication Data*/
4799 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4800}tCoexIndParams,*tpCoexIndParams;
4801
4802typedef PACKED_PRE struct PACKED_POST
4803{
4804 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004805 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004806}tCoexIndMsg, *tpCoexIndMsg;
4807
4808/*---------------------------------------------------------------------------
4809 *WLAN_HAL_OTA_TX_COMPL_IND
4810 *-------------------------------------------------------------------------*/
4811
4812typedef PACKED_PRE struct PACKED_POST
4813{
4814 /*Tx Complete Indication Success or Failure*/
4815 tANI_U32 status;
4816}tTxComplParams,*tpTxComplParams;
4817
4818typedef PACKED_PRE struct PACKED_POST
4819{
4820 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004821 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004822}tTxComplIndMsg, *tpTxComplIndMsg;
4823
4824/*---------------------------------------------------------------------------
4825 * WLAN_HAL_HOST_SUSPEND_IND
4826 *-------------------------------------------------------------------------*/
4827
4828typedef PACKED_PRE struct PACKED_POST
4829{
4830 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004831 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004832}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4833
4834typedef PACKED_PRE struct PACKED_POST
4835{
4836 tHalMsgHeader header;
4837 tHalWlanHostSuspendIndParam suspendIndParams;
4838}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4839
4840/*---------------------------------------------------------------------------
4841 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4842 *-------------------------------------------------------------------------*/
4843
4844typedef PACKED_PRE struct PACKED_POST
4845{
4846 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004847 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004848}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4849
4850typedef PACKED_PRE struct PACKED_POST
4851{
4852 tHalMsgHeader header;
4853 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4854}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4855
4856#ifdef WLAN_FEATURE_P2P
4857/*---------------------------------------------------------------------------
4858 *WLAN_HAL_NOA_ATTR_IND
4859 *-------------------------------------------------------------------------*/
4860
4861typedef PACKED_PRE struct PACKED_POST
4862{
4863 tANI_U8 index ;
4864 tANI_U8 oppPsFlag ;
4865 tANI_U16 ctWin ;
4866
4867 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004868 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004869 tANI_U32 uNoa1Duration;
4870 tANI_U32 uNoa1Interval;
4871 tANI_U32 uNoa1StartTime;
4872
4873 tANI_U16 uNoa2IntervalCnt;
4874 tANI_U16 rsvd2;
4875 tANI_U32 uNoa2Duration;
4876 tANI_U32 uNoa2Interval;
4877 tANI_U32 uNoa2StartTime;
4878
4879 tANI_U32 status;
4880}tNoaAttrIndParams, *tpNoaAttrIndParams;
4881
4882typedef PACKED_PRE struct PACKED_POST
4883{
4884 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004885 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004886}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004887
4888/*---------------------------------------------------------------------------
4889 *WLAN_HAL_NOA_START_IND
4890 *-------------------------------------------------------------------------*/
4891
4892typedef PACKED_PRE struct PACKED_POST
4893{
4894 tANI_U32 status;
4895 tANI_U32 bssIdx;
4896}tNoaStartIndParams, *tpNoaStartIndParams;
4897
4898typedef PACKED_PRE struct PACKED_POST
4899{
4900 tHalMsgHeader header;
4901 tNoaStartIndParams noaStartIndParams;
4902}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004903#endif
4904
4905/*---------------------------------------------------------------------------
4906 * WLAN_HAL_HOST_RESUME_REQ
4907 *-------------------------------------------------------------------------*/
4908
4909typedef PACKED_PRE struct PACKED_POST
4910{
4911 tANI_U8 configuredMcstBcstFilterSetting;
4912}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4913
4914typedef PACKED_PRE struct PACKED_POST
4915{
4916 tHalMsgHeader header;
4917 tHalWlanHostResumeReqParam resumeReqParams;
4918}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4919
4920/*---------------------------------------------------------------------------
4921 * WLAN_HAL_HOST_RESUME_RSP
4922 *--------------------------------------------------------------------------*/
4923typedef PACKED_PRE struct PACKED_POST
4924{
4925 /* success or failure */
4926 tANI_U32 status;
4927} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4928
4929typedef PACKED_PRE struct PACKED_POST
4930{
4931 tHalMsgHeader header;
4932 tHalHostResumeRspParams hostResumeRspParams;
4933} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4934
Anand Kumar012623a2013-01-11 17:00:00 -08004935typedef PACKED_PRE struct PACKED_POST
4936{
4937 tANI_U16 staIdx;
4938 // Peer MAC Address, whose BA session has timed out
4939 tSirMacAddr peerMacAddr;
4940 // TID for which a BA session timeout is being triggered
4941 tANI_U8 baTID;
4942 // DELBA direction
4943 // 1 - Originator
4944 // 0 - Recipient
4945 tANI_U8 baDirection;
4946 tANI_U32 reasonCode;
4947 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4948} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4949
4950typedef PACKED_PRE struct PACKED_POST
4951{
4952 tHalMsgHeader header;
4953 tHalWlanDelBaIndMsg hostdelBaParam;
4954} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4955
Jeff Johnson295189b2012-06-20 16:38:30 -07004956/*---------------------------------------------------------------------------
4957 *PNO Messages
4958 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004959/* Max number of channels that a network can be found on*/
4960/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
4961 * be changed at same time
4962 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07004963#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07004964
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304965/*Max number of channels that a network can be found on*/
4966#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4967
Jeff Johnson295189b2012-06-20 16:38:30 -07004968/*Maximum numbers of networks supported by PNO*/
4969#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4970
4971/*The number of scan time intervals that can be programmed into PNO*/
4972#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4973
4974/*Maximum size of the probe template*/
4975#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4976
Jeff Johnson32d95a32012-09-10 13:15:23 -07004977/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004978 Immediate - scanning will start immediately and PNO procedure will
4979 be repeated based on timer
4980 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07004981 Resume - scanning will start on system resume
4982 Delay - start the scan timer to trigger PNO scan
4983 */
Jeff Johnson295189b2012-06-20 16:38:30 -07004984typedef enum
4985{
4986 ePNO_MODE_IMMEDIATE,
4987 ePNO_MODE_ON_SUSPEND,
4988 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05304989 ePNO_MODE_DELAY,
4990 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07004991 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4992} ePNOMode;
4993
4994/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004995typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004996{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004997 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004998 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004999
Jeff Johnson295189b2012-06-20 16:38:30 -07005000 // Upper layer authentication types
5001 eAUTH_TYPE_WPA = 2,
5002 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005003
Jeff Johnson295189b2012-06-20 16:38:30 -07005004 eAUTH_TYPE_RSN = 4,
5005 eAUTH_TYPE_RSN_PSK = 5,
5006 eAUTH_TYPE_FT_RSN = 6,
5007 eAUTH_TYPE_FT_RSN_PSK = 7,
5008 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5009 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005010 eAUTH_TYPE_CCKM_WPA = 10,
5011 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005012
Jeff Johnson295189b2012-06-20 16:38:30 -07005013 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5014
5015}tAuthType;
5016
5017/* Encryption type */
5018typedef enum eEdType
5019{
5020 eED_ANY = 0,
5021 eED_NONE = 1,
5022 eED_WEP = 2,
5023 eED_TKIP = 3,
5024 eED_CCMP = 4,
5025 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005026
Jeff Johnson295189b2012-06-20 16:38:30 -07005027 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5028} tEdType;
5029
5030/* SSID broadcast type */
5031typedef enum eSSIDBcastType
5032{
5033 eBCAST_UNKNOWN = 0,
5034 eBCAST_NORMAL = 1,
5035 eBCAST_HIDDEN = 2,
5036
5037 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5038} tSSIDBcastType;
5039
Jeff Johnson32d95a32012-09-10 13:15:23 -07005040/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005041 The network description for which PNO will have to look for
5042*/
5043typedef PACKED_PRE struct PACKED_POST
5044{
5045 /*SSID of the BSS*/
5046 tSirMacSSid ssId;
5047
5048 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005049 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005050
5051 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005052 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005053
Jeff Johnson32d95a32012-09-10 13:15:23 -07005054 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005055 0 - if all channels */
5056 tANI_U8 ucChannelCount;
5057 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5058
5059 /*Indicates the RSSI threshold for the network to be considered*/
5060 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005061}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005062
5063typedef PACKED_PRE struct PACKED_POST
5064{
5065 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005066 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005067
Jeff Johnson32d95a32012-09-10 13:15:23 -07005068 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005069 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005070 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005071
Jeff Johnson32d95a32012-09-10 13:15:23 -07005072 /*e.g: 2 3
5073 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005074 - it will wait 2s between consecutive scans for 3 times
5075 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005076}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005077
Jeff Johnson32d95a32012-09-10 13:15:23 -07005078/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005079 The network parameters to be sent to the PNO algorithm
5080*/
5081typedef PACKED_PRE struct PACKED_POST
5082{
5083 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005084 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005085
Jeff Johnson32d95a32012-09-10 13:15:23 -07005086 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005087 two consecutive scan procedures
5088 If the desired is for a uniform timer that fires always at the exact same
5089 interval - one single value is to be set
5090 If there is a desire for a more complex - telescopic like timer multiple
5091 values can be set - once PNO reaches the end of the array it will
5092 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005093 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005094
5095}tScanTimersType;
5096
5097typedef PACKED_PRE struct PACKED_POST {
5098
5099 /*Enable PNO*/
5100 tANI_U32 enable;
5101
5102 /*Immediate, On Suspend, On Resume*/
5103 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005104
Jeff Johnson295189b2012-06-20 16:38:30 -07005105 /*Number of networks sent for PNO*/
5106 tANI_U32 ucNetworksCount;
5107
5108 /*The networks that PNO needs to look for*/
5109 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5110
5111 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005112 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005113
5114 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005115 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005116 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5117
5118 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005119 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005120 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5121
5122} tPrefNetwListParams, * tpPrefNetwListParams;
5123
5124/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005125 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005126*/
5127typedef PACKED_PRE struct PACKED_POST
5128{
5129 tHalMsgHeader header;
5130 tPrefNetwListParams prefNetwListParams;
5131} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5132
5133
Jeff Johnson32d95a32012-09-10 13:15:23 -07005134/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005135 The network description for which PNO will have to look for
5136*/
5137typedef PACKED_PRE struct PACKED_POST
5138{
5139 /*SSID of the BSS*/
5140 tSirMacSSid ssId;
5141
5142 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005143 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005144
5145 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005146 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005147
5148 /*SSID broadcast type, normal, hidden or unknown*/
5149 tSSIDBcastType bcastNetworkType;
5150
Jeff Johnson32d95a32012-09-10 13:15:23 -07005151 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005152 0 - if all channels */
5153 tANI_U8 ucChannelCount;
5154 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5155
5156 /*Indicates the RSSI threshold for the network to be considered*/
5157 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005158}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005159
5160typedef PACKED_PRE struct PACKED_POST {
5161
5162 /*Enable PNO*/
5163 tANI_U32 enable;
5164
5165 /*Immediate, On Suspend, On Resume*/
5166 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005167
Jeff Johnson295189b2012-06-20 16:38:30 -07005168 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005169 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005170
5171 /*The networks that PNO needs to look for*/
5172 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5173
5174 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005175 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005176
5177 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005178 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005179 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5180
5181 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005182 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005183 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5184
5185} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5186
5187/*
5188 Preferred network list request new
5189*/
5190typedef PACKED_PRE struct PACKED_POST
5191{
5192 tHalMsgHeader header;
5193 tPrefNetwListParamsNew prefNetwListParams;
5194} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5195
5196/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005197 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005198*/
5199typedef PACKED_PRE struct PACKED_POST
5200{
5201 tHalMsgHeader header;
5202
Jeff Johnson32d95a32012-09-10 13:15:23 -07005203 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005204 the request and will start scanning*/
5205 tANI_U32 status;
5206} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5207
5208/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005209 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005210*/
5211typedef PACKED_PRE struct PACKED_POST {
5212
5213 /*Network that was found with the highest RSSI*/
5214 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005215
Jeff Johnson295189b2012-06-20 16:38:30 -07005216 /*Indicates the RSSI */
5217 tANI_U8 rssi;
5218
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005219 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
Gopichand Nakkalaa14f43b2013-05-14 00:08:53 +05305220 tANI_U16 frameLength;
5221
Jeff Johnson295189b2012-06-20 16:38:30 -07005222} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5223
5224/*
5225 Preferred network found indication
5226*/
5227typedef PACKED_PRE struct PACKED_POST {
5228
5229 tHalMsgHeader header;
5230 tPrefNetwFoundParams prefNetwFoundParams;
5231} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5232
5233
5234typedef PACKED_PRE struct PACKED_POST {
5235
5236 /*RSSI Threshold*/
5237 tANI_U8 ucRssiThreshold;
5238
5239} tRssiFilterParams, * tpRssiFilterParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005240#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5241typedef PACKED_PRE struct PACKED_POST
5242{
5243 tSirMacSSid ssId;
5244 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5245 tANI_U32 authentication;
5246 tEdType encryption;
5247 tEdType mcencryption;
5248 tANI_U8 ChannelCount;
5249 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5250}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005251
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005252typedef PACKED_PRE struct PACKED_POST
5253{
5254 tANI_U8 mdiePresent;
5255 tANI_U16 mobilityDomain;
5256}tMobilityDomainInfo;
5257
5258typedef PACKED_PRE struct PACKED_POST {
5259 eAniBoolean RoamScanOffloadEnabled;
5260 tANI_S8 LookupThreshold;
5261 tANI_U8 RoamRssiDiff;
5262 tANI_U8 ChannelCacheType;
5263 tANI_U8 Command;
5264 tANI_U8 StartScanReason;
5265 tANI_U16 NeighborScanTimerPeriod;
5266 tANI_U16 NeighborRoamScanRefreshPeriod;
5267 tANI_U16 NeighborScanChannelMinTime;
5268 tANI_U16 NeighborScanChannelMaxTime;
5269 tANI_U16 EmptyRefreshScanPeriod;
5270 tANI_U8 ValidChannelCount;
5271 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5272 eAniBoolean IsCCXEnabled;
5273
5274 tANI_U16 us24GProbeSize;
5275 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5276 tANI_U16 us5GProbeSize;
5277 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5278 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005279 tANI_U8 nProbes;
5280 tANI_U16 HomeAwayTime;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005281 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5282 tRoamNetworkType ConnectedNetwork;
5283 tMobilityDomainInfo MDID;
5284} tRoamCandidateListParams, * tpRoamCandidateListParams;
5285
5286typedef PACKED_PRE struct PACKED_POST
5287{
5288 tHalMsgHeader header;
5289 tRoamCandidateListParams RoamScanOffloadNetwListParams;
5290} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5291
5292typedef PACKED_PRE struct PACKED_POST
5293{
5294 tHalMsgHeader header;
5295
5296 /*status of the request - just to indicate that PNO has acknowledged
5297 * the request and will start scanning*/
5298 tANI_U32 status;
5299} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5300#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005301/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005302 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005303*/
5304typedef PACKED_PRE struct PACKED_POST
5305{
5306 tHalMsgHeader header;
5307 tRssiFilterParams prefRSSIFilterParams;
5308} tSetRssiFilterReq, *tpSetRssiFilterReq;
5309
5310/*
5311 Set RSSI filter resp
5312*/
5313typedef PACKED_PRE struct PACKED_POST{
5314 tHalMsgHeader header;
5315 /*status of the request */
5316 tANI_U32 status;
5317} tSetRssiFilterResp, *tpSetRssiFilterResp;
5318/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005319 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005320*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005321typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005322{
5323
5324 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005325 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005326
5327 /*Lets PNO know that host has determined the regulatory domain*/
5328 tANI_U8 b11dResolved;
5329
5330 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005331 tANI_U8 ucChannelCount;
5332 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005333
5334 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005335 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005336
5337 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005338 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005339
5340 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005341 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005342
5343 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005344 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005345
5346 /*Cb State*/
5347 ePhyChanBondState cbState;
5348
5349} tUpdateScanParams, * tpUpdateScanParams;
5350
5351/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305352 Update scan params
5353*/
5354typedef PACKED_PRE struct PACKED_POST
5355{
5356
5357 /*Host setting for 11d*/
5358 tANI_U8 b11dEnabled;
5359
5360 /*Lets PNO know that host has determined the regulatory domain*/
5361 tANI_U8 b11dResolved;
5362
5363 /*Channels on which PNO is allowed to scan*/
5364 tANI_U8 ucChannelCount;
5365 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5366
5367 /*Minimum channel time*/
5368 tANI_U16 usActiveMinChTime;
5369
5370 /*Maximum channel time*/
5371 tANI_U16 usActiveMaxChTime;
5372
5373 /*Minimum channel time*/
5374 tANI_U16 usPassiveMinChTime;
5375
5376 /*Maximum channel time*/
5377 tANI_U16 usPassiveMaxChTime;
5378
5379 /*Cb State*/
5380 ePhyChanBondState cbState;
5381
5382} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5383
5384/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005385 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005386 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005387*/
5388typedef PACKED_PRE struct PACKED_POST{
5389
5390 tHalMsgHeader header;
5391 tUpdateScanParams scanParams;
5392} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5393
5394/*
5395 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005396 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005397*/
5398typedef PACKED_PRE struct PACKED_POST{
5399
5400 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305401 tUpdateScanParamsEx scanParams;
5402} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5403
5404/*
5405 Update scan params - sent from host to PNO
5406 to be used during PNO scanning
5407*/
5408typedef PACKED_PRE struct PACKED_POST{
5409
5410 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005411
5412 /*status of the request */
5413 tANI_U32 status;
5414
5415} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5416
5417/*---------------------------------------------------------------------------
5418 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5419 *--------------------------------------------------------------------------*/
5420typedef PACKED_PRE struct PACKED_POST
5421{
5422 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5423 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5424 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5425 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5426} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5427
5428typedef PACKED_PRE struct PACKED_POST
5429{
5430 tHalMsgHeader header;
5431 tHalTxPerTrackingReqParam txPerTrackingParams;
5432} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5433
5434/*---------------------------------------------------------------------------
5435 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5436 *--------------------------------------------------------------------------*/
5437typedef PACKED_PRE struct PACKED_POST
5438{
5439 /* success or failure */
5440 tANI_U32 status;
5441} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5442
5443typedef PACKED_PRE struct PACKED_POST
5444{
5445 tHalMsgHeader header;
5446 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5447} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5448
5449/*---------------------------------------------------------------------------
5450 * WLAN_HAL_TX_PER_HIT_IND
5451 *--------------------------------------------------------------------------*/
5452typedef PACKED_PRE struct PACKED_POST
5453{
5454 tHalMsgHeader header;
5455}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5456
5457/*---------------------------------------------------------------------------
5458 *******************Packet Filtering Definitions Begin*******************
5459 *--------------------------------------------------------------------------*/
5460#define HAL_PROTOCOL_DATA_LEN 8
5461#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5462#define HAL_MAX_NUM_FILTERS 20
5463#define HAL_MAX_CMP_PER_FILTER 10
5464
5465typedef enum
5466{
5467 HAL_RCV_FILTER_TYPE_INVALID,
5468 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5469 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5470 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5471}tHalReceivePacketFilterType;
5472
Jeff Johnson32d95a32012-09-10 13:15:23 -07005473typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005474{
5475 HAL_FILTER_PROTO_TYPE_INVALID,
5476 HAL_FILTER_PROTO_TYPE_MAC,
5477 HAL_FILTER_PROTO_TYPE_ARP,
5478 HAL_FILTER_PROTO_TYPE_IPV4,
5479 HAL_FILTER_PROTO_TYPE_IPV6,
5480 HAL_FILTER_PROTO_TYPE_UDP,
5481 HAL_FILTER_PROTO_TYPE_MAX
5482}tHalRcvPktFltProtocolType;
5483
Jeff Johnson32d95a32012-09-10 13:15:23 -07005484typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005485{
5486 HAL_FILTER_CMP_TYPE_INVALID,
5487 HAL_FILTER_CMP_TYPE_EQUAL,
5488 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5489 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5490 HAL_FILTER_CMP_TYPE_MAX
5491}tHalRcvPktFltCmpFlagType;
5492
Jeff Johnson32d95a32012-09-10 13:15:23 -07005493typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005494{
5495 tANI_U8 protocolLayer;
5496 tANI_U8 cmpFlag;
5497 tANI_U16 dataLength; /* Length of the data to compare */
5498 tANI_U8 dataOffset; /* from start of the respective frame header */
5499 tANI_U8 reserved; /* Reserved field */
5500 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5501 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5502}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5503
5504typedef PACKED_PRE struct PACKED_POST
5505{
5506 tANI_U8 filterId;
5507 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005508 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005509 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005510 tHalRcvPktFilterParams paramsData[1];
5511}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5512
5513typedef PACKED_PRE struct PACKED_POST
5514{
Jeff Johnsone7245742012-09-05 17:12:55 -07005515 tANI_U8 filterId;
5516 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005517 tANI_U8 numParams;
5518 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005519 tANI_U8 bssIdx;
5520 tHalRcvPktFilterParams paramsData[1];
5521}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5522
5523typedef PACKED_PRE struct PACKED_POST
5524{
Jeff Johnson295189b2012-06-20 16:38:30 -07005525 tHalMsgHeader header;
5526 tHalRcvPktFilterCfgType pktFilterCfg;
5527} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5528
Jeff Johnsone7245742012-09-05 17:12:55 -07005529typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005530{
5531 tANI_U8 dataOffset; /* from start of the respective frame header */
5532 tANI_U32 cMulticastAddr;
5533 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005534 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005535} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5536
5537typedef PACKED_PRE struct PACKED_POST
5538{
5539 /* success or failure */
5540 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005541 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005542} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5543
5544typedef PACKED_PRE struct PACKED_POST
5545{
5546 tHalMsgHeader header;
5547 tHalSetPktFilterRspParams pktFilterRspParams;
5548} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5549
Jeff Johnsone7245742012-09-05 17:12:55 -07005550typedef PACKED_PRE struct PACKED_POST
5551{
5552 tANI_U8 bssIdx;
5553} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005554
5555typedef PACKED_PRE struct PACKED_POST
5556{
5557 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005558 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005559} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5560
Jeff Johnsone7245742012-09-05 17:12:55 -07005561
Jeff Johnson295189b2012-06-20 16:38:30 -07005562typedef PACKED_PRE struct PACKED_POST
5563{
5564 tANI_U8 filterId;
5565 tANI_U32 matchCnt;
5566} tHalRcvFltPktMatchCnt;
5567typedef PACKED_PRE struct PACKED_POST
5568{
5569 /* Success or Failure */
5570 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005571 tANI_U32 matchCnt;
5572 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005573 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005574} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5575
5576typedef PACKED_PRE struct PACKED_POST
5577{
5578 tHalMsgHeader header;
5579 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5580} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5581
5582typedef PACKED_PRE struct PACKED_POST
5583{
5584 tANI_U32 status; /* only valid for response message */
5585 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005586 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005587}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5588
5589typedef PACKED_PRE struct PACKED_POST
5590{
5591 tHalMsgHeader header;
5592 tHalRcvFltPktClearParam filterClearParam;
5593} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5594
5595typedef PACKED_PRE struct PACKED_POST
5596{
5597 tHalMsgHeader header;
5598 tHalRcvFltPktClearParam filterClearParam;
5599} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5600
5601typedef PACKED_PRE struct PACKED_POST
5602{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005603 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005604 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005605}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5606
5607typedef PACKED_PRE struct PACKED_POST
5608{
5609 tHalMsgHeader header;
5610 tHalRcvFltMcAddrListType mcAddrList;
5611} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5612
5613typedef PACKED_PRE struct PACKED_POST
5614{
5615 tHalMsgHeader header;
5616 tHalRcvFltPktSetMcListRspType rspParam;
5617} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5618
5619
5620/*---------------------------------------------------------------------------
5621 *******************Packet Filtering Definitions End*******************
5622 *--------------------------------------------------------------------------*/
5623
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005624/*
5625 * There are two versions of this message
5626 * Version 1 : Base version
5627 * Current version : Base version + Max LI modulated DTIM
5628 */
5629typedef PACKED_PRE struct PACKED_POST
5630{
5631 /* Ignore DTIM */
5632 tANI_U32 uIgnoreDTIM;
5633
5634 /*DTIM Period*/
5635 tANI_U32 uDTIMPeriod;
5636
5637 /* Listen Interval */
5638 tANI_U32 uListenInterval;
5639
5640 /* Broadcast Multicast Filter */
5641 tANI_U32 uBcastMcastFilter;
5642
5643 /* Beacon Early Termination */
5644 tANI_U32 uEnableBET;
5645
5646 /* Beacon Early Termination Interval */
5647 tANI_U32 uBETInterval;
5648}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
5649
5650typedef PACKED_PRE struct PACKED_POST
5651{
5652 tHalMsgHeader header;
5653 tSetPowerParamsVer1Type powerParams;
5654} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
5655
Jeff Johnson295189b2012-06-20 16:38:30 -07005656typedef PACKED_PRE struct PACKED_POST
5657{
5658 /* Ignore DTIM */
5659 tANI_U32 uIgnoreDTIM;
5660
5661 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005662 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005663
5664 /* Listen Interval */
5665 tANI_U32 uListenInterval;
5666
5667 /* Broadcast Multicast Filter */
5668 tANI_U32 uBcastMcastFilter;
5669
5670 /* Beacon Early Termination */
5671 tANI_U32 uEnableBET;
5672
5673 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005674 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07005675
5676 /* MAX LI for modulated DTIM */
5677 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07005678}tSetPowerParamsType, *tpSetPowerParamsType;
5679
5680typedef PACKED_PRE struct PACKED_POST
5681{
5682 tHalMsgHeader header;
5683 tSetPowerParamsType powerParams;
5684} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5685
5686typedef PACKED_PRE struct PACKED_POST{
5687
5688 tHalMsgHeader header;
5689
5690 /*status of the request */
5691 tANI_U32 status;
5692
5693} tSetPowerParamsResp, *tpSetPowerParamsResp;
5694
5695/*---------------------------------------------------------------------------
5696 ****************Capability bitmap exchange definitions and macros starts*************
5697 *--------------------------------------------------------------------------*/
5698
Anand Kumar012623a2013-01-11 17:00:00 -08005699typedef enum {
5700 MCC = 0,
5701 P2P = 1,
5702 DOT11AC = 2,
5703 SLM_SESSIONIZATION = 3,
5704 DOT11AC_OPMODE = 4,
5705 SAP32STA = 5,
5706 TDLS = 6,
5707 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5708 WLANACTIVE_OFFLOAD = 8,
5709 BEACON_OFFLOAD = 9,
5710 SCAN_OFFLOAD = 10,
5711 ROAM_OFFLOAD = 11,
5712 BCN_MISS_OFFLOAD = 12,
5713 STA_POWERSAVE = 13,
5714 STA_ADVANCED_PWRSAVE = 14,
5715 AP_UAPSD = 15,
5716 AP_DFS = 16,
5717 BLOCKACK = 17,
5718 PHY_ERR = 18,
5719 BCN_FILTER = 19,
5720 RTT = 20,
5721 RATECTRL = 21,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005722 WOW = 22,
5723 WLAN_ROAM_SCAN_OFFLOAD = 23,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005724 SPECULATIVE_PS_POLL = 24,
5725 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07005726 IBSS_HEARTBEAT_OFFLOAD = 26,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005727 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08005728} placeHolderInCapBitmap;
5729
Jeff Johnson295189b2012-06-20 16:38:30 -07005730typedef PACKED_PRE struct PACKED_POST{
5731
5732 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005733} tWlanFeatCaps, *tpWlanFeatCaps;
5734
5735typedef PACKED_PRE struct PACKED_POST{
5736
Jeff Johnson32d95a32012-09-10 13:15:23 -07005737 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005738 tWlanFeatCaps wlanFeatCaps;
5739
5740} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5741
Jeff Johnsone7245742012-09-05 17:12:55 -07005742#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5743#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005744#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005745#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005746#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5747#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
5748#endif
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07005749#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005750
Jeff Johnsone7245742012-09-05 17:12:55 -07005751tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5752
Jeff Johnson295189b2012-06-20 16:38:30 -07005753#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005754 if ((b)<=127) { \
5755 arr_index = (b)/32; \
5756 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005757 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07005758 (a)->featCaps[arr_index] |= (1<<bit_index); \
5759 } \
5760 }
5761#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005762 if ((b)<=127) { \
5763 arr_index = (b)/32; \
5764 bit_index = (b)%32; \
5765 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005766 } \
5767 }
5768#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005769 if ((b)<=127) { \
5770 arr_index = (b)/32; \
5771 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005772 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005773 } \
5774 }
5775
5776/*---------------------------------------------------------------------------
5777 * WLAN_HAL_WAKE_REASON_IND
5778 *--------------------------------------------------------------------------*/
5779
5780/* status codes to help debug rekey failures */
5781typedef enum
5782{
5783 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5784 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5785 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5786 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5787 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5788 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5789 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5790 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5791 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5792 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5793
5794 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5795} tGTKRekeyStatus;
5796
5797/* wake reason types */
5798typedef enum
5799{
5800 WLAN_HAL_WAKE_REASON_NONE = 0,
5801 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5802 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5803 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5804 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5805 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5806 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5807 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5808} tWakeReasonType;
5809
5810/*
5811 Wake Packet which is saved at tWakeReasonParams.DataStart
5812 This data is sent for any wake reasons that involve a packet-based wakeup :
5813
5814 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5815 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5816 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5817 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5818 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5819
5820 The information is provided to the host for auditing and debug purposes
5821
5822*/
5823
5824/*
5825 Wake reason indication parameters
5826*/
5827typedef PACKED_PRE struct PACKED_POST
5828{
5829 uint32 ulReason; /* see tWakeReasonType */
5830 uint32 ulReasonArg; /* argument specific to the reason type */
5831 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5832 HAL truncates the data (i.e. data packets) this length
5833 will be less than the actual length */
5834 uint32 ulActualDataLen; /* actual length of data */
5835 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5836 see specific wake type */
5837} tWakeReasonParams, *tpWakeReasonParams;
5838
5839/*
5840 Wake reason indication
5841*/
5842typedef PACKED_PRE struct PACKED_POST
5843{
5844 tHalMsgHeader header;
5845 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005846 tANI_U32 uBssIdx : 8;
5847 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005848} tHalWakeReasonInd, *tpHalWakeReasonInd;
5849
5850/*---------------------------------------------------------------------------
5851* WLAN_HAL_GTK_OFFLOAD_REQ
5852*--------------------------------------------------------------------------*/
5853
5854#define HAL_GTK_KEK_BYTES 16
5855#define HAL_GTK_KCK_BYTES 16
5856
5857#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5858
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005859#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5860
Jeff Johnson295189b2012-06-20 16:38:30 -07005861typedef PACKED_PRE struct PACKED_POST
5862{
5863 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005864 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005865 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5866 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005867 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005868} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5869
5870typedef PACKED_PRE struct PACKED_POST
5871{
5872 tHalMsgHeader header;
5873 tHalGtkOffloadReqParams gtkOffloadReqParams;
5874} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5875
5876/*---------------------------------------------------------------------------
5877* WLAN_HAL_GTK_OFFLOAD_RSP
5878*--------------------------------------------------------------------------*/
5879typedef PACKED_PRE struct PACKED_POST
5880{
5881 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005882 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005883} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5884
5885typedef PACKED_PRE struct PACKED_POST
5886{
5887 tHalMsgHeader header;
5888 tHalGtkOffloadRspParams gtkOffloadRspParams;
5889} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5890
5891
5892/*---------------------------------------------------------------------------
5893* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5894*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005895typedef PACKED_PRE struct PACKED_POST
5896{
5897 tANI_U8 bssIdx;
5898
5899} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005900
5901typedef PACKED_PRE struct PACKED_POST
5902{
5903 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005904 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005905} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5906
5907/*---------------------------------------------------------------------------
5908* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5909*--------------------------------------------------------------------------*/
5910typedef PACKED_PRE struct PACKED_POST
5911{
5912 tANI_U32 ulStatus; /* success or failure */
5913 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5914 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5915 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5916 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5917 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005918 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005919} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5920
5921typedef PACKED_PRE struct PACKED_POST
5922{
5923 tHalMsgHeader header;
5924 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5925} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5926
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005927/*---------------------------------------------------------------------------
5928* WLAN_HAL_DHCP_IND
5929*--------------------------------------------------------------------------*/
5930typedef PACKED_PRE struct PACKED_POST
5931{
5932 /*Indicates the device mode which indicates about the DHCP activity */
5933 tANI_U8 device_mode;
5934 tSirMacAddr macAddr;
5935} tDHCPInfo, *tpDHCPInfo;
5936
5937typedef PACKED_PRE struct PACKED_POST
5938{
5939 tHalMsgHeader header;
5940 tANI_U32 status; /* success or failure */
5941} tDHCPIndStatus, *tpDHCPIndstatus;
5942
Jeff Johnson295189b2012-06-20 16:38:30 -07005943/*
5944 Thermal Mitigation mode of operation.
5945 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5946 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5947 reducing transmit power
5948 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5949*/
5950typedef enum
5951{
5952 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5953 HAL_THERMAL_MITIGATION_MODE_0,
5954 HAL_THERMAL_MITIGATION_MODE_1,
5955 HAL_THERMAL_MITIGATION_MODE_2,
5956 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5957}tHalThermalMitigationModeType;
5958//typedef tANI_S16 tHalThermalMitigationModeType;
5959
5960/*
5961 Thermal Mitigation level.
5962 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5963 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5964
5965 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5966 level indicates normal mode of operation
5967 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5968 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5969 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5970 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5971*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005972typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005973{
5974 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5975 HAL_THERMAL_MITIGATION_LEVEL_0,
5976 HAL_THERMAL_MITIGATION_LEVEL_1,
5977 HAL_THERMAL_MITIGATION_LEVEL_2,
5978 HAL_THERMAL_MITIGATION_LEVEL_3,
5979 HAL_THERMAL_MITIGATION_LEVEL_4,
5980 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5981}tHalThermalMitigationLevelType;
5982//typedef tANI_S16 tHalThermalMitigationLevelType;
5983
5984typedef PACKED_PRE struct PACKED_POST
5985{
5986 /* Thermal Mitigation Operation Mode */
5987 tHalThermalMitigationModeType thermalMitMode;
5988
5989 /* Thermal Mitigation Level */
5990 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005991
Jeff Johnson295189b2012-06-20 16:38:30 -07005992}tSetThermalMitgationType, *tpSetThermalMitgationType;
5993
5994/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5995typedef PACKED_PRE struct PACKED_POST
5996{
5997 tHalMsgHeader header;
5998 tSetThermalMitgationType thermalMitParams;
5999} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6000
6001typedef PACKED_PRE struct PACKED_POST{
6002
6003 tHalMsgHeader header;
6004
6005 /*status of the request */
6006 tANI_U32 status;
6007
6008} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6009
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006010/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6011provided to FW from Host via periodic messages */
6012typedef PACKED_PRE struct PACKED_POST {
6013 /* TX stats */
6014 uint32 txBytesPushed;
6015 uint32 txPacketsPushed;
6016
6017 /* RX stats */
6018 uint32 rxBytesRcvd;
6019 uint32 rxPacketsRcvd;
6020 uint32 rxTimeTotal;
6021} tStaStatsClassB, *tpStaStatsClassB;
6022
6023typedef PACKED_PRE struct PACKED_POST {
6024
6025 /* Duration over which this stats was collected */
6026 tANI_U32 duration;
6027
6028 /* Per STA Stats */
6029 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6030} tStatsClassBIndParams, *tpStatsClassBIndParams;
6031
6032typedef PACKED_PRE struct PACKED_POST {
6033
6034 tHalMsgHeader header;
6035
6036 /* Class B Stats */
6037 tStatsClassBIndParams statsClassBIndParams;
6038} tStatsClassBInd, *tpStatsClassBInd;
6039
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306040/*Wifi Proximity paramters in AP mode*/
6041#ifdef FEATURE_WIFI_PROXIMITY
6042
6043typedef PACKED_PRE struct PACKED_POST{
6044
6045 tANI_U8 wifiProximityChannel;
6046 tANI_U32 wifiProximityDuration;
6047 tANI_U32 wifiProximityInterval;
6048 tANI_U32 wifiProximityMode;
6049 tANI_U32 wifiProximityStatus;
6050 tSirMacAddr bssId;
6051 tSirMacSSid ssId;
6052
6053} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6054
6055typedef PACKED_PRE struct PACKED_POST
6056{
6057 tHalMsgHeader header;
6058
6059 tSetWifiProximityReqParam wifiProximityReqParams;
6060
6061}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6062
6063/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6064typedef PACKED_PRE struct PACKED_POST{
6065
6066 tHalMsgHeader header;
6067
6068 /*status of the request */
6069 tANI_U32 status;
6070
6071} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6072
6073#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006074
6075#ifdef FEATURE_SPECULATIVE_PS_POLL
6076/*---------------------------------------------------------------------------
6077 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6078 *--------------------------------------------------------------------------*/
6079typedef PACKED_PRE struct PACKED_POST
6080{
6081 tANI_U8 bssIdx;
6082 tANI_U16 serviceInterval;
6083 tANI_U16 suspendInterval;
6084 tANI_U8 acMask;
6085} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6086
6087typedef PACKED_PRE struct PACKED_POST
6088{
6089 tHalMsgHeader header;
6090 tHalStartSpecPsPollReqParams specPsPollReq;
6091} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6092
6093/*---------------------------------------------------------------------------
6094 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6095 *--------------------------------------------------------------------------*/
6096typedef PACKED_PRE struct PACKED_POST
6097{
6098 /* success or failure */
6099 tANI_U32 status;
6100 tANI_U8 bssIdx;
6101} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6102
6103typedef PACKED_PRE struct PACKED_POST
6104{
6105 tHalMsgHeader header;
6106 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6107} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6108
6109/*---------------------------------------------------------------------------
6110 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6111 *--------------------------------------------------------------------------*/
6112typedef PACKED_PRE struct PACKED_POST
6113{
6114 tHalMsgHeader header;
6115 tANI_U8 bssIdx;
6116} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6117#endif
6118
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306119#ifdef FEATURE_WLAN_TDLS
6120/*---------------------------------------------------------------------------
6121 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6122 *-------------------------------------------------------------------------*/
6123typedef PACKED_PRE struct PACKED_POST
6124{
6125 /*STA Index*/
6126 tANI_U16 staIdx;
6127
6128 /* if this is 1, self is initiator and peer is reponder */
6129 tANI_U8 bIsResponder;
6130
6131 /* QoS Info */
6132 tANI_U8 acVOUAPSDFlag:1;
6133 tANI_U8 acVIUAPSDFlag:1;
6134 tANI_U8 acBKUAPSDFlag:1;
6135 tANI_U8 acBEUAPSDFlag:1;
6136 tANI_U8 aAck:1;
6137 tANI_U8 maxServicePeriodLength:2;
6138 tANI_U8 moreDataAck:1;
6139
6140 /*TDLS Peer U-APSD Buffer STA Support*/
6141 tANI_U8 TPUBufferStaSupport;
6142
6143}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6144
6145typedef PACKED_PRE struct PACKED_POST
6146{
6147 tHalMsgHeader header;
6148 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6149} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6150
6151/*---------------------------------------------------------------------------
6152 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6153 *-------------------------------------------------------------------------*/
6154
6155typedef PACKED_PRE struct PACKED_POST
6156{
6157 tANI_U32 status;
6158
6159 /*STA Index*/
6160 tANI_U16 staIdx;
6161} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6162
6163typedef PACKED_PRE struct PACKED_POST
6164{
6165 tHalMsgHeader header;
6166 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6167} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6168
6169/*---------------------------------------------------------------------------
6170 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6171 *-------------------------------------------------------------------------*/
6172typedef PACKED_PRE struct PACKED_POST
6173{
6174 /*STA Index*/
6175 tANI_U16 staIdx;
6176}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6177
6178typedef PACKED_PRE struct PACKED_POST
6179{
6180 tHalMsgHeader header;
6181 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6182} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6183
6184/*---------------------------------------------------------------------------
6185 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6186 *-------------------------------------------------------------------------*/
6187
6188typedef PACKED_PRE struct PACKED_POST
6189{
6190 tANI_U32 status;
6191
6192 /*STA Index*/
6193 tANI_U16 staIdx;
6194} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6195
6196typedef PACKED_PRE struct PACKED_POST
6197{
6198 tHalMsgHeader header;
6199 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6200} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6201
6202/*---------------------------------------------------------------------------
6203 *WLAN_HAL_TDLS_IND
6204 *--------------------------------------------------------------------------*/
6205
6206typedef PACKED_PRE struct PACKED_POST
6207{
6208 tANI_U16 assocId;
6209 tANI_U16 staIdx;
6210 tANI_U16 status;
6211 tANI_U16 reasonCode;
6212}tTdlsIndParams, *tpTdlsIndParams;
6213
6214
6215typedef PACKED_PRE struct PACKED_POST
6216{
6217 tHalMsgHeader header;
6218 tTdlsIndParams tdlsIndParams;
6219}tTdlsIndMsg, *tpTdlsIndMsg;
6220
6221#endif
6222
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006223/*---------------------------------------------------------------------------
6224 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6225 *--------------------------------------------------------------------------*/
6226
6227typedef PACKED_PRE struct PACKED_POST
6228{
6229 tANI_U8 bssIdx;
6230 tANI_U8 staIdx;
6231 tSirMacAddr staAddr;
6232}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
6233
6234
6235typedef PACKED_PRE struct PACKED_POST
6236{
6237 tHalMsgHeader header;
6238 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
6239}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
6240
6241
Jeff Johnson295189b2012-06-20 16:38:30 -07006242#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6243#pragma pack(pop)
6244#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6245#else
6246#endif
6247
6248#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006249