blob: f5fb752305e44bc71a69b27de9e73389720e185b [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
110#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
111#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS NUM_RF_CHANNELS
112#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 64
113#endif
114
Jeff Johnson295189b2012-06-20 16:38:30 -0700115/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700116typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700117{
118 //Init/De-Init
119 WLAN_HAL_START_REQ = 0,
120 WLAN_HAL_START_RSP = 1,
121 WLAN_HAL_STOP_REQ = 2,
122 WLAN_HAL_STOP_RSP = 3,
123
124 //Scan
125 WLAN_HAL_INIT_SCAN_REQ = 4,
126 WLAN_HAL_INIT_SCAN_RSP = 5,
127 WLAN_HAL_START_SCAN_REQ = 6,
128 WLAN_HAL_START_SCAN_RSP = 7 ,
129 WLAN_HAL_END_SCAN_REQ = 8,
130 WLAN_HAL_END_SCAN_RSP = 9,
131 WLAN_HAL_FINISH_SCAN_REQ = 10,
132 WLAN_HAL_FINISH_SCAN_RSP = 11,
133
134 // HW STA configuration/deconfiguration
135 WLAN_HAL_CONFIG_STA_REQ = 12,
136 WLAN_HAL_CONFIG_STA_RSP = 13,
137 WLAN_HAL_DELETE_STA_REQ = 14,
138 WLAN_HAL_DELETE_STA_RSP = 15,
139 WLAN_HAL_CONFIG_BSS_REQ = 16,
140 WLAN_HAL_CONFIG_BSS_RSP = 17,
141 WLAN_HAL_DELETE_BSS_REQ = 18,
142 WLAN_HAL_DELETE_BSS_RSP = 19,
143
144 //Infra STA asscoiation
145 WLAN_HAL_JOIN_REQ = 20,
146 WLAN_HAL_JOIN_RSP = 21,
147 WLAN_HAL_POST_ASSOC_REQ = 22,
148 WLAN_HAL_POST_ASSOC_RSP = 23,
149
150 //Security
151 WLAN_HAL_SET_BSSKEY_REQ = 24,
152 WLAN_HAL_SET_BSSKEY_RSP = 25,
153 WLAN_HAL_SET_STAKEY_REQ = 26,
154 WLAN_HAL_SET_STAKEY_RSP = 27,
155 WLAN_HAL_RMV_BSSKEY_REQ = 28,
156 WLAN_HAL_RMV_BSSKEY_RSP = 29,
157 WLAN_HAL_RMV_STAKEY_REQ = 30,
158 WLAN_HAL_RMV_STAKEY_RSP = 31,
159
160 //Qos Related
161 WLAN_HAL_ADD_TS_REQ = 32,
162 WLAN_HAL_ADD_TS_RSP = 33,
163 WLAN_HAL_DEL_TS_REQ = 34,
164 WLAN_HAL_DEL_TS_RSP = 35,
165 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
166 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
167 WLAN_HAL_ADD_BA_REQ = 38,
168 WLAN_HAL_ADD_BA_RSP = 39,
169 WLAN_HAL_DEL_BA_REQ = 40,
170 WLAN_HAL_DEL_BA_RSP = 41,
171
172 WLAN_HAL_CH_SWITCH_REQ = 42,
173 WLAN_HAL_CH_SWITCH_RSP = 43,
174 WLAN_HAL_SET_LINK_ST_REQ = 44,
175 WLAN_HAL_SET_LINK_ST_RSP = 45,
176 WLAN_HAL_GET_STATS_REQ = 46,
177 WLAN_HAL_GET_STATS_RSP = 47,
178 WLAN_HAL_UPDATE_CFG_REQ = 48,
179 WLAN_HAL_UPDATE_CFG_RSP = 49,
180
181 WLAN_HAL_MISSED_BEACON_IND = 50,
182 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
183 WLAN_HAL_MIC_FAILURE_IND = 52,
184 WLAN_HAL_FATAL_ERROR_IND = 53,
185 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700186
Jeff Johnson295189b2012-06-20 16:38:30 -0700187 //NV Interface
188 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
189 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
190
191 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
192 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
193 WLAN_HAL_TRIGGER_BA_REQ = 59,
194 WLAN_HAL_TRIGGER_BA_RSP = 60,
195 WLAN_HAL_UPDATE_BEACON_REQ = 61,
196 WLAN_HAL_UPDATE_BEACON_RSP = 62,
197 WLAN_HAL_SEND_BEACON_REQ = 63,
198 WLAN_HAL_SEND_BEACON_RSP = 64,
199
200 WLAN_HAL_SET_BCASTKEY_REQ = 65,
201 WLAN_HAL_SET_BCASTKEY_RSP = 66,
202 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
203 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
204 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700205
Jeff Johnson295189b2012-06-20 16:38:30 -0700206 // PTT interface support
207 WLAN_HAL_PROCESS_PTT_REQ = 70,
208 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700209
Jeff Johnson295189b2012-06-20 16:38:30 -0700210 // BTAMP related events
211 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
212 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
213 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
214 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
215
216 WLAN_HAL_ENTER_IMPS_REQ = 76,
217 WLAN_HAL_EXIT_IMPS_REQ = 77,
218 WLAN_HAL_ENTER_BMPS_REQ = 78,
219 WLAN_HAL_EXIT_BMPS_REQ = 79,
220 WLAN_HAL_ENTER_UAPSD_REQ = 80,
221 WLAN_HAL_EXIT_UAPSD_REQ = 81,
222 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
223 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
224 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
225 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
226 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
227 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
228 WLAN_HAL_ENTER_WOWL_REQ = 88,
229 WLAN_HAL_EXIT_WOWL_REQ = 89,
230 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
231 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
232 WLAN_HAL_GET_RSSI_REQ = 92,
233 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
234 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
235
236 WLAN_HAL_ENTER_IMPS_RSP = 95,
237 WLAN_HAL_EXIT_IMPS_RSP = 96,
238 WLAN_HAL_ENTER_BMPS_RSP = 97,
239 WLAN_HAL_EXIT_BMPS_RSP = 98,
240 WLAN_HAL_ENTER_UAPSD_RSP = 99,
241 WLAN_HAL_EXIT_UAPSD_RSP = 100,
242 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
243 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
244 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
245 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
246 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
247 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
248 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
249 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
250 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
251 WLAN_HAL_ENTER_WOWL_RSP = 110,
252 WLAN_HAL_EXIT_WOWL_RSP = 111,
253 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
254 WLAN_HAL_GET_RSSI_RSP = 113,
255 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
256
257 //11k related events
258 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
259 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
260
261 //11R related msgs
262 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
263 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
264
265 //P2P WLAN_FEATURE_P2P
266 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
267 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700268
Jeff Johnson295189b2012-06-20 16:38:30 -0700269 //WLAN Dump commands
270 WLAN_HAL_DUMP_COMMAND_REQ = 121,
271 WLAN_HAL_DUMP_COMMAND_RSP = 122,
272
Jeff Johnsone7245742012-09-05 17:12:55 -0700273 //OEM_DATA FEATURE SUPPORT
274 WLAN_HAL_START_OEM_DATA_REQ = 123,
275 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700276
277 //ADD SELF STA REQ and RSP
278 WLAN_HAL_ADD_STA_SELF_REQ = 125,
279 WLAN_HAL_ADD_STA_SELF_RSP = 126,
280
281 //DEL SELF STA SUPPORT
282 WLAN_HAL_DEL_STA_SELF_REQ = 127,
283 WLAN_HAL_DEL_STA_SELF_RSP = 128,
284
285 // Coex Indication
286 WLAN_HAL_COEX_IND = 129,
287
Jeff Johnson32d95a32012-09-10 13:15:23 -0700288 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700289 WLAN_HAL_OTA_TX_COMPL_IND = 130,
290
291 //Host Suspend/resume messages
292 WLAN_HAL_HOST_SUSPEND_IND = 131,
293 WLAN_HAL_HOST_RESUME_REQ = 132,
294 WLAN_HAL_HOST_RESUME_RSP = 133,
295
296 WLAN_HAL_SET_TX_POWER_REQ = 134,
297 WLAN_HAL_SET_TX_POWER_RSP = 135,
298 WLAN_HAL_GET_TX_POWER_REQ = 136,
299 WLAN_HAL_GET_TX_POWER_RSP = 137,
300
301 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700302
Jeff Johnson295189b2012-06-20 16:38:30 -0700303 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
304 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
305 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
306 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
307 WLAN_HAL_RADAR_DETECT_IND = 143,
308 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
309 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700310 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700311
312 /*PNO messages*/
313 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
314 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
315 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
316 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
317 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
318 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700319 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700320
321 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
322 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
323 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700324
Jeff Johnson295189b2012-06-20 16:38:30 -0700325 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700326 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700327
328 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700329 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700330 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700331 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700332 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700333 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
334 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700335 * Host and Riva code is in sync*/
336 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700337
Jeff Johnson295189b2012-06-20 16:38:30 -0700338 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
339 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
340
341 WLAN_HAL_TSM_STATS_REQ = 168,
342 WLAN_HAL_TSM_STATS_RSP = 169,
343
344 // wake reason indication (WOW)
345 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700346 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700347 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
348 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
349 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
350 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
351
352 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
353 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
354 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
355
356 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
357 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
358
Anand Kumar012623a2013-01-11 17:00:00 -0800359 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
360 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800361
Anand Kumar012623a2013-01-11 17:00:00 -0800362 WLAN_HAL_P2P_NOA_START_IND = 184,
363
364 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
365 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700366
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800367 WLAN_HAL_CLASS_B_STATS_IND = 187,
368 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800369 WLAN_HAL_DHCP_START_IND = 189,
370 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700371 WLAN_START_ROAM_CANDIDATE_LOOKUP_REQ = 191,
372 WLAN_START_ROAM_CANDIDATE_LOOKUP_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530373 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
374 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800375 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700376}tHalHostMsgType;
377
Jeff Johnsone7245742012-09-05 17:12:55 -0700378/* Enumeration for Version */
379typedef enum
380{
381 WLAN_HAL_MSG_VERSION0 = 0,
382 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800383 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
384 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700385}tHalHostMsgVersion;
386
Jeff Johnson295189b2012-06-20 16:38:30 -0700387/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700388typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700389{
390 eANI_BOOLEAN_FALSE = 0,
391 eANI_BOOLEAN_TRUE,
392 eANI_BOOLEAN_OFF = 0,
393 eANI_BOOLEAN_ON = 1,
394 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
395} eAniBoolean;
396
397typedef enum
398{
399 eDRIVER_TYPE_PRODUCTION = 0,
400 eDRIVER_TYPE_MFG = 1,
401 eDRIVER_TYPE_DVT = 2,
402 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
403} tDriverType;
404
405typedef enum
406{
407 HAL_STOP_TYPE_SYS_RESET,
408 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
409 HAL_STOP_TYPE_RF_KILL,
410 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
411}tHalStopType;
412
413typedef enum
414{
415 eHAL_SYS_MODE_NORMAL,
416 eHAL_SYS_MODE_LEARN,
417 eHAL_SYS_MODE_SCAN,
418 eHAL_SYS_MODE_PROMISC,
419 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700420 eHAL_SYS_MODE_ROAM_SCAN,
421 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700422 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
423} eHalSysMode;
424
425typedef enum
426{
427 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
428 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
429 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
430 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700431#ifdef WLAN_FEATURE_11AC
432 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
433 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
434 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
435 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
436 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
437 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
438 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
439#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700440 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
441}ePhyChanBondState;
442
443// Spatial Multiplexing(SM) Power Save mode
444typedef enum eSirMacHTMIMOPowerSaveState
445{
446 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
447 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
448 eSIR_HT_MIMO_PS_NA = 2, // reserved
449 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
450 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
451} tSirMacHTMIMOPowerSaveState;
452
453/* each station added has a rate mode which specifies the sta attributes */
454typedef enum eStaRateMode {
455 eSTA_TAURUS = 0,
456 eSTA_TITAN,
457 eSTA_POLARIS,
458 eSTA_11b,
459 eSTA_11bg,
460 eSTA_11a,
461 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700462#ifdef WLAN_FEATURE_11AC
463 eSTA_11ac,
464#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700465 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
466} tStaRateMode, *tpStaRateMode;
467
468#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
469#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
470#define SIR_NUM_POLARIS_RATES 3 //72,96,108
471
472#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
473
474
475typedef enum eSirBssType
476{
477 eSIR_INFRASTRUCTURE_MODE,
478 eSIR_INFRA_AP_MODE, //Added for softAP support
479 eSIR_IBSS_MODE,
480 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
481 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
482 eSIR_AUTO_MODE,
483 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
484} tSirBssType;
485
486typedef enum eSirNwType
487{
488 eSIR_11A_NW_TYPE,
489 eSIR_11B_NW_TYPE,
490 eSIR_11G_NW_TYPE,
491 eSIR_11N_NW_TYPE,
492 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
493} tSirNwType;
494
495typedef tANI_U16 tSirMacBeaconInterval;
496
497#define SIR_MAC_RATESET_EID_MAX 12
498
499typedef enum eSirMacHTOperatingMode
500{
501 eSIR_HT_OP_MODE_PURE, // No Protection
502 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
503 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
504 eSIR_HT_OP_MODE_MIXED, // Protection is required
505 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
506} tSirMacHTOperatingMode;
507
Jeff Johnson295189b2012-06-20 16:38:30 -0700508/// Encryption type enum used with peer
509typedef enum eAniEdType
510{
511 eSIR_ED_NONE,
512 eSIR_ED_WEP40,
513 eSIR_ED_WEP104,
514 eSIR_ED_TKIP,
515 eSIR_ED_CCMP,
516 eSIR_ED_WPI,
517 eSIR_ED_AES_128_CMAC,
518 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
519} tAniEdType;
520
521#define WLAN_MAX_KEY_RSC_LEN 16
522#define WLAN_WAPI_KEY_RSC_LEN 16
523
524/// MAX key length when ULA is used
525#define SIR_MAC_MAX_KEY_LENGTH 32
526#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
527
528/// Enum to specify whether key is used
529/// for TX only, RX only or both
530typedef enum eAniKeyDirection
531{
532 eSIR_TX_ONLY,
533 eSIR_RX_ONLY,
534 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700535 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700536 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
537} tAniKeyDirection;
538
539typedef enum eAniWepType
540{
541 eSIR_WEP_STATIC,
542 eSIR_WEP_DYNAMIC,
543 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
544} tAniWepType;
545
546typedef enum eSriLinkState {
547
548 eSIR_LINK_IDLE_STATE = 0,
549 eSIR_LINK_PREASSOC_STATE = 1,
550 eSIR_LINK_POSTASSOC_STATE = 2,
551 eSIR_LINK_AP_STATE = 3,
552 eSIR_LINK_IBSS_STATE = 4,
553
554 /* BT-AMP Case */
555 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
556 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
557 eSIR_LINK_BTAMP_AP_STATE = 7,
558 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700559
Jeff Johnson295189b2012-06-20 16:38:30 -0700560 /* Reserved for HAL Internal Use */
561 eSIR_LINK_LEARN_STATE = 9,
562 eSIR_LINK_SCAN_STATE = 10,
563 eSIR_LINK_FINISH_SCAN_STATE = 11,
564 eSIR_LINK_INIT_CAL_STATE = 12,
565 eSIR_LINK_FINISH_CAL_STATE = 13,
566#ifdef WLAN_FEATURE_P2P
567 eSIR_LINK_LISTEN_STATE = 14,
568#endif
569 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
570} tSirLinkState;
571
572typedef enum
573{
574 HAL_SUMMARY_STATS_INFO = 0x00000001,
575 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
576 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
577 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
578 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
579 HAL_PER_STA_STATS_INFO = 0x00000020
580}eHalStatsMask;
581
582/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700583typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700584{
585 BTAMP_EVENT_CONNECTION_START,
586 BTAMP_EVENT_CONNECTION_STOP,
587 BTAMP_EVENT_CONNECTION_TERMINATED,
588 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
589} tBtAmpEventType;
590
591//***************************************************************
592
593
594/*******************PE Statistics*************************/
595typedef enum
596{
597 PE_SUMMARY_STATS_INFO = 0x00000001,
598 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
599 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
600 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
601 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
602 PE_PER_STA_STATS_INFO = 0x00000020,
603 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
604}ePEStatsMask;
605
606/*---------------------------------------------------------------------------
607 Message definitons - All the messages below need to be packed
608 ---------------------------------------------------------------------------*/
609
610#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
611#pragma pack(push, 1)
612#elif defined(__ANI_COMPILER_PRAGMA_PACK)
613#pragma pack(1)
614#else
615#endif
616
617/// Definition for HAL API Version.
618typedef PACKED_PRE struct PACKED_POST
619{
620 tANI_U8 revision;
621 tANI_U8 version;
622 tANI_U8 minor;
623 tANI_U8 major;
624} tWcnssWlanVersion, *tpWcnssWlanVersion;
625
626/// Definition for Encryption Keys
627typedef PACKED_PRE struct PACKED_POST
628{
629 tANI_U8 keyId;
630 tANI_U8 unicast; // 0 for multicast
631 tAniKeyDirection keyDirection;
632 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
633 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
634 tANI_U16 keyLength;
635 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
636} tSirKeys, *tpSirKeys;
637
638
639//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
640typedef PACKED_PRE struct PACKED_POST
641{
642 /*STA Index*/
643 tANI_U16 staIdx;
644
645 /*Encryption Type used with peer*/
646 tAniEdType encType;
647
648 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700649 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700650
651 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
652 tANI_U8 defWEPIdx;
653
Jeff Johnson295189b2012-06-20 16:38:30 -0700654 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700655 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
656
Jeff Johnson295189b2012-06-20 16:38:30 -0700657 /*Control for Replay Count, 1= Single TID based replay count on Tx
658 0 = Per TID based replay count on TX */
659 tANI_U8 singleTidRc;
660
661} tSetStaKeyParams, *tpSetStaKeyParams;
662
663
664
665/* 4-byte control message header used by HAL*/
666typedef PACKED_PRE struct PACKED_POST
667{
Jeff Johnsone7245742012-09-05 17:12:55 -0700668 tHalHostMsgType msgType:16;
669 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700670 tANI_U32 msgLen;
671} tHalMsgHeader, *tpHalMsgHeader;
672
673/* Config format required by HAL for each CFG item*/
674typedef PACKED_PRE struct PACKED_POST
675{
676 /* Cfg Id. The Id required by HAL is exported by HAL
677 * in shared header file between UMAC and HAL.*/
678 tANI_U16 uCfgId;
679
Jeff Johnson32d95a32012-09-10 13:15:23 -0700680 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700681 * in the TLV format.*/
682 tANI_U16 uCfgLen;
683
684 /* Padding bytes for unaligned address's */
685 tANI_U16 uCfgPadBytes;
686
687 /* Reserve bytes for making cfgVal to align address */
688 tANI_U16 uCfgReserve;
689
690 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
691 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
692} tHalCfg, *tpHalCfg;
693
694/*---------------------------------------------------------------------------
695 WLAN_HAL_START_REQ
696---------------------------------------------------------------------------*/
697
698typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
699{
700 /* Drive Type - Production or FTM etc */
701 tDriverType driverType;
702
703 /*Length of the config buffer*/
704 tANI_U32 uConfigBufferLen;
705
Jeff Johnson32d95a32012-09-10 13:15:23 -0700706 /* Following this there is a TLV formatted buffer of length
707 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700708 * The TLV is expected to be formatted like this:
709 * 0 15 31 31+CFG_LEN-1 length-1
710 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
711 */
712} tHalMacStartParameters, *tpHalMacStartParameters;
713
714typedef PACKED_PRE struct PACKED_POST
715{
716 /* Note: The length specified in tHalMacStartReqMsg messages should be
717 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
718 tHalMsgHeader header;
719 tHalMacStartParameters startReqParams;
720} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
721
722/*---------------------------------------------------------------------------
723 WLAN_HAL_START_RSP
724---------------------------------------------------------------------------*/
725
726typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
727{
728 /*success or failure */
729 tANI_U16 status;
730
731 /*Max number of STA supported by the device*/
732 tANI_U8 ucMaxStations;
733
734 /*Max number of BSS supported by the device*/
735 tANI_U8 ucMaxBssids;
736
737 /*API Version */
738 tWcnssWlanVersion wcnssWlanVersion;
739
740 /*CRM build information */
741 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
742
743 /*hardware/chipset/misc version information */
744 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
745
746} tHalMacStartRspParams, *tpHalMacStartRspParams;
747
748typedef PACKED_PRE struct PACKED_POST
749{
750 tHalMsgHeader header;
751 tHalMacStartRspParams startRspParams;
752} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
753
754/*---------------------------------------------------------------------------
755 WLAN_HAL_STOP_REQ
756---------------------------------------------------------------------------*/
757
758typedef PACKED_PRE struct PACKED_POST
759{
760 /*The reason for which the device is being stopped*/
761 tHalStopType reason;
762
763}tHalMacStopReqParams, *tpHalMacStopReqParams;
764
765typedef PACKED_PRE struct PACKED_POST
766{
767 tHalMsgHeader header;
768 tHalMacStopReqParams stopReqParams;
769} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
770
771/*---------------------------------------------------------------------------
772 WLAN_HAL_STOP_RSP
773---------------------------------------------------------------------------*/
774
775typedef PACKED_PRE struct PACKED_POST
776{
777 /*success or failure */
778 tANI_U32 status;
779
780}tHalMacStopRspParams, *tpHalMacStopRspParams;
781
782typedef PACKED_PRE struct PACKED_POST
783{
784 tHalMsgHeader header;
785 tHalMacStopRspParams stopRspParams;
786} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
787
788/*---------------------------------------------------------------------------
789 WLAN_HAL_UPDATE_CFG_REQ
790---------------------------------------------------------------------------*/
791
792typedef PACKED_PRE struct PACKED_POST
793{
794 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
795 tANI_U32 uConfigBufferLen;
796
Jeff Johnson32d95a32012-09-10 13:15:23 -0700797 /* Following this there is a TLV formatted buffer of length
798 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700799 * The TLV is expected to be formatted like this:
800 * 0 15 31 31+CFG_LEN-1 length-1
801 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
802 */
803} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
804
805typedef PACKED_PRE struct PACKED_POST
806{
807 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
808 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
809 tHalMsgHeader header;
810 tHalUpdateCfgReqParams updateCfgReqParams;
811} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
812
813/*---------------------------------------------------------------------------
814 WLAN_HAL_UPDATE_CFG_RSP
815---------------------------------------------------------------------------*/
816
817typedef PACKED_PRE struct PACKED_POST
818{
819 /* success or failure */
820 tANI_U32 status;
821
822}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
823
824typedef PACKED_PRE struct PACKED_POST
825{
826 tHalMsgHeader header;
827 tHalUpdateCfgRspParams updateCfgRspParams;
828} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
829
830/*---------------------------------------------------------------------------
831 WLAN_HAL_INIT_SCAN_REQ
832---------------------------------------------------------------------------*/
833
834/// Frame control field format (2 bytes)
835typedef __ani_attr_pre_packed struct sSirMacFrameCtl
836{
837
838#ifndef ANI_LITTLE_BIT_ENDIAN
839
840 tANI_U8 subType :4;
841 tANI_U8 type :2;
842 tANI_U8 protVer :2;
843
844 tANI_U8 order :1;
845 tANI_U8 wep :1;
846 tANI_U8 moreData :1;
847 tANI_U8 powerMgmt :1;
848 tANI_U8 retry :1;
849 tANI_U8 moreFrag :1;
850 tANI_U8 fromDS :1;
851 tANI_U8 toDS :1;
852
853#else
854
855 tANI_U8 protVer :2;
856 tANI_U8 type :2;
857 tANI_U8 subType :4;
858
859 tANI_U8 toDS :1;
860 tANI_U8 fromDS :1;
861 tANI_U8 moreFrag :1;
862 tANI_U8 retry :1;
863 tANI_U8 powerMgmt :1;
864 tANI_U8 moreData :1;
865 tANI_U8 wep :1;
866 tANI_U8 order :1;
867
868#endif
869
870} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
871
872/// Sequence control field
873typedef __ani_attr_pre_packed struct sSirMacSeqCtl
874{
875 tANI_U8 fragNum : 4;
876 tANI_U8 seqNumLo : 4;
877 tANI_U8 seqNumHi : 8;
878} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
879
880/// Management header format
881typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
882{
883 tSirMacFrameCtl fc;
884 tANI_U8 durationLo;
885 tANI_U8 durationHi;
886 tANI_U8 da[6];
887 tANI_U8 sa[6];
888 tANI_U8 bssId[6];
889 tSirMacSeqCtl seqControl;
890} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
891
892/// Scan Entry to hold active BSS idx's
893typedef __ani_attr_pre_packed struct sSirScanEntry
894{
895 tANI_U8 bssIdx[HAL_NUM_BSSID];
896 tANI_U8 activeBSScnt;
897}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
898
899typedef PACKED_PRE struct PACKED_POST {
900
901 /*LEARN - AP Role
902 SCAN - STA Role*/
903 eHalSysMode scanMode;
904
905 /*BSSID of the BSS*/
906 tSirMacAddr bssid;
907
908 /*Whether BSS needs to be notified*/
909 tANI_U8 notifyBss;
910
911 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
912 CTS to Self). Must always be a valid frame type.*/
913 tANI_U8 frameType;
914
915 /*UMAC has the option of passing the MAC frame to be used for notifying
916 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
917 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
918 frameType.*/
919 tANI_U8 frameLength;
920
Jeff Johnson32d95a32012-09-10 13:15:23 -0700921 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700922 is non-zero. */
923 tSirMacMgmtHdr macMgmtHdr;
924
925 /*Entry to hold number of active BSS idx's*/
926 tSirScanEntry scanEntry;
927
928} tInitScanParams, * tpInitScanParams;
929
930typedef PACKED_PRE struct PACKED_POST
931{
932 tHalMsgHeader header;
933 tInitScanParams initScanParams;
934} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
935
936typedef PACKED_PRE struct PACKED_POST {
937
938 /*LEARN - AP Role
939 SCAN - STA Role*/
940 eHalSysMode scanMode;
941
942 /*BSSID of the BSS*/
943 tSirMacAddr bssid;
944
945 /*Whether BSS needs to be notified*/
946 tANI_U8 notifyBss;
947
948 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
949 CTS to Self). Must always be a valid frame type.*/
950 tANI_U8 frameType;
951
952 /*UMAC has the option of passing the MAC frame to be used for notifying
953 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
954 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
955 frameType.*/
956 tANI_U8 frameLength;
957
Jeff Johnson32d95a32012-09-10 13:15:23 -0700958 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700959 is non-zero. */
960 tSirMacMgmtHdr macMgmtHdr;
961
962 /*Entry to hold number of active BSS idx's*/
963 tSirScanEntry scanEntry;
964
965 /* Single NoA usage in Scanning */
966 tANI_U8 useNoA;
967
968 /* Indicates the scan duration (in ms) */
969 tANI_U16 scanDuration;
970
971} tInitScanConParams, * tpInitScanConParams;
972
973typedef PACKED_PRE struct PACKED_POST
974{
975 tHalMsgHeader header;
976 tInitScanConParams initScanParams;
977} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
978
979
980/*---------------------------------------------------------------------------
981 WLAN_HAL_INIT_SCAN_RSP
982---------------------------------------------------------------------------*/
983
984typedef PACKED_PRE struct PACKED_POST
985{
986 /*success or failure */
987 tANI_U32 status;
988
989}tHalInitScanRspParams, *tpHalInitScanRspParams;
990
991typedef PACKED_PRE struct PACKED_POST
992{
993 tHalMsgHeader header;
994 tHalInitScanRspParams initScanRspParams;
995} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
996
997/*---------------------------------------------------------------------------
998 WLAN_HAL_START_SCAN_REQ
999---------------------------------------------------------------------------*/
1000
Jeff Johnson32d95a32012-09-10 13:15:23 -07001001typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001002{
1003 /*Indicates the channel to scan*/
1004 tANI_U8 scanChannel;
1005
1006 } tStartScanParams, * tpStartScanParams;
1007
1008typedef PACKED_PRE struct PACKED_POST
1009{
1010 tHalMsgHeader header;
1011 tStartScanParams startScanParams;
1012} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1013
1014/*---------------------------------------------------------------------------
1015 WLAN_HAL_START_SCAN_RSP
1016---------------------------------------------------------------------------*/
1017
1018typedef PACKED_PRE struct PACKED_POST
1019{
1020 /*success or failure */
1021 tANI_U32 status;
1022
1023 tANI_U32 startTSF[2];
1024 tPowerdBm txMgmtPower;
1025
1026}tHalStartScanRspParams, *tpHalStartScanRspParams;
1027
1028typedef PACKED_PRE struct PACKED_POST
1029{
1030 tHalMsgHeader header;
1031 tHalStartScanRspParams startScanRspParams;
1032} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1033
1034/*---------------------------------------------------------------------------
1035 WLAN_HAL_END_SCAN_REQ
1036---------------------------------------------------------------------------*/
1037
1038typedef PACKED_PRE struct PACKED_POST
1039{
1040 /*Indicates the channel to stop scanning. Not used really. But retained
1041 for symmetry with "start Scan" message. It can also help in error
1042 check if needed.*/
1043 tANI_U8 scanChannel;
1044
1045} tEndScanParams, *tpEndScanParams;
1046
1047typedef PACKED_PRE struct PACKED_POST
1048{
1049 tHalMsgHeader header;
1050 tEndScanParams endScanParams;
1051} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1052
1053/*---------------------------------------------------------------------------
1054 WLAN_HAL_END_SCAN_RSP
1055---------------------------------------------------------------------------*/
1056
1057typedef PACKED_PRE struct PACKED_POST
1058{
1059 /*success or failure */
1060 tANI_U32 status;
1061
1062}tHalEndScanRspParams, *tpHalEndScanRspParams;
1063
1064typedef PACKED_PRE struct PACKED_POST
1065{
1066 tHalMsgHeader header;
1067 tHalEndScanRspParams endScanRspParams;
1068} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1069
1070/*---------------------------------------------------------------------------
1071 WLAN_HAL_FINISH_SCAN_REQ
1072---------------------------------------------------------------------------*/
1073
1074typedef PACKED_PRE struct PACKED_POST
1075{
1076 /* Identifies the operational state of the AP/STA
1077 * LEARN - AP Role SCAN - STA Role */
1078 eHalSysMode scanMode;
1079
1080 /*Operating channel to tune to.*/
1081 tANI_U8 currentOperChannel;
1082
1083 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1084 40 MHz extension channel in combination with the control channel*/
1085 ePhyChanBondState cbState;
1086
1087 /*BSSID of the BSS*/
1088 tSirMacAddr bssid;
1089
1090 /*Whether BSS needs to be notified*/
1091 tANI_U8 notifyBss;
1092
1093 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1094 CTS to Self). Must always be a valid frame type.*/
1095 tANI_U8 frameType;
1096
1097 /*UMAC has the option of passing the MAC frame to be used for notifying
1098 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1099 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1100 frameType.*/
1101 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001102
1103 /*Following the framelength there is a MAC frame buffer if frameLength
1104 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001105 tSirMacMgmtHdr macMgmtHdr;
1106
1107 /*Entry to hold number of active BSS idx's*/
1108 tSirScanEntry scanEntry;
1109
1110} tFinishScanParams, *tpFinishScanParams;
1111
1112typedef PACKED_PRE struct PACKED_POST
1113{
1114 tHalMsgHeader header;
1115 tFinishScanParams finishScanParams;
1116} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1117
1118/*---------------------------------------------------------------------------
1119 WLAN_HAL_FINISH_SCAN_RSP
1120---------------------------------------------------------------------------*/
1121
1122typedef PACKED_PRE struct PACKED_POST
1123{
1124 /*success or failure */
1125 tANI_U32 status;
1126
1127}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1128
1129typedef PACKED_PRE struct PACKED_POST
1130{
1131 tHalMsgHeader header;
1132 tHalFinishScanRspParams finishScanRspParams;
1133} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1134
1135/*---------------------------------------------------------------------------
1136 WLAN_HAL_CONFIG_STA_REQ
1137---------------------------------------------------------------------------*/
1138
1139typedef PACKED_PRE struct PACKED_POST {
1140 /*
1141 * For Self STA Entry: this represents Self Mode.
1142 * For Peer Stations, this represents the mode of the peer.
1143 * On Station:
1144 * --this mode is updated when PE adds the Self Entry.
1145 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1146 * ON AP:
1147 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1148 * to indicate the self mode of the AP.
1149 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1150 */
1151
1152 tStaRateMode opRateMode;
1153 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1154 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1155 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1156 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1157 tANI_U16 reserved;
1158
1159 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1160 //First 26 bits are reserved for those Titan rates and
1161 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1162 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1163
1164 /*
1165 * 0-76 bits used, remaining reserved
1166 * bits 0-15 and 32 should be set.
1167 */
1168 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1169
1170 /*
1171 * RX Highest Supported Data Rate defines the highest data
1172 * rate that the STA is able to receive, in unites of 1Mbps.
1173 * This value is derived from "Supported MCS Set field" inside
1174 * the HT capability element.
1175 */
1176 tANI_U16 rxHighestDataRate;
1177
1178} tSirSupportedRates, *tpSirSupportedRates;
1179
1180typedef PACKED_PRE struct PACKED_POST
1181{
1182 /*BSSID of STA*/
1183 tSirMacAddr bssId;
1184
1185 /*ASSOC ID, as assigned by UMAC*/
1186 tANI_U16 assocId;
1187
1188 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1189 tANI_U8 staType;
1190
1191 /*Short Preamble Supported.*/
1192 tANI_U8 shortPreambleSupported;
1193
1194 /*MAC Address of STA*/
1195 tSirMacAddr staMac;
1196
1197 /*Listen interval of the STA*/
1198 tANI_U16 listenInterval;
1199
1200 /*Support for 11e/WMM*/
1201 tANI_U8 wmmEnabled;
1202
1203 /*11n HT capable STA*/
1204 tANI_U8 htCapable;
1205
1206 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1207 tANI_U8 txChannelWidthSet;
1208
1209 /*RIFS mode 0 - NA, 1 - Allowed */
1210 tANI_U8 rifsMode;
1211
Jeff Johnson32d95a32012-09-10 13:15:23 -07001212 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001213 0 - No Support, 1 - Supported
1214 SG - there is global field */
1215 tANI_U8 lsigTxopProtection;
1216
1217 /*Max Ampdu Size supported by STA. TPE programming.
1218 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1219 tANI_U8 maxAmpduSize;
1220
1221 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1222 tANI_U8 maxAmpduDensity;
1223
1224 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1225 tANI_U8 maxAmsduSize;
1226
1227 /*Short GI support for 40Mhz packets*/
1228 tANI_U8 fShortGI40Mhz;
1229
1230 /*Short GI support for 20Mhz packets*/
1231 tANI_U8 fShortGI20Mhz;
1232
Jeff Johnson295189b2012-06-20 16:38:30 -07001233 /*Robust Management Frame (RMF) enabled/disabled*/
1234 tANI_U8 rmfEnabled;
1235
1236 /* The unicast encryption type in the association */
1237 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001238
1239 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001240 will set this flag in case of RE-ASSOC, where we want to reuse the old
1241 STA ID. 0 = Add, 1 = Update*/
1242 tANI_U8 action;
1243
1244 /*U-APSD Flags: 1b per AC. Encoded as follows:
1245 b7 b6 b5 b4 b3 b2 b1 b0 =
1246 X X X X BE BK VI VO */
1247 tANI_U8 uAPSD;
1248
1249 /*Max SP Length*/
1250 tANI_U8 maxSPLen;
1251
1252 /*11n Green Field preamble support
1253 0 - Not supported, 1 - Supported */
1254 tANI_U8 greenFieldCapable;
1255
1256 /*MIMO Power Save mode*/
1257 tSirMacHTMIMOPowerSaveState mimoPS;
1258
1259 /*Delayed BA Support*/
1260 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001261
Jeff Johnson295189b2012-06-20 16:38:30 -07001262 /*Max AMPDU duration in 32us*/
1263 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001264
Jeff Johnson295189b2012-06-20 16:38:30 -07001265 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1266 it to 0 if AP does not support it. This indication is sent to HAL and
1267 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1268 tANI_U8 fDsssCckMode40Mhz;
1269
1270 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1271 Retained for backward compalibity with existing HAL code*/
1272 tANI_U8 staIdx;
1273
1274 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1275 Retained for backward compalibity with existing HAL code*/
1276 tANI_U8 bssIdx;
1277
1278 tANI_U8 p2pCapableSta;
1279
Jeff Johnsone7245742012-09-05 17:12:55 -07001280 /*Reserved to align next field on a dword boundary*/
1281 tANI_U8 reserved;
1282
1283 /*These rates are the intersection of peer and self capabilities.*/
1284 tSirSupportedRates supportedRates;
1285
Jeff Johnson295189b2012-06-20 16:38:30 -07001286} tConfigStaParams, *tpConfigStaParams;
1287
Jeff Johnsone7245742012-09-05 17:12:55 -07001288/*------------------------------------------------------------------------
1289 * WLAN_HAL_CONFIG_STA_REQ
1290 * ----------------------------------------------------------------------*/
1291
1292typedef PACKED_PRE struct PACKED_POST {
1293 /*
1294 * For Self STA Entry: this represents Self Mode.
1295 * For Peer Stations, this represents the mode of the peer.
1296 * On Station:
1297 * --this mode is updated when PE adds the Self Entry.
1298 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1299 * ON AP:
1300 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1301 * to indicate the self mode of the AP.
1302 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1303 */
1304
1305 tStaRateMode opRateMode;
1306 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1307 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1308 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1309 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1310 tANI_U16 reserved;
1311
1312 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1313 //First 26 bits are reserved for those Titan rates and
1314 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1315 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1316
1317 /*
1318 * 0-76 bits used, remaining reserved
1319 * bits 0-15 and 32 should be set.
1320 */
1321 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1322
1323 /*
1324 * RX Highest Supported Data Rate defines the highest data
1325 * rate that the STA is able to receive, in unites of 1Mbps.
1326 * This value is derived from "Supported MCS Set field" inside
1327 * the HT capability element.
1328 */
1329 tANI_U16 rxHighestDataRate;
1330
1331 /* Indicates the Maximum MCS that can be received for each number
1332 * of spacial streams */
1333 tANI_U16 vhtRxMCSMap;
1334
1335 /*Indicate the highest VHT data rate that the STA is able to receive*/
1336 tANI_U16 vhtRxHighestDataRate;
1337
1338 /* Indicates the Maximum MCS that can be transmitted for each number
1339 * of spacial streams */
1340 tANI_U16 vhtTxMCSMap;
1341
1342 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1343 tANI_U16 vhtTxHighestDataRate;
1344
1345} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1346
1347typedef PACKED_PRE struct PACKED_POST
1348{
1349 /*BSSID of STA*/
1350 tSirMacAddr bssId;
1351
1352 /*ASSOC ID, as assigned by UMAC*/
1353 tANI_U16 assocId;
1354
1355 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1356 tANI_U8 staType;
1357
1358 /*Short Preamble Supported.*/
1359 tANI_U8 shortPreambleSupported;
1360
1361 /*MAC Address of STA*/
1362 tSirMacAddr staMac;
1363
1364 /*Listen interval of the STA*/
1365 tANI_U16 listenInterval;
1366
1367 /*Support for 11e/WMM*/
1368 tANI_U8 wmmEnabled;
1369
1370 /*11n HT capable STA*/
1371 tANI_U8 htCapable;
1372
1373 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1374 tANI_U8 txChannelWidthSet;
1375
1376 /*RIFS mode 0 - NA, 1 - Allowed */
1377 tANI_U8 rifsMode;
1378
1379 /*L-SIG TXOP Protection mechanism
1380 0 - No Support, 1 - Supported
1381 SG - there is global field */
1382 tANI_U8 lsigTxopProtection;
1383
1384 /*Max Ampdu Size supported by STA. TPE programming.
1385 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1386 tANI_U8 maxAmpduSize;
1387
1388 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1389 tANI_U8 maxAmpduDensity;
1390
1391 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1392 tANI_U8 maxAmsduSize;
1393
1394 /*Short GI support for 40Mhz packets*/
1395 tANI_U8 fShortGI40Mhz;
1396
1397 /*Short GI support for 20Mhz packets*/
1398 tANI_U8 fShortGI20Mhz;
1399
1400 /*Robust Management Frame (RMF) enabled/disabled*/
1401 tANI_U8 rmfEnabled;
1402
1403 /* The unicast encryption type in the association */
1404 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001405
1406 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001407 will set this flag in case of RE-ASSOC, where we want to reuse the old
1408 STA ID. 0 = Add, 1 = Update*/
1409 tANI_U8 action;
1410
1411 /*U-APSD Flags: 1b per AC. Encoded as follows:
1412 b7 b6 b5 b4 b3 b2 b1 b0 =
1413 X X X X BE BK VI VO */
1414 tANI_U8 uAPSD;
1415
1416 /*Max SP Length*/
1417 tANI_U8 maxSPLen;
1418
1419 /*11n Green Field preamble support
1420 0 - Not supported, 1 - Supported */
1421 tANI_U8 greenFieldCapable;
1422
1423 /*MIMO Power Save mode*/
1424 tSirMacHTMIMOPowerSaveState mimoPS;
1425
1426 /*Delayed BA Support*/
1427 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001428
Jeff Johnsone7245742012-09-05 17:12:55 -07001429 /*Max AMPDU duration in 32us*/
1430 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001431
Jeff Johnsone7245742012-09-05 17:12:55 -07001432 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1433 it to 0 if AP does not support it. This indication is sent to HAL and
1434 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1435 tANI_U8 fDsssCckMode40Mhz;
1436
1437 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1438 Retained for backward compalibity with existing HAL code*/
1439 tANI_U8 staIdx;
1440
1441 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1442 Retained for backward compalibity with existing HAL code*/
1443 tANI_U8 bssIdx;
1444
1445 tANI_U8 p2pCapableSta;
1446
1447 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001448 tANI_U8 htLdpcEnabled:1;
1449 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001450 tANI_U8 vhtTxBFEnabled:1;
1451 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001452
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001453 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001454 tSirSupportedRates_V1 supportedRates;
1455
1456 tANI_U8 vhtCapable;
1457 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001458
Jeff Johnsone7245742012-09-05 17:12:55 -07001459} tConfigStaParams_V1, *tpConfigStaParams_V1;
1460
Jeff Johnson295189b2012-06-20 16:38:30 -07001461typedef PACKED_PRE struct PACKED_POST
1462{
1463 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001464 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001465 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001466 tConfigStaParams_V1 configStaParams_V1;
1467 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001468} tConfigStaReqMsg, *tpConfigStaReqMsg;
1469
1470/*---------------------------------------------------------------------------
1471 WLAN_HAL_CONFIG_STA_RSP
1472---------------------------------------------------------------------------*/
1473
1474typedef PACKED_PRE struct PACKED_POST
1475{
1476 /*success or failure */
1477 tANI_U32 status;
1478
1479 /* Station index; valid only when 'status' field value SUCCESS */
1480 tANI_U8 staIdx;
1481
1482 /* BSSID Index of BSS to which the station is associated */
1483 tANI_U8 bssIdx;
1484
1485 /* DPU Index for PTK */
1486 tANI_U8 dpuIndex;
1487
Jeff Johnson32d95a32012-09-10 13:15:23 -07001488 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001489 tANI_U8 bcastDpuIndex;
1490
1491 /*DPU Index for IGTK */
1492 tANI_U8 bcastMgmtDpuIdx;
1493
1494 /*PTK DPU signature*/
1495 tANI_U8 ucUcastSig;
1496
1497 /*GTK DPU isignature*/
1498 tANI_U8 ucBcastSig;
1499
1500 /* IGTK DPU signature*/
1501 tANI_U8 ucMgmtSig;
1502
1503 tANI_U8 p2pCapableSta;
1504
1505}tConfigStaRspParams, *tpConfigStaRspParams;
1506
1507typedef PACKED_PRE struct PACKED_POST
1508{
1509 tHalMsgHeader header;
1510 tConfigStaRspParams configStaRspParams;
1511}tConfigStaRspMsg, *tpConfigStaRspMsg;
1512
1513/*---------------------------------------------------------------------------
1514 WLAN_HAL_DELETE_STA_REQ
1515---------------------------------------------------------------------------*/
1516
1517/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001518typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001519{
1520 /* Index of STA to delete */
1521 tANI_U8 staIdx;
1522} tDeleteStaParams, *tpDeleteStaParams;
1523
1524/* Delete STA Request message*/
1525typedef PACKED_PRE struct PACKED_POST
1526{
1527 tHalMsgHeader header;
1528 tDeleteStaParams delStaParams;
1529} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1530
1531/*---------------------------------------------------------------------------
1532 WLAN_HAL_DELETE_STA_RSP
1533---------------------------------------------------------------------------*/
1534
1535/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001536typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001537{
1538 /*success or failure */
1539 tANI_U32 status;
1540
1541 /* Index of STA deleted */
1542 tANI_U8 staId;
1543} tDeleteStaRspParams, *tpDeleteStaRspParams;
1544
1545/* Delete STA Response message*/
1546typedef PACKED_PRE struct PACKED_POST
1547{
1548 tHalMsgHeader header;
1549 tDeleteStaRspParams delStaRspParams;
1550} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1551
1552/*---------------------------------------------------------------------------
1553 WLAN_HAL_CONFIG_BSS_REQ
1554---------------------------------------------------------------------------*/
1555
1556//12 Bytes long because this structure can be used to represent rate
1557//and extended rate set IEs. The parser assume this to be at least 12
1558typedef __ani_attr_pre_packed struct sSirMacRateSet
1559{
1560 tANI_U8 numRates;
1561 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1562} __ani_attr_packed tSirMacRateSet;
1563
1564// access category record
1565typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1566{
1567#ifndef ANI_LITTLE_BIT_ENDIAN
1568 tANI_U8 rsvd : 1;
1569 tANI_U8 aci : 2;
1570 tANI_U8 acm : 1;
1571 tANI_U8 aifsn : 4;
1572#else
1573 tANI_U8 aifsn : 4;
1574 tANI_U8 acm : 1;
1575 tANI_U8 aci : 2;
1576 tANI_U8 rsvd : 1;
1577#endif
1578} __ani_attr_packed tSirMacAciAifsn;
1579
1580// contention window size
1581typedef __ani_attr_pre_packed struct sSirMacCW
1582{
1583#ifndef ANI_LITTLE_BIT_ENDIAN
1584 tANI_U8 max : 4;
1585 tANI_U8 min : 4;
1586#else
1587 tANI_U8 min : 4;
1588 tANI_U8 max : 4;
1589#endif
1590} __ani_attr_packed tSirMacCW;
1591
1592typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1593{
1594 tSirMacAciAifsn aci;
1595 tSirMacCW cw;
1596 tANI_U16 txoplimit;
1597} __ani_attr_packed tSirMacEdcaParamRecord;
1598
1599typedef __ani_attr_pre_packed struct sSirMacSSid
1600{
1601 tANI_U8 length;
1602 tANI_U8 ssId[32];
1603} __ani_attr_packed tSirMacSSid;
1604
1605// Concurrency role. These are generic IDs that identify the various roles
1606// in the software system.
1607typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001608 HAL_STA_MODE=0,
1609 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001610 HAL_P2P_CLIENT_MODE,
1611 HAL_P2P_GO_MODE,
1612 HAL_MONITOR_MODE,
1613} tHalConMode;
1614
1615//This is a bit pattern to be set for each mode
1616//bit 0 - sta mode
1617//bit 1 - ap mode
1618//bit 2 - p2p client mode
1619//bit 3 - p2p go mode
1620typedef enum
1621{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001622 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001623 HAL_SAP=2,
1624 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1625 HAL_P2P_CLIENT=4,
1626 HAL_P2P_GO=8,
1627 HAL_MAX_CONCURRENCY_PERSONA=4
1628} tHalConcurrencyMode;
1629
1630typedef PACKED_PRE struct PACKED_POST
1631{
1632 /* BSSID */
1633 tSirMacAddr bssId;
1634
Jeff Johnson295189b2012-06-20 16:38:30 -07001635 /* Self Mac Address */
1636 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001637
1638 /* BSS type */
1639 tSirBssType bssType;
1640
1641 /*Operational Mode: AP =0, STA = 1*/
1642 tANI_U8 operMode;
1643
1644 /*Network Type*/
1645 tSirNwType nwType;
1646
1647 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1648 tANI_U8 shortSlotTimeSupported;
1649
1650 /*Co-exist with 11a STA*/
1651 tANI_U8 llaCoexist;
1652
1653 /*Co-exist with 11b STA*/
1654 tANI_U8 llbCoexist;
1655
1656 /*Co-exist with 11g STA*/
1657 tANI_U8 llgCoexist;
1658
1659 /*Coexistence with 11n STA*/
1660 tANI_U8 ht20Coexist;
1661
1662 /*Non GF coexist flag*/
1663 tANI_U8 llnNonGFCoexist;
1664
1665 /*TXOP protection support*/
1666 tANI_U8 fLsigTXOPProtectionFullSupport;
1667
1668 /*RIFS mode*/
1669 tANI_U8 fRIFSMode;
1670
1671 /*Beacon Interval in TU*/
1672 tSirMacBeaconInterval beaconInterval;
1673
1674 /*DTIM period*/
1675 tANI_U8 dtimPeriod;
1676
1677 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1678 tANI_U8 txChannelWidthSet;
1679
1680 /*Operating channel*/
1681 tANI_U8 currentOperChannel;
1682
1683 /*Extension channel for channel bonding*/
1684 tANI_U8 currentExtChannel;
1685
1686 /*Reserved to align next field on a dword boundary*/
1687 tANI_U8 reserved;
1688
Jeff Johnsone7245742012-09-05 17:12:55 -07001689 /*SSID of the BSS*/
1690 tSirMacSSid ssId;
1691
1692 /*HAL should update the existing BSS entry, if this flag is set.
1693 UMAC will set this flag in case of reassoc, where we want to resue the
1694 the old BSSID and still return success 0 = Add, 1 = Update*/
1695 tANI_U8 action;
1696
1697 /* MAC Rate Set */
1698 tSirMacRateSet rateSet;
1699
1700 /*Enable/Disable HT capabilities of the BSS*/
1701 tANI_U8 htCapable;
1702
1703 // Enable/Disable OBSS protection
1704 tANI_U8 obssProtEnabled;
1705
1706 /*RMF enabled/disabled*/
1707 tANI_U8 rmfEnabled;
1708
1709 /*HT Operating Mode operating mode of the 802.11n STA*/
1710 tSirMacHTOperatingMode htOperMode;
1711
1712 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1713 tANI_U8 dualCTSProtection;
1714
1715 /* Probe Response Max retries */
1716 tANI_U8 ucMaxProbeRespRetryLimit;
1717
1718 /* To Enable Hidden ssid */
1719 tANI_U8 bHiddenSSIDEn;
1720
1721 /* To Enable Disable FW Proxy Probe Resp */
1722 tANI_U8 bProxyProbeRespEn;
1723
1724 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1725 EDCA params or might not desire to apply EDCA params during config BSS.
1726 0 implies Not Valid ; Non-Zero implies valid*/
1727 tANI_U8 edcaParamsValid;
1728
1729 /*EDCA Parameters for Best Effort Access Category*/
1730 tSirMacEdcaParamRecord acbe;
1731
1732 /*EDCA Parameters forBackground Access Category*/
1733 tSirMacEdcaParamRecord acbk;
1734
1735 /*EDCA Parameters for Video Access Category*/
1736 tSirMacEdcaParamRecord acvi;
1737
1738 /*EDCA Parameters for Voice Access Category*/
1739 tSirMacEdcaParamRecord acvo;
1740
1741#ifdef WLAN_FEATURE_VOWIFI_11R
1742 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1743 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1744#endif
1745
1746 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1747 tANI_U8 halPersona;
1748
1749 tANI_U8 bSpectrumMgtEnable;
1750
1751 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1752 tANI_S8 txMgmtPower;
1753 /*maxTxPower has max power to be used after applying the power constraint if any */
1754 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001755 /*Context of the station being added in HW
1756 Add a STA entry for "itself" -
1757 On AP - Add the AP itself in an "STA context"
1758 On STA - Add the AP to which this STA is joining in an "STA context" */
1759 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001760} tConfigBssParams, * tpConfigBssParams;
1761
1762
1763/*--------------------------------------------------------------------------
1764 * WLAN_HAL_CONFIG_BSS_REQ
1765 *--------------------------------------------------------------------------*/
1766typedef PACKED_PRE struct PACKED_POST
1767{
1768 /* BSSID */
1769 tSirMacAddr bssId;
1770
Jeff Johnsone7245742012-09-05 17:12:55 -07001771 /* Self Mac Address */
1772 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001773
1774 /* BSS type */
1775 tSirBssType bssType;
1776
1777 /*Operational Mode: AP =0, STA = 1*/
1778 tANI_U8 operMode;
1779
1780 /*Network Type*/
1781 tSirNwType nwType;
1782
1783 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1784 tANI_U8 shortSlotTimeSupported;
1785
1786 /*Co-exist with 11a STA*/
1787 tANI_U8 llaCoexist;
1788
1789 /*Co-exist with 11b STA*/
1790 tANI_U8 llbCoexist;
1791
1792 /*Co-exist with 11g STA*/
1793 tANI_U8 llgCoexist;
1794
1795 /*Coexistence with 11n STA*/
1796 tANI_U8 ht20Coexist;
1797
1798 /*Non GF coexist flag*/
1799 tANI_U8 llnNonGFCoexist;
1800
1801 /*TXOP protection support*/
1802 tANI_U8 fLsigTXOPProtectionFullSupport;
1803 /*RIFS mode*/
1804 tANI_U8 fRIFSMode;
1805
1806 /*Beacon Interval in TU*/
1807 tSirMacBeaconInterval beaconInterval;
1808
1809 /*DTIM period*/
1810 tANI_U8 dtimPeriod;
1811
1812 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1813 tANI_U8 txChannelWidthSet;
1814
1815 /*Operating channel*/
1816 tANI_U8 currentOperChannel;
1817
1818 /*Extension channel for channel bonding*/
1819 tANI_U8 currentExtChannel;
1820
1821 /*Reserved to align next field on a dword boundary*/
1822 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001823
1824 /*SSID of the BSS*/
1825 tSirMacSSid ssId;
1826
1827 /*HAL should update the existing BSS entry, if this flag is set.
1828 UMAC will set this flag in case of reassoc, where we want to resue the
1829 the old BSSID and still return success 0 = Add, 1 = Update*/
1830 tANI_U8 action;
1831
1832 /* MAC Rate Set */
1833 tSirMacRateSet rateSet;
1834
1835 /*Enable/Disable HT capabilities of the BSS*/
1836 tANI_U8 htCapable;
1837
1838 // Enable/Disable OBSS protection
1839 tANI_U8 obssProtEnabled;
1840
1841 /*RMF enabled/disabled*/
1842 tANI_U8 rmfEnabled;
1843
1844 /*HT Operating Mode operating mode of the 802.11n STA*/
1845 tSirMacHTOperatingMode htOperMode;
1846
1847 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1848 tANI_U8 dualCTSProtection;
1849
1850 /* Probe Response Max retries */
1851 tANI_U8 ucMaxProbeRespRetryLimit;
1852
1853 /* To Enable Hidden ssid */
1854 tANI_U8 bHiddenSSIDEn;
1855
1856 /* To Enable Disable FW Proxy Probe Resp */
1857 tANI_U8 bProxyProbeRespEn;
1858
Jeff Johnson32d95a32012-09-10 13:15:23 -07001859 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1860 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001861 0 implies Not Valid ; Non-Zero implies valid*/
1862 tANI_U8 edcaParamsValid;
1863
1864 /*EDCA Parameters for Best Effort Access Category*/
1865 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001866
Jeff Johnson295189b2012-06-20 16:38:30 -07001867 /*EDCA Parameters forBackground Access Category*/
1868 tSirMacEdcaParamRecord acbk;
1869
1870 /*EDCA Parameters for Video Access Category*/
1871 tSirMacEdcaParamRecord acvi;
1872
1873 /*EDCA Parameters for Voice Access Category*/
1874 tSirMacEdcaParamRecord acvo;
1875
1876#ifdef WLAN_FEATURE_VOWIFI_11R
1877 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1878 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1879#endif
1880
Jeff Johnson32d95a32012-09-10 13:15:23 -07001881 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001882 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001883
Jeff Johnson295189b2012-06-20 16:38:30 -07001884 tANI_U8 bSpectrumMgtEnable;
1885
1886 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1887 tANI_S8 txMgmtPower;
1888 /*maxTxPower has max power to be used after applying the power constraint if any */
1889 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001890 /*Context of the station being added in HW
1891 Add a STA entry for "itself" -
1892 On AP - Add the AP itself in an "STA context"
1893 On STA - Add the AP to which this STA is joining in an "STA context" */
1894 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001895
Jeff Johnsone7245742012-09-05 17:12:55 -07001896 tANI_U8 vhtCapable;
1897 tANI_U8 vhtTxChannelWidthSet;
1898} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001899
1900typedef PACKED_PRE struct PACKED_POST
1901{
1902 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001903 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001904 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001905 tConfigBssParams_V1 configBssParams_V1;
1906 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001907} tConfigBssReqMsg, *tpConfigBssReqMsg;
1908
1909/*---------------------------------------------------------------------------
1910 WLAN_HAL_CONFIG_BSS_RSP
1911---------------------------------------------------------------------------*/
1912
1913typedef PACKED_PRE struct PACKED_POST
1914{
1915 /* Success or Failure */
1916 tANI_U32 status;
1917
1918 /* BSS index allocated by HAL */
1919 tANI_U8 bssIdx;
1920
1921 /* DPU descriptor index for PTK */
1922 tANI_U8 dpuDescIndx;
1923
1924 /* PTK DPU signature */
1925 tANI_U8 ucastDpuSignature;
1926
1927 /* DPU descriptor index for GTK*/
1928 tANI_U8 bcastDpuDescIndx;
1929
1930 /* GTK DPU signature */
1931 tANI_U8 bcastDpuSignature;
1932
1933 /*DPU descriptor for IGTK*/
1934 tANI_U8 mgmtDpuDescIndx;
1935
1936 /* IGTK DPU signature */
1937 tANI_U8 mgmtDpuSignature;
1938
1939 /* Station Index for BSS entry*/
1940 tANI_U8 bssStaIdx;
1941
1942 /* Self station index for this BSS */
1943 tANI_U8 bssSelfStaIdx;
1944
1945 /* Bcast station for buffering bcast frames in AP role */
1946 tANI_U8 bssBcastStaIdx;
1947
1948 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1949 tSirMacAddr staMac;
1950
1951 /*HAL fills in the tx power used for mgmt frames in this field. */
1952 tANI_S8 txMgmtPower;
1953
1954} tConfigBssRspParams, * tpConfigBssRspParams;
1955
1956typedef PACKED_PRE struct PACKED_POST
1957{
1958 tHalMsgHeader header;
1959 tConfigBssRspParams configBssRspParams;
1960} tConfigBssRspMsg, *tpConfigBssRspMsg;
1961
1962/*---------------------------------------------------------------------------
1963 WLAN_HAL_DELETE_BSS_REQ
1964---------------------------------------------------------------------------*/
1965
1966typedef PACKED_PRE struct PACKED_POST
1967{
1968 /* BSS index to be deleted */
1969 tANI_U8 bssIdx;
1970
1971} tDeleteBssParams, *tpDeleteBssParams;
1972
1973typedef PACKED_PRE struct PACKED_POST
1974{
1975 tHalMsgHeader header;
1976 tDeleteBssParams deleteBssParams;
1977} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1978
1979/*---------------------------------------------------------------------------
1980 WLAN_HAL_DELETE_BSS_RSP
1981---------------------------------------------------------------------------*/
1982
1983typedef PACKED_PRE struct PACKED_POST
1984{
1985 /* Success or Failure */
1986 tANI_U32 status;
1987
1988 /* BSS index that has been deleted */
1989 tANI_U8 bssIdx;
1990
1991} tDeleteBssRspParams, *tpDeleteBssRspParams;
1992
1993typedef PACKED_PRE struct PACKED_POST
1994{
1995 tHalMsgHeader header;
1996 tDeleteBssRspParams deleteBssRspParams;
1997} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
1998
1999/*---------------------------------------------------------------------------
2000 WLAN_HAL_JOIN_REQ
2001---------------------------------------------------------------------------*/
2002
2003typedef PACKED_PRE struct PACKED_POST
2004{
2005 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002006 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002007
2008 /*Indicates the channel to switch to.*/
2009 tANI_U8 ucChannel;
2010
2011 /* Self STA MAC */
2012 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002013
Jeff Johnson295189b2012-06-20 16:38:30 -07002014 /*Local power constraint*/
2015 tANI_U8 ucLocalPowerConstraint;
2016
2017 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002018 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002019
2020 /*link State*/
2021 tSirLinkState linkState;
2022
2023 /* Max TX power */
2024 tANI_S8 maxTxPower;
2025
2026} tHalJoinReqParams, *tpHalJoinReqParams;
2027
2028typedef PACKED_PRE struct PACKED_POST
2029{
2030 tHalMsgHeader header;
2031 tHalJoinReqParams joinReqParams;
2032} tHalJoinReqMsg, *tpHalJoinReqMsg;
2033
2034/*---------------------------------------------------------------------------
2035 WLAN_HAL_JOIN_RSP
2036---------------------------------------------------------------------------*/
2037
2038typedef PACKED_PRE struct PACKED_POST
2039{
2040 /*success or failure */
2041 tANI_U32 status;
2042
2043 /* HAL fills in the tx power used for mgmt frames in this field */
2044 tPowerdBm txMgmtPower;
2045
2046}tHalJoinRspParams, *tpHalJoinRspParams;
2047
2048typedef PACKED_PRE struct PACKED_POST
2049{
2050 tHalMsgHeader header;
2051 tHalJoinRspParams joinRspParams;
2052}tHalJoinRspMsg, *tpHalJoinRspMsg;
2053
2054/*---------------------------------------------------------------------------
2055 WLAN_HAL_POST_ASSOC_REQ
2056---------------------------------------------------------------------------*/
2057
2058typedef PACKED_PRE struct PACKED_POST
2059{
2060 tConfigStaParams configStaParams;
2061 tConfigBssParams configBssParams;
2062} tPostAssocReqParams, *tpPostAssocReqParams;
2063
2064typedef PACKED_PRE struct PACKED_POST
2065{
2066 tHalMsgHeader header;
2067 tPostAssocReqParams postAssocReqParams;
2068} tPostAssocReqMsg, *tpPostAssocReqMsg;
2069
2070/*---------------------------------------------------------------------------
2071 WLAN_HAL_POST_ASSOC_RSP
2072---------------------------------------------------------------------------*/
2073
2074typedef PACKED_PRE struct PACKED_POST
2075{
2076 tConfigStaRspParams configStaRspParams;
2077 tConfigBssRspParams configBssRspParams;
2078} tPostAssocRspParams, *tpPostAssocRspParams;
2079
2080typedef PACKED_PRE struct PACKED_POST
2081{
2082 tHalMsgHeader header;
2083 tPostAssocRspParams postAssocRspParams;
2084} tPostAssocRspMsg, *tpPostAssocRspMsg;
2085
2086/*---------------------------------------------------------------------------
2087 WLAN_HAL_SET_BSSKEY_REQ
2088---------------------------------------------------------------------------*/
2089
2090/*
2091 * This is used by PE to create a set of WEP keys for a given BSS.
2092 */
2093typedef PACKED_PRE struct PACKED_POST
2094{
2095 /*BSS Index of the BSS*/
2096 tANI_U8 bssIdx;
2097
2098 /*Encryption Type used with peer*/
2099 tAniEdType encType;
2100
2101 /*Number of keys*/
2102 tANI_U8 numKeys;
2103
2104 /*Array of keys.*/
2105 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002106
Jeff Johnson295189b2012-06-20 16:38:30 -07002107 /*Control for Replay Count, 1= Single TID based replay count on Tx
2108 0 = Per TID based replay count on TX */
2109 tANI_U8 singleTidRc;
2110} tSetBssKeyParams, *tpSetBssKeyParams;
2111
2112typedef PACKED_PRE struct PACKED_POST
2113{
2114 tHalMsgHeader header;
2115 tSetBssKeyParams setBssKeyParams;
2116} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2117
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002118/* tagged version of set bss key */
2119typedef PACKED_PRE struct PACKED_POST
2120{
2121 tSetBssKeyReqMsg Msg;
2122 uint32 Tag;
2123} tSetBssKeyReqMsgTagged;
2124
Jeff Johnson295189b2012-06-20 16:38:30 -07002125/*---------------------------------------------------------------------------
2126 WLAN_HAL_SET_BSSKEY_RSP
2127---------------------------------------------------------------------------*/
2128typedef PACKED_PRE struct PACKED_POST
2129{
2130 /*success or failure */
2131 tANI_U32 status;
2132
2133} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2134
2135typedef PACKED_PRE struct PACKED_POST
2136{
2137 tHalMsgHeader header;
2138 tSetBssKeyRspParams setBssKeyRspParams;
2139} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2140
2141/*---------------------------------------------------------------------------
2142 WLAN_HAL_SET_STAKEY_REQ,
2143---------------------------------------------------------------------------*/
2144
2145/*
2146 * This is used by PE to configure the key information on a given station.
2147 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2148 * a preconfigured key from a BSS the station assoicated with; otherwise
2149 * a new key descriptor is created based on the key field.
2150 */
2151
2152typedef PACKED_PRE struct PACKED_POST
2153{
2154 tHalMsgHeader header;
2155 tSetStaKeyParams setStaKeyParams;
2156} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2157
2158/*---------------------------------------------------------------------------
2159 WLAN_HAL_SET_STAKEY_RSP,
2160---------------------------------------------------------------------------*/
2161typedef PACKED_PRE struct PACKED_POST
2162{
2163 /*success or failure */
2164 tANI_U32 status;
2165
2166} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2167
2168typedef PACKED_PRE struct PACKED_POST
2169{
2170 tHalMsgHeader header;
2171 tSetStaKeyRspParams setStaKeyRspParams;
2172} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2173
2174/*---------------------------------------------------------------------------
2175 WLAN_HAL_RMV_BSSKEY_REQ,
2176---------------------------------------------------------------------------*/
2177/*
2178 * This is used by PE to remove keys for a given BSS.
2179 */
2180typedef PACKED_PRE struct PACKED_POST
2181
2182{
2183 /*BSS Index of the BSS*/
2184 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002185
Jeff Johnson295189b2012-06-20 16:38:30 -07002186 /*Encryption Type used with peer*/
2187 tAniEdType encType;
2188
2189 /*Key Id*/
2190 tANI_U8 keyId;
2191
2192 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2193 tAniWepType wepType;
2194
2195} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2196
2197typedef PACKED_PRE struct PACKED_POST
2198{
2199 tHalMsgHeader header;
2200 tRemoveBssKeyParams removeBssKeyParams;
2201} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2202
2203/*---------------------------------------------------------------------------
2204 WLAN_HAL_RMV_BSSKEY_RSP,
2205---------------------------------------------------------------------------*/
2206typedef PACKED_PRE struct PACKED_POST
2207{
2208 /*success or failure */
2209 tANI_U32 status;
2210
2211} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2212
2213typedef PACKED_PRE struct PACKED_POST
2214{
2215 tHalMsgHeader header;
2216 tRemoveBssKeyRspParams removeBssKeyRspParams;
2217} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2218
2219/*---------------------------------------------------------------------------
2220 WLAN_HAL_RMV_STAKEY_REQ,
2221---------------------------------------------------------------------------*/
2222/*
2223 * This is used by PE to Remove the key information on a given station.
2224 */
2225typedef PACKED_PRE struct PACKED_POST
2226{
2227 /*STA Index*/
2228 tANI_U16 staIdx;
2229
2230 /*Encryption Type used with peer*/
2231 tAniEdType encType;
2232
2233 /*Key Id*/
2234 tANI_U8 keyId;
2235
2236 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2237 the same key is used for both broadcast and unicast.*/
2238 tANI_BOOLEAN unicast;
2239
2240} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2241
2242typedef PACKED_PRE struct PACKED_POST
2243{
2244 tHalMsgHeader header;
2245 tRemoveStaKeyParams removeStaKeyParams;
2246} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2247
2248/*---------------------------------------------------------------------------
2249 WLAN_HAL_RMV_STAKEY_RSP,
2250---------------------------------------------------------------------------*/
2251typedef PACKED_PRE struct PACKED_POST
2252{
2253 /*success or failure */
2254 tANI_U32 status;
2255} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2256
2257typedef PACKED_PRE struct PACKED_POST
2258{
2259 tHalMsgHeader header;
2260 tRemoveStaKeyRspParams removeStaKeyRspParams;
2261} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2262
Jeff Johnsone7245742012-09-05 17:12:55 -07002263#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002264
Jeff Johnsone7245742012-09-05 17:12:55 -07002265#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002266#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002267#endif
2268
2269#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002270#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002271#endif
2272
2273/*-------------------------------------------------------------------------
2274WLAN_HAL_START_OEM_DATA_REQ
2275--------------------------------------------------------------------------*/
2276typedef PACKED_PRE struct PACKED_POST
2277{
2278 tANI_U32 status;
2279 tSirMacAddr selfMacAddr;
2280 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2281} tStartOemDataReqParams, *tpStartOemDataReqParams;
2282
2283typedef PACKED_PRE struct PACKED_POST
2284{
2285 tHalMsgHeader header;
2286 tStartOemDataReqParams startOemDataReqParams;
2287} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2288
2289/*-------------------------------------------------------------------------
2290WLAN_HAL_START_OEM_DATA_RSP
2291--------------------------------------------------------------------------*/
2292
2293typedef PACKED_PRE struct PACKED_POST
2294{
2295 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2296} tStartOemDataRspParams, *tpStartOemDataRspParams;
2297
2298typedef PACKED_PRE struct PACKED_POST
2299{
2300 tHalMsgHeader header;
2301 tStartOemDataRspParams startOemDataRspParams;
2302} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2303
2304#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002305
2306
2307
2308/*---------------------------------------------------------------------------
2309WLAN_HAL_CH_SWITCH_REQ
2310---------------------------------------------------------------------------*/
2311
2312typedef PACKED_PRE struct PACKED_POST
2313{
2314 /* Channel number */
2315 tANI_U8 channelNumber;
2316
2317 /* Local power constraint */
2318 tANI_U8 localPowerConstraint;
2319
2320 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002321 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002322
2323 //HAL fills in the tx power used for mgmt frames in this field.
2324 tPowerdBm txMgmtPower;
2325
2326 /* Max TX power */
2327 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002328
Jeff Johnson295189b2012-06-20 16:38:30 -07002329 /* Self STA MAC */
2330 tSirMacAddr selfStaMacAddr;
2331
2332 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2333 this should be applied only to that session*/
2334 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2335 * bssid needs to be out of the VOWifi feature flag */
2336 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2337 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2338 */
2339 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002340
Jeff Johnson295189b2012-06-20 16:38:30 -07002341}tSwitchChannelParams, *tpSwitchChannelParams;
2342
2343typedef PACKED_PRE struct PACKED_POST
2344{
2345 tHalMsgHeader header;
2346 tSwitchChannelParams switchChannelParams;
2347} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2348
2349/*---------------------------------------------------------------------------
2350WLAN_HAL_CH_SWITCH_RSP
2351---------------------------------------------------------------------------*/
2352
2353typedef PACKED_PRE struct PACKED_POST
2354{
2355 /* Status */
2356 tANI_U32 status;
2357
2358 /* Channel number - same as in request*/
2359 tANI_U8 channelNumber;
2360
2361 /* HAL fills in the tx power used for mgmt frames in this field */
2362 tPowerdBm txMgmtPower;
2363
2364 /* BSSID needed to identify session - same as in request*/
2365 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002366
Jeff Johnson295189b2012-06-20 16:38:30 -07002367}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2368
2369typedef PACKED_PRE struct PACKED_POST
2370{
2371 tHalMsgHeader header;
2372 tSwitchChannelRspParams switchChannelRspParams;
2373} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2374
2375/*---------------------------------------------------------------------------
2376WLAN_HAL_UPD_EDCA_PARAMS_REQ
2377---------------------------------------------------------------------------*/
2378
2379typedef PACKED_PRE struct PACKED_POST
2380{
2381 /*BSS Index*/
2382 tANI_U16 bssIdx;
2383
2384 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002385 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002386
2387 /* Background */
2388 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002389
Jeff Johnson295189b2012-06-20 16:38:30 -07002390 /* Video */
2391 tSirMacEdcaParamRecord acvi;
2392
2393 /* Voice */
2394 tSirMacEdcaParamRecord acvo;
2395
2396} tEdcaParams, *tpEdcaParams;
2397
2398typedef PACKED_PRE struct PACKED_POST
2399{
2400 tHalMsgHeader header;
2401 tEdcaParams edcaParams;
2402} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2403
2404/*---------------------------------------------------------------------------
2405WLAN_HAL_UPD_EDCA_PARAMS_RSP
2406---------------------------------------------------------------------------*/
2407typedef PACKED_PRE struct PACKED_POST
2408{
2409 /*success or failure */
2410 tANI_U32 status;
2411} tEdcaRspParams, *tpEdcaRspParams;
2412
2413typedef PACKED_PRE struct PACKED_POST
2414{
2415 tHalMsgHeader header;
2416 tEdcaRspParams edcaRspParams;
2417} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2418
2419
2420
2421/*---------------------------------------------------------------------------
2422 * WLAN_HAL_GET_STATS_REQ
2423 *--------------------------------------------------------------------------*/
2424typedef PACKED_PRE struct PACKED_POST
2425
2426{
2427 /* Index of STA to which the statistics */
2428 tANI_U16 staIdx;
2429
2430 /* Encryption mode */
2431 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002432
Jeff Johnson295189b2012-06-20 16:38:30 -07002433 /* status */
2434 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002435
Jeff Johnson295189b2012-06-20 16:38:30 -07002436 /* Statistics */
2437 tANI_U32 sendBlocks;
2438 tANI_U32 recvBlocks;
2439 tANI_U32 replays;
2440 tANI_U8 micErrorCnt;
2441 tANI_U32 protExclCnt;
2442 tANI_U16 formatErrCnt;
2443 tANI_U16 unDecryptableCnt;
2444 tANI_U32 decryptErrCnt;
2445 tANI_U32 decryptOkCnt;
2446} tDpuStatsParams, * tpDpuStatsParams;
2447
2448typedef PACKED_PRE struct PACKED_POST
2449{
2450 /* Valid STA Idx for per STA stats request */
2451 tANI_U32 staId;
2452
2453 /* Categories of stats requested as specified in eHalStatsMask*/
2454 tANI_U32 statsMask;
2455}tHalStatsReqParams, *tpHalStatsReqParams;
2456
2457typedef PACKED_PRE struct PACKED_POST
2458{
2459 tHalMsgHeader header;
2460 tHalStatsReqParams statsReqParams;
2461} tHalStatsReqMsg, *tpHalStatsReqMsg;
2462
2463/*---------------------------------------------------------------------------
2464 * WLAN_HAL_GET_STATS_RSP
2465 *--------------------------------------------------------------------------*/
2466
2467typedef PACKED_PRE struct PACKED_POST
2468{
2469 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2470 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2471 // station successfully transmitted after more than one retransmission attempt
2472
Jeff Johnson32d95a32012-09-10 13:15:23 -07002473 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2474 //(with and without retries, including multi-cast, broadcast)
2475 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2476 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002477 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2478 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2479 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2480 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 -07002481 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2482 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 -07002483 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2484 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 -07002485 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2486 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002487 //to provide this.
2488}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2489
2490
2491// defines tx_rate_flags
2492typedef enum eTxRateInfo
2493{
2494 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2495 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2496 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2497 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2498 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2499} tTxrateinfoflags;
2500
2501
2502typedef PACKED_PRE struct PACKED_POST
2503{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002504 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 -07002505 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002506 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 -07002507 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002508 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2509 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002510 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002511 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2512 //for eg: if it is 10.5dBm, the value would be 105
2513 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2514 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002515
Jeff Johnson32d95a32012-09-10 13:15:23 -07002516 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2517 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002518 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002519 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2520 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002521}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2522
2523typedef PACKED_PRE struct PACKED_POST
2524{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002525 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2526 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002527 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002528 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 -07002529 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002530 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 -07002531 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002532 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 -07002533 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002534 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 -07002535 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002536 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 -07002537 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002538 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 -07002539 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002540 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 -07002541 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002542 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 -07002543 //decrypted
2544 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2545
2546}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002547
Jeff Johnson295189b2012-06-20 16:38:30 -07002548typedef PACKED_PRE struct PACKED_POST
2549{
2550 tAniGlobalSecurityStats ucStats;
2551 tAniGlobalSecurityStats mcbcStats;
2552}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2553
2554typedef PACKED_PRE struct PACKED_POST
2555{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002556 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2557 //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 -07002558 //address 1 field
2559 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 -07002560 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 -07002561 //primary channel
2562 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 -07002563 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 -07002564 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002565 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2566 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002567 //decoded correctly
2568}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2569
2570typedef PACKED_PRE struct PACKED_POST
2571{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002572 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 -07002573 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002574 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2575 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 -07002576 //is transmitted
2577}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2578
2579typedef PACKED_PRE struct PACKED_POST
2580{
2581 /* Success or Failure */
2582 tANI_U32 status;
2583
2584 /* STA Idx */
2585 tANI_U32 staId;
2586
2587 /* Categories of STATS being returned as per eHalStatsMask*/
2588 tANI_U32 statsMask;
2589
2590 /* message type is same as the request type */
2591 tANI_U16 msgType;
2592
2593 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002594 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002595
2596} tHalStatsRspParams, *tpHalStatsRspParams;
2597
2598
2599
2600typedef PACKED_PRE struct PACKED_POST
2601{
2602 tHalMsgHeader header;
2603 tHalStatsRspParams statsRspParams;
2604} tHalStatsRspMsg, *tpHalStatsRspMsg;
2605
2606/*---------------------------------------------------------------------------
2607 * WLAN_HAL_SET_LINK_ST_REQ
2608 *--------------------------------------------------------------------------*/
2609typedef PACKED_PRE struct PACKED_POST
2610{
2611 tSirMacAddr bssid;
2612 tSirLinkState state;
2613 tSirMacAddr selfMacAddr;
2614} tLinkStateParams, *tpLinkStateParams;
2615
2616typedef PACKED_PRE struct PACKED_POST
2617{
2618 tHalMsgHeader header;
2619 tLinkStateParams linkStateParams;
2620} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2621
2622/*---------------------------------------------------------------------------
2623 * WLAN_HAL_SET_LINK_ST_RSP
2624 *--------------------------------------------------------------------------*/
2625
2626typedef PACKED_PRE struct PACKED_POST
2627{
2628 /*success or failure */
2629 tANI_U32 status;
2630} tLinkStateRspParams, *tpLinkStateRspParams;
2631
2632typedef PACKED_PRE struct PACKED_POST
2633{
2634 tHalMsgHeader header;
2635 tLinkStateRspParams linkStateRspParams;
2636} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2637
2638/*---------------------------------------------------------------------------
2639 * WLAN_HAL_ADD_TS_REQ
2640 *--------------------------------------------------------------------------*/
2641
2642/* TSPEC Params */
2643typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2644{
2645#ifndef ANI_LITTLE_BIT_ENDIAN
2646 tANI_U16 ackPolicy : 2;
2647 tANI_U16 userPrio : 3;
2648 tANI_U16 psb : 1;
2649 tANI_U16 aggregation : 1;
2650 tANI_U16 accessPolicy : 2;
2651 tANI_U16 direction : 2;
2652 tANI_U16 tsid : 4;
2653 tANI_U16 trafficType : 1;
2654#else
2655 tANI_U16 trafficType : 1;
2656 tANI_U16 tsid : 4;
2657 tANI_U16 direction : 2;
2658 tANI_U16 accessPolicy : 2;
2659 tANI_U16 aggregation : 1;
2660 tANI_U16 psb : 1;
2661 tANI_U16 userPrio : 3;
2662 tANI_U16 ackPolicy : 2;
2663#endif
2664} __ani_attr_packed tSirMacTSInfoTfc;
2665
2666/* Flag to schedule the traffic type */
2667typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2668{
2669#ifndef ANI_LITTLE_BIT_ENDIAN
2670 tANI_U8 rsvd : 7;
2671 tANI_U8 schedule : 1;
2672#else
2673 tANI_U8 schedule : 1;
2674 tANI_U8 rsvd : 7;
2675#endif
2676} __ani_attr_packed tSirMacTSInfoSch;
2677
2678/* Traffic and scheduling info */
2679typedef __ani_attr_pre_packed struct sSirMacTSInfo
2680{
2681 tSirMacTSInfoTfc traffic;
2682 tSirMacTSInfoSch schedule;
2683} __ani_attr_packed tSirMacTSInfo;
2684
2685/* Information elements */
2686typedef __ani_attr_pre_packed struct sSirMacTspecIE
2687{
2688 tANI_U8 type;
2689 tANI_U8 length;
2690 tSirMacTSInfo tsinfo;
2691 tANI_U16 nomMsduSz;
2692 tANI_U16 maxMsduSz;
2693 tANI_U32 minSvcInterval;
2694 tANI_U32 maxSvcInterval;
2695 tANI_U32 inactInterval;
2696 tANI_U32 suspendInterval;
2697 tANI_U32 svcStartTime;
2698 tANI_U32 minDataRate;
2699 tANI_U32 meanDataRate;
2700 tANI_U32 peakDataRate;
2701 tANI_U32 maxBurstSz;
2702 tANI_U32 delayBound;
2703 tANI_U32 minPhyRate;
2704 tANI_U16 surplusBw;
2705 tANI_U16 mediumTime;
2706}__ani_attr_packed tSirMacTspecIE;
2707
2708typedef PACKED_PRE struct PACKED_POST
2709{
2710 /* Station Index */
2711 tANI_U16 staIdx;
2712
2713 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2714 tANI_U16 tspecIdx;
2715
2716 /* To program TPE with required parameters */
2717 tSirMacTspecIE tspec;
2718
2719 /* U-APSD Flags: 1b per AC. Encoded as follows:
2720 b7 b6 b5 b4 b3 b2 b1 b0 =
2721 X X X X BE BK VI VO */
2722 tANI_U8 uAPSD;
2723
2724 /* These parameters are for all the access categories */
2725 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2726 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2727 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002728
Jeff Johnson295189b2012-06-20 16:38:30 -07002729} tAddTsParams, *tpAddTsParams;
2730
2731typedef PACKED_PRE struct PACKED_POST
2732{
2733 tHalMsgHeader header;
2734 tAddTsParams addTsParams;
2735} tAddTsReqMsg, *tpAddTsReqMsg;
2736
2737/*---------------------------------------------------------------------------
2738 * WLAN_HAL_ADD_TS_RSP
2739 *--------------------------------------------------------------------------*/
2740
2741typedef PACKED_PRE struct PACKED_POST
2742{
2743 /*success or failure */
2744 tANI_U32 status;
2745} tAddTsRspParams, *tpAddTsRspParams;
2746
2747typedef PACKED_PRE struct PACKED_POST
2748{
2749 tHalMsgHeader header;
2750 tAddTsRspParams addTsRspParams;
2751} tAddTsRspMsg, *tpAddTsRspMsg;
2752
2753
2754/*---------------------------------------------------------------------------
2755 * WLAN_HAL_DEL_TS_REQ
2756 *--------------------------------------------------------------------------*/
2757
2758typedef PACKED_PRE struct PACKED_POST
2759{
2760 /* Station Index */
2761 tANI_U16 staIdx;
2762
2763 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2764 tANI_U16 tspecIdx;
2765
2766 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002767 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002768
2769} tDelTsParams, *tpDelTsParams;
2770
2771typedef PACKED_PRE struct PACKED_POST
2772{
2773 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002774 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002775} tDelTsReqMsg, *tpDelTsReqMsg;
2776
2777/*---------------------------------------------------------------------------
2778 * WLAN_HAL_DEL_TS_RSP
2779 *--------------------------------------------------------------------------*/
2780
2781typedef PACKED_PRE struct PACKED_POST
2782{
2783 /*success or failure */
2784 tANI_U32 status;
2785} tDelTsRspParams, *tpDelTsRspParams;
2786
2787typedef PACKED_PRE struct PACKED_POST
2788{
2789 tHalMsgHeader header;
2790 tDelTsRspParams delTsRspParams;
2791} tDelTsRspMsg, *tpDelTsRspMsg;
2792
2793/* End of TSpec Parameters */
2794
2795/* Start of BLOCK ACK related Parameters */
2796
2797/*---------------------------------------------------------------------------
2798 * WLAN_HAL_ADD_BA_SESSION_REQ
2799 *--------------------------------------------------------------------------*/
2800
2801typedef PACKED_PRE struct PACKED_POST
2802{
2803 /* Station Index */
2804 tANI_U16 staIdx;
2805
2806 /* Peer MAC Address */
2807 tSirMacAddr peerMacAddr;
2808
2809 /* ADDBA Action Frame dialog token
2810 HAL will not interpret this object */
2811 tANI_U8 baDialogToken;
2812
2813 /* TID for which the BA is being setup
2814 This identifies the TC or TS of interest */
2815 tANI_U8 baTID;
2816
2817 /* 0 - Delayed BA (Not supported)
2818 1 - Immediate BA */
2819 tANI_U8 baPolicy;
2820
2821 /* Indicates the number of buffers for this TID (baTID)
2822 NOTE - This is the requested buffer size. When this
2823 is processed by HAL and subsequently by HDD, it is
2824 possible that HDD may change this buffer size. Any
2825 change in the buffer size should be noted by PE and
2826 advertized appropriately in the ADDBA response */
2827 tANI_U16 baBufferSize;
2828
2829 /* BA timeout in TU's 0 means no timeout will occur */
2830 tANI_U16 baTimeout;
2831
2832 /* b0..b3 - Fragment Number - Always set to 0
2833 b4..b15 - Starting Sequence Number of first MSDU
2834 for which this BA is setup */
2835 tANI_U16 baSSN;
2836
2837 /* ADDBA direction
2838 1 - Originator
2839 0 - Recipient */
2840 tANI_U8 baDirection;
2841} tAddBASessionParams, *tpAddBASessionParams;
2842
2843typedef PACKED_PRE struct PACKED_POST
2844{
2845 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002846 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002847}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2848
2849/*---------------------------------------------------------------------------
2850 * WLAN_HAL_ADD_BA_SESSION_RSP
2851 *--------------------------------------------------------------------------*/
2852
2853typedef PACKED_PRE struct PACKED_POST
2854{
2855 /*success or failure */
2856 tANI_U32 status;
2857
2858 /* Dialog token */
2859 tANI_U8 baDialogToken;
2860
2861 /* TID for which the BA session has been setup */
2862 tANI_U8 baTID;
2863
2864 /* BA Buffer Size allocated for the current BA session */
2865 tANI_U8 baBufferSize;
2866
2867 tANI_U8 baSessionID;
2868
2869 /* Reordering Window buffer */
2870 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002871
Jeff Johnson295189b2012-06-20 16:38:30 -07002872 /*Station Index to id the sta */
2873 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002874
Jeff Johnson295189b2012-06-20 16:38:30 -07002875 /* Starting Sequence Number */
2876 tANI_U16 SSN;
2877} tAddBASessionRspParams, *tpAddBASessionRspParams;
2878
2879typedef PACKED_PRE struct PACKED_POST
2880{
2881 tHalMsgHeader header;
2882 tAddBASessionRspParams addBASessionRspParams;
2883} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2884
2885/*---------------------------------------------------------------------------
2886 * WLAN_HAL_ADD_BA_REQ
2887 *--------------------------------------------------------------------------*/
2888
2889typedef PACKED_PRE struct PACKED_POST
2890{
2891 /* Session Id */
2892 tANI_U8 baSessionID;
2893
2894 /* Reorder Window Size */
2895 tANI_U8 winSize;
2896
2897#ifdef FEATURE_ON_CHIP_REORDERING
2898 tANI_BOOLEAN isReorderingDoneOnChip;
2899#endif
2900} tAddBAParams, *tpAddBAParams;
2901
2902typedef PACKED_PRE struct PACKED_POST
2903{
2904 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002905 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002906} tAddBAReqMsg, *tpAddBAReqMsg;
2907
2908
2909/*---------------------------------------------------------------------------
2910 * WLAN_HAL_ADD_BA_RSP
2911 *--------------------------------------------------------------------------*/
2912
2913typedef PACKED_PRE struct PACKED_POST
2914{
2915 /*success or failure */
2916 tANI_U32 status;
2917
2918 /* Dialog token */
2919 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002920
Jeff Johnson295189b2012-06-20 16:38:30 -07002921} tAddBARspParams, *tpAddBARspParams;
2922
2923typedef PACKED_PRE struct PACKED_POST
2924{
2925 tHalMsgHeader header;
2926 tAddBARspParams addBARspParams;
2927} tAddBARspMsg, *tpAddBARspMsg;
2928
2929
2930/*---------------------------------------------------------------------------
2931 * WLAN_HAL_TRIGGER_BA_REQ
2932 *--------------------------------------------------------------------------*/
2933
2934
2935typedef struct sAddBaInfo
2936{
2937 tANI_U16 fBaEnable : 1;
2938 tANI_U16 startingSeqNum: 12;
2939 tANI_U16 reserved : 3;
2940}tAddBaInfo, *tpAddBaInfo;
2941
2942typedef struct sTriggerBaRspCandidate
2943{
2944 tSirMacAddr staAddr;
2945 tAddBaInfo baInfo[STACFG_MAX_TC];
2946}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2947
2948typedef struct sTriggerBaCandidate
2949{
2950 tANI_U8 staIdx;
2951 tANI_U8 tidBitmap;
2952}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2953
2954typedef PACKED_PRE struct PACKED_POST
2955{
2956 /* Session Id */
2957 tANI_U8 baSessionID;
2958
Jeff Johnson32d95a32012-09-10 13:15:23 -07002959 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002960 * Candidate List(tTriggerBaCandidate)
2961 */
2962 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002963
Jeff Johnson295189b2012-06-20 16:38:30 -07002964} tTriggerBAParams, *tpTriggerBAParams;
2965
2966typedef PACKED_PRE struct PACKED_POST
2967{
2968 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002969 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002970} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2971
2972
2973/*---------------------------------------------------------------------------
2974 * WLAN_HAL_TRIGGER_BA_RSP
2975 *--------------------------------------------------------------------------*/
2976
2977typedef PACKED_PRE struct PACKED_POST
2978{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002979
Jeff Johnson295189b2012-06-20 16:38:30 -07002980 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002981 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002982
2983 /* success or failure */
2984 tANI_U32 status;
2985
Jeff Johnson32d95a32012-09-10 13:15:23 -07002986 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002987 * Rsp Candidate List(tTriggerRspBaCandidate)
2988 */
2989 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002990
Jeff Johnson295189b2012-06-20 16:38:30 -07002991
2992} tTriggerBARspParams, *tpTriggerBARspParams;
2993
2994typedef PACKED_PRE struct PACKED_POST
2995{
2996 tHalMsgHeader header;
2997 tTriggerBARspParams triggerBARspParams;
2998} tTriggerBARspMsg, *tpTriggerBARspMsg;
2999
3000/*---------------------------------------------------------------------------
3001 * WLAN_HAL_DEL_BA_REQ
3002 *--------------------------------------------------------------------------*/
3003
3004typedef PACKED_PRE struct PACKED_POST
3005{
3006 /* Station Index */
3007 tANI_U16 staIdx;
3008
3009 /* TID for which the BA session is being deleted */
3010 tANI_U8 baTID;
3011
3012 /* DELBA direction
3013 1 - Originator
3014 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003015 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003016} tDelBAParams, *tpDelBAParams;
3017
3018typedef PACKED_PRE struct PACKED_POST
3019{
3020 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003021 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003022} tDelBAReqMsg, *tpDelBAReqMsg;
3023
3024/*---------------------------------------------------------------------------
3025 * WLAN_HAL_DEL_BA_RSP
3026 *--------------------------------------------------------------------------*/
3027
3028typedef PACKED_PRE struct PACKED_POST
3029{
3030 /* success or failure */
3031 tANI_U32 status;
3032} tDelBARspParams, *tpDelBARspParams;
3033
3034typedef PACKED_PRE struct PACKED_POST
3035{
3036 tHalMsgHeader header;
3037 tDelBARspParams delBARspParams;
3038} tDelBARspMsg, *tpDelBARspMsg;
3039
3040
3041#ifdef FEATURE_WLAN_CCX
3042
3043/*---------------------------------------------------------------------------
3044 * WLAN_HAL_TSM_STATS_REQ
3045 *--------------------------------------------------------------------------*/
3046typedef PACKED_PRE struct PACKED_POST
3047{
3048 /* Traffic Id */
3049 tANI_U8 tsmTID;
3050
3051 tSirMacAddr bssId;
3052} tTsmStatsParams, *tpTsmStatsParams;
3053
3054typedef PACKED_PRE struct PACKED_POST
3055{
3056 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003057 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003058} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3059
3060
3061/*---------------------------------------------------------------------------
3062 * WLAN_HAL_TSM_STATS_RSP
3063 *--------------------------------------------------------------------------*/
3064typedef PACKED_PRE struct PACKED_POST
3065{
3066 /*success or failure */
3067 tANI_U32 status;
3068
Jeff Johnson32d95a32012-09-10 13:15:23 -07003069 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003070 tANI_U16 UplinkPktQueueDly;
3071
Jeff Johnson32d95a32012-09-10 13:15:23 -07003072 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003073 tANI_U16 UplinkPktQueueDlyHist[4];
3074
Jeff Johnson32d95a32012-09-10 13:15:23 -07003075 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003076 tANI_U32 UplinkPktTxDly;
3077
Jeff Johnson32d95a32012-09-10 13:15:23 -07003078 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003079 tANI_U16 UplinkPktLoss;
3080
Jeff Johnson32d95a32012-09-10 13:15:23 -07003081 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003082 tANI_U16 UplinkPktCount;
3083
Jeff Johnson32d95a32012-09-10 13:15:23 -07003084 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003085 tANI_U8 RoamingCount;
3086
Jeff Johnson32d95a32012-09-10 13:15:23 -07003087 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003088 tANI_U16 RoamingDly;
3089} tTsmStatsRspParams, *tpTsmStatsRspParams;
3090
3091typedef PACKED_PRE struct PACKED_POST
3092{
3093 tHalMsgHeader header;
3094 tTsmStatsRspParams tsmStatsRspParams;
3095} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3096
3097
3098#endif
3099
3100/*---------------------------------------------------------------------------
3101 * WLAN_HAL_SET_KEYDONE_MSG
3102 *--------------------------------------------------------------------------*/
3103
3104typedef PACKED_PRE struct PACKED_POST
3105{
3106 /*bssid of the keys */
3107 tANI_U8 bssidx;
3108 tANI_U8 encType;
3109} tSetKeyDoneParams, *tpSetKeyDoneParams;
3110
3111typedef PACKED_PRE struct PACKED_POST
3112{
3113 tHalMsgHeader header;
3114 tSetKeyDoneParams setKeyDoneParams;
3115} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3116
3117/*---------------------------------------------------------------------------
3118 * WLAN_HAL_DOWNLOAD_NV_REQ
3119 *--------------------------------------------------------------------------*/
3120typedef PACKED_PRE struct PACKED_POST
3121{
3122 /* Fragment sequence number of the NV Image. Note that NV Image might not
3123 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003124 * can hence choose to chop the NV blob into multiple fragments starting with
3125 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003126 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3127 * concatenated together by HAL without any padding bytes in between.*/
3128 tANI_U16 fragNumber;
3129
3130 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003131 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003132 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3133 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3134 tANI_U16 isLastFragment;
3135
3136 /* NV Image size (number of bytes) */
3137 tANI_U32 nvImgBufferSize;
3138
3139 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3140 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3141} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3142
3143typedef PACKED_PRE struct PACKED_POST
3144{
3145 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3146 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3147 tHalMsgHeader header;
3148 tHalNvImgDownloadReqParams nvImageReqParams;
3149} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3150
3151/*---------------------------------------------------------------------------
3152 * WLAN_HAL_DOWNLOAD_NV_RSP
3153 *--------------------------------------------------------------------------*/
3154typedef PACKED_PRE struct PACKED_POST
3155{
3156 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3157 * after each fragment */
3158 tANI_U32 status;
3159} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3160
3161typedef PACKED_PRE struct PACKED_POST
3162{
3163 tHalMsgHeader header;
3164 tHalNvImgDownloadRspParams nvImageRspParams;
3165} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3166
3167/*---------------------------------------------------------------------------
3168 * WLAN_HAL_STORE_NV_IND
3169 *--------------------------------------------------------------------------*/
3170typedef PACKED_PRE struct PACKED_POST
3171{
3172 /* NV Item */
3173 eNvTable tableID;
3174
3175 /* Size of NV Blob */
3176 tANI_U32 nvBlobSize;
3177
Jeff Johnson32d95a32012-09-10 13:15:23 -07003178 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003179 * NV blob i.e. uint8[nvBlobSize] */
3180} tHalNvStoreParams, *tpHalNvStoreParams;
3181
3182typedef PACKED_PRE struct PACKED_POST
3183{
3184 /* Note: The length specified in tHalNvStoreInd messages should be
3185 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3186 tHalMsgHeader header;
3187 tHalNvStoreParams nvStoreParams;
3188} tHalNvStoreInd, *tpHalNvStoreInd;
3189
3190/* End of Block Ack Related Parameters */
3191
3192/*---------------------------------------------------------------------------
3193 * WLAN_HAL_MIC_FAILURE_IND
3194 *--------------------------------------------------------------------------*/
3195
3196#define SIR_CIPHER_SEQ_CTR_SIZE 6
3197
3198typedef PACKED_PRE struct PACKED_POST
3199{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003200 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003201 tSirMacAddr taMacAddr; //transmitter address
3202 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003203 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003204 tANI_U8 IV1; // first byte of IV
3205 tANI_U8 keyId; // second byte of IV
3206 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3207 tSirMacAddr rxMacAddr; // receive address
3208} tSirMicFailureInfo, *tpSirMicFailureInfo;
3209
3210/* Definition for MIC failure indication
3211 MAC reports this each time a MIC failure occures on Rx TKIP packet
3212 */
3213typedef PACKED_PRE struct PACKED_POST
3214{
3215 tSirMacAddr bssId; // BSSID
3216 tSirMicFailureInfo info;
3217} tSirMicFailureInd, *tpSirMicFailureInd;
3218
3219typedef PACKED_PRE struct PACKED_POST
3220{
3221 tHalMsgHeader header;
3222 tSirMicFailureInd micFailureInd;
3223} tMicFailureIndMsg, *tpMicFailureIndMsg;
3224
Mohit Khanna4a70d262012-09-11 16:30:12 -07003225typedef PACKED_PRE struct PACKED_POST
3226{
3227 tANI_U16 opMode;
3228 tANI_U16 staId;
3229}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3230
3231typedef PACKED_PRE struct PACKED_POST
3232{
3233 tHalMsgHeader header;
3234 tUpdateVHTOpMode updateVhtOpMode;
3235} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3236
3237typedef PACKED_PRE struct PACKED_POST
3238{
3239 tANI_U32 status;
3240} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3241
3242typedef PACKED_PRE struct PACKED_POST
3243{
3244 tHalMsgHeader header;
3245 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3246} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3247
Jeff Johnson295189b2012-06-20 16:38:30 -07003248/*---------------------------------------------------------------------------
3249 * WLAN_HAL_UPDATE_BEACON_REQ
3250 *--------------------------------------------------------------------------*/
3251typedef PACKED_PRE struct PACKED_POST
3252{
3253
3254 tANI_U8 bssIdx;
3255
3256 //shortPreamble mode. HAL should update all the STA rates when it
3257 //receives this message
3258 tANI_U8 fShortPreamble;
3259 //short Slot time.
3260 tANI_U8 fShortSlotTime;
3261 //Beacon Interval
3262 tANI_U16 beaconInterval;
3263 //Protection related
3264 tANI_U8 llaCoexist;
3265 tANI_U8 llbCoexist;
3266 tANI_U8 llgCoexist;
3267 tANI_U8 ht20MhzCoexist;
3268 tANI_U8 llnNonGFCoexist;
3269 tANI_U8 fLsigTXOPProtectionFullSupport;
3270 tANI_U8 fRIFSMode;
3271
3272 tANI_U16 paramChangeBitmap;
3273}tUpdateBeaconParams, *tpUpdateBeaconParams;
3274
3275
3276typedef PACKED_PRE struct PACKED_POST
3277{
3278 tHalMsgHeader header;
3279 tUpdateBeaconParams updateBeaconParam;
3280} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3281
3282/*---------------------------------------------------------------------------
3283 * WLAN_HAL_UPDATE_BEACON_RSP
3284 *--------------------------------------------------------------------------*/
3285typedef PACKED_PRE struct PACKED_POST
3286{
3287 tANI_U32 status;
3288} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3289
3290typedef PACKED_PRE struct PACKED_POST
3291{
3292 tHalMsgHeader header;
3293 tUpdateBeaconRspParams updateBeaconRspParam;
3294} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3295
3296/*---------------------------------------------------------------------------
3297 * WLAN_HAL_SEND_BEACON_REQ
3298 *--------------------------------------------------------------------------*/
3299typedef PACKED_PRE struct PACKED_POST
3300{
3301 tANI_U32 beaconLength; //length of the template.
3302 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3303 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003304 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003305 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3306}tSendBeaconParams, *tpSendBeaconParams;
3307
3308
3309typedef PACKED_PRE struct PACKED_POST
3310{
3311 tHalMsgHeader header;
3312 tSendBeaconParams sendBeaconParam;
3313}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3314
3315/*---------------------------------------------------------------------------
3316 * WLAN_HAL_SEND_BEACON_RSP
3317 *--------------------------------------------------------------------------*/
3318typedef PACKED_PRE struct PACKED_POST
3319{
3320 tANI_U32 status;
3321} tSendBeaconRspParams, *tpSendBeaconRspParams;
3322
3323typedef PACKED_PRE struct PACKED_POST
3324{
3325 tHalMsgHeader header;
3326 tSendBeaconRspParams sendBeaconRspParam;
3327} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3328
3329#ifdef FEATURE_5GHZ_BAND
3330
3331/*---------------------------------------------------------------------------
3332 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3333 *--------------------------------------------------------------------------*/
3334typedef PACKED_PRE struct PACKED_POST
3335{
3336 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003337 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003338}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3339
3340
3341typedef PACKED_PRE struct PACKED_POST
3342{
3343 /* Link Parameters */
3344 tSirEnableRadarInfoType EnableRadarInfo;
3345}tEnableRadarReqParams, *tpEnableRadarReqParams;
3346
3347typedef PACKED_PRE struct PACKED_POST
3348{
3349 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003350 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003351}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3352
3353/*---------------------------------------------------------------------------
3354 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3355 *--------------------------------------------------------------------------*/
3356
3357typedef PACKED_PRE struct PACKED_POST
3358{
3359 /* Link Parameters */
3360 tSirMacAddr BSSID;
3361 /* success or failure */
3362 tANI_U32 status;
3363}tEnableRadarRspParams, *tpEnableRadarRspParams;
3364
3365typedef PACKED_PRE struct PACKED_POST
3366{
3367 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003368 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003369}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3370
3371/*---------------------------------------------------------------------------
3372 *WLAN_HAL_RADAR_DETECT_INTR_IND
3373 *--------------------------------------------------------------------------*/
3374
3375typedef PACKED_PRE struct PACKED_POST
3376{
3377 tANI_U8 radarDetChannel;
3378}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3379
3380typedef PACKED_PRE struct PACKED_POST
3381{
3382 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003383 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003384}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3385
3386/*---------------------------------------------------------------------------
3387 *WLAN_HAL_RADAR_DETECT_IND
3388 *-------------------------------------------------------------------------*/
3389typedef PACKED_PRE struct PACKED_POST
3390{
3391 /*channel number in which the RADAR detected*/
3392 tANI_U8 channelNumber;
3393
3394 /*RADAR pulse width*/
3395 tANI_U16 radarPulseWidth; // in usecond
3396
3397 /*Number of RADAR pulses */
3398 tANI_U16 numRadarPulse;
3399}tRadarDetectIndParams,*tpRadarDetectIndParams;
3400
3401typedef PACKED_PRE struct PACKED_POST
3402{
3403 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003404 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003405}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3406
3407
3408/*---------------------------------------------------------------------------
3409 *WLAN_HAL_GET_TPC_REPORT_REQ
3410 *-------------------------------------------------------------------------*/
3411typedef PACKED_PRE struct PACKED_POST
3412{
3413 tSirMacAddr sta;
3414 tANI_U8 dialogToken;
3415 tANI_U8 txpower;
3416}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3417
3418
3419typedef PACKED_PRE struct PACKED_POST
3420{
3421 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003422 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003423}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3424
3425/*---------------------------------------------------------------------------
3426 * WLAN_HAL_GET_TPC_REPORT_RSP
3427 *--------------------------------------------------------------------------*/
3428
3429typedef PACKED_PRE struct PACKED_POST
3430{
3431 /* success or failure */
3432 tANI_U32 status;
3433}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3434
3435typedef PACKED_PRE struct PACKED_POST
3436{
3437 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003438 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003439}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3440
3441#endif
3442
Jeff Johnson295189b2012-06-20 16:38:30 -07003443/*---------------------------------------------------------------------------
3444 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3445 *-------------------------------------------------------------------------*/
3446typedef PACKED_PRE struct PACKED_POST
3447{
3448 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3449 tANI_U32 probeRespTemplateLen;
3450 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3451 tSirMacAddr bssId;
3452
3453}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3454
3455typedef PACKED_PRE struct PACKED_POST
3456{
3457 tHalMsgHeader header;
3458 tSendProbeRespReqParams sendProbeRespReqParams ;
3459}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3460
3461/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003462 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003463 *--------------------------------------------------------------------------*/
3464
3465typedef PACKED_PRE struct PACKED_POST
3466{
3467 /* success or failure */
3468 tANI_U32 status;
3469}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3470
3471typedef PACKED_PRE struct PACKED_POST
3472{
3473 tHalMsgHeader header;
3474 tSendProbeRespRspParams sendProbeRespRspParams;
3475}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3476
3477
3478/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003479 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003480 *--------------------------------------------------------------------------*/
3481
3482typedef PACKED_PRE struct PACKED_POST
3483{
3484 /* success or failure */
3485 tANI_U32 status;
3486}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3487
3488typedef PACKED_PRE struct PACKED_POST
3489{
3490 tHalMsgHeader header;
3491 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3492}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3493
3494/*---------------------------------------------------------------------------
3495 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3496 *--------------------------------------------------------------------------*/
3497
3498typedef PACKED_PRE struct PACKED_POST
3499{
3500 tANI_U16 assocId;
3501 tANI_U16 staId;
3502 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3503 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003504 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003505 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003506
3507}tDeleteStaContextParams, *tpDeleteStaContextParams;
3508
3509
3510typedef PACKED_PRE struct PACKED_POST
3511{
3512 tHalMsgHeader header;
3513 tDeleteStaContextParams deleteStaContextParams;
3514}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3515
Anand Kumar012623a2013-01-11 17:00:00 -08003516typedef PACKED_PRE struct PACKED_POST
3517{
3518 tHalMsgHeader header;
3519 tANI_U8 assocId;
3520 tANI_U8 staIdx;
3521 tANI_U8 bssIdx;
3522 tANI_U8 uReasonCode;
3523 tANI_U32 uStatus;
3524} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003525
3526/*---------------------------------------------------------------------------
3527 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3528 *--------------------------------------------------------------------------*/
3529
3530typedef PACKED_PRE struct PACKED_POST
3531{
3532 tBtAmpEventType btAmpEventType;
3533
3534}tBtAmpEventParams, *tpBtAmpEventParams;
3535
3536
3537
3538typedef PACKED_PRE struct PACKED_POST
3539{
3540 tHalMsgHeader header;
3541 tBtAmpEventParams btAmpEventParams;
3542}tBtAmpEventMsg, *tpBtAmpEventMsg;
3543
3544/*---------------------------------------------------------------------------
3545*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3546*--------------------------------------------------------------------------*/
3547
3548typedef PACKED_PRE struct PACKED_POST
3549{
3550 /* success or failure */
3551 tANI_U32 status;
3552}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3553
3554typedef PACKED_PRE struct PACKED_POST
3555{
3556 tHalMsgHeader header;
3557 tBtAmpEventRspParams btAmpEventRspParams;
3558}tBtAmpEventRsp, *tpBtAmpEventRsp;
3559
3560
3561/*---------------------------------------------------------------------------
3562 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3563 *--------------------------------------------------------------------------*/
3564
3565typedef PACKED_PRE struct PACKED_POST
3566{
3567 // Station Index. originates from HAL
3568 tANI_U8 ucSTAId;
3569
3570 // TID for which the transmit queue is being flushed
3571 tANI_U8 ucTid;
3572
3573}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3574
3575
3576typedef PACKED_PRE struct PACKED_POST
3577{
3578 tHalMsgHeader header;
3579 tTlHalFlushAcParams tlHalFlushAcParam;
3580}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3581
3582/*---------------------------------------------------------------------------
3583*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3584*--------------------------------------------------------------------------*/
3585
3586typedef PACKED_PRE struct PACKED_POST
3587{
3588 // Station Index. originates from HAL
3589 tANI_U8 ucSTAId;
3590
3591 // TID for which the transmit queue is being flushed
3592 tANI_U8 ucTid;
3593
3594 /* success or failure */
3595 tANI_U32 status;
3596}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3597
3598typedef PACKED_PRE struct PACKED_POST
3599{
3600 tHalMsgHeader header;
3601 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3602}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3603
3604/*---------------------------------------------------------------------------
3605 * WLAN_HAL_ENTER_IMPS_REQ
3606 *--------------------------------------------------------------------------*/
3607typedef PACKED_PRE struct PACKED_POST
3608{
3609 tHalMsgHeader header;
3610} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3611
3612/*---------------------------------------------------------------------------
3613 * WLAN_HAL_EXIT_IMPS_REQ
3614 *--------------------------------------------------------------------------*/
3615typedef PACKED_PRE struct PACKED_POST
3616{
3617 tHalMsgHeader header;
3618} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3619
3620/*---------------------------------------------------------------------------
3621 * WLAN_HAL_ENTER_BMPS_REQ
3622 *--------------------------------------------------------------------------*/
3623
3624typedef PACKED_PRE struct PACKED_POST
3625{
3626 tANI_U8 bssIdx;
3627 //TBTT value derived from the last beacon
3628#ifndef BUILD_QWPTTSTATIC
3629 tANI_U64 tbtt;
3630#endif
3631 tANI_U8 dtimCount;
3632 //DTIM period given to HAL during association may not be valid,
3633 //if association is based on ProbeRsp instead of beacon.
3634 tANI_U8 dtimPeriod;
3635
3636 // For CCX and 11R Roaming
3637 tANI_U32 rssiFilterPeriod;
3638 tANI_U32 numBeaconPerRssiAverage;
3639 tANI_U8 bRssiFilterEnable;
3640
3641} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3642
3643
3644typedef PACKED_PRE struct PACKED_POST
3645{
3646 tHalMsgHeader header;
3647 tHalEnterBmpsReqParams enterBmpsReq;
3648} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3649
3650/*---------------------------------------------------------------------------
3651 * WLAN_HAL_EXIT_BMPS_REQ
3652 *--------------------------------------------------------------------------*/
3653typedef PACKED_PRE struct PACKED_POST
3654{
3655 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003656 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003657} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3658
3659typedef PACKED_PRE struct PACKED_POST
3660{
3661 tHalMsgHeader header;
3662 tHalExitBmpsReqParams exitBmpsReqParams;
3663} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3664
3665/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003666 * WLAN_HAL_MISSED_BEACON_IND
3667 *--------------------------------------------------------------------------*/
3668typedef PACKED_PRE struct PACKED_POST
3669{
3670 tANI_U8 bssIdx;
3671} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3672
3673typedef PACKED_PRE struct PACKED_POST
3674{
3675 tHalMsgHeader header;
3676 tHalMissedBeaconIndParams missedBeaconIndParams;
3677} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3678
3679/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003680 * WLAN_HAL_ADD_BCN_FILTER_REQ
3681 *--------------------------------------------------------------------------*/
3682/* Beacon Filtering data structures */
3683typedef PACKED_PRE struct PACKED_POST
3684{
3685 tANI_U8 offset;
3686 tANI_U8 value;
3687 tANI_U8 bitMask;
3688 tANI_U8 ref;
3689} tEidByteInfo, *tpEidByteInfo;
3690
Jeff Johnson32d95a32012-09-10 13:15:23 -07003691typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003692{
3693 tANI_U16 capabilityInfo;
3694 tANI_U16 capabilityMask;
3695 tANI_U16 beaconInterval;
3696 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003697 tANI_U8 bssIdx;
3698 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003699} tBeaconFilterMsg, *tpBeaconFilterMsg;
3700
3701/* The above structure would be followed by multiple of below mentioned structure */
3702typedef PACKED_PRE struct PACKED_POST
3703{
3704 tANI_U8 elementId;
3705 tANI_U8 checkIePresence;
3706 tEidByteInfo byte;
3707} tBeaconFilterIe, *tpBeaconFilterIe;
3708
3709typedef PACKED_PRE struct PACKED_POST
3710{
3711 tHalMsgHeader header;
3712 tBeaconFilterMsg addBcnFilterParams;
3713} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3714
3715/*---------------------------------------------------------------------------
3716 * WLAN_HAL_REM_BCN_FILTER_REQ
3717 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003718typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003719{
3720 tANI_U8 ucIeCount;
3721 tANI_U8 ucRemIeId[1];
3722} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3723
3724typedef PACKED_PRE struct PACKED_POST
3725{
3726 tHalMsgHeader header;
3727 tRemBeaconFilterMsg remBcnFilterParams;
3728} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3729
3730/*---------------------------------------------------------------------------
3731 * WLAN_HAL_HOST_OFFLOAD_REQ
3732 *--------------------------------------------------------------------------*/
3733#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3734#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3735#define HAL_IPV6_NS_OFFLOAD 2
3736#define HAL_IPV6_ADDR_LEN 16
3737#define HAL_MAC_ADDR_LEN 6
3738#define HAL_OFFLOAD_DISABLE 0
3739#define HAL_OFFLOAD_ENABLE 1
3740#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003741#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003742#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003743#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003744
3745typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3746{
3747 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3748 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3749 //Only support 2 possible Network Advertisement IPv6 address
3750 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3751 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3752 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3753 tANI_U8 srcIPv6AddrValid : 1;
3754 tANI_U8 targetIPv6Addr1Valid : 1;
3755 tANI_U8 targetIPv6Addr2Valid : 1;
3756 tANI_U8 reserved1 : 5;
3757 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003758 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003759 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003760} tHalNSOffloadParams;
3761
3762typedef PACKED_PRE struct PACKED_POST
3763{
3764 tANI_U8 offloadType;
3765 tANI_U8 enableOrDisable;
3766 PACKED_PRE union PACKED_POST
3767 {
3768 tANI_U8 hostIpv4Addr [4];
3769 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3770 } params;
3771} tHalHostOffloadReq, *tpHalHostOffloadReq;
3772
3773typedef PACKED_PRE struct PACKED_POST
3774{
3775 tHalMsgHeader header;
3776 tHalHostOffloadReq hostOffloadParams;
3777 tHalNSOffloadParams nsOffloadParams;
3778} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3779
3780/*---------------------------------------------------------------------------
3781 * WLAN_HAL_KEEP_ALIVE_REQ
3782 *--------------------------------------------------------------------------*/
3783/* Packet Types. */
3784#define HAL_KEEP_ALIVE_NULL_PKT 1
3785#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3786
3787/* Enable or disable keep alive */
3788#define HAL_KEEP_ALIVE_DISABLE 0
3789#define HAL_KEEP_ALIVE_ENABLE 1
3790
3791/* Keep Alive request. */
3792typedef PACKED_PRE struct PACKED_POST
3793{
3794 tANI_U8 packetType;
3795 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003796 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003797 tHalIpv4Addr destIpv4Addr;
3798 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003799 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003800} tHalKeepAliveReq, *tpHalKeepAliveReq;
3801
3802typedef PACKED_PRE struct PACKED_POST
3803{
3804 tHalMsgHeader header;
3805 tHalKeepAliveReq KeepAliveParams;
3806} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3807
3808/*---------------------------------------------------------------------------
3809 * WLAN_HAL_SET_RSSI_THRESH_REQ
3810 *--------------------------------------------------------------------------*/
3811typedef PACKED_PRE struct PACKED_POST
3812{
3813 tANI_S8 ucRssiThreshold1 : 8;
3814 tANI_S8 ucRssiThreshold2 : 8;
3815 tANI_S8 ucRssiThreshold3 : 8;
3816 tANI_U8 bRssiThres1PosNotify : 1;
3817 tANI_U8 bRssiThres1NegNotify : 1;
3818 tANI_U8 bRssiThres2PosNotify : 1;
3819 tANI_U8 bRssiThres2NegNotify : 1;
3820 tANI_U8 bRssiThres3PosNotify : 1;
3821 tANI_U8 bRssiThres3NegNotify : 1;
3822 tANI_U8 bReserved10 : 2;
3823} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003824
Jeff Johnson295189b2012-06-20 16:38:30 -07003825typedef PACKED_PRE struct PACKED_POST
3826{
3827 tHalMsgHeader header;
3828 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003829} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003830
3831/*---------------------------------------------------------------------------
3832 * WLAN_HAL_ENTER_UAPSD_REQ
3833 *--------------------------------------------------------------------------*/
3834typedef PACKED_PRE struct PACKED_POST
3835{
3836 tANI_U8 bkDeliveryEnabled:1;
3837 tANI_U8 beDeliveryEnabled:1;
3838 tANI_U8 viDeliveryEnabled:1;
3839 tANI_U8 voDeliveryEnabled:1;
3840 tANI_U8 bkTriggerEnabled:1;
3841 tANI_U8 beTriggerEnabled:1;
3842 tANI_U8 viTriggerEnabled:1;
3843 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003844 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003845} tUapsdReqParams, *tpUapsdReqParams;
3846
3847typedef PACKED_PRE struct PACKED_POST
3848{
3849 tHalMsgHeader header;
3850 tUapsdReqParams enterUapsdParams;
3851} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3852
3853/*---------------------------------------------------------------------------
3854 * WLAN_HAL_EXIT_UAPSD_REQ
3855 *--------------------------------------------------------------------------*/
3856typedef PACKED_PRE struct PACKED_POST
3857{
3858 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003859 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003860} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3861
3862/*---------------------------------------------------------------------------
3863 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3864 *--------------------------------------------------------------------------*/
3865#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3866#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3867
3868typedef PACKED_PRE struct PACKED_POST
3869{
3870 tANI_U8 ucPatternId; // Pattern ID
3871 // Pattern byte offset from beginning of the 802.11 packet to start of the
3872 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003873 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003874 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3875 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3876 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3877 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3878 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3879 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003880 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003881} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3882
3883typedef PACKED_PRE struct PACKED_POST
3884{
3885 tHalMsgHeader header;
3886 tHalWowlAddBcastPtrn ptrnParams;
3887} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003888
Jeff Johnsone7245742012-09-05 17:12:55 -07003889
3890
Jeff Johnson295189b2012-06-20 16:38:30 -07003891/*---------------------------------------------------------------------------
3892 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3893 *--------------------------------------------------------------------------*/
3894typedef PACKED_PRE struct PACKED_POST
3895{
3896 /* Pattern ID of the wakeup pattern to be deleted */
3897 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003898 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003899} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3900
3901typedef PACKED_PRE struct PACKED_POST
3902{
3903 tHalMsgHeader header;
3904 tHalWowlDelBcastPtrn ptrnParams;
3905} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3906
3907/*---------------------------------------------------------------------------
3908 * WLAN_HAL_ENTER_WOWL_REQ
3909 *--------------------------------------------------------------------------*/
3910typedef PACKED_PRE struct PACKED_POST
3911{
3912 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003913 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003914
3915 /* Magic pattern */
3916 tSirMacAddr magicPtrn;
3917
Jeff Johnson32d95a32012-09-10 13:15:23 -07003918 /* Enables/disables packet pattern filtering in firmware.
3919 Enabling this flag enables broadcast pattern matching
3920 in Firmware. If unicast pattern matching is also desired,
3921 ucUcastPatternFilteringEnable flag must be set tot true
3922 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003923 */
3924 tANI_U8 ucPatternFilteringEnable;
3925
Jeff Johnson32d95a32012-09-10 13:15:23 -07003926 /* Enables/disables unicast packet pattern filtering.
3927 This flag specifies whether we want to do pattern match
3928 on unicast packets as well and not just broadcast packets.
3929 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003930 (main controlling flag) is set to false
3931 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003932 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003933
Jeff Johnson32d95a32012-09-10 13:15:23 -07003934 /* This configuration is valid only when magicPktEnable=1.
3935 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003936 * Channel Switch Action Frame.
3937 */
3938 tANI_U8 ucWowChnlSwitchRcv;
3939
Jeff Johnson32d95a32012-09-10 13:15:23 -07003940 /* This configuration is valid only when magicPktEnable=1.
3941 * It requests hardware to wake up when it receives the
3942 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003943 */
3944 tANI_U8 ucWowDeauthRcv;
3945
Jeff Johnson32d95a32012-09-10 13:15:23 -07003946 /* This configuration is valid only when magicPktEnable=1.
3947 * It requests hardware to wake up when it receives the
3948 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003949 */
3950 tANI_U8 ucWowDisassocRcv;
3951
Jeff Johnson32d95a32012-09-10 13:15:23 -07003952 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003953 * It requests hardware to wake up when it has missed
3954 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003955 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003956 */
3957 tANI_U8 ucWowMaxMissedBeacons;
3958
Jeff Johnson32d95a32012-09-10 13:15:23 -07003959 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003960 * This is a timeout value in units of microsec. It requests
3961 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003962 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003963 */
3964 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003965
Jeff Johnson295189b2012-06-20 16:38:30 -07003966 /* This configuration directs the WoW packet filtering to look for EAP-ID
3967 * requests embedded in EAPOL frames and use this as a wake source.
3968 */
3969 tANI_U8 ucWoWEAPIDRequestEnable;
3970
3971 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3972 * requests and use this as a wake source.
3973 */
3974 tANI_U8 ucWoWEAPOL4WayEnable;
3975
3976 /* This configuration allows a host wakeup on an network scan offload match.
3977 */
3978 tANI_U8 ucWowNetScanOffloadMatch;
3979
3980 /* This configuration allows a host wakeup on any GTK rekeying error.
3981 */
3982 tANI_U8 ucWowGTKRekeyError;
3983
3984 /* This configuration allows a host wakeup on BSS connection loss.
3985 */
3986 tANI_U8 ucWoWBSSConnLoss;
3987
Jeff Johnsone7245742012-09-05 17:12:55 -07003988 tANI_U8 bssIdx;
3989
Jeff Johnson295189b2012-06-20 16:38:30 -07003990} tHalWowlEnterParams, *tpHalWowlEnterParams;
3991
3992typedef PACKED_PRE struct PACKED_POST
3993{
3994 tHalMsgHeader header;
3995 tHalWowlEnterParams enterWowlParams;
3996} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
3997
3998/*---------------------------------------------------------------------------
3999 * WLAN_HAL_EXIT_WOWL_REQ
4000 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004001
Jeff Johnson295189b2012-06-20 16:38:30 -07004002typedef PACKED_PRE struct PACKED_POST
4003{
Jeff Johnsone7245742012-09-05 17:12:55 -07004004 tANI_U8 bssIdx;
4005
4006} tHalWowlExitParams, *tpHalWowlExitParams;
4007
4008typedef PACKED_PRE struct PACKED_POST
4009{
4010 tHalMsgHeader header;
4011 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004012} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4013
4014/*---------------------------------------------------------------------------
4015 * WLAN_HAL_GET_RSSI_REQ
4016 *--------------------------------------------------------------------------*/
4017typedef PACKED_PRE struct PACKED_POST
4018{
4019 tHalMsgHeader header;
4020} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4021
Anand Kumar012623a2013-01-11 17:00:00 -08004022typedef PACKED_PRE struct PACKED_POST
4023{
4024 /* Valid STA Idx for per STA stats request */
4025 tANI_U32 staId;
4026
4027}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4028
4029
4030/*---------------------------------------------------------------------------
4031 * WLAN_HAL_GET_ROAM_RSSI_REQ
4032 *--------------------------------------------------------------------------*/
4033typedef PACKED_PRE struct PACKED_POST
4034{
4035 tHalMsgHeader header;
4036 tHalRoamRssiReqParams roamRssiReqParams;
4037} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4038
4039
Jeff Johnson295189b2012-06-20 16:38:30 -07004040/*---------------------------------------------------------------------------
4041 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4042 *--------------------------------------------------------------------------*/
4043typedef PACKED_PRE struct PACKED_POST {
4044 tANI_U8 staidx; // STA index
4045 tANI_U8 ac; // Access Category
4046 tANI_U8 up; // User Priority
4047 tANI_U32 srvInterval; // Service Interval
4048 tANI_U32 susInterval; // Suspend Interval
4049 tANI_U32 delayInterval; // Delay Interval
4050} tUapsdInfo, tpUapsdInfo;
4051
4052typedef PACKED_PRE struct PACKED_POST
4053{
4054 tHalMsgHeader header;
4055 tUapsdInfo enableUapsdAcParams;
4056} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4057
4058/*---------------------------------------------------------------------------
4059 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4060 *--------------------------------------------------------------------------*/
4061typedef PACKED_PRE struct PACKED_POST {
4062 tANI_U8 setMcstBcstFilterSetting;
4063 tANI_U8 setMcstBcstFilter;
4064} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4065
4066typedef PACKED_PRE struct PACKED_POST
4067{
4068 tHalMsgHeader header;
4069 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4070} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4071
4072/*---------------------------------------------------------------------------
4073 * WLAN_HAL_ENTER_IMPS_RSP
4074 *--------------------------------------------------------------------------*/
4075typedef PACKED_PRE struct PACKED_POST
4076{
4077 /* success or failure */
4078 tANI_U32 status;
4079} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4080
4081typedef PACKED_PRE struct PACKED_POST
4082{
4083 tHalMsgHeader header;
4084 tHalEnterImpsRspParams enterImpsRspParams;
4085} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4086
4087/*---------------------------------------------------------------------------
4088 * WLAN_HAL_EXIT_IMPS_RSP
4089 *--------------------------------------------------------------------------*/
4090typedef PACKED_PRE struct PACKED_POST
4091{
4092 /* success or failure */
4093 tANI_U32 status;
4094} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4095
4096typedef PACKED_PRE struct PACKED_POST
4097{
4098 tHalMsgHeader header;
4099 tHalExitImpsRspParams exitImpsRspParams;
4100} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4101
4102/*---------------------------------------------------------------------------
4103 * WLAN_HAL_ENTER_BMPS_RSP
4104 *--------------------------------------------------------------------------*/
4105typedef PACKED_PRE struct PACKED_POST
4106{
4107 /* success or failure */
4108 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004109 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004110} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4111
4112typedef PACKED_PRE struct PACKED_POST
4113{
4114 tHalMsgHeader header;
4115 tHalEnterBmpsRspParams enterBmpsRspParams;
4116} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4117
4118/*---------------------------------------------------------------------------
4119 * WLAN_HAL_EXIT_BMPS_RSP
4120 *--------------------------------------------------------------------------*/
4121typedef PACKED_PRE struct PACKED_POST
4122{
4123 /* success or failure */
4124 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004125 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004126} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4127
4128typedef PACKED_PRE struct PACKED_POST
4129{
4130 tHalMsgHeader header;
4131 tHalExitBmpsRspParams exitBmpsRspParams;
4132} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4133
4134/*---------------------------------------------------------------------------
4135 * WLAN_HAL_ENTER_UAPSD_RSP
4136 *--------------------------------------------------------------------------*/
4137typedef PACKED_PRE struct PACKED_POST
4138{
4139 /* success or failure */
4140 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004141 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004142}tUapsdRspParams, *tpUapsdRspParams;
4143
4144typedef PACKED_PRE struct PACKED_POST
4145{
4146 tHalMsgHeader header;
4147 tUapsdRspParams enterUapsdRspParams;
4148} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4149
4150/*---------------------------------------------------------------------------
4151 * WLAN_HAL_EXIT_UAPSD_RSP
4152 *--------------------------------------------------------------------------*/
4153typedef PACKED_PRE struct PACKED_POST
4154{
4155 /* success or failure */
4156 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004157 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004158} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4159
4160typedef PACKED_PRE struct PACKED_POST
4161{
4162 tHalMsgHeader header;
4163 tHalExitUapsdRspParams exitUapsdRspParams;
4164} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4165
4166/*---------------------------------------------------------------------------
4167 * WLAN_HAL_RSSI_NOTIFICATION_IND
4168 *--------------------------------------------------------------------------*/
4169typedef PACKED_PRE struct PACKED_POST
4170{
4171 tANI_U32 bRssiThres1PosCross : 1;
4172 tANI_U32 bRssiThres1NegCross : 1;
4173 tANI_U32 bRssiThres2PosCross : 1;
4174 tANI_U32 bRssiThres2NegCross : 1;
4175 tANI_U32 bRssiThres3PosCross : 1;
4176 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004177 tANI_U32 avgRssi : 8;
4178 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004179} tHalRSSINotification, *tpHalRSSINotification;
4180
4181typedef PACKED_PRE struct PACKED_POST
4182{
4183 tHalMsgHeader header;
4184 tHalRSSINotification rssiNotificationParams;
4185} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4186
4187/*---------------------------------------------------------------------------
4188 * WLAN_HAL_GET_RSSI_RSP
4189 *--------------------------------------------------------------------------*/
4190typedef PACKED_PRE struct PACKED_POST
4191{
4192 /* success or failure */
4193 tANI_U32 status;
4194 tANI_S8 rssi;
4195} tHalGetRssiParams, *tpHalGetRspParams;
4196
4197typedef PACKED_PRE struct PACKED_POST
4198{
4199 tHalMsgHeader header;
4200 tHalGetRssiParams rssiRspParams;
4201} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4202
4203/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004204 * WLAN_HAL_GET_ROAM_RSSI_RSP
4205 *--------------------------------------------------------------------------*/
4206typedef PACKED_PRE struct PACKED_POST
4207{
4208 /* success or failure */
4209 tANI_U32 status;
4210
4211 tANI_U8 staId;
4212 tANI_S8 rssi;
4213} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4214
4215typedef PACKED_PRE struct PACKED_POST
4216{
4217 tHalMsgHeader header;
4218 tHalGetRoamRssiParams roamRssiRspParams;
4219} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4220
4221/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004222 * WLAN_HAL_ENTER_WOWL_RSP
4223 *--------------------------------------------------------------------------*/
4224typedef PACKED_PRE struct PACKED_POST
4225{
4226 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004227 tANI_U32 status;
4228 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004229} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4230
4231typedef PACKED_PRE struct PACKED_POST
4232{
4233 tHalMsgHeader header;
4234 tHalEnterWowlRspParams enterWowlRspParams;
4235} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4236
4237/*---------------------------------------------------------------------------
4238 * WLAN_HAL_EXIT_WOWL_RSP
4239 *--------------------------------------------------------------------------*/
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004243 tANI_U32 status;
4244 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004245} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4246
4247typedef PACKED_PRE struct PACKED_POST
4248{
4249 tHalMsgHeader header;
4250 tHalExitWowlRspParams exitWowlRspParams;
4251} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4252
4253/*---------------------------------------------------------------------------
4254 * WLAN_HAL_ADD_BCN_FILTER_RSP
4255 *--------------------------------------------------------------------------*/
4256typedef PACKED_PRE struct PACKED_POST
4257{
4258 /* success or failure */
4259 tANI_U32 status;
4260} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4261
4262typedef PACKED_PRE struct PACKED_POST
4263{
4264 tHalMsgHeader header;
4265 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4266} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4267
4268/*---------------------------------------------------------------------------
4269 * WLAN_HAL_REM_BCN_FILTER_RSP
4270 *--------------------------------------------------------------------------*/
4271typedef PACKED_PRE struct PACKED_POST
4272{
4273 /* success or failure */
4274 tANI_U32 status;
4275} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4276
4277typedef PACKED_PRE struct PACKED_POST
4278{
4279 tHalMsgHeader header;
4280 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4281} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4282
4283/*---------------------------------------------------------------------------
4284 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4285 *--------------------------------------------------------------------------*/
4286typedef PACKED_PRE struct PACKED_POST
4287{
4288 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004289 tANI_U32 status;
4290 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004291} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4292
4293typedef PACKED_PRE struct PACKED_POST
4294{
4295 tHalMsgHeader header;
4296 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4297} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4298
4299/*---------------------------------------------------------------------------
4300 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4301 *--------------------------------------------------------------------------*/
4302typedef PACKED_PRE struct PACKED_POST
4303{
4304 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004305 tANI_U32 status;
4306 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004307} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4308
4309typedef PACKED_PRE struct PACKED_POST
4310{
4311 tHalMsgHeader header;
4312 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4313} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4314
4315/*---------------------------------------------------------------------------
4316 * WLAN_HAL_HOST_OFFLOAD_RSP
4317 *--------------------------------------------------------------------------*/
4318typedef PACKED_PRE struct PACKED_POST
4319{
4320 /* success or failure */
4321 tANI_U32 status;
4322} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4323
4324typedef PACKED_PRE struct PACKED_POST
4325{
4326 tHalMsgHeader header;
4327 tHalHostOffloadRspParams hostOffloadRspParams;
4328} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4329
4330/*---------------------------------------------------------------------------
4331 * WLAN_HAL_KEEP_ALIVE_RSP
4332 *--------------------------------------------------------------------------*/
4333typedef PACKED_PRE struct PACKED_POST
4334{
4335 /* success or failure */
4336 tANI_U32 status;
4337} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4338
4339typedef PACKED_PRE struct PACKED_POST
4340{
4341 tHalMsgHeader header;
4342 tHalKeepAliveRspParams keepAliveRspParams;
4343} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4344
4345/*---------------------------------------------------------------------------
4346 * WLAN_HAL_SET_RSSI_THRESH_RSP
4347 *--------------------------------------------------------------------------*/
4348typedef PACKED_PRE struct PACKED_POST
4349{
4350 /* success or failure */
4351 tANI_U32 status;
4352} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4353
4354typedef PACKED_PRE struct PACKED_POST
4355{
4356 tHalMsgHeader header;
4357 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4358} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4359
4360/*---------------------------------------------------------------------------
4361 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4362 *--------------------------------------------------------------------------*/
4363typedef PACKED_PRE struct PACKED_POST
4364{
4365 /* success or failure */
4366 tANI_U32 status;
4367} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4368
4369typedef PACKED_PRE struct PACKED_POST
4370{
4371 tHalMsgHeader header;
4372 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4373} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4374
4375/*---------------------------------------------------------------------------
4376 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4377 *--------------------------------------------------------------------------*/
4378typedef PACKED_PRE struct PACKED_POST
4379{
4380 /* success or failure */
4381 tANI_U32 status;
4382} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4383
4384typedef PACKED_PRE struct PACKED_POST
4385{
4386 tHalMsgHeader header;
4387 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4388} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4389
4390/*---------------------------------------------------------------------------
4391 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4392 *--------------------------------------------------------------------------*/
4393
4394typedef PACKED_PRE struct PACKED_POST
4395{
4396 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4397 //the request has power constraints, this should be applied only to that session
4398 tSirMacAddr selfStaMacAddr;
4399 //In request,
4400 //power == MaxTx power to be used.
4401 tPowerdBm power;
4402
4403}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4404
4405
4406typedef PACKED_PRE struct PACKED_POST
4407{
4408 tHalMsgHeader header;
4409 tSetMaxTxPwrParams setMaxTxPwrParams;
4410}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4411
4412/*---------------------------------------------------------------------------
4413*WLAN_HAL_SET_MAX_TX_POWER_RSP
4414*--------------------------------------------------------------------------*/
4415
4416typedef PACKED_PRE struct PACKED_POST
4417{
4418 //power == tx power used for management frames.
4419 tPowerdBm power;
4420
4421 /* success or failure */
4422 tANI_U32 status;
4423}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4424
4425typedef PACKED_PRE struct PACKED_POST
4426{
4427 tHalMsgHeader header;
4428 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4429}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4430
4431/*---------------------------------------------------------------------------
4432 *WLAN_HAL_SET_TX_POWER_REQ
4433 *--------------------------------------------------------------------------*/
4434
4435typedef PACKED_PRE struct PACKED_POST
4436{
4437 /* TX Power in milli watts */
4438 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004439 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004440}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4441
4442
4443typedef PACKED_PRE struct PACKED_POST
4444{
4445 tHalMsgHeader header;
4446 tSetTxPwrReqParams setTxPwrReqParams;
4447}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4448
4449/*---------------------------------------------------------------------------
4450*WLAN_HAL_SET_TX_POWER_RSP
4451*--------------------------------------------------------------------------*/
4452
4453typedef PACKED_PRE struct PACKED_POST
4454{
4455 /* success or failure */
4456 tANI_U32 status;
4457}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4458
4459typedef PACKED_PRE struct PACKED_POST
4460{
4461 tHalMsgHeader header;
4462 tSetTxPwrRspParams setTxPwrRspParams;
4463}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4464
4465/*---------------------------------------------------------------------------
4466 *WLAN_HAL_GET_TX_POWER_REQ
4467 *--------------------------------------------------------------------------*/
4468
4469typedef PACKED_PRE struct PACKED_POST
4470{
4471 tANI_U8 staId;
4472}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4473
4474typedef PACKED_PRE struct PACKED_POST
4475{
4476 tHalMsgHeader header;
4477 tGetTxPwrReqParams getTxPwrReqParams;
4478}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4479
4480/*---------------------------------------------------------------------------
4481*WLAN_HAL_GET_TX_POWER_RSP
4482*--------------------------------------------------------------------------*/
4483
4484typedef PACKED_PRE struct PACKED_POST
4485{
4486 /* success or failure */
4487 tANI_U32 status;
4488
4489 /* TX Power in milli watts */
4490 tANI_U32 txPower;
4491}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4492
4493typedef PACKED_PRE struct PACKED_POST
4494{
4495 tHalMsgHeader header;
4496 tGetTxPwrRspParams getTxPwrRspParams;
4497}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4498
4499#ifdef WLAN_FEATURE_P2P
4500/*---------------------------------------------------------------------------
4501 *WLAN_HAL_SET_P2P_GONOA_REQ
4502 *--------------------------------------------------------------------------*/
4503
4504typedef PACKED_PRE struct PACKED_POST
4505{
4506 tANI_U8 opp_ps;
4507 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004508 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004509 tANI_U32 duration;
4510 tANI_U32 interval;
4511 tANI_U32 single_noa_duration;
4512 tANI_U8 psSelection;
4513}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4514
4515
4516typedef PACKED_PRE struct PACKED_POST
4517{
4518 tHalMsgHeader header;
4519 tSetP2PGONOAParams setP2PGONOAParams;
4520}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4521
4522/*---------------------------------------------------------------------------
4523*WLAN_HAL_SET_P2P_GONOA_RSP
4524*--------------------------------------------------------------------------*/
4525
4526typedef PACKED_PRE struct PACKED_POST
4527{
4528 /* success or failure */
4529 tANI_U32 status;
4530}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4531
4532typedef PACKED_PRE struct PACKED_POST
4533{
4534 tHalMsgHeader header;
4535 tSetP2PGONOARspParams setP2PGONOARspParams;
4536}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4537#endif
4538
4539/*---------------------------------------------------------------------------
4540 *WLAN_HAL_ADD_SELF_STA_REQ
4541 *--------------------------------------------------------------------------*/
4542
4543typedef PACKED_PRE struct PACKED_POST
4544{
4545 tSirMacAddr selfMacAddr;
4546 tANI_U32 status;
4547}tAddStaSelfParams, *tpAddStaSelfParams;
4548
4549
4550typedef PACKED_PRE struct PACKED_POST
4551{
4552 tHalMsgHeader header;
4553 tAddStaSelfParams addStaSelfParams;
4554}tAddStaSelfReq, *tpAddStaSelfReq;
4555
4556/*---------------------------------------------------------------------------
4557*WLAN_HAL_ADD_SELF_STA_RSP
4558*--------------------------------------------------------------------------*/
4559
4560typedef PACKED_PRE struct PACKED_POST
4561{
4562 /* success or failure */
4563 tANI_U32 status;
4564
4565 /*Self STA Index */
4566 tANI_U8 selfStaIdx;
4567
4568 /* DPU Index (IGTK, PTK, GTK all same) */
4569 tANI_U8 dpuIdx;
4570
4571 /* DPU Signature */
4572 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004573
Jeff Johnson295189b2012-06-20 16:38:30 -07004574}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4575
4576typedef PACKED_PRE struct PACKED_POST
4577{
4578 tHalMsgHeader header;
4579 tAddStaSelfRspParams addStaSelfRspParams;
4580}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4581
4582
4583/*---------------------------------------------------------------------------
4584 WLAN_HAL_DEL_STA_SELF_REQ
4585---------------------------------------------------------------------------*/
4586
4587typedef PACKED_PRE struct PACKED_POST
4588{
4589 tSirMacAddr selfMacAddr;
4590
4591}tDelStaSelfParams, *tpDelStaSelfParams;
4592
4593typedef PACKED_PRE struct PACKED_POST
4594{
4595 tHalMsgHeader header;
4596 tDelStaSelfParams delStaSelfParams;
4597} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4598
4599
4600/*---------------------------------------------------------------------------
4601 WLAN_HAL_DEL_STA_SELF_RSP
4602---------------------------------------------------------------------------*/
4603
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 /*success or failure */
4607 tANI_U32 status;
4608
4609 tSirMacAddr selfMacAddr;
4610}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4611
4612typedef PACKED_PRE struct PACKED_POST
4613{
4614 tHalMsgHeader header;
4615 tDelStaSelfRspParams delStaSelfRspParams;
4616} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4617
4618
4619#ifdef WLAN_FEATURE_VOWIFI_11R
4620
4621/*---------------------------------------------------------------------------
4622 *WLAN_HAL_AGGR_ADD_TS_REQ
4623 *--------------------------------------------------------------------------*/
4624
4625typedef PACKED_PRE struct PACKED_POST
4626{
4627 /* Station Index */
4628 tANI_U16 staIdx;
4629
4630 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4631 /* This will carry the bitmap with the bit positions representing different AC.s*/
4632 tANI_U16 tspecIdx;
4633
4634 /* Tspec info per AC To program TPE with required parameters */
4635 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4636
4637 /* U-APSD Flags: 1b per AC. Encoded as follows:
4638 b7 b6 b5 b4 b3 b2 b1 b0 =
4639 X X X X BE BK VI VO */
4640 tANI_U8 uAPSD;
4641
4642 /* These parameters are for all the access categories */
4643 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4644 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4645 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4646
4647}tAggrAddTsParams, *tpAggrAddTsParams;
4648
4649
4650typedef PACKED_PRE struct PACKED_POST
4651{
4652 tHalMsgHeader header;
4653 tAggrAddTsParams aggrAddTsParam;
4654}tAggrAddTsReq, *tpAggrAddTsReq;
4655
4656/*---------------------------------------------------------------------------
4657*WLAN_HAL_AGGR_ADD_TS_RSP
4658*--------------------------------------------------------------------------*/
4659
4660typedef PACKED_PRE struct PACKED_POST
4661{
4662 /* success or failure */
4663 tANI_U32 status0;
4664 /* FIXME PRIMA for future use for 11R */
4665 tANI_U32 status1;
4666}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4667
4668typedef PACKED_PRE struct PACKED_POST
4669{
4670 tHalMsgHeader header;
4671 tAggrAddTsRspParams aggrAddTsRspParam;
4672}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4673
4674#endif
4675
4676/*---------------------------------------------------------------------------
4677 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4678 *--------------------------------------------------------------------------*/
4679typedef PACKED_PRE struct PACKED_POST
4680{
4681 tANI_U8 isAppsCpuAwake;
4682} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4683
4684typedef PACKED_PRE struct PACKED_POST
4685{
4686 tHalMsgHeader header;
4687 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4688} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4689
4690/*---------------------------------------------------------------------------
4691 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4692 *--------------------------------------------------------------------------*/
4693typedef PACKED_PRE struct PACKED_POST
4694{
4695 /* success or failure */
4696 tANI_U32 status;
4697} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4698
4699typedef PACKED_PRE struct PACKED_POST
4700{
4701 tHalMsgHeader header;
4702 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4703} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4704/*---------------------------------------------------------------------------
4705 * WLAN_HAL_DUMP_COMMAND_REQ
4706 *--------------------------------------------------------------------------*/
4707
4708typedef PACKED_PRE struct PACKED_POST
4709{
4710 tANI_U32 argument1;
4711 tANI_U32 argument2;
4712 tANI_U32 argument3;
4713 tANI_U32 argument4;
4714 tANI_U32 argument5;
4715
4716}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4717
4718typedef PACKED_PRE struct PACKED_POST
4719{
4720 tHalMsgHeader header;
4721 tHalDumpCmdReqParams dumpCmdReqParams;
4722} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4723
4724/*---------------------------------------------------------------------------
4725 * WLAN_HAL_DUMP_COMMAND_RSP
4726 *--------------------------------------------------------------------------*/
4727
4728typedef PACKED_PRE struct PACKED_POST
4729{
4730 /* success or failure */
4731 tANI_U32 status;
4732 /*Length of the responce message*/
4733 tANI_U32 rspLength;
4734 /*FiXME: Currently considering the the responce will be less than 100bytes */
4735 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004736
Jeff Johnson295189b2012-06-20 16:38:30 -07004737} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4738
4739typedef PACKED_PRE struct PACKED_POST
4740{
4741 tHalMsgHeader header;
4742 tHalDumpCmdRspParams dumpCmdRspParams;
4743} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4744
4745/*---------------------------------------------------------------------------
4746 *WLAN_HAL_COEX_IND
4747 *-------------------------------------------------------------------------*/
4748#define WLAN_COEX_IND_DATA_SIZE (4)
4749#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4750#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004751#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
4752#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Jeff Johnson295189b2012-06-20 16:38:30 -07004753
4754typedef PACKED_PRE struct PACKED_POST
4755{
4756 /*Coex Indication Type*/
4757 tANI_U32 coexIndType;
4758
4759 /*Coex Indication Data*/
4760 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4761}tCoexIndParams,*tpCoexIndParams;
4762
4763typedef PACKED_PRE struct PACKED_POST
4764{
4765 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004766 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004767}tCoexIndMsg, *tpCoexIndMsg;
4768
4769/*---------------------------------------------------------------------------
4770 *WLAN_HAL_OTA_TX_COMPL_IND
4771 *-------------------------------------------------------------------------*/
4772
4773typedef PACKED_PRE struct PACKED_POST
4774{
4775 /*Tx Complete Indication Success or Failure*/
4776 tANI_U32 status;
4777}tTxComplParams,*tpTxComplParams;
4778
4779typedef PACKED_PRE struct PACKED_POST
4780{
4781 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004782 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004783}tTxComplIndMsg, *tpTxComplIndMsg;
4784
4785/*---------------------------------------------------------------------------
4786 * WLAN_HAL_HOST_SUSPEND_IND
4787 *-------------------------------------------------------------------------*/
4788
4789typedef PACKED_PRE struct PACKED_POST
4790{
4791 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004792 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004793}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4794
4795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tHalMsgHeader header;
4798 tHalWlanHostSuspendIndParam suspendIndParams;
4799}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4800
4801/*---------------------------------------------------------------------------
4802 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4803 *-------------------------------------------------------------------------*/
4804
4805typedef PACKED_PRE struct PACKED_POST
4806{
4807 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004808 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004809}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4810
4811typedef PACKED_PRE struct PACKED_POST
4812{
4813 tHalMsgHeader header;
4814 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4815}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4816
4817#ifdef WLAN_FEATURE_P2P
4818/*---------------------------------------------------------------------------
4819 *WLAN_HAL_NOA_ATTR_IND
4820 *-------------------------------------------------------------------------*/
4821
4822typedef PACKED_PRE struct PACKED_POST
4823{
4824 tANI_U8 index ;
4825 tANI_U8 oppPsFlag ;
4826 tANI_U16 ctWin ;
4827
4828 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004829 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004830 tANI_U32 uNoa1Duration;
4831 tANI_U32 uNoa1Interval;
4832 tANI_U32 uNoa1StartTime;
4833
4834 tANI_U16 uNoa2IntervalCnt;
4835 tANI_U16 rsvd2;
4836 tANI_U32 uNoa2Duration;
4837 tANI_U32 uNoa2Interval;
4838 tANI_U32 uNoa2StartTime;
4839
4840 tANI_U32 status;
4841}tNoaAttrIndParams, *tpNoaAttrIndParams;
4842
4843typedef PACKED_PRE struct PACKED_POST
4844{
4845 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004846 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004847}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004848
4849/*---------------------------------------------------------------------------
4850 *WLAN_HAL_NOA_START_IND
4851 *-------------------------------------------------------------------------*/
4852
4853typedef PACKED_PRE struct PACKED_POST
4854{
4855 tANI_U32 status;
4856 tANI_U32 bssIdx;
4857}tNoaStartIndParams, *tpNoaStartIndParams;
4858
4859typedef PACKED_PRE struct PACKED_POST
4860{
4861 tHalMsgHeader header;
4862 tNoaStartIndParams noaStartIndParams;
4863}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004864#endif
4865
4866/*---------------------------------------------------------------------------
4867 * WLAN_HAL_HOST_RESUME_REQ
4868 *-------------------------------------------------------------------------*/
4869
4870typedef PACKED_PRE struct PACKED_POST
4871{
4872 tANI_U8 configuredMcstBcstFilterSetting;
4873}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4874
4875typedef PACKED_PRE struct PACKED_POST
4876{
4877 tHalMsgHeader header;
4878 tHalWlanHostResumeReqParam resumeReqParams;
4879}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4880
4881/*---------------------------------------------------------------------------
4882 * WLAN_HAL_HOST_RESUME_RSP
4883 *--------------------------------------------------------------------------*/
4884typedef PACKED_PRE struct PACKED_POST
4885{
4886 /* success or failure */
4887 tANI_U32 status;
4888} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4889
4890typedef PACKED_PRE struct PACKED_POST
4891{
4892 tHalMsgHeader header;
4893 tHalHostResumeRspParams hostResumeRspParams;
4894} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4895
Anand Kumar012623a2013-01-11 17:00:00 -08004896typedef PACKED_PRE struct PACKED_POST
4897{
4898 tANI_U16 staIdx;
4899 // Peer MAC Address, whose BA session has timed out
4900 tSirMacAddr peerMacAddr;
4901 // TID for which a BA session timeout is being triggered
4902 tANI_U8 baTID;
4903 // DELBA direction
4904 // 1 - Originator
4905 // 0 - Recipient
4906 tANI_U8 baDirection;
4907 tANI_U32 reasonCode;
4908 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4909} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4910
4911typedef PACKED_PRE struct PACKED_POST
4912{
4913 tHalMsgHeader header;
4914 tHalWlanDelBaIndMsg hostdelBaParam;
4915} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4916
Jeff Johnson295189b2012-06-20 16:38:30 -07004917/*---------------------------------------------------------------------------
4918 *PNO Messages
4919 *-------------------------------------------------------------------------*/
4920/*Max number of channels that a network can be found on*/
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07004921#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07004922
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304923/*Max number of channels that a network can be found on*/
4924#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4925
Jeff Johnson295189b2012-06-20 16:38:30 -07004926/*Maximum numbers of networks supported by PNO*/
4927#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4928
4929/*The number of scan time intervals that can be programmed into PNO*/
4930#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4931
4932/*Maximum size of the probe template*/
4933#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4934
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004935#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
4936#define CHANNEL_LIST_STATIC 1 /* Occupied channel list remains static */
4937#define CHANNEL_LIST_DYNAMIC_INIT 2 /* Occupied channel list can be learnt after init */
4938#define CHANNEL_LIST_DYNAMIC_FLUSH 3 /* Occupied channel list can be learnt after flush */
4939#define CHANNEL_LIST_DYNAMIC_UPDATE 4 /* Occupied channel list can be learnt after update */
4940#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
4941#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS NUM_RF_CHANNELS
4942#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 64
4943#endif
4944
Jeff Johnson32d95a32012-09-10 13:15:23 -07004945/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004946 Immediate - scanning will start immediately and PNO procedure will
4947 be repeated based on timer
4948 Suspend - scanning will start at suspend
4949 Resume - scanning will start on system resume*/
4950typedef enum
4951{
4952 ePNO_MODE_IMMEDIATE,
4953 ePNO_MODE_ON_SUSPEND,
4954 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05304955 ePNO_MODE_DELAY,
4956 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07004957 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4958} ePNOMode;
4959
4960/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004961typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004962{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004963 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004964 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004965
Jeff Johnson295189b2012-06-20 16:38:30 -07004966 // Upper layer authentication types
4967 eAUTH_TYPE_WPA = 2,
4968 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004969
Jeff Johnson295189b2012-06-20 16:38:30 -07004970 eAUTH_TYPE_RSN = 4,
4971 eAUTH_TYPE_RSN_PSK = 5,
4972 eAUTH_TYPE_FT_RSN = 6,
4973 eAUTH_TYPE_FT_RSN_PSK = 7,
4974 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4975 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004976 eAUTH_TYPE_CCKM_WPA = 10,
4977 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004978
Jeff Johnson295189b2012-06-20 16:38:30 -07004979 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4980
4981}tAuthType;
4982
4983/* Encryption type */
4984typedef enum eEdType
4985{
4986 eED_ANY = 0,
4987 eED_NONE = 1,
4988 eED_WEP = 2,
4989 eED_TKIP = 3,
4990 eED_CCMP = 4,
4991 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004992
Jeff Johnson295189b2012-06-20 16:38:30 -07004993 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4994} tEdType;
4995
4996/* SSID broadcast type */
4997typedef enum eSSIDBcastType
4998{
4999 eBCAST_UNKNOWN = 0,
5000 eBCAST_NORMAL = 1,
5001 eBCAST_HIDDEN = 2,
5002
5003 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5004} tSSIDBcastType;
5005
Jeff Johnson32d95a32012-09-10 13:15:23 -07005006/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005007 The network description for which PNO will have to look for
5008*/
5009typedef PACKED_PRE struct PACKED_POST
5010{
5011 /*SSID of the BSS*/
5012 tSirMacSSid ssId;
5013
5014 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005015 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005016
5017 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005018 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005019
Jeff Johnson32d95a32012-09-10 13:15:23 -07005020 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005021 0 - if all channels */
5022 tANI_U8 ucChannelCount;
5023 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5024
5025 /*Indicates the RSSI threshold for the network to be considered*/
5026 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005027}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005028
5029typedef PACKED_PRE struct PACKED_POST
5030{
5031 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005032 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005033
Jeff Johnson32d95a32012-09-10 13:15:23 -07005034 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005035 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005036 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005037
Jeff Johnson32d95a32012-09-10 13:15:23 -07005038 /*e.g: 2 3
5039 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005040 - it will wait 2s between consecutive scans for 3 times
5041 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005042}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005043
Jeff Johnson32d95a32012-09-10 13:15:23 -07005044/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005045 The network parameters to be sent to the PNO algorithm
5046*/
5047typedef PACKED_PRE struct PACKED_POST
5048{
5049 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005050 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005051
Jeff Johnson32d95a32012-09-10 13:15:23 -07005052 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005053 two consecutive scan procedures
5054 If the desired is for a uniform timer that fires always at the exact same
5055 interval - one single value is to be set
5056 If there is a desire for a more complex - telescopic like timer multiple
5057 values can be set - once PNO reaches the end of the array it will
5058 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005059 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005060
5061}tScanTimersType;
5062
5063typedef PACKED_PRE struct PACKED_POST {
5064
5065 /*Enable PNO*/
5066 tANI_U32 enable;
5067
5068 /*Immediate, On Suspend, On Resume*/
5069 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005070
Jeff Johnson295189b2012-06-20 16:38:30 -07005071 /*Number of networks sent for PNO*/
5072 tANI_U32 ucNetworksCount;
5073
5074 /*The networks that PNO needs to look for*/
5075 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5076
5077 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005078 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005079
5080 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005081 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005082 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5083
5084 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005085 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005086 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5087
5088} tPrefNetwListParams, * tpPrefNetwListParams;
5089
5090/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005091 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005092*/
5093typedef PACKED_PRE struct PACKED_POST
5094{
5095 tHalMsgHeader header;
5096 tPrefNetwListParams prefNetwListParams;
5097} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5098
5099
Jeff Johnson32d95a32012-09-10 13:15:23 -07005100/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005101 The network description for which PNO will have to look for
5102*/
5103typedef PACKED_PRE struct PACKED_POST
5104{
5105 /*SSID of the BSS*/
5106 tSirMacSSid ssId;
5107
5108 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005109 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005110
5111 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005112 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005113
5114 /*SSID broadcast type, normal, hidden or unknown*/
5115 tSSIDBcastType bcastNetworkType;
5116
Jeff Johnson32d95a32012-09-10 13:15:23 -07005117 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005118 0 - if all channels */
5119 tANI_U8 ucChannelCount;
5120 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5121
5122 /*Indicates the RSSI threshold for the network to be considered*/
5123 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005124}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005125
5126typedef PACKED_PRE struct PACKED_POST {
5127
5128 /*Enable PNO*/
5129 tANI_U32 enable;
5130
5131 /*Immediate, On Suspend, On Resume*/
5132 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005133
Jeff Johnson295189b2012-06-20 16:38:30 -07005134 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005135 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005136
5137 /*The networks that PNO needs to look for*/
5138 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5139
5140 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005141 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005142
5143 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005144 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005145 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5146
5147 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005148 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005149 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5150
5151} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5152
5153/*
5154 Preferred network list request new
5155*/
5156typedef PACKED_PRE struct PACKED_POST
5157{
5158 tHalMsgHeader header;
5159 tPrefNetwListParamsNew prefNetwListParams;
5160} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5161
5162/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005163 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005164*/
5165typedef PACKED_PRE struct PACKED_POST
5166{
5167 tHalMsgHeader header;
5168
Jeff Johnson32d95a32012-09-10 13:15:23 -07005169 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005170 the request and will start scanning*/
5171 tANI_U32 status;
5172} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5173
5174/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005175 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005176*/
5177typedef PACKED_PRE struct PACKED_POST {
5178
5179 /*Network that was found with the highest RSSI*/
5180 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005181
Jeff Johnson295189b2012-06-20 16:38:30 -07005182 /*Indicates the RSSI */
5183 tANI_U8 rssi;
5184
Gopichand Nakkalaa14f43b2013-05-14 00:08:53 +05305185 tANI_U16 frameLength;
5186
Jeff Johnson295189b2012-06-20 16:38:30 -07005187} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5188
5189/*
5190 Preferred network found indication
5191*/
5192typedef PACKED_PRE struct PACKED_POST {
5193
5194 tHalMsgHeader header;
5195 tPrefNetwFoundParams prefNetwFoundParams;
5196} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5197
5198
5199typedef PACKED_PRE struct PACKED_POST {
5200
5201 /*RSSI Threshold*/
5202 tANI_U8 ucRssiThreshold;
5203
5204} tRssiFilterParams, * tpRssiFilterParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005205#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5206typedef PACKED_PRE struct PACKED_POST
5207{
5208 tSirMacSSid ssId;
5209 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5210 tANI_U32 authentication;
5211 tEdType encryption;
5212 tEdType mcencryption;
5213 tANI_U8 ChannelCount;
5214 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5215}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005216
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005217typedef PACKED_PRE struct PACKED_POST
5218{
5219 tANI_U8 mdiePresent;
5220 tANI_U16 mobilityDomain;
5221}tMobilityDomainInfo;
5222
5223typedef PACKED_PRE struct PACKED_POST {
5224 eAniBoolean RoamScanOffloadEnabled;
5225 tANI_S8 LookupThreshold;
5226 tANI_U8 RoamRssiDiff;
5227 tANI_U8 ChannelCacheType;
5228 tANI_U8 Command;
5229 tANI_U8 StartScanReason;
5230 tANI_U16 NeighborScanTimerPeriod;
5231 tANI_U16 NeighborRoamScanRefreshPeriod;
5232 tANI_U16 NeighborScanChannelMinTime;
5233 tANI_U16 NeighborScanChannelMaxTime;
5234 tANI_U16 EmptyRefreshScanPeriod;
5235 tANI_U8 ValidChannelCount;
5236 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5237 eAniBoolean IsCCXEnabled;
5238
5239 tANI_U16 us24GProbeSize;
5240 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5241 tANI_U16 us5GProbeSize;
5242 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5243 /* Add Reserved bytes */
5244 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5245 tRoamNetworkType ConnectedNetwork;
5246 tMobilityDomainInfo MDID;
5247} tRoamCandidateListParams, * tpRoamCandidateListParams;
5248
5249typedef PACKED_PRE struct PACKED_POST
5250{
5251 tHalMsgHeader header;
5252 tRoamCandidateListParams RoamScanOffloadNetwListParams;
5253} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5254
5255typedef PACKED_PRE struct PACKED_POST
5256{
5257 tHalMsgHeader header;
5258
5259 /*status of the request - just to indicate that PNO has acknowledged
5260 * the request and will start scanning*/
5261 tANI_U32 status;
5262} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5263#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005264/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005265 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005266*/
5267typedef PACKED_PRE struct PACKED_POST
5268{
5269 tHalMsgHeader header;
5270 tRssiFilterParams prefRSSIFilterParams;
5271} tSetRssiFilterReq, *tpSetRssiFilterReq;
5272
5273/*
5274 Set RSSI filter resp
5275*/
5276typedef PACKED_PRE struct PACKED_POST{
5277 tHalMsgHeader header;
5278 /*status of the request */
5279 tANI_U32 status;
5280} tSetRssiFilterResp, *tpSetRssiFilterResp;
5281/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005282 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005283*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005284typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005285{
5286
5287 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005288 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005289
5290 /*Lets PNO know that host has determined the regulatory domain*/
5291 tANI_U8 b11dResolved;
5292
5293 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005294 tANI_U8 ucChannelCount;
5295 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005296
5297 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005298 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005299
5300 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005301 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005302
5303 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005304 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005305
5306 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005307 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005308
5309 /*Cb State*/
5310 ePhyChanBondState cbState;
5311
5312} tUpdateScanParams, * tpUpdateScanParams;
5313
5314/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305315 Update scan params
5316*/
5317typedef PACKED_PRE struct PACKED_POST
5318{
5319
5320 /*Host setting for 11d*/
5321 tANI_U8 b11dEnabled;
5322
5323 /*Lets PNO know that host has determined the regulatory domain*/
5324 tANI_U8 b11dResolved;
5325
5326 /*Channels on which PNO is allowed to scan*/
5327 tANI_U8 ucChannelCount;
5328 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5329
5330 /*Minimum channel time*/
5331 tANI_U16 usActiveMinChTime;
5332
5333 /*Maximum channel time*/
5334 tANI_U16 usActiveMaxChTime;
5335
5336 /*Minimum channel time*/
5337 tANI_U16 usPassiveMinChTime;
5338
5339 /*Maximum channel time*/
5340 tANI_U16 usPassiveMaxChTime;
5341
5342 /*Cb State*/
5343 ePhyChanBondState cbState;
5344
5345} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5346
5347/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005348 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005349 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005350*/
5351typedef PACKED_PRE struct PACKED_POST{
5352
5353 tHalMsgHeader header;
5354 tUpdateScanParams scanParams;
5355} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5356
5357/*
5358 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005359 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005360*/
5361typedef PACKED_PRE struct PACKED_POST{
5362
5363 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305364 tUpdateScanParamsEx scanParams;
5365} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5366
5367/*
5368 Update scan params - sent from host to PNO
5369 to be used during PNO scanning
5370*/
5371typedef PACKED_PRE struct PACKED_POST{
5372
5373 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005374
5375 /*status of the request */
5376 tANI_U32 status;
5377
5378} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5379
5380/*---------------------------------------------------------------------------
5381 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5382 *--------------------------------------------------------------------------*/
5383typedef PACKED_PRE struct PACKED_POST
5384{
5385 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5386 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5387 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5388 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5389} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5390
5391typedef PACKED_PRE struct PACKED_POST
5392{
5393 tHalMsgHeader header;
5394 tHalTxPerTrackingReqParam txPerTrackingParams;
5395} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5396
5397/*---------------------------------------------------------------------------
5398 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5399 *--------------------------------------------------------------------------*/
5400typedef PACKED_PRE struct PACKED_POST
5401{
5402 /* success or failure */
5403 tANI_U32 status;
5404} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5405
5406typedef PACKED_PRE struct PACKED_POST
5407{
5408 tHalMsgHeader header;
5409 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5410} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5411
5412/*---------------------------------------------------------------------------
5413 * WLAN_HAL_TX_PER_HIT_IND
5414 *--------------------------------------------------------------------------*/
5415typedef PACKED_PRE struct PACKED_POST
5416{
5417 tHalMsgHeader header;
5418}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5419
5420/*---------------------------------------------------------------------------
5421 *******************Packet Filtering Definitions Begin*******************
5422 *--------------------------------------------------------------------------*/
5423#define HAL_PROTOCOL_DATA_LEN 8
5424#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5425#define HAL_MAX_NUM_FILTERS 20
5426#define HAL_MAX_CMP_PER_FILTER 10
5427
5428typedef enum
5429{
5430 HAL_RCV_FILTER_TYPE_INVALID,
5431 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5432 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5433 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5434}tHalReceivePacketFilterType;
5435
Jeff Johnson32d95a32012-09-10 13:15:23 -07005436typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005437{
5438 HAL_FILTER_PROTO_TYPE_INVALID,
5439 HAL_FILTER_PROTO_TYPE_MAC,
5440 HAL_FILTER_PROTO_TYPE_ARP,
5441 HAL_FILTER_PROTO_TYPE_IPV4,
5442 HAL_FILTER_PROTO_TYPE_IPV6,
5443 HAL_FILTER_PROTO_TYPE_UDP,
5444 HAL_FILTER_PROTO_TYPE_MAX
5445}tHalRcvPktFltProtocolType;
5446
Jeff Johnson32d95a32012-09-10 13:15:23 -07005447typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005448{
5449 HAL_FILTER_CMP_TYPE_INVALID,
5450 HAL_FILTER_CMP_TYPE_EQUAL,
5451 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5452 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5453 HAL_FILTER_CMP_TYPE_MAX
5454}tHalRcvPktFltCmpFlagType;
5455
Jeff Johnson32d95a32012-09-10 13:15:23 -07005456typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005457{
5458 tANI_U8 protocolLayer;
5459 tANI_U8 cmpFlag;
5460 tANI_U16 dataLength; /* Length of the data to compare */
5461 tANI_U8 dataOffset; /* from start of the respective frame header */
5462 tANI_U8 reserved; /* Reserved field */
5463 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5464 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5465}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5466
5467typedef PACKED_PRE struct PACKED_POST
5468{
5469 tANI_U8 filterId;
5470 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005471 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005472 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005473 tHalRcvPktFilterParams paramsData[1];
5474}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5475
5476typedef PACKED_PRE struct PACKED_POST
5477{
Jeff Johnsone7245742012-09-05 17:12:55 -07005478 tANI_U8 filterId;
5479 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005480 tANI_U8 numParams;
5481 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005482 tANI_U8 bssIdx;
5483 tHalRcvPktFilterParams paramsData[1];
5484}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5485
5486typedef PACKED_PRE struct PACKED_POST
5487{
Jeff Johnson295189b2012-06-20 16:38:30 -07005488 tHalMsgHeader header;
5489 tHalRcvPktFilterCfgType pktFilterCfg;
5490} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5491
Jeff Johnsone7245742012-09-05 17:12:55 -07005492typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005493{
5494 tANI_U8 dataOffset; /* from start of the respective frame header */
5495 tANI_U32 cMulticastAddr;
5496 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005497 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005498} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5499
5500typedef PACKED_PRE struct PACKED_POST
5501{
5502 /* success or failure */
5503 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005504 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005505} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5506
5507typedef PACKED_PRE struct PACKED_POST
5508{
5509 tHalMsgHeader header;
5510 tHalSetPktFilterRspParams pktFilterRspParams;
5511} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5512
Jeff Johnsone7245742012-09-05 17:12:55 -07005513typedef PACKED_PRE struct PACKED_POST
5514{
5515 tANI_U8 bssIdx;
5516} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005517
5518typedef PACKED_PRE struct PACKED_POST
5519{
5520 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005521 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005522} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5523
Jeff Johnsone7245742012-09-05 17:12:55 -07005524
Jeff Johnson295189b2012-06-20 16:38:30 -07005525typedef PACKED_PRE struct PACKED_POST
5526{
5527 tANI_U8 filterId;
5528 tANI_U32 matchCnt;
5529} tHalRcvFltPktMatchCnt;
5530typedef PACKED_PRE struct PACKED_POST
5531{
5532 /* Success or Failure */
5533 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005534 tANI_U32 matchCnt;
5535 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005536 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005537} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5538
5539typedef PACKED_PRE struct PACKED_POST
5540{
5541 tHalMsgHeader header;
5542 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5543} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5544
5545typedef PACKED_PRE struct PACKED_POST
5546{
5547 tANI_U32 status; /* only valid for response message */
5548 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005549 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005550}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5551
5552typedef PACKED_PRE struct PACKED_POST
5553{
5554 tHalMsgHeader header;
5555 tHalRcvFltPktClearParam filterClearParam;
5556} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5557
5558typedef PACKED_PRE struct PACKED_POST
5559{
5560 tHalMsgHeader header;
5561 tHalRcvFltPktClearParam filterClearParam;
5562} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5563
5564typedef PACKED_PRE struct PACKED_POST
5565{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005566 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005567 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005568}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5569
5570typedef PACKED_PRE struct PACKED_POST
5571{
5572 tHalMsgHeader header;
5573 tHalRcvFltMcAddrListType mcAddrList;
5574} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5575
5576typedef PACKED_PRE struct PACKED_POST
5577{
5578 tHalMsgHeader header;
5579 tHalRcvFltPktSetMcListRspType rspParam;
5580} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5581
5582
5583/*---------------------------------------------------------------------------
5584 *******************Packet Filtering Definitions End*******************
5585 *--------------------------------------------------------------------------*/
5586
5587typedef PACKED_PRE struct PACKED_POST
5588{
5589 /* Ignore DTIM */
5590 tANI_U32 uIgnoreDTIM;
5591
5592 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005593 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005594
5595 /* Listen Interval */
5596 tANI_U32 uListenInterval;
5597
5598 /* Broadcast Multicast Filter */
5599 tANI_U32 uBcastMcastFilter;
5600
5601 /* Beacon Early Termination */
5602 tANI_U32 uEnableBET;
5603
5604 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005605 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07005606
5607 /* MAX LI for modulated DTIM */
5608 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07005609}tSetPowerParamsType, *tpSetPowerParamsType;
5610
5611typedef PACKED_PRE struct PACKED_POST
5612{
5613 tHalMsgHeader header;
5614 tSetPowerParamsType powerParams;
5615} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5616
5617typedef PACKED_PRE struct PACKED_POST{
5618
5619 tHalMsgHeader header;
5620
5621 /*status of the request */
5622 tANI_U32 status;
5623
5624} tSetPowerParamsResp, *tpSetPowerParamsResp;
5625
5626/*---------------------------------------------------------------------------
5627 ****************Capability bitmap exchange definitions and macros starts*************
5628 *--------------------------------------------------------------------------*/
5629
Anand Kumar012623a2013-01-11 17:00:00 -08005630typedef enum {
5631 MCC = 0,
5632 P2P = 1,
5633 DOT11AC = 2,
5634 SLM_SESSIONIZATION = 3,
5635 DOT11AC_OPMODE = 4,
5636 SAP32STA = 5,
5637 TDLS = 6,
5638 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5639 WLANACTIVE_OFFLOAD = 8,
5640 BEACON_OFFLOAD = 9,
5641 SCAN_OFFLOAD = 10,
5642 ROAM_OFFLOAD = 11,
5643 BCN_MISS_OFFLOAD = 12,
5644 STA_POWERSAVE = 13,
5645 STA_ADVANCED_PWRSAVE = 14,
5646 AP_UAPSD = 15,
5647 AP_DFS = 16,
5648 BLOCKACK = 17,
5649 PHY_ERR = 18,
5650 BCN_FILTER = 19,
5651 RTT = 20,
5652 RATECTRL = 21,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005653 WOW = 22,
5654 WLAN_ROAM_SCAN_OFFLOAD = 23,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -07005655 //MAX_FEATURE_SUPPORTED = 128
Anand Kumar012623a2013-01-11 17:00:00 -08005656} placeHolderInCapBitmap;
5657
Jeff Johnson295189b2012-06-20 16:38:30 -07005658typedef PACKED_PRE struct PACKED_POST{
5659
5660 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005661} tWlanFeatCaps, *tpWlanFeatCaps;
5662
5663typedef PACKED_PRE struct PACKED_POST{
5664
Jeff Johnson32d95a32012-09-10 13:15:23 -07005665 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005666 tWlanFeatCaps wlanFeatCaps;
5667
5668} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5669
Jeff Johnsone7245742012-09-05 17:12:55 -07005670#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5671#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005672#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005673#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005674#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5675#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
5676#endif
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005677
Jeff Johnsone7245742012-09-05 17:12:55 -07005678tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5679
Jeff Johnson295189b2012-06-20 16:38:30 -07005680#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005681 if ((b)<=127) { \
5682 arr_index = (b)/32; \
5683 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005684 (a)->featCaps[arr_index] |= (1<<bit_index); \
5685 } \
5686 }
5687#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005688 if ((b)<=127) { \
5689 arr_index = (b)/32; \
5690 bit_index = (b)%32; \
5691 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005692 } \
5693 }
5694#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005695 if ((b)<=127) { \
5696 arr_index = (b)/32; \
5697 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005698 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005699 } \
5700 }
5701
5702/*---------------------------------------------------------------------------
5703 * WLAN_HAL_WAKE_REASON_IND
5704 *--------------------------------------------------------------------------*/
5705
5706/* status codes to help debug rekey failures */
5707typedef enum
5708{
5709 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5710 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5711 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5712 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5713 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5714 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5715 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5716 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5717 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5718 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5719
5720 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5721} tGTKRekeyStatus;
5722
5723/* wake reason types */
5724typedef enum
5725{
5726 WLAN_HAL_WAKE_REASON_NONE = 0,
5727 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5728 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5729 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5730 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5731 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5732 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5733 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5734} tWakeReasonType;
5735
5736/*
5737 Wake Packet which is saved at tWakeReasonParams.DataStart
5738 This data is sent for any wake reasons that involve a packet-based wakeup :
5739
5740 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5741 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5742 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5743 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5744 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5745
5746 The information is provided to the host for auditing and debug purposes
5747
5748*/
5749
5750/*
5751 Wake reason indication parameters
5752*/
5753typedef PACKED_PRE struct PACKED_POST
5754{
5755 uint32 ulReason; /* see tWakeReasonType */
5756 uint32 ulReasonArg; /* argument specific to the reason type */
5757 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5758 HAL truncates the data (i.e. data packets) this length
5759 will be less than the actual length */
5760 uint32 ulActualDataLen; /* actual length of data */
5761 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5762 see specific wake type */
5763} tWakeReasonParams, *tpWakeReasonParams;
5764
5765/*
5766 Wake reason indication
5767*/
5768typedef PACKED_PRE struct PACKED_POST
5769{
5770 tHalMsgHeader header;
5771 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005772 tANI_U32 uBssIdx : 8;
5773 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005774} tHalWakeReasonInd, *tpHalWakeReasonInd;
5775
5776/*---------------------------------------------------------------------------
5777* WLAN_HAL_GTK_OFFLOAD_REQ
5778*--------------------------------------------------------------------------*/
5779
5780#define HAL_GTK_KEK_BYTES 16
5781#define HAL_GTK_KCK_BYTES 16
5782
5783#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5784
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005785#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5786
Jeff Johnson295189b2012-06-20 16:38:30 -07005787typedef PACKED_PRE struct PACKED_POST
5788{
5789 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005790 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005791 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5792 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005793 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005794} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5795
5796typedef PACKED_PRE struct PACKED_POST
5797{
5798 tHalMsgHeader header;
5799 tHalGtkOffloadReqParams gtkOffloadReqParams;
5800} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5801
5802/*---------------------------------------------------------------------------
5803* WLAN_HAL_GTK_OFFLOAD_RSP
5804*--------------------------------------------------------------------------*/
5805typedef PACKED_PRE struct PACKED_POST
5806{
5807 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005808 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005809} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5810
5811typedef PACKED_PRE struct PACKED_POST
5812{
5813 tHalMsgHeader header;
5814 tHalGtkOffloadRspParams gtkOffloadRspParams;
5815} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5816
5817
5818/*---------------------------------------------------------------------------
5819* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5820*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005821typedef PACKED_PRE struct PACKED_POST
5822{
5823 tANI_U8 bssIdx;
5824
5825} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005826
5827typedef PACKED_PRE struct PACKED_POST
5828{
5829 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005830 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005831} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5832
5833/*---------------------------------------------------------------------------
5834* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5835*--------------------------------------------------------------------------*/
5836typedef PACKED_PRE struct PACKED_POST
5837{
5838 tANI_U32 ulStatus; /* success or failure */
5839 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5840 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5841 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5842 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5843 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005844 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005845} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5846
5847typedef PACKED_PRE struct PACKED_POST
5848{
5849 tHalMsgHeader header;
5850 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5851} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5852
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005853/*---------------------------------------------------------------------------
5854* WLAN_HAL_DHCP_IND
5855*--------------------------------------------------------------------------*/
5856typedef PACKED_PRE struct PACKED_POST
5857{
5858 /*Indicates the device mode which indicates about the DHCP activity */
5859 tANI_U8 device_mode;
5860 tSirMacAddr macAddr;
5861} tDHCPInfo, *tpDHCPInfo;
5862
5863typedef PACKED_PRE struct PACKED_POST
5864{
5865 tHalMsgHeader header;
5866 tANI_U32 status; /* success or failure */
5867} tDHCPIndStatus, *tpDHCPIndstatus;
5868
Jeff Johnson295189b2012-06-20 16:38:30 -07005869/*
5870 Thermal Mitigation mode of operation.
5871 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5872 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5873 reducing transmit power
5874 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5875*/
5876typedef enum
5877{
5878 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5879 HAL_THERMAL_MITIGATION_MODE_0,
5880 HAL_THERMAL_MITIGATION_MODE_1,
5881 HAL_THERMAL_MITIGATION_MODE_2,
5882 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5883}tHalThermalMitigationModeType;
5884//typedef tANI_S16 tHalThermalMitigationModeType;
5885
5886/*
5887 Thermal Mitigation level.
5888 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5889 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5890
5891 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5892 level indicates normal mode of operation
5893 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5894 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5895 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5896 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5897*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005898typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005899{
5900 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5901 HAL_THERMAL_MITIGATION_LEVEL_0,
5902 HAL_THERMAL_MITIGATION_LEVEL_1,
5903 HAL_THERMAL_MITIGATION_LEVEL_2,
5904 HAL_THERMAL_MITIGATION_LEVEL_3,
5905 HAL_THERMAL_MITIGATION_LEVEL_4,
5906 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5907}tHalThermalMitigationLevelType;
5908//typedef tANI_S16 tHalThermalMitigationLevelType;
5909
5910typedef PACKED_PRE struct PACKED_POST
5911{
5912 /* Thermal Mitigation Operation Mode */
5913 tHalThermalMitigationModeType thermalMitMode;
5914
5915 /* Thermal Mitigation Level */
5916 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005917
Jeff Johnson295189b2012-06-20 16:38:30 -07005918}tSetThermalMitgationType, *tpSetThermalMitgationType;
5919
5920/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5921typedef PACKED_PRE struct PACKED_POST
5922{
5923 tHalMsgHeader header;
5924 tSetThermalMitgationType thermalMitParams;
5925} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5926
5927typedef PACKED_PRE struct PACKED_POST{
5928
5929 tHalMsgHeader header;
5930
5931 /*status of the request */
5932 tANI_U32 status;
5933
5934} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5935
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08005936/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
5937provided to FW from Host via periodic messages */
5938typedef PACKED_PRE struct PACKED_POST {
5939 /* TX stats */
5940 uint32 txBytesPushed;
5941 uint32 txPacketsPushed;
5942
5943 /* RX stats */
5944 uint32 rxBytesRcvd;
5945 uint32 rxPacketsRcvd;
5946 uint32 rxTimeTotal;
5947} tStaStatsClassB, *tpStaStatsClassB;
5948
5949typedef PACKED_PRE struct PACKED_POST {
5950
5951 /* Duration over which this stats was collected */
5952 tANI_U32 duration;
5953
5954 /* Per STA Stats */
5955 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
5956} tStatsClassBIndParams, *tpStatsClassBIndParams;
5957
5958typedef PACKED_PRE struct PACKED_POST {
5959
5960 tHalMsgHeader header;
5961
5962 /* Class B Stats */
5963 tStatsClassBIndParams statsClassBIndParams;
5964} tStatsClassBInd, *tpStatsClassBInd;
5965
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305966/*Wifi Proximity paramters in AP mode*/
5967#ifdef FEATURE_WIFI_PROXIMITY
5968
5969typedef PACKED_PRE struct PACKED_POST{
5970
5971 tANI_U8 wifiProximityChannel;
5972 tANI_U32 wifiProximityDuration;
5973 tANI_U32 wifiProximityInterval;
5974 tANI_U32 wifiProximityMode;
5975 tANI_U32 wifiProximityStatus;
5976 tSirMacAddr bssId;
5977 tSirMacSSid ssId;
5978
5979} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
5980
5981typedef PACKED_PRE struct PACKED_POST
5982{
5983 tHalMsgHeader header;
5984
5985 tSetWifiProximityReqParam wifiProximityReqParams;
5986
5987}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
5988
5989/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
5990typedef PACKED_PRE struct PACKED_POST{
5991
5992 tHalMsgHeader header;
5993
5994 /*status of the request */
5995 tANI_U32 status;
5996
5997} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
5998
5999#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07006000#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6001#pragma pack(pop)
6002#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6003#else
6004#endif
6005
6006#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006007