blob: 4c2758383c9f980d902427c05b62140e0a7f4755 [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
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003732#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003733#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003734#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003735
3736typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3737{
3738 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3739 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3740 //Only support 2 possible Network Advertisement IPv6 address
3741 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3742 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3743 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3744 tANI_U8 srcIPv6AddrValid : 1;
3745 tANI_U8 targetIPv6Addr1Valid : 1;
3746 tANI_U8 targetIPv6Addr2Valid : 1;
3747 tANI_U8 reserved1 : 5;
3748 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003749 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003750 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003751} tHalNSOffloadParams;
3752
3753typedef PACKED_PRE struct PACKED_POST
3754{
3755 tANI_U8 offloadType;
3756 tANI_U8 enableOrDisable;
3757 PACKED_PRE union PACKED_POST
3758 {
3759 tANI_U8 hostIpv4Addr [4];
3760 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3761 } params;
3762} tHalHostOffloadReq, *tpHalHostOffloadReq;
3763
3764typedef PACKED_PRE struct PACKED_POST
3765{
3766 tHalMsgHeader header;
3767 tHalHostOffloadReq hostOffloadParams;
3768 tHalNSOffloadParams nsOffloadParams;
3769} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3770
3771/*---------------------------------------------------------------------------
3772 * WLAN_HAL_KEEP_ALIVE_REQ
3773 *--------------------------------------------------------------------------*/
3774/* Packet Types. */
3775#define HAL_KEEP_ALIVE_NULL_PKT 1
3776#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3777
3778/* Enable or disable keep alive */
3779#define HAL_KEEP_ALIVE_DISABLE 0
3780#define HAL_KEEP_ALIVE_ENABLE 1
3781
3782/* Keep Alive request. */
3783typedef PACKED_PRE struct PACKED_POST
3784{
3785 tANI_U8 packetType;
3786 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003787 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003788 tHalIpv4Addr destIpv4Addr;
3789 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003790 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003791} tHalKeepAliveReq, *tpHalKeepAliveReq;
3792
3793typedef PACKED_PRE struct PACKED_POST
3794{
3795 tHalMsgHeader header;
3796 tHalKeepAliveReq KeepAliveParams;
3797} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3798
3799/*---------------------------------------------------------------------------
3800 * WLAN_HAL_SET_RSSI_THRESH_REQ
3801 *--------------------------------------------------------------------------*/
3802typedef PACKED_PRE struct PACKED_POST
3803{
3804 tANI_S8 ucRssiThreshold1 : 8;
3805 tANI_S8 ucRssiThreshold2 : 8;
3806 tANI_S8 ucRssiThreshold3 : 8;
3807 tANI_U8 bRssiThres1PosNotify : 1;
3808 tANI_U8 bRssiThres1NegNotify : 1;
3809 tANI_U8 bRssiThres2PosNotify : 1;
3810 tANI_U8 bRssiThres2NegNotify : 1;
3811 tANI_U8 bRssiThres3PosNotify : 1;
3812 tANI_U8 bRssiThres3NegNotify : 1;
3813 tANI_U8 bReserved10 : 2;
3814} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003815
Jeff Johnson295189b2012-06-20 16:38:30 -07003816typedef PACKED_PRE struct PACKED_POST
3817{
3818 tHalMsgHeader header;
3819 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003820} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003821
3822/*---------------------------------------------------------------------------
3823 * WLAN_HAL_ENTER_UAPSD_REQ
3824 *--------------------------------------------------------------------------*/
3825typedef PACKED_PRE struct PACKED_POST
3826{
3827 tANI_U8 bkDeliveryEnabled:1;
3828 tANI_U8 beDeliveryEnabled:1;
3829 tANI_U8 viDeliveryEnabled:1;
3830 tANI_U8 voDeliveryEnabled:1;
3831 tANI_U8 bkTriggerEnabled:1;
3832 tANI_U8 beTriggerEnabled:1;
3833 tANI_U8 viTriggerEnabled:1;
3834 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003835 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003836} tUapsdReqParams, *tpUapsdReqParams;
3837
3838typedef PACKED_PRE struct PACKED_POST
3839{
3840 tHalMsgHeader header;
3841 tUapsdReqParams enterUapsdParams;
3842} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3843
3844/*---------------------------------------------------------------------------
3845 * WLAN_HAL_EXIT_UAPSD_REQ
3846 *--------------------------------------------------------------------------*/
3847typedef PACKED_PRE struct PACKED_POST
3848{
3849 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003850 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003851} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3852
3853/*---------------------------------------------------------------------------
3854 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3855 *--------------------------------------------------------------------------*/
3856#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3857#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3858
3859typedef PACKED_PRE struct PACKED_POST
3860{
3861 tANI_U8 ucPatternId; // Pattern ID
3862 // Pattern byte offset from beginning of the 802.11 packet to start of the
3863 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003864 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003865 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3866 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3867 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3868 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3869 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3870 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003871 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003872} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3873
3874typedef PACKED_PRE struct PACKED_POST
3875{
3876 tHalMsgHeader header;
3877 tHalWowlAddBcastPtrn ptrnParams;
3878} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003879
Jeff Johnsone7245742012-09-05 17:12:55 -07003880
3881
Jeff Johnson295189b2012-06-20 16:38:30 -07003882/*---------------------------------------------------------------------------
3883 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3884 *--------------------------------------------------------------------------*/
3885typedef PACKED_PRE struct PACKED_POST
3886{
3887 /* Pattern ID of the wakeup pattern to be deleted */
3888 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003889 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003890} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3891
3892typedef PACKED_PRE struct PACKED_POST
3893{
3894 tHalMsgHeader header;
3895 tHalWowlDelBcastPtrn ptrnParams;
3896} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3897
3898/*---------------------------------------------------------------------------
3899 * WLAN_HAL_ENTER_WOWL_REQ
3900 *--------------------------------------------------------------------------*/
3901typedef PACKED_PRE struct PACKED_POST
3902{
3903 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003904 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003905
3906 /* Magic pattern */
3907 tSirMacAddr magicPtrn;
3908
Jeff Johnson32d95a32012-09-10 13:15:23 -07003909 /* Enables/disables packet pattern filtering in firmware.
3910 Enabling this flag enables broadcast pattern matching
3911 in Firmware. If unicast pattern matching is also desired,
3912 ucUcastPatternFilteringEnable flag must be set tot true
3913 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003914 */
3915 tANI_U8 ucPatternFilteringEnable;
3916
Jeff Johnson32d95a32012-09-10 13:15:23 -07003917 /* Enables/disables unicast packet pattern filtering.
3918 This flag specifies whether we want to do pattern match
3919 on unicast packets as well and not just broadcast packets.
3920 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003921 (main controlling flag) is set to false
3922 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003923 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003924
Jeff Johnson32d95a32012-09-10 13:15:23 -07003925 /* This configuration is valid only when magicPktEnable=1.
3926 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003927 * Channel Switch Action Frame.
3928 */
3929 tANI_U8 ucWowChnlSwitchRcv;
3930
Jeff Johnson32d95a32012-09-10 13:15:23 -07003931 /* This configuration is valid only when magicPktEnable=1.
3932 * It requests hardware to wake up when it receives the
3933 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003934 */
3935 tANI_U8 ucWowDeauthRcv;
3936
Jeff Johnson32d95a32012-09-10 13:15:23 -07003937 /* This configuration is valid only when magicPktEnable=1.
3938 * It requests hardware to wake up when it receives the
3939 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003940 */
3941 tANI_U8 ucWowDisassocRcv;
3942
Jeff Johnson32d95a32012-09-10 13:15:23 -07003943 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003944 * It requests hardware to wake up when it has missed
3945 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003946 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003947 */
3948 tANI_U8 ucWowMaxMissedBeacons;
3949
Jeff Johnson32d95a32012-09-10 13:15:23 -07003950 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003951 * This is a timeout value in units of microsec. It requests
3952 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003953 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003954 */
3955 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003956
Jeff Johnson295189b2012-06-20 16:38:30 -07003957 /* This configuration directs the WoW packet filtering to look for EAP-ID
3958 * requests embedded in EAPOL frames and use this as a wake source.
3959 */
3960 tANI_U8 ucWoWEAPIDRequestEnable;
3961
3962 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3963 * requests and use this as a wake source.
3964 */
3965 tANI_U8 ucWoWEAPOL4WayEnable;
3966
3967 /* This configuration allows a host wakeup on an network scan offload match.
3968 */
3969 tANI_U8 ucWowNetScanOffloadMatch;
3970
3971 /* This configuration allows a host wakeup on any GTK rekeying error.
3972 */
3973 tANI_U8 ucWowGTKRekeyError;
3974
3975 /* This configuration allows a host wakeup on BSS connection loss.
3976 */
3977 tANI_U8 ucWoWBSSConnLoss;
3978
Jeff Johnsone7245742012-09-05 17:12:55 -07003979 tANI_U8 bssIdx;
3980
Jeff Johnson295189b2012-06-20 16:38:30 -07003981} tHalWowlEnterParams, *tpHalWowlEnterParams;
3982
3983typedef PACKED_PRE struct PACKED_POST
3984{
3985 tHalMsgHeader header;
3986 tHalWowlEnterParams enterWowlParams;
3987} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
3988
3989/*---------------------------------------------------------------------------
3990 * WLAN_HAL_EXIT_WOWL_REQ
3991 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07003992
Jeff Johnson295189b2012-06-20 16:38:30 -07003993typedef PACKED_PRE struct PACKED_POST
3994{
Jeff Johnsone7245742012-09-05 17:12:55 -07003995 tANI_U8 bssIdx;
3996
3997} tHalWowlExitParams, *tpHalWowlExitParams;
3998
3999typedef PACKED_PRE struct PACKED_POST
4000{
4001 tHalMsgHeader header;
4002 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004003} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4004
4005/*---------------------------------------------------------------------------
4006 * WLAN_HAL_GET_RSSI_REQ
4007 *--------------------------------------------------------------------------*/
4008typedef PACKED_PRE struct PACKED_POST
4009{
4010 tHalMsgHeader header;
4011} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4012
Anand Kumar012623a2013-01-11 17:00:00 -08004013typedef PACKED_PRE struct PACKED_POST
4014{
4015 /* Valid STA Idx for per STA stats request */
4016 tANI_U32 staId;
4017
4018}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4019
4020
4021/*---------------------------------------------------------------------------
4022 * WLAN_HAL_GET_ROAM_RSSI_REQ
4023 *--------------------------------------------------------------------------*/
4024typedef PACKED_PRE struct PACKED_POST
4025{
4026 tHalMsgHeader header;
4027 tHalRoamRssiReqParams roamRssiReqParams;
4028} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4029
4030
Jeff Johnson295189b2012-06-20 16:38:30 -07004031/*---------------------------------------------------------------------------
4032 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4033 *--------------------------------------------------------------------------*/
4034typedef PACKED_PRE struct PACKED_POST {
4035 tANI_U8 staidx; // STA index
4036 tANI_U8 ac; // Access Category
4037 tANI_U8 up; // User Priority
4038 tANI_U32 srvInterval; // Service Interval
4039 tANI_U32 susInterval; // Suspend Interval
4040 tANI_U32 delayInterval; // Delay Interval
4041} tUapsdInfo, tpUapsdInfo;
4042
4043typedef PACKED_PRE struct PACKED_POST
4044{
4045 tHalMsgHeader header;
4046 tUapsdInfo enableUapsdAcParams;
4047} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4048
4049/*---------------------------------------------------------------------------
4050 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4051 *--------------------------------------------------------------------------*/
4052typedef PACKED_PRE struct PACKED_POST {
4053 tANI_U8 setMcstBcstFilterSetting;
4054 tANI_U8 setMcstBcstFilter;
4055} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4056
4057typedef PACKED_PRE struct PACKED_POST
4058{
4059 tHalMsgHeader header;
4060 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4061} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4062
4063/*---------------------------------------------------------------------------
4064 * WLAN_HAL_ENTER_IMPS_RSP
4065 *--------------------------------------------------------------------------*/
4066typedef PACKED_PRE struct PACKED_POST
4067{
4068 /* success or failure */
4069 tANI_U32 status;
4070} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4071
4072typedef PACKED_PRE struct PACKED_POST
4073{
4074 tHalMsgHeader header;
4075 tHalEnterImpsRspParams enterImpsRspParams;
4076} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4077
4078/*---------------------------------------------------------------------------
4079 * WLAN_HAL_EXIT_IMPS_RSP
4080 *--------------------------------------------------------------------------*/
4081typedef PACKED_PRE struct PACKED_POST
4082{
4083 /* success or failure */
4084 tANI_U32 status;
4085} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4086
4087typedef PACKED_PRE struct PACKED_POST
4088{
4089 tHalMsgHeader header;
4090 tHalExitImpsRspParams exitImpsRspParams;
4091} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4092
4093/*---------------------------------------------------------------------------
4094 * WLAN_HAL_ENTER_BMPS_RSP
4095 *--------------------------------------------------------------------------*/
4096typedef PACKED_PRE struct PACKED_POST
4097{
4098 /* success or failure */
4099 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004100 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004101} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4102
4103typedef PACKED_PRE struct PACKED_POST
4104{
4105 tHalMsgHeader header;
4106 tHalEnterBmpsRspParams enterBmpsRspParams;
4107} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4108
4109/*---------------------------------------------------------------------------
4110 * WLAN_HAL_EXIT_BMPS_RSP
4111 *--------------------------------------------------------------------------*/
4112typedef PACKED_PRE struct PACKED_POST
4113{
4114 /* success or failure */
4115 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004116 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004117} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4118
4119typedef PACKED_PRE struct PACKED_POST
4120{
4121 tHalMsgHeader header;
4122 tHalExitBmpsRspParams exitBmpsRspParams;
4123} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4124
4125/*---------------------------------------------------------------------------
4126 * WLAN_HAL_ENTER_UAPSD_RSP
4127 *--------------------------------------------------------------------------*/
4128typedef PACKED_PRE struct PACKED_POST
4129{
4130 /* success or failure */
4131 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004132 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004133}tUapsdRspParams, *tpUapsdRspParams;
4134
4135typedef PACKED_PRE struct PACKED_POST
4136{
4137 tHalMsgHeader header;
4138 tUapsdRspParams enterUapsdRspParams;
4139} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4140
4141/*---------------------------------------------------------------------------
4142 * WLAN_HAL_EXIT_UAPSD_RSP
4143 *--------------------------------------------------------------------------*/
4144typedef PACKED_PRE struct PACKED_POST
4145{
4146 /* success or failure */
4147 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004148 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004149} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4150
4151typedef PACKED_PRE struct PACKED_POST
4152{
4153 tHalMsgHeader header;
4154 tHalExitUapsdRspParams exitUapsdRspParams;
4155} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4156
4157/*---------------------------------------------------------------------------
4158 * WLAN_HAL_RSSI_NOTIFICATION_IND
4159 *--------------------------------------------------------------------------*/
4160typedef PACKED_PRE struct PACKED_POST
4161{
4162 tANI_U32 bRssiThres1PosCross : 1;
4163 tANI_U32 bRssiThres1NegCross : 1;
4164 tANI_U32 bRssiThres2PosCross : 1;
4165 tANI_U32 bRssiThres2NegCross : 1;
4166 tANI_U32 bRssiThres3PosCross : 1;
4167 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004168 tANI_U32 avgRssi : 8;
4169 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004170} tHalRSSINotification, *tpHalRSSINotification;
4171
4172typedef PACKED_PRE struct PACKED_POST
4173{
4174 tHalMsgHeader header;
4175 tHalRSSINotification rssiNotificationParams;
4176} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4177
4178/*---------------------------------------------------------------------------
4179 * WLAN_HAL_GET_RSSI_RSP
4180 *--------------------------------------------------------------------------*/
4181typedef PACKED_PRE struct PACKED_POST
4182{
4183 /* success or failure */
4184 tANI_U32 status;
4185 tANI_S8 rssi;
4186} tHalGetRssiParams, *tpHalGetRspParams;
4187
4188typedef PACKED_PRE struct PACKED_POST
4189{
4190 tHalMsgHeader header;
4191 tHalGetRssiParams rssiRspParams;
4192} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4193
4194/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004195 * WLAN_HAL_GET_ROAM_RSSI_RSP
4196 *--------------------------------------------------------------------------*/
4197typedef PACKED_PRE struct PACKED_POST
4198{
4199 /* success or failure */
4200 tANI_U32 status;
4201
4202 tANI_U8 staId;
4203 tANI_S8 rssi;
4204} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4205
4206typedef PACKED_PRE struct PACKED_POST
4207{
4208 tHalMsgHeader header;
4209 tHalGetRoamRssiParams roamRssiRspParams;
4210} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4211
4212/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004213 * WLAN_HAL_ENTER_WOWL_RSP
4214 *--------------------------------------------------------------------------*/
4215typedef PACKED_PRE struct PACKED_POST
4216{
4217 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004218 tANI_U32 status;
4219 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004220} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4221
4222typedef PACKED_PRE struct PACKED_POST
4223{
4224 tHalMsgHeader header;
4225 tHalEnterWowlRspParams enterWowlRspParams;
4226} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4227
4228/*---------------------------------------------------------------------------
4229 * WLAN_HAL_EXIT_WOWL_RSP
4230 *--------------------------------------------------------------------------*/
4231typedef PACKED_PRE struct PACKED_POST
4232{
4233 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004234 tANI_U32 status;
4235 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004236} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4237
4238typedef PACKED_PRE struct PACKED_POST
4239{
4240 tHalMsgHeader header;
4241 tHalExitWowlRspParams exitWowlRspParams;
4242} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4243
4244/*---------------------------------------------------------------------------
4245 * WLAN_HAL_ADD_BCN_FILTER_RSP
4246 *--------------------------------------------------------------------------*/
4247typedef PACKED_PRE struct PACKED_POST
4248{
4249 /* success or failure */
4250 tANI_U32 status;
4251} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4252
4253typedef PACKED_PRE struct PACKED_POST
4254{
4255 tHalMsgHeader header;
4256 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4257} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4258
4259/*---------------------------------------------------------------------------
4260 * WLAN_HAL_REM_BCN_FILTER_RSP
4261 *--------------------------------------------------------------------------*/
4262typedef PACKED_PRE struct PACKED_POST
4263{
4264 /* success or failure */
4265 tANI_U32 status;
4266} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4267
4268typedef PACKED_PRE struct PACKED_POST
4269{
4270 tHalMsgHeader header;
4271 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4272} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4273
4274/*---------------------------------------------------------------------------
4275 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4276 *--------------------------------------------------------------------------*/
4277typedef PACKED_PRE struct PACKED_POST
4278{
4279 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004280 tANI_U32 status;
4281 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004282} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4283
4284typedef PACKED_PRE struct PACKED_POST
4285{
4286 tHalMsgHeader header;
4287 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4288} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4289
4290/*---------------------------------------------------------------------------
4291 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4292 *--------------------------------------------------------------------------*/
4293typedef PACKED_PRE struct PACKED_POST
4294{
4295 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004296 tANI_U32 status;
4297 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004298} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4299
4300typedef PACKED_PRE struct PACKED_POST
4301{
4302 tHalMsgHeader header;
4303 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4304} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4305
4306/*---------------------------------------------------------------------------
4307 * WLAN_HAL_HOST_OFFLOAD_RSP
4308 *--------------------------------------------------------------------------*/
4309typedef PACKED_PRE struct PACKED_POST
4310{
4311 /* success or failure */
4312 tANI_U32 status;
4313} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4314
4315typedef PACKED_PRE struct PACKED_POST
4316{
4317 tHalMsgHeader header;
4318 tHalHostOffloadRspParams hostOffloadRspParams;
4319} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4320
4321/*---------------------------------------------------------------------------
4322 * WLAN_HAL_KEEP_ALIVE_RSP
4323 *--------------------------------------------------------------------------*/
4324typedef PACKED_PRE struct PACKED_POST
4325{
4326 /* success or failure */
4327 tANI_U32 status;
4328} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4329
4330typedef PACKED_PRE struct PACKED_POST
4331{
4332 tHalMsgHeader header;
4333 tHalKeepAliveRspParams keepAliveRspParams;
4334} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4335
4336/*---------------------------------------------------------------------------
4337 * WLAN_HAL_SET_RSSI_THRESH_RSP
4338 *--------------------------------------------------------------------------*/
4339typedef PACKED_PRE struct PACKED_POST
4340{
4341 /* success or failure */
4342 tANI_U32 status;
4343} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4344
4345typedef PACKED_PRE struct PACKED_POST
4346{
4347 tHalMsgHeader header;
4348 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4349} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4350
4351/*---------------------------------------------------------------------------
4352 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4353 *--------------------------------------------------------------------------*/
4354typedef PACKED_PRE struct PACKED_POST
4355{
4356 /* success or failure */
4357 tANI_U32 status;
4358} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4359
4360typedef PACKED_PRE struct PACKED_POST
4361{
4362 tHalMsgHeader header;
4363 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4364} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4365
4366/*---------------------------------------------------------------------------
4367 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4368 *--------------------------------------------------------------------------*/
4369typedef PACKED_PRE struct PACKED_POST
4370{
4371 /* success or failure */
4372 tANI_U32 status;
4373} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4374
4375typedef PACKED_PRE struct PACKED_POST
4376{
4377 tHalMsgHeader header;
4378 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4379} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4380
4381/*---------------------------------------------------------------------------
4382 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4383 *--------------------------------------------------------------------------*/
4384
4385typedef PACKED_PRE struct PACKED_POST
4386{
4387 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4388 //the request has power constraints, this should be applied only to that session
4389 tSirMacAddr selfStaMacAddr;
4390 //In request,
4391 //power == MaxTx power to be used.
4392 tPowerdBm power;
4393
4394}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4395
4396
4397typedef PACKED_PRE struct PACKED_POST
4398{
4399 tHalMsgHeader header;
4400 tSetMaxTxPwrParams setMaxTxPwrParams;
4401}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4402
4403/*---------------------------------------------------------------------------
4404*WLAN_HAL_SET_MAX_TX_POWER_RSP
4405*--------------------------------------------------------------------------*/
4406
4407typedef PACKED_PRE struct PACKED_POST
4408{
4409 //power == tx power used for management frames.
4410 tPowerdBm power;
4411
4412 /* success or failure */
4413 tANI_U32 status;
4414}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4415
4416typedef PACKED_PRE struct PACKED_POST
4417{
4418 tHalMsgHeader header;
4419 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4420}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4421
4422/*---------------------------------------------------------------------------
4423 *WLAN_HAL_SET_TX_POWER_REQ
4424 *--------------------------------------------------------------------------*/
4425
4426typedef PACKED_PRE struct PACKED_POST
4427{
4428 /* TX Power in milli watts */
4429 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004430 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004431}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4432
4433
4434typedef PACKED_PRE struct PACKED_POST
4435{
4436 tHalMsgHeader header;
4437 tSetTxPwrReqParams setTxPwrReqParams;
4438}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4439
4440/*---------------------------------------------------------------------------
4441*WLAN_HAL_SET_TX_POWER_RSP
4442*--------------------------------------------------------------------------*/
4443
4444typedef PACKED_PRE struct PACKED_POST
4445{
4446 /* success or failure */
4447 tANI_U32 status;
4448}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4449
4450typedef PACKED_PRE struct PACKED_POST
4451{
4452 tHalMsgHeader header;
4453 tSetTxPwrRspParams setTxPwrRspParams;
4454}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4455
4456/*---------------------------------------------------------------------------
4457 *WLAN_HAL_GET_TX_POWER_REQ
4458 *--------------------------------------------------------------------------*/
4459
4460typedef PACKED_PRE struct PACKED_POST
4461{
4462 tANI_U8 staId;
4463}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4464
4465typedef PACKED_PRE struct PACKED_POST
4466{
4467 tHalMsgHeader header;
4468 tGetTxPwrReqParams getTxPwrReqParams;
4469}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4470
4471/*---------------------------------------------------------------------------
4472*WLAN_HAL_GET_TX_POWER_RSP
4473*--------------------------------------------------------------------------*/
4474
4475typedef PACKED_PRE struct PACKED_POST
4476{
4477 /* success or failure */
4478 tANI_U32 status;
4479
4480 /* TX Power in milli watts */
4481 tANI_U32 txPower;
4482}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4483
4484typedef PACKED_PRE struct PACKED_POST
4485{
4486 tHalMsgHeader header;
4487 tGetTxPwrRspParams getTxPwrRspParams;
4488}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4489
4490#ifdef WLAN_FEATURE_P2P
4491/*---------------------------------------------------------------------------
4492 *WLAN_HAL_SET_P2P_GONOA_REQ
4493 *--------------------------------------------------------------------------*/
4494
4495typedef PACKED_PRE struct PACKED_POST
4496{
4497 tANI_U8 opp_ps;
4498 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004499 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004500 tANI_U32 duration;
4501 tANI_U32 interval;
4502 tANI_U32 single_noa_duration;
4503 tANI_U8 psSelection;
4504}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4505
4506
4507typedef PACKED_PRE struct PACKED_POST
4508{
4509 tHalMsgHeader header;
4510 tSetP2PGONOAParams setP2PGONOAParams;
4511}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4512
4513/*---------------------------------------------------------------------------
4514*WLAN_HAL_SET_P2P_GONOA_RSP
4515*--------------------------------------------------------------------------*/
4516
4517typedef PACKED_PRE struct PACKED_POST
4518{
4519 /* success or failure */
4520 tANI_U32 status;
4521}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4522
4523typedef PACKED_PRE struct PACKED_POST
4524{
4525 tHalMsgHeader header;
4526 tSetP2PGONOARspParams setP2PGONOARspParams;
4527}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4528#endif
4529
4530/*---------------------------------------------------------------------------
4531 *WLAN_HAL_ADD_SELF_STA_REQ
4532 *--------------------------------------------------------------------------*/
4533
4534typedef PACKED_PRE struct PACKED_POST
4535{
4536 tSirMacAddr selfMacAddr;
4537 tANI_U32 status;
4538}tAddStaSelfParams, *tpAddStaSelfParams;
4539
4540
4541typedef PACKED_PRE struct PACKED_POST
4542{
4543 tHalMsgHeader header;
4544 tAddStaSelfParams addStaSelfParams;
4545}tAddStaSelfReq, *tpAddStaSelfReq;
4546
4547/*---------------------------------------------------------------------------
4548*WLAN_HAL_ADD_SELF_STA_RSP
4549*--------------------------------------------------------------------------*/
4550
4551typedef PACKED_PRE struct PACKED_POST
4552{
4553 /* success or failure */
4554 tANI_U32 status;
4555
4556 /*Self STA Index */
4557 tANI_U8 selfStaIdx;
4558
4559 /* DPU Index (IGTK, PTK, GTK all same) */
4560 tANI_U8 dpuIdx;
4561
4562 /* DPU Signature */
4563 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004564
Jeff Johnson295189b2012-06-20 16:38:30 -07004565}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4566
4567typedef PACKED_PRE struct PACKED_POST
4568{
4569 tHalMsgHeader header;
4570 tAddStaSelfRspParams addStaSelfRspParams;
4571}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4572
4573
4574/*---------------------------------------------------------------------------
4575 WLAN_HAL_DEL_STA_SELF_REQ
4576---------------------------------------------------------------------------*/
4577
4578typedef PACKED_PRE struct PACKED_POST
4579{
4580 tSirMacAddr selfMacAddr;
4581
4582}tDelStaSelfParams, *tpDelStaSelfParams;
4583
4584typedef PACKED_PRE struct PACKED_POST
4585{
4586 tHalMsgHeader header;
4587 tDelStaSelfParams delStaSelfParams;
4588} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4589
4590
4591/*---------------------------------------------------------------------------
4592 WLAN_HAL_DEL_STA_SELF_RSP
4593---------------------------------------------------------------------------*/
4594
4595typedef PACKED_PRE struct PACKED_POST
4596{
4597 /*success or failure */
4598 tANI_U32 status;
4599
4600 tSirMacAddr selfMacAddr;
4601}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4602
4603typedef PACKED_PRE struct PACKED_POST
4604{
4605 tHalMsgHeader header;
4606 tDelStaSelfRspParams delStaSelfRspParams;
4607} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4608
4609
4610#ifdef WLAN_FEATURE_VOWIFI_11R
4611
4612/*---------------------------------------------------------------------------
4613 *WLAN_HAL_AGGR_ADD_TS_REQ
4614 *--------------------------------------------------------------------------*/
4615
4616typedef PACKED_PRE struct PACKED_POST
4617{
4618 /* Station Index */
4619 tANI_U16 staIdx;
4620
4621 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4622 /* This will carry the bitmap with the bit positions representing different AC.s*/
4623 tANI_U16 tspecIdx;
4624
4625 /* Tspec info per AC To program TPE with required parameters */
4626 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4627
4628 /* U-APSD Flags: 1b per AC. Encoded as follows:
4629 b7 b6 b5 b4 b3 b2 b1 b0 =
4630 X X X X BE BK VI VO */
4631 tANI_U8 uAPSD;
4632
4633 /* These parameters are for all the access categories */
4634 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4635 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4636 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4637
4638}tAggrAddTsParams, *tpAggrAddTsParams;
4639
4640
4641typedef PACKED_PRE struct PACKED_POST
4642{
4643 tHalMsgHeader header;
4644 tAggrAddTsParams aggrAddTsParam;
4645}tAggrAddTsReq, *tpAggrAddTsReq;
4646
4647/*---------------------------------------------------------------------------
4648*WLAN_HAL_AGGR_ADD_TS_RSP
4649*--------------------------------------------------------------------------*/
4650
4651typedef PACKED_PRE struct PACKED_POST
4652{
4653 /* success or failure */
4654 tANI_U32 status0;
4655 /* FIXME PRIMA for future use for 11R */
4656 tANI_U32 status1;
4657}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4658
4659typedef PACKED_PRE struct PACKED_POST
4660{
4661 tHalMsgHeader header;
4662 tAggrAddTsRspParams aggrAddTsRspParam;
4663}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4664
4665#endif
4666
4667/*---------------------------------------------------------------------------
4668 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4669 *--------------------------------------------------------------------------*/
4670typedef PACKED_PRE struct PACKED_POST
4671{
4672 tANI_U8 isAppsCpuAwake;
4673} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4674
4675typedef PACKED_PRE struct PACKED_POST
4676{
4677 tHalMsgHeader header;
4678 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4679} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4680
4681/*---------------------------------------------------------------------------
4682 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4683 *--------------------------------------------------------------------------*/
4684typedef PACKED_PRE struct PACKED_POST
4685{
4686 /* success or failure */
4687 tANI_U32 status;
4688} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4689
4690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tHalMsgHeader header;
4693 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4694} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4695/*---------------------------------------------------------------------------
4696 * WLAN_HAL_DUMP_COMMAND_REQ
4697 *--------------------------------------------------------------------------*/
4698
4699typedef PACKED_PRE struct PACKED_POST
4700{
4701 tANI_U32 argument1;
4702 tANI_U32 argument2;
4703 tANI_U32 argument3;
4704 tANI_U32 argument4;
4705 tANI_U32 argument5;
4706
4707}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4708
4709typedef PACKED_PRE struct PACKED_POST
4710{
4711 tHalMsgHeader header;
4712 tHalDumpCmdReqParams dumpCmdReqParams;
4713} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4714
4715/*---------------------------------------------------------------------------
4716 * WLAN_HAL_DUMP_COMMAND_RSP
4717 *--------------------------------------------------------------------------*/
4718
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 /* success or failure */
4722 tANI_U32 status;
4723 /*Length of the responce message*/
4724 tANI_U32 rspLength;
4725 /*FiXME: Currently considering the the responce will be less than 100bytes */
4726 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004727
Jeff Johnson295189b2012-06-20 16:38:30 -07004728} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4729
4730typedef PACKED_PRE struct PACKED_POST
4731{
4732 tHalMsgHeader header;
4733 tHalDumpCmdRspParams dumpCmdRspParams;
4734} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4735
4736/*---------------------------------------------------------------------------
4737 *WLAN_HAL_COEX_IND
4738 *-------------------------------------------------------------------------*/
4739#define WLAN_COEX_IND_DATA_SIZE (4)
4740#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4741#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004742#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
4743#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Jeff Johnson295189b2012-06-20 16:38:30 -07004744
4745typedef PACKED_PRE struct PACKED_POST
4746{
4747 /*Coex Indication Type*/
4748 tANI_U32 coexIndType;
4749
4750 /*Coex Indication Data*/
4751 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4752}tCoexIndParams,*tpCoexIndParams;
4753
4754typedef PACKED_PRE struct PACKED_POST
4755{
4756 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004757 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004758}tCoexIndMsg, *tpCoexIndMsg;
4759
4760/*---------------------------------------------------------------------------
4761 *WLAN_HAL_OTA_TX_COMPL_IND
4762 *-------------------------------------------------------------------------*/
4763
4764typedef PACKED_PRE struct PACKED_POST
4765{
4766 /*Tx Complete Indication Success or Failure*/
4767 tANI_U32 status;
4768}tTxComplParams,*tpTxComplParams;
4769
4770typedef PACKED_PRE struct PACKED_POST
4771{
4772 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004773 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004774}tTxComplIndMsg, *tpTxComplIndMsg;
4775
4776/*---------------------------------------------------------------------------
4777 * WLAN_HAL_HOST_SUSPEND_IND
4778 *-------------------------------------------------------------------------*/
4779
4780typedef PACKED_PRE struct PACKED_POST
4781{
4782 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004783 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004784}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4785
4786typedef PACKED_PRE struct PACKED_POST
4787{
4788 tHalMsgHeader header;
4789 tHalWlanHostSuspendIndParam suspendIndParams;
4790}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4791
4792/*---------------------------------------------------------------------------
4793 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4794 *-------------------------------------------------------------------------*/
4795
4796typedef PACKED_PRE struct PACKED_POST
4797{
4798 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004799 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004800}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4801
4802typedef PACKED_PRE struct PACKED_POST
4803{
4804 tHalMsgHeader header;
4805 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4806}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4807
4808#ifdef WLAN_FEATURE_P2P
4809/*---------------------------------------------------------------------------
4810 *WLAN_HAL_NOA_ATTR_IND
4811 *-------------------------------------------------------------------------*/
4812
4813typedef PACKED_PRE struct PACKED_POST
4814{
4815 tANI_U8 index ;
4816 tANI_U8 oppPsFlag ;
4817 tANI_U16 ctWin ;
4818
4819 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004820 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004821 tANI_U32 uNoa1Duration;
4822 tANI_U32 uNoa1Interval;
4823 tANI_U32 uNoa1StartTime;
4824
4825 tANI_U16 uNoa2IntervalCnt;
4826 tANI_U16 rsvd2;
4827 tANI_U32 uNoa2Duration;
4828 tANI_U32 uNoa2Interval;
4829 tANI_U32 uNoa2StartTime;
4830
4831 tANI_U32 status;
4832}tNoaAttrIndParams, *tpNoaAttrIndParams;
4833
4834typedef PACKED_PRE struct PACKED_POST
4835{
4836 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004837 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004838}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004839
4840/*---------------------------------------------------------------------------
4841 *WLAN_HAL_NOA_START_IND
4842 *-------------------------------------------------------------------------*/
4843
4844typedef PACKED_PRE struct PACKED_POST
4845{
4846 tANI_U32 status;
4847 tANI_U32 bssIdx;
4848}tNoaStartIndParams, *tpNoaStartIndParams;
4849
4850typedef PACKED_PRE struct PACKED_POST
4851{
4852 tHalMsgHeader header;
4853 tNoaStartIndParams noaStartIndParams;
4854}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004855#endif
4856
4857/*---------------------------------------------------------------------------
4858 * WLAN_HAL_HOST_RESUME_REQ
4859 *-------------------------------------------------------------------------*/
4860
4861typedef PACKED_PRE struct PACKED_POST
4862{
4863 tANI_U8 configuredMcstBcstFilterSetting;
4864}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4865
4866typedef PACKED_PRE struct PACKED_POST
4867{
4868 tHalMsgHeader header;
4869 tHalWlanHostResumeReqParam resumeReqParams;
4870}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4871
4872/*---------------------------------------------------------------------------
4873 * WLAN_HAL_HOST_RESUME_RSP
4874 *--------------------------------------------------------------------------*/
4875typedef PACKED_PRE struct PACKED_POST
4876{
4877 /* success or failure */
4878 tANI_U32 status;
4879} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4880
4881typedef PACKED_PRE struct PACKED_POST
4882{
4883 tHalMsgHeader header;
4884 tHalHostResumeRspParams hostResumeRspParams;
4885} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4886
Anand Kumar012623a2013-01-11 17:00:00 -08004887typedef PACKED_PRE struct PACKED_POST
4888{
4889 tANI_U16 staIdx;
4890 // Peer MAC Address, whose BA session has timed out
4891 tSirMacAddr peerMacAddr;
4892 // TID for which a BA session timeout is being triggered
4893 tANI_U8 baTID;
4894 // DELBA direction
4895 // 1 - Originator
4896 // 0 - Recipient
4897 tANI_U8 baDirection;
4898 tANI_U32 reasonCode;
4899 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4900} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4901
4902typedef PACKED_PRE struct PACKED_POST
4903{
4904 tHalMsgHeader header;
4905 tHalWlanDelBaIndMsg hostdelBaParam;
4906} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4907
Jeff Johnson295189b2012-06-20 16:38:30 -07004908/*---------------------------------------------------------------------------
4909 *PNO Messages
4910 *-------------------------------------------------------------------------*/
4911/*Max number of channels that a network can be found on*/
4912#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 26
4913
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304914/*Max number of channels that a network can be found on*/
4915#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4916
Jeff Johnson295189b2012-06-20 16:38:30 -07004917/*Maximum numbers of networks supported by PNO*/
4918#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4919
4920/*The number of scan time intervals that can be programmed into PNO*/
4921#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4922
4923/*Maximum size of the probe template*/
4924#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4925
Jeff Johnson32d95a32012-09-10 13:15:23 -07004926/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004927 Immediate - scanning will start immediately and PNO procedure will
4928 be repeated based on timer
4929 Suspend - scanning will start at suspend
4930 Resume - scanning will start on system resume*/
4931typedef enum
4932{
4933 ePNO_MODE_IMMEDIATE,
4934 ePNO_MODE_ON_SUSPEND,
4935 ePNO_MODE_ON_RESUME,
4936 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4937} ePNOMode;
4938
4939/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004940typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004941{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004942 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004943 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004944
Jeff Johnson295189b2012-06-20 16:38:30 -07004945 // Upper layer authentication types
4946 eAUTH_TYPE_WPA = 2,
4947 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004948
Jeff Johnson295189b2012-06-20 16:38:30 -07004949 eAUTH_TYPE_RSN = 4,
4950 eAUTH_TYPE_RSN_PSK = 5,
4951 eAUTH_TYPE_FT_RSN = 6,
4952 eAUTH_TYPE_FT_RSN_PSK = 7,
4953 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4954 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004955
Jeff Johnson295189b2012-06-20 16:38:30 -07004956 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4957
4958}tAuthType;
4959
4960/* Encryption type */
4961typedef enum eEdType
4962{
4963 eED_ANY = 0,
4964 eED_NONE = 1,
4965 eED_WEP = 2,
4966 eED_TKIP = 3,
4967 eED_CCMP = 4,
4968 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004969
Jeff Johnson295189b2012-06-20 16:38:30 -07004970 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4971} tEdType;
4972
4973/* SSID broadcast type */
4974typedef enum eSSIDBcastType
4975{
4976 eBCAST_UNKNOWN = 0,
4977 eBCAST_NORMAL = 1,
4978 eBCAST_HIDDEN = 2,
4979
4980 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4981} tSSIDBcastType;
4982
Jeff Johnson32d95a32012-09-10 13:15:23 -07004983/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004984 The network description for which PNO will have to look for
4985*/
4986typedef PACKED_PRE struct PACKED_POST
4987{
4988 /*SSID of the BSS*/
4989 tSirMacSSid ssId;
4990
4991 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004992 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07004993
4994 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004995 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07004996
Jeff Johnson32d95a32012-09-10 13:15:23 -07004997 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07004998 0 - if all channels */
4999 tANI_U8 ucChannelCount;
5000 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5001
5002 /*Indicates the RSSI threshold for the network to be considered*/
5003 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005004}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005005
5006typedef PACKED_PRE struct PACKED_POST
5007{
5008 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005009 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005010
Jeff Johnson32d95a32012-09-10 13:15:23 -07005011 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005012 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005013 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005014
Jeff Johnson32d95a32012-09-10 13:15:23 -07005015 /*e.g: 2 3
5016 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005017 - it will wait 2s between consecutive scans for 3 times
5018 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005019}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005020
Jeff Johnson32d95a32012-09-10 13:15:23 -07005021/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005022 The network parameters to be sent to the PNO algorithm
5023*/
5024typedef PACKED_PRE struct PACKED_POST
5025{
5026 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005027 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005028
Jeff Johnson32d95a32012-09-10 13:15:23 -07005029 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005030 two consecutive scan procedures
5031 If the desired is for a uniform timer that fires always at the exact same
5032 interval - one single value is to be set
5033 If there is a desire for a more complex - telescopic like timer multiple
5034 values can be set - once PNO reaches the end of the array it will
5035 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005036 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005037
5038}tScanTimersType;
5039
5040typedef PACKED_PRE struct PACKED_POST {
5041
5042 /*Enable PNO*/
5043 tANI_U32 enable;
5044
5045 /*Immediate, On Suspend, On Resume*/
5046 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005047
Jeff Johnson295189b2012-06-20 16:38:30 -07005048 /*Number of networks sent for PNO*/
5049 tANI_U32 ucNetworksCount;
5050
5051 /*The networks that PNO needs to look for*/
5052 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5053
5054 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005055 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005056
5057 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005058 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005059 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5060
5061 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005062 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005063 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5064
5065} tPrefNetwListParams, * tpPrefNetwListParams;
5066
5067/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005068 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005069*/
5070typedef PACKED_PRE struct PACKED_POST
5071{
5072 tHalMsgHeader header;
5073 tPrefNetwListParams prefNetwListParams;
5074} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5075
5076
Jeff Johnson32d95a32012-09-10 13:15:23 -07005077/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005078 The network description for which PNO will have to look for
5079*/
5080typedef PACKED_PRE struct PACKED_POST
5081{
5082 /*SSID of the BSS*/
5083 tSirMacSSid ssId;
5084
5085 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005086 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005087
5088 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005089 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005090
5091 /*SSID broadcast type, normal, hidden or unknown*/
5092 tSSIDBcastType bcastNetworkType;
5093
Jeff Johnson32d95a32012-09-10 13:15:23 -07005094 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005095 0 - if all channels */
5096 tANI_U8 ucChannelCount;
5097 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5098
5099 /*Indicates the RSSI threshold for the network to be considered*/
5100 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005101}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005102
5103typedef PACKED_PRE struct PACKED_POST {
5104
5105 /*Enable PNO*/
5106 tANI_U32 enable;
5107
5108 /*Immediate, On Suspend, On Resume*/
5109 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005110
Jeff Johnson295189b2012-06-20 16:38:30 -07005111 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005112 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005113
5114 /*The networks that PNO needs to look for*/
5115 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5116
5117 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005118 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005119
5120 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005121 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005122 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5123
5124 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005125 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005126 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5127
5128} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5129
5130/*
5131 Preferred network list request new
5132*/
5133typedef PACKED_PRE struct PACKED_POST
5134{
5135 tHalMsgHeader header;
5136 tPrefNetwListParamsNew prefNetwListParams;
5137} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5138
5139/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005140 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005141*/
5142typedef PACKED_PRE struct PACKED_POST
5143{
5144 tHalMsgHeader header;
5145
Jeff Johnson32d95a32012-09-10 13:15:23 -07005146 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005147 the request and will start scanning*/
5148 tANI_U32 status;
5149} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5150
5151/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005152 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005153*/
5154typedef PACKED_PRE struct PACKED_POST {
5155
5156 /*Network that was found with the highest RSSI*/
5157 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005158
Jeff Johnson295189b2012-06-20 16:38:30 -07005159 /*Indicates the RSSI */
5160 tANI_U8 rssi;
5161
5162} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5163
5164/*
5165 Preferred network found indication
5166*/
5167typedef PACKED_PRE struct PACKED_POST {
5168
5169 tHalMsgHeader header;
5170 tPrefNetwFoundParams prefNetwFoundParams;
5171} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5172
5173
5174typedef PACKED_PRE struct PACKED_POST {
5175
5176 /*RSSI Threshold*/
5177 tANI_U8 ucRssiThreshold;
5178
5179} tRssiFilterParams, * tpRssiFilterParams;
5180
5181/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005182 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005183*/
5184typedef PACKED_PRE struct PACKED_POST
5185{
5186 tHalMsgHeader header;
5187 tRssiFilterParams prefRSSIFilterParams;
5188} tSetRssiFilterReq, *tpSetRssiFilterReq;
5189
5190/*
5191 Set RSSI filter resp
5192*/
5193typedef PACKED_PRE struct PACKED_POST{
5194 tHalMsgHeader header;
5195 /*status of the request */
5196 tANI_U32 status;
5197} tSetRssiFilterResp, *tpSetRssiFilterResp;
5198/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005199 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005200*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005201typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005202{
5203
5204 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005205 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005206
5207 /*Lets PNO know that host has determined the regulatory domain*/
5208 tANI_U8 b11dResolved;
5209
5210 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005211 tANI_U8 ucChannelCount;
5212 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005213
5214 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005215 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005216
5217 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005218 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005219
5220 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005221 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005222
5223 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005224 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005225
5226 /*Cb State*/
5227 ePhyChanBondState cbState;
5228
5229} tUpdateScanParams, * tpUpdateScanParams;
5230
5231/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305232 Update scan params
5233*/
5234typedef PACKED_PRE struct PACKED_POST
5235{
5236
5237 /*Host setting for 11d*/
5238 tANI_U8 b11dEnabled;
5239
5240 /*Lets PNO know that host has determined the regulatory domain*/
5241 tANI_U8 b11dResolved;
5242
5243 /*Channels on which PNO is allowed to scan*/
5244 tANI_U8 ucChannelCount;
5245 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5246
5247 /*Minimum channel time*/
5248 tANI_U16 usActiveMinChTime;
5249
5250 /*Maximum channel time*/
5251 tANI_U16 usActiveMaxChTime;
5252
5253 /*Minimum channel time*/
5254 tANI_U16 usPassiveMinChTime;
5255
5256 /*Maximum channel time*/
5257 tANI_U16 usPassiveMaxChTime;
5258
5259 /*Cb State*/
5260 ePhyChanBondState cbState;
5261
5262} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5263
5264/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005265 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005266 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005267*/
5268typedef PACKED_PRE struct PACKED_POST{
5269
5270 tHalMsgHeader header;
5271 tUpdateScanParams scanParams;
5272} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5273
5274/*
5275 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005276 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005277*/
5278typedef PACKED_PRE struct PACKED_POST{
5279
5280 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305281 tUpdateScanParamsEx scanParams;
5282} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5283
5284/*
5285 Update scan params - sent from host to PNO
5286 to be used during PNO scanning
5287*/
5288typedef PACKED_PRE struct PACKED_POST{
5289
5290 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005291
5292 /*status of the request */
5293 tANI_U32 status;
5294
5295} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5296
5297/*---------------------------------------------------------------------------
5298 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5299 *--------------------------------------------------------------------------*/
5300typedef PACKED_PRE struct PACKED_POST
5301{
5302 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5303 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5304 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5305 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5306} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5307
5308typedef PACKED_PRE struct PACKED_POST
5309{
5310 tHalMsgHeader header;
5311 tHalTxPerTrackingReqParam txPerTrackingParams;
5312} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5313
5314/*---------------------------------------------------------------------------
5315 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5316 *--------------------------------------------------------------------------*/
5317typedef PACKED_PRE struct PACKED_POST
5318{
5319 /* success or failure */
5320 tANI_U32 status;
5321} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5322
5323typedef PACKED_PRE struct PACKED_POST
5324{
5325 tHalMsgHeader header;
5326 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5327} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5328
5329/*---------------------------------------------------------------------------
5330 * WLAN_HAL_TX_PER_HIT_IND
5331 *--------------------------------------------------------------------------*/
5332typedef PACKED_PRE struct PACKED_POST
5333{
5334 tHalMsgHeader header;
5335}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5336
5337/*---------------------------------------------------------------------------
5338 *******************Packet Filtering Definitions Begin*******************
5339 *--------------------------------------------------------------------------*/
5340#define HAL_PROTOCOL_DATA_LEN 8
5341#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5342#define HAL_MAX_NUM_FILTERS 20
5343#define HAL_MAX_CMP_PER_FILTER 10
5344
5345typedef enum
5346{
5347 HAL_RCV_FILTER_TYPE_INVALID,
5348 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5349 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5350 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5351}tHalReceivePacketFilterType;
5352
Jeff Johnson32d95a32012-09-10 13:15:23 -07005353typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005354{
5355 HAL_FILTER_PROTO_TYPE_INVALID,
5356 HAL_FILTER_PROTO_TYPE_MAC,
5357 HAL_FILTER_PROTO_TYPE_ARP,
5358 HAL_FILTER_PROTO_TYPE_IPV4,
5359 HAL_FILTER_PROTO_TYPE_IPV6,
5360 HAL_FILTER_PROTO_TYPE_UDP,
5361 HAL_FILTER_PROTO_TYPE_MAX
5362}tHalRcvPktFltProtocolType;
5363
Jeff Johnson32d95a32012-09-10 13:15:23 -07005364typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005365{
5366 HAL_FILTER_CMP_TYPE_INVALID,
5367 HAL_FILTER_CMP_TYPE_EQUAL,
5368 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5369 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5370 HAL_FILTER_CMP_TYPE_MAX
5371}tHalRcvPktFltCmpFlagType;
5372
Jeff Johnson32d95a32012-09-10 13:15:23 -07005373typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005374{
5375 tANI_U8 protocolLayer;
5376 tANI_U8 cmpFlag;
5377 tANI_U16 dataLength; /* Length of the data to compare */
5378 tANI_U8 dataOffset; /* from start of the respective frame header */
5379 tANI_U8 reserved; /* Reserved field */
5380 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5381 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5382}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5383
5384typedef PACKED_PRE struct PACKED_POST
5385{
5386 tANI_U8 filterId;
5387 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005388 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005389 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005390 tHalRcvPktFilterParams paramsData[1];
5391}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5392
5393typedef PACKED_PRE struct PACKED_POST
5394{
Jeff Johnsone7245742012-09-05 17:12:55 -07005395 tANI_U8 filterId;
5396 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005397 tANI_U8 numParams;
5398 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005399 tANI_U8 bssIdx;
5400 tHalRcvPktFilterParams paramsData[1];
5401}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5402
5403typedef PACKED_PRE struct PACKED_POST
5404{
Jeff Johnson295189b2012-06-20 16:38:30 -07005405 tHalMsgHeader header;
5406 tHalRcvPktFilterCfgType pktFilterCfg;
5407} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5408
Jeff Johnsone7245742012-09-05 17:12:55 -07005409typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005410{
5411 tANI_U8 dataOffset; /* from start of the respective frame header */
5412 tANI_U32 cMulticastAddr;
5413 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005414 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005415} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5416
5417typedef PACKED_PRE struct PACKED_POST
5418{
5419 /* success or failure */
5420 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005421 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005422} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5423
5424typedef PACKED_PRE struct PACKED_POST
5425{
5426 tHalMsgHeader header;
5427 tHalSetPktFilterRspParams pktFilterRspParams;
5428} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5429
Jeff Johnsone7245742012-09-05 17:12:55 -07005430typedef PACKED_PRE struct PACKED_POST
5431{
5432 tANI_U8 bssIdx;
5433} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005434
5435typedef PACKED_PRE struct PACKED_POST
5436{
5437 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005438 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005439} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5440
Jeff Johnsone7245742012-09-05 17:12:55 -07005441
Jeff Johnson295189b2012-06-20 16:38:30 -07005442typedef PACKED_PRE struct PACKED_POST
5443{
5444 tANI_U8 filterId;
5445 tANI_U32 matchCnt;
5446} tHalRcvFltPktMatchCnt;
5447typedef PACKED_PRE struct PACKED_POST
5448{
5449 /* Success or Failure */
5450 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005451 tANI_U32 matchCnt;
5452 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005453 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005454} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5455
5456typedef PACKED_PRE struct PACKED_POST
5457{
5458 tHalMsgHeader header;
5459 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5460} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5461
5462typedef PACKED_PRE struct PACKED_POST
5463{
5464 tANI_U32 status; /* only valid for response message */
5465 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005466 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005467}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5468
5469typedef PACKED_PRE struct PACKED_POST
5470{
5471 tHalMsgHeader header;
5472 tHalRcvFltPktClearParam filterClearParam;
5473} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5474
5475typedef PACKED_PRE struct PACKED_POST
5476{
5477 tHalMsgHeader header;
5478 tHalRcvFltPktClearParam filterClearParam;
5479} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5480
5481typedef PACKED_PRE struct PACKED_POST
5482{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005483 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005484 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005485}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5486
5487typedef PACKED_PRE struct PACKED_POST
5488{
5489 tHalMsgHeader header;
5490 tHalRcvFltMcAddrListType mcAddrList;
5491} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5492
5493typedef PACKED_PRE struct PACKED_POST
5494{
5495 tHalMsgHeader header;
5496 tHalRcvFltPktSetMcListRspType rspParam;
5497} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5498
5499
5500/*---------------------------------------------------------------------------
5501 *******************Packet Filtering Definitions End*******************
5502 *--------------------------------------------------------------------------*/
5503
5504typedef PACKED_PRE struct PACKED_POST
5505{
5506 /* Ignore DTIM */
5507 tANI_U32 uIgnoreDTIM;
5508
5509 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005510 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005511
5512 /* Listen Interval */
5513 tANI_U32 uListenInterval;
5514
5515 /* Broadcast Multicast Filter */
5516 tANI_U32 uBcastMcastFilter;
5517
5518 /* Beacon Early Termination */
5519 tANI_U32 uEnableBET;
5520
5521 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005522 tANI_U32 uBETInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -07005523}tSetPowerParamsType, *tpSetPowerParamsType;
5524
5525typedef PACKED_PRE struct PACKED_POST
5526{
5527 tHalMsgHeader header;
5528 tSetPowerParamsType powerParams;
5529} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5530
5531typedef PACKED_PRE struct PACKED_POST{
5532
5533 tHalMsgHeader header;
5534
5535 /*status of the request */
5536 tANI_U32 status;
5537
5538} tSetPowerParamsResp, *tpSetPowerParamsResp;
5539
5540/*---------------------------------------------------------------------------
5541 ****************Capability bitmap exchange definitions and macros starts*************
5542 *--------------------------------------------------------------------------*/
5543
Anand Kumar012623a2013-01-11 17:00:00 -08005544typedef enum {
5545 MCC = 0,
5546 P2P = 1,
5547 DOT11AC = 2,
5548 SLM_SESSIONIZATION = 3,
5549 DOT11AC_OPMODE = 4,
5550 SAP32STA = 5,
5551 TDLS = 6,
5552 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5553 WLANACTIVE_OFFLOAD = 8,
5554 BEACON_OFFLOAD = 9,
5555 SCAN_OFFLOAD = 10,
5556 ROAM_OFFLOAD = 11,
5557 BCN_MISS_OFFLOAD = 12,
5558 STA_POWERSAVE = 13,
5559 STA_ADVANCED_PWRSAVE = 14,
5560 AP_UAPSD = 15,
5561 AP_DFS = 16,
5562 BLOCKACK = 17,
5563 PHY_ERR = 18,
5564 BCN_FILTER = 19,
5565 RTT = 20,
5566 RATECTRL = 21,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -07005567 WOW = 22
5568 //MAX_FEATURE_SUPPORTED = 128
Anand Kumar012623a2013-01-11 17:00:00 -08005569} placeHolderInCapBitmap;
5570
Jeff Johnson295189b2012-06-20 16:38:30 -07005571typedef PACKED_PRE struct PACKED_POST{
5572
5573 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005574} tWlanFeatCaps, *tpWlanFeatCaps;
5575
5576typedef PACKED_PRE struct PACKED_POST{
5577
Jeff Johnson32d95a32012-09-10 13:15:23 -07005578 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005579 tWlanFeatCaps wlanFeatCaps;
5580
5581} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5582
Jeff Johnsone7245742012-09-05 17:12:55 -07005583#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5584#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005585#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005586#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
5587
Jeff Johnsone7245742012-09-05 17:12:55 -07005588tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5589
Jeff Johnson295189b2012-06-20 16:38:30 -07005590#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005591 if ((b)<=127) { \
5592 arr_index = (b)/32; \
5593 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005594 (a)->featCaps[arr_index] |= (1<<bit_index); \
5595 } \
5596 }
5597#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005598 if ((b)<=127) { \
5599 arr_index = (b)/32; \
5600 bit_index = (b)%32; \
5601 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005602 } \
5603 }
5604#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005605 if ((b)<=127) { \
5606 arr_index = (b)/32; \
5607 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005608 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005609 } \
5610 }
5611
5612/*---------------------------------------------------------------------------
5613 * WLAN_HAL_WAKE_REASON_IND
5614 *--------------------------------------------------------------------------*/
5615
5616/* status codes to help debug rekey failures */
5617typedef enum
5618{
5619 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5620 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5621 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5622 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5623 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5624 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5625 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5626 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5627 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5628 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5629
5630 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5631} tGTKRekeyStatus;
5632
5633/* wake reason types */
5634typedef enum
5635{
5636 WLAN_HAL_WAKE_REASON_NONE = 0,
5637 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5638 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5639 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5640 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5641 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5642 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5643 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5644} tWakeReasonType;
5645
5646/*
5647 Wake Packet which is saved at tWakeReasonParams.DataStart
5648 This data is sent for any wake reasons that involve a packet-based wakeup :
5649
5650 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5651 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5652 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5653 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5654 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5655
5656 The information is provided to the host for auditing and debug purposes
5657
5658*/
5659
5660/*
5661 Wake reason indication parameters
5662*/
5663typedef PACKED_PRE struct PACKED_POST
5664{
5665 uint32 ulReason; /* see tWakeReasonType */
5666 uint32 ulReasonArg; /* argument specific to the reason type */
5667 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5668 HAL truncates the data (i.e. data packets) this length
5669 will be less than the actual length */
5670 uint32 ulActualDataLen; /* actual length of data */
5671 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5672 see specific wake type */
5673} tWakeReasonParams, *tpWakeReasonParams;
5674
5675/*
5676 Wake reason indication
5677*/
5678typedef PACKED_PRE struct PACKED_POST
5679{
5680 tHalMsgHeader header;
5681 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005682 tANI_U32 uBssIdx : 8;
5683 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005684} tHalWakeReasonInd, *tpHalWakeReasonInd;
5685
5686/*---------------------------------------------------------------------------
5687* WLAN_HAL_GTK_OFFLOAD_REQ
5688*--------------------------------------------------------------------------*/
5689
5690#define HAL_GTK_KEK_BYTES 16
5691#define HAL_GTK_KCK_BYTES 16
5692
5693#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5694
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005695#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5696
Jeff Johnson295189b2012-06-20 16:38:30 -07005697typedef PACKED_PRE struct PACKED_POST
5698{
5699 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005700 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005701 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5702 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005703 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005704} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5705
5706typedef PACKED_PRE struct PACKED_POST
5707{
5708 tHalMsgHeader header;
5709 tHalGtkOffloadReqParams gtkOffloadReqParams;
5710} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5711
5712/*---------------------------------------------------------------------------
5713* WLAN_HAL_GTK_OFFLOAD_RSP
5714*--------------------------------------------------------------------------*/
5715typedef PACKED_PRE struct PACKED_POST
5716{
5717 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005718 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005719} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5720
5721typedef PACKED_PRE struct PACKED_POST
5722{
5723 tHalMsgHeader header;
5724 tHalGtkOffloadRspParams gtkOffloadRspParams;
5725} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5726
5727
5728/*---------------------------------------------------------------------------
5729* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5730*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005731typedef PACKED_PRE struct PACKED_POST
5732{
5733 tANI_U8 bssIdx;
5734
5735} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005736
5737typedef PACKED_PRE struct PACKED_POST
5738{
5739 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005740 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005741} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5742
5743/*---------------------------------------------------------------------------
5744* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5745*--------------------------------------------------------------------------*/
5746typedef PACKED_PRE struct PACKED_POST
5747{
5748 tANI_U32 ulStatus; /* success or failure */
5749 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5750 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5751 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5752 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5753 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005754 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005755} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5756
5757typedef PACKED_PRE struct PACKED_POST
5758{
5759 tHalMsgHeader header;
5760 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5761} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5762
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005763/*---------------------------------------------------------------------------
5764* WLAN_HAL_DHCP_IND
5765*--------------------------------------------------------------------------*/
5766typedef PACKED_PRE struct PACKED_POST
5767{
5768 /*Indicates the device mode which indicates about the DHCP activity */
5769 tANI_U8 device_mode;
5770 tSirMacAddr macAddr;
5771} tDHCPInfo, *tpDHCPInfo;
5772
5773typedef PACKED_PRE struct PACKED_POST
5774{
5775 tHalMsgHeader header;
5776 tANI_U32 status; /* success or failure */
5777} tDHCPIndStatus, *tpDHCPIndstatus;
5778
Jeff Johnson295189b2012-06-20 16:38:30 -07005779/*
5780 Thermal Mitigation mode of operation.
5781 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5782 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5783 reducing transmit power
5784 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5785*/
5786typedef enum
5787{
5788 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5789 HAL_THERMAL_MITIGATION_MODE_0,
5790 HAL_THERMAL_MITIGATION_MODE_1,
5791 HAL_THERMAL_MITIGATION_MODE_2,
5792 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5793}tHalThermalMitigationModeType;
5794//typedef tANI_S16 tHalThermalMitigationModeType;
5795
5796/*
5797 Thermal Mitigation level.
5798 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5799 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5800
5801 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5802 level indicates normal mode of operation
5803 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5804 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5805 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5806 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5807*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005808typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005809{
5810 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5811 HAL_THERMAL_MITIGATION_LEVEL_0,
5812 HAL_THERMAL_MITIGATION_LEVEL_1,
5813 HAL_THERMAL_MITIGATION_LEVEL_2,
5814 HAL_THERMAL_MITIGATION_LEVEL_3,
5815 HAL_THERMAL_MITIGATION_LEVEL_4,
5816 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5817}tHalThermalMitigationLevelType;
5818//typedef tANI_S16 tHalThermalMitigationLevelType;
5819
5820typedef PACKED_PRE struct PACKED_POST
5821{
5822 /* Thermal Mitigation Operation Mode */
5823 tHalThermalMitigationModeType thermalMitMode;
5824
5825 /* Thermal Mitigation Level */
5826 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005827
Jeff Johnson295189b2012-06-20 16:38:30 -07005828}tSetThermalMitgationType, *tpSetThermalMitgationType;
5829
5830/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5831typedef PACKED_PRE struct PACKED_POST
5832{
5833 tHalMsgHeader header;
5834 tSetThermalMitgationType thermalMitParams;
5835} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5836
5837typedef PACKED_PRE struct PACKED_POST{
5838
5839 tHalMsgHeader header;
5840
5841 /*status of the request */
5842 tANI_U32 status;
5843
5844} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5845
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08005846/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
5847provided to FW from Host via periodic messages */
5848typedef PACKED_PRE struct PACKED_POST {
5849 /* TX stats */
5850 uint32 txBytesPushed;
5851 uint32 txPacketsPushed;
5852
5853 /* RX stats */
5854 uint32 rxBytesRcvd;
5855 uint32 rxPacketsRcvd;
5856 uint32 rxTimeTotal;
5857} tStaStatsClassB, *tpStaStatsClassB;
5858
5859typedef PACKED_PRE struct PACKED_POST {
5860
5861 /* Duration over which this stats was collected */
5862 tANI_U32 duration;
5863
5864 /* Per STA Stats */
5865 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
5866} tStatsClassBIndParams, *tpStatsClassBIndParams;
5867
5868typedef PACKED_PRE struct PACKED_POST {
5869
5870 tHalMsgHeader header;
5871
5872 /* Class B Stats */
5873 tStatsClassBIndParams statsClassBIndParams;
5874} tStatsClassBInd, *tpStatsClassBInd;
5875
Jeff Johnson295189b2012-06-20 16:38:30 -07005876#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
5877#pragma pack(pop)
5878#elif defined(__ANI_COMPILER_PRAGMA_PACK)
5879#else
5880#endif
5881
5882#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07005883