blob: 796ec59f4c505756e757c0e28070da0d238234c6 [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 */
Jeff Johnson295189b2012-06-20 16:38:30 -070021/*==========================================================================
22 *
23 * @file: wlan_hal_msg.h
24 *
25 * @brief: Exports and types for messages sent to HAL from WDI
26 *
27 * @author: Kumar Anand
28 *
Jeff Johnson32d95a32012-09-10 13:15:23 -070029 * Copyright (C) 2010, Qualcomm, Inc.
Jeff Johnson295189b2012-06-20 16:38:30 -070030 * All rights reserved.
31 *
32 *=========================================================================*/
33
34#ifndef _WLAN_HAL_MSG_H_
35#define _WLAN_HAL_MSG_H_
36
37#include "halLegacyPalTypes.h"
38#include "halCompiler.h"
39#include "wlan_qct_dev_defs.h"
40#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080041
Jeff Johnson295189b2012-06-20 16:38:30 -070042/*---------------------------------------------------------------------------
43 API VERSIONING INFORMATION
44
45 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
46 The MAJOR is incremented for major product/architecture changes
47 (and then MINOR/VERSION/REVISION are zeroed)
48 The MINOR is incremented for minor product/architecture changes
49 (and then VERSION/REVISION are zeroed)
50 The VERSION is incremented if a significant API change occurs
51 (and then REVISION is zeroed)
52 The REVISION is incremented if an insignificant API change occurs
53 or if a new API is added
54 All values are in the range 0..255 (ie they are 8-bit values)
55 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070056#define WLAN_HAL_VER_MAJOR 1
57#define WLAN_HAL_VER_MINOR 3
Jeff Johnson295189b2012-06-20 16:38:30 -070058#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080059#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070060
61/*---------------------------------------------------------------------------
62 Commom Type definitons
63 ---------------------------------------------------------------------------*/
64
65//This is to force compiler to use the maximum of an int ( 4 bytes )
66#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070067#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070068
69//Max no. of transmit categories
70#define STACFG_MAX_TC 8
71
72//The maximum value of access category
73#define WLAN_HAL_MAX_AC 4
74
75typedef tANI_U8 tSirMacAddr[6];
76typedef tANI_U8 tHalIpv4Addr[4];
77
78#define HAL_MAC_ADDR_LEN 6
79#define HAL_IPV4_ADDR_LEN 4
80
81#define WALN_HAL_STA_INVALID_IDX 0xFF
82#define WLAN_HAL_BSS_INVALID_IDX 0xFF
83
84//Default Beacon template size
Jeff Johnson32d95a32012-09-10 13:15:23 -070085#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070086
Jeff Johnson32d95a32012-09-10 13:15:23 -070087//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070088#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
89#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
90#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
91#define PARAM_llACOEXIST_CHANGED (1 << 3)
92#define PARAM_llBCOEXIST_CHANGED (1 << 4)
93#define PARAM_llGCOEXIST_CHANGED (1 << 5)
94#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
95#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
96#define PARAM_RIFS_MODE_CHANGED (1<<8)
97#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
98#define PARAM_OBSS_MODE_CHANGED (1<<10)
99#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
100 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)
101
102/*Dump command response Buffer size*/
103#define DUMPCMD_RSP_BUFFER 100
104
105/*Version string max length (including NUL) */
106#define WLAN_HAL_VERSION_LENGTH 64
107
Jeff Johnson295189b2012-06-20 16:38:30 -0700108/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700109typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700110{
111 //Init/De-Init
112 WLAN_HAL_START_REQ = 0,
113 WLAN_HAL_START_RSP = 1,
114 WLAN_HAL_STOP_REQ = 2,
115 WLAN_HAL_STOP_RSP = 3,
116
117 //Scan
118 WLAN_HAL_INIT_SCAN_REQ = 4,
119 WLAN_HAL_INIT_SCAN_RSP = 5,
120 WLAN_HAL_START_SCAN_REQ = 6,
121 WLAN_HAL_START_SCAN_RSP = 7 ,
122 WLAN_HAL_END_SCAN_REQ = 8,
123 WLAN_HAL_END_SCAN_RSP = 9,
124 WLAN_HAL_FINISH_SCAN_REQ = 10,
125 WLAN_HAL_FINISH_SCAN_RSP = 11,
126
127 // HW STA configuration/deconfiguration
128 WLAN_HAL_CONFIG_STA_REQ = 12,
129 WLAN_HAL_CONFIG_STA_RSP = 13,
130 WLAN_HAL_DELETE_STA_REQ = 14,
131 WLAN_HAL_DELETE_STA_RSP = 15,
132 WLAN_HAL_CONFIG_BSS_REQ = 16,
133 WLAN_HAL_CONFIG_BSS_RSP = 17,
134 WLAN_HAL_DELETE_BSS_REQ = 18,
135 WLAN_HAL_DELETE_BSS_RSP = 19,
136
137 //Infra STA asscoiation
138 WLAN_HAL_JOIN_REQ = 20,
139 WLAN_HAL_JOIN_RSP = 21,
140 WLAN_HAL_POST_ASSOC_REQ = 22,
141 WLAN_HAL_POST_ASSOC_RSP = 23,
142
143 //Security
144 WLAN_HAL_SET_BSSKEY_REQ = 24,
145 WLAN_HAL_SET_BSSKEY_RSP = 25,
146 WLAN_HAL_SET_STAKEY_REQ = 26,
147 WLAN_HAL_SET_STAKEY_RSP = 27,
148 WLAN_HAL_RMV_BSSKEY_REQ = 28,
149 WLAN_HAL_RMV_BSSKEY_RSP = 29,
150 WLAN_HAL_RMV_STAKEY_REQ = 30,
151 WLAN_HAL_RMV_STAKEY_RSP = 31,
152
153 //Qos Related
154 WLAN_HAL_ADD_TS_REQ = 32,
155 WLAN_HAL_ADD_TS_RSP = 33,
156 WLAN_HAL_DEL_TS_REQ = 34,
157 WLAN_HAL_DEL_TS_RSP = 35,
158 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
159 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
160 WLAN_HAL_ADD_BA_REQ = 38,
161 WLAN_HAL_ADD_BA_RSP = 39,
162 WLAN_HAL_DEL_BA_REQ = 40,
163 WLAN_HAL_DEL_BA_RSP = 41,
164
165 WLAN_HAL_CH_SWITCH_REQ = 42,
166 WLAN_HAL_CH_SWITCH_RSP = 43,
167 WLAN_HAL_SET_LINK_ST_REQ = 44,
168 WLAN_HAL_SET_LINK_ST_RSP = 45,
169 WLAN_HAL_GET_STATS_REQ = 46,
170 WLAN_HAL_GET_STATS_RSP = 47,
171 WLAN_HAL_UPDATE_CFG_REQ = 48,
172 WLAN_HAL_UPDATE_CFG_RSP = 49,
173
174 WLAN_HAL_MISSED_BEACON_IND = 50,
175 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
176 WLAN_HAL_MIC_FAILURE_IND = 52,
177 WLAN_HAL_FATAL_ERROR_IND = 53,
178 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700179
Jeff Johnson295189b2012-06-20 16:38:30 -0700180 //NV Interface
181 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
182 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
183
184 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
185 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
186 WLAN_HAL_TRIGGER_BA_REQ = 59,
187 WLAN_HAL_TRIGGER_BA_RSP = 60,
188 WLAN_HAL_UPDATE_BEACON_REQ = 61,
189 WLAN_HAL_UPDATE_BEACON_RSP = 62,
190 WLAN_HAL_SEND_BEACON_REQ = 63,
191 WLAN_HAL_SEND_BEACON_RSP = 64,
192
193 WLAN_HAL_SET_BCASTKEY_REQ = 65,
194 WLAN_HAL_SET_BCASTKEY_RSP = 66,
195 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
196 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
197 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700198
Jeff Johnson295189b2012-06-20 16:38:30 -0700199 // PTT interface support
200 WLAN_HAL_PROCESS_PTT_REQ = 70,
201 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700202
Jeff Johnson295189b2012-06-20 16:38:30 -0700203 // BTAMP related events
204 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
205 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
206 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
207 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
208
209 WLAN_HAL_ENTER_IMPS_REQ = 76,
210 WLAN_HAL_EXIT_IMPS_REQ = 77,
211 WLAN_HAL_ENTER_BMPS_REQ = 78,
212 WLAN_HAL_EXIT_BMPS_REQ = 79,
213 WLAN_HAL_ENTER_UAPSD_REQ = 80,
214 WLAN_HAL_EXIT_UAPSD_REQ = 81,
215 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
216 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
217 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
218 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
219 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
220 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
221 WLAN_HAL_ENTER_WOWL_REQ = 88,
222 WLAN_HAL_EXIT_WOWL_REQ = 89,
223 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
224 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
225 WLAN_HAL_GET_RSSI_REQ = 92,
226 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
227 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
228
229 WLAN_HAL_ENTER_IMPS_RSP = 95,
230 WLAN_HAL_EXIT_IMPS_RSP = 96,
231 WLAN_HAL_ENTER_BMPS_RSP = 97,
232 WLAN_HAL_EXIT_BMPS_RSP = 98,
233 WLAN_HAL_ENTER_UAPSD_RSP = 99,
234 WLAN_HAL_EXIT_UAPSD_RSP = 100,
235 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
236 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
237 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
238 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
239 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
240 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
241 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
242 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
243 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
244 WLAN_HAL_ENTER_WOWL_RSP = 110,
245 WLAN_HAL_EXIT_WOWL_RSP = 111,
246 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
247 WLAN_HAL_GET_RSSI_RSP = 113,
248 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
249
250 //11k related events
251 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
252 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
253
254 //11R related msgs
255 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
256 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
257
258 //P2P WLAN_FEATURE_P2P
259 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
260 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700261
Jeff Johnson295189b2012-06-20 16:38:30 -0700262 //WLAN Dump commands
263 WLAN_HAL_DUMP_COMMAND_REQ = 121,
264 WLAN_HAL_DUMP_COMMAND_RSP = 122,
265
Jeff Johnsone7245742012-09-05 17:12:55 -0700266 //OEM_DATA FEATURE SUPPORT
267 WLAN_HAL_START_OEM_DATA_REQ = 123,
268 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700269
270 //ADD SELF STA REQ and RSP
271 WLAN_HAL_ADD_STA_SELF_REQ = 125,
272 WLAN_HAL_ADD_STA_SELF_RSP = 126,
273
274 //DEL SELF STA SUPPORT
275 WLAN_HAL_DEL_STA_SELF_REQ = 127,
276 WLAN_HAL_DEL_STA_SELF_RSP = 128,
277
278 // Coex Indication
279 WLAN_HAL_COEX_IND = 129,
280
Jeff Johnson32d95a32012-09-10 13:15:23 -0700281 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700282 WLAN_HAL_OTA_TX_COMPL_IND = 130,
283
284 //Host Suspend/resume messages
285 WLAN_HAL_HOST_SUSPEND_IND = 131,
286 WLAN_HAL_HOST_RESUME_REQ = 132,
287 WLAN_HAL_HOST_RESUME_RSP = 133,
288
289 WLAN_HAL_SET_TX_POWER_REQ = 134,
290 WLAN_HAL_SET_TX_POWER_RSP = 135,
291 WLAN_HAL_GET_TX_POWER_REQ = 136,
292 WLAN_HAL_GET_TX_POWER_RSP = 137,
293
294 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700295
Jeff Johnson295189b2012-06-20 16:38:30 -0700296 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
297 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
298 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
299 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
300 WLAN_HAL_RADAR_DETECT_IND = 143,
301 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
302 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700303 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700304
305 /*PNO messages*/
306 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
307 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
308 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
309 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
310 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
311 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700312 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700313
314 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
315 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
316 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700317
Jeff Johnson295189b2012-06-20 16:38:30 -0700318 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700319 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700320
321 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700322 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700323 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700324 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700325 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700326 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
327 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700328 * Host and Riva code is in sync*/
329 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700330
Jeff Johnson295189b2012-06-20 16:38:30 -0700331 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
332 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
333
334 WLAN_HAL_TSM_STATS_REQ = 168,
335 WLAN_HAL_TSM_STATS_RSP = 169,
336
337 // wake reason indication (WOW)
338 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700339 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700340 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
341 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
342 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
343 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
344
345 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
346 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
347 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
348
349 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
350 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
351
Anand Kumar012623a2013-01-11 17:00:00 -0800352 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
353 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Viral Modie50b1d42012-12-10 13:04:52 -0800354
Anand Kumar012623a2013-01-11 17:00:00 -0800355 WLAN_HAL_P2P_NOA_START_IND = 184,
356
357 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
358 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
359
360 WLAN_HAL_SCAN_TX_BD_COMPLETE_IND = 187,
361 WLAN_HAL_CXM2SLM_OPERATING_MODE = 188,
362 WLAN_HAL_P2P_MSG = 189,
363 WLAN_HAL_PS_TX_BPS_MSG = 190,
364 WLAN_HAL_PS_MODE_TO_MSG = 191,
365 WLAN_HAL_P2P_INDICATE_NOA_ATTR_TO_HOST = 192,
366 WLAN_HAL_P2P_INDICATE_NOA_START_TO_HOST = 193,
367 WLAN_HAL_DEL_STA_IND = 194,
368 /* DEL BD IND from RPE interrupt */
369 WLAN_HAL_DEL_BA_IND = 195,
370 WLAN_HAL_SCAN_INTERNAL_EVENTID = 196,
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -0800371 WLAN_HAL_CLASS_B_STATS_IND = 197,
Anand Kumar012623a2013-01-11 17:00:00 -0800372 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700373}tHalHostMsgType;
374
Jeff Johnsone7245742012-09-05 17:12:55 -0700375/* Enumeration for Version */
376typedef enum
377{
378 WLAN_HAL_MSG_VERSION0 = 0,
379 WLAN_HAL_MSG_VERSION1 = 1,
380 WLAN_HAL_MSG_VERSION_MAX_FIELD = 0x7FFF /*define as 2 bytes data*/
381}tHalHostMsgVersion;
382
Jeff Johnson295189b2012-06-20 16:38:30 -0700383/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700384typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700385{
386 eANI_BOOLEAN_FALSE = 0,
387 eANI_BOOLEAN_TRUE,
388 eANI_BOOLEAN_OFF = 0,
389 eANI_BOOLEAN_ON = 1,
390 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
391} eAniBoolean;
392
393typedef enum
394{
395 eDRIVER_TYPE_PRODUCTION = 0,
396 eDRIVER_TYPE_MFG = 1,
397 eDRIVER_TYPE_DVT = 2,
398 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
399} tDriverType;
400
401typedef enum
402{
403 HAL_STOP_TYPE_SYS_RESET,
404 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
405 HAL_STOP_TYPE_RF_KILL,
406 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
407}tHalStopType;
408
409typedef enum
410{
411 eHAL_SYS_MODE_NORMAL,
412 eHAL_SYS_MODE_LEARN,
413 eHAL_SYS_MODE_SCAN,
414 eHAL_SYS_MODE_PROMISC,
415 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700416 eHAL_SYS_MODE_ROAM_SCAN,
417 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700418 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
419} eHalSysMode;
420
421typedef enum
422{
423 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
424 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
425 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
426 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700427#ifdef WLAN_FEATURE_11AC
428 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
429 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
430 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
431 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
432 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
433 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
434 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
435#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700436 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
437}ePhyChanBondState;
438
439// Spatial Multiplexing(SM) Power Save mode
440typedef enum eSirMacHTMIMOPowerSaveState
441{
442 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
443 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
444 eSIR_HT_MIMO_PS_NA = 2, // reserved
445 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
446 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
447} tSirMacHTMIMOPowerSaveState;
448
449/* each station added has a rate mode which specifies the sta attributes */
450typedef enum eStaRateMode {
451 eSTA_TAURUS = 0,
452 eSTA_TITAN,
453 eSTA_POLARIS,
454 eSTA_11b,
455 eSTA_11bg,
456 eSTA_11a,
457 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700458#ifdef WLAN_FEATURE_11AC
459 eSTA_11ac,
460#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700461 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
462} tStaRateMode, *tpStaRateMode;
463
464#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
465#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
466#define SIR_NUM_POLARIS_RATES 3 //72,96,108
467
468#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
469
470
471typedef enum eSirBssType
472{
473 eSIR_INFRASTRUCTURE_MODE,
474 eSIR_INFRA_AP_MODE, //Added for softAP support
475 eSIR_IBSS_MODE,
476 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
477 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
478 eSIR_AUTO_MODE,
479 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
480} tSirBssType;
481
482typedef enum eSirNwType
483{
484 eSIR_11A_NW_TYPE,
485 eSIR_11B_NW_TYPE,
486 eSIR_11G_NW_TYPE,
487 eSIR_11N_NW_TYPE,
488 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
489} tSirNwType;
490
491typedef tANI_U16 tSirMacBeaconInterval;
492
493#define SIR_MAC_RATESET_EID_MAX 12
494
495typedef enum eSirMacHTOperatingMode
496{
497 eSIR_HT_OP_MODE_PURE, // No Protection
498 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
499 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
500 eSIR_HT_OP_MODE_MIXED, // Protection is required
501 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
502} tSirMacHTOperatingMode;
503
Jeff Johnson295189b2012-06-20 16:38:30 -0700504/// Encryption type enum used with peer
505typedef enum eAniEdType
506{
507 eSIR_ED_NONE,
508 eSIR_ED_WEP40,
509 eSIR_ED_WEP104,
510 eSIR_ED_TKIP,
511 eSIR_ED_CCMP,
512 eSIR_ED_WPI,
513 eSIR_ED_AES_128_CMAC,
514 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
515} tAniEdType;
516
517#define WLAN_MAX_KEY_RSC_LEN 16
518#define WLAN_WAPI_KEY_RSC_LEN 16
519
520/// MAX key length when ULA is used
521#define SIR_MAC_MAX_KEY_LENGTH 32
522#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
523
524/// Enum to specify whether key is used
525/// for TX only, RX only or both
526typedef enum eAniKeyDirection
527{
528 eSIR_TX_ONLY,
529 eSIR_RX_ONLY,
530 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700531 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700532 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
533} tAniKeyDirection;
534
535typedef enum eAniWepType
536{
537 eSIR_WEP_STATIC,
538 eSIR_WEP_DYNAMIC,
539 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
540} tAniWepType;
541
542typedef enum eSriLinkState {
543
544 eSIR_LINK_IDLE_STATE = 0,
545 eSIR_LINK_PREASSOC_STATE = 1,
546 eSIR_LINK_POSTASSOC_STATE = 2,
547 eSIR_LINK_AP_STATE = 3,
548 eSIR_LINK_IBSS_STATE = 4,
549
550 /* BT-AMP Case */
551 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
552 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
553 eSIR_LINK_BTAMP_AP_STATE = 7,
554 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700555
Jeff Johnson295189b2012-06-20 16:38:30 -0700556 /* Reserved for HAL Internal Use */
557 eSIR_LINK_LEARN_STATE = 9,
558 eSIR_LINK_SCAN_STATE = 10,
559 eSIR_LINK_FINISH_SCAN_STATE = 11,
560 eSIR_LINK_INIT_CAL_STATE = 12,
561 eSIR_LINK_FINISH_CAL_STATE = 13,
562#ifdef WLAN_FEATURE_P2P
563 eSIR_LINK_LISTEN_STATE = 14,
564#endif
565 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
566} tSirLinkState;
567
568typedef enum
569{
570 HAL_SUMMARY_STATS_INFO = 0x00000001,
571 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
572 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
573 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
574 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
575 HAL_PER_STA_STATS_INFO = 0x00000020
576}eHalStatsMask;
577
578/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700579typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700580{
581 BTAMP_EVENT_CONNECTION_START,
582 BTAMP_EVENT_CONNECTION_STOP,
583 BTAMP_EVENT_CONNECTION_TERMINATED,
584 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
585} tBtAmpEventType;
586
587//***************************************************************
588
589
590/*******************PE Statistics*************************/
591typedef enum
592{
593 PE_SUMMARY_STATS_INFO = 0x00000001,
594 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
595 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
596 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
597 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
598 PE_PER_STA_STATS_INFO = 0x00000020,
599 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
600}ePEStatsMask;
601
602/*---------------------------------------------------------------------------
603 Message definitons - All the messages below need to be packed
604 ---------------------------------------------------------------------------*/
605
606#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
607#pragma pack(push, 1)
608#elif defined(__ANI_COMPILER_PRAGMA_PACK)
609#pragma pack(1)
610#else
611#endif
612
613/// Definition for HAL API Version.
614typedef PACKED_PRE struct PACKED_POST
615{
616 tANI_U8 revision;
617 tANI_U8 version;
618 tANI_U8 minor;
619 tANI_U8 major;
620} tWcnssWlanVersion, *tpWcnssWlanVersion;
621
622/// Definition for Encryption Keys
623typedef PACKED_PRE struct PACKED_POST
624{
625 tANI_U8 keyId;
626 tANI_U8 unicast; // 0 for multicast
627 tAniKeyDirection keyDirection;
628 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
629 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
630 tANI_U16 keyLength;
631 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
632} tSirKeys, *tpSirKeys;
633
634
635//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
636typedef PACKED_PRE struct PACKED_POST
637{
638 /*STA Index*/
639 tANI_U16 staIdx;
640
641 /*Encryption Type used with peer*/
642 tAniEdType encType;
643
644 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700645 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700646
647 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
648 tANI_U8 defWEPIdx;
649
Jeff Johnson295189b2012-06-20 16:38:30 -0700650 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700651 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
652
Jeff Johnson295189b2012-06-20 16:38:30 -0700653 /*Control for Replay Count, 1= Single TID based replay count on Tx
654 0 = Per TID based replay count on TX */
655 tANI_U8 singleTidRc;
656
657} tSetStaKeyParams, *tpSetStaKeyParams;
658
659
660
661/* 4-byte control message header used by HAL*/
662typedef PACKED_PRE struct PACKED_POST
663{
Jeff Johnsone7245742012-09-05 17:12:55 -0700664 tHalHostMsgType msgType:16;
665 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700666 tANI_U32 msgLen;
667} tHalMsgHeader, *tpHalMsgHeader;
668
669/* Config format required by HAL for each CFG item*/
670typedef PACKED_PRE struct PACKED_POST
671{
672 /* Cfg Id. The Id required by HAL is exported by HAL
673 * in shared header file between UMAC and HAL.*/
674 tANI_U16 uCfgId;
675
Jeff Johnson32d95a32012-09-10 13:15:23 -0700676 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700677 * in the TLV format.*/
678 tANI_U16 uCfgLen;
679
680 /* Padding bytes for unaligned address's */
681 tANI_U16 uCfgPadBytes;
682
683 /* Reserve bytes for making cfgVal to align address */
684 tANI_U16 uCfgReserve;
685
686 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
687 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
688} tHalCfg, *tpHalCfg;
689
690/*---------------------------------------------------------------------------
691 WLAN_HAL_START_REQ
692---------------------------------------------------------------------------*/
693
694typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
695{
696 /* Drive Type - Production or FTM etc */
697 tDriverType driverType;
698
699 /*Length of the config buffer*/
700 tANI_U32 uConfigBufferLen;
701
Jeff Johnson32d95a32012-09-10 13:15:23 -0700702 /* Following this there is a TLV formatted buffer of length
703 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700704 * The TLV is expected to be formatted like this:
705 * 0 15 31 31+CFG_LEN-1 length-1
706 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
707 */
708} tHalMacStartParameters, *tpHalMacStartParameters;
709
710typedef PACKED_PRE struct PACKED_POST
711{
712 /* Note: The length specified in tHalMacStartReqMsg messages should be
713 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
714 tHalMsgHeader header;
715 tHalMacStartParameters startReqParams;
716} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
717
718/*---------------------------------------------------------------------------
719 WLAN_HAL_START_RSP
720---------------------------------------------------------------------------*/
721
722typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
723{
724 /*success or failure */
725 tANI_U16 status;
726
727 /*Max number of STA supported by the device*/
728 tANI_U8 ucMaxStations;
729
730 /*Max number of BSS supported by the device*/
731 tANI_U8 ucMaxBssids;
732
733 /*API Version */
734 tWcnssWlanVersion wcnssWlanVersion;
735
736 /*CRM build information */
737 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
738
739 /*hardware/chipset/misc version information */
740 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
741
742} tHalMacStartRspParams, *tpHalMacStartRspParams;
743
744typedef PACKED_PRE struct PACKED_POST
745{
746 tHalMsgHeader header;
747 tHalMacStartRspParams startRspParams;
748} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
749
750/*---------------------------------------------------------------------------
751 WLAN_HAL_STOP_REQ
752---------------------------------------------------------------------------*/
753
754typedef PACKED_PRE struct PACKED_POST
755{
756 /*The reason for which the device is being stopped*/
757 tHalStopType reason;
758
759}tHalMacStopReqParams, *tpHalMacStopReqParams;
760
761typedef PACKED_PRE struct PACKED_POST
762{
763 tHalMsgHeader header;
764 tHalMacStopReqParams stopReqParams;
765} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
766
767/*---------------------------------------------------------------------------
768 WLAN_HAL_STOP_RSP
769---------------------------------------------------------------------------*/
770
771typedef PACKED_PRE struct PACKED_POST
772{
773 /*success or failure */
774 tANI_U32 status;
775
776}tHalMacStopRspParams, *tpHalMacStopRspParams;
777
778typedef PACKED_PRE struct PACKED_POST
779{
780 tHalMsgHeader header;
781 tHalMacStopRspParams stopRspParams;
782} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
783
784/*---------------------------------------------------------------------------
785 WLAN_HAL_UPDATE_CFG_REQ
786---------------------------------------------------------------------------*/
787
788typedef PACKED_PRE struct PACKED_POST
789{
790 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
791 tANI_U32 uConfigBufferLen;
792
Jeff Johnson32d95a32012-09-10 13:15:23 -0700793 /* Following this there is a TLV formatted buffer of length
794 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700795 * The TLV is expected to be formatted like this:
796 * 0 15 31 31+CFG_LEN-1 length-1
797 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
798 */
799} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
800
801typedef PACKED_PRE struct PACKED_POST
802{
803 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
804 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
805 tHalMsgHeader header;
806 tHalUpdateCfgReqParams updateCfgReqParams;
807} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
808
809/*---------------------------------------------------------------------------
810 WLAN_HAL_UPDATE_CFG_RSP
811---------------------------------------------------------------------------*/
812
813typedef PACKED_PRE struct PACKED_POST
814{
815 /* success or failure */
816 tANI_U32 status;
817
818}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
819
820typedef PACKED_PRE struct PACKED_POST
821{
822 tHalMsgHeader header;
823 tHalUpdateCfgRspParams updateCfgRspParams;
824} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
825
826/*---------------------------------------------------------------------------
827 WLAN_HAL_INIT_SCAN_REQ
828---------------------------------------------------------------------------*/
829
830/// Frame control field format (2 bytes)
831typedef __ani_attr_pre_packed struct sSirMacFrameCtl
832{
833
834#ifndef ANI_LITTLE_BIT_ENDIAN
835
836 tANI_U8 subType :4;
837 tANI_U8 type :2;
838 tANI_U8 protVer :2;
839
840 tANI_U8 order :1;
841 tANI_U8 wep :1;
842 tANI_U8 moreData :1;
843 tANI_U8 powerMgmt :1;
844 tANI_U8 retry :1;
845 tANI_U8 moreFrag :1;
846 tANI_U8 fromDS :1;
847 tANI_U8 toDS :1;
848
849#else
850
851 tANI_U8 protVer :2;
852 tANI_U8 type :2;
853 tANI_U8 subType :4;
854
855 tANI_U8 toDS :1;
856 tANI_U8 fromDS :1;
857 tANI_U8 moreFrag :1;
858 tANI_U8 retry :1;
859 tANI_U8 powerMgmt :1;
860 tANI_U8 moreData :1;
861 tANI_U8 wep :1;
862 tANI_U8 order :1;
863
864#endif
865
866} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
867
868/// Sequence control field
869typedef __ani_attr_pre_packed struct sSirMacSeqCtl
870{
871 tANI_U8 fragNum : 4;
872 tANI_U8 seqNumLo : 4;
873 tANI_U8 seqNumHi : 8;
874} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
875
876/// Management header format
877typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
878{
879 tSirMacFrameCtl fc;
880 tANI_U8 durationLo;
881 tANI_U8 durationHi;
882 tANI_U8 da[6];
883 tANI_U8 sa[6];
884 tANI_U8 bssId[6];
885 tSirMacSeqCtl seqControl;
886} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
887
888/// Scan Entry to hold active BSS idx's
889typedef __ani_attr_pre_packed struct sSirScanEntry
890{
891 tANI_U8 bssIdx[HAL_NUM_BSSID];
892 tANI_U8 activeBSScnt;
893}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
894
895typedef PACKED_PRE struct PACKED_POST {
896
897 /*LEARN - AP Role
898 SCAN - STA Role*/
899 eHalSysMode scanMode;
900
901 /*BSSID of the BSS*/
902 tSirMacAddr bssid;
903
904 /*Whether BSS needs to be notified*/
905 tANI_U8 notifyBss;
906
907 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
908 CTS to Self). Must always be a valid frame type.*/
909 tANI_U8 frameType;
910
911 /*UMAC has the option of passing the MAC frame to be used for notifying
912 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
913 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
914 frameType.*/
915 tANI_U8 frameLength;
916
Jeff Johnson32d95a32012-09-10 13:15:23 -0700917 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700918 is non-zero. */
919 tSirMacMgmtHdr macMgmtHdr;
920
921 /*Entry to hold number of active BSS idx's*/
922 tSirScanEntry scanEntry;
923
924} tInitScanParams, * tpInitScanParams;
925
926typedef PACKED_PRE struct PACKED_POST
927{
928 tHalMsgHeader header;
929 tInitScanParams initScanParams;
930} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
931
932typedef PACKED_PRE struct PACKED_POST {
933
934 /*LEARN - AP Role
935 SCAN - STA Role*/
936 eHalSysMode scanMode;
937
938 /*BSSID of the BSS*/
939 tSirMacAddr bssid;
940
941 /*Whether BSS needs to be notified*/
942 tANI_U8 notifyBss;
943
944 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
945 CTS to Self). Must always be a valid frame type.*/
946 tANI_U8 frameType;
947
948 /*UMAC has the option of passing the MAC frame to be used for notifying
949 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
950 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
951 frameType.*/
952 tANI_U8 frameLength;
953
Jeff Johnson32d95a32012-09-10 13:15:23 -0700954 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700955 is non-zero. */
956 tSirMacMgmtHdr macMgmtHdr;
957
958 /*Entry to hold number of active BSS idx's*/
959 tSirScanEntry scanEntry;
960
961 /* Single NoA usage in Scanning */
962 tANI_U8 useNoA;
963
964 /* Indicates the scan duration (in ms) */
965 tANI_U16 scanDuration;
966
967} tInitScanConParams, * tpInitScanConParams;
968
969typedef PACKED_PRE struct PACKED_POST
970{
971 tHalMsgHeader header;
972 tInitScanConParams initScanParams;
973} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
974
975
976/*---------------------------------------------------------------------------
977 WLAN_HAL_INIT_SCAN_RSP
978---------------------------------------------------------------------------*/
979
980typedef PACKED_PRE struct PACKED_POST
981{
982 /*success or failure */
983 tANI_U32 status;
984
985}tHalInitScanRspParams, *tpHalInitScanRspParams;
986
987typedef PACKED_PRE struct PACKED_POST
988{
989 tHalMsgHeader header;
990 tHalInitScanRspParams initScanRspParams;
991} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
992
993/*---------------------------------------------------------------------------
994 WLAN_HAL_START_SCAN_REQ
995---------------------------------------------------------------------------*/
996
Jeff Johnson32d95a32012-09-10 13:15:23 -0700997typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -0700998{
999 /*Indicates the channel to scan*/
1000 tANI_U8 scanChannel;
1001
1002 } tStartScanParams, * tpStartScanParams;
1003
1004typedef PACKED_PRE struct PACKED_POST
1005{
1006 tHalMsgHeader header;
1007 tStartScanParams startScanParams;
1008} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1009
1010/*---------------------------------------------------------------------------
1011 WLAN_HAL_START_SCAN_RSP
1012---------------------------------------------------------------------------*/
1013
1014typedef PACKED_PRE struct PACKED_POST
1015{
1016 /*success or failure */
1017 tANI_U32 status;
1018
1019 tANI_U32 startTSF[2];
1020 tPowerdBm txMgmtPower;
1021
1022}tHalStartScanRspParams, *tpHalStartScanRspParams;
1023
1024typedef PACKED_PRE struct PACKED_POST
1025{
1026 tHalMsgHeader header;
1027 tHalStartScanRspParams startScanRspParams;
1028} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1029
1030/*---------------------------------------------------------------------------
1031 WLAN_HAL_END_SCAN_REQ
1032---------------------------------------------------------------------------*/
1033
1034typedef PACKED_PRE struct PACKED_POST
1035{
1036 /*Indicates the channel to stop scanning. Not used really. But retained
1037 for symmetry with "start Scan" message. It can also help in error
1038 check if needed.*/
1039 tANI_U8 scanChannel;
1040
1041} tEndScanParams, *tpEndScanParams;
1042
1043typedef PACKED_PRE struct PACKED_POST
1044{
1045 tHalMsgHeader header;
1046 tEndScanParams endScanParams;
1047} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1048
1049/*---------------------------------------------------------------------------
1050 WLAN_HAL_END_SCAN_RSP
1051---------------------------------------------------------------------------*/
1052
1053typedef PACKED_PRE struct PACKED_POST
1054{
1055 /*success or failure */
1056 tANI_U32 status;
1057
1058}tHalEndScanRspParams, *tpHalEndScanRspParams;
1059
1060typedef PACKED_PRE struct PACKED_POST
1061{
1062 tHalMsgHeader header;
1063 tHalEndScanRspParams endScanRspParams;
1064} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1065
1066/*---------------------------------------------------------------------------
1067 WLAN_HAL_FINISH_SCAN_REQ
1068---------------------------------------------------------------------------*/
1069
1070typedef PACKED_PRE struct PACKED_POST
1071{
1072 /* Identifies the operational state of the AP/STA
1073 * LEARN - AP Role SCAN - STA Role */
1074 eHalSysMode scanMode;
1075
1076 /*Operating channel to tune to.*/
1077 tANI_U8 currentOperChannel;
1078
1079 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1080 40 MHz extension channel in combination with the control channel*/
1081 ePhyChanBondState cbState;
1082
1083 /*BSSID of the BSS*/
1084 tSirMacAddr bssid;
1085
1086 /*Whether BSS needs to be notified*/
1087 tANI_U8 notifyBss;
1088
1089 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1090 CTS to Self). Must always be a valid frame type.*/
1091 tANI_U8 frameType;
1092
1093 /*UMAC has the option of passing the MAC frame to be used for notifying
1094 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1095 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1096 frameType.*/
1097 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001098
1099 /*Following the framelength there is a MAC frame buffer if frameLength
1100 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001101 tSirMacMgmtHdr macMgmtHdr;
1102
1103 /*Entry to hold number of active BSS idx's*/
1104 tSirScanEntry scanEntry;
1105
1106} tFinishScanParams, *tpFinishScanParams;
1107
1108typedef PACKED_PRE struct PACKED_POST
1109{
1110 tHalMsgHeader header;
1111 tFinishScanParams finishScanParams;
1112} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1113
1114/*---------------------------------------------------------------------------
1115 WLAN_HAL_FINISH_SCAN_RSP
1116---------------------------------------------------------------------------*/
1117
1118typedef PACKED_PRE struct PACKED_POST
1119{
1120 /*success or failure */
1121 tANI_U32 status;
1122
1123}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1124
1125typedef PACKED_PRE struct PACKED_POST
1126{
1127 tHalMsgHeader header;
1128 tHalFinishScanRspParams finishScanRspParams;
1129} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1130
1131/*---------------------------------------------------------------------------
1132 WLAN_HAL_CONFIG_STA_REQ
1133---------------------------------------------------------------------------*/
1134
1135typedef PACKED_PRE struct PACKED_POST {
1136 /*
1137 * For Self STA Entry: this represents Self Mode.
1138 * For Peer Stations, this represents the mode of the peer.
1139 * On Station:
1140 * --this mode is updated when PE adds the Self Entry.
1141 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1142 * ON AP:
1143 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1144 * to indicate the self mode of the AP.
1145 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1146 */
1147
1148 tStaRateMode opRateMode;
1149 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1150 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1151 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1152 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1153 tANI_U16 reserved;
1154
1155 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1156 //First 26 bits are reserved for those Titan rates and
1157 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1158 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1159
1160 /*
1161 * 0-76 bits used, remaining reserved
1162 * bits 0-15 and 32 should be set.
1163 */
1164 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1165
1166 /*
1167 * RX Highest Supported Data Rate defines the highest data
1168 * rate that the STA is able to receive, in unites of 1Mbps.
1169 * This value is derived from "Supported MCS Set field" inside
1170 * the HT capability element.
1171 */
1172 tANI_U16 rxHighestDataRate;
1173
1174} tSirSupportedRates, *tpSirSupportedRates;
1175
1176typedef PACKED_PRE struct PACKED_POST
1177{
1178 /*BSSID of STA*/
1179 tSirMacAddr bssId;
1180
1181 /*ASSOC ID, as assigned by UMAC*/
1182 tANI_U16 assocId;
1183
1184 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1185 tANI_U8 staType;
1186
1187 /*Short Preamble Supported.*/
1188 tANI_U8 shortPreambleSupported;
1189
1190 /*MAC Address of STA*/
1191 tSirMacAddr staMac;
1192
1193 /*Listen interval of the STA*/
1194 tANI_U16 listenInterval;
1195
1196 /*Support for 11e/WMM*/
1197 tANI_U8 wmmEnabled;
1198
1199 /*11n HT capable STA*/
1200 tANI_U8 htCapable;
1201
1202 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1203 tANI_U8 txChannelWidthSet;
1204
1205 /*RIFS mode 0 - NA, 1 - Allowed */
1206 tANI_U8 rifsMode;
1207
Jeff Johnson32d95a32012-09-10 13:15:23 -07001208 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001209 0 - No Support, 1 - Supported
1210 SG - there is global field */
1211 tANI_U8 lsigTxopProtection;
1212
1213 /*Max Ampdu Size supported by STA. TPE programming.
1214 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1215 tANI_U8 maxAmpduSize;
1216
1217 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1218 tANI_U8 maxAmpduDensity;
1219
1220 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1221 tANI_U8 maxAmsduSize;
1222
1223 /*Short GI support for 40Mhz packets*/
1224 tANI_U8 fShortGI40Mhz;
1225
1226 /*Short GI support for 20Mhz packets*/
1227 tANI_U8 fShortGI20Mhz;
1228
Jeff Johnson295189b2012-06-20 16:38:30 -07001229 /*Robust Management Frame (RMF) enabled/disabled*/
1230 tANI_U8 rmfEnabled;
1231
1232 /* The unicast encryption type in the association */
1233 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001234
1235 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001236 will set this flag in case of RE-ASSOC, where we want to reuse the old
1237 STA ID. 0 = Add, 1 = Update*/
1238 tANI_U8 action;
1239
1240 /*U-APSD Flags: 1b per AC. Encoded as follows:
1241 b7 b6 b5 b4 b3 b2 b1 b0 =
1242 X X X X BE BK VI VO */
1243 tANI_U8 uAPSD;
1244
1245 /*Max SP Length*/
1246 tANI_U8 maxSPLen;
1247
1248 /*11n Green Field preamble support
1249 0 - Not supported, 1 - Supported */
1250 tANI_U8 greenFieldCapable;
1251
1252 /*MIMO Power Save mode*/
1253 tSirMacHTMIMOPowerSaveState mimoPS;
1254
1255 /*Delayed BA Support*/
1256 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001257
Jeff Johnson295189b2012-06-20 16:38:30 -07001258 /*Max AMPDU duration in 32us*/
1259 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001260
Jeff Johnson295189b2012-06-20 16:38:30 -07001261 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1262 it to 0 if AP does not support it. This indication is sent to HAL and
1263 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1264 tANI_U8 fDsssCckMode40Mhz;
1265
1266 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1267 Retained for backward compalibity with existing HAL code*/
1268 tANI_U8 staIdx;
1269
1270 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1271 Retained for backward compalibity with existing HAL code*/
1272 tANI_U8 bssIdx;
1273
1274 tANI_U8 p2pCapableSta;
1275
Jeff Johnsone7245742012-09-05 17:12:55 -07001276 /*Reserved to align next field on a dword boundary*/
1277 tANI_U8 reserved;
1278
1279 /*These rates are the intersection of peer and self capabilities.*/
1280 tSirSupportedRates supportedRates;
1281
Jeff Johnson295189b2012-06-20 16:38:30 -07001282} tConfigStaParams, *tpConfigStaParams;
1283
Jeff Johnsone7245742012-09-05 17:12:55 -07001284/*------------------------------------------------------------------------
1285 * WLAN_HAL_CONFIG_STA_REQ
1286 * ----------------------------------------------------------------------*/
1287
1288typedef PACKED_PRE struct PACKED_POST {
1289 /*
1290 * For Self STA Entry: this represents Self Mode.
1291 * For Peer Stations, this represents the mode of the peer.
1292 * On Station:
1293 * --this mode is updated when PE adds the Self Entry.
1294 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1295 * ON AP:
1296 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1297 * to indicate the self mode of the AP.
1298 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1299 */
1300
1301 tStaRateMode opRateMode;
1302 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1303 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1304 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1305 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1306 tANI_U16 reserved;
1307
1308 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1309 //First 26 bits are reserved for those Titan rates and
1310 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1311 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1312
1313 /*
1314 * 0-76 bits used, remaining reserved
1315 * bits 0-15 and 32 should be set.
1316 */
1317 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1318
1319 /*
1320 * RX Highest Supported Data Rate defines the highest data
1321 * rate that the STA is able to receive, in unites of 1Mbps.
1322 * This value is derived from "Supported MCS Set field" inside
1323 * the HT capability element.
1324 */
1325 tANI_U16 rxHighestDataRate;
1326
1327 /* Indicates the Maximum MCS that can be received for each number
1328 * of spacial streams */
1329 tANI_U16 vhtRxMCSMap;
1330
1331 /*Indicate the highest VHT data rate that the STA is able to receive*/
1332 tANI_U16 vhtRxHighestDataRate;
1333
1334 /* Indicates the Maximum MCS that can be transmitted for each number
1335 * of spacial streams */
1336 tANI_U16 vhtTxMCSMap;
1337
1338 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1339 tANI_U16 vhtTxHighestDataRate;
1340
1341} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1342
1343typedef PACKED_PRE struct PACKED_POST
1344{
1345 /*BSSID of STA*/
1346 tSirMacAddr bssId;
1347
1348 /*ASSOC ID, as assigned by UMAC*/
1349 tANI_U16 assocId;
1350
1351 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1352 tANI_U8 staType;
1353
1354 /*Short Preamble Supported.*/
1355 tANI_U8 shortPreambleSupported;
1356
1357 /*MAC Address of STA*/
1358 tSirMacAddr staMac;
1359
1360 /*Listen interval of the STA*/
1361 tANI_U16 listenInterval;
1362
1363 /*Support for 11e/WMM*/
1364 tANI_U8 wmmEnabled;
1365
1366 /*11n HT capable STA*/
1367 tANI_U8 htCapable;
1368
1369 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1370 tANI_U8 txChannelWidthSet;
1371
1372 /*RIFS mode 0 - NA, 1 - Allowed */
1373 tANI_U8 rifsMode;
1374
1375 /*L-SIG TXOP Protection mechanism
1376 0 - No Support, 1 - Supported
1377 SG - there is global field */
1378 tANI_U8 lsigTxopProtection;
1379
1380 /*Max Ampdu Size supported by STA. TPE programming.
1381 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1382 tANI_U8 maxAmpduSize;
1383
1384 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1385 tANI_U8 maxAmpduDensity;
1386
1387 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1388 tANI_U8 maxAmsduSize;
1389
1390 /*Short GI support for 40Mhz packets*/
1391 tANI_U8 fShortGI40Mhz;
1392
1393 /*Short GI support for 20Mhz packets*/
1394 tANI_U8 fShortGI20Mhz;
1395
1396 /*Robust Management Frame (RMF) enabled/disabled*/
1397 tANI_U8 rmfEnabled;
1398
1399 /* The unicast encryption type in the association */
1400 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001401
1402 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001403 will set this flag in case of RE-ASSOC, where we want to reuse the old
1404 STA ID. 0 = Add, 1 = Update*/
1405 tANI_U8 action;
1406
1407 /*U-APSD Flags: 1b per AC. Encoded as follows:
1408 b7 b6 b5 b4 b3 b2 b1 b0 =
1409 X X X X BE BK VI VO */
1410 tANI_U8 uAPSD;
1411
1412 /*Max SP Length*/
1413 tANI_U8 maxSPLen;
1414
1415 /*11n Green Field preamble support
1416 0 - Not supported, 1 - Supported */
1417 tANI_U8 greenFieldCapable;
1418
1419 /*MIMO Power Save mode*/
1420 tSirMacHTMIMOPowerSaveState mimoPS;
1421
1422 /*Delayed BA Support*/
1423 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001424
Jeff Johnsone7245742012-09-05 17:12:55 -07001425 /*Max AMPDU duration in 32us*/
1426 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001427
Jeff Johnsone7245742012-09-05 17:12:55 -07001428 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1429 it to 0 if AP does not support it. This indication is sent to HAL and
1430 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1431 tANI_U8 fDsssCckMode40Mhz;
1432
1433 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1434 Retained for backward compalibity with existing HAL code*/
1435 tANI_U8 staIdx;
1436
1437 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1438 Retained for backward compalibity with existing HAL code*/
1439 tANI_U8 bssIdx;
1440
1441 tANI_U8 p2pCapableSta;
1442
1443 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001444 tANI_U8 htLdpcEnabled:1;
1445 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001446 tANI_U8 vhtTxBFEnabled:1;
1447 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001448
1449 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001450 tSirSupportedRates_V1 supportedRates;
1451
1452 tANI_U8 vhtCapable;
1453 tANI_U8 vhtTxChannelWidthSet;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001454
Jeff Johnsone7245742012-09-05 17:12:55 -07001455} tConfigStaParams_V1, *tpConfigStaParams_V1;
1456
Jeff Johnson295189b2012-06-20 16:38:30 -07001457typedef PACKED_PRE struct PACKED_POST
1458{
1459 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001460 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001461 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001462 tConfigStaParams_V1 configStaParams_V1;
1463 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001464} tConfigStaReqMsg, *tpConfigStaReqMsg;
1465
1466/*---------------------------------------------------------------------------
1467 WLAN_HAL_CONFIG_STA_RSP
1468---------------------------------------------------------------------------*/
1469
1470typedef PACKED_PRE struct PACKED_POST
1471{
1472 /*success or failure */
1473 tANI_U32 status;
1474
1475 /* Station index; valid only when 'status' field value SUCCESS */
1476 tANI_U8 staIdx;
1477
1478 /* BSSID Index of BSS to which the station is associated */
1479 tANI_U8 bssIdx;
1480
1481 /* DPU Index for PTK */
1482 tANI_U8 dpuIndex;
1483
Jeff Johnson32d95a32012-09-10 13:15:23 -07001484 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001485 tANI_U8 bcastDpuIndex;
1486
1487 /*DPU Index for IGTK */
1488 tANI_U8 bcastMgmtDpuIdx;
1489
1490 /*PTK DPU signature*/
1491 tANI_U8 ucUcastSig;
1492
1493 /*GTK DPU isignature*/
1494 tANI_U8 ucBcastSig;
1495
1496 /* IGTK DPU signature*/
1497 tANI_U8 ucMgmtSig;
1498
1499 tANI_U8 p2pCapableSta;
1500
1501}tConfigStaRspParams, *tpConfigStaRspParams;
1502
1503typedef PACKED_PRE struct PACKED_POST
1504{
1505 tHalMsgHeader header;
1506 tConfigStaRspParams configStaRspParams;
1507}tConfigStaRspMsg, *tpConfigStaRspMsg;
1508
1509/*---------------------------------------------------------------------------
1510 WLAN_HAL_DELETE_STA_REQ
1511---------------------------------------------------------------------------*/
1512
1513/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001514typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001515{
1516 /* Index of STA to delete */
1517 tANI_U8 staIdx;
1518} tDeleteStaParams, *tpDeleteStaParams;
1519
1520/* Delete STA Request message*/
1521typedef PACKED_PRE struct PACKED_POST
1522{
1523 tHalMsgHeader header;
1524 tDeleteStaParams delStaParams;
1525} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1526
1527/*---------------------------------------------------------------------------
1528 WLAN_HAL_DELETE_STA_RSP
1529---------------------------------------------------------------------------*/
1530
1531/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001532typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001533{
1534 /*success or failure */
1535 tANI_U32 status;
1536
1537 /* Index of STA deleted */
1538 tANI_U8 staId;
1539} tDeleteStaRspParams, *tpDeleteStaRspParams;
1540
1541/* Delete STA Response message*/
1542typedef PACKED_PRE struct PACKED_POST
1543{
1544 tHalMsgHeader header;
1545 tDeleteStaRspParams delStaRspParams;
1546} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1547
1548/*---------------------------------------------------------------------------
1549 WLAN_HAL_CONFIG_BSS_REQ
1550---------------------------------------------------------------------------*/
1551
1552//12 Bytes long because this structure can be used to represent rate
1553//and extended rate set IEs. The parser assume this to be at least 12
1554typedef __ani_attr_pre_packed struct sSirMacRateSet
1555{
1556 tANI_U8 numRates;
1557 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1558} __ani_attr_packed tSirMacRateSet;
1559
1560// access category record
1561typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1562{
1563#ifndef ANI_LITTLE_BIT_ENDIAN
1564 tANI_U8 rsvd : 1;
1565 tANI_U8 aci : 2;
1566 tANI_U8 acm : 1;
1567 tANI_U8 aifsn : 4;
1568#else
1569 tANI_U8 aifsn : 4;
1570 tANI_U8 acm : 1;
1571 tANI_U8 aci : 2;
1572 tANI_U8 rsvd : 1;
1573#endif
1574} __ani_attr_packed tSirMacAciAifsn;
1575
1576// contention window size
1577typedef __ani_attr_pre_packed struct sSirMacCW
1578{
1579#ifndef ANI_LITTLE_BIT_ENDIAN
1580 tANI_U8 max : 4;
1581 tANI_U8 min : 4;
1582#else
1583 tANI_U8 min : 4;
1584 tANI_U8 max : 4;
1585#endif
1586} __ani_attr_packed tSirMacCW;
1587
1588typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1589{
1590 tSirMacAciAifsn aci;
1591 tSirMacCW cw;
1592 tANI_U16 txoplimit;
1593} __ani_attr_packed tSirMacEdcaParamRecord;
1594
1595typedef __ani_attr_pre_packed struct sSirMacSSid
1596{
1597 tANI_U8 length;
1598 tANI_U8 ssId[32];
1599} __ani_attr_packed tSirMacSSid;
1600
1601// Concurrency role. These are generic IDs that identify the various roles
1602// in the software system.
1603typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001604 HAL_STA_MODE=0,
1605 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001606 HAL_P2P_CLIENT_MODE,
1607 HAL_P2P_GO_MODE,
1608 HAL_MONITOR_MODE,
1609} tHalConMode;
1610
1611//This is a bit pattern to be set for each mode
1612//bit 0 - sta mode
1613//bit 1 - ap mode
1614//bit 2 - p2p client mode
1615//bit 3 - p2p go mode
1616typedef enum
1617{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001618 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001619 HAL_SAP=2,
1620 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1621 HAL_P2P_CLIENT=4,
1622 HAL_P2P_GO=8,
1623 HAL_MAX_CONCURRENCY_PERSONA=4
1624} tHalConcurrencyMode;
1625
1626typedef PACKED_PRE struct PACKED_POST
1627{
1628 /* BSSID */
1629 tSirMacAddr bssId;
1630
Jeff Johnson295189b2012-06-20 16:38:30 -07001631 /* Self Mac Address */
1632 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001633
1634 /* BSS type */
1635 tSirBssType bssType;
1636
1637 /*Operational Mode: AP =0, STA = 1*/
1638 tANI_U8 operMode;
1639
1640 /*Network Type*/
1641 tSirNwType nwType;
1642
1643 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1644 tANI_U8 shortSlotTimeSupported;
1645
1646 /*Co-exist with 11a STA*/
1647 tANI_U8 llaCoexist;
1648
1649 /*Co-exist with 11b STA*/
1650 tANI_U8 llbCoexist;
1651
1652 /*Co-exist with 11g STA*/
1653 tANI_U8 llgCoexist;
1654
1655 /*Coexistence with 11n STA*/
1656 tANI_U8 ht20Coexist;
1657
1658 /*Non GF coexist flag*/
1659 tANI_U8 llnNonGFCoexist;
1660
1661 /*TXOP protection support*/
1662 tANI_U8 fLsigTXOPProtectionFullSupport;
1663
1664 /*RIFS mode*/
1665 tANI_U8 fRIFSMode;
1666
1667 /*Beacon Interval in TU*/
1668 tSirMacBeaconInterval beaconInterval;
1669
1670 /*DTIM period*/
1671 tANI_U8 dtimPeriod;
1672
1673 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1674 tANI_U8 txChannelWidthSet;
1675
1676 /*Operating channel*/
1677 tANI_U8 currentOperChannel;
1678
1679 /*Extension channel for channel bonding*/
1680 tANI_U8 currentExtChannel;
1681
1682 /*Reserved to align next field on a dword boundary*/
1683 tANI_U8 reserved;
1684
Jeff Johnsone7245742012-09-05 17:12:55 -07001685 /*SSID of the BSS*/
1686 tSirMacSSid ssId;
1687
1688 /*HAL should update the existing BSS entry, if this flag is set.
1689 UMAC will set this flag in case of reassoc, where we want to resue the
1690 the old BSSID and still return success 0 = Add, 1 = Update*/
1691 tANI_U8 action;
1692
1693 /* MAC Rate Set */
1694 tSirMacRateSet rateSet;
1695
1696 /*Enable/Disable HT capabilities of the BSS*/
1697 tANI_U8 htCapable;
1698
1699 // Enable/Disable OBSS protection
1700 tANI_U8 obssProtEnabled;
1701
1702 /*RMF enabled/disabled*/
1703 tANI_U8 rmfEnabled;
1704
1705 /*HT Operating Mode operating mode of the 802.11n STA*/
1706 tSirMacHTOperatingMode htOperMode;
1707
1708 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1709 tANI_U8 dualCTSProtection;
1710
1711 /* Probe Response Max retries */
1712 tANI_U8 ucMaxProbeRespRetryLimit;
1713
1714 /* To Enable Hidden ssid */
1715 tANI_U8 bHiddenSSIDEn;
1716
1717 /* To Enable Disable FW Proxy Probe Resp */
1718 tANI_U8 bProxyProbeRespEn;
1719
1720 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1721 EDCA params or might not desire to apply EDCA params during config BSS.
1722 0 implies Not Valid ; Non-Zero implies valid*/
1723 tANI_U8 edcaParamsValid;
1724
1725 /*EDCA Parameters for Best Effort Access Category*/
1726 tSirMacEdcaParamRecord acbe;
1727
1728 /*EDCA Parameters forBackground Access Category*/
1729 tSirMacEdcaParamRecord acbk;
1730
1731 /*EDCA Parameters for Video Access Category*/
1732 tSirMacEdcaParamRecord acvi;
1733
1734 /*EDCA Parameters for Voice Access Category*/
1735 tSirMacEdcaParamRecord acvo;
1736
1737#ifdef WLAN_FEATURE_VOWIFI_11R
1738 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1739 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1740#endif
1741
1742 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1743 tANI_U8 halPersona;
1744
1745 tANI_U8 bSpectrumMgtEnable;
1746
1747 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1748 tANI_S8 txMgmtPower;
1749 /*maxTxPower has max power to be used after applying the power constraint if any */
1750 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001751 /*Context of the station being added in HW
1752 Add a STA entry for "itself" -
1753 On AP - Add the AP itself in an "STA context"
1754 On STA - Add the AP to which this STA is joining in an "STA context" */
1755 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001756} tConfigBssParams, * tpConfigBssParams;
1757
1758
1759/*--------------------------------------------------------------------------
1760 * WLAN_HAL_CONFIG_BSS_REQ
1761 *--------------------------------------------------------------------------*/
1762typedef PACKED_PRE struct PACKED_POST
1763{
1764 /* BSSID */
1765 tSirMacAddr bssId;
1766
Jeff Johnsone7245742012-09-05 17:12:55 -07001767 /* Self Mac Address */
1768 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001769
1770 /* BSS type */
1771 tSirBssType bssType;
1772
1773 /*Operational Mode: AP =0, STA = 1*/
1774 tANI_U8 operMode;
1775
1776 /*Network Type*/
1777 tSirNwType nwType;
1778
1779 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1780 tANI_U8 shortSlotTimeSupported;
1781
1782 /*Co-exist with 11a STA*/
1783 tANI_U8 llaCoexist;
1784
1785 /*Co-exist with 11b STA*/
1786 tANI_U8 llbCoexist;
1787
1788 /*Co-exist with 11g STA*/
1789 tANI_U8 llgCoexist;
1790
1791 /*Coexistence with 11n STA*/
1792 tANI_U8 ht20Coexist;
1793
1794 /*Non GF coexist flag*/
1795 tANI_U8 llnNonGFCoexist;
1796
1797 /*TXOP protection support*/
1798 tANI_U8 fLsigTXOPProtectionFullSupport;
1799 /*RIFS mode*/
1800 tANI_U8 fRIFSMode;
1801
1802 /*Beacon Interval in TU*/
1803 tSirMacBeaconInterval beaconInterval;
1804
1805 /*DTIM period*/
1806 tANI_U8 dtimPeriod;
1807
1808 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1809 tANI_U8 txChannelWidthSet;
1810
1811 /*Operating channel*/
1812 tANI_U8 currentOperChannel;
1813
1814 /*Extension channel for channel bonding*/
1815 tANI_U8 currentExtChannel;
1816
1817 /*Reserved to align next field on a dword boundary*/
1818 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001819
1820 /*SSID of the BSS*/
1821 tSirMacSSid ssId;
1822
1823 /*HAL should update the existing BSS entry, if this flag is set.
1824 UMAC will set this flag in case of reassoc, where we want to resue the
1825 the old BSSID and still return success 0 = Add, 1 = Update*/
1826 tANI_U8 action;
1827
1828 /* MAC Rate Set */
1829 tSirMacRateSet rateSet;
1830
1831 /*Enable/Disable HT capabilities of the BSS*/
1832 tANI_U8 htCapable;
1833
1834 // Enable/Disable OBSS protection
1835 tANI_U8 obssProtEnabled;
1836
1837 /*RMF enabled/disabled*/
1838 tANI_U8 rmfEnabled;
1839
1840 /*HT Operating Mode operating mode of the 802.11n STA*/
1841 tSirMacHTOperatingMode htOperMode;
1842
1843 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1844 tANI_U8 dualCTSProtection;
1845
1846 /* Probe Response Max retries */
1847 tANI_U8 ucMaxProbeRespRetryLimit;
1848
1849 /* To Enable Hidden ssid */
1850 tANI_U8 bHiddenSSIDEn;
1851
1852 /* To Enable Disable FW Proxy Probe Resp */
1853 tANI_U8 bProxyProbeRespEn;
1854
Jeff Johnson32d95a32012-09-10 13:15:23 -07001855 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1856 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001857 0 implies Not Valid ; Non-Zero implies valid*/
1858 tANI_U8 edcaParamsValid;
1859
1860 /*EDCA Parameters for Best Effort Access Category*/
1861 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001862
Jeff Johnson295189b2012-06-20 16:38:30 -07001863 /*EDCA Parameters forBackground Access Category*/
1864 tSirMacEdcaParamRecord acbk;
1865
1866 /*EDCA Parameters for Video Access Category*/
1867 tSirMacEdcaParamRecord acvi;
1868
1869 /*EDCA Parameters for Voice Access Category*/
1870 tSirMacEdcaParamRecord acvo;
1871
1872#ifdef WLAN_FEATURE_VOWIFI_11R
1873 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1874 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1875#endif
1876
Jeff Johnson32d95a32012-09-10 13:15:23 -07001877 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001878 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001879
Jeff Johnson295189b2012-06-20 16:38:30 -07001880 tANI_U8 bSpectrumMgtEnable;
1881
1882 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1883 tANI_S8 txMgmtPower;
1884 /*maxTxPower has max power to be used after applying the power constraint if any */
1885 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001886 /*Context of the station being added in HW
1887 Add a STA entry for "itself" -
1888 On AP - Add the AP itself in an "STA context"
1889 On STA - Add the AP to which this STA is joining in an "STA context" */
1890 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001891
Jeff Johnsone7245742012-09-05 17:12:55 -07001892 tANI_U8 vhtCapable;
1893 tANI_U8 vhtTxChannelWidthSet;
1894} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001895
1896typedef PACKED_PRE struct PACKED_POST
1897{
1898 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001899 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001900 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001901 tConfigBssParams_V1 configBssParams_V1;
1902 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001903} tConfigBssReqMsg, *tpConfigBssReqMsg;
1904
1905/*---------------------------------------------------------------------------
1906 WLAN_HAL_CONFIG_BSS_RSP
1907---------------------------------------------------------------------------*/
1908
1909typedef PACKED_PRE struct PACKED_POST
1910{
1911 /* Success or Failure */
1912 tANI_U32 status;
1913
1914 /* BSS index allocated by HAL */
1915 tANI_U8 bssIdx;
1916
1917 /* DPU descriptor index for PTK */
1918 tANI_U8 dpuDescIndx;
1919
1920 /* PTK DPU signature */
1921 tANI_U8 ucastDpuSignature;
1922
1923 /* DPU descriptor index for GTK*/
1924 tANI_U8 bcastDpuDescIndx;
1925
1926 /* GTK DPU signature */
1927 tANI_U8 bcastDpuSignature;
1928
1929 /*DPU descriptor for IGTK*/
1930 tANI_U8 mgmtDpuDescIndx;
1931
1932 /* IGTK DPU signature */
1933 tANI_U8 mgmtDpuSignature;
1934
1935 /* Station Index for BSS entry*/
1936 tANI_U8 bssStaIdx;
1937
1938 /* Self station index for this BSS */
1939 tANI_U8 bssSelfStaIdx;
1940
1941 /* Bcast station for buffering bcast frames in AP role */
1942 tANI_U8 bssBcastStaIdx;
1943
1944 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1945 tSirMacAddr staMac;
1946
1947 /*HAL fills in the tx power used for mgmt frames in this field. */
1948 tANI_S8 txMgmtPower;
1949
1950} tConfigBssRspParams, * tpConfigBssRspParams;
1951
1952typedef PACKED_PRE struct PACKED_POST
1953{
1954 tHalMsgHeader header;
1955 tConfigBssRspParams configBssRspParams;
1956} tConfigBssRspMsg, *tpConfigBssRspMsg;
1957
1958/*---------------------------------------------------------------------------
1959 WLAN_HAL_DELETE_BSS_REQ
1960---------------------------------------------------------------------------*/
1961
1962typedef PACKED_PRE struct PACKED_POST
1963{
1964 /* BSS index to be deleted */
1965 tANI_U8 bssIdx;
1966
1967} tDeleteBssParams, *tpDeleteBssParams;
1968
1969typedef PACKED_PRE struct PACKED_POST
1970{
1971 tHalMsgHeader header;
1972 tDeleteBssParams deleteBssParams;
1973} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1974
1975/*---------------------------------------------------------------------------
1976 WLAN_HAL_DELETE_BSS_RSP
1977---------------------------------------------------------------------------*/
1978
1979typedef PACKED_PRE struct PACKED_POST
1980{
1981 /* Success or Failure */
1982 tANI_U32 status;
1983
1984 /* BSS index that has been deleted */
1985 tANI_U8 bssIdx;
1986
1987} tDeleteBssRspParams, *tpDeleteBssRspParams;
1988
1989typedef PACKED_PRE struct PACKED_POST
1990{
1991 tHalMsgHeader header;
1992 tDeleteBssRspParams deleteBssRspParams;
1993} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
1994
1995/*---------------------------------------------------------------------------
1996 WLAN_HAL_JOIN_REQ
1997---------------------------------------------------------------------------*/
1998
1999typedef PACKED_PRE struct PACKED_POST
2000{
2001 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002002 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002003
2004 /*Indicates the channel to switch to.*/
2005 tANI_U8 ucChannel;
2006
2007 /* Self STA MAC */
2008 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002009
Jeff Johnson295189b2012-06-20 16:38:30 -07002010 /*Local power constraint*/
2011 tANI_U8 ucLocalPowerConstraint;
2012
2013 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002014 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002015
2016 /*link State*/
2017 tSirLinkState linkState;
2018
2019 /* Max TX power */
2020 tANI_S8 maxTxPower;
2021
2022} tHalJoinReqParams, *tpHalJoinReqParams;
2023
2024typedef PACKED_PRE struct PACKED_POST
2025{
2026 tHalMsgHeader header;
2027 tHalJoinReqParams joinReqParams;
2028} tHalJoinReqMsg, *tpHalJoinReqMsg;
2029
2030/*---------------------------------------------------------------------------
2031 WLAN_HAL_JOIN_RSP
2032---------------------------------------------------------------------------*/
2033
2034typedef PACKED_PRE struct PACKED_POST
2035{
2036 /*success or failure */
2037 tANI_U32 status;
2038
2039 /* HAL fills in the tx power used for mgmt frames in this field */
2040 tPowerdBm txMgmtPower;
2041
2042}tHalJoinRspParams, *tpHalJoinRspParams;
2043
2044typedef PACKED_PRE struct PACKED_POST
2045{
2046 tHalMsgHeader header;
2047 tHalJoinRspParams joinRspParams;
2048}tHalJoinRspMsg, *tpHalJoinRspMsg;
2049
2050/*---------------------------------------------------------------------------
2051 WLAN_HAL_POST_ASSOC_REQ
2052---------------------------------------------------------------------------*/
2053
2054typedef PACKED_PRE struct PACKED_POST
2055{
2056 tConfigStaParams configStaParams;
2057 tConfigBssParams configBssParams;
2058} tPostAssocReqParams, *tpPostAssocReqParams;
2059
2060typedef PACKED_PRE struct PACKED_POST
2061{
2062 tHalMsgHeader header;
2063 tPostAssocReqParams postAssocReqParams;
2064} tPostAssocReqMsg, *tpPostAssocReqMsg;
2065
2066/*---------------------------------------------------------------------------
2067 WLAN_HAL_POST_ASSOC_RSP
2068---------------------------------------------------------------------------*/
2069
2070typedef PACKED_PRE struct PACKED_POST
2071{
2072 tConfigStaRspParams configStaRspParams;
2073 tConfigBssRspParams configBssRspParams;
2074} tPostAssocRspParams, *tpPostAssocRspParams;
2075
2076typedef PACKED_PRE struct PACKED_POST
2077{
2078 tHalMsgHeader header;
2079 tPostAssocRspParams postAssocRspParams;
2080} tPostAssocRspMsg, *tpPostAssocRspMsg;
2081
2082/*---------------------------------------------------------------------------
2083 WLAN_HAL_SET_BSSKEY_REQ
2084---------------------------------------------------------------------------*/
2085
2086/*
2087 * This is used by PE to create a set of WEP keys for a given BSS.
2088 */
2089typedef PACKED_PRE struct PACKED_POST
2090{
2091 /*BSS Index of the BSS*/
2092 tANI_U8 bssIdx;
2093
2094 /*Encryption Type used with peer*/
2095 tAniEdType encType;
2096
2097 /*Number of keys*/
2098 tANI_U8 numKeys;
2099
2100 /*Array of keys.*/
2101 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002102
Jeff Johnson295189b2012-06-20 16:38:30 -07002103 /*Control for Replay Count, 1= Single TID based replay count on Tx
2104 0 = Per TID based replay count on TX */
2105 tANI_U8 singleTidRc;
2106} tSetBssKeyParams, *tpSetBssKeyParams;
2107
2108typedef PACKED_PRE struct PACKED_POST
2109{
2110 tHalMsgHeader header;
2111 tSetBssKeyParams setBssKeyParams;
2112} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2113
2114/*---------------------------------------------------------------------------
2115 WLAN_HAL_SET_BSSKEY_RSP
2116---------------------------------------------------------------------------*/
2117typedef PACKED_PRE struct PACKED_POST
2118{
2119 /*success or failure */
2120 tANI_U32 status;
2121
2122} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2123
2124typedef PACKED_PRE struct PACKED_POST
2125{
2126 tHalMsgHeader header;
2127 tSetBssKeyRspParams setBssKeyRspParams;
2128} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2129
2130/*---------------------------------------------------------------------------
2131 WLAN_HAL_SET_STAKEY_REQ,
2132---------------------------------------------------------------------------*/
2133
2134/*
2135 * This is used by PE to configure the key information on a given station.
2136 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2137 * a preconfigured key from a BSS the station assoicated with; otherwise
2138 * a new key descriptor is created based on the key field.
2139 */
2140
2141typedef PACKED_PRE struct PACKED_POST
2142{
2143 tHalMsgHeader header;
2144 tSetStaKeyParams setStaKeyParams;
2145} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2146
2147/*---------------------------------------------------------------------------
2148 WLAN_HAL_SET_STAKEY_RSP,
2149---------------------------------------------------------------------------*/
2150typedef PACKED_PRE struct PACKED_POST
2151{
2152 /*success or failure */
2153 tANI_U32 status;
2154
2155} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2156
2157typedef PACKED_PRE struct PACKED_POST
2158{
2159 tHalMsgHeader header;
2160 tSetStaKeyRspParams setStaKeyRspParams;
2161} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2162
2163/*---------------------------------------------------------------------------
2164 WLAN_HAL_RMV_BSSKEY_REQ,
2165---------------------------------------------------------------------------*/
2166/*
2167 * This is used by PE to remove keys for a given BSS.
2168 */
2169typedef PACKED_PRE struct PACKED_POST
2170
2171{
2172 /*BSS Index of the BSS*/
2173 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002174
Jeff Johnson295189b2012-06-20 16:38:30 -07002175 /*Encryption Type used with peer*/
2176 tAniEdType encType;
2177
2178 /*Key Id*/
2179 tANI_U8 keyId;
2180
2181 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2182 tAniWepType wepType;
2183
2184} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2185
2186typedef PACKED_PRE struct PACKED_POST
2187{
2188 tHalMsgHeader header;
2189 tRemoveBssKeyParams removeBssKeyParams;
2190} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2191
2192/*---------------------------------------------------------------------------
2193 WLAN_HAL_RMV_BSSKEY_RSP,
2194---------------------------------------------------------------------------*/
2195typedef PACKED_PRE struct PACKED_POST
2196{
2197 /*success or failure */
2198 tANI_U32 status;
2199
2200} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2201
2202typedef PACKED_PRE struct PACKED_POST
2203{
2204 tHalMsgHeader header;
2205 tRemoveBssKeyRspParams removeBssKeyRspParams;
2206} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2207
2208/*---------------------------------------------------------------------------
2209 WLAN_HAL_RMV_STAKEY_REQ,
2210---------------------------------------------------------------------------*/
2211/*
2212 * This is used by PE to Remove the key information on a given station.
2213 */
2214typedef PACKED_PRE struct PACKED_POST
2215{
2216 /*STA Index*/
2217 tANI_U16 staIdx;
2218
2219 /*Encryption Type used with peer*/
2220 tAniEdType encType;
2221
2222 /*Key Id*/
2223 tANI_U8 keyId;
2224
2225 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2226 the same key is used for both broadcast and unicast.*/
2227 tANI_BOOLEAN unicast;
2228
2229} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2230
2231typedef PACKED_PRE struct PACKED_POST
2232{
2233 tHalMsgHeader header;
2234 tRemoveStaKeyParams removeStaKeyParams;
2235} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2236
2237/*---------------------------------------------------------------------------
2238 WLAN_HAL_RMV_STAKEY_RSP,
2239---------------------------------------------------------------------------*/
2240typedef PACKED_PRE struct PACKED_POST
2241{
2242 /*success or failure */
2243 tANI_U32 status;
2244} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2245
2246typedef PACKED_PRE struct PACKED_POST
2247{
2248 tHalMsgHeader header;
2249 tRemoveStaKeyRspParams removeStaKeyRspParams;
2250} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2251
Jeff Johnsone7245742012-09-05 17:12:55 -07002252#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002253
Jeff Johnsone7245742012-09-05 17:12:55 -07002254#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002255#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002256#endif
2257
2258#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002259#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002260#endif
2261
2262/*-------------------------------------------------------------------------
2263WLAN_HAL_START_OEM_DATA_REQ
2264--------------------------------------------------------------------------*/
2265typedef PACKED_PRE struct PACKED_POST
2266{
2267 tANI_U32 status;
2268 tSirMacAddr selfMacAddr;
2269 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2270} tStartOemDataReqParams, *tpStartOemDataReqParams;
2271
2272typedef PACKED_PRE struct PACKED_POST
2273{
2274 tHalMsgHeader header;
2275 tStartOemDataReqParams startOemDataReqParams;
2276} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2277
2278/*-------------------------------------------------------------------------
2279WLAN_HAL_START_OEM_DATA_RSP
2280--------------------------------------------------------------------------*/
2281
2282typedef PACKED_PRE struct PACKED_POST
2283{
2284 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2285} tStartOemDataRspParams, *tpStartOemDataRspParams;
2286
2287typedef PACKED_PRE struct PACKED_POST
2288{
2289 tHalMsgHeader header;
2290 tStartOemDataRspParams startOemDataRspParams;
2291} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2292
2293#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002294
2295
2296
2297/*---------------------------------------------------------------------------
2298WLAN_HAL_CH_SWITCH_REQ
2299---------------------------------------------------------------------------*/
2300
2301typedef PACKED_PRE struct PACKED_POST
2302{
2303 /* Channel number */
2304 tANI_U8 channelNumber;
2305
2306 /* Local power constraint */
2307 tANI_U8 localPowerConstraint;
2308
2309 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002310 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002311
2312 //HAL fills in the tx power used for mgmt frames in this field.
2313 tPowerdBm txMgmtPower;
2314
2315 /* Max TX power */
2316 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002317
Jeff Johnson295189b2012-06-20 16:38:30 -07002318 /* Self STA MAC */
2319 tSirMacAddr selfStaMacAddr;
2320
2321 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2322 this should be applied only to that session*/
2323 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2324 * bssid needs to be out of the VOWifi feature flag */
2325 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2326 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2327 */
2328 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002329
Jeff Johnson295189b2012-06-20 16:38:30 -07002330}tSwitchChannelParams, *tpSwitchChannelParams;
2331
2332typedef PACKED_PRE struct PACKED_POST
2333{
2334 tHalMsgHeader header;
2335 tSwitchChannelParams switchChannelParams;
2336} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2337
2338/*---------------------------------------------------------------------------
2339WLAN_HAL_CH_SWITCH_RSP
2340---------------------------------------------------------------------------*/
2341
2342typedef PACKED_PRE struct PACKED_POST
2343{
2344 /* Status */
2345 tANI_U32 status;
2346
2347 /* Channel number - same as in request*/
2348 tANI_U8 channelNumber;
2349
2350 /* HAL fills in the tx power used for mgmt frames in this field */
2351 tPowerdBm txMgmtPower;
2352
2353 /* BSSID needed to identify session - same as in request*/
2354 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002355
Jeff Johnson295189b2012-06-20 16:38:30 -07002356}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2357
2358typedef PACKED_PRE struct PACKED_POST
2359{
2360 tHalMsgHeader header;
2361 tSwitchChannelRspParams switchChannelRspParams;
2362} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2363
2364/*---------------------------------------------------------------------------
2365WLAN_HAL_UPD_EDCA_PARAMS_REQ
2366---------------------------------------------------------------------------*/
2367
2368typedef PACKED_PRE struct PACKED_POST
2369{
2370 /*BSS Index*/
2371 tANI_U16 bssIdx;
2372
2373 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002374 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002375
2376 /* Background */
2377 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002378
Jeff Johnson295189b2012-06-20 16:38:30 -07002379 /* Video */
2380 tSirMacEdcaParamRecord acvi;
2381
2382 /* Voice */
2383 tSirMacEdcaParamRecord acvo;
2384
2385} tEdcaParams, *tpEdcaParams;
2386
2387typedef PACKED_PRE struct PACKED_POST
2388{
2389 tHalMsgHeader header;
2390 tEdcaParams edcaParams;
2391} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2392
2393/*---------------------------------------------------------------------------
2394WLAN_HAL_UPD_EDCA_PARAMS_RSP
2395---------------------------------------------------------------------------*/
2396typedef PACKED_PRE struct PACKED_POST
2397{
2398 /*success or failure */
2399 tANI_U32 status;
2400} tEdcaRspParams, *tpEdcaRspParams;
2401
2402typedef PACKED_PRE struct PACKED_POST
2403{
2404 tHalMsgHeader header;
2405 tEdcaRspParams edcaRspParams;
2406} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2407
2408
2409
2410/*---------------------------------------------------------------------------
2411 * WLAN_HAL_GET_STATS_REQ
2412 *--------------------------------------------------------------------------*/
2413typedef PACKED_PRE struct PACKED_POST
2414
2415{
2416 /* Index of STA to which the statistics */
2417 tANI_U16 staIdx;
2418
2419 /* Encryption mode */
2420 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002421
Jeff Johnson295189b2012-06-20 16:38:30 -07002422 /* status */
2423 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002424
Jeff Johnson295189b2012-06-20 16:38:30 -07002425 /* Statistics */
2426 tANI_U32 sendBlocks;
2427 tANI_U32 recvBlocks;
2428 tANI_U32 replays;
2429 tANI_U8 micErrorCnt;
2430 tANI_U32 protExclCnt;
2431 tANI_U16 formatErrCnt;
2432 tANI_U16 unDecryptableCnt;
2433 tANI_U32 decryptErrCnt;
2434 tANI_U32 decryptOkCnt;
2435} tDpuStatsParams, * tpDpuStatsParams;
2436
2437typedef PACKED_PRE struct PACKED_POST
2438{
2439 /* Valid STA Idx for per STA stats request */
2440 tANI_U32 staId;
2441
2442 /* Categories of stats requested as specified in eHalStatsMask*/
2443 tANI_U32 statsMask;
2444}tHalStatsReqParams, *tpHalStatsReqParams;
2445
2446typedef PACKED_PRE struct PACKED_POST
2447{
2448 tHalMsgHeader header;
2449 tHalStatsReqParams statsReqParams;
2450} tHalStatsReqMsg, *tpHalStatsReqMsg;
2451
2452/*---------------------------------------------------------------------------
2453 * WLAN_HAL_GET_STATS_RSP
2454 *--------------------------------------------------------------------------*/
2455
2456typedef PACKED_PRE struct PACKED_POST
2457{
2458 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2459 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2460 // station successfully transmitted after more than one retransmission attempt
2461
Jeff Johnson32d95a32012-09-10 13:15:23 -07002462 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2463 //(with and without retries, including multi-cast, broadcast)
2464 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2465 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002466 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2467 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2468 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2469 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 -07002470 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2471 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 -07002472 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2473 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 -07002474 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2475 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002476 //to provide this.
2477}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2478
2479
2480// defines tx_rate_flags
2481typedef enum eTxRateInfo
2482{
2483 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2484 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2485 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2486 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2487 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2488} tTxrateinfoflags;
2489
2490
2491typedef PACKED_PRE struct PACKED_POST
2492{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002493 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 -07002494 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002495 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 -07002496 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002497 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2498 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002499 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002500 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2501 //for eg: if it is 10.5dBm, the value would be 105
2502 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2503 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002504
Jeff Johnson32d95a32012-09-10 13:15:23 -07002505 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2506 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002507 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002508 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2509 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002510}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2511
2512typedef PACKED_PRE struct PACKED_POST
2513{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002514 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2515 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002516 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002517 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 -07002518 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002519 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 -07002520 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002521 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 -07002522 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002523 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 -07002524 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002525 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 -07002526 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002527 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 -07002528 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002529 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 -07002530 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002531 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 -07002532 //decrypted
2533 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2534
2535}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002536
Jeff Johnson295189b2012-06-20 16:38:30 -07002537typedef PACKED_PRE struct PACKED_POST
2538{
2539 tAniGlobalSecurityStats ucStats;
2540 tAniGlobalSecurityStats mcbcStats;
2541}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2542
2543typedef PACKED_PRE struct PACKED_POST
2544{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002545 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2546 //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 -07002547 //address 1 field
2548 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 -07002549 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 -07002550 //primary channel
2551 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 -07002552 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 -07002553 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002554 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2555 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002556 //decoded correctly
2557}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2558
2559typedef PACKED_PRE struct PACKED_POST
2560{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002561 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 -07002562 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002563 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2564 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 -07002565 //is transmitted
2566}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2567
2568typedef PACKED_PRE struct PACKED_POST
2569{
2570 /* Success or Failure */
2571 tANI_U32 status;
2572
2573 /* STA Idx */
2574 tANI_U32 staId;
2575
2576 /* Categories of STATS being returned as per eHalStatsMask*/
2577 tANI_U32 statsMask;
2578
2579 /* message type is same as the request type */
2580 tANI_U16 msgType;
2581
2582 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002583 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002584
2585} tHalStatsRspParams, *tpHalStatsRspParams;
2586
2587
2588
2589typedef PACKED_PRE struct PACKED_POST
2590{
2591 tHalMsgHeader header;
2592 tHalStatsRspParams statsRspParams;
2593} tHalStatsRspMsg, *tpHalStatsRspMsg;
2594
2595/*---------------------------------------------------------------------------
2596 * WLAN_HAL_SET_LINK_ST_REQ
2597 *--------------------------------------------------------------------------*/
2598typedef PACKED_PRE struct PACKED_POST
2599{
2600 tSirMacAddr bssid;
2601 tSirLinkState state;
2602 tSirMacAddr selfMacAddr;
2603} tLinkStateParams, *tpLinkStateParams;
2604
2605typedef PACKED_PRE struct PACKED_POST
2606{
2607 tHalMsgHeader header;
2608 tLinkStateParams linkStateParams;
2609} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2610
2611/*---------------------------------------------------------------------------
2612 * WLAN_HAL_SET_LINK_ST_RSP
2613 *--------------------------------------------------------------------------*/
2614
2615typedef PACKED_PRE struct PACKED_POST
2616{
2617 /*success or failure */
2618 tANI_U32 status;
2619} tLinkStateRspParams, *tpLinkStateRspParams;
2620
2621typedef PACKED_PRE struct PACKED_POST
2622{
2623 tHalMsgHeader header;
2624 tLinkStateRspParams linkStateRspParams;
2625} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2626
2627/*---------------------------------------------------------------------------
2628 * WLAN_HAL_ADD_TS_REQ
2629 *--------------------------------------------------------------------------*/
2630
2631/* TSPEC Params */
2632typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2633{
2634#ifndef ANI_LITTLE_BIT_ENDIAN
2635 tANI_U16 ackPolicy : 2;
2636 tANI_U16 userPrio : 3;
2637 tANI_U16 psb : 1;
2638 tANI_U16 aggregation : 1;
2639 tANI_U16 accessPolicy : 2;
2640 tANI_U16 direction : 2;
2641 tANI_U16 tsid : 4;
2642 tANI_U16 trafficType : 1;
2643#else
2644 tANI_U16 trafficType : 1;
2645 tANI_U16 tsid : 4;
2646 tANI_U16 direction : 2;
2647 tANI_U16 accessPolicy : 2;
2648 tANI_U16 aggregation : 1;
2649 tANI_U16 psb : 1;
2650 tANI_U16 userPrio : 3;
2651 tANI_U16 ackPolicy : 2;
2652#endif
2653} __ani_attr_packed tSirMacTSInfoTfc;
2654
2655/* Flag to schedule the traffic type */
2656typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2657{
2658#ifndef ANI_LITTLE_BIT_ENDIAN
2659 tANI_U8 rsvd : 7;
2660 tANI_U8 schedule : 1;
2661#else
2662 tANI_U8 schedule : 1;
2663 tANI_U8 rsvd : 7;
2664#endif
2665} __ani_attr_packed tSirMacTSInfoSch;
2666
2667/* Traffic and scheduling info */
2668typedef __ani_attr_pre_packed struct sSirMacTSInfo
2669{
2670 tSirMacTSInfoTfc traffic;
2671 tSirMacTSInfoSch schedule;
2672} __ani_attr_packed tSirMacTSInfo;
2673
2674/* Information elements */
2675typedef __ani_attr_pre_packed struct sSirMacTspecIE
2676{
2677 tANI_U8 type;
2678 tANI_U8 length;
2679 tSirMacTSInfo tsinfo;
2680 tANI_U16 nomMsduSz;
2681 tANI_U16 maxMsduSz;
2682 tANI_U32 minSvcInterval;
2683 tANI_U32 maxSvcInterval;
2684 tANI_U32 inactInterval;
2685 tANI_U32 suspendInterval;
2686 tANI_U32 svcStartTime;
2687 tANI_U32 minDataRate;
2688 tANI_U32 meanDataRate;
2689 tANI_U32 peakDataRate;
2690 tANI_U32 maxBurstSz;
2691 tANI_U32 delayBound;
2692 tANI_U32 minPhyRate;
2693 tANI_U16 surplusBw;
2694 tANI_U16 mediumTime;
2695}__ani_attr_packed tSirMacTspecIE;
2696
2697typedef PACKED_PRE struct PACKED_POST
2698{
2699 /* Station Index */
2700 tANI_U16 staIdx;
2701
2702 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2703 tANI_U16 tspecIdx;
2704
2705 /* To program TPE with required parameters */
2706 tSirMacTspecIE tspec;
2707
2708 /* U-APSD Flags: 1b per AC. Encoded as follows:
2709 b7 b6 b5 b4 b3 b2 b1 b0 =
2710 X X X X BE BK VI VO */
2711 tANI_U8 uAPSD;
2712
2713 /* These parameters are for all the access categories */
2714 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2715 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2716 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002717
Jeff Johnson295189b2012-06-20 16:38:30 -07002718} tAddTsParams, *tpAddTsParams;
2719
2720typedef PACKED_PRE struct PACKED_POST
2721{
2722 tHalMsgHeader header;
2723 tAddTsParams addTsParams;
2724} tAddTsReqMsg, *tpAddTsReqMsg;
2725
2726/*---------------------------------------------------------------------------
2727 * WLAN_HAL_ADD_TS_RSP
2728 *--------------------------------------------------------------------------*/
2729
2730typedef PACKED_PRE struct PACKED_POST
2731{
2732 /*success or failure */
2733 tANI_U32 status;
2734} tAddTsRspParams, *tpAddTsRspParams;
2735
2736typedef PACKED_PRE struct PACKED_POST
2737{
2738 tHalMsgHeader header;
2739 tAddTsRspParams addTsRspParams;
2740} tAddTsRspMsg, *tpAddTsRspMsg;
2741
2742
2743/*---------------------------------------------------------------------------
2744 * WLAN_HAL_DEL_TS_REQ
2745 *--------------------------------------------------------------------------*/
2746
2747typedef PACKED_PRE struct PACKED_POST
2748{
2749 /* Station Index */
2750 tANI_U16 staIdx;
2751
2752 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2753 tANI_U16 tspecIdx;
2754
2755 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002756 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002757
2758} tDelTsParams, *tpDelTsParams;
2759
2760typedef PACKED_PRE struct PACKED_POST
2761{
2762 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002763 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002764} tDelTsReqMsg, *tpDelTsReqMsg;
2765
2766/*---------------------------------------------------------------------------
2767 * WLAN_HAL_DEL_TS_RSP
2768 *--------------------------------------------------------------------------*/
2769
2770typedef PACKED_PRE struct PACKED_POST
2771{
2772 /*success or failure */
2773 tANI_U32 status;
2774} tDelTsRspParams, *tpDelTsRspParams;
2775
2776typedef PACKED_PRE struct PACKED_POST
2777{
2778 tHalMsgHeader header;
2779 tDelTsRspParams delTsRspParams;
2780} tDelTsRspMsg, *tpDelTsRspMsg;
2781
2782/* End of TSpec Parameters */
2783
2784/* Start of BLOCK ACK related Parameters */
2785
2786/*---------------------------------------------------------------------------
2787 * WLAN_HAL_ADD_BA_SESSION_REQ
2788 *--------------------------------------------------------------------------*/
2789
2790typedef PACKED_PRE struct PACKED_POST
2791{
2792 /* Station Index */
2793 tANI_U16 staIdx;
2794
2795 /* Peer MAC Address */
2796 tSirMacAddr peerMacAddr;
2797
2798 /* ADDBA Action Frame dialog token
2799 HAL will not interpret this object */
2800 tANI_U8 baDialogToken;
2801
2802 /* TID for which the BA is being setup
2803 This identifies the TC or TS of interest */
2804 tANI_U8 baTID;
2805
2806 /* 0 - Delayed BA (Not supported)
2807 1 - Immediate BA */
2808 tANI_U8 baPolicy;
2809
2810 /* Indicates the number of buffers for this TID (baTID)
2811 NOTE - This is the requested buffer size. When this
2812 is processed by HAL and subsequently by HDD, it is
2813 possible that HDD may change this buffer size. Any
2814 change in the buffer size should be noted by PE and
2815 advertized appropriately in the ADDBA response */
2816 tANI_U16 baBufferSize;
2817
2818 /* BA timeout in TU's 0 means no timeout will occur */
2819 tANI_U16 baTimeout;
2820
2821 /* b0..b3 - Fragment Number - Always set to 0
2822 b4..b15 - Starting Sequence Number of first MSDU
2823 for which this BA is setup */
2824 tANI_U16 baSSN;
2825
2826 /* ADDBA direction
2827 1 - Originator
2828 0 - Recipient */
2829 tANI_U8 baDirection;
2830} tAddBASessionParams, *tpAddBASessionParams;
2831
2832typedef PACKED_PRE struct PACKED_POST
2833{
2834 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002835 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002836}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2837
2838/*---------------------------------------------------------------------------
2839 * WLAN_HAL_ADD_BA_SESSION_RSP
2840 *--------------------------------------------------------------------------*/
2841
2842typedef PACKED_PRE struct PACKED_POST
2843{
2844 /*success or failure */
2845 tANI_U32 status;
2846
2847 /* Dialog token */
2848 tANI_U8 baDialogToken;
2849
2850 /* TID for which the BA session has been setup */
2851 tANI_U8 baTID;
2852
2853 /* BA Buffer Size allocated for the current BA session */
2854 tANI_U8 baBufferSize;
2855
2856 tANI_U8 baSessionID;
2857
2858 /* Reordering Window buffer */
2859 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002860
Jeff Johnson295189b2012-06-20 16:38:30 -07002861 /*Station Index to id the sta */
2862 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002863
Jeff Johnson295189b2012-06-20 16:38:30 -07002864 /* Starting Sequence Number */
2865 tANI_U16 SSN;
2866} tAddBASessionRspParams, *tpAddBASessionRspParams;
2867
2868typedef PACKED_PRE struct PACKED_POST
2869{
2870 tHalMsgHeader header;
2871 tAddBASessionRspParams addBASessionRspParams;
2872} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2873
2874/*---------------------------------------------------------------------------
2875 * WLAN_HAL_ADD_BA_REQ
2876 *--------------------------------------------------------------------------*/
2877
2878typedef PACKED_PRE struct PACKED_POST
2879{
2880 /* Session Id */
2881 tANI_U8 baSessionID;
2882
2883 /* Reorder Window Size */
2884 tANI_U8 winSize;
2885
2886#ifdef FEATURE_ON_CHIP_REORDERING
2887 tANI_BOOLEAN isReorderingDoneOnChip;
2888#endif
2889} tAddBAParams, *tpAddBAParams;
2890
2891typedef PACKED_PRE struct PACKED_POST
2892{
2893 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002894 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002895} tAddBAReqMsg, *tpAddBAReqMsg;
2896
2897
2898/*---------------------------------------------------------------------------
2899 * WLAN_HAL_ADD_BA_RSP
2900 *--------------------------------------------------------------------------*/
2901
2902typedef PACKED_PRE struct PACKED_POST
2903{
2904 /*success or failure */
2905 tANI_U32 status;
2906
2907 /* Dialog token */
2908 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002909
Jeff Johnson295189b2012-06-20 16:38:30 -07002910} tAddBARspParams, *tpAddBARspParams;
2911
2912typedef PACKED_PRE struct PACKED_POST
2913{
2914 tHalMsgHeader header;
2915 tAddBARspParams addBARspParams;
2916} tAddBARspMsg, *tpAddBARspMsg;
2917
2918
2919/*---------------------------------------------------------------------------
2920 * WLAN_HAL_TRIGGER_BA_REQ
2921 *--------------------------------------------------------------------------*/
2922
2923
2924typedef struct sAddBaInfo
2925{
2926 tANI_U16 fBaEnable : 1;
2927 tANI_U16 startingSeqNum: 12;
2928 tANI_U16 reserved : 3;
2929}tAddBaInfo, *tpAddBaInfo;
2930
2931typedef struct sTriggerBaRspCandidate
2932{
2933 tSirMacAddr staAddr;
2934 tAddBaInfo baInfo[STACFG_MAX_TC];
2935}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2936
2937typedef struct sTriggerBaCandidate
2938{
2939 tANI_U8 staIdx;
2940 tANI_U8 tidBitmap;
2941}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2942
2943typedef PACKED_PRE struct PACKED_POST
2944{
2945 /* Session Id */
2946 tANI_U8 baSessionID;
2947
Jeff Johnson32d95a32012-09-10 13:15:23 -07002948 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002949 * Candidate List(tTriggerBaCandidate)
2950 */
2951 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002952
Jeff Johnson295189b2012-06-20 16:38:30 -07002953} tTriggerBAParams, *tpTriggerBAParams;
2954
2955typedef PACKED_PRE struct PACKED_POST
2956{
2957 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002958 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002959} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2960
2961
2962/*---------------------------------------------------------------------------
2963 * WLAN_HAL_TRIGGER_BA_RSP
2964 *--------------------------------------------------------------------------*/
2965
2966typedef PACKED_PRE struct PACKED_POST
2967{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002968
Jeff Johnson295189b2012-06-20 16:38:30 -07002969 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002970 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002971
2972 /* success or failure */
2973 tANI_U32 status;
2974
Jeff Johnson32d95a32012-09-10 13:15:23 -07002975 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002976 * Rsp Candidate List(tTriggerRspBaCandidate)
2977 */
2978 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002979
Jeff Johnson295189b2012-06-20 16:38:30 -07002980
2981} tTriggerBARspParams, *tpTriggerBARspParams;
2982
2983typedef PACKED_PRE struct PACKED_POST
2984{
2985 tHalMsgHeader header;
2986 tTriggerBARspParams triggerBARspParams;
2987} tTriggerBARspMsg, *tpTriggerBARspMsg;
2988
2989/*---------------------------------------------------------------------------
2990 * WLAN_HAL_DEL_BA_REQ
2991 *--------------------------------------------------------------------------*/
2992
2993typedef PACKED_PRE struct PACKED_POST
2994{
2995 /* Station Index */
2996 tANI_U16 staIdx;
2997
2998 /* TID for which the BA session is being deleted */
2999 tANI_U8 baTID;
3000
3001 /* DELBA direction
3002 1 - Originator
3003 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003004 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003005} tDelBAParams, *tpDelBAParams;
3006
3007typedef PACKED_PRE struct PACKED_POST
3008{
3009 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003010 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003011} tDelBAReqMsg, *tpDelBAReqMsg;
3012
3013/*---------------------------------------------------------------------------
3014 * WLAN_HAL_DEL_BA_RSP
3015 *--------------------------------------------------------------------------*/
3016
3017typedef PACKED_PRE struct PACKED_POST
3018{
3019 /* success or failure */
3020 tANI_U32 status;
3021} tDelBARspParams, *tpDelBARspParams;
3022
3023typedef PACKED_PRE struct PACKED_POST
3024{
3025 tHalMsgHeader header;
3026 tDelBARspParams delBARspParams;
3027} tDelBARspMsg, *tpDelBARspMsg;
3028
3029
3030#ifdef FEATURE_WLAN_CCX
3031
3032/*---------------------------------------------------------------------------
3033 * WLAN_HAL_TSM_STATS_REQ
3034 *--------------------------------------------------------------------------*/
3035typedef PACKED_PRE struct PACKED_POST
3036{
3037 /* Traffic Id */
3038 tANI_U8 tsmTID;
3039
3040 tSirMacAddr bssId;
3041} tTsmStatsParams, *tpTsmStatsParams;
3042
3043typedef PACKED_PRE struct PACKED_POST
3044{
3045 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003046 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003047} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3048
3049
3050/*---------------------------------------------------------------------------
3051 * WLAN_HAL_TSM_STATS_RSP
3052 *--------------------------------------------------------------------------*/
3053typedef PACKED_PRE struct PACKED_POST
3054{
3055 /*success or failure */
3056 tANI_U32 status;
3057
Jeff Johnson32d95a32012-09-10 13:15:23 -07003058 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003059 tANI_U16 UplinkPktQueueDly;
3060
Jeff Johnson32d95a32012-09-10 13:15:23 -07003061 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003062 tANI_U16 UplinkPktQueueDlyHist[4];
3063
Jeff Johnson32d95a32012-09-10 13:15:23 -07003064 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003065 tANI_U32 UplinkPktTxDly;
3066
Jeff Johnson32d95a32012-09-10 13:15:23 -07003067 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003068 tANI_U16 UplinkPktLoss;
3069
Jeff Johnson32d95a32012-09-10 13:15:23 -07003070 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003071 tANI_U16 UplinkPktCount;
3072
Jeff Johnson32d95a32012-09-10 13:15:23 -07003073 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003074 tANI_U8 RoamingCount;
3075
Jeff Johnson32d95a32012-09-10 13:15:23 -07003076 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003077 tANI_U16 RoamingDly;
3078} tTsmStatsRspParams, *tpTsmStatsRspParams;
3079
3080typedef PACKED_PRE struct PACKED_POST
3081{
3082 tHalMsgHeader header;
3083 tTsmStatsRspParams tsmStatsRspParams;
3084} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3085
3086
3087#endif
3088
3089/*---------------------------------------------------------------------------
3090 * WLAN_HAL_SET_KEYDONE_MSG
3091 *--------------------------------------------------------------------------*/
3092
3093typedef PACKED_PRE struct PACKED_POST
3094{
3095 /*bssid of the keys */
3096 tANI_U8 bssidx;
3097 tANI_U8 encType;
3098} tSetKeyDoneParams, *tpSetKeyDoneParams;
3099
3100typedef PACKED_PRE struct PACKED_POST
3101{
3102 tHalMsgHeader header;
3103 tSetKeyDoneParams setKeyDoneParams;
3104} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3105
Anand Kumar012623a2013-01-11 17:00:00 -08003106typedef PACKED_PRE struct PACKED_POST
3107{
3108 uint8 selfStaIdx;
3109 uint8 peerStaIdx;
3110 boolean frameSentForStart;
3111 boolean frameSuccessfullySent;
3112
3113} tScanTxBdCompParams, *tpScanTxBdCompParams;
3114
3115
3116typedef PACKED_PRE struct PACKED_POST
3117{
3118 tHalMsgHeader header;
3119 tScanTxBdCompParams scanTxBdCompleteIndParams;
3120} tScanTxBdCompleteInd, *tpScanTxBdCompleteInd;
3121
3122typedef PACKED_PRE struct PACKED_POST
3123{
3124 tHalMsgHeader header;
3125 tANI_U32 mode;
3126 tANI_U32 parameter;
3127} tCoexOpModeType, *tpCoexOpModeType;
3128
3129
3130typedef PACKED_PRE struct PACKED_POST
3131{
3132 tHalMsgHeader header;
3133 tANI_U32 bssIdx:8;
3134 tANI_U32 timerType:3;
3135 tANI_U32 reserved:21;
3136} tPwrSaveModeTOReqType, *tpPwrSaveModeTOReqType;
3137
3138
3139typedef PACKED_PRE struct PACKED_POST
3140{
3141 tHalMsgHeader header;
3142} tTxBpsReqType, *tpTxBpsReqType;
3143
3144
Jeff Johnson295189b2012-06-20 16:38:30 -07003145/*---------------------------------------------------------------------------
3146 * WLAN_HAL_DOWNLOAD_NV_REQ
3147 *--------------------------------------------------------------------------*/
3148typedef PACKED_PRE struct PACKED_POST
3149{
3150 /* Fragment sequence number of the NV Image. Note that NV Image might not
3151 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003152 * can hence choose to chop the NV blob into multiple fragments starting with
3153 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003154 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3155 * concatenated together by HAL without any padding bytes in between.*/
3156 tANI_U16 fragNumber;
3157
3158 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003159 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003160 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3161 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3162 tANI_U16 isLastFragment;
3163
3164 /* NV Image size (number of bytes) */
3165 tANI_U32 nvImgBufferSize;
3166
3167 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3168 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3169} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3170
3171typedef PACKED_PRE struct PACKED_POST
3172{
3173 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3174 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3175 tHalMsgHeader header;
3176 tHalNvImgDownloadReqParams nvImageReqParams;
3177} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3178
3179/*---------------------------------------------------------------------------
3180 * WLAN_HAL_DOWNLOAD_NV_RSP
3181 *--------------------------------------------------------------------------*/
3182typedef PACKED_PRE struct PACKED_POST
3183{
3184 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3185 * after each fragment */
3186 tANI_U32 status;
3187} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3188
3189typedef PACKED_PRE struct PACKED_POST
3190{
3191 tHalMsgHeader header;
3192 tHalNvImgDownloadRspParams nvImageRspParams;
3193} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3194
3195/*---------------------------------------------------------------------------
3196 * WLAN_HAL_STORE_NV_IND
3197 *--------------------------------------------------------------------------*/
3198typedef PACKED_PRE struct PACKED_POST
3199{
3200 /* NV Item */
3201 eNvTable tableID;
3202
3203 /* Size of NV Blob */
3204 tANI_U32 nvBlobSize;
3205
Jeff Johnson32d95a32012-09-10 13:15:23 -07003206 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003207 * NV blob i.e. uint8[nvBlobSize] */
3208} tHalNvStoreParams, *tpHalNvStoreParams;
3209
3210typedef PACKED_PRE struct PACKED_POST
3211{
3212 /* Note: The length specified in tHalNvStoreInd messages should be
3213 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3214 tHalMsgHeader header;
3215 tHalNvStoreParams nvStoreParams;
3216} tHalNvStoreInd, *tpHalNvStoreInd;
3217
3218/* End of Block Ack Related Parameters */
3219
3220/*---------------------------------------------------------------------------
3221 * WLAN_HAL_MIC_FAILURE_IND
3222 *--------------------------------------------------------------------------*/
3223
3224#define SIR_CIPHER_SEQ_CTR_SIZE 6
3225
3226typedef PACKED_PRE struct PACKED_POST
3227{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003228 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003229 tSirMacAddr taMacAddr; //transmitter address
3230 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003231 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003232 tANI_U8 IV1; // first byte of IV
3233 tANI_U8 keyId; // second byte of IV
3234 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3235 tSirMacAddr rxMacAddr; // receive address
3236} tSirMicFailureInfo, *tpSirMicFailureInfo;
3237
3238/* Definition for MIC failure indication
3239 MAC reports this each time a MIC failure occures on Rx TKIP packet
3240 */
3241typedef PACKED_PRE struct PACKED_POST
3242{
3243 tSirMacAddr bssId; // BSSID
3244 tSirMicFailureInfo info;
3245} tSirMicFailureInd, *tpSirMicFailureInd;
3246
3247typedef PACKED_PRE struct PACKED_POST
3248{
3249 tHalMsgHeader header;
3250 tSirMicFailureInd micFailureInd;
3251} tMicFailureIndMsg, *tpMicFailureIndMsg;
3252
Mohit Khanna4a70d262012-09-11 16:30:12 -07003253typedef PACKED_PRE struct PACKED_POST
3254{
3255 tANI_U16 opMode;
3256 tANI_U16 staId;
3257}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3258
3259typedef PACKED_PRE struct PACKED_POST
3260{
3261 tHalMsgHeader header;
3262 tUpdateVHTOpMode updateVhtOpMode;
3263} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3264
3265typedef PACKED_PRE struct PACKED_POST
3266{
3267 tANI_U32 status;
3268} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3269
3270typedef PACKED_PRE struct PACKED_POST
3271{
3272 tHalMsgHeader header;
3273 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3274} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3275
Jeff Johnson295189b2012-06-20 16:38:30 -07003276/*---------------------------------------------------------------------------
3277 * WLAN_HAL_UPDATE_BEACON_REQ
3278 *--------------------------------------------------------------------------*/
3279typedef PACKED_PRE struct PACKED_POST
3280{
3281
3282 tANI_U8 bssIdx;
3283
3284 //shortPreamble mode. HAL should update all the STA rates when it
3285 //receives this message
3286 tANI_U8 fShortPreamble;
3287 //short Slot time.
3288 tANI_U8 fShortSlotTime;
3289 //Beacon Interval
3290 tANI_U16 beaconInterval;
3291 //Protection related
3292 tANI_U8 llaCoexist;
3293 tANI_U8 llbCoexist;
3294 tANI_U8 llgCoexist;
3295 tANI_U8 ht20MhzCoexist;
3296 tANI_U8 llnNonGFCoexist;
3297 tANI_U8 fLsigTXOPProtectionFullSupport;
3298 tANI_U8 fRIFSMode;
3299
3300 tANI_U16 paramChangeBitmap;
3301}tUpdateBeaconParams, *tpUpdateBeaconParams;
3302
3303
3304typedef PACKED_PRE struct PACKED_POST
3305{
3306 tHalMsgHeader header;
3307 tUpdateBeaconParams updateBeaconParam;
3308} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3309
3310/*---------------------------------------------------------------------------
3311 * WLAN_HAL_UPDATE_BEACON_RSP
3312 *--------------------------------------------------------------------------*/
3313typedef PACKED_PRE struct PACKED_POST
3314{
3315 tANI_U32 status;
3316} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3317
3318typedef PACKED_PRE struct PACKED_POST
3319{
3320 tHalMsgHeader header;
3321 tUpdateBeaconRspParams updateBeaconRspParam;
3322} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3323
3324/*---------------------------------------------------------------------------
3325 * WLAN_HAL_SEND_BEACON_REQ
3326 *--------------------------------------------------------------------------*/
3327typedef PACKED_PRE struct PACKED_POST
3328{
3329 tANI_U32 beaconLength; //length of the template.
3330 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3331 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003332 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003333 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3334}tSendBeaconParams, *tpSendBeaconParams;
3335
3336
3337typedef PACKED_PRE struct PACKED_POST
3338{
3339 tHalMsgHeader header;
3340 tSendBeaconParams sendBeaconParam;
3341}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3342
3343/*---------------------------------------------------------------------------
3344 * WLAN_HAL_SEND_BEACON_RSP
3345 *--------------------------------------------------------------------------*/
3346typedef PACKED_PRE struct PACKED_POST
3347{
3348 tANI_U32 status;
3349} tSendBeaconRspParams, *tpSendBeaconRspParams;
3350
3351typedef PACKED_PRE struct PACKED_POST
3352{
3353 tHalMsgHeader header;
3354 tSendBeaconRspParams sendBeaconRspParam;
3355} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3356
3357#ifdef FEATURE_5GHZ_BAND
3358
3359/*---------------------------------------------------------------------------
3360 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3361 *--------------------------------------------------------------------------*/
3362typedef PACKED_PRE struct PACKED_POST
3363{
3364 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003365 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003366}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3367
3368
3369typedef PACKED_PRE struct PACKED_POST
3370{
3371 /* Link Parameters */
3372 tSirEnableRadarInfoType EnableRadarInfo;
3373}tEnableRadarReqParams, *tpEnableRadarReqParams;
3374
3375typedef PACKED_PRE struct PACKED_POST
3376{
3377 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003378 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003379}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3380
3381/*---------------------------------------------------------------------------
3382 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3383 *--------------------------------------------------------------------------*/
3384
3385typedef PACKED_PRE struct PACKED_POST
3386{
3387 /* Link Parameters */
3388 tSirMacAddr BSSID;
3389 /* success or failure */
3390 tANI_U32 status;
3391}tEnableRadarRspParams, *tpEnableRadarRspParams;
3392
3393typedef PACKED_PRE struct PACKED_POST
3394{
3395 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003396 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003397}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3398
3399/*---------------------------------------------------------------------------
3400 *WLAN_HAL_RADAR_DETECT_INTR_IND
3401 *--------------------------------------------------------------------------*/
3402
3403typedef PACKED_PRE struct PACKED_POST
3404{
3405 tANI_U8 radarDetChannel;
3406}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3407
3408typedef PACKED_PRE struct PACKED_POST
3409{
3410 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003411 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003412}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3413
3414/*---------------------------------------------------------------------------
3415 *WLAN_HAL_RADAR_DETECT_IND
3416 *-------------------------------------------------------------------------*/
3417typedef PACKED_PRE struct PACKED_POST
3418{
3419 /*channel number in which the RADAR detected*/
3420 tANI_U8 channelNumber;
3421
3422 /*RADAR pulse width*/
3423 tANI_U16 radarPulseWidth; // in usecond
3424
3425 /*Number of RADAR pulses */
3426 tANI_U16 numRadarPulse;
3427}tRadarDetectIndParams,*tpRadarDetectIndParams;
3428
3429typedef PACKED_PRE struct PACKED_POST
3430{
3431 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003432 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003433}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3434
3435
3436/*---------------------------------------------------------------------------
3437 *WLAN_HAL_GET_TPC_REPORT_REQ
3438 *-------------------------------------------------------------------------*/
3439typedef PACKED_PRE struct PACKED_POST
3440{
3441 tSirMacAddr sta;
3442 tANI_U8 dialogToken;
3443 tANI_U8 txpower;
3444}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3445
3446
3447typedef PACKED_PRE struct PACKED_POST
3448{
3449 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003450 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003451}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3452
3453/*---------------------------------------------------------------------------
3454 * WLAN_HAL_GET_TPC_REPORT_RSP
3455 *--------------------------------------------------------------------------*/
3456
3457typedef PACKED_PRE struct PACKED_POST
3458{
3459 /* success or failure */
3460 tANI_U32 status;
3461}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3462
3463typedef PACKED_PRE struct PACKED_POST
3464{
3465 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003466 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003467}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3468
3469#endif
3470
Jeff Johnson295189b2012-06-20 16:38:30 -07003471/*---------------------------------------------------------------------------
3472 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3473 *-------------------------------------------------------------------------*/
3474typedef PACKED_PRE struct PACKED_POST
3475{
3476 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3477 tANI_U32 probeRespTemplateLen;
3478 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3479 tSirMacAddr bssId;
3480
3481}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3482
3483typedef PACKED_PRE struct PACKED_POST
3484{
3485 tHalMsgHeader header;
3486 tSendProbeRespReqParams sendProbeRespReqParams ;
3487}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3488
3489/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003490 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003491 *--------------------------------------------------------------------------*/
3492
3493typedef PACKED_PRE struct PACKED_POST
3494{
3495 /* success or failure */
3496 tANI_U32 status;
3497}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3498
3499typedef PACKED_PRE struct PACKED_POST
3500{
3501 tHalMsgHeader header;
3502 tSendProbeRespRspParams sendProbeRespRspParams;
3503}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3504
3505
3506/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003507 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003508 *--------------------------------------------------------------------------*/
3509
3510typedef PACKED_PRE struct PACKED_POST
3511{
3512 /* success or failure */
3513 tANI_U32 status;
3514}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3515
3516typedef PACKED_PRE struct PACKED_POST
3517{
3518 tHalMsgHeader header;
3519 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3520}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3521
3522/*---------------------------------------------------------------------------
3523 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3524 *--------------------------------------------------------------------------*/
3525
3526typedef PACKED_PRE struct PACKED_POST
3527{
3528 tANI_U16 assocId;
3529 tANI_U16 staId;
3530 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3531 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003532 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003533 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003534
3535}tDeleteStaContextParams, *tpDeleteStaContextParams;
3536
3537
3538typedef PACKED_PRE struct PACKED_POST
3539{
3540 tHalMsgHeader header;
3541 tDeleteStaContextParams deleteStaContextParams;
3542}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3543
Anand Kumar012623a2013-01-11 17:00:00 -08003544typedef PACKED_PRE struct PACKED_POST
3545{
3546 tHalMsgHeader header;
3547 tANI_U8 assocId;
3548 tANI_U8 staIdx;
3549 tANI_U8 bssIdx;
3550 tANI_U8 uReasonCode;
3551 tANI_U32 uStatus;
3552} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003553
3554/*---------------------------------------------------------------------------
3555 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3556 *--------------------------------------------------------------------------*/
3557
3558typedef PACKED_PRE struct PACKED_POST
3559{
3560 tBtAmpEventType btAmpEventType;
3561
3562}tBtAmpEventParams, *tpBtAmpEventParams;
3563
3564
3565
3566typedef PACKED_PRE struct PACKED_POST
3567{
3568 tHalMsgHeader header;
3569 tBtAmpEventParams btAmpEventParams;
3570}tBtAmpEventMsg, *tpBtAmpEventMsg;
3571
3572/*---------------------------------------------------------------------------
3573*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3574*--------------------------------------------------------------------------*/
3575
3576typedef PACKED_PRE struct PACKED_POST
3577{
3578 /* success or failure */
3579 tANI_U32 status;
3580}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3581
3582typedef PACKED_PRE struct PACKED_POST
3583{
3584 tHalMsgHeader header;
3585 tBtAmpEventRspParams btAmpEventRspParams;
3586}tBtAmpEventRsp, *tpBtAmpEventRsp;
3587
3588
3589/*---------------------------------------------------------------------------
3590 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3591 *--------------------------------------------------------------------------*/
3592
3593typedef PACKED_PRE struct PACKED_POST
3594{
3595 // Station Index. originates from HAL
3596 tANI_U8 ucSTAId;
3597
3598 // TID for which the transmit queue is being flushed
3599 tANI_U8 ucTid;
3600
3601}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3602
3603
3604typedef PACKED_PRE struct PACKED_POST
3605{
3606 tHalMsgHeader header;
3607 tTlHalFlushAcParams tlHalFlushAcParam;
3608}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3609
3610/*---------------------------------------------------------------------------
3611*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3612*--------------------------------------------------------------------------*/
3613
3614typedef PACKED_PRE struct PACKED_POST
3615{
3616 // Station Index. originates from HAL
3617 tANI_U8 ucSTAId;
3618
3619 // TID for which the transmit queue is being flushed
3620 tANI_U8 ucTid;
3621
3622 /* success or failure */
3623 tANI_U32 status;
3624}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3625
3626typedef PACKED_PRE struct PACKED_POST
3627{
3628 tHalMsgHeader header;
3629 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3630}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3631
3632/*---------------------------------------------------------------------------
3633 * WLAN_HAL_ENTER_IMPS_REQ
3634 *--------------------------------------------------------------------------*/
3635typedef PACKED_PRE struct PACKED_POST
3636{
3637 tHalMsgHeader header;
3638} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3639
3640/*---------------------------------------------------------------------------
3641 * WLAN_HAL_EXIT_IMPS_REQ
3642 *--------------------------------------------------------------------------*/
3643typedef PACKED_PRE struct PACKED_POST
3644{
3645 tHalMsgHeader header;
3646} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3647
3648/*---------------------------------------------------------------------------
3649 * WLAN_HAL_ENTER_BMPS_REQ
3650 *--------------------------------------------------------------------------*/
3651
3652typedef PACKED_PRE struct PACKED_POST
3653{
3654 tANI_U8 bssIdx;
3655 //TBTT value derived from the last beacon
3656#ifndef BUILD_QWPTTSTATIC
3657 tANI_U64 tbtt;
3658#endif
3659 tANI_U8 dtimCount;
3660 //DTIM period given to HAL during association may not be valid,
3661 //if association is based on ProbeRsp instead of beacon.
3662 tANI_U8 dtimPeriod;
3663
3664 // For CCX and 11R Roaming
3665 tANI_U32 rssiFilterPeriod;
3666 tANI_U32 numBeaconPerRssiAverage;
3667 tANI_U8 bRssiFilterEnable;
3668
3669} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3670
3671
3672typedef PACKED_PRE struct PACKED_POST
3673{
3674 tHalMsgHeader header;
3675 tHalEnterBmpsReqParams enterBmpsReq;
3676} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3677
3678/*---------------------------------------------------------------------------
3679 * WLAN_HAL_EXIT_BMPS_REQ
3680 *--------------------------------------------------------------------------*/
3681typedef PACKED_PRE struct PACKED_POST
3682{
3683 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003684 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003685} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3686
3687typedef PACKED_PRE struct PACKED_POST
3688{
3689 tHalMsgHeader header;
3690 tHalExitBmpsReqParams exitBmpsReqParams;
3691} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3692
3693/*---------------------------------------------------------------------------
3694 * WLAN_HAL_ADD_BCN_FILTER_REQ
3695 *--------------------------------------------------------------------------*/
3696/* Beacon Filtering data structures */
3697typedef PACKED_PRE struct PACKED_POST
3698{
3699 tANI_U8 offset;
3700 tANI_U8 value;
3701 tANI_U8 bitMask;
3702 tANI_U8 ref;
3703} tEidByteInfo, *tpEidByteInfo;
3704
Jeff Johnson32d95a32012-09-10 13:15:23 -07003705typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003706{
3707 tANI_U16 capabilityInfo;
3708 tANI_U16 capabilityMask;
3709 tANI_U16 beaconInterval;
3710 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003711 tANI_U8 bssIdx;
3712 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003713} tBeaconFilterMsg, *tpBeaconFilterMsg;
3714
3715/* The above structure would be followed by multiple of below mentioned structure */
3716typedef PACKED_PRE struct PACKED_POST
3717{
3718 tANI_U8 elementId;
3719 tANI_U8 checkIePresence;
3720 tEidByteInfo byte;
3721} tBeaconFilterIe, *tpBeaconFilterIe;
3722
3723typedef PACKED_PRE struct PACKED_POST
3724{
3725 tHalMsgHeader header;
3726 tBeaconFilterMsg addBcnFilterParams;
3727} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3728
3729/*---------------------------------------------------------------------------
3730 * WLAN_HAL_REM_BCN_FILTER_REQ
3731 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003732typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003733{
3734 tANI_U8 ucIeCount;
3735 tANI_U8 ucRemIeId[1];
3736} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3737
3738typedef PACKED_PRE struct PACKED_POST
3739{
3740 tHalMsgHeader header;
3741 tRemBeaconFilterMsg remBcnFilterParams;
3742} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3743
3744/*---------------------------------------------------------------------------
3745 * WLAN_HAL_HOST_OFFLOAD_REQ
3746 *--------------------------------------------------------------------------*/
3747#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3748#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3749#define HAL_IPV6_NS_OFFLOAD 2
3750#define HAL_IPV6_ADDR_LEN 16
3751#define HAL_MAC_ADDR_LEN 6
3752#define HAL_OFFLOAD_DISABLE 0
3753#define HAL_OFFLOAD_ENABLE 1
3754#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
3755#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
3756
3757typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3758{
3759 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3760 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3761 //Only support 2 possible Network Advertisement IPv6 address
3762 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3763 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3764 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3765 tANI_U8 srcIPv6AddrValid : 1;
3766 tANI_U8 targetIPv6Addr1Valid : 1;
3767 tANI_U8 targetIPv6Addr2Valid : 1;
3768 tANI_U8 reserved1 : 5;
3769 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003770 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003771} tHalNSOffloadParams;
3772
3773typedef PACKED_PRE struct PACKED_POST
3774{
3775 tANI_U8 offloadType;
3776 tANI_U8 enableOrDisable;
3777 PACKED_PRE union PACKED_POST
3778 {
3779 tANI_U8 hostIpv4Addr [4];
3780 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3781 } params;
3782} tHalHostOffloadReq, *tpHalHostOffloadReq;
3783
3784typedef PACKED_PRE struct PACKED_POST
3785{
3786 tHalMsgHeader header;
3787 tHalHostOffloadReq hostOffloadParams;
3788 tHalNSOffloadParams nsOffloadParams;
3789} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3790
3791/*---------------------------------------------------------------------------
3792 * WLAN_HAL_KEEP_ALIVE_REQ
3793 *--------------------------------------------------------------------------*/
3794/* Packet Types. */
3795#define HAL_KEEP_ALIVE_NULL_PKT 1
3796#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3797
3798/* Enable or disable keep alive */
3799#define HAL_KEEP_ALIVE_DISABLE 0
3800#define HAL_KEEP_ALIVE_ENABLE 1
3801
3802/* Keep Alive request. */
3803typedef PACKED_PRE struct PACKED_POST
3804{
3805 tANI_U8 packetType;
3806 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003807 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003808 tHalIpv4Addr destIpv4Addr;
3809 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003810 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003811} tHalKeepAliveReq, *tpHalKeepAliveReq;
3812
3813typedef PACKED_PRE struct PACKED_POST
3814{
3815 tHalMsgHeader header;
3816 tHalKeepAliveReq KeepAliveParams;
3817} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3818
3819/*---------------------------------------------------------------------------
3820 * WLAN_HAL_SET_RSSI_THRESH_REQ
3821 *--------------------------------------------------------------------------*/
3822typedef PACKED_PRE struct PACKED_POST
3823{
3824 tANI_S8 ucRssiThreshold1 : 8;
3825 tANI_S8 ucRssiThreshold2 : 8;
3826 tANI_S8 ucRssiThreshold3 : 8;
3827 tANI_U8 bRssiThres1PosNotify : 1;
3828 tANI_U8 bRssiThres1NegNotify : 1;
3829 tANI_U8 bRssiThres2PosNotify : 1;
3830 tANI_U8 bRssiThres2NegNotify : 1;
3831 tANI_U8 bRssiThres3PosNotify : 1;
3832 tANI_U8 bRssiThres3NegNotify : 1;
3833 tANI_U8 bReserved10 : 2;
3834} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003835
Jeff Johnson295189b2012-06-20 16:38:30 -07003836typedef PACKED_PRE struct PACKED_POST
3837{
3838 tHalMsgHeader header;
3839 tHalRSSIThresholds rssiThreshParams;
3840} tHalRSSIThresholdsReqMsg, *tpHalRSSIThresholdReqMsg;
3841
3842/*---------------------------------------------------------------------------
3843 * WLAN_HAL_ENTER_UAPSD_REQ
3844 *--------------------------------------------------------------------------*/
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 tANI_U8 bkDeliveryEnabled:1;
3848 tANI_U8 beDeliveryEnabled:1;
3849 tANI_U8 viDeliveryEnabled:1;
3850 tANI_U8 voDeliveryEnabled:1;
3851 tANI_U8 bkTriggerEnabled:1;
3852 tANI_U8 beTriggerEnabled:1;
3853 tANI_U8 viTriggerEnabled:1;
3854 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003855 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003856} tUapsdReqParams, *tpUapsdReqParams;
3857
3858typedef PACKED_PRE struct PACKED_POST
3859{
3860 tHalMsgHeader header;
3861 tUapsdReqParams enterUapsdParams;
3862} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3863
3864/*---------------------------------------------------------------------------
3865 * WLAN_HAL_EXIT_UAPSD_REQ
3866 *--------------------------------------------------------------------------*/
3867typedef PACKED_PRE struct PACKED_POST
3868{
3869 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003870 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003871} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3872
3873/*---------------------------------------------------------------------------
3874 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3875 *--------------------------------------------------------------------------*/
3876#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3877#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3878
3879typedef PACKED_PRE struct PACKED_POST
3880{
3881 tANI_U8 ucPatternId; // Pattern ID
3882 // Pattern byte offset from beginning of the 802.11 packet to start of the
3883 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003884 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003885 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3886 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3887 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3888 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3889 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3890 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003891 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003892} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3893
3894typedef PACKED_PRE struct PACKED_POST
3895{
3896 tHalMsgHeader header;
3897 tHalWowlAddBcastPtrn ptrnParams;
3898} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003899
Jeff Johnsone7245742012-09-05 17:12:55 -07003900
3901
Jeff Johnson295189b2012-06-20 16:38:30 -07003902/*---------------------------------------------------------------------------
3903 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3904 *--------------------------------------------------------------------------*/
3905typedef PACKED_PRE struct PACKED_POST
3906{
3907 /* Pattern ID of the wakeup pattern to be deleted */
3908 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003909 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003910} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3911
3912typedef PACKED_PRE struct PACKED_POST
3913{
3914 tHalMsgHeader header;
3915 tHalWowlDelBcastPtrn ptrnParams;
3916} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3917
3918/*---------------------------------------------------------------------------
3919 * WLAN_HAL_ENTER_WOWL_REQ
3920 *--------------------------------------------------------------------------*/
3921typedef PACKED_PRE struct PACKED_POST
3922{
3923 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003924 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003925
3926 /* Magic pattern */
3927 tSirMacAddr magicPtrn;
3928
Jeff Johnson32d95a32012-09-10 13:15:23 -07003929 /* Enables/disables packet pattern filtering in firmware.
3930 Enabling this flag enables broadcast pattern matching
3931 in Firmware. If unicast pattern matching is also desired,
3932 ucUcastPatternFilteringEnable flag must be set tot true
3933 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003934 */
3935 tANI_U8 ucPatternFilteringEnable;
3936
Jeff Johnson32d95a32012-09-10 13:15:23 -07003937 /* Enables/disables unicast packet pattern filtering.
3938 This flag specifies whether we want to do pattern match
3939 on unicast packets as well and not just broadcast packets.
3940 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003941 (main controlling flag) is set to false
3942 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003943 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003944
Jeff Johnson32d95a32012-09-10 13:15:23 -07003945 /* This configuration is valid only when magicPktEnable=1.
3946 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003947 * Channel Switch Action Frame.
3948 */
3949 tANI_U8 ucWowChnlSwitchRcv;
3950
Jeff Johnson32d95a32012-09-10 13:15:23 -07003951 /* This configuration is valid only when magicPktEnable=1.
3952 * It requests hardware to wake up when it receives the
3953 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003954 */
3955 tANI_U8 ucWowDeauthRcv;
3956
Jeff Johnson32d95a32012-09-10 13:15:23 -07003957 /* This configuration is valid only when magicPktEnable=1.
3958 * It requests hardware to wake up when it receives the
3959 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003960 */
3961 tANI_U8 ucWowDisassocRcv;
3962
Jeff Johnson32d95a32012-09-10 13:15:23 -07003963 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003964 * It requests hardware to wake up when it has missed
3965 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003966 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003967 */
3968 tANI_U8 ucWowMaxMissedBeacons;
3969
Jeff Johnson32d95a32012-09-10 13:15:23 -07003970 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003971 * This is a timeout value in units of microsec. It requests
3972 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003973 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003974 */
3975 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003976
Jeff Johnson295189b2012-06-20 16:38:30 -07003977 /* This configuration directs the WoW packet filtering to look for EAP-ID
3978 * requests embedded in EAPOL frames and use this as a wake source.
3979 */
3980 tANI_U8 ucWoWEAPIDRequestEnable;
3981
3982 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3983 * requests and use this as a wake source.
3984 */
3985 tANI_U8 ucWoWEAPOL4WayEnable;
3986
3987 /* This configuration allows a host wakeup on an network scan offload match.
3988 */
3989 tANI_U8 ucWowNetScanOffloadMatch;
3990
3991 /* This configuration allows a host wakeup on any GTK rekeying error.
3992 */
3993 tANI_U8 ucWowGTKRekeyError;
3994
3995 /* This configuration allows a host wakeup on BSS connection loss.
3996 */
3997 tANI_U8 ucWoWBSSConnLoss;
3998
Jeff Johnsone7245742012-09-05 17:12:55 -07003999 tANI_U8 bssIdx;
4000
Jeff Johnson295189b2012-06-20 16:38:30 -07004001} tHalWowlEnterParams, *tpHalWowlEnterParams;
4002
4003typedef PACKED_PRE struct PACKED_POST
4004{
4005 tHalMsgHeader header;
4006 tHalWowlEnterParams enterWowlParams;
4007} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4008
4009/*---------------------------------------------------------------------------
4010 * WLAN_HAL_EXIT_WOWL_REQ
4011 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004012
Jeff Johnson295189b2012-06-20 16:38:30 -07004013typedef PACKED_PRE struct PACKED_POST
4014{
Jeff Johnsone7245742012-09-05 17:12:55 -07004015 tANI_U8 bssIdx;
4016
4017} tHalWowlExitParams, *tpHalWowlExitParams;
4018
4019typedef PACKED_PRE struct PACKED_POST
4020{
4021 tHalMsgHeader header;
4022 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004023} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4024
4025/*---------------------------------------------------------------------------
4026 * WLAN_HAL_GET_RSSI_REQ
4027 *--------------------------------------------------------------------------*/
4028typedef PACKED_PRE struct PACKED_POST
4029{
4030 tHalMsgHeader header;
4031} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4032
Anand Kumar012623a2013-01-11 17:00:00 -08004033typedef PACKED_PRE struct PACKED_POST
4034{
4035 /* Valid STA Idx for per STA stats request */
4036 tANI_U32 staId;
4037
4038}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4039
4040
4041/*---------------------------------------------------------------------------
4042 * WLAN_HAL_GET_ROAM_RSSI_REQ
4043 *--------------------------------------------------------------------------*/
4044typedef PACKED_PRE struct PACKED_POST
4045{
4046 tHalMsgHeader header;
4047 tHalRoamRssiReqParams roamRssiReqParams;
4048} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4049
4050
Jeff Johnson295189b2012-06-20 16:38:30 -07004051/*---------------------------------------------------------------------------
4052 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4053 *--------------------------------------------------------------------------*/
4054typedef PACKED_PRE struct PACKED_POST {
4055 tANI_U8 staidx; // STA index
4056 tANI_U8 ac; // Access Category
4057 tANI_U8 up; // User Priority
4058 tANI_U32 srvInterval; // Service Interval
4059 tANI_U32 susInterval; // Suspend Interval
4060 tANI_U32 delayInterval; // Delay Interval
4061} tUapsdInfo, tpUapsdInfo;
4062
4063typedef PACKED_PRE struct PACKED_POST
4064{
4065 tHalMsgHeader header;
4066 tUapsdInfo enableUapsdAcParams;
4067} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4068
4069/*---------------------------------------------------------------------------
4070 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4071 *--------------------------------------------------------------------------*/
4072typedef PACKED_PRE struct PACKED_POST {
4073 tANI_U8 setMcstBcstFilterSetting;
4074 tANI_U8 setMcstBcstFilter;
4075} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4076
4077typedef PACKED_PRE struct PACKED_POST
4078{
4079 tHalMsgHeader header;
4080 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4081} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4082
4083/*---------------------------------------------------------------------------
4084 * WLAN_HAL_ENTER_IMPS_RSP
4085 *--------------------------------------------------------------------------*/
4086typedef PACKED_PRE struct PACKED_POST
4087{
4088 /* success or failure */
4089 tANI_U32 status;
4090} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4091
4092typedef PACKED_PRE struct PACKED_POST
4093{
4094 tHalMsgHeader header;
4095 tHalEnterImpsRspParams enterImpsRspParams;
4096} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4097
4098/*---------------------------------------------------------------------------
4099 * WLAN_HAL_EXIT_IMPS_RSP
4100 *--------------------------------------------------------------------------*/
4101typedef PACKED_PRE struct PACKED_POST
4102{
4103 /* success or failure */
4104 tANI_U32 status;
4105} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4106
4107typedef PACKED_PRE struct PACKED_POST
4108{
4109 tHalMsgHeader header;
4110 tHalExitImpsRspParams exitImpsRspParams;
4111} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4112
4113/*---------------------------------------------------------------------------
4114 * WLAN_HAL_ENTER_BMPS_RSP
4115 *--------------------------------------------------------------------------*/
4116typedef PACKED_PRE struct PACKED_POST
4117{
4118 /* success or failure */
4119 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004120 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004121} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4122
4123typedef PACKED_PRE struct PACKED_POST
4124{
4125 tHalMsgHeader header;
4126 tHalEnterBmpsRspParams enterBmpsRspParams;
4127} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4128
4129/*---------------------------------------------------------------------------
4130 * WLAN_HAL_EXIT_BMPS_RSP
4131 *--------------------------------------------------------------------------*/
4132typedef PACKED_PRE struct PACKED_POST
4133{
4134 /* success or failure */
4135 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004136 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004137} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4138
4139typedef PACKED_PRE struct PACKED_POST
4140{
4141 tHalMsgHeader header;
4142 tHalExitBmpsRspParams exitBmpsRspParams;
4143} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4144
4145/*---------------------------------------------------------------------------
4146 * WLAN_HAL_ENTER_UAPSD_RSP
4147 *--------------------------------------------------------------------------*/
4148typedef PACKED_PRE struct PACKED_POST
4149{
4150 /* success or failure */
4151 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004152 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004153}tUapsdRspParams, *tpUapsdRspParams;
4154
4155typedef PACKED_PRE struct PACKED_POST
4156{
4157 tHalMsgHeader header;
4158 tUapsdRspParams enterUapsdRspParams;
4159} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4160
4161/*---------------------------------------------------------------------------
4162 * WLAN_HAL_EXIT_UAPSD_RSP
4163 *--------------------------------------------------------------------------*/
4164typedef PACKED_PRE struct PACKED_POST
4165{
4166 /* success or failure */
4167 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004168 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004169} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4170
4171typedef PACKED_PRE struct PACKED_POST
4172{
4173 tHalMsgHeader header;
4174 tHalExitUapsdRspParams exitUapsdRspParams;
4175} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4176
4177/*---------------------------------------------------------------------------
4178 * WLAN_HAL_RSSI_NOTIFICATION_IND
4179 *--------------------------------------------------------------------------*/
4180typedef PACKED_PRE struct PACKED_POST
4181{
4182 tANI_U32 bRssiThres1PosCross : 1;
4183 tANI_U32 bRssiThres1NegCross : 1;
4184 tANI_U32 bRssiThres2PosCross : 1;
4185 tANI_U32 bRssiThres2NegCross : 1;
4186 tANI_U32 bRssiThres3PosCross : 1;
4187 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004188 tANI_U32 avgRssi : 8;
4189 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004190} tHalRSSINotification, *tpHalRSSINotification;
4191
4192typedef PACKED_PRE struct PACKED_POST
4193{
4194 tHalMsgHeader header;
4195 tHalRSSINotification rssiNotificationParams;
4196} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4197
4198/*---------------------------------------------------------------------------
4199 * WLAN_HAL_GET_RSSI_RSP
4200 *--------------------------------------------------------------------------*/
4201typedef PACKED_PRE struct PACKED_POST
4202{
4203 /* success or failure */
4204 tANI_U32 status;
4205 tANI_S8 rssi;
4206} tHalGetRssiParams, *tpHalGetRspParams;
4207
4208typedef PACKED_PRE struct PACKED_POST
4209{
4210 tHalMsgHeader header;
4211 tHalGetRssiParams rssiRspParams;
4212} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4213
4214/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004215 * WLAN_HAL_GET_ROAM_RSSI_RSP
4216 *--------------------------------------------------------------------------*/
4217typedef PACKED_PRE struct PACKED_POST
4218{
4219 /* success or failure */
4220 tANI_U32 status;
4221
4222 tANI_U8 staId;
4223 tANI_S8 rssi;
4224} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4225
4226typedef PACKED_PRE struct PACKED_POST
4227{
4228 tHalMsgHeader header;
4229 tHalGetRoamRssiParams roamRssiRspParams;
4230} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4231
4232/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004233 * WLAN_HAL_ENTER_WOWL_RSP
4234 *--------------------------------------------------------------------------*/
4235typedef PACKED_PRE struct PACKED_POST
4236{
4237 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004238 tANI_U32 status;
4239 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004240} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4241
4242typedef PACKED_PRE struct PACKED_POST
4243{
4244 tHalMsgHeader header;
4245 tHalEnterWowlRspParams enterWowlRspParams;
4246} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4247
4248/*---------------------------------------------------------------------------
4249 * WLAN_HAL_EXIT_WOWL_RSP
4250 *--------------------------------------------------------------------------*/
4251typedef PACKED_PRE struct PACKED_POST
4252{
4253 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004254 tANI_U32 status;
4255 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004256} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4257
4258typedef PACKED_PRE struct PACKED_POST
4259{
4260 tHalMsgHeader header;
4261 tHalExitWowlRspParams exitWowlRspParams;
4262} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4263
4264/*---------------------------------------------------------------------------
4265 * WLAN_HAL_ADD_BCN_FILTER_RSP
4266 *--------------------------------------------------------------------------*/
4267typedef PACKED_PRE struct PACKED_POST
4268{
4269 /* success or failure */
4270 tANI_U32 status;
4271} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4272
4273typedef PACKED_PRE struct PACKED_POST
4274{
4275 tHalMsgHeader header;
4276 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4277} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4278
4279/*---------------------------------------------------------------------------
4280 * WLAN_HAL_REM_BCN_FILTER_RSP
4281 *--------------------------------------------------------------------------*/
4282typedef PACKED_PRE struct PACKED_POST
4283{
4284 /* success or failure */
4285 tANI_U32 status;
4286} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4287
4288typedef PACKED_PRE struct PACKED_POST
4289{
4290 tHalMsgHeader header;
4291 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4292} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4293
4294/*---------------------------------------------------------------------------
4295 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4296 *--------------------------------------------------------------------------*/
4297typedef PACKED_PRE struct PACKED_POST
4298{
4299 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004300 tANI_U32 status;
4301 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004302} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4303
4304typedef PACKED_PRE struct PACKED_POST
4305{
4306 tHalMsgHeader header;
4307 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4308} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4309
4310/*---------------------------------------------------------------------------
4311 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4312 *--------------------------------------------------------------------------*/
4313typedef PACKED_PRE struct PACKED_POST
4314{
4315 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004316 tANI_U32 status;
4317 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004318} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4319
4320typedef PACKED_PRE struct PACKED_POST
4321{
4322 tHalMsgHeader header;
4323 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4324} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4325
4326/*---------------------------------------------------------------------------
4327 * WLAN_HAL_HOST_OFFLOAD_RSP
4328 *--------------------------------------------------------------------------*/
4329typedef PACKED_PRE struct PACKED_POST
4330{
4331 /* success or failure */
4332 tANI_U32 status;
4333} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4334
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 tHalMsgHeader header;
4338 tHalHostOffloadRspParams hostOffloadRspParams;
4339} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4340
4341/*---------------------------------------------------------------------------
4342 * WLAN_HAL_KEEP_ALIVE_RSP
4343 *--------------------------------------------------------------------------*/
4344typedef PACKED_PRE struct PACKED_POST
4345{
4346 /* success or failure */
4347 tANI_U32 status;
4348} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4349
4350typedef PACKED_PRE struct PACKED_POST
4351{
4352 tHalMsgHeader header;
4353 tHalKeepAliveRspParams keepAliveRspParams;
4354} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4355
4356/*---------------------------------------------------------------------------
4357 * WLAN_HAL_SET_RSSI_THRESH_RSP
4358 *--------------------------------------------------------------------------*/
4359typedef PACKED_PRE struct PACKED_POST
4360{
4361 /* success or failure */
4362 tANI_U32 status;
4363} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4364
4365typedef PACKED_PRE struct PACKED_POST
4366{
4367 tHalMsgHeader header;
4368 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4369} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4370
4371/*---------------------------------------------------------------------------
4372 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4373 *--------------------------------------------------------------------------*/
4374typedef PACKED_PRE struct PACKED_POST
4375{
4376 /* success or failure */
4377 tANI_U32 status;
4378} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4379
4380typedef PACKED_PRE struct PACKED_POST
4381{
4382 tHalMsgHeader header;
4383 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4384} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4385
4386/*---------------------------------------------------------------------------
4387 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4388 *--------------------------------------------------------------------------*/
4389typedef PACKED_PRE struct PACKED_POST
4390{
4391 /* success or failure */
4392 tANI_U32 status;
4393} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4394
4395typedef PACKED_PRE struct PACKED_POST
4396{
4397 tHalMsgHeader header;
4398 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4399} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4400
4401/*---------------------------------------------------------------------------
4402 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4403 *--------------------------------------------------------------------------*/
4404
4405typedef PACKED_PRE struct PACKED_POST
4406{
4407 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4408 //the request has power constraints, this should be applied only to that session
4409 tSirMacAddr selfStaMacAddr;
4410 //In request,
4411 //power == MaxTx power to be used.
4412 tPowerdBm power;
4413
4414}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4415
4416
4417typedef PACKED_PRE struct PACKED_POST
4418{
4419 tHalMsgHeader header;
4420 tSetMaxTxPwrParams setMaxTxPwrParams;
4421}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4422
4423/*---------------------------------------------------------------------------
4424*WLAN_HAL_SET_MAX_TX_POWER_RSP
4425*--------------------------------------------------------------------------*/
4426
4427typedef PACKED_PRE struct PACKED_POST
4428{
4429 //power == tx power used for management frames.
4430 tPowerdBm power;
4431
4432 /* success or failure */
4433 tANI_U32 status;
4434}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4435
4436typedef PACKED_PRE struct PACKED_POST
4437{
4438 tHalMsgHeader header;
4439 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4440}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4441
4442/*---------------------------------------------------------------------------
4443 *WLAN_HAL_SET_TX_POWER_REQ
4444 *--------------------------------------------------------------------------*/
4445
4446typedef PACKED_PRE struct PACKED_POST
4447{
4448 /* TX Power in milli watts */
4449 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004450 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004451}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4452
4453
4454typedef PACKED_PRE struct PACKED_POST
4455{
4456 tHalMsgHeader header;
4457 tSetTxPwrReqParams setTxPwrReqParams;
4458}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4459
4460/*---------------------------------------------------------------------------
4461*WLAN_HAL_SET_TX_POWER_RSP
4462*--------------------------------------------------------------------------*/
4463
4464typedef PACKED_PRE struct PACKED_POST
4465{
4466 /* success or failure */
4467 tANI_U32 status;
4468}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4469
4470typedef PACKED_PRE struct PACKED_POST
4471{
4472 tHalMsgHeader header;
4473 tSetTxPwrRspParams setTxPwrRspParams;
4474}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4475
4476/*---------------------------------------------------------------------------
4477 *WLAN_HAL_GET_TX_POWER_REQ
4478 *--------------------------------------------------------------------------*/
4479
4480typedef PACKED_PRE struct PACKED_POST
4481{
4482 tANI_U8 staId;
4483}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4484
4485typedef PACKED_PRE struct PACKED_POST
4486{
4487 tHalMsgHeader header;
4488 tGetTxPwrReqParams getTxPwrReqParams;
4489}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4490
4491/*---------------------------------------------------------------------------
4492*WLAN_HAL_GET_TX_POWER_RSP
4493*--------------------------------------------------------------------------*/
4494
4495typedef PACKED_PRE struct PACKED_POST
4496{
4497 /* success or failure */
4498 tANI_U32 status;
4499
4500 /* TX Power in milli watts */
4501 tANI_U32 txPower;
4502}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4503
4504typedef PACKED_PRE struct PACKED_POST
4505{
4506 tHalMsgHeader header;
4507 tGetTxPwrRspParams getTxPwrRspParams;
4508}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4509
4510#ifdef WLAN_FEATURE_P2P
4511/*---------------------------------------------------------------------------
4512 *WLAN_HAL_SET_P2P_GONOA_REQ
4513 *--------------------------------------------------------------------------*/
4514
4515typedef PACKED_PRE struct PACKED_POST
4516{
4517 tANI_U8 opp_ps;
4518 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004519 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004520 tANI_U32 duration;
4521 tANI_U32 interval;
4522 tANI_U32 single_noa_duration;
4523 tANI_U8 psSelection;
4524}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4525
4526
4527typedef PACKED_PRE struct PACKED_POST
4528{
4529 tHalMsgHeader header;
4530 tSetP2PGONOAParams setP2PGONOAParams;
4531}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4532
4533/*---------------------------------------------------------------------------
4534*WLAN_HAL_SET_P2P_GONOA_RSP
4535*--------------------------------------------------------------------------*/
4536
4537typedef PACKED_PRE struct PACKED_POST
4538{
4539 /* success or failure */
4540 tANI_U32 status;
4541}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4542
4543typedef PACKED_PRE struct PACKED_POST
4544{
4545 tHalMsgHeader header;
4546 tSetP2PGONOARspParams setP2PGONOARspParams;
4547}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4548#endif
4549
4550/*---------------------------------------------------------------------------
4551 *WLAN_HAL_ADD_SELF_STA_REQ
4552 *--------------------------------------------------------------------------*/
4553
4554typedef PACKED_PRE struct PACKED_POST
4555{
4556 tSirMacAddr selfMacAddr;
4557 tANI_U32 status;
4558}tAddStaSelfParams, *tpAddStaSelfParams;
4559
4560
4561typedef PACKED_PRE struct PACKED_POST
4562{
4563 tHalMsgHeader header;
4564 tAddStaSelfParams addStaSelfParams;
4565}tAddStaSelfReq, *tpAddStaSelfReq;
4566
4567/*---------------------------------------------------------------------------
4568*WLAN_HAL_ADD_SELF_STA_RSP
4569*--------------------------------------------------------------------------*/
4570
4571typedef PACKED_PRE struct PACKED_POST
4572{
4573 /* success or failure */
4574 tANI_U32 status;
4575
4576 /*Self STA Index */
4577 tANI_U8 selfStaIdx;
4578
4579 /* DPU Index (IGTK, PTK, GTK all same) */
4580 tANI_U8 dpuIdx;
4581
4582 /* DPU Signature */
4583 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004584
Jeff Johnson295189b2012-06-20 16:38:30 -07004585}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4586
4587typedef PACKED_PRE struct PACKED_POST
4588{
4589 tHalMsgHeader header;
4590 tAddStaSelfRspParams addStaSelfRspParams;
4591}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4592
4593
4594/*---------------------------------------------------------------------------
4595 WLAN_HAL_DEL_STA_SELF_REQ
4596---------------------------------------------------------------------------*/
4597
4598typedef PACKED_PRE struct PACKED_POST
4599{
4600 tSirMacAddr selfMacAddr;
4601
4602}tDelStaSelfParams, *tpDelStaSelfParams;
4603
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 tHalMsgHeader header;
4607 tDelStaSelfParams delStaSelfParams;
4608} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4609
4610
4611/*---------------------------------------------------------------------------
4612 WLAN_HAL_DEL_STA_SELF_RSP
4613---------------------------------------------------------------------------*/
4614
4615typedef PACKED_PRE struct PACKED_POST
4616{
4617 /*success or failure */
4618 tANI_U32 status;
4619
4620 tSirMacAddr selfMacAddr;
4621}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4622
4623typedef PACKED_PRE struct PACKED_POST
4624{
4625 tHalMsgHeader header;
4626 tDelStaSelfRspParams delStaSelfRspParams;
4627} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4628
4629
4630#ifdef WLAN_FEATURE_VOWIFI_11R
4631
4632/*---------------------------------------------------------------------------
4633 *WLAN_HAL_AGGR_ADD_TS_REQ
4634 *--------------------------------------------------------------------------*/
4635
4636typedef PACKED_PRE struct PACKED_POST
4637{
4638 /* Station Index */
4639 tANI_U16 staIdx;
4640
4641 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4642 /* This will carry the bitmap with the bit positions representing different AC.s*/
4643 tANI_U16 tspecIdx;
4644
4645 /* Tspec info per AC To program TPE with required parameters */
4646 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4647
4648 /* U-APSD Flags: 1b per AC. Encoded as follows:
4649 b7 b6 b5 b4 b3 b2 b1 b0 =
4650 X X X X BE BK VI VO */
4651 tANI_U8 uAPSD;
4652
4653 /* These parameters are for all the access categories */
4654 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4655 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4656 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4657
4658}tAggrAddTsParams, *tpAggrAddTsParams;
4659
4660
4661typedef PACKED_PRE struct PACKED_POST
4662{
4663 tHalMsgHeader header;
4664 tAggrAddTsParams aggrAddTsParam;
4665}tAggrAddTsReq, *tpAggrAddTsReq;
4666
4667/*---------------------------------------------------------------------------
4668*WLAN_HAL_AGGR_ADD_TS_RSP
4669*--------------------------------------------------------------------------*/
4670
4671typedef PACKED_PRE struct PACKED_POST
4672{
4673 /* success or failure */
4674 tANI_U32 status0;
4675 /* FIXME PRIMA for future use for 11R */
4676 tANI_U32 status1;
4677}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4678
4679typedef PACKED_PRE struct PACKED_POST
4680{
4681 tHalMsgHeader header;
4682 tAggrAddTsRspParams aggrAddTsRspParam;
4683}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4684
4685#endif
4686
4687/*---------------------------------------------------------------------------
4688 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4689 *--------------------------------------------------------------------------*/
4690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tANI_U8 isAppsCpuAwake;
4693} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4694
4695typedef PACKED_PRE struct PACKED_POST
4696{
4697 tHalMsgHeader header;
4698 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4699} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4700
4701/*---------------------------------------------------------------------------
4702 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4703 *--------------------------------------------------------------------------*/
4704typedef PACKED_PRE struct PACKED_POST
4705{
4706 /* success or failure */
4707 tANI_U32 status;
4708} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4709
4710typedef PACKED_PRE struct PACKED_POST
4711{
4712 tHalMsgHeader header;
4713 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4714} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4715/*---------------------------------------------------------------------------
4716 * WLAN_HAL_DUMP_COMMAND_REQ
4717 *--------------------------------------------------------------------------*/
4718
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 tANI_U32 argument1;
4722 tANI_U32 argument2;
4723 tANI_U32 argument3;
4724 tANI_U32 argument4;
4725 tANI_U32 argument5;
4726
4727}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4728
4729typedef PACKED_PRE struct PACKED_POST
4730{
4731 tHalMsgHeader header;
4732 tHalDumpCmdReqParams dumpCmdReqParams;
4733} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4734
4735/*---------------------------------------------------------------------------
4736 * WLAN_HAL_DUMP_COMMAND_RSP
4737 *--------------------------------------------------------------------------*/
4738
4739typedef PACKED_PRE struct PACKED_POST
4740{
4741 /* success or failure */
4742 tANI_U32 status;
4743 /*Length of the responce message*/
4744 tANI_U32 rspLength;
4745 /*FiXME: Currently considering the the responce will be less than 100bytes */
4746 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004747
Jeff Johnson295189b2012-06-20 16:38:30 -07004748} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4749
4750typedef PACKED_PRE struct PACKED_POST
4751{
4752 tHalMsgHeader header;
4753 tHalDumpCmdRspParams dumpCmdRspParams;
4754} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4755
4756/*---------------------------------------------------------------------------
4757 *WLAN_HAL_COEX_IND
4758 *-------------------------------------------------------------------------*/
4759#define WLAN_COEX_IND_DATA_SIZE (4)
4760#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4761#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
4762
4763typedef PACKED_PRE struct PACKED_POST
4764{
4765 /*Coex Indication Type*/
4766 tANI_U32 coexIndType;
4767
4768 /*Coex Indication Data*/
4769 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4770}tCoexIndParams,*tpCoexIndParams;
4771
4772typedef PACKED_PRE struct PACKED_POST
4773{
4774 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004775 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004776}tCoexIndMsg, *tpCoexIndMsg;
4777
4778/*---------------------------------------------------------------------------
4779 *WLAN_HAL_OTA_TX_COMPL_IND
4780 *-------------------------------------------------------------------------*/
4781
4782typedef PACKED_PRE struct PACKED_POST
4783{
4784 /*Tx Complete Indication Success or Failure*/
4785 tANI_U32 status;
4786}tTxComplParams,*tpTxComplParams;
4787
4788typedef PACKED_PRE struct PACKED_POST
4789{
4790 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004791 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004792}tTxComplIndMsg, *tpTxComplIndMsg;
4793
4794/*---------------------------------------------------------------------------
4795 * WLAN_HAL_HOST_SUSPEND_IND
4796 *-------------------------------------------------------------------------*/
4797
4798typedef PACKED_PRE struct PACKED_POST
4799{
4800 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004801 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004802}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4803
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 tHalMsgHeader header;
4807 tHalWlanHostSuspendIndParam suspendIndParams;
4808}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4809
4810/*---------------------------------------------------------------------------
4811 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4812 *-------------------------------------------------------------------------*/
4813
4814typedef PACKED_PRE struct PACKED_POST
4815{
4816 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004817 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004818}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4819
4820typedef PACKED_PRE struct PACKED_POST
4821{
4822 tHalMsgHeader header;
4823 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4824}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4825
4826#ifdef WLAN_FEATURE_P2P
4827/*---------------------------------------------------------------------------
4828 *WLAN_HAL_NOA_ATTR_IND
4829 *-------------------------------------------------------------------------*/
4830
4831typedef PACKED_PRE struct PACKED_POST
4832{
4833 tANI_U8 index ;
4834 tANI_U8 oppPsFlag ;
4835 tANI_U16 ctWin ;
4836
4837 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004838 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004839 tANI_U32 uNoa1Duration;
4840 tANI_U32 uNoa1Interval;
4841 tANI_U32 uNoa1StartTime;
4842
4843 tANI_U16 uNoa2IntervalCnt;
4844 tANI_U16 rsvd2;
4845 tANI_U32 uNoa2Duration;
4846 tANI_U32 uNoa2Interval;
4847 tANI_U32 uNoa2StartTime;
4848
4849 tANI_U32 status;
4850}tNoaAttrIndParams, *tpNoaAttrIndParams;
4851
4852typedef PACKED_PRE struct PACKED_POST
4853{
4854 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004855 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004856}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004857
4858/*---------------------------------------------------------------------------
4859 *WLAN_HAL_NOA_START_IND
4860 *-------------------------------------------------------------------------*/
4861
4862typedef PACKED_PRE struct PACKED_POST
4863{
4864 tANI_U32 status;
4865 tANI_U32 bssIdx;
4866}tNoaStartIndParams, *tpNoaStartIndParams;
4867
4868typedef PACKED_PRE struct PACKED_POST
4869{
4870 tHalMsgHeader header;
4871 tNoaStartIndParams noaStartIndParams;
4872}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004873#endif
4874
4875/*---------------------------------------------------------------------------
4876 * WLAN_HAL_HOST_RESUME_REQ
4877 *-------------------------------------------------------------------------*/
4878
4879typedef PACKED_PRE struct PACKED_POST
4880{
4881 tANI_U8 configuredMcstBcstFilterSetting;
4882}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4883
4884typedef PACKED_PRE struct PACKED_POST
4885{
4886 tHalMsgHeader header;
4887 tHalWlanHostResumeReqParam resumeReqParams;
4888}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4889
4890/*---------------------------------------------------------------------------
4891 * WLAN_HAL_HOST_RESUME_RSP
4892 *--------------------------------------------------------------------------*/
4893typedef PACKED_PRE struct PACKED_POST
4894{
4895 /* success or failure */
4896 tANI_U32 status;
4897} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4898
4899typedef PACKED_PRE struct PACKED_POST
4900{
4901 tHalMsgHeader header;
4902 tHalHostResumeRspParams hostResumeRspParams;
4903} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4904
Anand Kumar012623a2013-01-11 17:00:00 -08004905typedef PACKED_PRE struct PACKED_POST
4906{
4907 tANI_U16 staIdx;
4908 // Peer MAC Address, whose BA session has timed out
4909 tSirMacAddr peerMacAddr;
4910 // TID for which a BA session timeout is being triggered
4911 tANI_U8 baTID;
4912 // DELBA direction
4913 // 1 - Originator
4914 // 0 - Recipient
4915 tANI_U8 baDirection;
4916 tANI_U32 reasonCode;
4917 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4918} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4919
4920typedef PACKED_PRE struct PACKED_POST
4921{
4922 tHalMsgHeader header;
4923 tHalWlanDelBaIndMsg hostdelBaParam;
4924} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4925
Jeff Johnson295189b2012-06-20 16:38:30 -07004926/*---------------------------------------------------------------------------
4927 *PNO Messages
4928 *-------------------------------------------------------------------------*/
4929/*Max number of channels that a network can be found on*/
4930#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 26
4931
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304932/*Max number of channels that a network can be found on*/
4933#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4934
Jeff Johnson295189b2012-06-20 16:38:30 -07004935/*Maximum numbers of networks supported by PNO*/
4936#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4937
4938/*The number of scan time intervals that can be programmed into PNO*/
4939#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4940
4941/*Maximum size of the probe template*/
4942#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4943
Jeff Johnson32d95a32012-09-10 13:15:23 -07004944/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004945 Immediate - scanning will start immediately and PNO procedure will
4946 be repeated based on timer
4947 Suspend - scanning will start at suspend
4948 Resume - scanning will start on system resume*/
4949typedef enum
4950{
4951 ePNO_MODE_IMMEDIATE,
4952 ePNO_MODE_ON_SUSPEND,
4953 ePNO_MODE_ON_RESUME,
4954 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4955} ePNOMode;
4956
4957/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004958typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004959{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004960 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004961 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004962
Jeff Johnson295189b2012-06-20 16:38:30 -07004963 // Upper layer authentication types
4964 eAUTH_TYPE_WPA = 2,
4965 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004966
Jeff Johnson295189b2012-06-20 16:38:30 -07004967 eAUTH_TYPE_RSN = 4,
4968 eAUTH_TYPE_RSN_PSK = 5,
4969 eAUTH_TYPE_FT_RSN = 6,
4970 eAUTH_TYPE_FT_RSN_PSK = 7,
4971 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4972 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004973
Jeff Johnson295189b2012-06-20 16:38:30 -07004974 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4975
4976}tAuthType;
4977
4978/* Encryption type */
4979typedef enum eEdType
4980{
4981 eED_ANY = 0,
4982 eED_NONE = 1,
4983 eED_WEP = 2,
4984 eED_TKIP = 3,
4985 eED_CCMP = 4,
4986 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004987
Jeff Johnson295189b2012-06-20 16:38:30 -07004988 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4989} tEdType;
4990
4991/* SSID broadcast type */
4992typedef enum eSSIDBcastType
4993{
4994 eBCAST_UNKNOWN = 0,
4995 eBCAST_NORMAL = 1,
4996 eBCAST_HIDDEN = 2,
4997
4998 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4999} tSSIDBcastType;
5000
Jeff Johnson32d95a32012-09-10 13:15:23 -07005001/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005002 The network description for which PNO will have to look for
5003*/
5004typedef PACKED_PRE struct PACKED_POST
5005{
5006 /*SSID of the BSS*/
5007 tSirMacSSid ssId;
5008
5009 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005010 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005011
5012 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005013 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005014
Jeff Johnson32d95a32012-09-10 13:15:23 -07005015 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005016 0 - if all channels */
5017 tANI_U8 ucChannelCount;
5018 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5019
5020 /*Indicates the RSSI threshold for the network to be considered*/
5021 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005022}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005023
5024typedef PACKED_PRE struct PACKED_POST
5025{
5026 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005027 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005028
Jeff Johnson32d95a32012-09-10 13:15:23 -07005029 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005030 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005031 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005032
Jeff Johnson32d95a32012-09-10 13:15:23 -07005033 /*e.g: 2 3
5034 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005035 - it will wait 2s between consecutive scans for 3 times
5036 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005037}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005038
Jeff Johnson32d95a32012-09-10 13:15:23 -07005039/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005040 The network parameters to be sent to the PNO algorithm
5041*/
5042typedef PACKED_PRE struct PACKED_POST
5043{
5044 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005045 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005046
Jeff Johnson32d95a32012-09-10 13:15:23 -07005047 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005048 two consecutive scan procedures
5049 If the desired is for a uniform timer that fires always at the exact same
5050 interval - one single value is to be set
5051 If there is a desire for a more complex - telescopic like timer multiple
5052 values can be set - once PNO reaches the end of the array it will
5053 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005054 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005055
5056}tScanTimersType;
5057
5058typedef PACKED_PRE struct PACKED_POST {
5059
5060 /*Enable PNO*/
5061 tANI_U32 enable;
5062
5063 /*Immediate, On Suspend, On Resume*/
5064 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005065
Jeff Johnson295189b2012-06-20 16:38:30 -07005066 /*Number of networks sent for PNO*/
5067 tANI_U32 ucNetworksCount;
5068
5069 /*The networks that PNO needs to look for*/
5070 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5071
5072 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005073 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005074
5075 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005076 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005077 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5078
5079 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005080 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005081 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5082
5083} tPrefNetwListParams, * tpPrefNetwListParams;
5084
5085/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005086 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005087*/
5088typedef PACKED_PRE struct PACKED_POST
5089{
5090 tHalMsgHeader header;
5091 tPrefNetwListParams prefNetwListParams;
5092} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5093
5094
Jeff Johnson32d95a32012-09-10 13:15:23 -07005095/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005096 The network description for which PNO will have to look for
5097*/
5098typedef PACKED_PRE struct PACKED_POST
5099{
5100 /*SSID of the BSS*/
5101 tSirMacSSid ssId;
5102
5103 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005104 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005105
5106 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005107 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005108
5109 /*SSID broadcast type, normal, hidden or unknown*/
5110 tSSIDBcastType bcastNetworkType;
5111
Jeff Johnson32d95a32012-09-10 13:15:23 -07005112 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005113 0 - if all channels */
5114 tANI_U8 ucChannelCount;
5115 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5116
5117 /*Indicates the RSSI threshold for the network to be considered*/
5118 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005119}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005120
5121typedef PACKED_PRE struct PACKED_POST {
5122
5123 /*Enable PNO*/
5124 tANI_U32 enable;
5125
5126 /*Immediate, On Suspend, On Resume*/
5127 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005128
Jeff Johnson295189b2012-06-20 16:38:30 -07005129 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005130 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005131
5132 /*The networks that PNO needs to look for*/
5133 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5134
5135 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005136 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005137
5138 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005139 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005140 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5141
5142 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005143 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005144 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5145
5146} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5147
5148/*
5149 Preferred network list request new
5150*/
5151typedef PACKED_PRE struct PACKED_POST
5152{
5153 tHalMsgHeader header;
5154 tPrefNetwListParamsNew prefNetwListParams;
5155} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5156
5157/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005158 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005159*/
5160typedef PACKED_PRE struct PACKED_POST
5161{
5162 tHalMsgHeader header;
5163
Jeff Johnson32d95a32012-09-10 13:15:23 -07005164 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005165 the request and will start scanning*/
5166 tANI_U32 status;
5167} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5168
5169/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005170 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005171*/
5172typedef PACKED_PRE struct PACKED_POST {
5173
5174 /*Network that was found with the highest RSSI*/
5175 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005176
Jeff Johnson295189b2012-06-20 16:38:30 -07005177 /*Indicates the RSSI */
5178 tANI_U8 rssi;
5179
5180} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5181
5182/*
5183 Preferred network found indication
5184*/
5185typedef PACKED_PRE struct PACKED_POST {
5186
5187 tHalMsgHeader header;
5188 tPrefNetwFoundParams prefNetwFoundParams;
5189} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5190
5191
5192typedef PACKED_PRE struct PACKED_POST {
5193
5194 /*RSSI Threshold*/
5195 tANI_U8 ucRssiThreshold;
5196
5197} tRssiFilterParams, * tpRssiFilterParams;
5198
5199/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005200 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005201*/
5202typedef PACKED_PRE struct PACKED_POST
5203{
5204 tHalMsgHeader header;
5205 tRssiFilterParams prefRSSIFilterParams;
5206} tSetRssiFilterReq, *tpSetRssiFilterReq;
5207
5208/*
5209 Set RSSI filter resp
5210*/
5211typedef PACKED_PRE struct PACKED_POST{
5212 tHalMsgHeader header;
5213 /*status of the request */
5214 tANI_U32 status;
5215} tSetRssiFilterResp, *tpSetRssiFilterResp;
5216/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005217 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005218*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005219typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005220{
5221
5222 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005223 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005224
5225 /*Lets PNO know that host has determined the regulatory domain*/
5226 tANI_U8 b11dResolved;
5227
5228 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005229 tANI_U8 ucChannelCount;
5230 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005231
5232 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005233 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005234
5235 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005236 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005237
5238 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005239 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005240
5241 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005242 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005243
5244 /*Cb State*/
5245 ePhyChanBondState cbState;
5246
5247} tUpdateScanParams, * tpUpdateScanParams;
5248
5249/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305250 Update scan params
5251*/
5252typedef PACKED_PRE struct PACKED_POST
5253{
5254
5255 /*Host setting for 11d*/
5256 tANI_U8 b11dEnabled;
5257
5258 /*Lets PNO know that host has determined the regulatory domain*/
5259 tANI_U8 b11dResolved;
5260
5261 /*Channels on which PNO is allowed to scan*/
5262 tANI_U8 ucChannelCount;
5263 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5264
5265 /*Minimum channel time*/
5266 tANI_U16 usActiveMinChTime;
5267
5268 /*Maximum channel time*/
5269 tANI_U16 usActiveMaxChTime;
5270
5271 /*Minimum channel time*/
5272 tANI_U16 usPassiveMinChTime;
5273
5274 /*Maximum channel time*/
5275 tANI_U16 usPassiveMaxChTime;
5276
5277 /*Cb State*/
5278 ePhyChanBondState cbState;
5279
5280} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5281
5282/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005283 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005284 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005285*/
5286typedef PACKED_PRE struct PACKED_POST{
5287
5288 tHalMsgHeader header;
5289 tUpdateScanParams scanParams;
5290} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5291
5292/*
5293 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005294 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005295*/
5296typedef PACKED_PRE struct PACKED_POST{
5297
5298 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305299 tUpdateScanParamsEx scanParams;
5300} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5301
5302/*
5303 Update scan params - sent from host to PNO
5304 to be used during PNO scanning
5305*/
5306typedef PACKED_PRE struct PACKED_POST{
5307
5308 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005309
5310 /*status of the request */
5311 tANI_U32 status;
5312
5313} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5314
5315/*---------------------------------------------------------------------------
5316 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5317 *--------------------------------------------------------------------------*/
5318typedef PACKED_PRE struct PACKED_POST
5319{
5320 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5321 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5322 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5323 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5324} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5325
5326typedef PACKED_PRE struct PACKED_POST
5327{
5328 tHalMsgHeader header;
5329 tHalTxPerTrackingReqParam txPerTrackingParams;
5330} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5331
5332/*---------------------------------------------------------------------------
5333 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5334 *--------------------------------------------------------------------------*/
5335typedef PACKED_PRE struct PACKED_POST
5336{
5337 /* success or failure */
5338 tANI_U32 status;
5339} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5340
5341typedef PACKED_PRE struct PACKED_POST
5342{
5343 tHalMsgHeader header;
5344 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5345} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5346
5347/*---------------------------------------------------------------------------
5348 * WLAN_HAL_TX_PER_HIT_IND
5349 *--------------------------------------------------------------------------*/
5350typedef PACKED_PRE struct PACKED_POST
5351{
5352 tHalMsgHeader header;
5353}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5354
5355/*---------------------------------------------------------------------------
5356 *******************Packet Filtering Definitions Begin*******************
5357 *--------------------------------------------------------------------------*/
5358#define HAL_PROTOCOL_DATA_LEN 8
5359#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5360#define HAL_MAX_NUM_FILTERS 20
5361#define HAL_MAX_CMP_PER_FILTER 10
5362
5363typedef enum
5364{
5365 HAL_RCV_FILTER_TYPE_INVALID,
5366 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5367 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5368 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5369}tHalReceivePacketFilterType;
5370
Jeff Johnson32d95a32012-09-10 13:15:23 -07005371typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005372{
5373 HAL_FILTER_PROTO_TYPE_INVALID,
5374 HAL_FILTER_PROTO_TYPE_MAC,
5375 HAL_FILTER_PROTO_TYPE_ARP,
5376 HAL_FILTER_PROTO_TYPE_IPV4,
5377 HAL_FILTER_PROTO_TYPE_IPV6,
5378 HAL_FILTER_PROTO_TYPE_UDP,
5379 HAL_FILTER_PROTO_TYPE_MAX
5380}tHalRcvPktFltProtocolType;
5381
Jeff Johnson32d95a32012-09-10 13:15:23 -07005382typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005383{
5384 HAL_FILTER_CMP_TYPE_INVALID,
5385 HAL_FILTER_CMP_TYPE_EQUAL,
5386 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5387 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5388 HAL_FILTER_CMP_TYPE_MAX
5389}tHalRcvPktFltCmpFlagType;
5390
Jeff Johnson32d95a32012-09-10 13:15:23 -07005391typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005392{
5393 tANI_U8 protocolLayer;
5394 tANI_U8 cmpFlag;
5395 tANI_U16 dataLength; /* Length of the data to compare */
5396 tANI_U8 dataOffset; /* from start of the respective frame header */
5397 tANI_U8 reserved; /* Reserved field */
5398 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5399 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5400}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5401
5402typedef PACKED_PRE struct PACKED_POST
5403{
5404 tANI_U8 filterId;
5405 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005406 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005407 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005408 tHalRcvPktFilterParams paramsData[1];
5409}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5410
5411typedef PACKED_PRE struct PACKED_POST
5412{
Jeff Johnsone7245742012-09-05 17:12:55 -07005413 tANI_U8 filterId;
5414 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005415 tANI_U8 numParams;
5416 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005417 tANI_U8 bssIdx;
5418 tHalRcvPktFilterParams paramsData[1];
5419}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5420
5421typedef PACKED_PRE struct PACKED_POST
5422{
Jeff Johnson295189b2012-06-20 16:38:30 -07005423 tHalMsgHeader header;
5424 tHalRcvPktFilterCfgType pktFilterCfg;
5425} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5426
Jeff Johnsone7245742012-09-05 17:12:55 -07005427typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005428{
5429 tANI_U8 dataOffset; /* from start of the respective frame header */
5430 tANI_U32 cMulticastAddr;
5431 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005432 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005433} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5434
5435typedef PACKED_PRE struct PACKED_POST
5436{
5437 /* success or failure */
5438 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005439 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005440} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5441
5442typedef PACKED_PRE struct PACKED_POST
5443{
5444 tHalMsgHeader header;
5445 tHalSetPktFilterRspParams pktFilterRspParams;
5446} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5447
Jeff Johnsone7245742012-09-05 17:12:55 -07005448typedef PACKED_PRE struct PACKED_POST
5449{
5450 tANI_U8 bssIdx;
5451} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005452
5453typedef PACKED_PRE struct PACKED_POST
5454{
5455 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005456 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005457} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5458
Jeff Johnsone7245742012-09-05 17:12:55 -07005459
Jeff Johnson295189b2012-06-20 16:38:30 -07005460typedef PACKED_PRE struct PACKED_POST
5461{
5462 tANI_U8 filterId;
5463 tANI_U32 matchCnt;
5464} tHalRcvFltPktMatchCnt;
5465typedef PACKED_PRE struct PACKED_POST
5466{
5467 /* Success or Failure */
5468 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005469 tANI_U32 matchCnt;
5470 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005471 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005472} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5473
5474typedef PACKED_PRE struct PACKED_POST
5475{
5476 tHalMsgHeader header;
5477 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5478} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5479
5480typedef PACKED_PRE struct PACKED_POST
5481{
5482 tANI_U32 status; /* only valid for response message */
5483 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005484 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005485}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5486
5487typedef PACKED_PRE struct PACKED_POST
5488{
5489 tHalMsgHeader header;
5490 tHalRcvFltPktClearParam filterClearParam;
5491} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5492
5493typedef PACKED_PRE struct PACKED_POST
5494{
5495 tHalMsgHeader header;
5496 tHalRcvFltPktClearParam filterClearParam;
5497} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5498
5499typedef PACKED_PRE struct PACKED_POST
5500{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005501 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005502 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005503}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5504
5505typedef PACKED_PRE struct PACKED_POST
5506{
5507 tHalMsgHeader header;
5508 tHalRcvFltMcAddrListType mcAddrList;
5509} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5510
5511typedef PACKED_PRE struct PACKED_POST
5512{
5513 tHalMsgHeader header;
5514 tHalRcvFltPktSetMcListRspType rspParam;
5515} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5516
5517
5518/*---------------------------------------------------------------------------
5519 *******************Packet Filtering Definitions End*******************
5520 *--------------------------------------------------------------------------*/
5521
5522typedef PACKED_PRE struct PACKED_POST
5523{
5524 /* Ignore DTIM */
5525 tANI_U32 uIgnoreDTIM;
5526
5527 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005528 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005529
5530 /* Listen Interval */
5531 tANI_U32 uListenInterval;
5532
5533 /* Broadcast Multicast Filter */
5534 tANI_U32 uBcastMcastFilter;
5535
5536 /* Beacon Early Termination */
5537 tANI_U32 uEnableBET;
5538
5539 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005540 tANI_U32 uBETInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -07005541}tSetPowerParamsType, *tpSetPowerParamsType;
5542
5543typedef PACKED_PRE struct PACKED_POST
5544{
5545 tHalMsgHeader header;
5546 tSetPowerParamsType powerParams;
5547} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5548
5549typedef PACKED_PRE struct PACKED_POST{
5550
5551 tHalMsgHeader header;
5552
5553 /*status of the request */
5554 tANI_U32 status;
5555
5556} tSetPowerParamsResp, *tpSetPowerParamsResp;
5557
5558/*---------------------------------------------------------------------------
5559 ****************Capability bitmap exchange definitions and macros starts*************
5560 *--------------------------------------------------------------------------*/
5561
Anand Kumar012623a2013-01-11 17:00:00 -08005562typedef enum {
5563 MCC = 0,
5564 P2P = 1,
5565 DOT11AC = 2,
5566 SLM_SESSIONIZATION = 3,
5567 DOT11AC_OPMODE = 4,
5568 SAP32STA = 5,
5569 TDLS = 6,
5570 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5571 WLANACTIVE_OFFLOAD = 8,
5572 BEACON_OFFLOAD = 9,
5573 SCAN_OFFLOAD = 10,
5574 ROAM_OFFLOAD = 11,
5575 BCN_MISS_OFFLOAD = 12,
5576 STA_POWERSAVE = 13,
5577 STA_ADVANCED_PWRSAVE = 14,
5578 AP_UAPSD = 15,
5579 AP_DFS = 16,
5580 BLOCKACK = 17,
5581 PHY_ERR = 18,
5582 BCN_FILTER = 19,
5583 RTT = 20,
5584 RATECTRL = 21,
5585 WOW = 22,
5586 MAX_FEATURE_SUPPORTED = 128,
5587} placeHolderInCapBitmap;
5588
Jeff Johnson295189b2012-06-20 16:38:30 -07005589typedef PACKED_PRE struct PACKED_POST{
5590
5591 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005592} tWlanFeatCaps, *tpWlanFeatCaps;
5593
5594typedef PACKED_PRE struct PACKED_POST{
5595
Jeff Johnson32d95a32012-09-10 13:15:23 -07005596 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005597 tWlanFeatCaps wlanFeatCaps;
5598
5599} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5600
5601
Jeff Johnsone7245742012-09-05 17:12:55 -07005602#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5603#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005604#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Jeff Johnsone7245742012-09-05 17:12:55 -07005605tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5606
Jeff Johnson295189b2012-06-20 16:38:30 -07005607#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005608 if ((b)<=127) { \
5609 arr_index = (b)/32; \
5610 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005611 (a)->featCaps[arr_index] |= (1<<bit_index); \
5612 } \
5613 }
5614#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005615 if ((b)<=127) { \
5616 arr_index = (b)/32; \
5617 bit_index = (b)%32; \
5618 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005619 } \
5620 }
5621#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005622 if ((b)<=127) { \
5623 arr_index = (b)/32; \
5624 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005625 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005626 } \
5627 }
5628
5629/*---------------------------------------------------------------------------
5630 * WLAN_HAL_WAKE_REASON_IND
5631 *--------------------------------------------------------------------------*/
5632
5633/* status codes to help debug rekey failures */
5634typedef enum
5635{
5636 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5637 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5638 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5639 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5640 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5641 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5642 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5643 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5644 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5645 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5646
5647 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5648} tGTKRekeyStatus;
5649
5650/* wake reason types */
5651typedef enum
5652{
5653 WLAN_HAL_WAKE_REASON_NONE = 0,
5654 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5655 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5656 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5657 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5658 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5659 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5660 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5661} tWakeReasonType;
5662
5663/*
5664 Wake Packet which is saved at tWakeReasonParams.DataStart
5665 This data is sent for any wake reasons that involve a packet-based wakeup :
5666
5667 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5668 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5669 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5670 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5671 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5672
5673 The information is provided to the host for auditing and debug purposes
5674
5675*/
5676
5677/*
5678 Wake reason indication parameters
5679*/
5680typedef PACKED_PRE struct PACKED_POST
5681{
5682 uint32 ulReason; /* see tWakeReasonType */
5683 uint32 ulReasonArg; /* argument specific to the reason type */
5684 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5685 HAL truncates the data (i.e. data packets) this length
5686 will be less than the actual length */
5687 uint32 ulActualDataLen; /* actual length of data */
5688 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5689 see specific wake type */
5690} tWakeReasonParams, *tpWakeReasonParams;
5691
5692/*
5693 Wake reason indication
5694*/
5695typedef PACKED_PRE struct PACKED_POST
5696{
5697 tHalMsgHeader header;
5698 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005699 tANI_U32 uBssIdx : 8;
5700 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005701} tHalWakeReasonInd, *tpHalWakeReasonInd;
5702
5703/*---------------------------------------------------------------------------
5704* WLAN_HAL_GTK_OFFLOAD_REQ
5705*--------------------------------------------------------------------------*/
5706
5707#define HAL_GTK_KEK_BYTES 16
5708#define HAL_GTK_KCK_BYTES 16
5709
5710#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5711
5712typedef PACKED_PRE struct PACKED_POST
5713{
5714 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005715 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005716 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5717 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005718 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005719} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5720
5721typedef PACKED_PRE struct PACKED_POST
5722{
5723 tHalMsgHeader header;
5724 tHalGtkOffloadReqParams gtkOffloadReqParams;
5725} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5726
5727/*---------------------------------------------------------------------------
5728* WLAN_HAL_GTK_OFFLOAD_RSP
5729*--------------------------------------------------------------------------*/
5730typedef PACKED_PRE struct PACKED_POST
5731{
5732 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005733 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005734} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5735
5736typedef PACKED_PRE struct PACKED_POST
5737{
5738 tHalMsgHeader header;
5739 tHalGtkOffloadRspParams gtkOffloadRspParams;
5740} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5741
5742
5743/*---------------------------------------------------------------------------
5744* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5745*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005746typedef PACKED_PRE struct PACKED_POST
5747{
5748 tANI_U8 bssIdx;
5749
5750} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005751
5752typedef PACKED_PRE struct PACKED_POST
5753{
5754 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005755 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005756} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5757
5758/*---------------------------------------------------------------------------
5759* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5760*--------------------------------------------------------------------------*/
5761typedef PACKED_PRE struct PACKED_POST
5762{
5763 tANI_U32 ulStatus; /* success or failure */
5764 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5765 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5766 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5767 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5768 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005769 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005770} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5771
5772typedef PACKED_PRE struct PACKED_POST
5773{
5774 tHalMsgHeader header;
5775 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5776} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5777
5778/*
5779 Thermal Mitigation mode of operation.
5780 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5781 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5782 reducing transmit power
5783 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5784*/
5785typedef enum
5786{
5787 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5788 HAL_THERMAL_MITIGATION_MODE_0,
5789 HAL_THERMAL_MITIGATION_MODE_1,
5790 HAL_THERMAL_MITIGATION_MODE_2,
5791 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5792}tHalThermalMitigationModeType;
5793//typedef tANI_S16 tHalThermalMitigationModeType;
5794
5795/*
5796 Thermal Mitigation level.
5797 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5798 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5799
5800 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5801 level indicates normal mode of operation
5802 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5803 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5804 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5805 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5806*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005807typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005808{
5809 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5810 HAL_THERMAL_MITIGATION_LEVEL_0,
5811 HAL_THERMAL_MITIGATION_LEVEL_1,
5812 HAL_THERMAL_MITIGATION_LEVEL_2,
5813 HAL_THERMAL_MITIGATION_LEVEL_3,
5814 HAL_THERMAL_MITIGATION_LEVEL_4,
5815 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5816}tHalThermalMitigationLevelType;
5817//typedef tANI_S16 tHalThermalMitigationLevelType;
5818
5819typedef PACKED_PRE struct PACKED_POST
5820{
5821 /* Thermal Mitigation Operation Mode */
5822 tHalThermalMitigationModeType thermalMitMode;
5823
5824 /* Thermal Mitigation Level */
5825 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005826
Jeff Johnson295189b2012-06-20 16:38:30 -07005827}tSetThermalMitgationType, *tpSetThermalMitgationType;
5828
5829/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5830typedef PACKED_PRE struct PACKED_POST
5831{
5832 tHalMsgHeader header;
5833 tSetThermalMitgationType thermalMitParams;
5834} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5835
5836typedef PACKED_PRE struct PACKED_POST{
5837
5838 tHalMsgHeader header;
5839
5840 /*status of the request */
5841 tANI_U32 status;
5842
5843} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5844
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08005845/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
5846provided to FW from Host via periodic messages */
5847typedef PACKED_PRE struct PACKED_POST {
5848 /* TX stats */
5849 uint32 txBytesPushed;
5850 uint32 txPacketsPushed;
5851
5852 /* RX stats */
5853 uint32 rxBytesRcvd;
5854 uint32 rxPacketsRcvd;
5855 uint32 rxTimeTotal;
5856} tStaStatsClassB, *tpStaStatsClassB;
5857
5858typedef PACKED_PRE struct PACKED_POST {
5859
5860 /* Duration over which this stats was collected */
5861 tANI_U32 duration;
5862
5863 /* Per STA Stats */
5864 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
5865} tStatsClassBIndParams, *tpStatsClassBIndParams;
5866
5867typedef PACKED_PRE struct PACKED_POST {
5868
5869 tHalMsgHeader header;
5870
5871 /* Class B Stats */
5872 tStatsClassBIndParams statsClassBIndParams;
5873} tStatsClassBInd, *tpStatsClassBInd;
5874
Jeff Johnson295189b2012-06-20 16:38:30 -07005875#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
5876#pragma pack(pop)
5877#elif defined(__ANI_COMPILER_PRAGMA_PACK)
5878#else
5879#endif
5880
5881#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07005882