blob: 2e5be5674304f739f66cb9555d5d0512cd845a1a [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*/
104#define DUMPCMD_RSP_BUFFER 100
105
106/*Version string max length (including NUL) */
107#define WLAN_HAL_VERSION_LENGTH 64
108
Jeff Johnson295189b2012-06-20 16:38:30 -0700109/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700110typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700111{
112 //Init/De-Init
113 WLAN_HAL_START_REQ = 0,
114 WLAN_HAL_START_RSP = 1,
115 WLAN_HAL_STOP_REQ = 2,
116 WLAN_HAL_STOP_RSP = 3,
117
118 //Scan
119 WLAN_HAL_INIT_SCAN_REQ = 4,
120 WLAN_HAL_INIT_SCAN_RSP = 5,
121 WLAN_HAL_START_SCAN_REQ = 6,
122 WLAN_HAL_START_SCAN_RSP = 7 ,
123 WLAN_HAL_END_SCAN_REQ = 8,
124 WLAN_HAL_END_SCAN_RSP = 9,
125 WLAN_HAL_FINISH_SCAN_REQ = 10,
126 WLAN_HAL_FINISH_SCAN_RSP = 11,
127
128 // HW STA configuration/deconfiguration
129 WLAN_HAL_CONFIG_STA_REQ = 12,
130 WLAN_HAL_CONFIG_STA_RSP = 13,
131 WLAN_HAL_DELETE_STA_REQ = 14,
132 WLAN_HAL_DELETE_STA_RSP = 15,
133 WLAN_HAL_CONFIG_BSS_REQ = 16,
134 WLAN_HAL_CONFIG_BSS_RSP = 17,
135 WLAN_HAL_DELETE_BSS_REQ = 18,
136 WLAN_HAL_DELETE_BSS_RSP = 19,
137
138 //Infra STA asscoiation
139 WLAN_HAL_JOIN_REQ = 20,
140 WLAN_HAL_JOIN_RSP = 21,
141 WLAN_HAL_POST_ASSOC_REQ = 22,
142 WLAN_HAL_POST_ASSOC_RSP = 23,
143
144 //Security
145 WLAN_HAL_SET_BSSKEY_REQ = 24,
146 WLAN_HAL_SET_BSSKEY_RSP = 25,
147 WLAN_HAL_SET_STAKEY_REQ = 26,
148 WLAN_HAL_SET_STAKEY_RSP = 27,
149 WLAN_HAL_RMV_BSSKEY_REQ = 28,
150 WLAN_HAL_RMV_BSSKEY_RSP = 29,
151 WLAN_HAL_RMV_STAKEY_REQ = 30,
152 WLAN_HAL_RMV_STAKEY_RSP = 31,
153
154 //Qos Related
155 WLAN_HAL_ADD_TS_REQ = 32,
156 WLAN_HAL_ADD_TS_RSP = 33,
157 WLAN_HAL_DEL_TS_REQ = 34,
158 WLAN_HAL_DEL_TS_RSP = 35,
159 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
160 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
161 WLAN_HAL_ADD_BA_REQ = 38,
162 WLAN_HAL_ADD_BA_RSP = 39,
163 WLAN_HAL_DEL_BA_REQ = 40,
164 WLAN_HAL_DEL_BA_RSP = 41,
165
166 WLAN_HAL_CH_SWITCH_REQ = 42,
167 WLAN_HAL_CH_SWITCH_RSP = 43,
168 WLAN_HAL_SET_LINK_ST_REQ = 44,
169 WLAN_HAL_SET_LINK_ST_RSP = 45,
170 WLAN_HAL_GET_STATS_REQ = 46,
171 WLAN_HAL_GET_STATS_RSP = 47,
172 WLAN_HAL_UPDATE_CFG_REQ = 48,
173 WLAN_HAL_UPDATE_CFG_RSP = 49,
174
175 WLAN_HAL_MISSED_BEACON_IND = 50,
176 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
177 WLAN_HAL_MIC_FAILURE_IND = 52,
178 WLAN_HAL_FATAL_ERROR_IND = 53,
179 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700180
Jeff Johnson295189b2012-06-20 16:38:30 -0700181 //NV Interface
182 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
183 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
184
185 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
186 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
187 WLAN_HAL_TRIGGER_BA_REQ = 59,
188 WLAN_HAL_TRIGGER_BA_RSP = 60,
189 WLAN_HAL_UPDATE_BEACON_REQ = 61,
190 WLAN_HAL_UPDATE_BEACON_RSP = 62,
191 WLAN_HAL_SEND_BEACON_REQ = 63,
192 WLAN_HAL_SEND_BEACON_RSP = 64,
193
194 WLAN_HAL_SET_BCASTKEY_REQ = 65,
195 WLAN_HAL_SET_BCASTKEY_RSP = 66,
196 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
197 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
198 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700199
Jeff Johnson295189b2012-06-20 16:38:30 -0700200 // PTT interface support
201 WLAN_HAL_PROCESS_PTT_REQ = 70,
202 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700203
Jeff Johnson295189b2012-06-20 16:38:30 -0700204 // BTAMP related events
205 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
206 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
207 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
208 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
209
210 WLAN_HAL_ENTER_IMPS_REQ = 76,
211 WLAN_HAL_EXIT_IMPS_REQ = 77,
212 WLAN_HAL_ENTER_BMPS_REQ = 78,
213 WLAN_HAL_EXIT_BMPS_REQ = 79,
214 WLAN_HAL_ENTER_UAPSD_REQ = 80,
215 WLAN_HAL_EXIT_UAPSD_REQ = 81,
216 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
217 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
218 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
219 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
220 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
221 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
222 WLAN_HAL_ENTER_WOWL_REQ = 88,
223 WLAN_HAL_EXIT_WOWL_REQ = 89,
224 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
225 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
226 WLAN_HAL_GET_RSSI_REQ = 92,
227 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
228 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
229
230 WLAN_HAL_ENTER_IMPS_RSP = 95,
231 WLAN_HAL_EXIT_IMPS_RSP = 96,
232 WLAN_HAL_ENTER_BMPS_RSP = 97,
233 WLAN_HAL_EXIT_BMPS_RSP = 98,
234 WLAN_HAL_ENTER_UAPSD_RSP = 99,
235 WLAN_HAL_EXIT_UAPSD_RSP = 100,
236 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
237 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
238 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
239 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
240 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
241 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
242 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
243 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
244 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
245 WLAN_HAL_ENTER_WOWL_RSP = 110,
246 WLAN_HAL_EXIT_WOWL_RSP = 111,
247 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
248 WLAN_HAL_GET_RSSI_RSP = 113,
249 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
250
251 //11k related events
252 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
253 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
254
255 //11R related msgs
256 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
257 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
258
259 //P2P WLAN_FEATURE_P2P
260 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
261 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700262
Jeff Johnson295189b2012-06-20 16:38:30 -0700263 //WLAN Dump commands
264 WLAN_HAL_DUMP_COMMAND_REQ = 121,
265 WLAN_HAL_DUMP_COMMAND_RSP = 122,
266
Jeff Johnsone7245742012-09-05 17:12:55 -0700267 //OEM_DATA FEATURE SUPPORT
268 WLAN_HAL_START_OEM_DATA_REQ = 123,
269 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700270
271 //ADD SELF STA REQ and RSP
272 WLAN_HAL_ADD_STA_SELF_REQ = 125,
273 WLAN_HAL_ADD_STA_SELF_RSP = 126,
274
275 //DEL SELF STA SUPPORT
276 WLAN_HAL_DEL_STA_SELF_REQ = 127,
277 WLAN_HAL_DEL_STA_SELF_RSP = 128,
278
279 // Coex Indication
280 WLAN_HAL_COEX_IND = 129,
281
Jeff Johnson32d95a32012-09-10 13:15:23 -0700282 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700283 WLAN_HAL_OTA_TX_COMPL_IND = 130,
284
285 //Host Suspend/resume messages
286 WLAN_HAL_HOST_SUSPEND_IND = 131,
287 WLAN_HAL_HOST_RESUME_REQ = 132,
288 WLAN_HAL_HOST_RESUME_RSP = 133,
289
290 WLAN_HAL_SET_TX_POWER_REQ = 134,
291 WLAN_HAL_SET_TX_POWER_RSP = 135,
292 WLAN_HAL_GET_TX_POWER_REQ = 136,
293 WLAN_HAL_GET_TX_POWER_RSP = 137,
294
295 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700296
Jeff Johnson295189b2012-06-20 16:38:30 -0700297 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
298 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
299 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
300 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
301 WLAN_HAL_RADAR_DETECT_IND = 143,
302 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
303 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700304 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700305
306 /*PNO messages*/
307 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
308 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
309 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
310 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
311 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
312 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700313 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700314
315 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
316 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
317 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700318
Jeff Johnson295189b2012-06-20 16:38:30 -0700319 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700320 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700321
322 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700323 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700324 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700325 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700326 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700327 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
328 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700329 * Host and Riva code is in sync*/
330 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700331
Jeff Johnson295189b2012-06-20 16:38:30 -0700332 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
333 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
334
335 WLAN_HAL_TSM_STATS_REQ = 168,
336 WLAN_HAL_TSM_STATS_RSP = 169,
337
338 // wake reason indication (WOW)
339 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700340 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700341 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
342 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
343 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
344 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
345
346 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
347 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
348 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
349
350 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
351 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
352
Anand Kumar012623a2013-01-11 17:00:00 -0800353 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
354 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800355
Anand Kumar012623a2013-01-11 17:00:00 -0800356 WLAN_HAL_P2P_NOA_START_IND = 184,
357
358 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
359 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700360
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800361 WLAN_HAL_CLASS_B_STATS_IND = 187,
362 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800363 WLAN_HAL_DHCP_START_IND = 189,
364 WLAN_HAL_DHCP_STOP_IND = 190,
365
366 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700367}tHalHostMsgType;
368
Jeff Johnsone7245742012-09-05 17:12:55 -0700369/* Enumeration for Version */
370typedef enum
371{
372 WLAN_HAL_MSG_VERSION0 = 0,
373 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800374 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
375 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700376}tHalHostMsgVersion;
377
Jeff Johnson295189b2012-06-20 16:38:30 -0700378/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700379typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700380{
381 eANI_BOOLEAN_FALSE = 0,
382 eANI_BOOLEAN_TRUE,
383 eANI_BOOLEAN_OFF = 0,
384 eANI_BOOLEAN_ON = 1,
385 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
386} eAniBoolean;
387
388typedef enum
389{
390 eDRIVER_TYPE_PRODUCTION = 0,
391 eDRIVER_TYPE_MFG = 1,
392 eDRIVER_TYPE_DVT = 2,
393 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
394} tDriverType;
395
396typedef enum
397{
398 HAL_STOP_TYPE_SYS_RESET,
399 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
400 HAL_STOP_TYPE_RF_KILL,
401 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
402}tHalStopType;
403
404typedef enum
405{
406 eHAL_SYS_MODE_NORMAL,
407 eHAL_SYS_MODE_LEARN,
408 eHAL_SYS_MODE_SCAN,
409 eHAL_SYS_MODE_PROMISC,
410 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700411 eHAL_SYS_MODE_ROAM_SCAN,
412 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700413 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
414} eHalSysMode;
415
416typedef enum
417{
418 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
419 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
420 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
421 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700422#ifdef WLAN_FEATURE_11AC
423 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
424 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
425 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
426 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
427 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
428 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
429 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
430#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700431 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
432}ePhyChanBondState;
433
434// Spatial Multiplexing(SM) Power Save mode
435typedef enum eSirMacHTMIMOPowerSaveState
436{
437 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
438 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
439 eSIR_HT_MIMO_PS_NA = 2, // reserved
440 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
441 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
442} tSirMacHTMIMOPowerSaveState;
443
444/* each station added has a rate mode which specifies the sta attributes */
445typedef enum eStaRateMode {
446 eSTA_TAURUS = 0,
447 eSTA_TITAN,
448 eSTA_POLARIS,
449 eSTA_11b,
450 eSTA_11bg,
451 eSTA_11a,
452 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700453#ifdef WLAN_FEATURE_11AC
454 eSTA_11ac,
455#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700456 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
457} tStaRateMode, *tpStaRateMode;
458
459#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
460#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
461#define SIR_NUM_POLARIS_RATES 3 //72,96,108
462
463#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
464
465
466typedef enum eSirBssType
467{
468 eSIR_INFRASTRUCTURE_MODE,
469 eSIR_INFRA_AP_MODE, //Added for softAP support
470 eSIR_IBSS_MODE,
471 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
472 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
473 eSIR_AUTO_MODE,
474 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
475} tSirBssType;
476
477typedef enum eSirNwType
478{
479 eSIR_11A_NW_TYPE,
480 eSIR_11B_NW_TYPE,
481 eSIR_11G_NW_TYPE,
482 eSIR_11N_NW_TYPE,
483 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
484} tSirNwType;
485
486typedef tANI_U16 tSirMacBeaconInterval;
487
488#define SIR_MAC_RATESET_EID_MAX 12
489
490typedef enum eSirMacHTOperatingMode
491{
492 eSIR_HT_OP_MODE_PURE, // No Protection
493 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
494 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
495 eSIR_HT_OP_MODE_MIXED, // Protection is required
496 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
497} tSirMacHTOperatingMode;
498
Jeff Johnson295189b2012-06-20 16:38:30 -0700499/// Encryption type enum used with peer
500typedef enum eAniEdType
501{
502 eSIR_ED_NONE,
503 eSIR_ED_WEP40,
504 eSIR_ED_WEP104,
505 eSIR_ED_TKIP,
506 eSIR_ED_CCMP,
507 eSIR_ED_WPI,
508 eSIR_ED_AES_128_CMAC,
509 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
510} tAniEdType;
511
512#define WLAN_MAX_KEY_RSC_LEN 16
513#define WLAN_WAPI_KEY_RSC_LEN 16
514
515/// MAX key length when ULA is used
516#define SIR_MAC_MAX_KEY_LENGTH 32
517#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
518
519/// Enum to specify whether key is used
520/// for TX only, RX only or both
521typedef enum eAniKeyDirection
522{
523 eSIR_TX_ONLY,
524 eSIR_RX_ONLY,
525 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700526 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700527 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
528} tAniKeyDirection;
529
530typedef enum eAniWepType
531{
532 eSIR_WEP_STATIC,
533 eSIR_WEP_DYNAMIC,
534 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
535} tAniWepType;
536
537typedef enum eSriLinkState {
538
539 eSIR_LINK_IDLE_STATE = 0,
540 eSIR_LINK_PREASSOC_STATE = 1,
541 eSIR_LINK_POSTASSOC_STATE = 2,
542 eSIR_LINK_AP_STATE = 3,
543 eSIR_LINK_IBSS_STATE = 4,
544
545 /* BT-AMP Case */
546 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
547 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
548 eSIR_LINK_BTAMP_AP_STATE = 7,
549 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700550
Jeff Johnson295189b2012-06-20 16:38:30 -0700551 /* Reserved for HAL Internal Use */
552 eSIR_LINK_LEARN_STATE = 9,
553 eSIR_LINK_SCAN_STATE = 10,
554 eSIR_LINK_FINISH_SCAN_STATE = 11,
555 eSIR_LINK_INIT_CAL_STATE = 12,
556 eSIR_LINK_FINISH_CAL_STATE = 13,
557#ifdef WLAN_FEATURE_P2P
558 eSIR_LINK_LISTEN_STATE = 14,
559#endif
560 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
561} tSirLinkState;
562
563typedef enum
564{
565 HAL_SUMMARY_STATS_INFO = 0x00000001,
566 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
567 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
568 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
569 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
570 HAL_PER_STA_STATS_INFO = 0x00000020
571}eHalStatsMask;
572
573/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700574typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700575{
576 BTAMP_EVENT_CONNECTION_START,
577 BTAMP_EVENT_CONNECTION_STOP,
578 BTAMP_EVENT_CONNECTION_TERMINATED,
579 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
580} tBtAmpEventType;
581
582//***************************************************************
583
584
585/*******************PE Statistics*************************/
586typedef enum
587{
588 PE_SUMMARY_STATS_INFO = 0x00000001,
589 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
590 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
591 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
592 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
593 PE_PER_STA_STATS_INFO = 0x00000020,
594 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
595}ePEStatsMask;
596
597/*---------------------------------------------------------------------------
598 Message definitons - All the messages below need to be packed
599 ---------------------------------------------------------------------------*/
600
601#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
602#pragma pack(push, 1)
603#elif defined(__ANI_COMPILER_PRAGMA_PACK)
604#pragma pack(1)
605#else
606#endif
607
608/// Definition for HAL API Version.
609typedef PACKED_PRE struct PACKED_POST
610{
611 tANI_U8 revision;
612 tANI_U8 version;
613 tANI_U8 minor;
614 tANI_U8 major;
615} tWcnssWlanVersion, *tpWcnssWlanVersion;
616
617/// Definition for Encryption Keys
618typedef PACKED_PRE struct PACKED_POST
619{
620 tANI_U8 keyId;
621 tANI_U8 unicast; // 0 for multicast
622 tAniKeyDirection keyDirection;
623 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
624 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
625 tANI_U16 keyLength;
626 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
627} tSirKeys, *tpSirKeys;
628
629
630//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
631typedef PACKED_PRE struct PACKED_POST
632{
633 /*STA Index*/
634 tANI_U16 staIdx;
635
636 /*Encryption Type used with peer*/
637 tAniEdType encType;
638
639 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700640 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700641
642 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
643 tANI_U8 defWEPIdx;
644
Jeff Johnson295189b2012-06-20 16:38:30 -0700645 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700646 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
647
Jeff Johnson295189b2012-06-20 16:38:30 -0700648 /*Control for Replay Count, 1= Single TID based replay count on Tx
649 0 = Per TID based replay count on TX */
650 tANI_U8 singleTidRc;
651
652} tSetStaKeyParams, *tpSetStaKeyParams;
653
654
655
656/* 4-byte control message header used by HAL*/
657typedef PACKED_PRE struct PACKED_POST
658{
Jeff Johnsone7245742012-09-05 17:12:55 -0700659 tHalHostMsgType msgType:16;
660 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700661 tANI_U32 msgLen;
662} tHalMsgHeader, *tpHalMsgHeader;
663
664/* Config format required by HAL for each CFG item*/
665typedef PACKED_PRE struct PACKED_POST
666{
667 /* Cfg Id. The Id required by HAL is exported by HAL
668 * in shared header file between UMAC and HAL.*/
669 tANI_U16 uCfgId;
670
Jeff Johnson32d95a32012-09-10 13:15:23 -0700671 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700672 * in the TLV format.*/
673 tANI_U16 uCfgLen;
674
675 /* Padding bytes for unaligned address's */
676 tANI_U16 uCfgPadBytes;
677
678 /* Reserve bytes for making cfgVal to align address */
679 tANI_U16 uCfgReserve;
680
681 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
682 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
683} tHalCfg, *tpHalCfg;
684
685/*---------------------------------------------------------------------------
686 WLAN_HAL_START_REQ
687---------------------------------------------------------------------------*/
688
689typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
690{
691 /* Drive Type - Production or FTM etc */
692 tDriverType driverType;
693
694 /*Length of the config buffer*/
695 tANI_U32 uConfigBufferLen;
696
Jeff Johnson32d95a32012-09-10 13:15:23 -0700697 /* Following this there is a TLV formatted buffer of length
698 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700699 * The TLV is expected to be formatted like this:
700 * 0 15 31 31+CFG_LEN-1 length-1
701 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
702 */
703} tHalMacStartParameters, *tpHalMacStartParameters;
704
705typedef PACKED_PRE struct PACKED_POST
706{
707 /* Note: The length specified in tHalMacStartReqMsg messages should be
708 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
709 tHalMsgHeader header;
710 tHalMacStartParameters startReqParams;
711} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
712
713/*---------------------------------------------------------------------------
714 WLAN_HAL_START_RSP
715---------------------------------------------------------------------------*/
716
717typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
718{
719 /*success or failure */
720 tANI_U16 status;
721
722 /*Max number of STA supported by the device*/
723 tANI_U8 ucMaxStations;
724
725 /*Max number of BSS supported by the device*/
726 tANI_U8 ucMaxBssids;
727
728 /*API Version */
729 tWcnssWlanVersion wcnssWlanVersion;
730
731 /*CRM build information */
732 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
733
734 /*hardware/chipset/misc version information */
735 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
736
737} tHalMacStartRspParams, *tpHalMacStartRspParams;
738
739typedef PACKED_PRE struct PACKED_POST
740{
741 tHalMsgHeader header;
742 tHalMacStartRspParams startRspParams;
743} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
744
745/*---------------------------------------------------------------------------
746 WLAN_HAL_STOP_REQ
747---------------------------------------------------------------------------*/
748
749typedef PACKED_PRE struct PACKED_POST
750{
751 /*The reason for which the device is being stopped*/
752 tHalStopType reason;
753
754}tHalMacStopReqParams, *tpHalMacStopReqParams;
755
756typedef PACKED_PRE struct PACKED_POST
757{
758 tHalMsgHeader header;
759 tHalMacStopReqParams stopReqParams;
760} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
761
762/*---------------------------------------------------------------------------
763 WLAN_HAL_STOP_RSP
764---------------------------------------------------------------------------*/
765
766typedef PACKED_PRE struct PACKED_POST
767{
768 /*success or failure */
769 tANI_U32 status;
770
771}tHalMacStopRspParams, *tpHalMacStopRspParams;
772
773typedef PACKED_PRE struct PACKED_POST
774{
775 tHalMsgHeader header;
776 tHalMacStopRspParams stopRspParams;
777} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
778
779/*---------------------------------------------------------------------------
780 WLAN_HAL_UPDATE_CFG_REQ
781---------------------------------------------------------------------------*/
782
783typedef PACKED_PRE struct PACKED_POST
784{
785 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
786 tANI_U32 uConfigBufferLen;
787
Jeff Johnson32d95a32012-09-10 13:15:23 -0700788 /* Following this there is a TLV formatted buffer of length
789 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700790 * The TLV is expected to be formatted like this:
791 * 0 15 31 31+CFG_LEN-1 length-1
792 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
793 */
794} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
795
796typedef PACKED_PRE struct PACKED_POST
797{
798 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
799 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
800 tHalMsgHeader header;
801 tHalUpdateCfgReqParams updateCfgReqParams;
802} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
803
804/*---------------------------------------------------------------------------
805 WLAN_HAL_UPDATE_CFG_RSP
806---------------------------------------------------------------------------*/
807
808typedef PACKED_PRE struct PACKED_POST
809{
810 /* success or failure */
811 tANI_U32 status;
812
813}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
814
815typedef PACKED_PRE struct PACKED_POST
816{
817 tHalMsgHeader header;
818 tHalUpdateCfgRspParams updateCfgRspParams;
819} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
820
821/*---------------------------------------------------------------------------
822 WLAN_HAL_INIT_SCAN_REQ
823---------------------------------------------------------------------------*/
824
825/// Frame control field format (2 bytes)
826typedef __ani_attr_pre_packed struct sSirMacFrameCtl
827{
828
829#ifndef ANI_LITTLE_BIT_ENDIAN
830
831 tANI_U8 subType :4;
832 tANI_U8 type :2;
833 tANI_U8 protVer :2;
834
835 tANI_U8 order :1;
836 tANI_U8 wep :1;
837 tANI_U8 moreData :1;
838 tANI_U8 powerMgmt :1;
839 tANI_U8 retry :1;
840 tANI_U8 moreFrag :1;
841 tANI_U8 fromDS :1;
842 tANI_U8 toDS :1;
843
844#else
845
846 tANI_U8 protVer :2;
847 tANI_U8 type :2;
848 tANI_U8 subType :4;
849
850 tANI_U8 toDS :1;
851 tANI_U8 fromDS :1;
852 tANI_U8 moreFrag :1;
853 tANI_U8 retry :1;
854 tANI_U8 powerMgmt :1;
855 tANI_U8 moreData :1;
856 tANI_U8 wep :1;
857 tANI_U8 order :1;
858
859#endif
860
861} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
862
863/// Sequence control field
864typedef __ani_attr_pre_packed struct sSirMacSeqCtl
865{
866 tANI_U8 fragNum : 4;
867 tANI_U8 seqNumLo : 4;
868 tANI_U8 seqNumHi : 8;
869} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
870
871/// Management header format
872typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
873{
874 tSirMacFrameCtl fc;
875 tANI_U8 durationLo;
876 tANI_U8 durationHi;
877 tANI_U8 da[6];
878 tANI_U8 sa[6];
879 tANI_U8 bssId[6];
880 tSirMacSeqCtl seqControl;
881} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
882
883/// Scan Entry to hold active BSS idx's
884typedef __ani_attr_pre_packed struct sSirScanEntry
885{
886 tANI_U8 bssIdx[HAL_NUM_BSSID];
887 tANI_U8 activeBSScnt;
888}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
889
890typedef PACKED_PRE struct PACKED_POST {
891
892 /*LEARN - AP Role
893 SCAN - STA Role*/
894 eHalSysMode scanMode;
895
896 /*BSSID of the BSS*/
897 tSirMacAddr bssid;
898
899 /*Whether BSS needs to be notified*/
900 tANI_U8 notifyBss;
901
902 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
903 CTS to Self). Must always be a valid frame type.*/
904 tANI_U8 frameType;
905
906 /*UMAC has the option of passing the MAC frame to be used for notifying
907 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
908 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
909 frameType.*/
910 tANI_U8 frameLength;
911
Jeff Johnson32d95a32012-09-10 13:15:23 -0700912 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700913 is non-zero. */
914 tSirMacMgmtHdr macMgmtHdr;
915
916 /*Entry to hold number of active BSS idx's*/
917 tSirScanEntry scanEntry;
918
919} tInitScanParams, * tpInitScanParams;
920
921typedef PACKED_PRE struct PACKED_POST
922{
923 tHalMsgHeader header;
924 tInitScanParams initScanParams;
925} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
926
927typedef PACKED_PRE struct PACKED_POST {
928
929 /*LEARN - AP Role
930 SCAN - STA Role*/
931 eHalSysMode scanMode;
932
933 /*BSSID of the BSS*/
934 tSirMacAddr bssid;
935
936 /*Whether BSS needs to be notified*/
937 tANI_U8 notifyBss;
938
939 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
940 CTS to Self). Must always be a valid frame type.*/
941 tANI_U8 frameType;
942
943 /*UMAC has the option of passing the MAC frame to be used for notifying
944 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
945 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
946 frameType.*/
947 tANI_U8 frameLength;
948
Jeff Johnson32d95a32012-09-10 13:15:23 -0700949 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700950 is non-zero. */
951 tSirMacMgmtHdr macMgmtHdr;
952
953 /*Entry to hold number of active BSS idx's*/
954 tSirScanEntry scanEntry;
955
956 /* Single NoA usage in Scanning */
957 tANI_U8 useNoA;
958
959 /* Indicates the scan duration (in ms) */
960 tANI_U16 scanDuration;
961
962} tInitScanConParams, * tpInitScanConParams;
963
964typedef PACKED_PRE struct PACKED_POST
965{
966 tHalMsgHeader header;
967 tInitScanConParams initScanParams;
968} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
969
970
971/*---------------------------------------------------------------------------
972 WLAN_HAL_INIT_SCAN_RSP
973---------------------------------------------------------------------------*/
974
975typedef PACKED_PRE struct PACKED_POST
976{
977 /*success or failure */
978 tANI_U32 status;
979
980}tHalInitScanRspParams, *tpHalInitScanRspParams;
981
982typedef PACKED_PRE struct PACKED_POST
983{
984 tHalMsgHeader header;
985 tHalInitScanRspParams initScanRspParams;
986} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
987
988/*---------------------------------------------------------------------------
989 WLAN_HAL_START_SCAN_REQ
990---------------------------------------------------------------------------*/
991
Jeff Johnson32d95a32012-09-10 13:15:23 -0700992typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -0700993{
994 /*Indicates the channel to scan*/
995 tANI_U8 scanChannel;
996
997 } tStartScanParams, * tpStartScanParams;
998
999typedef PACKED_PRE struct PACKED_POST
1000{
1001 tHalMsgHeader header;
1002 tStartScanParams startScanParams;
1003} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1004
1005/*---------------------------------------------------------------------------
1006 WLAN_HAL_START_SCAN_RSP
1007---------------------------------------------------------------------------*/
1008
1009typedef PACKED_PRE struct PACKED_POST
1010{
1011 /*success or failure */
1012 tANI_U32 status;
1013
1014 tANI_U32 startTSF[2];
1015 tPowerdBm txMgmtPower;
1016
1017}tHalStartScanRspParams, *tpHalStartScanRspParams;
1018
1019typedef PACKED_PRE struct PACKED_POST
1020{
1021 tHalMsgHeader header;
1022 tHalStartScanRspParams startScanRspParams;
1023} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1024
1025/*---------------------------------------------------------------------------
1026 WLAN_HAL_END_SCAN_REQ
1027---------------------------------------------------------------------------*/
1028
1029typedef PACKED_PRE struct PACKED_POST
1030{
1031 /*Indicates the channel to stop scanning. Not used really. But retained
1032 for symmetry with "start Scan" message. It can also help in error
1033 check if needed.*/
1034 tANI_U8 scanChannel;
1035
1036} tEndScanParams, *tpEndScanParams;
1037
1038typedef PACKED_PRE struct PACKED_POST
1039{
1040 tHalMsgHeader header;
1041 tEndScanParams endScanParams;
1042} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1043
1044/*---------------------------------------------------------------------------
1045 WLAN_HAL_END_SCAN_RSP
1046---------------------------------------------------------------------------*/
1047
1048typedef PACKED_PRE struct PACKED_POST
1049{
1050 /*success or failure */
1051 tANI_U32 status;
1052
1053}tHalEndScanRspParams, *tpHalEndScanRspParams;
1054
1055typedef PACKED_PRE struct PACKED_POST
1056{
1057 tHalMsgHeader header;
1058 tHalEndScanRspParams endScanRspParams;
1059} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1060
1061/*---------------------------------------------------------------------------
1062 WLAN_HAL_FINISH_SCAN_REQ
1063---------------------------------------------------------------------------*/
1064
1065typedef PACKED_PRE struct PACKED_POST
1066{
1067 /* Identifies the operational state of the AP/STA
1068 * LEARN - AP Role SCAN - STA Role */
1069 eHalSysMode scanMode;
1070
1071 /*Operating channel to tune to.*/
1072 tANI_U8 currentOperChannel;
1073
1074 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1075 40 MHz extension channel in combination with the control channel*/
1076 ePhyChanBondState cbState;
1077
1078 /*BSSID of the BSS*/
1079 tSirMacAddr bssid;
1080
1081 /*Whether BSS needs to be notified*/
1082 tANI_U8 notifyBss;
1083
1084 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1085 CTS to Self). Must always be a valid frame type.*/
1086 tANI_U8 frameType;
1087
1088 /*UMAC has the option of passing the MAC frame to be used for notifying
1089 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1090 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1091 frameType.*/
1092 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001093
1094 /*Following the framelength there is a MAC frame buffer if frameLength
1095 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001096 tSirMacMgmtHdr macMgmtHdr;
1097
1098 /*Entry to hold number of active BSS idx's*/
1099 tSirScanEntry scanEntry;
1100
1101} tFinishScanParams, *tpFinishScanParams;
1102
1103typedef PACKED_PRE struct PACKED_POST
1104{
1105 tHalMsgHeader header;
1106 tFinishScanParams finishScanParams;
1107} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1108
1109/*---------------------------------------------------------------------------
1110 WLAN_HAL_FINISH_SCAN_RSP
1111---------------------------------------------------------------------------*/
1112
1113typedef PACKED_PRE struct PACKED_POST
1114{
1115 /*success or failure */
1116 tANI_U32 status;
1117
1118}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1119
1120typedef PACKED_PRE struct PACKED_POST
1121{
1122 tHalMsgHeader header;
1123 tHalFinishScanRspParams finishScanRspParams;
1124} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1125
1126/*---------------------------------------------------------------------------
1127 WLAN_HAL_CONFIG_STA_REQ
1128---------------------------------------------------------------------------*/
1129
1130typedef PACKED_PRE struct PACKED_POST {
1131 /*
1132 * For Self STA Entry: this represents Self Mode.
1133 * For Peer Stations, this represents the mode of the peer.
1134 * On Station:
1135 * --this mode is updated when PE adds the Self Entry.
1136 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1137 * ON AP:
1138 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1139 * to indicate the self mode of the AP.
1140 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1141 */
1142
1143 tStaRateMode opRateMode;
1144 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1145 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1146 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1147 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1148 tANI_U16 reserved;
1149
1150 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1151 //First 26 bits are reserved for those Titan rates and
1152 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1153 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1154
1155 /*
1156 * 0-76 bits used, remaining reserved
1157 * bits 0-15 and 32 should be set.
1158 */
1159 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1160
1161 /*
1162 * RX Highest Supported Data Rate defines the highest data
1163 * rate that the STA is able to receive, in unites of 1Mbps.
1164 * This value is derived from "Supported MCS Set field" inside
1165 * the HT capability element.
1166 */
1167 tANI_U16 rxHighestDataRate;
1168
1169} tSirSupportedRates, *tpSirSupportedRates;
1170
1171typedef PACKED_PRE struct PACKED_POST
1172{
1173 /*BSSID of STA*/
1174 tSirMacAddr bssId;
1175
1176 /*ASSOC ID, as assigned by UMAC*/
1177 tANI_U16 assocId;
1178
1179 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1180 tANI_U8 staType;
1181
1182 /*Short Preamble Supported.*/
1183 tANI_U8 shortPreambleSupported;
1184
1185 /*MAC Address of STA*/
1186 tSirMacAddr staMac;
1187
1188 /*Listen interval of the STA*/
1189 tANI_U16 listenInterval;
1190
1191 /*Support for 11e/WMM*/
1192 tANI_U8 wmmEnabled;
1193
1194 /*11n HT capable STA*/
1195 tANI_U8 htCapable;
1196
1197 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1198 tANI_U8 txChannelWidthSet;
1199
1200 /*RIFS mode 0 - NA, 1 - Allowed */
1201 tANI_U8 rifsMode;
1202
Jeff Johnson32d95a32012-09-10 13:15:23 -07001203 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001204 0 - No Support, 1 - Supported
1205 SG - there is global field */
1206 tANI_U8 lsigTxopProtection;
1207
1208 /*Max Ampdu Size supported by STA. TPE programming.
1209 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1210 tANI_U8 maxAmpduSize;
1211
1212 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1213 tANI_U8 maxAmpduDensity;
1214
1215 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1216 tANI_U8 maxAmsduSize;
1217
1218 /*Short GI support for 40Mhz packets*/
1219 tANI_U8 fShortGI40Mhz;
1220
1221 /*Short GI support for 20Mhz packets*/
1222 tANI_U8 fShortGI20Mhz;
1223
Jeff Johnson295189b2012-06-20 16:38:30 -07001224 /*Robust Management Frame (RMF) enabled/disabled*/
1225 tANI_U8 rmfEnabled;
1226
1227 /* The unicast encryption type in the association */
1228 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001229
1230 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001231 will set this flag in case of RE-ASSOC, where we want to reuse the old
1232 STA ID. 0 = Add, 1 = Update*/
1233 tANI_U8 action;
1234
1235 /*U-APSD Flags: 1b per AC. Encoded as follows:
1236 b7 b6 b5 b4 b3 b2 b1 b0 =
1237 X X X X BE BK VI VO */
1238 tANI_U8 uAPSD;
1239
1240 /*Max SP Length*/
1241 tANI_U8 maxSPLen;
1242
1243 /*11n Green Field preamble support
1244 0 - Not supported, 1 - Supported */
1245 tANI_U8 greenFieldCapable;
1246
1247 /*MIMO Power Save mode*/
1248 tSirMacHTMIMOPowerSaveState mimoPS;
1249
1250 /*Delayed BA Support*/
1251 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001252
Jeff Johnson295189b2012-06-20 16:38:30 -07001253 /*Max AMPDU duration in 32us*/
1254 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001255
Jeff Johnson295189b2012-06-20 16:38:30 -07001256 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1257 it to 0 if AP does not support it. This indication is sent to HAL and
1258 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1259 tANI_U8 fDsssCckMode40Mhz;
1260
1261 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1262 Retained for backward compalibity with existing HAL code*/
1263 tANI_U8 staIdx;
1264
1265 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1266 Retained for backward compalibity with existing HAL code*/
1267 tANI_U8 bssIdx;
1268
1269 tANI_U8 p2pCapableSta;
1270
Jeff Johnsone7245742012-09-05 17:12:55 -07001271 /*Reserved to align next field on a dword boundary*/
1272 tANI_U8 reserved;
1273
1274 /*These rates are the intersection of peer and self capabilities.*/
1275 tSirSupportedRates supportedRates;
1276
Jeff Johnson295189b2012-06-20 16:38:30 -07001277} tConfigStaParams, *tpConfigStaParams;
1278
Jeff Johnsone7245742012-09-05 17:12:55 -07001279/*------------------------------------------------------------------------
1280 * WLAN_HAL_CONFIG_STA_REQ
1281 * ----------------------------------------------------------------------*/
1282
1283typedef PACKED_PRE struct PACKED_POST {
1284 /*
1285 * For Self STA Entry: this represents Self Mode.
1286 * For Peer Stations, this represents the mode of the peer.
1287 * On Station:
1288 * --this mode is updated when PE adds the Self Entry.
1289 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1290 * ON AP:
1291 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1292 * to indicate the self mode of the AP.
1293 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1294 */
1295
1296 tStaRateMode opRateMode;
1297 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1298 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1299 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1300 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1301 tANI_U16 reserved;
1302
1303 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1304 //First 26 bits are reserved for those Titan rates and
1305 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1306 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1307
1308 /*
1309 * 0-76 bits used, remaining reserved
1310 * bits 0-15 and 32 should be set.
1311 */
1312 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1313
1314 /*
1315 * RX Highest Supported Data Rate defines the highest data
1316 * rate that the STA is able to receive, in unites of 1Mbps.
1317 * This value is derived from "Supported MCS Set field" inside
1318 * the HT capability element.
1319 */
1320 tANI_U16 rxHighestDataRate;
1321
1322 /* Indicates the Maximum MCS that can be received for each number
1323 * of spacial streams */
1324 tANI_U16 vhtRxMCSMap;
1325
1326 /*Indicate the highest VHT data rate that the STA is able to receive*/
1327 tANI_U16 vhtRxHighestDataRate;
1328
1329 /* Indicates the Maximum MCS that can be transmitted for each number
1330 * of spacial streams */
1331 tANI_U16 vhtTxMCSMap;
1332
1333 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1334 tANI_U16 vhtTxHighestDataRate;
1335
1336} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1337
1338typedef PACKED_PRE struct PACKED_POST
1339{
1340 /*BSSID of STA*/
1341 tSirMacAddr bssId;
1342
1343 /*ASSOC ID, as assigned by UMAC*/
1344 tANI_U16 assocId;
1345
1346 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1347 tANI_U8 staType;
1348
1349 /*Short Preamble Supported.*/
1350 tANI_U8 shortPreambleSupported;
1351
1352 /*MAC Address of STA*/
1353 tSirMacAddr staMac;
1354
1355 /*Listen interval of the STA*/
1356 tANI_U16 listenInterval;
1357
1358 /*Support for 11e/WMM*/
1359 tANI_U8 wmmEnabled;
1360
1361 /*11n HT capable STA*/
1362 tANI_U8 htCapable;
1363
1364 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1365 tANI_U8 txChannelWidthSet;
1366
1367 /*RIFS mode 0 - NA, 1 - Allowed */
1368 tANI_U8 rifsMode;
1369
1370 /*L-SIG TXOP Protection mechanism
1371 0 - No Support, 1 - Supported
1372 SG - there is global field */
1373 tANI_U8 lsigTxopProtection;
1374
1375 /*Max Ampdu Size supported by STA. TPE programming.
1376 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1377 tANI_U8 maxAmpduSize;
1378
1379 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1380 tANI_U8 maxAmpduDensity;
1381
1382 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1383 tANI_U8 maxAmsduSize;
1384
1385 /*Short GI support for 40Mhz packets*/
1386 tANI_U8 fShortGI40Mhz;
1387
1388 /*Short GI support for 20Mhz packets*/
1389 tANI_U8 fShortGI20Mhz;
1390
1391 /*Robust Management Frame (RMF) enabled/disabled*/
1392 tANI_U8 rmfEnabled;
1393
1394 /* The unicast encryption type in the association */
1395 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001396
1397 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001398 will set this flag in case of RE-ASSOC, where we want to reuse the old
1399 STA ID. 0 = Add, 1 = Update*/
1400 tANI_U8 action;
1401
1402 /*U-APSD Flags: 1b per AC. Encoded as follows:
1403 b7 b6 b5 b4 b3 b2 b1 b0 =
1404 X X X X BE BK VI VO */
1405 tANI_U8 uAPSD;
1406
1407 /*Max SP Length*/
1408 tANI_U8 maxSPLen;
1409
1410 /*11n Green Field preamble support
1411 0 - Not supported, 1 - Supported */
1412 tANI_U8 greenFieldCapable;
1413
1414 /*MIMO Power Save mode*/
1415 tSirMacHTMIMOPowerSaveState mimoPS;
1416
1417 /*Delayed BA Support*/
1418 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001419
Jeff Johnsone7245742012-09-05 17:12:55 -07001420 /*Max AMPDU duration in 32us*/
1421 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001422
Jeff Johnsone7245742012-09-05 17:12:55 -07001423 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1424 it to 0 if AP does not support it. This indication is sent to HAL and
1425 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1426 tANI_U8 fDsssCckMode40Mhz;
1427
1428 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1429 Retained for backward compalibity with existing HAL code*/
1430 tANI_U8 staIdx;
1431
1432 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1433 Retained for backward compalibity with existing HAL code*/
1434 tANI_U8 bssIdx;
1435
1436 tANI_U8 p2pCapableSta;
1437
1438 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001439 tANI_U8 htLdpcEnabled:1;
1440 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001441 tANI_U8 vhtTxBFEnabled:1;
1442 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001443
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001444 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001445 tSirSupportedRates_V1 supportedRates;
1446
1447 tANI_U8 vhtCapable;
1448 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001449
Jeff Johnsone7245742012-09-05 17:12:55 -07001450} tConfigStaParams_V1, *tpConfigStaParams_V1;
1451
Jeff Johnson295189b2012-06-20 16:38:30 -07001452typedef PACKED_PRE struct PACKED_POST
1453{
1454 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001455 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001456 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001457 tConfigStaParams_V1 configStaParams_V1;
1458 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001459} tConfigStaReqMsg, *tpConfigStaReqMsg;
1460
1461/*---------------------------------------------------------------------------
1462 WLAN_HAL_CONFIG_STA_RSP
1463---------------------------------------------------------------------------*/
1464
1465typedef PACKED_PRE struct PACKED_POST
1466{
1467 /*success or failure */
1468 tANI_U32 status;
1469
1470 /* Station index; valid only when 'status' field value SUCCESS */
1471 tANI_U8 staIdx;
1472
1473 /* BSSID Index of BSS to which the station is associated */
1474 tANI_U8 bssIdx;
1475
1476 /* DPU Index for PTK */
1477 tANI_U8 dpuIndex;
1478
Jeff Johnson32d95a32012-09-10 13:15:23 -07001479 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001480 tANI_U8 bcastDpuIndex;
1481
1482 /*DPU Index for IGTK */
1483 tANI_U8 bcastMgmtDpuIdx;
1484
1485 /*PTK DPU signature*/
1486 tANI_U8 ucUcastSig;
1487
1488 /*GTK DPU isignature*/
1489 tANI_U8 ucBcastSig;
1490
1491 /* IGTK DPU signature*/
1492 tANI_U8 ucMgmtSig;
1493
1494 tANI_U8 p2pCapableSta;
1495
1496}tConfigStaRspParams, *tpConfigStaRspParams;
1497
1498typedef PACKED_PRE struct PACKED_POST
1499{
1500 tHalMsgHeader header;
1501 tConfigStaRspParams configStaRspParams;
1502}tConfigStaRspMsg, *tpConfigStaRspMsg;
1503
1504/*---------------------------------------------------------------------------
1505 WLAN_HAL_DELETE_STA_REQ
1506---------------------------------------------------------------------------*/
1507
1508/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001509typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001510{
1511 /* Index of STA to delete */
1512 tANI_U8 staIdx;
1513} tDeleteStaParams, *tpDeleteStaParams;
1514
1515/* Delete STA Request message*/
1516typedef PACKED_PRE struct PACKED_POST
1517{
1518 tHalMsgHeader header;
1519 tDeleteStaParams delStaParams;
1520} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1521
1522/*---------------------------------------------------------------------------
1523 WLAN_HAL_DELETE_STA_RSP
1524---------------------------------------------------------------------------*/
1525
1526/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001527typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001528{
1529 /*success or failure */
1530 tANI_U32 status;
1531
1532 /* Index of STA deleted */
1533 tANI_U8 staId;
1534} tDeleteStaRspParams, *tpDeleteStaRspParams;
1535
1536/* Delete STA Response message*/
1537typedef PACKED_PRE struct PACKED_POST
1538{
1539 tHalMsgHeader header;
1540 tDeleteStaRspParams delStaRspParams;
1541} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1542
1543/*---------------------------------------------------------------------------
1544 WLAN_HAL_CONFIG_BSS_REQ
1545---------------------------------------------------------------------------*/
1546
1547//12 Bytes long because this structure can be used to represent rate
1548//and extended rate set IEs. The parser assume this to be at least 12
1549typedef __ani_attr_pre_packed struct sSirMacRateSet
1550{
1551 tANI_U8 numRates;
1552 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1553} __ani_attr_packed tSirMacRateSet;
1554
1555// access category record
1556typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1557{
1558#ifndef ANI_LITTLE_BIT_ENDIAN
1559 tANI_U8 rsvd : 1;
1560 tANI_U8 aci : 2;
1561 tANI_U8 acm : 1;
1562 tANI_U8 aifsn : 4;
1563#else
1564 tANI_U8 aifsn : 4;
1565 tANI_U8 acm : 1;
1566 tANI_U8 aci : 2;
1567 tANI_U8 rsvd : 1;
1568#endif
1569} __ani_attr_packed tSirMacAciAifsn;
1570
1571// contention window size
1572typedef __ani_attr_pre_packed struct sSirMacCW
1573{
1574#ifndef ANI_LITTLE_BIT_ENDIAN
1575 tANI_U8 max : 4;
1576 tANI_U8 min : 4;
1577#else
1578 tANI_U8 min : 4;
1579 tANI_U8 max : 4;
1580#endif
1581} __ani_attr_packed tSirMacCW;
1582
1583typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1584{
1585 tSirMacAciAifsn aci;
1586 tSirMacCW cw;
1587 tANI_U16 txoplimit;
1588} __ani_attr_packed tSirMacEdcaParamRecord;
1589
1590typedef __ani_attr_pre_packed struct sSirMacSSid
1591{
1592 tANI_U8 length;
1593 tANI_U8 ssId[32];
1594} __ani_attr_packed tSirMacSSid;
1595
1596// Concurrency role. These are generic IDs that identify the various roles
1597// in the software system.
1598typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001599 HAL_STA_MODE=0,
1600 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001601 HAL_P2P_CLIENT_MODE,
1602 HAL_P2P_GO_MODE,
1603 HAL_MONITOR_MODE,
1604} tHalConMode;
1605
1606//This is a bit pattern to be set for each mode
1607//bit 0 - sta mode
1608//bit 1 - ap mode
1609//bit 2 - p2p client mode
1610//bit 3 - p2p go mode
1611typedef enum
1612{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001613 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001614 HAL_SAP=2,
1615 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1616 HAL_P2P_CLIENT=4,
1617 HAL_P2P_GO=8,
1618 HAL_MAX_CONCURRENCY_PERSONA=4
1619} tHalConcurrencyMode;
1620
1621typedef PACKED_PRE struct PACKED_POST
1622{
1623 /* BSSID */
1624 tSirMacAddr bssId;
1625
Jeff Johnson295189b2012-06-20 16:38:30 -07001626 /* Self Mac Address */
1627 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001628
1629 /* BSS type */
1630 tSirBssType bssType;
1631
1632 /*Operational Mode: AP =0, STA = 1*/
1633 tANI_U8 operMode;
1634
1635 /*Network Type*/
1636 tSirNwType nwType;
1637
1638 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1639 tANI_U8 shortSlotTimeSupported;
1640
1641 /*Co-exist with 11a STA*/
1642 tANI_U8 llaCoexist;
1643
1644 /*Co-exist with 11b STA*/
1645 tANI_U8 llbCoexist;
1646
1647 /*Co-exist with 11g STA*/
1648 tANI_U8 llgCoexist;
1649
1650 /*Coexistence with 11n STA*/
1651 tANI_U8 ht20Coexist;
1652
1653 /*Non GF coexist flag*/
1654 tANI_U8 llnNonGFCoexist;
1655
1656 /*TXOP protection support*/
1657 tANI_U8 fLsigTXOPProtectionFullSupport;
1658
1659 /*RIFS mode*/
1660 tANI_U8 fRIFSMode;
1661
1662 /*Beacon Interval in TU*/
1663 tSirMacBeaconInterval beaconInterval;
1664
1665 /*DTIM period*/
1666 tANI_U8 dtimPeriod;
1667
1668 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1669 tANI_U8 txChannelWidthSet;
1670
1671 /*Operating channel*/
1672 tANI_U8 currentOperChannel;
1673
1674 /*Extension channel for channel bonding*/
1675 tANI_U8 currentExtChannel;
1676
1677 /*Reserved to align next field on a dword boundary*/
1678 tANI_U8 reserved;
1679
Jeff Johnsone7245742012-09-05 17:12:55 -07001680 /*SSID of the BSS*/
1681 tSirMacSSid ssId;
1682
1683 /*HAL should update the existing BSS entry, if this flag is set.
1684 UMAC will set this flag in case of reassoc, where we want to resue the
1685 the old BSSID and still return success 0 = Add, 1 = Update*/
1686 tANI_U8 action;
1687
1688 /* MAC Rate Set */
1689 tSirMacRateSet rateSet;
1690
1691 /*Enable/Disable HT capabilities of the BSS*/
1692 tANI_U8 htCapable;
1693
1694 // Enable/Disable OBSS protection
1695 tANI_U8 obssProtEnabled;
1696
1697 /*RMF enabled/disabled*/
1698 tANI_U8 rmfEnabled;
1699
1700 /*HT Operating Mode operating mode of the 802.11n STA*/
1701 tSirMacHTOperatingMode htOperMode;
1702
1703 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1704 tANI_U8 dualCTSProtection;
1705
1706 /* Probe Response Max retries */
1707 tANI_U8 ucMaxProbeRespRetryLimit;
1708
1709 /* To Enable Hidden ssid */
1710 tANI_U8 bHiddenSSIDEn;
1711
1712 /* To Enable Disable FW Proxy Probe Resp */
1713 tANI_U8 bProxyProbeRespEn;
1714
1715 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1716 EDCA params or might not desire to apply EDCA params during config BSS.
1717 0 implies Not Valid ; Non-Zero implies valid*/
1718 tANI_U8 edcaParamsValid;
1719
1720 /*EDCA Parameters for Best Effort Access Category*/
1721 tSirMacEdcaParamRecord acbe;
1722
1723 /*EDCA Parameters forBackground Access Category*/
1724 tSirMacEdcaParamRecord acbk;
1725
1726 /*EDCA Parameters for Video Access Category*/
1727 tSirMacEdcaParamRecord acvi;
1728
1729 /*EDCA Parameters for Voice Access Category*/
1730 tSirMacEdcaParamRecord acvo;
1731
1732#ifdef WLAN_FEATURE_VOWIFI_11R
1733 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1734 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1735#endif
1736
1737 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1738 tANI_U8 halPersona;
1739
1740 tANI_U8 bSpectrumMgtEnable;
1741
1742 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1743 tANI_S8 txMgmtPower;
1744 /*maxTxPower has max power to be used after applying the power constraint if any */
1745 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001746 /*Context of the station being added in HW
1747 Add a STA entry for "itself" -
1748 On AP - Add the AP itself in an "STA context"
1749 On STA - Add the AP to which this STA is joining in an "STA context" */
1750 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001751} tConfigBssParams, * tpConfigBssParams;
1752
1753
1754/*--------------------------------------------------------------------------
1755 * WLAN_HAL_CONFIG_BSS_REQ
1756 *--------------------------------------------------------------------------*/
1757typedef PACKED_PRE struct PACKED_POST
1758{
1759 /* BSSID */
1760 tSirMacAddr bssId;
1761
Jeff Johnsone7245742012-09-05 17:12:55 -07001762 /* Self Mac Address */
1763 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001764
1765 /* BSS type */
1766 tSirBssType bssType;
1767
1768 /*Operational Mode: AP =0, STA = 1*/
1769 tANI_U8 operMode;
1770
1771 /*Network Type*/
1772 tSirNwType nwType;
1773
1774 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1775 tANI_U8 shortSlotTimeSupported;
1776
1777 /*Co-exist with 11a STA*/
1778 tANI_U8 llaCoexist;
1779
1780 /*Co-exist with 11b STA*/
1781 tANI_U8 llbCoexist;
1782
1783 /*Co-exist with 11g STA*/
1784 tANI_U8 llgCoexist;
1785
1786 /*Coexistence with 11n STA*/
1787 tANI_U8 ht20Coexist;
1788
1789 /*Non GF coexist flag*/
1790 tANI_U8 llnNonGFCoexist;
1791
1792 /*TXOP protection support*/
1793 tANI_U8 fLsigTXOPProtectionFullSupport;
1794 /*RIFS mode*/
1795 tANI_U8 fRIFSMode;
1796
1797 /*Beacon Interval in TU*/
1798 tSirMacBeaconInterval beaconInterval;
1799
1800 /*DTIM period*/
1801 tANI_U8 dtimPeriod;
1802
1803 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1804 tANI_U8 txChannelWidthSet;
1805
1806 /*Operating channel*/
1807 tANI_U8 currentOperChannel;
1808
1809 /*Extension channel for channel bonding*/
1810 tANI_U8 currentExtChannel;
1811
1812 /*Reserved to align next field on a dword boundary*/
1813 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001814
1815 /*SSID of the BSS*/
1816 tSirMacSSid ssId;
1817
1818 /*HAL should update the existing BSS entry, if this flag is set.
1819 UMAC will set this flag in case of reassoc, where we want to resue the
1820 the old BSSID and still return success 0 = Add, 1 = Update*/
1821 tANI_U8 action;
1822
1823 /* MAC Rate Set */
1824 tSirMacRateSet rateSet;
1825
1826 /*Enable/Disable HT capabilities of the BSS*/
1827 tANI_U8 htCapable;
1828
1829 // Enable/Disable OBSS protection
1830 tANI_U8 obssProtEnabled;
1831
1832 /*RMF enabled/disabled*/
1833 tANI_U8 rmfEnabled;
1834
1835 /*HT Operating Mode operating mode of the 802.11n STA*/
1836 tSirMacHTOperatingMode htOperMode;
1837
1838 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1839 tANI_U8 dualCTSProtection;
1840
1841 /* Probe Response Max retries */
1842 tANI_U8 ucMaxProbeRespRetryLimit;
1843
1844 /* To Enable Hidden ssid */
1845 tANI_U8 bHiddenSSIDEn;
1846
1847 /* To Enable Disable FW Proxy Probe Resp */
1848 tANI_U8 bProxyProbeRespEn;
1849
Jeff Johnson32d95a32012-09-10 13:15:23 -07001850 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1851 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001852 0 implies Not Valid ; Non-Zero implies valid*/
1853 tANI_U8 edcaParamsValid;
1854
1855 /*EDCA Parameters for Best Effort Access Category*/
1856 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001857
Jeff Johnson295189b2012-06-20 16:38:30 -07001858 /*EDCA Parameters forBackground Access Category*/
1859 tSirMacEdcaParamRecord acbk;
1860
1861 /*EDCA Parameters for Video Access Category*/
1862 tSirMacEdcaParamRecord acvi;
1863
1864 /*EDCA Parameters for Voice Access Category*/
1865 tSirMacEdcaParamRecord acvo;
1866
1867#ifdef WLAN_FEATURE_VOWIFI_11R
1868 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1869 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1870#endif
1871
Jeff Johnson32d95a32012-09-10 13:15:23 -07001872 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001873 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001874
Jeff Johnson295189b2012-06-20 16:38:30 -07001875 tANI_U8 bSpectrumMgtEnable;
1876
1877 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1878 tANI_S8 txMgmtPower;
1879 /*maxTxPower has max power to be used after applying the power constraint if any */
1880 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001881 /*Context of the station being added in HW
1882 Add a STA entry for "itself" -
1883 On AP - Add the AP itself in an "STA context"
1884 On STA - Add the AP to which this STA is joining in an "STA context" */
1885 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001886
Jeff Johnsone7245742012-09-05 17:12:55 -07001887 tANI_U8 vhtCapable;
1888 tANI_U8 vhtTxChannelWidthSet;
1889} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001890
1891typedef PACKED_PRE struct PACKED_POST
1892{
1893 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001894 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001895 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001896 tConfigBssParams_V1 configBssParams_V1;
1897 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001898} tConfigBssReqMsg, *tpConfigBssReqMsg;
1899
1900/*---------------------------------------------------------------------------
1901 WLAN_HAL_CONFIG_BSS_RSP
1902---------------------------------------------------------------------------*/
1903
1904typedef PACKED_PRE struct PACKED_POST
1905{
1906 /* Success or Failure */
1907 tANI_U32 status;
1908
1909 /* BSS index allocated by HAL */
1910 tANI_U8 bssIdx;
1911
1912 /* DPU descriptor index for PTK */
1913 tANI_U8 dpuDescIndx;
1914
1915 /* PTK DPU signature */
1916 tANI_U8 ucastDpuSignature;
1917
1918 /* DPU descriptor index for GTK*/
1919 tANI_U8 bcastDpuDescIndx;
1920
1921 /* GTK DPU signature */
1922 tANI_U8 bcastDpuSignature;
1923
1924 /*DPU descriptor for IGTK*/
1925 tANI_U8 mgmtDpuDescIndx;
1926
1927 /* IGTK DPU signature */
1928 tANI_U8 mgmtDpuSignature;
1929
1930 /* Station Index for BSS entry*/
1931 tANI_U8 bssStaIdx;
1932
1933 /* Self station index for this BSS */
1934 tANI_U8 bssSelfStaIdx;
1935
1936 /* Bcast station for buffering bcast frames in AP role */
1937 tANI_U8 bssBcastStaIdx;
1938
1939 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1940 tSirMacAddr staMac;
1941
1942 /*HAL fills in the tx power used for mgmt frames in this field. */
1943 tANI_S8 txMgmtPower;
1944
1945} tConfigBssRspParams, * tpConfigBssRspParams;
1946
1947typedef PACKED_PRE struct PACKED_POST
1948{
1949 tHalMsgHeader header;
1950 tConfigBssRspParams configBssRspParams;
1951} tConfigBssRspMsg, *tpConfigBssRspMsg;
1952
1953/*---------------------------------------------------------------------------
1954 WLAN_HAL_DELETE_BSS_REQ
1955---------------------------------------------------------------------------*/
1956
1957typedef PACKED_PRE struct PACKED_POST
1958{
1959 /* BSS index to be deleted */
1960 tANI_U8 bssIdx;
1961
1962} tDeleteBssParams, *tpDeleteBssParams;
1963
1964typedef PACKED_PRE struct PACKED_POST
1965{
1966 tHalMsgHeader header;
1967 tDeleteBssParams deleteBssParams;
1968} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1969
1970/*---------------------------------------------------------------------------
1971 WLAN_HAL_DELETE_BSS_RSP
1972---------------------------------------------------------------------------*/
1973
1974typedef PACKED_PRE struct PACKED_POST
1975{
1976 /* Success or Failure */
1977 tANI_U32 status;
1978
1979 /* BSS index that has been deleted */
1980 tANI_U8 bssIdx;
1981
1982} tDeleteBssRspParams, *tpDeleteBssRspParams;
1983
1984typedef PACKED_PRE struct PACKED_POST
1985{
1986 tHalMsgHeader header;
1987 tDeleteBssRspParams deleteBssRspParams;
1988} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
1989
1990/*---------------------------------------------------------------------------
1991 WLAN_HAL_JOIN_REQ
1992---------------------------------------------------------------------------*/
1993
1994typedef PACKED_PRE struct PACKED_POST
1995{
1996 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07001997 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001998
1999 /*Indicates the channel to switch to.*/
2000 tANI_U8 ucChannel;
2001
2002 /* Self STA MAC */
2003 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002004
Jeff Johnson295189b2012-06-20 16:38:30 -07002005 /*Local power constraint*/
2006 tANI_U8 ucLocalPowerConstraint;
2007
2008 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002009 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002010
2011 /*link State*/
2012 tSirLinkState linkState;
2013
2014 /* Max TX power */
2015 tANI_S8 maxTxPower;
2016
2017} tHalJoinReqParams, *tpHalJoinReqParams;
2018
2019typedef PACKED_PRE struct PACKED_POST
2020{
2021 tHalMsgHeader header;
2022 tHalJoinReqParams joinReqParams;
2023} tHalJoinReqMsg, *tpHalJoinReqMsg;
2024
2025/*---------------------------------------------------------------------------
2026 WLAN_HAL_JOIN_RSP
2027---------------------------------------------------------------------------*/
2028
2029typedef PACKED_PRE struct PACKED_POST
2030{
2031 /*success or failure */
2032 tANI_U32 status;
2033
2034 /* HAL fills in the tx power used for mgmt frames in this field */
2035 tPowerdBm txMgmtPower;
2036
2037}tHalJoinRspParams, *tpHalJoinRspParams;
2038
2039typedef PACKED_PRE struct PACKED_POST
2040{
2041 tHalMsgHeader header;
2042 tHalJoinRspParams joinRspParams;
2043}tHalJoinRspMsg, *tpHalJoinRspMsg;
2044
2045/*---------------------------------------------------------------------------
2046 WLAN_HAL_POST_ASSOC_REQ
2047---------------------------------------------------------------------------*/
2048
2049typedef PACKED_PRE struct PACKED_POST
2050{
2051 tConfigStaParams configStaParams;
2052 tConfigBssParams configBssParams;
2053} tPostAssocReqParams, *tpPostAssocReqParams;
2054
2055typedef PACKED_PRE struct PACKED_POST
2056{
2057 tHalMsgHeader header;
2058 tPostAssocReqParams postAssocReqParams;
2059} tPostAssocReqMsg, *tpPostAssocReqMsg;
2060
2061/*---------------------------------------------------------------------------
2062 WLAN_HAL_POST_ASSOC_RSP
2063---------------------------------------------------------------------------*/
2064
2065typedef PACKED_PRE struct PACKED_POST
2066{
2067 tConfigStaRspParams configStaRspParams;
2068 tConfigBssRspParams configBssRspParams;
2069} tPostAssocRspParams, *tpPostAssocRspParams;
2070
2071typedef PACKED_PRE struct PACKED_POST
2072{
2073 tHalMsgHeader header;
2074 tPostAssocRspParams postAssocRspParams;
2075} tPostAssocRspMsg, *tpPostAssocRspMsg;
2076
2077/*---------------------------------------------------------------------------
2078 WLAN_HAL_SET_BSSKEY_REQ
2079---------------------------------------------------------------------------*/
2080
2081/*
2082 * This is used by PE to create a set of WEP keys for a given BSS.
2083 */
2084typedef PACKED_PRE struct PACKED_POST
2085{
2086 /*BSS Index of the BSS*/
2087 tANI_U8 bssIdx;
2088
2089 /*Encryption Type used with peer*/
2090 tAniEdType encType;
2091
2092 /*Number of keys*/
2093 tANI_U8 numKeys;
2094
2095 /*Array of keys.*/
2096 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002097
Jeff Johnson295189b2012-06-20 16:38:30 -07002098 /*Control for Replay Count, 1= Single TID based replay count on Tx
2099 0 = Per TID based replay count on TX */
2100 tANI_U8 singleTidRc;
2101} tSetBssKeyParams, *tpSetBssKeyParams;
2102
2103typedef PACKED_PRE struct PACKED_POST
2104{
2105 tHalMsgHeader header;
2106 tSetBssKeyParams setBssKeyParams;
2107} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2108
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002109/* tagged version of set bss key */
2110typedef PACKED_PRE struct PACKED_POST
2111{
2112 tSetBssKeyReqMsg Msg;
2113 uint32 Tag;
2114} tSetBssKeyReqMsgTagged;
2115
Jeff Johnson295189b2012-06-20 16:38:30 -07002116/*---------------------------------------------------------------------------
2117 WLAN_HAL_SET_BSSKEY_RSP
2118---------------------------------------------------------------------------*/
2119typedef PACKED_PRE struct PACKED_POST
2120{
2121 /*success or failure */
2122 tANI_U32 status;
2123
2124} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2125
2126typedef PACKED_PRE struct PACKED_POST
2127{
2128 tHalMsgHeader header;
2129 tSetBssKeyRspParams setBssKeyRspParams;
2130} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2131
2132/*---------------------------------------------------------------------------
2133 WLAN_HAL_SET_STAKEY_REQ,
2134---------------------------------------------------------------------------*/
2135
2136/*
2137 * This is used by PE to configure the key information on a given station.
2138 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2139 * a preconfigured key from a BSS the station assoicated with; otherwise
2140 * a new key descriptor is created based on the key field.
2141 */
2142
2143typedef PACKED_PRE struct PACKED_POST
2144{
2145 tHalMsgHeader header;
2146 tSetStaKeyParams setStaKeyParams;
2147} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2148
2149/*---------------------------------------------------------------------------
2150 WLAN_HAL_SET_STAKEY_RSP,
2151---------------------------------------------------------------------------*/
2152typedef PACKED_PRE struct PACKED_POST
2153{
2154 /*success or failure */
2155 tANI_U32 status;
2156
2157} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2158
2159typedef PACKED_PRE struct PACKED_POST
2160{
2161 tHalMsgHeader header;
2162 tSetStaKeyRspParams setStaKeyRspParams;
2163} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2164
2165/*---------------------------------------------------------------------------
2166 WLAN_HAL_RMV_BSSKEY_REQ,
2167---------------------------------------------------------------------------*/
2168/*
2169 * This is used by PE to remove keys for a given BSS.
2170 */
2171typedef PACKED_PRE struct PACKED_POST
2172
2173{
2174 /*BSS Index of the BSS*/
2175 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002176
Jeff Johnson295189b2012-06-20 16:38:30 -07002177 /*Encryption Type used with peer*/
2178 tAniEdType encType;
2179
2180 /*Key Id*/
2181 tANI_U8 keyId;
2182
2183 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2184 tAniWepType wepType;
2185
2186} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2187
2188typedef PACKED_PRE struct PACKED_POST
2189{
2190 tHalMsgHeader header;
2191 tRemoveBssKeyParams removeBssKeyParams;
2192} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2193
2194/*---------------------------------------------------------------------------
2195 WLAN_HAL_RMV_BSSKEY_RSP,
2196---------------------------------------------------------------------------*/
2197typedef PACKED_PRE struct PACKED_POST
2198{
2199 /*success or failure */
2200 tANI_U32 status;
2201
2202} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2203
2204typedef PACKED_PRE struct PACKED_POST
2205{
2206 tHalMsgHeader header;
2207 tRemoveBssKeyRspParams removeBssKeyRspParams;
2208} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2209
2210/*---------------------------------------------------------------------------
2211 WLAN_HAL_RMV_STAKEY_REQ,
2212---------------------------------------------------------------------------*/
2213/*
2214 * This is used by PE to Remove the key information on a given station.
2215 */
2216typedef PACKED_PRE struct PACKED_POST
2217{
2218 /*STA Index*/
2219 tANI_U16 staIdx;
2220
2221 /*Encryption Type used with peer*/
2222 tAniEdType encType;
2223
2224 /*Key Id*/
2225 tANI_U8 keyId;
2226
2227 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2228 the same key is used for both broadcast and unicast.*/
2229 tANI_BOOLEAN unicast;
2230
2231} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2232
2233typedef PACKED_PRE struct PACKED_POST
2234{
2235 tHalMsgHeader header;
2236 tRemoveStaKeyParams removeStaKeyParams;
2237} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2238
2239/*---------------------------------------------------------------------------
2240 WLAN_HAL_RMV_STAKEY_RSP,
2241---------------------------------------------------------------------------*/
2242typedef PACKED_PRE struct PACKED_POST
2243{
2244 /*success or failure */
2245 tANI_U32 status;
2246} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2247
2248typedef PACKED_PRE struct PACKED_POST
2249{
2250 tHalMsgHeader header;
2251 tRemoveStaKeyRspParams removeStaKeyRspParams;
2252} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2253
Jeff Johnsone7245742012-09-05 17:12:55 -07002254#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002255
Jeff Johnsone7245742012-09-05 17:12:55 -07002256#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002257#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002258#endif
2259
2260#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002261#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002262#endif
2263
2264/*-------------------------------------------------------------------------
2265WLAN_HAL_START_OEM_DATA_REQ
2266--------------------------------------------------------------------------*/
2267typedef PACKED_PRE struct PACKED_POST
2268{
2269 tANI_U32 status;
2270 tSirMacAddr selfMacAddr;
2271 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2272} tStartOemDataReqParams, *tpStartOemDataReqParams;
2273
2274typedef PACKED_PRE struct PACKED_POST
2275{
2276 tHalMsgHeader header;
2277 tStartOemDataReqParams startOemDataReqParams;
2278} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2279
2280/*-------------------------------------------------------------------------
2281WLAN_HAL_START_OEM_DATA_RSP
2282--------------------------------------------------------------------------*/
2283
2284typedef PACKED_PRE struct PACKED_POST
2285{
2286 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2287} tStartOemDataRspParams, *tpStartOemDataRspParams;
2288
2289typedef PACKED_PRE struct PACKED_POST
2290{
2291 tHalMsgHeader header;
2292 tStartOemDataRspParams startOemDataRspParams;
2293} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2294
2295#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002296
2297
2298
2299/*---------------------------------------------------------------------------
2300WLAN_HAL_CH_SWITCH_REQ
2301---------------------------------------------------------------------------*/
2302
2303typedef PACKED_PRE struct PACKED_POST
2304{
2305 /* Channel number */
2306 tANI_U8 channelNumber;
2307
2308 /* Local power constraint */
2309 tANI_U8 localPowerConstraint;
2310
2311 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002312 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002313
2314 //HAL fills in the tx power used for mgmt frames in this field.
2315 tPowerdBm txMgmtPower;
2316
2317 /* Max TX power */
2318 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002319
Jeff Johnson295189b2012-06-20 16:38:30 -07002320 /* Self STA MAC */
2321 tSirMacAddr selfStaMacAddr;
2322
2323 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2324 this should be applied only to that session*/
2325 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2326 * bssid needs to be out of the VOWifi feature flag */
2327 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2328 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2329 */
2330 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002331
Jeff Johnson295189b2012-06-20 16:38:30 -07002332}tSwitchChannelParams, *tpSwitchChannelParams;
2333
2334typedef PACKED_PRE struct PACKED_POST
2335{
2336 tHalMsgHeader header;
2337 tSwitchChannelParams switchChannelParams;
2338} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2339
2340/*---------------------------------------------------------------------------
2341WLAN_HAL_CH_SWITCH_RSP
2342---------------------------------------------------------------------------*/
2343
2344typedef PACKED_PRE struct PACKED_POST
2345{
2346 /* Status */
2347 tANI_U32 status;
2348
2349 /* Channel number - same as in request*/
2350 tANI_U8 channelNumber;
2351
2352 /* HAL fills in the tx power used for mgmt frames in this field */
2353 tPowerdBm txMgmtPower;
2354
2355 /* BSSID needed to identify session - same as in request*/
2356 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002357
Jeff Johnson295189b2012-06-20 16:38:30 -07002358}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2359
2360typedef PACKED_PRE struct PACKED_POST
2361{
2362 tHalMsgHeader header;
2363 tSwitchChannelRspParams switchChannelRspParams;
2364} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2365
2366/*---------------------------------------------------------------------------
2367WLAN_HAL_UPD_EDCA_PARAMS_REQ
2368---------------------------------------------------------------------------*/
2369
2370typedef PACKED_PRE struct PACKED_POST
2371{
2372 /*BSS Index*/
2373 tANI_U16 bssIdx;
2374
2375 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002376 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002377
2378 /* Background */
2379 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002380
Jeff Johnson295189b2012-06-20 16:38:30 -07002381 /* Video */
2382 tSirMacEdcaParamRecord acvi;
2383
2384 /* Voice */
2385 tSirMacEdcaParamRecord acvo;
2386
2387} tEdcaParams, *tpEdcaParams;
2388
2389typedef PACKED_PRE struct PACKED_POST
2390{
2391 tHalMsgHeader header;
2392 tEdcaParams edcaParams;
2393} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2394
2395/*---------------------------------------------------------------------------
2396WLAN_HAL_UPD_EDCA_PARAMS_RSP
2397---------------------------------------------------------------------------*/
2398typedef PACKED_PRE struct PACKED_POST
2399{
2400 /*success or failure */
2401 tANI_U32 status;
2402} tEdcaRspParams, *tpEdcaRspParams;
2403
2404typedef PACKED_PRE struct PACKED_POST
2405{
2406 tHalMsgHeader header;
2407 tEdcaRspParams edcaRspParams;
2408} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2409
2410
2411
2412/*---------------------------------------------------------------------------
2413 * WLAN_HAL_GET_STATS_REQ
2414 *--------------------------------------------------------------------------*/
2415typedef PACKED_PRE struct PACKED_POST
2416
2417{
2418 /* Index of STA to which the statistics */
2419 tANI_U16 staIdx;
2420
2421 /* Encryption mode */
2422 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002423
Jeff Johnson295189b2012-06-20 16:38:30 -07002424 /* status */
2425 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002426
Jeff Johnson295189b2012-06-20 16:38:30 -07002427 /* Statistics */
2428 tANI_U32 sendBlocks;
2429 tANI_U32 recvBlocks;
2430 tANI_U32 replays;
2431 tANI_U8 micErrorCnt;
2432 tANI_U32 protExclCnt;
2433 tANI_U16 formatErrCnt;
2434 tANI_U16 unDecryptableCnt;
2435 tANI_U32 decryptErrCnt;
2436 tANI_U32 decryptOkCnt;
2437} tDpuStatsParams, * tpDpuStatsParams;
2438
2439typedef PACKED_PRE struct PACKED_POST
2440{
2441 /* Valid STA Idx for per STA stats request */
2442 tANI_U32 staId;
2443
2444 /* Categories of stats requested as specified in eHalStatsMask*/
2445 tANI_U32 statsMask;
2446}tHalStatsReqParams, *tpHalStatsReqParams;
2447
2448typedef PACKED_PRE struct PACKED_POST
2449{
2450 tHalMsgHeader header;
2451 tHalStatsReqParams statsReqParams;
2452} tHalStatsReqMsg, *tpHalStatsReqMsg;
2453
2454/*---------------------------------------------------------------------------
2455 * WLAN_HAL_GET_STATS_RSP
2456 *--------------------------------------------------------------------------*/
2457
2458typedef PACKED_PRE struct PACKED_POST
2459{
2460 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2461 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2462 // station successfully transmitted after more than one retransmission attempt
2463
Jeff Johnson32d95a32012-09-10 13:15:23 -07002464 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2465 //(with and without retries, including multi-cast, broadcast)
2466 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2467 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002468 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2469 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2470 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2471 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 -07002472 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2473 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 -07002474 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2475 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 -07002476 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2477 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002478 //to provide this.
2479}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2480
2481
2482// defines tx_rate_flags
2483typedef enum eTxRateInfo
2484{
2485 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2486 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2487 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2488 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2489 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2490} tTxrateinfoflags;
2491
2492
2493typedef PACKED_PRE struct PACKED_POST
2494{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002495 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 -07002496 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002497 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 -07002498 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002499 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2500 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002501 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002502 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2503 //for eg: if it is 10.5dBm, the value would be 105
2504 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2505 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002506
Jeff Johnson32d95a32012-09-10 13:15:23 -07002507 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2508 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002509 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002510 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2511 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002512}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2513
2514typedef PACKED_PRE struct PACKED_POST
2515{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002516 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2517 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002518 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002519 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 -07002520 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002521 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 -07002522 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002523 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 -07002524 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002525 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 -07002526 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002527 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 -07002528 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002529 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 -07002530 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002531 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 -07002532 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002533 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 -07002534 //decrypted
2535 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2536
2537}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002538
Jeff Johnson295189b2012-06-20 16:38:30 -07002539typedef PACKED_PRE struct PACKED_POST
2540{
2541 tAniGlobalSecurityStats ucStats;
2542 tAniGlobalSecurityStats mcbcStats;
2543}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2544
2545typedef PACKED_PRE struct PACKED_POST
2546{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002547 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2548 //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 -07002549 //address 1 field
2550 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 -07002551 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 -07002552 //primary channel
2553 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 -07002554 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 -07002555 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002556 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2557 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002558 //decoded correctly
2559}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2560
2561typedef PACKED_PRE struct PACKED_POST
2562{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002563 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 -07002564 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002565 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2566 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 -07002567 //is transmitted
2568}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2569
2570typedef PACKED_PRE struct PACKED_POST
2571{
2572 /* Success or Failure */
2573 tANI_U32 status;
2574
2575 /* STA Idx */
2576 tANI_U32 staId;
2577
2578 /* Categories of STATS being returned as per eHalStatsMask*/
2579 tANI_U32 statsMask;
2580
2581 /* message type is same as the request type */
2582 tANI_U16 msgType;
2583
2584 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002585 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002586
2587} tHalStatsRspParams, *tpHalStatsRspParams;
2588
2589
2590
2591typedef PACKED_PRE struct PACKED_POST
2592{
2593 tHalMsgHeader header;
2594 tHalStatsRspParams statsRspParams;
2595} tHalStatsRspMsg, *tpHalStatsRspMsg;
2596
2597/*---------------------------------------------------------------------------
2598 * WLAN_HAL_SET_LINK_ST_REQ
2599 *--------------------------------------------------------------------------*/
2600typedef PACKED_PRE struct PACKED_POST
2601{
2602 tSirMacAddr bssid;
2603 tSirLinkState state;
2604 tSirMacAddr selfMacAddr;
2605} tLinkStateParams, *tpLinkStateParams;
2606
2607typedef PACKED_PRE struct PACKED_POST
2608{
2609 tHalMsgHeader header;
2610 tLinkStateParams linkStateParams;
2611} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2612
2613/*---------------------------------------------------------------------------
2614 * WLAN_HAL_SET_LINK_ST_RSP
2615 *--------------------------------------------------------------------------*/
2616
2617typedef PACKED_PRE struct PACKED_POST
2618{
2619 /*success or failure */
2620 tANI_U32 status;
2621} tLinkStateRspParams, *tpLinkStateRspParams;
2622
2623typedef PACKED_PRE struct PACKED_POST
2624{
2625 tHalMsgHeader header;
2626 tLinkStateRspParams linkStateRspParams;
2627} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2628
2629/*---------------------------------------------------------------------------
2630 * WLAN_HAL_ADD_TS_REQ
2631 *--------------------------------------------------------------------------*/
2632
2633/* TSPEC Params */
2634typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2635{
2636#ifndef ANI_LITTLE_BIT_ENDIAN
2637 tANI_U16 ackPolicy : 2;
2638 tANI_U16 userPrio : 3;
2639 tANI_U16 psb : 1;
2640 tANI_U16 aggregation : 1;
2641 tANI_U16 accessPolicy : 2;
2642 tANI_U16 direction : 2;
2643 tANI_U16 tsid : 4;
2644 tANI_U16 trafficType : 1;
2645#else
2646 tANI_U16 trafficType : 1;
2647 tANI_U16 tsid : 4;
2648 tANI_U16 direction : 2;
2649 tANI_U16 accessPolicy : 2;
2650 tANI_U16 aggregation : 1;
2651 tANI_U16 psb : 1;
2652 tANI_U16 userPrio : 3;
2653 tANI_U16 ackPolicy : 2;
2654#endif
2655} __ani_attr_packed tSirMacTSInfoTfc;
2656
2657/* Flag to schedule the traffic type */
2658typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2659{
2660#ifndef ANI_LITTLE_BIT_ENDIAN
2661 tANI_U8 rsvd : 7;
2662 tANI_U8 schedule : 1;
2663#else
2664 tANI_U8 schedule : 1;
2665 tANI_U8 rsvd : 7;
2666#endif
2667} __ani_attr_packed tSirMacTSInfoSch;
2668
2669/* Traffic and scheduling info */
2670typedef __ani_attr_pre_packed struct sSirMacTSInfo
2671{
2672 tSirMacTSInfoTfc traffic;
2673 tSirMacTSInfoSch schedule;
2674} __ani_attr_packed tSirMacTSInfo;
2675
2676/* Information elements */
2677typedef __ani_attr_pre_packed struct sSirMacTspecIE
2678{
2679 tANI_U8 type;
2680 tANI_U8 length;
2681 tSirMacTSInfo tsinfo;
2682 tANI_U16 nomMsduSz;
2683 tANI_U16 maxMsduSz;
2684 tANI_U32 minSvcInterval;
2685 tANI_U32 maxSvcInterval;
2686 tANI_U32 inactInterval;
2687 tANI_U32 suspendInterval;
2688 tANI_U32 svcStartTime;
2689 tANI_U32 minDataRate;
2690 tANI_U32 meanDataRate;
2691 tANI_U32 peakDataRate;
2692 tANI_U32 maxBurstSz;
2693 tANI_U32 delayBound;
2694 tANI_U32 minPhyRate;
2695 tANI_U16 surplusBw;
2696 tANI_U16 mediumTime;
2697}__ani_attr_packed tSirMacTspecIE;
2698
2699typedef PACKED_PRE struct PACKED_POST
2700{
2701 /* Station Index */
2702 tANI_U16 staIdx;
2703
2704 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2705 tANI_U16 tspecIdx;
2706
2707 /* To program TPE with required parameters */
2708 tSirMacTspecIE tspec;
2709
2710 /* U-APSD Flags: 1b per AC. Encoded as follows:
2711 b7 b6 b5 b4 b3 b2 b1 b0 =
2712 X X X X BE BK VI VO */
2713 tANI_U8 uAPSD;
2714
2715 /* These parameters are for all the access categories */
2716 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2717 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2718 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002719
Jeff Johnson295189b2012-06-20 16:38:30 -07002720} tAddTsParams, *tpAddTsParams;
2721
2722typedef PACKED_PRE struct PACKED_POST
2723{
2724 tHalMsgHeader header;
2725 tAddTsParams addTsParams;
2726} tAddTsReqMsg, *tpAddTsReqMsg;
2727
2728/*---------------------------------------------------------------------------
2729 * WLAN_HAL_ADD_TS_RSP
2730 *--------------------------------------------------------------------------*/
2731
2732typedef PACKED_PRE struct PACKED_POST
2733{
2734 /*success or failure */
2735 tANI_U32 status;
2736} tAddTsRspParams, *tpAddTsRspParams;
2737
2738typedef PACKED_PRE struct PACKED_POST
2739{
2740 tHalMsgHeader header;
2741 tAddTsRspParams addTsRspParams;
2742} tAddTsRspMsg, *tpAddTsRspMsg;
2743
2744
2745/*---------------------------------------------------------------------------
2746 * WLAN_HAL_DEL_TS_REQ
2747 *--------------------------------------------------------------------------*/
2748
2749typedef PACKED_PRE struct PACKED_POST
2750{
2751 /* Station Index */
2752 tANI_U16 staIdx;
2753
2754 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2755 tANI_U16 tspecIdx;
2756
2757 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002758 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002759
2760} tDelTsParams, *tpDelTsParams;
2761
2762typedef PACKED_PRE struct PACKED_POST
2763{
2764 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002765 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002766} tDelTsReqMsg, *tpDelTsReqMsg;
2767
2768/*---------------------------------------------------------------------------
2769 * WLAN_HAL_DEL_TS_RSP
2770 *--------------------------------------------------------------------------*/
2771
2772typedef PACKED_PRE struct PACKED_POST
2773{
2774 /*success or failure */
2775 tANI_U32 status;
2776} tDelTsRspParams, *tpDelTsRspParams;
2777
2778typedef PACKED_PRE struct PACKED_POST
2779{
2780 tHalMsgHeader header;
2781 tDelTsRspParams delTsRspParams;
2782} tDelTsRspMsg, *tpDelTsRspMsg;
2783
2784/* End of TSpec Parameters */
2785
2786/* Start of BLOCK ACK related Parameters */
2787
2788/*---------------------------------------------------------------------------
2789 * WLAN_HAL_ADD_BA_SESSION_REQ
2790 *--------------------------------------------------------------------------*/
2791
2792typedef PACKED_PRE struct PACKED_POST
2793{
2794 /* Station Index */
2795 tANI_U16 staIdx;
2796
2797 /* Peer MAC Address */
2798 tSirMacAddr peerMacAddr;
2799
2800 /* ADDBA Action Frame dialog token
2801 HAL will not interpret this object */
2802 tANI_U8 baDialogToken;
2803
2804 /* TID for which the BA is being setup
2805 This identifies the TC or TS of interest */
2806 tANI_U8 baTID;
2807
2808 /* 0 - Delayed BA (Not supported)
2809 1 - Immediate BA */
2810 tANI_U8 baPolicy;
2811
2812 /* Indicates the number of buffers for this TID (baTID)
2813 NOTE - This is the requested buffer size. When this
2814 is processed by HAL and subsequently by HDD, it is
2815 possible that HDD may change this buffer size. Any
2816 change in the buffer size should be noted by PE and
2817 advertized appropriately in the ADDBA response */
2818 tANI_U16 baBufferSize;
2819
2820 /* BA timeout in TU's 0 means no timeout will occur */
2821 tANI_U16 baTimeout;
2822
2823 /* b0..b3 - Fragment Number - Always set to 0
2824 b4..b15 - Starting Sequence Number of first MSDU
2825 for which this BA is setup */
2826 tANI_U16 baSSN;
2827
2828 /* ADDBA direction
2829 1 - Originator
2830 0 - Recipient */
2831 tANI_U8 baDirection;
2832} tAddBASessionParams, *tpAddBASessionParams;
2833
2834typedef PACKED_PRE struct PACKED_POST
2835{
2836 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002837 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002838}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2839
2840/*---------------------------------------------------------------------------
2841 * WLAN_HAL_ADD_BA_SESSION_RSP
2842 *--------------------------------------------------------------------------*/
2843
2844typedef PACKED_PRE struct PACKED_POST
2845{
2846 /*success or failure */
2847 tANI_U32 status;
2848
2849 /* Dialog token */
2850 tANI_U8 baDialogToken;
2851
2852 /* TID for which the BA session has been setup */
2853 tANI_U8 baTID;
2854
2855 /* BA Buffer Size allocated for the current BA session */
2856 tANI_U8 baBufferSize;
2857
2858 tANI_U8 baSessionID;
2859
2860 /* Reordering Window buffer */
2861 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002862
Jeff Johnson295189b2012-06-20 16:38:30 -07002863 /*Station Index to id the sta */
2864 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002865
Jeff Johnson295189b2012-06-20 16:38:30 -07002866 /* Starting Sequence Number */
2867 tANI_U16 SSN;
2868} tAddBASessionRspParams, *tpAddBASessionRspParams;
2869
2870typedef PACKED_PRE struct PACKED_POST
2871{
2872 tHalMsgHeader header;
2873 tAddBASessionRspParams addBASessionRspParams;
2874} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2875
2876/*---------------------------------------------------------------------------
2877 * WLAN_HAL_ADD_BA_REQ
2878 *--------------------------------------------------------------------------*/
2879
2880typedef PACKED_PRE struct PACKED_POST
2881{
2882 /* Session Id */
2883 tANI_U8 baSessionID;
2884
2885 /* Reorder Window Size */
2886 tANI_U8 winSize;
2887
2888#ifdef FEATURE_ON_CHIP_REORDERING
2889 tANI_BOOLEAN isReorderingDoneOnChip;
2890#endif
2891} tAddBAParams, *tpAddBAParams;
2892
2893typedef PACKED_PRE struct PACKED_POST
2894{
2895 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002896 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002897} tAddBAReqMsg, *tpAddBAReqMsg;
2898
2899
2900/*---------------------------------------------------------------------------
2901 * WLAN_HAL_ADD_BA_RSP
2902 *--------------------------------------------------------------------------*/
2903
2904typedef PACKED_PRE struct PACKED_POST
2905{
2906 /*success or failure */
2907 tANI_U32 status;
2908
2909 /* Dialog token */
2910 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002911
Jeff Johnson295189b2012-06-20 16:38:30 -07002912} tAddBARspParams, *tpAddBARspParams;
2913
2914typedef PACKED_PRE struct PACKED_POST
2915{
2916 tHalMsgHeader header;
2917 tAddBARspParams addBARspParams;
2918} tAddBARspMsg, *tpAddBARspMsg;
2919
2920
2921/*---------------------------------------------------------------------------
2922 * WLAN_HAL_TRIGGER_BA_REQ
2923 *--------------------------------------------------------------------------*/
2924
2925
2926typedef struct sAddBaInfo
2927{
2928 tANI_U16 fBaEnable : 1;
2929 tANI_U16 startingSeqNum: 12;
2930 tANI_U16 reserved : 3;
2931}tAddBaInfo, *tpAddBaInfo;
2932
2933typedef struct sTriggerBaRspCandidate
2934{
2935 tSirMacAddr staAddr;
2936 tAddBaInfo baInfo[STACFG_MAX_TC];
2937}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2938
2939typedef struct sTriggerBaCandidate
2940{
2941 tANI_U8 staIdx;
2942 tANI_U8 tidBitmap;
2943}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2944
2945typedef PACKED_PRE struct PACKED_POST
2946{
2947 /* Session Id */
2948 tANI_U8 baSessionID;
2949
Jeff Johnson32d95a32012-09-10 13:15:23 -07002950 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002951 * Candidate List(tTriggerBaCandidate)
2952 */
2953 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002954
Jeff Johnson295189b2012-06-20 16:38:30 -07002955} tTriggerBAParams, *tpTriggerBAParams;
2956
2957typedef PACKED_PRE struct PACKED_POST
2958{
2959 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002960 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002961} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2962
2963
2964/*---------------------------------------------------------------------------
2965 * WLAN_HAL_TRIGGER_BA_RSP
2966 *--------------------------------------------------------------------------*/
2967
2968typedef PACKED_PRE struct PACKED_POST
2969{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002970
Jeff Johnson295189b2012-06-20 16:38:30 -07002971 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002972 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002973
2974 /* success or failure */
2975 tANI_U32 status;
2976
Jeff Johnson32d95a32012-09-10 13:15:23 -07002977 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002978 * Rsp Candidate List(tTriggerRspBaCandidate)
2979 */
2980 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002981
Jeff Johnson295189b2012-06-20 16:38:30 -07002982
2983} tTriggerBARspParams, *tpTriggerBARspParams;
2984
2985typedef PACKED_PRE struct PACKED_POST
2986{
2987 tHalMsgHeader header;
2988 tTriggerBARspParams triggerBARspParams;
2989} tTriggerBARspMsg, *tpTriggerBARspMsg;
2990
2991/*---------------------------------------------------------------------------
2992 * WLAN_HAL_DEL_BA_REQ
2993 *--------------------------------------------------------------------------*/
2994
2995typedef PACKED_PRE struct PACKED_POST
2996{
2997 /* Station Index */
2998 tANI_U16 staIdx;
2999
3000 /* TID for which the BA session is being deleted */
3001 tANI_U8 baTID;
3002
3003 /* DELBA direction
3004 1 - Originator
3005 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003006 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003007} tDelBAParams, *tpDelBAParams;
3008
3009typedef PACKED_PRE struct PACKED_POST
3010{
3011 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003012 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003013} tDelBAReqMsg, *tpDelBAReqMsg;
3014
3015/*---------------------------------------------------------------------------
3016 * WLAN_HAL_DEL_BA_RSP
3017 *--------------------------------------------------------------------------*/
3018
3019typedef PACKED_PRE struct PACKED_POST
3020{
3021 /* success or failure */
3022 tANI_U32 status;
3023} tDelBARspParams, *tpDelBARspParams;
3024
3025typedef PACKED_PRE struct PACKED_POST
3026{
3027 tHalMsgHeader header;
3028 tDelBARspParams delBARspParams;
3029} tDelBARspMsg, *tpDelBARspMsg;
3030
3031
3032#ifdef FEATURE_WLAN_CCX
3033
3034/*---------------------------------------------------------------------------
3035 * WLAN_HAL_TSM_STATS_REQ
3036 *--------------------------------------------------------------------------*/
3037typedef PACKED_PRE struct PACKED_POST
3038{
3039 /* Traffic Id */
3040 tANI_U8 tsmTID;
3041
3042 tSirMacAddr bssId;
3043} tTsmStatsParams, *tpTsmStatsParams;
3044
3045typedef PACKED_PRE struct PACKED_POST
3046{
3047 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003048 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003049} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3050
3051
3052/*---------------------------------------------------------------------------
3053 * WLAN_HAL_TSM_STATS_RSP
3054 *--------------------------------------------------------------------------*/
3055typedef PACKED_PRE struct PACKED_POST
3056{
3057 /*success or failure */
3058 tANI_U32 status;
3059
Jeff Johnson32d95a32012-09-10 13:15:23 -07003060 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003061 tANI_U16 UplinkPktQueueDly;
3062
Jeff Johnson32d95a32012-09-10 13:15:23 -07003063 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003064 tANI_U16 UplinkPktQueueDlyHist[4];
3065
Jeff Johnson32d95a32012-09-10 13:15:23 -07003066 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003067 tANI_U32 UplinkPktTxDly;
3068
Jeff Johnson32d95a32012-09-10 13:15:23 -07003069 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003070 tANI_U16 UplinkPktLoss;
3071
Jeff Johnson32d95a32012-09-10 13:15:23 -07003072 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003073 tANI_U16 UplinkPktCount;
3074
Jeff Johnson32d95a32012-09-10 13:15:23 -07003075 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003076 tANI_U8 RoamingCount;
3077
Jeff Johnson32d95a32012-09-10 13:15:23 -07003078 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003079 tANI_U16 RoamingDly;
3080} tTsmStatsRspParams, *tpTsmStatsRspParams;
3081
3082typedef PACKED_PRE struct PACKED_POST
3083{
3084 tHalMsgHeader header;
3085 tTsmStatsRspParams tsmStatsRspParams;
3086} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3087
3088
3089#endif
3090
3091/*---------------------------------------------------------------------------
3092 * WLAN_HAL_SET_KEYDONE_MSG
3093 *--------------------------------------------------------------------------*/
3094
3095typedef PACKED_PRE struct PACKED_POST
3096{
3097 /*bssid of the keys */
3098 tANI_U8 bssidx;
3099 tANI_U8 encType;
3100} tSetKeyDoneParams, *tpSetKeyDoneParams;
3101
3102typedef PACKED_PRE struct PACKED_POST
3103{
3104 tHalMsgHeader header;
3105 tSetKeyDoneParams setKeyDoneParams;
3106} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3107
3108/*---------------------------------------------------------------------------
3109 * WLAN_HAL_DOWNLOAD_NV_REQ
3110 *--------------------------------------------------------------------------*/
3111typedef PACKED_PRE struct PACKED_POST
3112{
3113 /* Fragment sequence number of the NV Image. Note that NV Image might not
3114 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003115 * can hence choose to chop the NV blob into multiple fragments starting with
3116 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003117 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3118 * concatenated together by HAL without any padding bytes in between.*/
3119 tANI_U16 fragNumber;
3120
3121 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003122 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003123 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3124 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3125 tANI_U16 isLastFragment;
3126
3127 /* NV Image size (number of bytes) */
3128 tANI_U32 nvImgBufferSize;
3129
3130 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3131 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3132} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3133
3134typedef PACKED_PRE struct PACKED_POST
3135{
3136 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3137 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3138 tHalMsgHeader header;
3139 tHalNvImgDownloadReqParams nvImageReqParams;
3140} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3141
3142/*---------------------------------------------------------------------------
3143 * WLAN_HAL_DOWNLOAD_NV_RSP
3144 *--------------------------------------------------------------------------*/
3145typedef PACKED_PRE struct PACKED_POST
3146{
3147 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3148 * after each fragment */
3149 tANI_U32 status;
3150} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3151
3152typedef PACKED_PRE struct PACKED_POST
3153{
3154 tHalMsgHeader header;
3155 tHalNvImgDownloadRspParams nvImageRspParams;
3156} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3157
3158/*---------------------------------------------------------------------------
3159 * WLAN_HAL_STORE_NV_IND
3160 *--------------------------------------------------------------------------*/
3161typedef PACKED_PRE struct PACKED_POST
3162{
3163 /* NV Item */
3164 eNvTable tableID;
3165
3166 /* Size of NV Blob */
3167 tANI_U32 nvBlobSize;
3168
Jeff Johnson32d95a32012-09-10 13:15:23 -07003169 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003170 * NV blob i.e. uint8[nvBlobSize] */
3171} tHalNvStoreParams, *tpHalNvStoreParams;
3172
3173typedef PACKED_PRE struct PACKED_POST
3174{
3175 /* Note: The length specified in tHalNvStoreInd messages should be
3176 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3177 tHalMsgHeader header;
3178 tHalNvStoreParams nvStoreParams;
3179} tHalNvStoreInd, *tpHalNvStoreInd;
3180
3181/* End of Block Ack Related Parameters */
3182
3183/*---------------------------------------------------------------------------
3184 * WLAN_HAL_MIC_FAILURE_IND
3185 *--------------------------------------------------------------------------*/
3186
3187#define SIR_CIPHER_SEQ_CTR_SIZE 6
3188
3189typedef PACKED_PRE struct PACKED_POST
3190{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003191 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003192 tSirMacAddr taMacAddr; //transmitter address
3193 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003194 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003195 tANI_U8 IV1; // first byte of IV
3196 tANI_U8 keyId; // second byte of IV
3197 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3198 tSirMacAddr rxMacAddr; // receive address
3199} tSirMicFailureInfo, *tpSirMicFailureInfo;
3200
3201/* Definition for MIC failure indication
3202 MAC reports this each time a MIC failure occures on Rx TKIP packet
3203 */
3204typedef PACKED_PRE struct PACKED_POST
3205{
3206 tSirMacAddr bssId; // BSSID
3207 tSirMicFailureInfo info;
3208} tSirMicFailureInd, *tpSirMicFailureInd;
3209
3210typedef PACKED_PRE struct PACKED_POST
3211{
3212 tHalMsgHeader header;
3213 tSirMicFailureInd micFailureInd;
3214} tMicFailureIndMsg, *tpMicFailureIndMsg;
3215
Mohit Khanna4a70d262012-09-11 16:30:12 -07003216typedef PACKED_PRE struct PACKED_POST
3217{
3218 tANI_U16 opMode;
3219 tANI_U16 staId;
3220}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3221
3222typedef PACKED_PRE struct PACKED_POST
3223{
3224 tHalMsgHeader header;
3225 tUpdateVHTOpMode updateVhtOpMode;
3226} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3227
3228typedef PACKED_PRE struct PACKED_POST
3229{
3230 tANI_U32 status;
3231} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3232
3233typedef PACKED_PRE struct PACKED_POST
3234{
3235 tHalMsgHeader header;
3236 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3237} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3238
Jeff Johnson295189b2012-06-20 16:38:30 -07003239/*---------------------------------------------------------------------------
3240 * WLAN_HAL_UPDATE_BEACON_REQ
3241 *--------------------------------------------------------------------------*/
3242typedef PACKED_PRE struct PACKED_POST
3243{
3244
3245 tANI_U8 bssIdx;
3246
3247 //shortPreamble mode. HAL should update all the STA rates when it
3248 //receives this message
3249 tANI_U8 fShortPreamble;
3250 //short Slot time.
3251 tANI_U8 fShortSlotTime;
3252 //Beacon Interval
3253 tANI_U16 beaconInterval;
3254 //Protection related
3255 tANI_U8 llaCoexist;
3256 tANI_U8 llbCoexist;
3257 tANI_U8 llgCoexist;
3258 tANI_U8 ht20MhzCoexist;
3259 tANI_U8 llnNonGFCoexist;
3260 tANI_U8 fLsigTXOPProtectionFullSupport;
3261 tANI_U8 fRIFSMode;
3262
3263 tANI_U16 paramChangeBitmap;
3264}tUpdateBeaconParams, *tpUpdateBeaconParams;
3265
3266
3267typedef PACKED_PRE struct PACKED_POST
3268{
3269 tHalMsgHeader header;
3270 tUpdateBeaconParams updateBeaconParam;
3271} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3272
3273/*---------------------------------------------------------------------------
3274 * WLAN_HAL_UPDATE_BEACON_RSP
3275 *--------------------------------------------------------------------------*/
3276typedef PACKED_PRE struct PACKED_POST
3277{
3278 tANI_U32 status;
3279} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3280
3281typedef PACKED_PRE struct PACKED_POST
3282{
3283 tHalMsgHeader header;
3284 tUpdateBeaconRspParams updateBeaconRspParam;
3285} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3286
3287/*---------------------------------------------------------------------------
3288 * WLAN_HAL_SEND_BEACON_REQ
3289 *--------------------------------------------------------------------------*/
3290typedef PACKED_PRE struct PACKED_POST
3291{
3292 tANI_U32 beaconLength; //length of the template.
3293 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3294 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003295 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003296 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3297}tSendBeaconParams, *tpSendBeaconParams;
3298
3299
3300typedef PACKED_PRE struct PACKED_POST
3301{
3302 tHalMsgHeader header;
3303 tSendBeaconParams sendBeaconParam;
3304}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3305
3306/*---------------------------------------------------------------------------
3307 * WLAN_HAL_SEND_BEACON_RSP
3308 *--------------------------------------------------------------------------*/
3309typedef PACKED_PRE struct PACKED_POST
3310{
3311 tANI_U32 status;
3312} tSendBeaconRspParams, *tpSendBeaconRspParams;
3313
3314typedef PACKED_PRE struct PACKED_POST
3315{
3316 tHalMsgHeader header;
3317 tSendBeaconRspParams sendBeaconRspParam;
3318} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3319
3320#ifdef FEATURE_5GHZ_BAND
3321
3322/*---------------------------------------------------------------------------
3323 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3324 *--------------------------------------------------------------------------*/
3325typedef PACKED_PRE struct PACKED_POST
3326{
3327 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003328 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003329}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3330
3331
3332typedef PACKED_PRE struct PACKED_POST
3333{
3334 /* Link Parameters */
3335 tSirEnableRadarInfoType EnableRadarInfo;
3336}tEnableRadarReqParams, *tpEnableRadarReqParams;
3337
3338typedef PACKED_PRE struct PACKED_POST
3339{
3340 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003341 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003342}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3343
3344/*---------------------------------------------------------------------------
3345 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3346 *--------------------------------------------------------------------------*/
3347
3348typedef PACKED_PRE struct PACKED_POST
3349{
3350 /* Link Parameters */
3351 tSirMacAddr BSSID;
3352 /* success or failure */
3353 tANI_U32 status;
3354}tEnableRadarRspParams, *tpEnableRadarRspParams;
3355
3356typedef PACKED_PRE struct PACKED_POST
3357{
3358 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003359 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003360}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3361
3362/*---------------------------------------------------------------------------
3363 *WLAN_HAL_RADAR_DETECT_INTR_IND
3364 *--------------------------------------------------------------------------*/
3365
3366typedef PACKED_PRE struct PACKED_POST
3367{
3368 tANI_U8 radarDetChannel;
3369}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3370
3371typedef PACKED_PRE struct PACKED_POST
3372{
3373 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003374 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003375}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3376
3377/*---------------------------------------------------------------------------
3378 *WLAN_HAL_RADAR_DETECT_IND
3379 *-------------------------------------------------------------------------*/
3380typedef PACKED_PRE struct PACKED_POST
3381{
3382 /*channel number in which the RADAR detected*/
3383 tANI_U8 channelNumber;
3384
3385 /*RADAR pulse width*/
3386 tANI_U16 radarPulseWidth; // in usecond
3387
3388 /*Number of RADAR pulses */
3389 tANI_U16 numRadarPulse;
3390}tRadarDetectIndParams,*tpRadarDetectIndParams;
3391
3392typedef PACKED_PRE struct PACKED_POST
3393{
3394 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003395 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003396}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3397
3398
3399/*---------------------------------------------------------------------------
3400 *WLAN_HAL_GET_TPC_REPORT_REQ
3401 *-------------------------------------------------------------------------*/
3402typedef PACKED_PRE struct PACKED_POST
3403{
3404 tSirMacAddr sta;
3405 tANI_U8 dialogToken;
3406 tANI_U8 txpower;
3407}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3408
3409
3410typedef PACKED_PRE struct PACKED_POST
3411{
3412 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003413 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003414}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3415
3416/*---------------------------------------------------------------------------
3417 * WLAN_HAL_GET_TPC_REPORT_RSP
3418 *--------------------------------------------------------------------------*/
3419
3420typedef PACKED_PRE struct PACKED_POST
3421{
3422 /* success or failure */
3423 tANI_U32 status;
3424}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3425
3426typedef PACKED_PRE struct PACKED_POST
3427{
3428 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003429 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003430}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3431
3432#endif
3433
Jeff Johnson295189b2012-06-20 16:38:30 -07003434/*---------------------------------------------------------------------------
3435 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3436 *-------------------------------------------------------------------------*/
3437typedef PACKED_PRE struct PACKED_POST
3438{
3439 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3440 tANI_U32 probeRespTemplateLen;
3441 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3442 tSirMacAddr bssId;
3443
3444}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3445
3446typedef PACKED_PRE struct PACKED_POST
3447{
3448 tHalMsgHeader header;
3449 tSendProbeRespReqParams sendProbeRespReqParams ;
3450}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3451
3452/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003453 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003454 *--------------------------------------------------------------------------*/
3455
3456typedef PACKED_PRE struct PACKED_POST
3457{
3458 /* success or failure */
3459 tANI_U32 status;
3460}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3461
3462typedef PACKED_PRE struct PACKED_POST
3463{
3464 tHalMsgHeader header;
3465 tSendProbeRespRspParams sendProbeRespRspParams;
3466}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3467
3468
3469/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003470 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003471 *--------------------------------------------------------------------------*/
3472
3473typedef PACKED_PRE struct PACKED_POST
3474{
3475 /* success or failure */
3476 tANI_U32 status;
3477}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3478
3479typedef PACKED_PRE struct PACKED_POST
3480{
3481 tHalMsgHeader header;
3482 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3483}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3484
3485/*---------------------------------------------------------------------------
3486 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3487 *--------------------------------------------------------------------------*/
3488
3489typedef PACKED_PRE struct PACKED_POST
3490{
3491 tANI_U16 assocId;
3492 tANI_U16 staId;
3493 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3494 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003495 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003496 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003497
3498}tDeleteStaContextParams, *tpDeleteStaContextParams;
3499
3500
3501typedef PACKED_PRE struct PACKED_POST
3502{
3503 tHalMsgHeader header;
3504 tDeleteStaContextParams deleteStaContextParams;
3505}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3506
Anand Kumar012623a2013-01-11 17:00:00 -08003507typedef PACKED_PRE struct PACKED_POST
3508{
3509 tHalMsgHeader header;
3510 tANI_U8 assocId;
3511 tANI_U8 staIdx;
3512 tANI_U8 bssIdx;
3513 tANI_U8 uReasonCode;
3514 tANI_U32 uStatus;
3515} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003516
3517/*---------------------------------------------------------------------------
3518 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3519 *--------------------------------------------------------------------------*/
3520
3521typedef PACKED_PRE struct PACKED_POST
3522{
3523 tBtAmpEventType btAmpEventType;
3524
3525}tBtAmpEventParams, *tpBtAmpEventParams;
3526
3527
3528
3529typedef PACKED_PRE struct PACKED_POST
3530{
3531 tHalMsgHeader header;
3532 tBtAmpEventParams btAmpEventParams;
3533}tBtAmpEventMsg, *tpBtAmpEventMsg;
3534
3535/*---------------------------------------------------------------------------
3536*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3537*--------------------------------------------------------------------------*/
3538
3539typedef PACKED_PRE struct PACKED_POST
3540{
3541 /* success or failure */
3542 tANI_U32 status;
3543}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3544
3545typedef PACKED_PRE struct PACKED_POST
3546{
3547 tHalMsgHeader header;
3548 tBtAmpEventRspParams btAmpEventRspParams;
3549}tBtAmpEventRsp, *tpBtAmpEventRsp;
3550
3551
3552/*---------------------------------------------------------------------------
3553 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3554 *--------------------------------------------------------------------------*/
3555
3556typedef PACKED_PRE struct PACKED_POST
3557{
3558 // Station Index. originates from HAL
3559 tANI_U8 ucSTAId;
3560
3561 // TID for which the transmit queue is being flushed
3562 tANI_U8 ucTid;
3563
3564}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3565
3566
3567typedef PACKED_PRE struct PACKED_POST
3568{
3569 tHalMsgHeader header;
3570 tTlHalFlushAcParams tlHalFlushAcParam;
3571}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3572
3573/*---------------------------------------------------------------------------
3574*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3575*--------------------------------------------------------------------------*/
3576
3577typedef PACKED_PRE struct PACKED_POST
3578{
3579 // Station Index. originates from HAL
3580 tANI_U8 ucSTAId;
3581
3582 // TID for which the transmit queue is being flushed
3583 tANI_U8 ucTid;
3584
3585 /* success or failure */
3586 tANI_U32 status;
3587}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3588
3589typedef PACKED_PRE struct PACKED_POST
3590{
3591 tHalMsgHeader header;
3592 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3593}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3594
3595/*---------------------------------------------------------------------------
3596 * WLAN_HAL_ENTER_IMPS_REQ
3597 *--------------------------------------------------------------------------*/
3598typedef PACKED_PRE struct PACKED_POST
3599{
3600 tHalMsgHeader header;
3601} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3602
3603/*---------------------------------------------------------------------------
3604 * WLAN_HAL_EXIT_IMPS_REQ
3605 *--------------------------------------------------------------------------*/
3606typedef PACKED_PRE struct PACKED_POST
3607{
3608 tHalMsgHeader header;
3609} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3610
3611/*---------------------------------------------------------------------------
3612 * WLAN_HAL_ENTER_BMPS_REQ
3613 *--------------------------------------------------------------------------*/
3614
3615typedef PACKED_PRE struct PACKED_POST
3616{
3617 tANI_U8 bssIdx;
3618 //TBTT value derived from the last beacon
3619#ifndef BUILD_QWPTTSTATIC
3620 tANI_U64 tbtt;
3621#endif
3622 tANI_U8 dtimCount;
3623 //DTIM period given to HAL during association may not be valid,
3624 //if association is based on ProbeRsp instead of beacon.
3625 tANI_U8 dtimPeriod;
3626
3627 // For CCX and 11R Roaming
3628 tANI_U32 rssiFilterPeriod;
3629 tANI_U32 numBeaconPerRssiAverage;
3630 tANI_U8 bRssiFilterEnable;
3631
3632} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3633
3634
3635typedef PACKED_PRE struct PACKED_POST
3636{
3637 tHalMsgHeader header;
3638 tHalEnterBmpsReqParams enterBmpsReq;
3639} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3640
3641/*---------------------------------------------------------------------------
3642 * WLAN_HAL_EXIT_BMPS_REQ
3643 *--------------------------------------------------------------------------*/
3644typedef PACKED_PRE struct PACKED_POST
3645{
3646 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003647 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003648} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3649
3650typedef PACKED_PRE struct PACKED_POST
3651{
3652 tHalMsgHeader header;
3653 tHalExitBmpsReqParams exitBmpsReqParams;
3654} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3655
3656/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003657 * WLAN_HAL_MISSED_BEACON_IND
3658 *--------------------------------------------------------------------------*/
3659typedef PACKED_PRE struct PACKED_POST
3660{
3661 tANI_U8 bssIdx;
3662} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3663
3664typedef PACKED_PRE struct PACKED_POST
3665{
3666 tHalMsgHeader header;
3667 tHalMissedBeaconIndParams missedBeaconIndParams;
3668} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3669
3670/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003671 * WLAN_HAL_ADD_BCN_FILTER_REQ
3672 *--------------------------------------------------------------------------*/
3673/* Beacon Filtering data structures */
3674typedef PACKED_PRE struct PACKED_POST
3675{
3676 tANI_U8 offset;
3677 tANI_U8 value;
3678 tANI_U8 bitMask;
3679 tANI_U8 ref;
3680} tEidByteInfo, *tpEidByteInfo;
3681
Jeff Johnson32d95a32012-09-10 13:15:23 -07003682typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003683{
3684 tANI_U16 capabilityInfo;
3685 tANI_U16 capabilityMask;
3686 tANI_U16 beaconInterval;
3687 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003688 tANI_U8 bssIdx;
3689 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003690} tBeaconFilterMsg, *tpBeaconFilterMsg;
3691
3692/* The above structure would be followed by multiple of below mentioned structure */
3693typedef PACKED_PRE struct PACKED_POST
3694{
3695 tANI_U8 elementId;
3696 tANI_U8 checkIePresence;
3697 tEidByteInfo byte;
3698} tBeaconFilterIe, *tpBeaconFilterIe;
3699
3700typedef PACKED_PRE struct PACKED_POST
3701{
3702 tHalMsgHeader header;
3703 tBeaconFilterMsg addBcnFilterParams;
3704} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3705
3706/*---------------------------------------------------------------------------
3707 * WLAN_HAL_REM_BCN_FILTER_REQ
3708 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003709typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003710{
3711 tANI_U8 ucIeCount;
3712 tANI_U8 ucRemIeId[1];
3713} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3714
3715typedef PACKED_PRE struct PACKED_POST
3716{
3717 tHalMsgHeader header;
3718 tRemBeaconFilterMsg remBcnFilterParams;
3719} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3720
3721/*---------------------------------------------------------------------------
3722 * WLAN_HAL_HOST_OFFLOAD_REQ
3723 *--------------------------------------------------------------------------*/
3724#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3725#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3726#define HAL_IPV6_NS_OFFLOAD 2
3727#define HAL_IPV6_ADDR_LEN 16
3728#define HAL_MAC_ADDR_LEN 6
3729#define HAL_OFFLOAD_DISABLE 0
3730#define HAL_OFFLOAD_ENABLE 1
3731#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
3732#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
3733
3734typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3735{
3736 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3737 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3738 //Only support 2 possible Network Advertisement IPv6 address
3739 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3740 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3741 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3742 tANI_U8 srcIPv6AddrValid : 1;
3743 tANI_U8 targetIPv6Addr1Valid : 1;
3744 tANI_U8 targetIPv6Addr2Valid : 1;
3745 tANI_U8 reserved1 : 5;
3746 tANI_U8 reserved2; //make it DWORD aligned
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003747 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnsone7245742012-09-05 17:12:55 -07003748 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003749} tHalNSOffloadParams;
3750
3751typedef PACKED_PRE struct PACKED_POST
3752{
3753 tANI_U8 offloadType;
3754 tANI_U8 enableOrDisable;
3755 PACKED_PRE union PACKED_POST
3756 {
3757 tANI_U8 hostIpv4Addr [4];
3758 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3759 } params;
3760} tHalHostOffloadReq, *tpHalHostOffloadReq;
3761
3762typedef PACKED_PRE struct PACKED_POST
3763{
3764 tHalMsgHeader header;
3765 tHalHostOffloadReq hostOffloadParams;
3766 tHalNSOffloadParams nsOffloadParams;
3767} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3768
3769/*---------------------------------------------------------------------------
3770 * WLAN_HAL_KEEP_ALIVE_REQ
3771 *--------------------------------------------------------------------------*/
3772/* Packet Types. */
3773#define HAL_KEEP_ALIVE_NULL_PKT 1
3774#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3775
3776/* Enable or disable keep alive */
3777#define HAL_KEEP_ALIVE_DISABLE 0
3778#define HAL_KEEP_ALIVE_ENABLE 1
3779
3780/* Keep Alive request. */
3781typedef PACKED_PRE struct PACKED_POST
3782{
3783 tANI_U8 packetType;
3784 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003785 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003786 tHalIpv4Addr destIpv4Addr;
3787 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003788 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003789} tHalKeepAliveReq, *tpHalKeepAliveReq;
3790
3791typedef PACKED_PRE struct PACKED_POST
3792{
3793 tHalMsgHeader header;
3794 tHalKeepAliveReq KeepAliveParams;
3795} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3796
3797/*---------------------------------------------------------------------------
3798 * WLAN_HAL_SET_RSSI_THRESH_REQ
3799 *--------------------------------------------------------------------------*/
3800typedef PACKED_PRE struct PACKED_POST
3801{
3802 tANI_S8 ucRssiThreshold1 : 8;
3803 tANI_S8 ucRssiThreshold2 : 8;
3804 tANI_S8 ucRssiThreshold3 : 8;
3805 tANI_U8 bRssiThres1PosNotify : 1;
3806 tANI_U8 bRssiThres1NegNotify : 1;
3807 tANI_U8 bRssiThres2PosNotify : 1;
3808 tANI_U8 bRssiThres2NegNotify : 1;
3809 tANI_U8 bRssiThres3PosNotify : 1;
3810 tANI_U8 bRssiThres3NegNotify : 1;
3811 tANI_U8 bReserved10 : 2;
3812} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003813
Jeff Johnson295189b2012-06-20 16:38:30 -07003814typedef PACKED_PRE struct PACKED_POST
3815{
3816 tHalMsgHeader header;
3817 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003818} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003819
3820/*---------------------------------------------------------------------------
3821 * WLAN_HAL_ENTER_UAPSD_REQ
3822 *--------------------------------------------------------------------------*/
3823typedef PACKED_PRE struct PACKED_POST
3824{
3825 tANI_U8 bkDeliveryEnabled:1;
3826 tANI_U8 beDeliveryEnabled:1;
3827 tANI_U8 viDeliveryEnabled:1;
3828 tANI_U8 voDeliveryEnabled:1;
3829 tANI_U8 bkTriggerEnabled:1;
3830 tANI_U8 beTriggerEnabled:1;
3831 tANI_U8 viTriggerEnabled:1;
3832 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003833 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003834} tUapsdReqParams, *tpUapsdReqParams;
3835
3836typedef PACKED_PRE struct PACKED_POST
3837{
3838 tHalMsgHeader header;
3839 tUapsdReqParams enterUapsdParams;
3840} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3841
3842/*---------------------------------------------------------------------------
3843 * WLAN_HAL_EXIT_UAPSD_REQ
3844 *--------------------------------------------------------------------------*/
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003848 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003849} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3850
3851/*---------------------------------------------------------------------------
3852 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3853 *--------------------------------------------------------------------------*/
3854#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3855#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3856
3857typedef PACKED_PRE struct PACKED_POST
3858{
3859 tANI_U8 ucPatternId; // Pattern ID
3860 // Pattern byte offset from beginning of the 802.11 packet to start of the
3861 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003862 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003863 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3864 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3865 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3866 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3867 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3868 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003869 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003870} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3871
3872typedef PACKED_PRE struct PACKED_POST
3873{
3874 tHalMsgHeader header;
3875 tHalWowlAddBcastPtrn ptrnParams;
3876} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003877
Jeff Johnsone7245742012-09-05 17:12:55 -07003878
3879
Jeff Johnson295189b2012-06-20 16:38:30 -07003880/*---------------------------------------------------------------------------
3881 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3882 *--------------------------------------------------------------------------*/
3883typedef PACKED_PRE struct PACKED_POST
3884{
3885 /* Pattern ID of the wakeup pattern to be deleted */
3886 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003887 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003888} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3889
3890typedef PACKED_PRE struct PACKED_POST
3891{
3892 tHalMsgHeader header;
3893 tHalWowlDelBcastPtrn ptrnParams;
3894} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3895
3896/*---------------------------------------------------------------------------
3897 * WLAN_HAL_ENTER_WOWL_REQ
3898 *--------------------------------------------------------------------------*/
3899typedef PACKED_PRE struct PACKED_POST
3900{
3901 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003902 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003903
3904 /* Magic pattern */
3905 tSirMacAddr magicPtrn;
3906
Jeff Johnson32d95a32012-09-10 13:15:23 -07003907 /* Enables/disables packet pattern filtering in firmware.
3908 Enabling this flag enables broadcast pattern matching
3909 in Firmware. If unicast pattern matching is also desired,
3910 ucUcastPatternFilteringEnable flag must be set tot true
3911 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003912 */
3913 tANI_U8 ucPatternFilteringEnable;
3914
Jeff Johnson32d95a32012-09-10 13:15:23 -07003915 /* Enables/disables unicast packet pattern filtering.
3916 This flag specifies whether we want to do pattern match
3917 on unicast packets as well and not just broadcast packets.
3918 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003919 (main controlling flag) is set to false
3920 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003921 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003922
Jeff Johnson32d95a32012-09-10 13:15:23 -07003923 /* This configuration is valid only when magicPktEnable=1.
3924 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003925 * Channel Switch Action Frame.
3926 */
3927 tANI_U8 ucWowChnlSwitchRcv;
3928
Jeff Johnson32d95a32012-09-10 13:15:23 -07003929 /* This configuration is valid only when magicPktEnable=1.
3930 * It requests hardware to wake up when it receives the
3931 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003932 */
3933 tANI_U8 ucWowDeauthRcv;
3934
Jeff Johnson32d95a32012-09-10 13:15:23 -07003935 /* This configuration is valid only when magicPktEnable=1.
3936 * It requests hardware to wake up when it receives the
3937 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003938 */
3939 tANI_U8 ucWowDisassocRcv;
3940
Jeff Johnson32d95a32012-09-10 13:15:23 -07003941 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003942 * It requests hardware to wake up when it has missed
3943 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003944 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003945 */
3946 tANI_U8 ucWowMaxMissedBeacons;
3947
Jeff Johnson32d95a32012-09-10 13:15:23 -07003948 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003949 * This is a timeout value in units of microsec. It requests
3950 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003951 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003952 */
3953 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003954
Jeff Johnson295189b2012-06-20 16:38:30 -07003955 /* This configuration directs the WoW packet filtering to look for EAP-ID
3956 * requests embedded in EAPOL frames and use this as a wake source.
3957 */
3958 tANI_U8 ucWoWEAPIDRequestEnable;
3959
3960 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3961 * requests and use this as a wake source.
3962 */
3963 tANI_U8 ucWoWEAPOL4WayEnable;
3964
3965 /* This configuration allows a host wakeup on an network scan offload match.
3966 */
3967 tANI_U8 ucWowNetScanOffloadMatch;
3968
3969 /* This configuration allows a host wakeup on any GTK rekeying error.
3970 */
3971 tANI_U8 ucWowGTKRekeyError;
3972
3973 /* This configuration allows a host wakeup on BSS connection loss.
3974 */
3975 tANI_U8 ucWoWBSSConnLoss;
3976
Jeff Johnsone7245742012-09-05 17:12:55 -07003977 tANI_U8 bssIdx;
3978
Jeff Johnson295189b2012-06-20 16:38:30 -07003979} tHalWowlEnterParams, *tpHalWowlEnterParams;
3980
3981typedef PACKED_PRE struct PACKED_POST
3982{
3983 tHalMsgHeader header;
3984 tHalWowlEnterParams enterWowlParams;
3985} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
3986
3987/*---------------------------------------------------------------------------
3988 * WLAN_HAL_EXIT_WOWL_REQ
3989 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07003990
Jeff Johnson295189b2012-06-20 16:38:30 -07003991typedef PACKED_PRE struct PACKED_POST
3992{
Jeff Johnsone7245742012-09-05 17:12:55 -07003993 tANI_U8 bssIdx;
3994
3995} tHalWowlExitParams, *tpHalWowlExitParams;
3996
3997typedef PACKED_PRE struct PACKED_POST
3998{
3999 tHalMsgHeader header;
4000 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004001} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4002
4003/*---------------------------------------------------------------------------
4004 * WLAN_HAL_GET_RSSI_REQ
4005 *--------------------------------------------------------------------------*/
4006typedef PACKED_PRE struct PACKED_POST
4007{
4008 tHalMsgHeader header;
4009} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4010
Anand Kumar012623a2013-01-11 17:00:00 -08004011typedef PACKED_PRE struct PACKED_POST
4012{
4013 /* Valid STA Idx for per STA stats request */
4014 tANI_U32 staId;
4015
4016}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4017
4018
4019/*---------------------------------------------------------------------------
4020 * WLAN_HAL_GET_ROAM_RSSI_REQ
4021 *--------------------------------------------------------------------------*/
4022typedef PACKED_PRE struct PACKED_POST
4023{
4024 tHalMsgHeader header;
4025 tHalRoamRssiReqParams roamRssiReqParams;
4026} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4027
4028
Jeff Johnson295189b2012-06-20 16:38:30 -07004029/*---------------------------------------------------------------------------
4030 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4031 *--------------------------------------------------------------------------*/
4032typedef PACKED_PRE struct PACKED_POST {
4033 tANI_U8 staidx; // STA index
4034 tANI_U8 ac; // Access Category
4035 tANI_U8 up; // User Priority
4036 tANI_U32 srvInterval; // Service Interval
4037 tANI_U32 susInterval; // Suspend Interval
4038 tANI_U32 delayInterval; // Delay Interval
4039} tUapsdInfo, tpUapsdInfo;
4040
4041typedef PACKED_PRE struct PACKED_POST
4042{
4043 tHalMsgHeader header;
4044 tUapsdInfo enableUapsdAcParams;
4045} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4046
4047/*---------------------------------------------------------------------------
4048 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4049 *--------------------------------------------------------------------------*/
4050typedef PACKED_PRE struct PACKED_POST {
4051 tANI_U8 setMcstBcstFilterSetting;
4052 tANI_U8 setMcstBcstFilter;
4053} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4054
4055typedef PACKED_PRE struct PACKED_POST
4056{
4057 tHalMsgHeader header;
4058 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4059} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4060
4061/*---------------------------------------------------------------------------
4062 * WLAN_HAL_ENTER_IMPS_RSP
4063 *--------------------------------------------------------------------------*/
4064typedef PACKED_PRE struct PACKED_POST
4065{
4066 /* success or failure */
4067 tANI_U32 status;
4068} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4069
4070typedef PACKED_PRE struct PACKED_POST
4071{
4072 tHalMsgHeader header;
4073 tHalEnterImpsRspParams enterImpsRspParams;
4074} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4075
4076/*---------------------------------------------------------------------------
4077 * WLAN_HAL_EXIT_IMPS_RSP
4078 *--------------------------------------------------------------------------*/
4079typedef PACKED_PRE struct PACKED_POST
4080{
4081 /* success or failure */
4082 tANI_U32 status;
4083} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4084
4085typedef PACKED_PRE struct PACKED_POST
4086{
4087 tHalMsgHeader header;
4088 tHalExitImpsRspParams exitImpsRspParams;
4089} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4090
4091/*---------------------------------------------------------------------------
4092 * WLAN_HAL_ENTER_BMPS_RSP
4093 *--------------------------------------------------------------------------*/
4094typedef PACKED_PRE struct PACKED_POST
4095{
4096 /* success or failure */
4097 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004098 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004099} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4100
4101typedef PACKED_PRE struct PACKED_POST
4102{
4103 tHalMsgHeader header;
4104 tHalEnterBmpsRspParams enterBmpsRspParams;
4105} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4106
4107/*---------------------------------------------------------------------------
4108 * WLAN_HAL_EXIT_BMPS_RSP
4109 *--------------------------------------------------------------------------*/
4110typedef PACKED_PRE struct PACKED_POST
4111{
4112 /* success or failure */
4113 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004114 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004115} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4116
4117typedef PACKED_PRE struct PACKED_POST
4118{
4119 tHalMsgHeader header;
4120 tHalExitBmpsRspParams exitBmpsRspParams;
4121} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4122
4123/*---------------------------------------------------------------------------
4124 * WLAN_HAL_ENTER_UAPSD_RSP
4125 *--------------------------------------------------------------------------*/
4126typedef PACKED_PRE struct PACKED_POST
4127{
4128 /* success or failure */
4129 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004130 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004131}tUapsdRspParams, *tpUapsdRspParams;
4132
4133typedef PACKED_PRE struct PACKED_POST
4134{
4135 tHalMsgHeader header;
4136 tUapsdRspParams enterUapsdRspParams;
4137} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4138
4139/*---------------------------------------------------------------------------
4140 * WLAN_HAL_EXIT_UAPSD_RSP
4141 *--------------------------------------------------------------------------*/
4142typedef PACKED_PRE struct PACKED_POST
4143{
4144 /* success or failure */
4145 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004146 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004147} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4148
4149typedef PACKED_PRE struct PACKED_POST
4150{
4151 tHalMsgHeader header;
4152 tHalExitUapsdRspParams exitUapsdRspParams;
4153} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4154
4155/*---------------------------------------------------------------------------
4156 * WLAN_HAL_RSSI_NOTIFICATION_IND
4157 *--------------------------------------------------------------------------*/
4158typedef PACKED_PRE struct PACKED_POST
4159{
4160 tANI_U32 bRssiThres1PosCross : 1;
4161 tANI_U32 bRssiThres1NegCross : 1;
4162 tANI_U32 bRssiThres2PosCross : 1;
4163 tANI_U32 bRssiThres2NegCross : 1;
4164 tANI_U32 bRssiThres3PosCross : 1;
4165 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004166 tANI_U32 avgRssi : 8;
4167 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004168} tHalRSSINotification, *tpHalRSSINotification;
4169
4170typedef PACKED_PRE struct PACKED_POST
4171{
4172 tHalMsgHeader header;
4173 tHalRSSINotification rssiNotificationParams;
4174} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4175
4176/*---------------------------------------------------------------------------
4177 * WLAN_HAL_GET_RSSI_RSP
4178 *--------------------------------------------------------------------------*/
4179typedef PACKED_PRE struct PACKED_POST
4180{
4181 /* success or failure */
4182 tANI_U32 status;
4183 tANI_S8 rssi;
4184} tHalGetRssiParams, *tpHalGetRspParams;
4185
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tHalMsgHeader header;
4189 tHalGetRssiParams rssiRspParams;
4190} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4191
4192/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004193 * WLAN_HAL_GET_ROAM_RSSI_RSP
4194 *--------------------------------------------------------------------------*/
4195typedef PACKED_PRE struct PACKED_POST
4196{
4197 /* success or failure */
4198 tANI_U32 status;
4199
4200 tANI_U8 staId;
4201 tANI_S8 rssi;
4202} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4203
4204typedef PACKED_PRE struct PACKED_POST
4205{
4206 tHalMsgHeader header;
4207 tHalGetRoamRssiParams roamRssiRspParams;
4208} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4209
4210/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004211 * WLAN_HAL_ENTER_WOWL_RSP
4212 *--------------------------------------------------------------------------*/
4213typedef PACKED_PRE struct PACKED_POST
4214{
4215 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004216 tANI_U32 status;
4217 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004218} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4219
4220typedef PACKED_PRE struct PACKED_POST
4221{
4222 tHalMsgHeader header;
4223 tHalEnterWowlRspParams enterWowlRspParams;
4224} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4225
4226/*---------------------------------------------------------------------------
4227 * WLAN_HAL_EXIT_WOWL_RSP
4228 *--------------------------------------------------------------------------*/
4229typedef PACKED_PRE struct PACKED_POST
4230{
4231 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004232 tANI_U32 status;
4233 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004234} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4235
4236typedef PACKED_PRE struct PACKED_POST
4237{
4238 tHalMsgHeader header;
4239 tHalExitWowlRspParams exitWowlRspParams;
4240} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4241
4242/*---------------------------------------------------------------------------
4243 * WLAN_HAL_ADD_BCN_FILTER_RSP
4244 *--------------------------------------------------------------------------*/
4245typedef PACKED_PRE struct PACKED_POST
4246{
4247 /* success or failure */
4248 tANI_U32 status;
4249} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4250
4251typedef PACKED_PRE struct PACKED_POST
4252{
4253 tHalMsgHeader header;
4254 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4255} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4256
4257/*---------------------------------------------------------------------------
4258 * WLAN_HAL_REM_BCN_FILTER_RSP
4259 *--------------------------------------------------------------------------*/
4260typedef PACKED_PRE struct PACKED_POST
4261{
4262 /* success or failure */
4263 tANI_U32 status;
4264} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4265
4266typedef PACKED_PRE struct PACKED_POST
4267{
4268 tHalMsgHeader header;
4269 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4270} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4271
4272/*---------------------------------------------------------------------------
4273 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4274 *--------------------------------------------------------------------------*/
4275typedef PACKED_PRE struct PACKED_POST
4276{
4277 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004278 tANI_U32 status;
4279 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004280} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4281
4282typedef PACKED_PRE struct PACKED_POST
4283{
4284 tHalMsgHeader header;
4285 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4286} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4287
4288/*---------------------------------------------------------------------------
4289 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4290 *--------------------------------------------------------------------------*/
4291typedef PACKED_PRE struct PACKED_POST
4292{
4293 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004294 tANI_U32 status;
4295 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004296} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4297
4298typedef PACKED_PRE struct PACKED_POST
4299{
4300 tHalMsgHeader header;
4301 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4302} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4303
4304/*---------------------------------------------------------------------------
4305 * WLAN_HAL_HOST_OFFLOAD_RSP
4306 *--------------------------------------------------------------------------*/
4307typedef PACKED_PRE struct PACKED_POST
4308{
4309 /* success or failure */
4310 tANI_U32 status;
4311} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4312
4313typedef PACKED_PRE struct PACKED_POST
4314{
4315 tHalMsgHeader header;
4316 tHalHostOffloadRspParams hostOffloadRspParams;
4317} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4318
4319/*---------------------------------------------------------------------------
4320 * WLAN_HAL_KEEP_ALIVE_RSP
4321 *--------------------------------------------------------------------------*/
4322typedef PACKED_PRE struct PACKED_POST
4323{
4324 /* success or failure */
4325 tANI_U32 status;
4326} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4327
4328typedef PACKED_PRE struct PACKED_POST
4329{
4330 tHalMsgHeader header;
4331 tHalKeepAliveRspParams keepAliveRspParams;
4332} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4333
4334/*---------------------------------------------------------------------------
4335 * WLAN_HAL_SET_RSSI_THRESH_RSP
4336 *--------------------------------------------------------------------------*/
4337typedef PACKED_PRE struct PACKED_POST
4338{
4339 /* success or failure */
4340 tANI_U32 status;
4341} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4342
4343typedef PACKED_PRE struct PACKED_POST
4344{
4345 tHalMsgHeader header;
4346 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4347} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4348
4349/*---------------------------------------------------------------------------
4350 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4351 *--------------------------------------------------------------------------*/
4352typedef PACKED_PRE struct PACKED_POST
4353{
4354 /* success or failure */
4355 tANI_U32 status;
4356} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4357
4358typedef PACKED_PRE struct PACKED_POST
4359{
4360 tHalMsgHeader header;
4361 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4362} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4363
4364/*---------------------------------------------------------------------------
4365 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4366 *--------------------------------------------------------------------------*/
4367typedef PACKED_PRE struct PACKED_POST
4368{
4369 /* success or failure */
4370 tANI_U32 status;
4371} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4372
4373typedef PACKED_PRE struct PACKED_POST
4374{
4375 tHalMsgHeader header;
4376 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4377} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4378
4379/*---------------------------------------------------------------------------
4380 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4381 *--------------------------------------------------------------------------*/
4382
4383typedef PACKED_PRE struct PACKED_POST
4384{
4385 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4386 //the request has power constraints, this should be applied only to that session
4387 tSirMacAddr selfStaMacAddr;
4388 //In request,
4389 //power == MaxTx power to be used.
4390 tPowerdBm power;
4391
4392}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4393
4394
4395typedef PACKED_PRE struct PACKED_POST
4396{
4397 tHalMsgHeader header;
4398 tSetMaxTxPwrParams setMaxTxPwrParams;
4399}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4400
4401/*---------------------------------------------------------------------------
4402*WLAN_HAL_SET_MAX_TX_POWER_RSP
4403*--------------------------------------------------------------------------*/
4404
4405typedef PACKED_PRE struct PACKED_POST
4406{
4407 //power == tx power used for management frames.
4408 tPowerdBm power;
4409
4410 /* success or failure */
4411 tANI_U32 status;
4412}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4413
4414typedef PACKED_PRE struct PACKED_POST
4415{
4416 tHalMsgHeader header;
4417 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4418}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4419
4420/*---------------------------------------------------------------------------
4421 *WLAN_HAL_SET_TX_POWER_REQ
4422 *--------------------------------------------------------------------------*/
4423
4424typedef PACKED_PRE struct PACKED_POST
4425{
4426 /* TX Power in milli watts */
4427 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004428 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004429}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4430
4431
4432typedef PACKED_PRE struct PACKED_POST
4433{
4434 tHalMsgHeader header;
4435 tSetTxPwrReqParams setTxPwrReqParams;
4436}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4437
4438/*---------------------------------------------------------------------------
4439*WLAN_HAL_SET_TX_POWER_RSP
4440*--------------------------------------------------------------------------*/
4441
4442typedef PACKED_PRE struct PACKED_POST
4443{
4444 /* success or failure */
4445 tANI_U32 status;
4446}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4447
4448typedef PACKED_PRE struct PACKED_POST
4449{
4450 tHalMsgHeader header;
4451 tSetTxPwrRspParams setTxPwrRspParams;
4452}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4453
4454/*---------------------------------------------------------------------------
4455 *WLAN_HAL_GET_TX_POWER_REQ
4456 *--------------------------------------------------------------------------*/
4457
4458typedef PACKED_PRE struct PACKED_POST
4459{
4460 tANI_U8 staId;
4461}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4462
4463typedef PACKED_PRE struct PACKED_POST
4464{
4465 tHalMsgHeader header;
4466 tGetTxPwrReqParams getTxPwrReqParams;
4467}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4468
4469/*---------------------------------------------------------------------------
4470*WLAN_HAL_GET_TX_POWER_RSP
4471*--------------------------------------------------------------------------*/
4472
4473typedef PACKED_PRE struct PACKED_POST
4474{
4475 /* success or failure */
4476 tANI_U32 status;
4477
4478 /* TX Power in milli watts */
4479 tANI_U32 txPower;
4480}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4481
4482typedef PACKED_PRE struct PACKED_POST
4483{
4484 tHalMsgHeader header;
4485 tGetTxPwrRspParams getTxPwrRspParams;
4486}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4487
4488#ifdef WLAN_FEATURE_P2P
4489/*---------------------------------------------------------------------------
4490 *WLAN_HAL_SET_P2P_GONOA_REQ
4491 *--------------------------------------------------------------------------*/
4492
4493typedef PACKED_PRE struct PACKED_POST
4494{
4495 tANI_U8 opp_ps;
4496 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004497 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004498 tANI_U32 duration;
4499 tANI_U32 interval;
4500 tANI_U32 single_noa_duration;
4501 tANI_U8 psSelection;
4502}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4503
4504
4505typedef PACKED_PRE struct PACKED_POST
4506{
4507 tHalMsgHeader header;
4508 tSetP2PGONOAParams setP2PGONOAParams;
4509}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4510
4511/*---------------------------------------------------------------------------
4512*WLAN_HAL_SET_P2P_GONOA_RSP
4513*--------------------------------------------------------------------------*/
4514
4515typedef PACKED_PRE struct PACKED_POST
4516{
4517 /* success or failure */
4518 tANI_U32 status;
4519}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4520
4521typedef PACKED_PRE struct PACKED_POST
4522{
4523 tHalMsgHeader header;
4524 tSetP2PGONOARspParams setP2PGONOARspParams;
4525}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4526#endif
4527
4528/*---------------------------------------------------------------------------
4529 *WLAN_HAL_ADD_SELF_STA_REQ
4530 *--------------------------------------------------------------------------*/
4531
4532typedef PACKED_PRE struct PACKED_POST
4533{
4534 tSirMacAddr selfMacAddr;
4535 tANI_U32 status;
4536}tAddStaSelfParams, *tpAddStaSelfParams;
4537
4538
4539typedef PACKED_PRE struct PACKED_POST
4540{
4541 tHalMsgHeader header;
4542 tAddStaSelfParams addStaSelfParams;
4543}tAddStaSelfReq, *tpAddStaSelfReq;
4544
4545/*---------------------------------------------------------------------------
4546*WLAN_HAL_ADD_SELF_STA_RSP
4547*--------------------------------------------------------------------------*/
4548
4549typedef PACKED_PRE struct PACKED_POST
4550{
4551 /* success or failure */
4552 tANI_U32 status;
4553
4554 /*Self STA Index */
4555 tANI_U8 selfStaIdx;
4556
4557 /* DPU Index (IGTK, PTK, GTK all same) */
4558 tANI_U8 dpuIdx;
4559
4560 /* DPU Signature */
4561 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004562
Jeff Johnson295189b2012-06-20 16:38:30 -07004563}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4564
4565typedef PACKED_PRE struct PACKED_POST
4566{
4567 tHalMsgHeader header;
4568 tAddStaSelfRspParams addStaSelfRspParams;
4569}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4570
4571
4572/*---------------------------------------------------------------------------
4573 WLAN_HAL_DEL_STA_SELF_REQ
4574---------------------------------------------------------------------------*/
4575
4576typedef PACKED_PRE struct PACKED_POST
4577{
4578 tSirMacAddr selfMacAddr;
4579
4580}tDelStaSelfParams, *tpDelStaSelfParams;
4581
4582typedef PACKED_PRE struct PACKED_POST
4583{
4584 tHalMsgHeader header;
4585 tDelStaSelfParams delStaSelfParams;
4586} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4587
4588
4589/*---------------------------------------------------------------------------
4590 WLAN_HAL_DEL_STA_SELF_RSP
4591---------------------------------------------------------------------------*/
4592
4593typedef PACKED_PRE struct PACKED_POST
4594{
4595 /*success or failure */
4596 tANI_U32 status;
4597
4598 tSirMacAddr selfMacAddr;
4599}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4600
4601typedef PACKED_PRE struct PACKED_POST
4602{
4603 tHalMsgHeader header;
4604 tDelStaSelfRspParams delStaSelfRspParams;
4605} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4606
4607
4608#ifdef WLAN_FEATURE_VOWIFI_11R
4609
4610/*---------------------------------------------------------------------------
4611 *WLAN_HAL_AGGR_ADD_TS_REQ
4612 *--------------------------------------------------------------------------*/
4613
4614typedef PACKED_PRE struct PACKED_POST
4615{
4616 /* Station Index */
4617 tANI_U16 staIdx;
4618
4619 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4620 /* This will carry the bitmap with the bit positions representing different AC.s*/
4621 tANI_U16 tspecIdx;
4622
4623 /* Tspec info per AC To program TPE with required parameters */
4624 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4625
4626 /* U-APSD Flags: 1b per AC. Encoded as follows:
4627 b7 b6 b5 b4 b3 b2 b1 b0 =
4628 X X X X BE BK VI VO */
4629 tANI_U8 uAPSD;
4630
4631 /* These parameters are for all the access categories */
4632 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4633 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4634 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4635
4636}tAggrAddTsParams, *tpAggrAddTsParams;
4637
4638
4639typedef PACKED_PRE struct PACKED_POST
4640{
4641 tHalMsgHeader header;
4642 tAggrAddTsParams aggrAddTsParam;
4643}tAggrAddTsReq, *tpAggrAddTsReq;
4644
4645/*---------------------------------------------------------------------------
4646*WLAN_HAL_AGGR_ADD_TS_RSP
4647*--------------------------------------------------------------------------*/
4648
4649typedef PACKED_PRE struct PACKED_POST
4650{
4651 /* success or failure */
4652 tANI_U32 status0;
4653 /* FIXME PRIMA for future use for 11R */
4654 tANI_U32 status1;
4655}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4656
4657typedef PACKED_PRE struct PACKED_POST
4658{
4659 tHalMsgHeader header;
4660 tAggrAddTsRspParams aggrAddTsRspParam;
4661}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4662
4663#endif
4664
4665/*---------------------------------------------------------------------------
4666 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4667 *--------------------------------------------------------------------------*/
4668typedef PACKED_PRE struct PACKED_POST
4669{
4670 tANI_U8 isAppsCpuAwake;
4671} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4672
4673typedef PACKED_PRE struct PACKED_POST
4674{
4675 tHalMsgHeader header;
4676 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4677} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4678
4679/*---------------------------------------------------------------------------
4680 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4681 *--------------------------------------------------------------------------*/
4682typedef PACKED_PRE struct PACKED_POST
4683{
4684 /* success or failure */
4685 tANI_U32 status;
4686} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4687
4688typedef PACKED_PRE struct PACKED_POST
4689{
4690 tHalMsgHeader header;
4691 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4692} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4693/*---------------------------------------------------------------------------
4694 * WLAN_HAL_DUMP_COMMAND_REQ
4695 *--------------------------------------------------------------------------*/
4696
4697typedef PACKED_PRE struct PACKED_POST
4698{
4699 tANI_U32 argument1;
4700 tANI_U32 argument2;
4701 tANI_U32 argument3;
4702 tANI_U32 argument4;
4703 tANI_U32 argument5;
4704
4705}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4706
4707typedef PACKED_PRE struct PACKED_POST
4708{
4709 tHalMsgHeader header;
4710 tHalDumpCmdReqParams dumpCmdReqParams;
4711} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4712
4713/*---------------------------------------------------------------------------
4714 * WLAN_HAL_DUMP_COMMAND_RSP
4715 *--------------------------------------------------------------------------*/
4716
4717typedef PACKED_PRE struct PACKED_POST
4718{
4719 /* success or failure */
4720 tANI_U32 status;
4721 /*Length of the responce message*/
4722 tANI_U32 rspLength;
4723 /*FiXME: Currently considering the the responce will be less than 100bytes */
4724 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004725
Jeff Johnson295189b2012-06-20 16:38:30 -07004726} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4727
4728typedef PACKED_PRE struct PACKED_POST
4729{
4730 tHalMsgHeader header;
4731 tHalDumpCmdRspParams dumpCmdRspParams;
4732} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4733
4734/*---------------------------------------------------------------------------
4735 *WLAN_HAL_COEX_IND
4736 *-------------------------------------------------------------------------*/
4737#define WLAN_COEX_IND_DATA_SIZE (4)
4738#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4739#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
4740
4741typedef PACKED_PRE struct PACKED_POST
4742{
4743 /*Coex Indication Type*/
4744 tANI_U32 coexIndType;
4745
4746 /*Coex Indication Data*/
4747 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4748}tCoexIndParams,*tpCoexIndParams;
4749
4750typedef PACKED_PRE struct PACKED_POST
4751{
4752 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004753 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004754}tCoexIndMsg, *tpCoexIndMsg;
4755
4756/*---------------------------------------------------------------------------
4757 *WLAN_HAL_OTA_TX_COMPL_IND
4758 *-------------------------------------------------------------------------*/
4759
4760typedef PACKED_PRE struct PACKED_POST
4761{
4762 /*Tx Complete Indication Success or Failure*/
4763 tANI_U32 status;
4764}tTxComplParams,*tpTxComplParams;
4765
4766typedef PACKED_PRE struct PACKED_POST
4767{
4768 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004769 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004770}tTxComplIndMsg, *tpTxComplIndMsg;
4771
4772/*---------------------------------------------------------------------------
4773 * WLAN_HAL_HOST_SUSPEND_IND
4774 *-------------------------------------------------------------------------*/
4775
4776typedef PACKED_PRE struct PACKED_POST
4777{
4778 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004779 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004780}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4781
4782typedef PACKED_PRE struct PACKED_POST
4783{
4784 tHalMsgHeader header;
4785 tHalWlanHostSuspendIndParam suspendIndParams;
4786}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4787
4788/*---------------------------------------------------------------------------
4789 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4790 *-------------------------------------------------------------------------*/
4791
4792typedef PACKED_PRE struct PACKED_POST
4793{
4794 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004795 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004796}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4797
4798typedef PACKED_PRE struct PACKED_POST
4799{
4800 tHalMsgHeader header;
4801 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4802}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4803
4804#ifdef WLAN_FEATURE_P2P
4805/*---------------------------------------------------------------------------
4806 *WLAN_HAL_NOA_ATTR_IND
4807 *-------------------------------------------------------------------------*/
4808
4809typedef PACKED_PRE struct PACKED_POST
4810{
4811 tANI_U8 index ;
4812 tANI_U8 oppPsFlag ;
4813 tANI_U16 ctWin ;
4814
4815 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004816 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004817 tANI_U32 uNoa1Duration;
4818 tANI_U32 uNoa1Interval;
4819 tANI_U32 uNoa1StartTime;
4820
4821 tANI_U16 uNoa2IntervalCnt;
4822 tANI_U16 rsvd2;
4823 tANI_U32 uNoa2Duration;
4824 tANI_U32 uNoa2Interval;
4825 tANI_U32 uNoa2StartTime;
4826
4827 tANI_U32 status;
4828}tNoaAttrIndParams, *tpNoaAttrIndParams;
4829
4830typedef PACKED_PRE struct PACKED_POST
4831{
4832 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004833 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004834}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004835
4836/*---------------------------------------------------------------------------
4837 *WLAN_HAL_NOA_START_IND
4838 *-------------------------------------------------------------------------*/
4839
4840typedef PACKED_PRE struct PACKED_POST
4841{
4842 tANI_U32 status;
4843 tANI_U32 bssIdx;
4844}tNoaStartIndParams, *tpNoaStartIndParams;
4845
4846typedef PACKED_PRE struct PACKED_POST
4847{
4848 tHalMsgHeader header;
4849 tNoaStartIndParams noaStartIndParams;
4850}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004851#endif
4852
4853/*---------------------------------------------------------------------------
4854 * WLAN_HAL_HOST_RESUME_REQ
4855 *-------------------------------------------------------------------------*/
4856
4857typedef PACKED_PRE struct PACKED_POST
4858{
4859 tANI_U8 configuredMcstBcstFilterSetting;
4860}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4861
4862typedef PACKED_PRE struct PACKED_POST
4863{
4864 tHalMsgHeader header;
4865 tHalWlanHostResumeReqParam resumeReqParams;
4866}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4867
4868/*---------------------------------------------------------------------------
4869 * WLAN_HAL_HOST_RESUME_RSP
4870 *--------------------------------------------------------------------------*/
4871typedef PACKED_PRE struct PACKED_POST
4872{
4873 /* success or failure */
4874 tANI_U32 status;
4875} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4876
4877typedef PACKED_PRE struct PACKED_POST
4878{
4879 tHalMsgHeader header;
4880 tHalHostResumeRspParams hostResumeRspParams;
4881} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4882
Anand Kumar012623a2013-01-11 17:00:00 -08004883typedef PACKED_PRE struct PACKED_POST
4884{
4885 tANI_U16 staIdx;
4886 // Peer MAC Address, whose BA session has timed out
4887 tSirMacAddr peerMacAddr;
4888 // TID for which a BA session timeout is being triggered
4889 tANI_U8 baTID;
4890 // DELBA direction
4891 // 1 - Originator
4892 // 0 - Recipient
4893 tANI_U8 baDirection;
4894 tANI_U32 reasonCode;
4895 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4896} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4897
4898typedef PACKED_PRE struct PACKED_POST
4899{
4900 tHalMsgHeader header;
4901 tHalWlanDelBaIndMsg hostdelBaParam;
4902} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4903
Jeff Johnson295189b2012-06-20 16:38:30 -07004904/*---------------------------------------------------------------------------
4905 *PNO Messages
4906 *-------------------------------------------------------------------------*/
4907/*Max number of channels that a network can be found on*/
4908#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 26
4909
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304910/*Max number of channels that a network can be found on*/
4911#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4912
Jeff Johnson295189b2012-06-20 16:38:30 -07004913/*Maximum numbers of networks supported by PNO*/
4914#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4915
4916/*The number of scan time intervals that can be programmed into PNO*/
4917#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4918
4919/*Maximum size of the probe template*/
4920#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4921
Jeff Johnson32d95a32012-09-10 13:15:23 -07004922/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004923 Immediate - scanning will start immediately and PNO procedure will
4924 be repeated based on timer
4925 Suspend - scanning will start at suspend
4926 Resume - scanning will start on system resume*/
4927typedef enum
4928{
4929 ePNO_MODE_IMMEDIATE,
4930 ePNO_MODE_ON_SUSPEND,
4931 ePNO_MODE_ON_RESUME,
4932 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4933} ePNOMode;
4934
4935/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004936typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004937{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004938 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004939 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004940
Jeff Johnson295189b2012-06-20 16:38:30 -07004941 // Upper layer authentication types
4942 eAUTH_TYPE_WPA = 2,
4943 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004944
Jeff Johnson295189b2012-06-20 16:38:30 -07004945 eAUTH_TYPE_RSN = 4,
4946 eAUTH_TYPE_RSN_PSK = 5,
4947 eAUTH_TYPE_FT_RSN = 6,
4948 eAUTH_TYPE_FT_RSN_PSK = 7,
4949 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4950 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004951
Jeff Johnson295189b2012-06-20 16:38:30 -07004952 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4953
4954}tAuthType;
4955
4956/* Encryption type */
4957typedef enum eEdType
4958{
4959 eED_ANY = 0,
4960 eED_NONE = 1,
4961 eED_WEP = 2,
4962 eED_TKIP = 3,
4963 eED_CCMP = 4,
4964 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004965
Jeff Johnson295189b2012-06-20 16:38:30 -07004966 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4967} tEdType;
4968
4969/* SSID broadcast type */
4970typedef enum eSSIDBcastType
4971{
4972 eBCAST_UNKNOWN = 0,
4973 eBCAST_NORMAL = 1,
4974 eBCAST_HIDDEN = 2,
4975
4976 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4977} tSSIDBcastType;
4978
Jeff Johnson32d95a32012-09-10 13:15:23 -07004979/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004980 The network description for which PNO will have to look for
4981*/
4982typedef PACKED_PRE struct PACKED_POST
4983{
4984 /*SSID of the BSS*/
4985 tSirMacSSid ssId;
4986
4987 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004988 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07004989
4990 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004991 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07004992
Jeff Johnson32d95a32012-09-10 13:15:23 -07004993 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07004994 0 - if all channels */
4995 tANI_U8 ucChannelCount;
4996 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
4997
4998 /*Indicates the RSSI threshold for the network to be considered*/
4999 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005000}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005001
5002typedef PACKED_PRE struct PACKED_POST
5003{
5004 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005005 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005006
Jeff Johnson32d95a32012-09-10 13:15:23 -07005007 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005008 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005009 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005010
Jeff Johnson32d95a32012-09-10 13:15:23 -07005011 /*e.g: 2 3
5012 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005013 - it will wait 2s between consecutive scans for 3 times
5014 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005015}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005016
Jeff Johnson32d95a32012-09-10 13:15:23 -07005017/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005018 The network parameters to be sent to the PNO algorithm
5019*/
5020typedef PACKED_PRE struct PACKED_POST
5021{
5022 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005023 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005024
Jeff Johnson32d95a32012-09-10 13:15:23 -07005025 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005026 two consecutive scan procedures
5027 If the desired is for a uniform timer that fires always at the exact same
5028 interval - one single value is to be set
5029 If there is a desire for a more complex - telescopic like timer multiple
5030 values can be set - once PNO reaches the end of the array it will
5031 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005032 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005033
5034}tScanTimersType;
5035
5036typedef PACKED_PRE struct PACKED_POST {
5037
5038 /*Enable PNO*/
5039 tANI_U32 enable;
5040
5041 /*Immediate, On Suspend, On Resume*/
5042 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005043
Jeff Johnson295189b2012-06-20 16:38:30 -07005044 /*Number of networks sent for PNO*/
5045 tANI_U32 ucNetworksCount;
5046
5047 /*The networks that PNO needs to look for*/
5048 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5049
5050 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005051 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005052
5053 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005054 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005055 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5056
5057 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005058 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005059 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5060
5061} tPrefNetwListParams, * tpPrefNetwListParams;
5062
5063/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005064 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005065*/
5066typedef PACKED_PRE struct PACKED_POST
5067{
5068 tHalMsgHeader header;
5069 tPrefNetwListParams prefNetwListParams;
5070} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5071
5072
Jeff Johnson32d95a32012-09-10 13:15:23 -07005073/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005074 The network description for which PNO will have to look for
5075*/
5076typedef PACKED_PRE struct PACKED_POST
5077{
5078 /*SSID of the BSS*/
5079 tSirMacSSid ssId;
5080
5081 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005082 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005083
5084 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005085 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005086
5087 /*SSID broadcast type, normal, hidden or unknown*/
5088 tSSIDBcastType bcastNetworkType;
5089
Jeff Johnson32d95a32012-09-10 13:15:23 -07005090 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005091 0 - if all channels */
5092 tANI_U8 ucChannelCount;
5093 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5094
5095 /*Indicates the RSSI threshold for the network to be considered*/
5096 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005097}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005098
5099typedef PACKED_PRE struct PACKED_POST {
5100
5101 /*Enable PNO*/
5102 tANI_U32 enable;
5103
5104 /*Immediate, On Suspend, On Resume*/
5105 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005106
Jeff Johnson295189b2012-06-20 16:38:30 -07005107 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005108 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005109
5110 /*The networks that PNO needs to look for*/
5111 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5112
5113 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005114 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005115
5116 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005117 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005118 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5119
5120 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005121 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005122 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5123
5124} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5125
5126/*
5127 Preferred network list request new
5128*/
5129typedef PACKED_PRE struct PACKED_POST
5130{
5131 tHalMsgHeader header;
5132 tPrefNetwListParamsNew prefNetwListParams;
5133} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5134
5135/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005136 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005137*/
5138typedef PACKED_PRE struct PACKED_POST
5139{
5140 tHalMsgHeader header;
5141
Jeff Johnson32d95a32012-09-10 13:15:23 -07005142 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005143 the request and will start scanning*/
5144 tANI_U32 status;
5145} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5146
5147/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005148 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005149*/
5150typedef PACKED_PRE struct PACKED_POST {
5151
5152 /*Network that was found with the highest RSSI*/
5153 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005154
Jeff Johnson295189b2012-06-20 16:38:30 -07005155 /*Indicates the RSSI */
5156 tANI_U8 rssi;
5157
5158} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5159
5160/*
5161 Preferred network found indication
5162*/
5163typedef PACKED_PRE struct PACKED_POST {
5164
5165 tHalMsgHeader header;
5166 tPrefNetwFoundParams prefNetwFoundParams;
5167} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5168
5169
5170typedef PACKED_PRE struct PACKED_POST {
5171
5172 /*RSSI Threshold*/
5173 tANI_U8 ucRssiThreshold;
5174
5175} tRssiFilterParams, * tpRssiFilterParams;
5176
5177/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005178 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005179*/
5180typedef PACKED_PRE struct PACKED_POST
5181{
5182 tHalMsgHeader header;
5183 tRssiFilterParams prefRSSIFilterParams;
5184} tSetRssiFilterReq, *tpSetRssiFilterReq;
5185
5186/*
5187 Set RSSI filter resp
5188*/
5189typedef PACKED_PRE struct PACKED_POST{
5190 tHalMsgHeader header;
5191 /*status of the request */
5192 tANI_U32 status;
5193} tSetRssiFilterResp, *tpSetRssiFilterResp;
5194/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005195 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005196*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005197typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005198{
5199
5200 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005201 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005202
5203 /*Lets PNO know that host has determined the regulatory domain*/
5204 tANI_U8 b11dResolved;
5205
5206 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005207 tANI_U8 ucChannelCount;
5208 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005209
5210 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005211 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005212
5213 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005214 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005215
5216 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005217 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005218
5219 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005220 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005221
5222 /*Cb State*/
5223 ePhyChanBondState cbState;
5224
5225} tUpdateScanParams, * tpUpdateScanParams;
5226
5227/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305228 Update scan params
5229*/
5230typedef PACKED_PRE struct PACKED_POST
5231{
5232
5233 /*Host setting for 11d*/
5234 tANI_U8 b11dEnabled;
5235
5236 /*Lets PNO know that host has determined the regulatory domain*/
5237 tANI_U8 b11dResolved;
5238
5239 /*Channels on which PNO is allowed to scan*/
5240 tANI_U8 ucChannelCount;
5241 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5242
5243 /*Minimum channel time*/
5244 tANI_U16 usActiveMinChTime;
5245
5246 /*Maximum channel time*/
5247 tANI_U16 usActiveMaxChTime;
5248
5249 /*Minimum channel time*/
5250 tANI_U16 usPassiveMinChTime;
5251
5252 /*Maximum channel time*/
5253 tANI_U16 usPassiveMaxChTime;
5254
5255 /*Cb State*/
5256 ePhyChanBondState cbState;
5257
5258} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5259
5260/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005261 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005262 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005263*/
5264typedef PACKED_PRE struct PACKED_POST{
5265
5266 tHalMsgHeader header;
5267 tUpdateScanParams scanParams;
5268} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5269
5270/*
5271 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005272 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005273*/
5274typedef PACKED_PRE struct PACKED_POST{
5275
5276 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305277 tUpdateScanParamsEx scanParams;
5278} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5279
5280/*
5281 Update scan params - sent from host to PNO
5282 to be used during PNO scanning
5283*/
5284typedef PACKED_PRE struct PACKED_POST{
5285
5286 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005287
5288 /*status of the request */
5289 tANI_U32 status;
5290
5291} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5292
5293/*---------------------------------------------------------------------------
5294 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5295 *--------------------------------------------------------------------------*/
5296typedef PACKED_PRE struct PACKED_POST
5297{
5298 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5299 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5300 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5301 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5302} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5303
5304typedef PACKED_PRE struct PACKED_POST
5305{
5306 tHalMsgHeader header;
5307 tHalTxPerTrackingReqParam txPerTrackingParams;
5308} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5309
5310/*---------------------------------------------------------------------------
5311 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5312 *--------------------------------------------------------------------------*/
5313typedef PACKED_PRE struct PACKED_POST
5314{
5315 /* success or failure */
5316 tANI_U32 status;
5317} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5318
5319typedef PACKED_PRE struct PACKED_POST
5320{
5321 tHalMsgHeader header;
5322 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5323} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5324
5325/*---------------------------------------------------------------------------
5326 * WLAN_HAL_TX_PER_HIT_IND
5327 *--------------------------------------------------------------------------*/
5328typedef PACKED_PRE struct PACKED_POST
5329{
5330 tHalMsgHeader header;
5331}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5332
5333/*---------------------------------------------------------------------------
5334 *******************Packet Filtering Definitions Begin*******************
5335 *--------------------------------------------------------------------------*/
5336#define HAL_PROTOCOL_DATA_LEN 8
5337#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5338#define HAL_MAX_NUM_FILTERS 20
5339#define HAL_MAX_CMP_PER_FILTER 10
5340
5341typedef enum
5342{
5343 HAL_RCV_FILTER_TYPE_INVALID,
5344 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5345 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5346 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5347}tHalReceivePacketFilterType;
5348
Jeff Johnson32d95a32012-09-10 13:15:23 -07005349typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005350{
5351 HAL_FILTER_PROTO_TYPE_INVALID,
5352 HAL_FILTER_PROTO_TYPE_MAC,
5353 HAL_FILTER_PROTO_TYPE_ARP,
5354 HAL_FILTER_PROTO_TYPE_IPV4,
5355 HAL_FILTER_PROTO_TYPE_IPV6,
5356 HAL_FILTER_PROTO_TYPE_UDP,
5357 HAL_FILTER_PROTO_TYPE_MAX
5358}tHalRcvPktFltProtocolType;
5359
Jeff Johnson32d95a32012-09-10 13:15:23 -07005360typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005361{
5362 HAL_FILTER_CMP_TYPE_INVALID,
5363 HAL_FILTER_CMP_TYPE_EQUAL,
5364 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5365 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5366 HAL_FILTER_CMP_TYPE_MAX
5367}tHalRcvPktFltCmpFlagType;
5368
Jeff Johnson32d95a32012-09-10 13:15:23 -07005369typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005370{
5371 tANI_U8 protocolLayer;
5372 tANI_U8 cmpFlag;
5373 tANI_U16 dataLength; /* Length of the data to compare */
5374 tANI_U8 dataOffset; /* from start of the respective frame header */
5375 tANI_U8 reserved; /* Reserved field */
5376 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5377 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5378}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5379
5380typedef PACKED_PRE struct PACKED_POST
5381{
5382 tANI_U8 filterId;
5383 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005384 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005385 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005386 tHalRcvPktFilterParams paramsData[1];
5387}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5388
5389typedef PACKED_PRE struct PACKED_POST
5390{
Jeff Johnsone7245742012-09-05 17:12:55 -07005391 tANI_U8 filterId;
5392 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005393 tANI_U8 numParams;
5394 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005395 tANI_U8 bssIdx;
5396 tHalRcvPktFilterParams paramsData[1];
5397}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5398
5399typedef PACKED_PRE struct PACKED_POST
5400{
Jeff Johnson295189b2012-06-20 16:38:30 -07005401 tHalMsgHeader header;
5402 tHalRcvPktFilterCfgType pktFilterCfg;
5403} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5404
Jeff Johnsone7245742012-09-05 17:12:55 -07005405typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005406{
5407 tANI_U8 dataOffset; /* from start of the respective frame header */
5408 tANI_U32 cMulticastAddr;
5409 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005410 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005411} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5412
5413typedef PACKED_PRE struct PACKED_POST
5414{
5415 /* success or failure */
5416 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005417 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005418} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5419
5420typedef PACKED_PRE struct PACKED_POST
5421{
5422 tHalMsgHeader header;
5423 tHalSetPktFilterRspParams pktFilterRspParams;
5424} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5425
Jeff Johnsone7245742012-09-05 17:12:55 -07005426typedef PACKED_PRE struct PACKED_POST
5427{
5428 tANI_U8 bssIdx;
5429} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005430
5431typedef PACKED_PRE struct PACKED_POST
5432{
5433 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005434 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005435} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5436
Jeff Johnsone7245742012-09-05 17:12:55 -07005437
Jeff Johnson295189b2012-06-20 16:38:30 -07005438typedef PACKED_PRE struct PACKED_POST
5439{
5440 tANI_U8 filterId;
5441 tANI_U32 matchCnt;
5442} tHalRcvFltPktMatchCnt;
5443typedef PACKED_PRE struct PACKED_POST
5444{
5445 /* Success or Failure */
5446 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005447 tANI_U32 matchCnt;
5448 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005449 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005450} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5451
5452typedef PACKED_PRE struct PACKED_POST
5453{
5454 tHalMsgHeader header;
5455 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5456} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5457
5458typedef PACKED_PRE struct PACKED_POST
5459{
5460 tANI_U32 status; /* only valid for response message */
5461 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005462 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005463}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5464
5465typedef PACKED_PRE struct PACKED_POST
5466{
5467 tHalMsgHeader header;
5468 tHalRcvFltPktClearParam filterClearParam;
5469} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5470
5471typedef PACKED_PRE struct PACKED_POST
5472{
5473 tHalMsgHeader header;
5474 tHalRcvFltPktClearParam filterClearParam;
5475} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5476
5477typedef PACKED_PRE struct PACKED_POST
5478{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005479 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005480 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005481}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5482
5483typedef PACKED_PRE struct PACKED_POST
5484{
5485 tHalMsgHeader header;
5486 tHalRcvFltMcAddrListType mcAddrList;
5487} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5488
5489typedef PACKED_PRE struct PACKED_POST
5490{
5491 tHalMsgHeader header;
5492 tHalRcvFltPktSetMcListRspType rspParam;
5493} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5494
5495
5496/*---------------------------------------------------------------------------
5497 *******************Packet Filtering Definitions End*******************
5498 *--------------------------------------------------------------------------*/
5499
5500typedef PACKED_PRE struct PACKED_POST
5501{
5502 /* Ignore DTIM */
5503 tANI_U32 uIgnoreDTIM;
5504
5505 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005506 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005507
5508 /* Listen Interval */
5509 tANI_U32 uListenInterval;
5510
5511 /* Broadcast Multicast Filter */
5512 tANI_U32 uBcastMcastFilter;
5513
5514 /* Beacon Early Termination */
5515 tANI_U32 uEnableBET;
5516
5517 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005518 tANI_U32 uBETInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -07005519}tSetPowerParamsType, *tpSetPowerParamsType;
5520
5521typedef PACKED_PRE struct PACKED_POST
5522{
5523 tHalMsgHeader header;
5524 tSetPowerParamsType powerParams;
5525} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5526
5527typedef PACKED_PRE struct PACKED_POST{
5528
5529 tHalMsgHeader header;
5530
5531 /*status of the request */
5532 tANI_U32 status;
5533
5534} tSetPowerParamsResp, *tpSetPowerParamsResp;
5535
5536/*---------------------------------------------------------------------------
5537 ****************Capability bitmap exchange definitions and macros starts*************
5538 *--------------------------------------------------------------------------*/
5539
Anand Kumar012623a2013-01-11 17:00:00 -08005540typedef enum {
5541 MCC = 0,
5542 P2P = 1,
5543 DOT11AC = 2,
5544 SLM_SESSIONIZATION = 3,
5545 DOT11AC_OPMODE = 4,
5546 SAP32STA = 5,
5547 TDLS = 6,
5548 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5549 WLANACTIVE_OFFLOAD = 8,
5550 BEACON_OFFLOAD = 9,
5551 SCAN_OFFLOAD = 10,
5552 ROAM_OFFLOAD = 11,
5553 BCN_MISS_OFFLOAD = 12,
5554 STA_POWERSAVE = 13,
5555 STA_ADVANCED_PWRSAVE = 14,
5556 AP_UAPSD = 15,
5557 AP_DFS = 16,
5558 BLOCKACK = 17,
5559 PHY_ERR = 18,
5560 BCN_FILTER = 19,
5561 RTT = 20,
5562 RATECTRL = 21,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -07005563 WOW = 22
5564 //MAX_FEATURE_SUPPORTED = 128
Anand Kumar012623a2013-01-11 17:00:00 -08005565} placeHolderInCapBitmap;
5566
Jeff Johnson295189b2012-06-20 16:38:30 -07005567typedef PACKED_PRE struct PACKED_POST{
5568
5569 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005570} tWlanFeatCaps, *tpWlanFeatCaps;
5571
5572typedef PACKED_PRE struct PACKED_POST{
5573
Jeff Johnson32d95a32012-09-10 13:15:23 -07005574 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005575 tWlanFeatCaps wlanFeatCaps;
5576
5577} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5578
Jeff Johnsone7245742012-09-05 17:12:55 -07005579#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5580#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005581#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005582#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
5583
Jeff Johnsone7245742012-09-05 17:12:55 -07005584tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5585
Jeff Johnson295189b2012-06-20 16:38:30 -07005586#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005587 if ((b)<=127) { \
5588 arr_index = (b)/32; \
5589 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005590 (a)->featCaps[arr_index] |= (1<<bit_index); \
5591 } \
5592 }
5593#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005594 if ((b)<=127) { \
5595 arr_index = (b)/32; \
5596 bit_index = (b)%32; \
5597 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005598 } \
5599 }
5600#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005601 if ((b)<=127) { \
5602 arr_index = (b)/32; \
5603 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005604 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005605 } \
5606 }
5607
5608/*---------------------------------------------------------------------------
5609 * WLAN_HAL_WAKE_REASON_IND
5610 *--------------------------------------------------------------------------*/
5611
5612/* status codes to help debug rekey failures */
5613typedef enum
5614{
5615 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5616 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5617 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5618 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5619 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5620 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5621 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5622 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5623 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5624 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5625
5626 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5627} tGTKRekeyStatus;
5628
5629/* wake reason types */
5630typedef enum
5631{
5632 WLAN_HAL_WAKE_REASON_NONE = 0,
5633 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5634 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5635 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5636 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5637 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5638 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5639 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5640} tWakeReasonType;
5641
5642/*
5643 Wake Packet which is saved at tWakeReasonParams.DataStart
5644 This data is sent for any wake reasons that involve a packet-based wakeup :
5645
5646 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5647 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5648 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5649 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5650 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5651
5652 The information is provided to the host for auditing and debug purposes
5653
5654*/
5655
5656/*
5657 Wake reason indication parameters
5658*/
5659typedef PACKED_PRE struct PACKED_POST
5660{
5661 uint32 ulReason; /* see tWakeReasonType */
5662 uint32 ulReasonArg; /* argument specific to the reason type */
5663 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5664 HAL truncates the data (i.e. data packets) this length
5665 will be less than the actual length */
5666 uint32 ulActualDataLen; /* actual length of data */
5667 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5668 see specific wake type */
5669} tWakeReasonParams, *tpWakeReasonParams;
5670
5671/*
5672 Wake reason indication
5673*/
5674typedef PACKED_PRE struct PACKED_POST
5675{
5676 tHalMsgHeader header;
5677 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005678 tANI_U32 uBssIdx : 8;
5679 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005680} tHalWakeReasonInd, *tpHalWakeReasonInd;
5681
5682/*---------------------------------------------------------------------------
5683* WLAN_HAL_GTK_OFFLOAD_REQ
5684*--------------------------------------------------------------------------*/
5685
5686#define HAL_GTK_KEK_BYTES 16
5687#define HAL_GTK_KCK_BYTES 16
5688
5689#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5690
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005691#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5692
Jeff Johnson295189b2012-06-20 16:38:30 -07005693typedef PACKED_PRE struct PACKED_POST
5694{
5695 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005696 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005697 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5698 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005699 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005700} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5701
5702typedef PACKED_PRE struct PACKED_POST
5703{
5704 tHalMsgHeader header;
5705 tHalGtkOffloadReqParams gtkOffloadReqParams;
5706} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5707
5708/*---------------------------------------------------------------------------
5709* WLAN_HAL_GTK_OFFLOAD_RSP
5710*--------------------------------------------------------------------------*/
5711typedef PACKED_PRE struct PACKED_POST
5712{
5713 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005714 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005715} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5716
5717typedef PACKED_PRE struct PACKED_POST
5718{
5719 tHalMsgHeader header;
5720 tHalGtkOffloadRspParams gtkOffloadRspParams;
5721} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5722
5723
5724/*---------------------------------------------------------------------------
5725* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5726*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005727typedef PACKED_PRE struct PACKED_POST
5728{
5729 tANI_U8 bssIdx;
5730
5731} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005732
5733typedef PACKED_PRE struct PACKED_POST
5734{
5735 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005736 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005737} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5738
5739/*---------------------------------------------------------------------------
5740* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5741*--------------------------------------------------------------------------*/
5742typedef PACKED_PRE struct PACKED_POST
5743{
5744 tANI_U32 ulStatus; /* success or failure */
5745 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5746 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5747 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5748 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5749 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005750 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005751} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5752
5753typedef PACKED_PRE struct PACKED_POST
5754{
5755 tHalMsgHeader header;
5756 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5757} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5758
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005759/*---------------------------------------------------------------------------
5760* WLAN_HAL_DHCP_IND
5761*--------------------------------------------------------------------------*/
5762typedef PACKED_PRE struct PACKED_POST
5763{
5764 /*Indicates the device mode which indicates about the DHCP activity */
5765 tANI_U8 device_mode;
5766 tSirMacAddr macAddr;
5767} tDHCPInfo, *tpDHCPInfo;
5768
5769typedef PACKED_PRE struct PACKED_POST
5770{
5771 tHalMsgHeader header;
5772 tANI_U32 status; /* success or failure */
5773} tDHCPIndStatus, *tpDHCPIndstatus;
5774
Jeff Johnson295189b2012-06-20 16:38:30 -07005775/*
5776 Thermal Mitigation mode of operation.
5777 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5778 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5779 reducing transmit power
5780 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5781*/
5782typedef enum
5783{
5784 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5785 HAL_THERMAL_MITIGATION_MODE_0,
5786 HAL_THERMAL_MITIGATION_MODE_1,
5787 HAL_THERMAL_MITIGATION_MODE_2,
5788 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5789}tHalThermalMitigationModeType;
5790//typedef tANI_S16 tHalThermalMitigationModeType;
5791
5792/*
5793 Thermal Mitigation level.
5794 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5795 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5796
5797 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5798 level indicates normal mode of operation
5799 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5800 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5801 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5802 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5803*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005804typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005805{
5806 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5807 HAL_THERMAL_MITIGATION_LEVEL_0,
5808 HAL_THERMAL_MITIGATION_LEVEL_1,
5809 HAL_THERMAL_MITIGATION_LEVEL_2,
5810 HAL_THERMAL_MITIGATION_LEVEL_3,
5811 HAL_THERMAL_MITIGATION_LEVEL_4,
5812 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5813}tHalThermalMitigationLevelType;
5814//typedef tANI_S16 tHalThermalMitigationLevelType;
5815
5816typedef PACKED_PRE struct PACKED_POST
5817{
5818 /* Thermal Mitigation Operation Mode */
5819 tHalThermalMitigationModeType thermalMitMode;
5820
5821 /* Thermal Mitigation Level */
5822 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005823
Jeff Johnson295189b2012-06-20 16:38:30 -07005824}tSetThermalMitgationType, *tpSetThermalMitgationType;
5825
5826/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5827typedef PACKED_PRE struct PACKED_POST
5828{
5829 tHalMsgHeader header;
5830 tSetThermalMitgationType thermalMitParams;
5831} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5832
5833typedef PACKED_PRE struct PACKED_POST{
5834
5835 tHalMsgHeader header;
5836
5837 /*status of the request */
5838 tANI_U32 status;
5839
5840} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5841
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08005842/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
5843provided to FW from Host via periodic messages */
5844typedef PACKED_PRE struct PACKED_POST {
5845 /* TX stats */
5846 uint32 txBytesPushed;
5847 uint32 txPacketsPushed;
5848
5849 /* RX stats */
5850 uint32 rxBytesRcvd;
5851 uint32 rxPacketsRcvd;
5852 uint32 rxTimeTotal;
5853} tStaStatsClassB, *tpStaStatsClassB;
5854
5855typedef PACKED_PRE struct PACKED_POST {
5856
5857 /* Duration over which this stats was collected */
5858 tANI_U32 duration;
5859
5860 /* Per STA Stats */
5861 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
5862} tStatsClassBIndParams, *tpStatsClassBIndParams;
5863
5864typedef PACKED_PRE struct PACKED_POST {
5865
5866 tHalMsgHeader header;
5867
5868 /* Class B Stats */
5869 tStatsClassBIndParams statsClassBIndParams;
5870} tStatsClassBInd, *tpStatsClassBInd;
5871
Jeff Johnson295189b2012-06-20 16:38:30 -07005872#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
5873#pragma pack(pop)
5874#elif defined(__ANI_COMPILER_PRAGMA_PACK)
5875#else
5876#endif
5877
5878#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07005879