blob: 95e3b0244dc96fba18b0ee5fdd20bf652855ba66 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Anand Kumar012623a2013-01-11 17:00:00 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070021
Jeff Johnson295189b2012-06-20 16:38:30 -070022/*==========================================================================
23 *
24 * @file: wlan_hal_msg.h
25 *
26 * @brief: Exports and types for messages sent to HAL from WDI
27 *
28 * @author: Kumar Anand
29 *
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070030 * Copyright (C) 2010, Qualcomm Technologies, Inc.
Jeff Johnson295189b2012-06-20 16:38:30 -070031 * All rights reserved.
32 *
33 *=========================================================================*/
34
35#ifndef _WLAN_HAL_MSG_H_
36#define _WLAN_HAL_MSG_H_
37
38#include "halLegacyPalTypes.h"
39#include "halCompiler.h"
40#include "wlan_qct_dev_defs.h"
41#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080042
Jeff Johnson295189b2012-06-20 16:38:30 -070043/*---------------------------------------------------------------------------
44 API VERSIONING INFORMATION
45
46 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
47 The MAJOR is incremented for major product/architecture changes
48 (and then MINOR/VERSION/REVISION are zeroed)
49 The MINOR is incremented for minor product/architecture changes
50 (and then VERSION/REVISION are zeroed)
51 The VERSION is incremented if a significant API change occurs
52 (and then REVISION is zeroed)
53 The REVISION is incremented if an insignificant API change occurs
54 or if a new API is added
55 All values are in the range 0..255 (ie they are 8-bit values)
56 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070057#define WLAN_HAL_VER_MAJOR 1
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -080058#define WLAN_HAL_VER_MINOR 4
Jeff Johnson295189b2012-06-20 16:38:30 -070059#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080060#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070061
62/*---------------------------------------------------------------------------
63 Commom Type definitons
64 ---------------------------------------------------------------------------*/
65
66//This is to force compiler to use the maximum of an int ( 4 bytes )
67#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070068#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070069
70//Max no. of transmit categories
71#define STACFG_MAX_TC 8
72
73//The maximum value of access category
74#define WLAN_HAL_MAX_AC 4
75
76typedef tANI_U8 tSirMacAddr[6];
77typedef tANI_U8 tHalIpv4Addr[4];
78
79#define HAL_MAC_ADDR_LEN 6
80#define HAL_IPV4_ADDR_LEN 4
81
82#define WALN_HAL_STA_INVALID_IDX 0xFF
83#define WLAN_HAL_BSS_INVALID_IDX 0xFF
84
85//Default Beacon template size
Jeff Johnson32d95a32012-09-10 13:15:23 -070086#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070087
Jeff Johnson32d95a32012-09-10 13:15:23 -070088//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070089#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
90#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
91#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
92#define PARAM_llACOEXIST_CHANGED (1 << 3)
93#define PARAM_llBCOEXIST_CHANGED (1 << 4)
94#define PARAM_llGCOEXIST_CHANGED (1 << 5)
95#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
96#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
97#define PARAM_RIFS_MODE_CHANGED (1<<8)
98#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
99#define PARAM_OBSS_MODE_CHANGED (1<<10)
100#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
101 PARAM_llGCOEXIST_CHANGED|PARAM_HT20MHZCOEXIST_CHANGED|PARAM_NON_GF_DEVICES_PRESENT_CHANGED|PARAM_RIFS_MODE_CHANGED|PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED| PARAM_OBSS_MODE_CHANGED)
102
103/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530104#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700105
106/*Version string max length (including NUL) */
107#define WLAN_HAL_VERSION_LENGTH 64
108
Jeff Johnson295189b2012-06-20 16:38:30 -0700109/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700110typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700111{
112 //Init/De-Init
113 WLAN_HAL_START_REQ = 0,
114 WLAN_HAL_START_RSP = 1,
115 WLAN_HAL_STOP_REQ = 2,
116 WLAN_HAL_STOP_RSP = 3,
117
118 //Scan
119 WLAN_HAL_INIT_SCAN_REQ = 4,
120 WLAN_HAL_INIT_SCAN_RSP = 5,
121 WLAN_HAL_START_SCAN_REQ = 6,
122 WLAN_HAL_START_SCAN_RSP = 7 ,
123 WLAN_HAL_END_SCAN_REQ = 8,
124 WLAN_HAL_END_SCAN_RSP = 9,
125 WLAN_HAL_FINISH_SCAN_REQ = 10,
126 WLAN_HAL_FINISH_SCAN_RSP = 11,
127
128 // HW STA configuration/deconfiguration
129 WLAN_HAL_CONFIG_STA_REQ = 12,
130 WLAN_HAL_CONFIG_STA_RSP = 13,
131 WLAN_HAL_DELETE_STA_REQ = 14,
132 WLAN_HAL_DELETE_STA_RSP = 15,
133 WLAN_HAL_CONFIG_BSS_REQ = 16,
134 WLAN_HAL_CONFIG_BSS_RSP = 17,
135 WLAN_HAL_DELETE_BSS_REQ = 18,
136 WLAN_HAL_DELETE_BSS_RSP = 19,
137
138 //Infra STA asscoiation
139 WLAN_HAL_JOIN_REQ = 20,
140 WLAN_HAL_JOIN_RSP = 21,
141 WLAN_HAL_POST_ASSOC_REQ = 22,
142 WLAN_HAL_POST_ASSOC_RSP = 23,
143
144 //Security
145 WLAN_HAL_SET_BSSKEY_REQ = 24,
146 WLAN_HAL_SET_BSSKEY_RSP = 25,
147 WLAN_HAL_SET_STAKEY_REQ = 26,
148 WLAN_HAL_SET_STAKEY_RSP = 27,
149 WLAN_HAL_RMV_BSSKEY_REQ = 28,
150 WLAN_HAL_RMV_BSSKEY_RSP = 29,
151 WLAN_HAL_RMV_STAKEY_REQ = 30,
152 WLAN_HAL_RMV_STAKEY_RSP = 31,
153
154 //Qos Related
155 WLAN_HAL_ADD_TS_REQ = 32,
156 WLAN_HAL_ADD_TS_RSP = 33,
157 WLAN_HAL_DEL_TS_REQ = 34,
158 WLAN_HAL_DEL_TS_RSP = 35,
159 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
160 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
161 WLAN_HAL_ADD_BA_REQ = 38,
162 WLAN_HAL_ADD_BA_RSP = 39,
163 WLAN_HAL_DEL_BA_REQ = 40,
164 WLAN_HAL_DEL_BA_RSP = 41,
165
166 WLAN_HAL_CH_SWITCH_REQ = 42,
167 WLAN_HAL_CH_SWITCH_RSP = 43,
168 WLAN_HAL_SET_LINK_ST_REQ = 44,
169 WLAN_HAL_SET_LINK_ST_RSP = 45,
170 WLAN_HAL_GET_STATS_REQ = 46,
171 WLAN_HAL_GET_STATS_RSP = 47,
172 WLAN_HAL_UPDATE_CFG_REQ = 48,
173 WLAN_HAL_UPDATE_CFG_RSP = 49,
174
175 WLAN_HAL_MISSED_BEACON_IND = 50,
176 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
177 WLAN_HAL_MIC_FAILURE_IND = 52,
178 WLAN_HAL_FATAL_ERROR_IND = 53,
179 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700180
Jeff Johnson295189b2012-06-20 16:38:30 -0700181 //NV Interface
182 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
183 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
184
185 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
186 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
187 WLAN_HAL_TRIGGER_BA_REQ = 59,
188 WLAN_HAL_TRIGGER_BA_RSP = 60,
189 WLAN_HAL_UPDATE_BEACON_REQ = 61,
190 WLAN_HAL_UPDATE_BEACON_RSP = 62,
191 WLAN_HAL_SEND_BEACON_REQ = 63,
192 WLAN_HAL_SEND_BEACON_RSP = 64,
193
194 WLAN_HAL_SET_BCASTKEY_REQ = 65,
195 WLAN_HAL_SET_BCASTKEY_RSP = 66,
196 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
197 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
198 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700199
Jeff Johnson295189b2012-06-20 16:38:30 -0700200 // PTT interface support
201 WLAN_HAL_PROCESS_PTT_REQ = 70,
202 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700203
Jeff Johnson295189b2012-06-20 16:38:30 -0700204 // BTAMP related events
205 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
206 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
207 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
208 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
209
210 WLAN_HAL_ENTER_IMPS_REQ = 76,
211 WLAN_HAL_EXIT_IMPS_REQ = 77,
212 WLAN_HAL_ENTER_BMPS_REQ = 78,
213 WLAN_HAL_EXIT_BMPS_REQ = 79,
214 WLAN_HAL_ENTER_UAPSD_REQ = 80,
215 WLAN_HAL_EXIT_UAPSD_REQ = 81,
216 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
217 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
218 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
219 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
220 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
221 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
222 WLAN_HAL_ENTER_WOWL_REQ = 88,
223 WLAN_HAL_EXIT_WOWL_REQ = 89,
224 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
225 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
226 WLAN_HAL_GET_RSSI_REQ = 92,
227 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
228 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
229
230 WLAN_HAL_ENTER_IMPS_RSP = 95,
231 WLAN_HAL_EXIT_IMPS_RSP = 96,
232 WLAN_HAL_ENTER_BMPS_RSP = 97,
233 WLAN_HAL_EXIT_BMPS_RSP = 98,
234 WLAN_HAL_ENTER_UAPSD_RSP = 99,
235 WLAN_HAL_EXIT_UAPSD_RSP = 100,
236 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
237 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
238 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
239 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
240 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
241 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
242 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
243 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
244 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
245 WLAN_HAL_ENTER_WOWL_RSP = 110,
246 WLAN_HAL_EXIT_WOWL_RSP = 111,
247 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
248 WLAN_HAL_GET_RSSI_RSP = 113,
249 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
250
251 //11k related events
252 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
253 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
254
255 //11R related msgs
256 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
257 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
258
259 //P2P WLAN_FEATURE_P2P
260 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
261 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700262
Jeff Johnson295189b2012-06-20 16:38:30 -0700263 //WLAN Dump commands
264 WLAN_HAL_DUMP_COMMAND_REQ = 121,
265 WLAN_HAL_DUMP_COMMAND_RSP = 122,
266
Jeff Johnsone7245742012-09-05 17:12:55 -0700267 //OEM_DATA FEATURE SUPPORT
268 WLAN_HAL_START_OEM_DATA_REQ = 123,
269 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700270
271 //ADD SELF STA REQ and RSP
272 WLAN_HAL_ADD_STA_SELF_REQ = 125,
273 WLAN_HAL_ADD_STA_SELF_RSP = 126,
274
275 //DEL SELF STA SUPPORT
276 WLAN_HAL_DEL_STA_SELF_REQ = 127,
277 WLAN_HAL_DEL_STA_SELF_RSP = 128,
278
279 // Coex Indication
280 WLAN_HAL_COEX_IND = 129,
281
Jeff Johnson32d95a32012-09-10 13:15:23 -0700282 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700283 WLAN_HAL_OTA_TX_COMPL_IND = 130,
284
285 //Host Suspend/resume messages
286 WLAN_HAL_HOST_SUSPEND_IND = 131,
287 WLAN_HAL_HOST_RESUME_REQ = 132,
288 WLAN_HAL_HOST_RESUME_RSP = 133,
289
290 WLAN_HAL_SET_TX_POWER_REQ = 134,
291 WLAN_HAL_SET_TX_POWER_RSP = 135,
292 WLAN_HAL_GET_TX_POWER_REQ = 136,
293 WLAN_HAL_GET_TX_POWER_RSP = 137,
294
295 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700296
Jeff Johnson295189b2012-06-20 16:38:30 -0700297 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
298 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
299 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
300 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
301 WLAN_HAL_RADAR_DETECT_IND = 143,
302 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
303 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700304 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700305
306 /*PNO messages*/
307 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
308 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
309 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
310 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
311 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
312 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700313 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700314
315 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
316 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
317 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700318
Jeff Johnson295189b2012-06-20 16:38:30 -0700319 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700320 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700321
322 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700323 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700324 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700325 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700326 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700327 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
328 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700329 * Host and Riva code is in sync*/
330 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700331
Jeff Johnson295189b2012-06-20 16:38:30 -0700332 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
333 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
334
335 WLAN_HAL_TSM_STATS_REQ = 168,
336 WLAN_HAL_TSM_STATS_RSP = 169,
337
338 // wake reason indication (WOW)
339 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700340 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700341 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
342 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
343 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
344 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
345
346 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
347 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
348 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
349
350 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
351 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
352
Anand Kumar012623a2013-01-11 17:00:00 -0800353 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
354 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800355
Anand Kumar012623a2013-01-11 17:00:00 -0800356 WLAN_HAL_P2P_NOA_START_IND = 184,
357
358 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
359 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700360
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800361 WLAN_HAL_CLASS_B_STATS_IND = 187,
362 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800363 WLAN_HAL_DHCP_START_IND = 189,
364 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -0700365 WLAN_START_ROAM_CANDIDATE_LOOKUP_REQ = 191,
366 WLAN_START_ROAM_CANDIDATE_LOOKUP_RSP = 192,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800367
368 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700369}tHalHostMsgType;
370
Jeff Johnsone7245742012-09-05 17:12:55 -0700371/* Enumeration for Version */
372typedef enum
373{
374 WLAN_HAL_MSG_VERSION0 = 0,
375 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800376 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
377 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700378}tHalHostMsgVersion;
379
Jeff Johnson295189b2012-06-20 16:38:30 -0700380/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700381typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700382{
383 eANI_BOOLEAN_FALSE = 0,
384 eANI_BOOLEAN_TRUE,
385 eANI_BOOLEAN_OFF = 0,
386 eANI_BOOLEAN_ON = 1,
387 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
388} eAniBoolean;
389
390typedef enum
391{
392 eDRIVER_TYPE_PRODUCTION = 0,
393 eDRIVER_TYPE_MFG = 1,
394 eDRIVER_TYPE_DVT = 2,
395 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
396} tDriverType;
397
398typedef enum
399{
400 HAL_STOP_TYPE_SYS_RESET,
401 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
402 HAL_STOP_TYPE_RF_KILL,
403 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
404}tHalStopType;
405
406typedef enum
407{
408 eHAL_SYS_MODE_NORMAL,
409 eHAL_SYS_MODE_LEARN,
410 eHAL_SYS_MODE_SCAN,
411 eHAL_SYS_MODE_PROMISC,
412 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700413 eHAL_SYS_MODE_ROAM_SCAN,
414 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700415 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
416} eHalSysMode;
417
418typedef enum
419{
420 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
421 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
422 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
423 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700424#ifdef WLAN_FEATURE_11AC
425 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
426 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
427 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
428 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
429 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
430 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
431 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
432#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700433 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
434}ePhyChanBondState;
435
436// Spatial Multiplexing(SM) Power Save mode
437typedef enum eSirMacHTMIMOPowerSaveState
438{
439 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
440 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
441 eSIR_HT_MIMO_PS_NA = 2, // reserved
442 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
443 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
444} tSirMacHTMIMOPowerSaveState;
445
446/* each station added has a rate mode which specifies the sta attributes */
447typedef enum eStaRateMode {
448 eSTA_TAURUS = 0,
449 eSTA_TITAN,
450 eSTA_POLARIS,
451 eSTA_11b,
452 eSTA_11bg,
453 eSTA_11a,
454 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700455#ifdef WLAN_FEATURE_11AC
456 eSTA_11ac,
457#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700458 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
459} tStaRateMode, *tpStaRateMode;
460
461#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
462#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
463#define SIR_NUM_POLARIS_RATES 3 //72,96,108
464
465#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
466
467
468typedef enum eSirBssType
469{
470 eSIR_INFRASTRUCTURE_MODE,
471 eSIR_INFRA_AP_MODE, //Added for softAP support
472 eSIR_IBSS_MODE,
473 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
474 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
475 eSIR_AUTO_MODE,
476 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
477} tSirBssType;
478
479typedef enum eSirNwType
480{
481 eSIR_11A_NW_TYPE,
482 eSIR_11B_NW_TYPE,
483 eSIR_11G_NW_TYPE,
484 eSIR_11N_NW_TYPE,
485 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
486} tSirNwType;
487
488typedef tANI_U16 tSirMacBeaconInterval;
489
490#define SIR_MAC_RATESET_EID_MAX 12
491
492typedef enum eSirMacHTOperatingMode
493{
494 eSIR_HT_OP_MODE_PURE, // No Protection
495 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
496 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
497 eSIR_HT_OP_MODE_MIXED, // Protection is required
498 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
499} tSirMacHTOperatingMode;
500
Jeff Johnson295189b2012-06-20 16:38:30 -0700501/// Encryption type enum used with peer
502typedef enum eAniEdType
503{
504 eSIR_ED_NONE,
505 eSIR_ED_WEP40,
506 eSIR_ED_WEP104,
507 eSIR_ED_TKIP,
508 eSIR_ED_CCMP,
509 eSIR_ED_WPI,
510 eSIR_ED_AES_128_CMAC,
511 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
512} tAniEdType;
513
514#define WLAN_MAX_KEY_RSC_LEN 16
515#define WLAN_WAPI_KEY_RSC_LEN 16
516
517/// MAX key length when ULA is used
518#define SIR_MAC_MAX_KEY_LENGTH 32
519#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
520
521/// Enum to specify whether key is used
522/// for TX only, RX only or both
523typedef enum eAniKeyDirection
524{
525 eSIR_TX_ONLY,
526 eSIR_RX_ONLY,
527 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700528 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700529 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
530} tAniKeyDirection;
531
532typedef enum eAniWepType
533{
534 eSIR_WEP_STATIC,
535 eSIR_WEP_DYNAMIC,
536 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
537} tAniWepType;
538
539typedef enum eSriLinkState {
540
541 eSIR_LINK_IDLE_STATE = 0,
542 eSIR_LINK_PREASSOC_STATE = 1,
543 eSIR_LINK_POSTASSOC_STATE = 2,
544 eSIR_LINK_AP_STATE = 3,
545 eSIR_LINK_IBSS_STATE = 4,
546
547 /* BT-AMP Case */
548 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
549 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
550 eSIR_LINK_BTAMP_AP_STATE = 7,
551 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700552
Jeff Johnson295189b2012-06-20 16:38:30 -0700553 /* Reserved for HAL Internal Use */
554 eSIR_LINK_LEARN_STATE = 9,
555 eSIR_LINK_SCAN_STATE = 10,
556 eSIR_LINK_FINISH_SCAN_STATE = 11,
557 eSIR_LINK_INIT_CAL_STATE = 12,
558 eSIR_LINK_FINISH_CAL_STATE = 13,
559#ifdef WLAN_FEATURE_P2P
560 eSIR_LINK_LISTEN_STATE = 14,
561#endif
562 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
563} tSirLinkState;
564
565typedef enum
566{
567 HAL_SUMMARY_STATS_INFO = 0x00000001,
568 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
569 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
570 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
571 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
572 HAL_PER_STA_STATS_INFO = 0x00000020
573}eHalStatsMask;
574
575/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700576typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700577{
578 BTAMP_EVENT_CONNECTION_START,
579 BTAMP_EVENT_CONNECTION_STOP,
580 BTAMP_EVENT_CONNECTION_TERMINATED,
581 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
582} tBtAmpEventType;
583
584//***************************************************************
585
586
587/*******************PE Statistics*************************/
588typedef enum
589{
590 PE_SUMMARY_STATS_INFO = 0x00000001,
591 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
592 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
593 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
594 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
595 PE_PER_STA_STATS_INFO = 0x00000020,
596 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
597}ePEStatsMask;
598
599/*---------------------------------------------------------------------------
600 Message definitons - All the messages below need to be packed
601 ---------------------------------------------------------------------------*/
602
603#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
604#pragma pack(push, 1)
605#elif defined(__ANI_COMPILER_PRAGMA_PACK)
606#pragma pack(1)
607#else
608#endif
609
610/// Definition for HAL API Version.
611typedef PACKED_PRE struct PACKED_POST
612{
613 tANI_U8 revision;
614 tANI_U8 version;
615 tANI_U8 minor;
616 tANI_U8 major;
617} tWcnssWlanVersion, *tpWcnssWlanVersion;
618
619/// Definition for Encryption Keys
620typedef PACKED_PRE struct PACKED_POST
621{
622 tANI_U8 keyId;
623 tANI_U8 unicast; // 0 for multicast
624 tAniKeyDirection keyDirection;
625 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
626 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
627 tANI_U16 keyLength;
628 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
629} tSirKeys, *tpSirKeys;
630
631
632//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
633typedef PACKED_PRE struct PACKED_POST
634{
635 /*STA Index*/
636 tANI_U16 staIdx;
637
638 /*Encryption Type used with peer*/
639 tAniEdType encType;
640
641 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700642 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700643
644 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
645 tANI_U8 defWEPIdx;
646
Jeff Johnson295189b2012-06-20 16:38:30 -0700647 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700648 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
649
Jeff Johnson295189b2012-06-20 16:38:30 -0700650 /*Control for Replay Count, 1= Single TID based replay count on Tx
651 0 = Per TID based replay count on TX */
652 tANI_U8 singleTidRc;
653
654} tSetStaKeyParams, *tpSetStaKeyParams;
655
656
657
658/* 4-byte control message header used by HAL*/
659typedef PACKED_PRE struct PACKED_POST
660{
Jeff Johnsone7245742012-09-05 17:12:55 -0700661 tHalHostMsgType msgType:16;
662 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700663 tANI_U32 msgLen;
664} tHalMsgHeader, *tpHalMsgHeader;
665
666/* Config format required by HAL for each CFG item*/
667typedef PACKED_PRE struct PACKED_POST
668{
669 /* Cfg Id. The Id required by HAL is exported by HAL
670 * in shared header file between UMAC and HAL.*/
671 tANI_U16 uCfgId;
672
Jeff Johnson32d95a32012-09-10 13:15:23 -0700673 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700674 * in the TLV format.*/
675 tANI_U16 uCfgLen;
676
677 /* Padding bytes for unaligned address's */
678 tANI_U16 uCfgPadBytes;
679
680 /* Reserve bytes for making cfgVal to align address */
681 tANI_U16 uCfgReserve;
682
683 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
684 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
685} tHalCfg, *tpHalCfg;
686
687/*---------------------------------------------------------------------------
688 WLAN_HAL_START_REQ
689---------------------------------------------------------------------------*/
690
691typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
692{
693 /* Drive Type - Production or FTM etc */
694 tDriverType driverType;
695
696 /*Length of the config buffer*/
697 tANI_U32 uConfigBufferLen;
698
Jeff Johnson32d95a32012-09-10 13:15:23 -0700699 /* Following this there is a TLV formatted buffer of length
700 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700701 * The TLV is expected to be formatted like this:
702 * 0 15 31 31+CFG_LEN-1 length-1
703 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
704 */
705} tHalMacStartParameters, *tpHalMacStartParameters;
706
707typedef PACKED_PRE struct PACKED_POST
708{
709 /* Note: The length specified in tHalMacStartReqMsg messages should be
710 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
711 tHalMsgHeader header;
712 tHalMacStartParameters startReqParams;
713} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
714
715/*---------------------------------------------------------------------------
716 WLAN_HAL_START_RSP
717---------------------------------------------------------------------------*/
718
719typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
720{
721 /*success or failure */
722 tANI_U16 status;
723
724 /*Max number of STA supported by the device*/
725 tANI_U8 ucMaxStations;
726
727 /*Max number of BSS supported by the device*/
728 tANI_U8 ucMaxBssids;
729
730 /*API Version */
731 tWcnssWlanVersion wcnssWlanVersion;
732
733 /*CRM build information */
734 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
735
736 /*hardware/chipset/misc version information */
737 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
738
739} tHalMacStartRspParams, *tpHalMacStartRspParams;
740
741typedef PACKED_PRE struct PACKED_POST
742{
743 tHalMsgHeader header;
744 tHalMacStartRspParams startRspParams;
745} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
746
747/*---------------------------------------------------------------------------
748 WLAN_HAL_STOP_REQ
749---------------------------------------------------------------------------*/
750
751typedef PACKED_PRE struct PACKED_POST
752{
753 /*The reason for which the device is being stopped*/
754 tHalStopType reason;
755
756}tHalMacStopReqParams, *tpHalMacStopReqParams;
757
758typedef PACKED_PRE struct PACKED_POST
759{
760 tHalMsgHeader header;
761 tHalMacStopReqParams stopReqParams;
762} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
763
764/*---------------------------------------------------------------------------
765 WLAN_HAL_STOP_RSP
766---------------------------------------------------------------------------*/
767
768typedef PACKED_PRE struct PACKED_POST
769{
770 /*success or failure */
771 tANI_U32 status;
772
773}tHalMacStopRspParams, *tpHalMacStopRspParams;
774
775typedef PACKED_PRE struct PACKED_POST
776{
777 tHalMsgHeader header;
778 tHalMacStopRspParams stopRspParams;
779} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
780
781/*---------------------------------------------------------------------------
782 WLAN_HAL_UPDATE_CFG_REQ
783---------------------------------------------------------------------------*/
784
785typedef PACKED_PRE struct PACKED_POST
786{
787 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
788 tANI_U32 uConfigBufferLen;
789
Jeff Johnson32d95a32012-09-10 13:15:23 -0700790 /* Following this there is a TLV formatted buffer of length
791 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700792 * The TLV is expected to be formatted like this:
793 * 0 15 31 31+CFG_LEN-1 length-1
794 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
795 */
796} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
797
798typedef PACKED_PRE struct PACKED_POST
799{
800 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
801 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
802 tHalMsgHeader header;
803 tHalUpdateCfgReqParams updateCfgReqParams;
804} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
805
806/*---------------------------------------------------------------------------
807 WLAN_HAL_UPDATE_CFG_RSP
808---------------------------------------------------------------------------*/
809
810typedef PACKED_PRE struct PACKED_POST
811{
812 /* success or failure */
813 tANI_U32 status;
814
815}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
816
817typedef PACKED_PRE struct PACKED_POST
818{
819 tHalMsgHeader header;
820 tHalUpdateCfgRspParams updateCfgRspParams;
821} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
822
823/*---------------------------------------------------------------------------
824 WLAN_HAL_INIT_SCAN_REQ
825---------------------------------------------------------------------------*/
826
827/// Frame control field format (2 bytes)
828typedef __ani_attr_pre_packed struct sSirMacFrameCtl
829{
830
831#ifndef ANI_LITTLE_BIT_ENDIAN
832
833 tANI_U8 subType :4;
834 tANI_U8 type :2;
835 tANI_U8 protVer :2;
836
837 tANI_U8 order :1;
838 tANI_U8 wep :1;
839 tANI_U8 moreData :1;
840 tANI_U8 powerMgmt :1;
841 tANI_U8 retry :1;
842 tANI_U8 moreFrag :1;
843 tANI_U8 fromDS :1;
844 tANI_U8 toDS :1;
845
846#else
847
848 tANI_U8 protVer :2;
849 tANI_U8 type :2;
850 tANI_U8 subType :4;
851
852 tANI_U8 toDS :1;
853 tANI_U8 fromDS :1;
854 tANI_U8 moreFrag :1;
855 tANI_U8 retry :1;
856 tANI_U8 powerMgmt :1;
857 tANI_U8 moreData :1;
858 tANI_U8 wep :1;
859 tANI_U8 order :1;
860
861#endif
862
863} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
864
865/// Sequence control field
866typedef __ani_attr_pre_packed struct sSirMacSeqCtl
867{
868 tANI_U8 fragNum : 4;
869 tANI_U8 seqNumLo : 4;
870 tANI_U8 seqNumHi : 8;
871} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
872
873/// Management header format
874typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
875{
876 tSirMacFrameCtl fc;
877 tANI_U8 durationLo;
878 tANI_U8 durationHi;
879 tANI_U8 da[6];
880 tANI_U8 sa[6];
881 tANI_U8 bssId[6];
882 tSirMacSeqCtl seqControl;
883} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
884
885/// Scan Entry to hold active BSS idx's
886typedef __ani_attr_pre_packed struct sSirScanEntry
887{
888 tANI_U8 bssIdx[HAL_NUM_BSSID];
889 tANI_U8 activeBSScnt;
890}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
891
892typedef PACKED_PRE struct PACKED_POST {
893
894 /*LEARN - AP Role
895 SCAN - STA Role*/
896 eHalSysMode scanMode;
897
898 /*BSSID of the BSS*/
899 tSirMacAddr bssid;
900
901 /*Whether BSS needs to be notified*/
902 tANI_U8 notifyBss;
903
904 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
905 CTS to Self). Must always be a valid frame type.*/
906 tANI_U8 frameType;
907
908 /*UMAC has the option of passing the MAC frame to be used for notifying
909 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
910 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
911 frameType.*/
912 tANI_U8 frameLength;
913
Jeff Johnson32d95a32012-09-10 13:15:23 -0700914 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700915 is non-zero. */
916 tSirMacMgmtHdr macMgmtHdr;
917
918 /*Entry to hold number of active BSS idx's*/
919 tSirScanEntry scanEntry;
920
921} tInitScanParams, * tpInitScanParams;
922
923typedef PACKED_PRE struct PACKED_POST
924{
925 tHalMsgHeader header;
926 tInitScanParams initScanParams;
927} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
928
929typedef PACKED_PRE struct PACKED_POST {
930
931 /*LEARN - AP Role
932 SCAN - STA Role*/
933 eHalSysMode scanMode;
934
935 /*BSSID of the BSS*/
936 tSirMacAddr bssid;
937
938 /*Whether BSS needs to be notified*/
939 tANI_U8 notifyBss;
940
941 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
942 CTS to Self). Must always be a valid frame type.*/
943 tANI_U8 frameType;
944
945 /*UMAC has the option of passing the MAC frame to be used for notifying
946 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
947 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
948 frameType.*/
949 tANI_U8 frameLength;
950
Jeff Johnson32d95a32012-09-10 13:15:23 -0700951 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700952 is non-zero. */
953 tSirMacMgmtHdr macMgmtHdr;
954
955 /*Entry to hold number of active BSS idx's*/
956 tSirScanEntry scanEntry;
957
958 /* Single NoA usage in Scanning */
959 tANI_U8 useNoA;
960
961 /* Indicates the scan duration (in ms) */
962 tANI_U16 scanDuration;
963
964} tInitScanConParams, * tpInitScanConParams;
965
966typedef PACKED_PRE struct PACKED_POST
967{
968 tHalMsgHeader header;
969 tInitScanConParams initScanParams;
970} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
971
972
973/*---------------------------------------------------------------------------
974 WLAN_HAL_INIT_SCAN_RSP
975---------------------------------------------------------------------------*/
976
977typedef PACKED_PRE struct PACKED_POST
978{
979 /*success or failure */
980 tANI_U32 status;
981
982}tHalInitScanRspParams, *tpHalInitScanRspParams;
983
984typedef PACKED_PRE struct PACKED_POST
985{
986 tHalMsgHeader header;
987 tHalInitScanRspParams initScanRspParams;
988} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
989
990/*---------------------------------------------------------------------------
991 WLAN_HAL_START_SCAN_REQ
992---------------------------------------------------------------------------*/
993
Jeff Johnson32d95a32012-09-10 13:15:23 -0700994typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -0700995{
996 /*Indicates the channel to scan*/
997 tANI_U8 scanChannel;
998
999 } tStartScanParams, * tpStartScanParams;
1000
1001typedef PACKED_PRE struct PACKED_POST
1002{
1003 tHalMsgHeader header;
1004 tStartScanParams startScanParams;
1005} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1006
1007/*---------------------------------------------------------------------------
1008 WLAN_HAL_START_SCAN_RSP
1009---------------------------------------------------------------------------*/
1010
1011typedef PACKED_PRE struct PACKED_POST
1012{
1013 /*success or failure */
1014 tANI_U32 status;
1015
1016 tANI_U32 startTSF[2];
1017 tPowerdBm txMgmtPower;
1018
1019}tHalStartScanRspParams, *tpHalStartScanRspParams;
1020
1021typedef PACKED_PRE struct PACKED_POST
1022{
1023 tHalMsgHeader header;
1024 tHalStartScanRspParams startScanRspParams;
1025} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1026
1027/*---------------------------------------------------------------------------
1028 WLAN_HAL_END_SCAN_REQ
1029---------------------------------------------------------------------------*/
1030
1031typedef PACKED_PRE struct PACKED_POST
1032{
1033 /*Indicates the channel to stop scanning. Not used really. But retained
1034 for symmetry with "start Scan" message. It can also help in error
1035 check if needed.*/
1036 tANI_U8 scanChannel;
1037
1038} tEndScanParams, *tpEndScanParams;
1039
1040typedef PACKED_PRE struct PACKED_POST
1041{
1042 tHalMsgHeader header;
1043 tEndScanParams endScanParams;
1044} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1045
1046/*---------------------------------------------------------------------------
1047 WLAN_HAL_END_SCAN_RSP
1048---------------------------------------------------------------------------*/
1049
1050typedef PACKED_PRE struct PACKED_POST
1051{
1052 /*success or failure */
1053 tANI_U32 status;
1054
1055}tHalEndScanRspParams, *tpHalEndScanRspParams;
1056
1057typedef PACKED_PRE struct PACKED_POST
1058{
1059 tHalMsgHeader header;
1060 tHalEndScanRspParams endScanRspParams;
1061} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1062
1063/*---------------------------------------------------------------------------
1064 WLAN_HAL_FINISH_SCAN_REQ
1065---------------------------------------------------------------------------*/
1066
1067typedef PACKED_PRE struct PACKED_POST
1068{
1069 /* Identifies the operational state of the AP/STA
1070 * LEARN - AP Role SCAN - STA Role */
1071 eHalSysMode scanMode;
1072
1073 /*Operating channel to tune to.*/
1074 tANI_U8 currentOperChannel;
1075
1076 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1077 40 MHz extension channel in combination with the control channel*/
1078 ePhyChanBondState cbState;
1079
1080 /*BSSID of the BSS*/
1081 tSirMacAddr bssid;
1082
1083 /*Whether BSS needs to be notified*/
1084 tANI_U8 notifyBss;
1085
1086 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1087 CTS to Self). Must always be a valid frame type.*/
1088 tANI_U8 frameType;
1089
1090 /*UMAC has the option of passing the MAC frame to be used for notifying
1091 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1092 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1093 frameType.*/
1094 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001095
1096 /*Following the framelength there is a MAC frame buffer if frameLength
1097 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001098 tSirMacMgmtHdr macMgmtHdr;
1099
1100 /*Entry to hold number of active BSS idx's*/
1101 tSirScanEntry scanEntry;
1102
1103} tFinishScanParams, *tpFinishScanParams;
1104
1105typedef PACKED_PRE struct PACKED_POST
1106{
1107 tHalMsgHeader header;
1108 tFinishScanParams finishScanParams;
1109} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1110
1111/*---------------------------------------------------------------------------
1112 WLAN_HAL_FINISH_SCAN_RSP
1113---------------------------------------------------------------------------*/
1114
1115typedef PACKED_PRE struct PACKED_POST
1116{
1117 /*success or failure */
1118 tANI_U32 status;
1119
1120}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1121
1122typedef PACKED_PRE struct PACKED_POST
1123{
1124 tHalMsgHeader header;
1125 tHalFinishScanRspParams finishScanRspParams;
1126} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1127
1128/*---------------------------------------------------------------------------
1129 WLAN_HAL_CONFIG_STA_REQ
1130---------------------------------------------------------------------------*/
1131
1132typedef PACKED_PRE struct PACKED_POST {
1133 /*
1134 * For Self STA Entry: this represents Self Mode.
1135 * For Peer Stations, this represents the mode of the peer.
1136 * On Station:
1137 * --this mode is updated when PE adds the Self Entry.
1138 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1139 * ON AP:
1140 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1141 * to indicate the self mode of the AP.
1142 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1143 */
1144
1145 tStaRateMode opRateMode;
1146 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1147 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1148 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1149 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1150 tANI_U16 reserved;
1151
1152 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1153 //First 26 bits are reserved for those Titan rates and
1154 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1155 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1156
1157 /*
1158 * 0-76 bits used, remaining reserved
1159 * bits 0-15 and 32 should be set.
1160 */
1161 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1162
1163 /*
1164 * RX Highest Supported Data Rate defines the highest data
1165 * rate that the STA is able to receive, in unites of 1Mbps.
1166 * This value is derived from "Supported MCS Set field" inside
1167 * the HT capability element.
1168 */
1169 tANI_U16 rxHighestDataRate;
1170
1171} tSirSupportedRates, *tpSirSupportedRates;
1172
1173typedef PACKED_PRE struct PACKED_POST
1174{
1175 /*BSSID of STA*/
1176 tSirMacAddr bssId;
1177
1178 /*ASSOC ID, as assigned by UMAC*/
1179 tANI_U16 assocId;
1180
1181 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1182 tANI_U8 staType;
1183
1184 /*Short Preamble Supported.*/
1185 tANI_U8 shortPreambleSupported;
1186
1187 /*MAC Address of STA*/
1188 tSirMacAddr staMac;
1189
1190 /*Listen interval of the STA*/
1191 tANI_U16 listenInterval;
1192
1193 /*Support for 11e/WMM*/
1194 tANI_U8 wmmEnabled;
1195
1196 /*11n HT capable STA*/
1197 tANI_U8 htCapable;
1198
1199 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1200 tANI_U8 txChannelWidthSet;
1201
1202 /*RIFS mode 0 - NA, 1 - Allowed */
1203 tANI_U8 rifsMode;
1204
Jeff Johnson32d95a32012-09-10 13:15:23 -07001205 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001206 0 - No Support, 1 - Supported
1207 SG - there is global field */
1208 tANI_U8 lsigTxopProtection;
1209
1210 /*Max Ampdu Size supported by STA. TPE programming.
1211 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1212 tANI_U8 maxAmpduSize;
1213
1214 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1215 tANI_U8 maxAmpduDensity;
1216
1217 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1218 tANI_U8 maxAmsduSize;
1219
1220 /*Short GI support for 40Mhz packets*/
1221 tANI_U8 fShortGI40Mhz;
1222
1223 /*Short GI support for 20Mhz packets*/
1224 tANI_U8 fShortGI20Mhz;
1225
Jeff Johnson295189b2012-06-20 16:38:30 -07001226 /*Robust Management Frame (RMF) enabled/disabled*/
1227 tANI_U8 rmfEnabled;
1228
1229 /* The unicast encryption type in the association */
1230 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001231
1232 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001233 will set this flag in case of RE-ASSOC, where we want to reuse the old
1234 STA ID. 0 = Add, 1 = Update*/
1235 tANI_U8 action;
1236
1237 /*U-APSD Flags: 1b per AC. Encoded as follows:
1238 b7 b6 b5 b4 b3 b2 b1 b0 =
1239 X X X X BE BK VI VO */
1240 tANI_U8 uAPSD;
1241
1242 /*Max SP Length*/
1243 tANI_U8 maxSPLen;
1244
1245 /*11n Green Field preamble support
1246 0 - Not supported, 1 - Supported */
1247 tANI_U8 greenFieldCapable;
1248
1249 /*MIMO Power Save mode*/
1250 tSirMacHTMIMOPowerSaveState mimoPS;
1251
1252 /*Delayed BA Support*/
1253 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001254
Jeff Johnson295189b2012-06-20 16:38:30 -07001255 /*Max AMPDU duration in 32us*/
1256 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001257
Jeff Johnson295189b2012-06-20 16:38:30 -07001258 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1259 it to 0 if AP does not support it. This indication is sent to HAL and
1260 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1261 tANI_U8 fDsssCckMode40Mhz;
1262
1263 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1264 Retained for backward compalibity with existing HAL code*/
1265 tANI_U8 staIdx;
1266
1267 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1268 Retained for backward compalibity with existing HAL code*/
1269 tANI_U8 bssIdx;
1270
1271 tANI_U8 p2pCapableSta;
1272
Jeff Johnsone7245742012-09-05 17:12:55 -07001273 /*Reserved to align next field on a dword boundary*/
1274 tANI_U8 reserved;
1275
1276 /*These rates are the intersection of peer and self capabilities.*/
1277 tSirSupportedRates supportedRates;
1278
Jeff Johnson295189b2012-06-20 16:38:30 -07001279} tConfigStaParams, *tpConfigStaParams;
1280
Jeff Johnsone7245742012-09-05 17:12:55 -07001281/*------------------------------------------------------------------------
1282 * WLAN_HAL_CONFIG_STA_REQ
1283 * ----------------------------------------------------------------------*/
1284
1285typedef PACKED_PRE struct PACKED_POST {
1286 /*
1287 * For Self STA Entry: this represents Self Mode.
1288 * For Peer Stations, this represents the mode of the peer.
1289 * On Station:
1290 * --this mode is updated when PE adds the Self Entry.
1291 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1292 * ON AP:
1293 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1294 * to indicate the self mode of the AP.
1295 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1296 */
1297
1298 tStaRateMode opRateMode;
1299 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1300 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1301 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1302 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1303 tANI_U16 reserved;
1304
1305 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1306 //First 26 bits are reserved for those Titan rates and
1307 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1308 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1309
1310 /*
1311 * 0-76 bits used, remaining reserved
1312 * bits 0-15 and 32 should be set.
1313 */
1314 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1315
1316 /*
1317 * RX Highest Supported Data Rate defines the highest data
1318 * rate that the STA is able to receive, in unites of 1Mbps.
1319 * This value is derived from "Supported MCS Set field" inside
1320 * the HT capability element.
1321 */
1322 tANI_U16 rxHighestDataRate;
1323
1324 /* Indicates the Maximum MCS that can be received for each number
1325 * of spacial streams */
1326 tANI_U16 vhtRxMCSMap;
1327
1328 /*Indicate the highest VHT data rate that the STA is able to receive*/
1329 tANI_U16 vhtRxHighestDataRate;
1330
1331 /* Indicates the Maximum MCS that can be transmitted for each number
1332 * of spacial streams */
1333 tANI_U16 vhtTxMCSMap;
1334
1335 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1336 tANI_U16 vhtTxHighestDataRate;
1337
1338} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1339
1340typedef PACKED_PRE struct PACKED_POST
1341{
1342 /*BSSID of STA*/
1343 tSirMacAddr bssId;
1344
1345 /*ASSOC ID, as assigned by UMAC*/
1346 tANI_U16 assocId;
1347
1348 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1349 tANI_U8 staType;
1350
1351 /*Short Preamble Supported.*/
1352 tANI_U8 shortPreambleSupported;
1353
1354 /*MAC Address of STA*/
1355 tSirMacAddr staMac;
1356
1357 /*Listen interval of the STA*/
1358 tANI_U16 listenInterval;
1359
1360 /*Support for 11e/WMM*/
1361 tANI_U8 wmmEnabled;
1362
1363 /*11n HT capable STA*/
1364 tANI_U8 htCapable;
1365
1366 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1367 tANI_U8 txChannelWidthSet;
1368
1369 /*RIFS mode 0 - NA, 1 - Allowed */
1370 tANI_U8 rifsMode;
1371
1372 /*L-SIG TXOP Protection mechanism
1373 0 - No Support, 1 - Supported
1374 SG - there is global field */
1375 tANI_U8 lsigTxopProtection;
1376
1377 /*Max Ampdu Size supported by STA. TPE programming.
1378 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1379 tANI_U8 maxAmpduSize;
1380
1381 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1382 tANI_U8 maxAmpduDensity;
1383
1384 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1385 tANI_U8 maxAmsduSize;
1386
1387 /*Short GI support for 40Mhz packets*/
1388 tANI_U8 fShortGI40Mhz;
1389
1390 /*Short GI support for 20Mhz packets*/
1391 tANI_U8 fShortGI20Mhz;
1392
1393 /*Robust Management Frame (RMF) enabled/disabled*/
1394 tANI_U8 rmfEnabled;
1395
1396 /* The unicast encryption type in the association */
1397 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001398
1399 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001400 will set this flag in case of RE-ASSOC, where we want to reuse the old
1401 STA ID. 0 = Add, 1 = Update*/
1402 tANI_U8 action;
1403
1404 /*U-APSD Flags: 1b per AC. Encoded as follows:
1405 b7 b6 b5 b4 b3 b2 b1 b0 =
1406 X X X X BE BK VI VO */
1407 tANI_U8 uAPSD;
1408
1409 /*Max SP Length*/
1410 tANI_U8 maxSPLen;
1411
1412 /*11n Green Field preamble support
1413 0 - Not supported, 1 - Supported */
1414 tANI_U8 greenFieldCapable;
1415
1416 /*MIMO Power Save mode*/
1417 tSirMacHTMIMOPowerSaveState mimoPS;
1418
1419 /*Delayed BA Support*/
1420 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001421
Jeff Johnsone7245742012-09-05 17:12:55 -07001422 /*Max AMPDU duration in 32us*/
1423 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001424
Jeff Johnsone7245742012-09-05 17:12:55 -07001425 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1426 it to 0 if AP does not support it. This indication is sent to HAL and
1427 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1428 tANI_U8 fDsssCckMode40Mhz;
1429
1430 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1431 Retained for backward compalibity with existing HAL code*/
1432 tANI_U8 staIdx;
1433
1434 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1435 Retained for backward compalibity with existing HAL code*/
1436 tANI_U8 bssIdx;
1437
1438 tANI_U8 p2pCapableSta;
1439
1440 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001441 tANI_U8 htLdpcEnabled:1;
1442 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001443 tANI_U8 vhtTxBFEnabled:1;
1444 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001445
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001446 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001447 tSirSupportedRates_V1 supportedRates;
1448
1449 tANI_U8 vhtCapable;
1450 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001451
Jeff Johnsone7245742012-09-05 17:12:55 -07001452} tConfigStaParams_V1, *tpConfigStaParams_V1;
1453
Jeff Johnson295189b2012-06-20 16:38:30 -07001454typedef PACKED_PRE struct PACKED_POST
1455{
1456 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001457 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001458 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001459 tConfigStaParams_V1 configStaParams_V1;
1460 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001461} tConfigStaReqMsg, *tpConfigStaReqMsg;
1462
1463/*---------------------------------------------------------------------------
1464 WLAN_HAL_CONFIG_STA_RSP
1465---------------------------------------------------------------------------*/
1466
1467typedef PACKED_PRE struct PACKED_POST
1468{
1469 /*success or failure */
1470 tANI_U32 status;
1471
1472 /* Station index; valid only when 'status' field value SUCCESS */
1473 tANI_U8 staIdx;
1474
1475 /* BSSID Index of BSS to which the station is associated */
1476 tANI_U8 bssIdx;
1477
1478 /* DPU Index for PTK */
1479 tANI_U8 dpuIndex;
1480
Jeff Johnson32d95a32012-09-10 13:15:23 -07001481 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001482 tANI_U8 bcastDpuIndex;
1483
1484 /*DPU Index for IGTK */
1485 tANI_U8 bcastMgmtDpuIdx;
1486
1487 /*PTK DPU signature*/
1488 tANI_U8 ucUcastSig;
1489
1490 /*GTK DPU isignature*/
1491 tANI_U8 ucBcastSig;
1492
1493 /* IGTK DPU signature*/
1494 tANI_U8 ucMgmtSig;
1495
1496 tANI_U8 p2pCapableSta;
1497
1498}tConfigStaRspParams, *tpConfigStaRspParams;
1499
1500typedef PACKED_PRE struct PACKED_POST
1501{
1502 tHalMsgHeader header;
1503 tConfigStaRspParams configStaRspParams;
1504}tConfigStaRspMsg, *tpConfigStaRspMsg;
1505
1506/*---------------------------------------------------------------------------
1507 WLAN_HAL_DELETE_STA_REQ
1508---------------------------------------------------------------------------*/
1509
1510/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001511typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001512{
1513 /* Index of STA to delete */
1514 tANI_U8 staIdx;
1515} tDeleteStaParams, *tpDeleteStaParams;
1516
1517/* Delete STA Request message*/
1518typedef PACKED_PRE struct PACKED_POST
1519{
1520 tHalMsgHeader header;
1521 tDeleteStaParams delStaParams;
1522} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1523
1524/*---------------------------------------------------------------------------
1525 WLAN_HAL_DELETE_STA_RSP
1526---------------------------------------------------------------------------*/
1527
1528/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001529typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001530{
1531 /*success or failure */
1532 tANI_U32 status;
1533
1534 /* Index of STA deleted */
1535 tANI_U8 staId;
1536} tDeleteStaRspParams, *tpDeleteStaRspParams;
1537
1538/* Delete STA Response message*/
1539typedef PACKED_PRE struct PACKED_POST
1540{
1541 tHalMsgHeader header;
1542 tDeleteStaRspParams delStaRspParams;
1543} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1544
1545/*---------------------------------------------------------------------------
1546 WLAN_HAL_CONFIG_BSS_REQ
1547---------------------------------------------------------------------------*/
1548
1549//12 Bytes long because this structure can be used to represent rate
1550//and extended rate set IEs. The parser assume this to be at least 12
1551typedef __ani_attr_pre_packed struct sSirMacRateSet
1552{
1553 tANI_U8 numRates;
1554 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1555} __ani_attr_packed tSirMacRateSet;
1556
1557// access category record
1558typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1559{
1560#ifndef ANI_LITTLE_BIT_ENDIAN
1561 tANI_U8 rsvd : 1;
1562 tANI_U8 aci : 2;
1563 tANI_U8 acm : 1;
1564 tANI_U8 aifsn : 4;
1565#else
1566 tANI_U8 aifsn : 4;
1567 tANI_U8 acm : 1;
1568 tANI_U8 aci : 2;
1569 tANI_U8 rsvd : 1;
1570#endif
1571} __ani_attr_packed tSirMacAciAifsn;
1572
1573// contention window size
1574typedef __ani_attr_pre_packed struct sSirMacCW
1575{
1576#ifndef ANI_LITTLE_BIT_ENDIAN
1577 tANI_U8 max : 4;
1578 tANI_U8 min : 4;
1579#else
1580 tANI_U8 min : 4;
1581 tANI_U8 max : 4;
1582#endif
1583} __ani_attr_packed tSirMacCW;
1584
1585typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1586{
1587 tSirMacAciAifsn aci;
1588 tSirMacCW cw;
1589 tANI_U16 txoplimit;
1590} __ani_attr_packed tSirMacEdcaParamRecord;
1591
1592typedef __ani_attr_pre_packed struct sSirMacSSid
1593{
1594 tANI_U8 length;
1595 tANI_U8 ssId[32];
1596} __ani_attr_packed tSirMacSSid;
1597
1598// Concurrency role. These are generic IDs that identify the various roles
1599// in the software system.
1600typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001601 HAL_STA_MODE=0,
1602 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001603 HAL_P2P_CLIENT_MODE,
1604 HAL_P2P_GO_MODE,
1605 HAL_MONITOR_MODE,
1606} tHalConMode;
1607
1608//This is a bit pattern to be set for each mode
1609//bit 0 - sta mode
1610//bit 1 - ap mode
1611//bit 2 - p2p client mode
1612//bit 3 - p2p go mode
1613typedef enum
1614{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001615 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001616 HAL_SAP=2,
1617 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1618 HAL_P2P_CLIENT=4,
1619 HAL_P2P_GO=8,
1620 HAL_MAX_CONCURRENCY_PERSONA=4
1621} tHalConcurrencyMode;
1622
1623typedef PACKED_PRE struct PACKED_POST
1624{
1625 /* BSSID */
1626 tSirMacAddr bssId;
1627
Jeff Johnson295189b2012-06-20 16:38:30 -07001628 /* Self Mac Address */
1629 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001630
1631 /* BSS type */
1632 tSirBssType bssType;
1633
1634 /*Operational Mode: AP =0, STA = 1*/
1635 tANI_U8 operMode;
1636
1637 /*Network Type*/
1638 tSirNwType nwType;
1639
1640 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1641 tANI_U8 shortSlotTimeSupported;
1642
1643 /*Co-exist with 11a STA*/
1644 tANI_U8 llaCoexist;
1645
1646 /*Co-exist with 11b STA*/
1647 tANI_U8 llbCoexist;
1648
1649 /*Co-exist with 11g STA*/
1650 tANI_U8 llgCoexist;
1651
1652 /*Coexistence with 11n STA*/
1653 tANI_U8 ht20Coexist;
1654
1655 /*Non GF coexist flag*/
1656 tANI_U8 llnNonGFCoexist;
1657
1658 /*TXOP protection support*/
1659 tANI_U8 fLsigTXOPProtectionFullSupport;
1660
1661 /*RIFS mode*/
1662 tANI_U8 fRIFSMode;
1663
1664 /*Beacon Interval in TU*/
1665 tSirMacBeaconInterval beaconInterval;
1666
1667 /*DTIM period*/
1668 tANI_U8 dtimPeriod;
1669
1670 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1671 tANI_U8 txChannelWidthSet;
1672
1673 /*Operating channel*/
1674 tANI_U8 currentOperChannel;
1675
1676 /*Extension channel for channel bonding*/
1677 tANI_U8 currentExtChannel;
1678
1679 /*Reserved to align next field on a dword boundary*/
1680 tANI_U8 reserved;
1681
Jeff Johnsone7245742012-09-05 17:12:55 -07001682 /*SSID of the BSS*/
1683 tSirMacSSid ssId;
1684
1685 /*HAL should update the existing BSS entry, if this flag is set.
1686 UMAC will set this flag in case of reassoc, where we want to resue the
1687 the old BSSID and still return success 0 = Add, 1 = Update*/
1688 tANI_U8 action;
1689
1690 /* MAC Rate Set */
1691 tSirMacRateSet rateSet;
1692
1693 /*Enable/Disable HT capabilities of the BSS*/
1694 tANI_U8 htCapable;
1695
1696 // Enable/Disable OBSS protection
1697 tANI_U8 obssProtEnabled;
1698
1699 /*RMF enabled/disabled*/
1700 tANI_U8 rmfEnabled;
1701
1702 /*HT Operating Mode operating mode of the 802.11n STA*/
1703 tSirMacHTOperatingMode htOperMode;
1704
1705 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1706 tANI_U8 dualCTSProtection;
1707
1708 /* Probe Response Max retries */
1709 tANI_U8 ucMaxProbeRespRetryLimit;
1710
1711 /* To Enable Hidden ssid */
1712 tANI_U8 bHiddenSSIDEn;
1713
1714 /* To Enable Disable FW Proxy Probe Resp */
1715 tANI_U8 bProxyProbeRespEn;
1716
1717 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1718 EDCA params or might not desire to apply EDCA params during config BSS.
1719 0 implies Not Valid ; Non-Zero implies valid*/
1720 tANI_U8 edcaParamsValid;
1721
1722 /*EDCA Parameters for Best Effort Access Category*/
1723 tSirMacEdcaParamRecord acbe;
1724
1725 /*EDCA Parameters forBackground Access Category*/
1726 tSirMacEdcaParamRecord acbk;
1727
1728 /*EDCA Parameters for Video Access Category*/
1729 tSirMacEdcaParamRecord acvi;
1730
1731 /*EDCA Parameters for Voice Access Category*/
1732 tSirMacEdcaParamRecord acvo;
1733
1734#ifdef WLAN_FEATURE_VOWIFI_11R
1735 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1736 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1737#endif
1738
1739 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1740 tANI_U8 halPersona;
1741
1742 tANI_U8 bSpectrumMgtEnable;
1743
1744 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1745 tANI_S8 txMgmtPower;
1746 /*maxTxPower has max power to be used after applying the power constraint if any */
1747 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001748 /*Context of the station being added in HW
1749 Add a STA entry for "itself" -
1750 On AP - Add the AP itself in an "STA context"
1751 On STA - Add the AP to which this STA is joining in an "STA context" */
1752 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001753} tConfigBssParams, * tpConfigBssParams;
1754
1755
1756/*--------------------------------------------------------------------------
1757 * WLAN_HAL_CONFIG_BSS_REQ
1758 *--------------------------------------------------------------------------*/
1759typedef PACKED_PRE struct PACKED_POST
1760{
1761 /* BSSID */
1762 tSirMacAddr bssId;
1763
Jeff Johnsone7245742012-09-05 17:12:55 -07001764 /* Self Mac Address */
1765 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001766
1767 /* BSS type */
1768 tSirBssType bssType;
1769
1770 /*Operational Mode: AP =0, STA = 1*/
1771 tANI_U8 operMode;
1772
1773 /*Network Type*/
1774 tSirNwType nwType;
1775
1776 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1777 tANI_U8 shortSlotTimeSupported;
1778
1779 /*Co-exist with 11a STA*/
1780 tANI_U8 llaCoexist;
1781
1782 /*Co-exist with 11b STA*/
1783 tANI_U8 llbCoexist;
1784
1785 /*Co-exist with 11g STA*/
1786 tANI_U8 llgCoexist;
1787
1788 /*Coexistence with 11n STA*/
1789 tANI_U8 ht20Coexist;
1790
1791 /*Non GF coexist flag*/
1792 tANI_U8 llnNonGFCoexist;
1793
1794 /*TXOP protection support*/
1795 tANI_U8 fLsigTXOPProtectionFullSupport;
1796 /*RIFS mode*/
1797 tANI_U8 fRIFSMode;
1798
1799 /*Beacon Interval in TU*/
1800 tSirMacBeaconInterval beaconInterval;
1801
1802 /*DTIM period*/
1803 tANI_U8 dtimPeriod;
1804
1805 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1806 tANI_U8 txChannelWidthSet;
1807
1808 /*Operating channel*/
1809 tANI_U8 currentOperChannel;
1810
1811 /*Extension channel for channel bonding*/
1812 tANI_U8 currentExtChannel;
1813
1814 /*Reserved to align next field on a dword boundary*/
1815 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001816
1817 /*SSID of the BSS*/
1818 tSirMacSSid ssId;
1819
1820 /*HAL should update the existing BSS entry, if this flag is set.
1821 UMAC will set this flag in case of reassoc, where we want to resue the
1822 the old BSSID and still return success 0 = Add, 1 = Update*/
1823 tANI_U8 action;
1824
1825 /* MAC Rate Set */
1826 tSirMacRateSet rateSet;
1827
1828 /*Enable/Disable HT capabilities of the BSS*/
1829 tANI_U8 htCapable;
1830
1831 // Enable/Disable OBSS protection
1832 tANI_U8 obssProtEnabled;
1833
1834 /*RMF enabled/disabled*/
1835 tANI_U8 rmfEnabled;
1836
1837 /*HT Operating Mode operating mode of the 802.11n STA*/
1838 tSirMacHTOperatingMode htOperMode;
1839
1840 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1841 tANI_U8 dualCTSProtection;
1842
1843 /* Probe Response Max retries */
1844 tANI_U8 ucMaxProbeRespRetryLimit;
1845
1846 /* To Enable Hidden ssid */
1847 tANI_U8 bHiddenSSIDEn;
1848
1849 /* To Enable Disable FW Proxy Probe Resp */
1850 tANI_U8 bProxyProbeRespEn;
1851
Jeff Johnson32d95a32012-09-10 13:15:23 -07001852 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1853 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001854 0 implies Not Valid ; Non-Zero implies valid*/
1855 tANI_U8 edcaParamsValid;
1856
1857 /*EDCA Parameters for Best Effort Access Category*/
1858 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001859
Jeff Johnson295189b2012-06-20 16:38:30 -07001860 /*EDCA Parameters forBackground Access Category*/
1861 tSirMacEdcaParamRecord acbk;
1862
1863 /*EDCA Parameters for Video Access Category*/
1864 tSirMacEdcaParamRecord acvi;
1865
1866 /*EDCA Parameters for Voice Access Category*/
1867 tSirMacEdcaParamRecord acvo;
1868
1869#ifdef WLAN_FEATURE_VOWIFI_11R
1870 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1871 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1872#endif
1873
Jeff Johnson32d95a32012-09-10 13:15:23 -07001874 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001875 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001876
Jeff Johnson295189b2012-06-20 16:38:30 -07001877 tANI_U8 bSpectrumMgtEnable;
1878
1879 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1880 tANI_S8 txMgmtPower;
1881 /*maxTxPower has max power to be used after applying the power constraint if any */
1882 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001883 /*Context of the station being added in HW
1884 Add a STA entry for "itself" -
1885 On AP - Add the AP itself in an "STA context"
1886 On STA - Add the AP to which this STA is joining in an "STA context" */
1887 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001888
Jeff Johnsone7245742012-09-05 17:12:55 -07001889 tANI_U8 vhtCapable;
1890 tANI_U8 vhtTxChannelWidthSet;
1891} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001892
1893typedef PACKED_PRE struct PACKED_POST
1894{
1895 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001896 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001897 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001898 tConfigBssParams_V1 configBssParams_V1;
1899 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001900} tConfigBssReqMsg, *tpConfigBssReqMsg;
1901
1902/*---------------------------------------------------------------------------
1903 WLAN_HAL_CONFIG_BSS_RSP
1904---------------------------------------------------------------------------*/
1905
1906typedef PACKED_PRE struct PACKED_POST
1907{
1908 /* Success or Failure */
1909 tANI_U32 status;
1910
1911 /* BSS index allocated by HAL */
1912 tANI_U8 bssIdx;
1913
1914 /* DPU descriptor index for PTK */
1915 tANI_U8 dpuDescIndx;
1916
1917 /* PTK DPU signature */
1918 tANI_U8 ucastDpuSignature;
1919
1920 /* DPU descriptor index for GTK*/
1921 tANI_U8 bcastDpuDescIndx;
1922
1923 /* GTK DPU signature */
1924 tANI_U8 bcastDpuSignature;
1925
1926 /*DPU descriptor for IGTK*/
1927 tANI_U8 mgmtDpuDescIndx;
1928
1929 /* IGTK DPU signature */
1930 tANI_U8 mgmtDpuSignature;
1931
1932 /* Station Index for BSS entry*/
1933 tANI_U8 bssStaIdx;
1934
1935 /* Self station index for this BSS */
1936 tANI_U8 bssSelfStaIdx;
1937
1938 /* Bcast station for buffering bcast frames in AP role */
1939 tANI_U8 bssBcastStaIdx;
1940
1941 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1942 tSirMacAddr staMac;
1943
1944 /*HAL fills in the tx power used for mgmt frames in this field. */
1945 tANI_S8 txMgmtPower;
1946
1947} tConfigBssRspParams, * tpConfigBssRspParams;
1948
1949typedef PACKED_PRE struct PACKED_POST
1950{
1951 tHalMsgHeader header;
1952 tConfigBssRspParams configBssRspParams;
1953} tConfigBssRspMsg, *tpConfigBssRspMsg;
1954
1955/*---------------------------------------------------------------------------
1956 WLAN_HAL_DELETE_BSS_REQ
1957---------------------------------------------------------------------------*/
1958
1959typedef PACKED_PRE struct PACKED_POST
1960{
1961 /* BSS index to be deleted */
1962 tANI_U8 bssIdx;
1963
1964} tDeleteBssParams, *tpDeleteBssParams;
1965
1966typedef PACKED_PRE struct PACKED_POST
1967{
1968 tHalMsgHeader header;
1969 tDeleteBssParams deleteBssParams;
1970} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1971
1972/*---------------------------------------------------------------------------
1973 WLAN_HAL_DELETE_BSS_RSP
1974---------------------------------------------------------------------------*/
1975
1976typedef PACKED_PRE struct PACKED_POST
1977{
1978 /* Success or Failure */
1979 tANI_U32 status;
1980
1981 /* BSS index that has been deleted */
1982 tANI_U8 bssIdx;
1983
1984} tDeleteBssRspParams, *tpDeleteBssRspParams;
1985
1986typedef PACKED_PRE struct PACKED_POST
1987{
1988 tHalMsgHeader header;
1989 tDeleteBssRspParams deleteBssRspParams;
1990} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
1991
1992/*---------------------------------------------------------------------------
1993 WLAN_HAL_JOIN_REQ
1994---------------------------------------------------------------------------*/
1995
1996typedef PACKED_PRE struct PACKED_POST
1997{
1998 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07001999 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002000
2001 /*Indicates the channel to switch to.*/
2002 tANI_U8 ucChannel;
2003
2004 /* Self STA MAC */
2005 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002006
Jeff Johnson295189b2012-06-20 16:38:30 -07002007 /*Local power constraint*/
2008 tANI_U8 ucLocalPowerConstraint;
2009
2010 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002011 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002012
2013 /*link State*/
2014 tSirLinkState linkState;
2015
2016 /* Max TX power */
2017 tANI_S8 maxTxPower;
2018
2019} tHalJoinReqParams, *tpHalJoinReqParams;
2020
2021typedef PACKED_PRE struct PACKED_POST
2022{
2023 tHalMsgHeader header;
2024 tHalJoinReqParams joinReqParams;
2025} tHalJoinReqMsg, *tpHalJoinReqMsg;
2026
2027/*---------------------------------------------------------------------------
2028 WLAN_HAL_JOIN_RSP
2029---------------------------------------------------------------------------*/
2030
2031typedef PACKED_PRE struct PACKED_POST
2032{
2033 /*success or failure */
2034 tANI_U32 status;
2035
2036 /* HAL fills in the tx power used for mgmt frames in this field */
2037 tPowerdBm txMgmtPower;
2038
2039}tHalJoinRspParams, *tpHalJoinRspParams;
2040
2041typedef PACKED_PRE struct PACKED_POST
2042{
2043 tHalMsgHeader header;
2044 tHalJoinRspParams joinRspParams;
2045}tHalJoinRspMsg, *tpHalJoinRspMsg;
2046
2047/*---------------------------------------------------------------------------
2048 WLAN_HAL_POST_ASSOC_REQ
2049---------------------------------------------------------------------------*/
2050
2051typedef PACKED_PRE struct PACKED_POST
2052{
2053 tConfigStaParams configStaParams;
2054 tConfigBssParams configBssParams;
2055} tPostAssocReqParams, *tpPostAssocReqParams;
2056
2057typedef PACKED_PRE struct PACKED_POST
2058{
2059 tHalMsgHeader header;
2060 tPostAssocReqParams postAssocReqParams;
2061} tPostAssocReqMsg, *tpPostAssocReqMsg;
2062
2063/*---------------------------------------------------------------------------
2064 WLAN_HAL_POST_ASSOC_RSP
2065---------------------------------------------------------------------------*/
2066
2067typedef PACKED_PRE struct PACKED_POST
2068{
2069 tConfigStaRspParams configStaRspParams;
2070 tConfigBssRspParams configBssRspParams;
2071} tPostAssocRspParams, *tpPostAssocRspParams;
2072
2073typedef PACKED_PRE struct PACKED_POST
2074{
2075 tHalMsgHeader header;
2076 tPostAssocRspParams postAssocRspParams;
2077} tPostAssocRspMsg, *tpPostAssocRspMsg;
2078
2079/*---------------------------------------------------------------------------
2080 WLAN_HAL_SET_BSSKEY_REQ
2081---------------------------------------------------------------------------*/
2082
2083/*
2084 * This is used by PE to create a set of WEP keys for a given BSS.
2085 */
2086typedef PACKED_PRE struct PACKED_POST
2087{
2088 /*BSS Index of the BSS*/
2089 tANI_U8 bssIdx;
2090
2091 /*Encryption Type used with peer*/
2092 tAniEdType encType;
2093
2094 /*Number of keys*/
2095 tANI_U8 numKeys;
2096
2097 /*Array of keys.*/
2098 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002099
Jeff Johnson295189b2012-06-20 16:38:30 -07002100 /*Control for Replay Count, 1= Single TID based replay count on Tx
2101 0 = Per TID based replay count on TX */
2102 tANI_U8 singleTidRc;
2103} tSetBssKeyParams, *tpSetBssKeyParams;
2104
2105typedef PACKED_PRE struct PACKED_POST
2106{
2107 tHalMsgHeader header;
2108 tSetBssKeyParams setBssKeyParams;
2109} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2110
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002111/* tagged version of set bss key */
2112typedef PACKED_PRE struct PACKED_POST
2113{
2114 tSetBssKeyReqMsg Msg;
2115 uint32 Tag;
2116} tSetBssKeyReqMsgTagged;
2117
Jeff Johnson295189b2012-06-20 16:38:30 -07002118/*---------------------------------------------------------------------------
2119 WLAN_HAL_SET_BSSKEY_RSP
2120---------------------------------------------------------------------------*/
2121typedef PACKED_PRE struct PACKED_POST
2122{
2123 /*success or failure */
2124 tANI_U32 status;
2125
2126} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2127
2128typedef PACKED_PRE struct PACKED_POST
2129{
2130 tHalMsgHeader header;
2131 tSetBssKeyRspParams setBssKeyRspParams;
2132} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2133
2134/*---------------------------------------------------------------------------
2135 WLAN_HAL_SET_STAKEY_REQ,
2136---------------------------------------------------------------------------*/
2137
2138/*
2139 * This is used by PE to configure the key information on a given station.
2140 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2141 * a preconfigured key from a BSS the station assoicated with; otherwise
2142 * a new key descriptor is created based on the key field.
2143 */
2144
2145typedef PACKED_PRE struct PACKED_POST
2146{
2147 tHalMsgHeader header;
2148 tSetStaKeyParams setStaKeyParams;
2149} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2150
2151/*---------------------------------------------------------------------------
2152 WLAN_HAL_SET_STAKEY_RSP,
2153---------------------------------------------------------------------------*/
2154typedef PACKED_PRE struct PACKED_POST
2155{
2156 /*success or failure */
2157 tANI_U32 status;
2158
2159} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2160
2161typedef PACKED_PRE struct PACKED_POST
2162{
2163 tHalMsgHeader header;
2164 tSetStaKeyRspParams setStaKeyRspParams;
2165} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2166
2167/*---------------------------------------------------------------------------
2168 WLAN_HAL_RMV_BSSKEY_REQ,
2169---------------------------------------------------------------------------*/
2170/*
2171 * This is used by PE to remove keys for a given BSS.
2172 */
2173typedef PACKED_PRE struct PACKED_POST
2174
2175{
2176 /*BSS Index of the BSS*/
2177 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002178
Jeff Johnson295189b2012-06-20 16:38:30 -07002179 /*Encryption Type used with peer*/
2180 tAniEdType encType;
2181
2182 /*Key Id*/
2183 tANI_U8 keyId;
2184
2185 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2186 tAniWepType wepType;
2187
2188} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2189
2190typedef PACKED_PRE struct PACKED_POST
2191{
2192 tHalMsgHeader header;
2193 tRemoveBssKeyParams removeBssKeyParams;
2194} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2195
2196/*---------------------------------------------------------------------------
2197 WLAN_HAL_RMV_BSSKEY_RSP,
2198---------------------------------------------------------------------------*/
2199typedef PACKED_PRE struct PACKED_POST
2200{
2201 /*success or failure */
2202 tANI_U32 status;
2203
2204} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2205
2206typedef PACKED_PRE struct PACKED_POST
2207{
2208 tHalMsgHeader header;
2209 tRemoveBssKeyRspParams removeBssKeyRspParams;
2210} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2211
2212/*---------------------------------------------------------------------------
2213 WLAN_HAL_RMV_STAKEY_REQ,
2214---------------------------------------------------------------------------*/
2215/*
2216 * This is used by PE to Remove the key information on a given station.
2217 */
2218typedef PACKED_PRE struct PACKED_POST
2219{
2220 /*STA Index*/
2221 tANI_U16 staIdx;
2222
2223 /*Encryption Type used with peer*/
2224 tAniEdType encType;
2225
2226 /*Key Id*/
2227 tANI_U8 keyId;
2228
2229 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2230 the same key is used for both broadcast and unicast.*/
2231 tANI_BOOLEAN unicast;
2232
2233} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2234
2235typedef PACKED_PRE struct PACKED_POST
2236{
2237 tHalMsgHeader header;
2238 tRemoveStaKeyParams removeStaKeyParams;
2239} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2240
2241/*---------------------------------------------------------------------------
2242 WLAN_HAL_RMV_STAKEY_RSP,
2243---------------------------------------------------------------------------*/
2244typedef PACKED_PRE struct PACKED_POST
2245{
2246 /*success or failure */
2247 tANI_U32 status;
2248} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2249
2250typedef PACKED_PRE struct PACKED_POST
2251{
2252 tHalMsgHeader header;
2253 tRemoveStaKeyRspParams removeStaKeyRspParams;
2254} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2255
Jeff Johnsone7245742012-09-05 17:12:55 -07002256#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002257
Jeff Johnsone7245742012-09-05 17:12:55 -07002258#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002259#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002260#endif
2261
2262#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002263#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002264#endif
2265
2266/*-------------------------------------------------------------------------
2267WLAN_HAL_START_OEM_DATA_REQ
2268--------------------------------------------------------------------------*/
2269typedef PACKED_PRE struct PACKED_POST
2270{
2271 tANI_U32 status;
2272 tSirMacAddr selfMacAddr;
2273 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2274} tStartOemDataReqParams, *tpStartOemDataReqParams;
2275
2276typedef PACKED_PRE struct PACKED_POST
2277{
2278 tHalMsgHeader header;
2279 tStartOemDataReqParams startOemDataReqParams;
2280} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2281
2282/*-------------------------------------------------------------------------
2283WLAN_HAL_START_OEM_DATA_RSP
2284--------------------------------------------------------------------------*/
2285
2286typedef PACKED_PRE struct PACKED_POST
2287{
2288 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2289} tStartOemDataRspParams, *tpStartOemDataRspParams;
2290
2291typedef PACKED_PRE struct PACKED_POST
2292{
2293 tHalMsgHeader header;
2294 tStartOemDataRspParams startOemDataRspParams;
2295} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2296
2297#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002298
2299
2300
2301/*---------------------------------------------------------------------------
2302WLAN_HAL_CH_SWITCH_REQ
2303---------------------------------------------------------------------------*/
2304
2305typedef PACKED_PRE struct PACKED_POST
2306{
2307 /* Channel number */
2308 tANI_U8 channelNumber;
2309
2310 /* Local power constraint */
2311 tANI_U8 localPowerConstraint;
2312
2313 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002314 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002315
2316 //HAL fills in the tx power used for mgmt frames in this field.
2317 tPowerdBm txMgmtPower;
2318
2319 /* Max TX power */
2320 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002321
Jeff Johnson295189b2012-06-20 16:38:30 -07002322 /* Self STA MAC */
2323 tSirMacAddr selfStaMacAddr;
2324
2325 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2326 this should be applied only to that session*/
2327 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2328 * bssid needs to be out of the VOWifi feature flag */
2329 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2330 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2331 */
2332 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002333
Jeff Johnson295189b2012-06-20 16:38:30 -07002334}tSwitchChannelParams, *tpSwitchChannelParams;
2335
2336typedef PACKED_PRE struct PACKED_POST
2337{
2338 tHalMsgHeader header;
2339 tSwitchChannelParams switchChannelParams;
2340} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2341
2342/*---------------------------------------------------------------------------
2343WLAN_HAL_CH_SWITCH_RSP
2344---------------------------------------------------------------------------*/
2345
2346typedef PACKED_PRE struct PACKED_POST
2347{
2348 /* Status */
2349 tANI_U32 status;
2350
2351 /* Channel number - same as in request*/
2352 tANI_U8 channelNumber;
2353
2354 /* HAL fills in the tx power used for mgmt frames in this field */
2355 tPowerdBm txMgmtPower;
2356
2357 /* BSSID needed to identify session - same as in request*/
2358 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002359
Jeff Johnson295189b2012-06-20 16:38:30 -07002360}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2361
2362typedef PACKED_PRE struct PACKED_POST
2363{
2364 tHalMsgHeader header;
2365 tSwitchChannelRspParams switchChannelRspParams;
2366} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2367
2368/*---------------------------------------------------------------------------
2369WLAN_HAL_UPD_EDCA_PARAMS_REQ
2370---------------------------------------------------------------------------*/
2371
2372typedef PACKED_PRE struct PACKED_POST
2373{
2374 /*BSS Index*/
2375 tANI_U16 bssIdx;
2376
2377 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002378 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002379
2380 /* Background */
2381 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002382
Jeff Johnson295189b2012-06-20 16:38:30 -07002383 /* Video */
2384 tSirMacEdcaParamRecord acvi;
2385
2386 /* Voice */
2387 tSirMacEdcaParamRecord acvo;
2388
2389} tEdcaParams, *tpEdcaParams;
2390
2391typedef PACKED_PRE struct PACKED_POST
2392{
2393 tHalMsgHeader header;
2394 tEdcaParams edcaParams;
2395} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2396
2397/*---------------------------------------------------------------------------
2398WLAN_HAL_UPD_EDCA_PARAMS_RSP
2399---------------------------------------------------------------------------*/
2400typedef PACKED_PRE struct PACKED_POST
2401{
2402 /*success or failure */
2403 tANI_U32 status;
2404} tEdcaRspParams, *tpEdcaRspParams;
2405
2406typedef PACKED_PRE struct PACKED_POST
2407{
2408 tHalMsgHeader header;
2409 tEdcaRspParams edcaRspParams;
2410} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2411
2412
2413
2414/*---------------------------------------------------------------------------
2415 * WLAN_HAL_GET_STATS_REQ
2416 *--------------------------------------------------------------------------*/
2417typedef PACKED_PRE struct PACKED_POST
2418
2419{
2420 /* Index of STA to which the statistics */
2421 tANI_U16 staIdx;
2422
2423 /* Encryption mode */
2424 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002425
Jeff Johnson295189b2012-06-20 16:38:30 -07002426 /* status */
2427 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002428
Jeff Johnson295189b2012-06-20 16:38:30 -07002429 /* Statistics */
2430 tANI_U32 sendBlocks;
2431 tANI_U32 recvBlocks;
2432 tANI_U32 replays;
2433 tANI_U8 micErrorCnt;
2434 tANI_U32 protExclCnt;
2435 tANI_U16 formatErrCnt;
2436 tANI_U16 unDecryptableCnt;
2437 tANI_U32 decryptErrCnt;
2438 tANI_U32 decryptOkCnt;
2439} tDpuStatsParams, * tpDpuStatsParams;
2440
2441typedef PACKED_PRE struct PACKED_POST
2442{
2443 /* Valid STA Idx for per STA stats request */
2444 tANI_U32 staId;
2445
2446 /* Categories of stats requested as specified in eHalStatsMask*/
2447 tANI_U32 statsMask;
2448}tHalStatsReqParams, *tpHalStatsReqParams;
2449
2450typedef PACKED_PRE struct PACKED_POST
2451{
2452 tHalMsgHeader header;
2453 tHalStatsReqParams statsReqParams;
2454} tHalStatsReqMsg, *tpHalStatsReqMsg;
2455
2456/*---------------------------------------------------------------------------
2457 * WLAN_HAL_GET_STATS_RSP
2458 *--------------------------------------------------------------------------*/
2459
2460typedef PACKED_PRE struct PACKED_POST
2461{
2462 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2463 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2464 // station successfully transmitted after more than one retransmission attempt
2465
Jeff Johnson32d95a32012-09-10 13:15:23 -07002466 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2467 //(with and without retries, including multi-cast, broadcast)
2468 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2469 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002470 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2471 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2472 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2473 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 -07002474 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2475 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 -07002476 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2477 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 -07002478 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2479 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002480 //to provide this.
2481}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2482
2483
2484// defines tx_rate_flags
2485typedef enum eTxRateInfo
2486{
2487 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2488 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2489 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2490 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2491 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2492} tTxrateinfoflags;
2493
2494
2495typedef PACKED_PRE struct PACKED_POST
2496{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002497 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 -07002498 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002499 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 -07002500 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002501 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2502 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002503 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002504 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2505 //for eg: if it is 10.5dBm, the value would be 105
2506 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2507 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002508
Jeff Johnson32d95a32012-09-10 13:15:23 -07002509 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2510 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002511 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002512 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2513 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002514}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2515
2516typedef PACKED_PRE struct PACKED_POST
2517{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002518 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2519 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002520 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002521 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 -07002522 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002523 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 -07002524 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002525 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 -07002526 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002527 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 -07002528 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002529 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 -07002530 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002531 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 -07002532 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002533 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 -07002534 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002535 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 -07002536 //decrypted
2537 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2538
2539}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002540
Jeff Johnson295189b2012-06-20 16:38:30 -07002541typedef PACKED_PRE struct PACKED_POST
2542{
2543 tAniGlobalSecurityStats ucStats;
2544 tAniGlobalSecurityStats mcbcStats;
2545}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2546
2547typedef PACKED_PRE struct PACKED_POST
2548{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002549 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2550 //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 -07002551 //address 1 field
2552 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 -07002553 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 -07002554 //primary channel
2555 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 -07002556 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 -07002557 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002558 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2559 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002560 //decoded correctly
2561}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2562
2563typedef PACKED_PRE struct PACKED_POST
2564{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002565 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 -07002566 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002567 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2568 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 -07002569 //is transmitted
2570}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2571
2572typedef PACKED_PRE struct PACKED_POST
2573{
2574 /* Success or Failure */
2575 tANI_U32 status;
2576
2577 /* STA Idx */
2578 tANI_U32 staId;
2579
2580 /* Categories of STATS being returned as per eHalStatsMask*/
2581 tANI_U32 statsMask;
2582
2583 /* message type is same as the request type */
2584 tANI_U16 msgType;
2585
2586 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002587 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002588
2589} tHalStatsRspParams, *tpHalStatsRspParams;
2590
2591
2592
2593typedef PACKED_PRE struct PACKED_POST
2594{
2595 tHalMsgHeader header;
2596 tHalStatsRspParams statsRspParams;
2597} tHalStatsRspMsg, *tpHalStatsRspMsg;
2598
2599/*---------------------------------------------------------------------------
2600 * WLAN_HAL_SET_LINK_ST_REQ
2601 *--------------------------------------------------------------------------*/
2602typedef PACKED_PRE struct PACKED_POST
2603{
2604 tSirMacAddr bssid;
2605 tSirLinkState state;
2606 tSirMacAddr selfMacAddr;
2607} tLinkStateParams, *tpLinkStateParams;
2608
2609typedef PACKED_PRE struct PACKED_POST
2610{
2611 tHalMsgHeader header;
2612 tLinkStateParams linkStateParams;
2613} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2614
2615/*---------------------------------------------------------------------------
2616 * WLAN_HAL_SET_LINK_ST_RSP
2617 *--------------------------------------------------------------------------*/
2618
2619typedef PACKED_PRE struct PACKED_POST
2620{
2621 /*success or failure */
2622 tANI_U32 status;
2623} tLinkStateRspParams, *tpLinkStateRspParams;
2624
2625typedef PACKED_PRE struct PACKED_POST
2626{
2627 tHalMsgHeader header;
2628 tLinkStateRspParams linkStateRspParams;
2629} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2630
2631/*---------------------------------------------------------------------------
2632 * WLAN_HAL_ADD_TS_REQ
2633 *--------------------------------------------------------------------------*/
2634
2635/* TSPEC Params */
2636typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2637{
2638#ifndef ANI_LITTLE_BIT_ENDIAN
2639 tANI_U16 ackPolicy : 2;
2640 tANI_U16 userPrio : 3;
2641 tANI_U16 psb : 1;
2642 tANI_U16 aggregation : 1;
2643 tANI_U16 accessPolicy : 2;
2644 tANI_U16 direction : 2;
2645 tANI_U16 tsid : 4;
2646 tANI_U16 trafficType : 1;
2647#else
2648 tANI_U16 trafficType : 1;
2649 tANI_U16 tsid : 4;
2650 tANI_U16 direction : 2;
2651 tANI_U16 accessPolicy : 2;
2652 tANI_U16 aggregation : 1;
2653 tANI_U16 psb : 1;
2654 tANI_U16 userPrio : 3;
2655 tANI_U16 ackPolicy : 2;
2656#endif
2657} __ani_attr_packed tSirMacTSInfoTfc;
2658
2659/* Flag to schedule the traffic type */
2660typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2661{
2662#ifndef ANI_LITTLE_BIT_ENDIAN
2663 tANI_U8 rsvd : 7;
2664 tANI_U8 schedule : 1;
2665#else
2666 tANI_U8 schedule : 1;
2667 tANI_U8 rsvd : 7;
2668#endif
2669} __ani_attr_packed tSirMacTSInfoSch;
2670
2671/* Traffic and scheduling info */
2672typedef __ani_attr_pre_packed struct sSirMacTSInfo
2673{
2674 tSirMacTSInfoTfc traffic;
2675 tSirMacTSInfoSch schedule;
2676} __ani_attr_packed tSirMacTSInfo;
2677
2678/* Information elements */
2679typedef __ani_attr_pre_packed struct sSirMacTspecIE
2680{
2681 tANI_U8 type;
2682 tANI_U8 length;
2683 tSirMacTSInfo tsinfo;
2684 tANI_U16 nomMsduSz;
2685 tANI_U16 maxMsduSz;
2686 tANI_U32 minSvcInterval;
2687 tANI_U32 maxSvcInterval;
2688 tANI_U32 inactInterval;
2689 tANI_U32 suspendInterval;
2690 tANI_U32 svcStartTime;
2691 tANI_U32 minDataRate;
2692 tANI_U32 meanDataRate;
2693 tANI_U32 peakDataRate;
2694 tANI_U32 maxBurstSz;
2695 tANI_U32 delayBound;
2696 tANI_U32 minPhyRate;
2697 tANI_U16 surplusBw;
2698 tANI_U16 mediumTime;
2699}__ani_attr_packed tSirMacTspecIE;
2700
2701typedef PACKED_PRE struct PACKED_POST
2702{
2703 /* Station Index */
2704 tANI_U16 staIdx;
2705
2706 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2707 tANI_U16 tspecIdx;
2708
2709 /* To program TPE with required parameters */
2710 tSirMacTspecIE tspec;
2711
2712 /* U-APSD Flags: 1b per AC. Encoded as follows:
2713 b7 b6 b5 b4 b3 b2 b1 b0 =
2714 X X X X BE BK VI VO */
2715 tANI_U8 uAPSD;
2716
2717 /* These parameters are for all the access categories */
2718 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2719 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2720 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002721
Jeff Johnson295189b2012-06-20 16:38:30 -07002722} tAddTsParams, *tpAddTsParams;
2723
2724typedef PACKED_PRE struct PACKED_POST
2725{
2726 tHalMsgHeader header;
2727 tAddTsParams addTsParams;
2728} tAddTsReqMsg, *tpAddTsReqMsg;
2729
2730/*---------------------------------------------------------------------------
2731 * WLAN_HAL_ADD_TS_RSP
2732 *--------------------------------------------------------------------------*/
2733
2734typedef PACKED_PRE struct PACKED_POST
2735{
2736 /*success or failure */
2737 tANI_U32 status;
2738} tAddTsRspParams, *tpAddTsRspParams;
2739
2740typedef PACKED_PRE struct PACKED_POST
2741{
2742 tHalMsgHeader header;
2743 tAddTsRspParams addTsRspParams;
2744} tAddTsRspMsg, *tpAddTsRspMsg;
2745
2746
2747/*---------------------------------------------------------------------------
2748 * WLAN_HAL_DEL_TS_REQ
2749 *--------------------------------------------------------------------------*/
2750
2751typedef PACKED_PRE struct PACKED_POST
2752{
2753 /* Station Index */
2754 tANI_U16 staIdx;
2755
2756 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2757 tANI_U16 tspecIdx;
2758
2759 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002760 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002761
2762} tDelTsParams, *tpDelTsParams;
2763
2764typedef PACKED_PRE struct PACKED_POST
2765{
2766 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002767 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002768} tDelTsReqMsg, *tpDelTsReqMsg;
2769
2770/*---------------------------------------------------------------------------
2771 * WLAN_HAL_DEL_TS_RSP
2772 *--------------------------------------------------------------------------*/
2773
2774typedef PACKED_PRE struct PACKED_POST
2775{
2776 /*success or failure */
2777 tANI_U32 status;
2778} tDelTsRspParams, *tpDelTsRspParams;
2779
2780typedef PACKED_PRE struct PACKED_POST
2781{
2782 tHalMsgHeader header;
2783 tDelTsRspParams delTsRspParams;
2784} tDelTsRspMsg, *tpDelTsRspMsg;
2785
2786/* End of TSpec Parameters */
2787
2788/* Start of BLOCK ACK related Parameters */
2789
2790/*---------------------------------------------------------------------------
2791 * WLAN_HAL_ADD_BA_SESSION_REQ
2792 *--------------------------------------------------------------------------*/
2793
2794typedef PACKED_PRE struct PACKED_POST
2795{
2796 /* Station Index */
2797 tANI_U16 staIdx;
2798
2799 /* Peer MAC Address */
2800 tSirMacAddr peerMacAddr;
2801
2802 /* ADDBA Action Frame dialog token
2803 HAL will not interpret this object */
2804 tANI_U8 baDialogToken;
2805
2806 /* TID for which the BA is being setup
2807 This identifies the TC or TS of interest */
2808 tANI_U8 baTID;
2809
2810 /* 0 - Delayed BA (Not supported)
2811 1 - Immediate BA */
2812 tANI_U8 baPolicy;
2813
2814 /* Indicates the number of buffers for this TID (baTID)
2815 NOTE - This is the requested buffer size. When this
2816 is processed by HAL and subsequently by HDD, it is
2817 possible that HDD may change this buffer size. Any
2818 change in the buffer size should be noted by PE and
2819 advertized appropriately in the ADDBA response */
2820 tANI_U16 baBufferSize;
2821
2822 /* BA timeout in TU's 0 means no timeout will occur */
2823 tANI_U16 baTimeout;
2824
2825 /* b0..b3 - Fragment Number - Always set to 0
2826 b4..b15 - Starting Sequence Number of first MSDU
2827 for which this BA is setup */
2828 tANI_U16 baSSN;
2829
2830 /* ADDBA direction
2831 1 - Originator
2832 0 - Recipient */
2833 tANI_U8 baDirection;
2834} tAddBASessionParams, *tpAddBASessionParams;
2835
2836typedef PACKED_PRE struct PACKED_POST
2837{
2838 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002839 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002840}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2841
2842/*---------------------------------------------------------------------------
2843 * WLAN_HAL_ADD_BA_SESSION_RSP
2844 *--------------------------------------------------------------------------*/
2845
2846typedef PACKED_PRE struct PACKED_POST
2847{
2848 /*success or failure */
2849 tANI_U32 status;
2850
2851 /* Dialog token */
2852 tANI_U8 baDialogToken;
2853
2854 /* TID for which the BA session has been setup */
2855 tANI_U8 baTID;
2856
2857 /* BA Buffer Size allocated for the current BA session */
2858 tANI_U8 baBufferSize;
2859
2860 tANI_U8 baSessionID;
2861
2862 /* Reordering Window buffer */
2863 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002864
Jeff Johnson295189b2012-06-20 16:38:30 -07002865 /*Station Index to id the sta */
2866 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002867
Jeff Johnson295189b2012-06-20 16:38:30 -07002868 /* Starting Sequence Number */
2869 tANI_U16 SSN;
2870} tAddBASessionRspParams, *tpAddBASessionRspParams;
2871
2872typedef PACKED_PRE struct PACKED_POST
2873{
2874 tHalMsgHeader header;
2875 tAddBASessionRspParams addBASessionRspParams;
2876} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2877
2878/*---------------------------------------------------------------------------
2879 * WLAN_HAL_ADD_BA_REQ
2880 *--------------------------------------------------------------------------*/
2881
2882typedef PACKED_PRE struct PACKED_POST
2883{
2884 /* Session Id */
2885 tANI_U8 baSessionID;
2886
2887 /* Reorder Window Size */
2888 tANI_U8 winSize;
2889
2890#ifdef FEATURE_ON_CHIP_REORDERING
2891 tANI_BOOLEAN isReorderingDoneOnChip;
2892#endif
2893} tAddBAParams, *tpAddBAParams;
2894
2895typedef PACKED_PRE struct PACKED_POST
2896{
2897 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002898 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002899} tAddBAReqMsg, *tpAddBAReqMsg;
2900
2901
2902/*---------------------------------------------------------------------------
2903 * WLAN_HAL_ADD_BA_RSP
2904 *--------------------------------------------------------------------------*/
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 /*success or failure */
2909 tANI_U32 status;
2910
2911 /* Dialog token */
2912 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002913
Jeff Johnson295189b2012-06-20 16:38:30 -07002914} tAddBARspParams, *tpAddBARspParams;
2915
2916typedef PACKED_PRE struct PACKED_POST
2917{
2918 tHalMsgHeader header;
2919 tAddBARspParams addBARspParams;
2920} tAddBARspMsg, *tpAddBARspMsg;
2921
2922
2923/*---------------------------------------------------------------------------
2924 * WLAN_HAL_TRIGGER_BA_REQ
2925 *--------------------------------------------------------------------------*/
2926
2927
2928typedef struct sAddBaInfo
2929{
2930 tANI_U16 fBaEnable : 1;
2931 tANI_U16 startingSeqNum: 12;
2932 tANI_U16 reserved : 3;
2933}tAddBaInfo, *tpAddBaInfo;
2934
2935typedef struct sTriggerBaRspCandidate
2936{
2937 tSirMacAddr staAddr;
2938 tAddBaInfo baInfo[STACFG_MAX_TC];
2939}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2940
2941typedef struct sTriggerBaCandidate
2942{
2943 tANI_U8 staIdx;
2944 tANI_U8 tidBitmap;
2945}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2946
2947typedef PACKED_PRE struct PACKED_POST
2948{
2949 /* Session Id */
2950 tANI_U8 baSessionID;
2951
Jeff Johnson32d95a32012-09-10 13:15:23 -07002952 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002953 * Candidate List(tTriggerBaCandidate)
2954 */
2955 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002956
Jeff Johnson295189b2012-06-20 16:38:30 -07002957} tTriggerBAParams, *tpTriggerBAParams;
2958
2959typedef PACKED_PRE struct PACKED_POST
2960{
2961 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002962 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002963} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2964
2965
2966/*---------------------------------------------------------------------------
2967 * WLAN_HAL_TRIGGER_BA_RSP
2968 *--------------------------------------------------------------------------*/
2969
2970typedef PACKED_PRE struct PACKED_POST
2971{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002972
Jeff Johnson295189b2012-06-20 16:38:30 -07002973 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002974 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002975
2976 /* success or failure */
2977 tANI_U32 status;
2978
Jeff Johnson32d95a32012-09-10 13:15:23 -07002979 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002980 * Rsp Candidate List(tTriggerRspBaCandidate)
2981 */
2982 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002983
Jeff Johnson295189b2012-06-20 16:38:30 -07002984
2985} tTriggerBARspParams, *tpTriggerBARspParams;
2986
2987typedef PACKED_PRE struct PACKED_POST
2988{
2989 tHalMsgHeader header;
2990 tTriggerBARspParams triggerBARspParams;
2991} tTriggerBARspMsg, *tpTriggerBARspMsg;
2992
2993/*---------------------------------------------------------------------------
2994 * WLAN_HAL_DEL_BA_REQ
2995 *--------------------------------------------------------------------------*/
2996
2997typedef PACKED_PRE struct PACKED_POST
2998{
2999 /* Station Index */
3000 tANI_U16 staIdx;
3001
3002 /* TID for which the BA session is being deleted */
3003 tANI_U8 baTID;
3004
3005 /* DELBA direction
3006 1 - Originator
3007 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003008 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003009} tDelBAParams, *tpDelBAParams;
3010
3011typedef PACKED_PRE struct PACKED_POST
3012{
3013 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003014 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003015} tDelBAReqMsg, *tpDelBAReqMsg;
3016
3017/*---------------------------------------------------------------------------
3018 * WLAN_HAL_DEL_BA_RSP
3019 *--------------------------------------------------------------------------*/
3020
3021typedef PACKED_PRE struct PACKED_POST
3022{
3023 /* success or failure */
3024 tANI_U32 status;
3025} tDelBARspParams, *tpDelBARspParams;
3026
3027typedef PACKED_PRE struct PACKED_POST
3028{
3029 tHalMsgHeader header;
3030 tDelBARspParams delBARspParams;
3031} tDelBARspMsg, *tpDelBARspMsg;
3032
3033
3034#ifdef FEATURE_WLAN_CCX
3035
3036/*---------------------------------------------------------------------------
3037 * WLAN_HAL_TSM_STATS_REQ
3038 *--------------------------------------------------------------------------*/
3039typedef PACKED_PRE struct PACKED_POST
3040{
3041 /* Traffic Id */
3042 tANI_U8 tsmTID;
3043
3044 tSirMacAddr bssId;
3045} tTsmStatsParams, *tpTsmStatsParams;
3046
3047typedef PACKED_PRE struct PACKED_POST
3048{
3049 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003050 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003051} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3052
3053
3054/*---------------------------------------------------------------------------
3055 * WLAN_HAL_TSM_STATS_RSP
3056 *--------------------------------------------------------------------------*/
3057typedef PACKED_PRE struct PACKED_POST
3058{
3059 /*success or failure */
3060 tANI_U32 status;
3061
Jeff Johnson32d95a32012-09-10 13:15:23 -07003062 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003063 tANI_U16 UplinkPktQueueDly;
3064
Jeff Johnson32d95a32012-09-10 13:15:23 -07003065 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003066 tANI_U16 UplinkPktQueueDlyHist[4];
3067
Jeff Johnson32d95a32012-09-10 13:15:23 -07003068 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003069 tANI_U32 UplinkPktTxDly;
3070
Jeff Johnson32d95a32012-09-10 13:15:23 -07003071 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003072 tANI_U16 UplinkPktLoss;
3073
Jeff Johnson32d95a32012-09-10 13:15:23 -07003074 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003075 tANI_U16 UplinkPktCount;
3076
Jeff Johnson32d95a32012-09-10 13:15:23 -07003077 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003078 tANI_U8 RoamingCount;
3079
Jeff Johnson32d95a32012-09-10 13:15:23 -07003080 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003081 tANI_U16 RoamingDly;
3082} tTsmStatsRspParams, *tpTsmStatsRspParams;
3083
3084typedef PACKED_PRE struct PACKED_POST
3085{
3086 tHalMsgHeader header;
3087 tTsmStatsRspParams tsmStatsRspParams;
3088} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3089
3090
3091#endif
3092
3093/*---------------------------------------------------------------------------
3094 * WLAN_HAL_SET_KEYDONE_MSG
3095 *--------------------------------------------------------------------------*/
3096
3097typedef PACKED_PRE struct PACKED_POST
3098{
3099 /*bssid of the keys */
3100 tANI_U8 bssidx;
3101 tANI_U8 encType;
3102} tSetKeyDoneParams, *tpSetKeyDoneParams;
3103
3104typedef PACKED_PRE struct PACKED_POST
3105{
3106 tHalMsgHeader header;
3107 tSetKeyDoneParams setKeyDoneParams;
3108} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3109
3110/*---------------------------------------------------------------------------
3111 * WLAN_HAL_DOWNLOAD_NV_REQ
3112 *--------------------------------------------------------------------------*/
3113typedef PACKED_PRE struct PACKED_POST
3114{
3115 /* Fragment sequence number of the NV Image. Note that NV Image might not
3116 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003117 * can hence choose to chop the NV blob into multiple fragments starting with
3118 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003119 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3120 * concatenated together by HAL without any padding bytes in between.*/
3121 tANI_U16 fragNumber;
3122
3123 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003124 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003125 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3126 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3127 tANI_U16 isLastFragment;
3128
3129 /* NV Image size (number of bytes) */
3130 tANI_U32 nvImgBufferSize;
3131
3132 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3133 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3134} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3135
3136typedef PACKED_PRE struct PACKED_POST
3137{
3138 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3139 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3140 tHalMsgHeader header;
3141 tHalNvImgDownloadReqParams nvImageReqParams;
3142} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3143
3144/*---------------------------------------------------------------------------
3145 * WLAN_HAL_DOWNLOAD_NV_RSP
3146 *--------------------------------------------------------------------------*/
3147typedef PACKED_PRE struct PACKED_POST
3148{
3149 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3150 * after each fragment */
3151 tANI_U32 status;
3152} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3153
3154typedef PACKED_PRE struct PACKED_POST
3155{
3156 tHalMsgHeader header;
3157 tHalNvImgDownloadRspParams nvImageRspParams;
3158} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3159
3160/*---------------------------------------------------------------------------
3161 * WLAN_HAL_STORE_NV_IND
3162 *--------------------------------------------------------------------------*/
3163typedef PACKED_PRE struct PACKED_POST
3164{
3165 /* NV Item */
3166 eNvTable tableID;
3167
3168 /* Size of NV Blob */
3169 tANI_U32 nvBlobSize;
3170
Jeff Johnson32d95a32012-09-10 13:15:23 -07003171 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003172 * NV blob i.e. uint8[nvBlobSize] */
3173} tHalNvStoreParams, *tpHalNvStoreParams;
3174
3175typedef PACKED_PRE struct PACKED_POST
3176{
3177 /* Note: The length specified in tHalNvStoreInd messages should be
3178 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3179 tHalMsgHeader header;
3180 tHalNvStoreParams nvStoreParams;
3181} tHalNvStoreInd, *tpHalNvStoreInd;
3182
3183/* End of Block Ack Related Parameters */
3184
3185/*---------------------------------------------------------------------------
3186 * WLAN_HAL_MIC_FAILURE_IND
3187 *--------------------------------------------------------------------------*/
3188
3189#define SIR_CIPHER_SEQ_CTR_SIZE 6
3190
3191typedef PACKED_PRE struct PACKED_POST
3192{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003193 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003194 tSirMacAddr taMacAddr; //transmitter address
3195 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003196 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003197 tANI_U8 IV1; // first byte of IV
3198 tANI_U8 keyId; // second byte of IV
3199 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3200 tSirMacAddr rxMacAddr; // receive address
3201} tSirMicFailureInfo, *tpSirMicFailureInfo;
3202
3203/* Definition for MIC failure indication
3204 MAC reports this each time a MIC failure occures on Rx TKIP packet
3205 */
3206typedef PACKED_PRE struct PACKED_POST
3207{
3208 tSirMacAddr bssId; // BSSID
3209 tSirMicFailureInfo info;
3210} tSirMicFailureInd, *tpSirMicFailureInd;
3211
3212typedef PACKED_PRE struct PACKED_POST
3213{
3214 tHalMsgHeader header;
3215 tSirMicFailureInd micFailureInd;
3216} tMicFailureIndMsg, *tpMicFailureIndMsg;
3217
Mohit Khanna4a70d262012-09-11 16:30:12 -07003218typedef PACKED_PRE struct PACKED_POST
3219{
3220 tANI_U16 opMode;
3221 tANI_U16 staId;
3222}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3223
3224typedef PACKED_PRE struct PACKED_POST
3225{
3226 tHalMsgHeader header;
3227 tUpdateVHTOpMode updateVhtOpMode;
3228} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3229
3230typedef PACKED_PRE struct PACKED_POST
3231{
3232 tANI_U32 status;
3233} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3234
3235typedef PACKED_PRE struct PACKED_POST
3236{
3237 tHalMsgHeader header;
3238 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3239} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3240
Jeff Johnson295189b2012-06-20 16:38:30 -07003241/*---------------------------------------------------------------------------
3242 * WLAN_HAL_UPDATE_BEACON_REQ
3243 *--------------------------------------------------------------------------*/
3244typedef PACKED_PRE struct PACKED_POST
3245{
3246
3247 tANI_U8 bssIdx;
3248
3249 //shortPreamble mode. HAL should update all the STA rates when it
3250 //receives this message
3251 tANI_U8 fShortPreamble;
3252 //short Slot time.
3253 tANI_U8 fShortSlotTime;
3254 //Beacon Interval
3255 tANI_U16 beaconInterval;
3256 //Protection related
3257 tANI_U8 llaCoexist;
3258 tANI_U8 llbCoexist;
3259 tANI_U8 llgCoexist;
3260 tANI_U8 ht20MhzCoexist;
3261 tANI_U8 llnNonGFCoexist;
3262 tANI_U8 fLsigTXOPProtectionFullSupport;
3263 tANI_U8 fRIFSMode;
3264
3265 tANI_U16 paramChangeBitmap;
3266}tUpdateBeaconParams, *tpUpdateBeaconParams;
3267
3268
3269typedef PACKED_PRE struct PACKED_POST
3270{
3271 tHalMsgHeader header;
3272 tUpdateBeaconParams updateBeaconParam;
3273} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3274
3275/*---------------------------------------------------------------------------
3276 * WLAN_HAL_UPDATE_BEACON_RSP
3277 *--------------------------------------------------------------------------*/
3278typedef PACKED_PRE struct PACKED_POST
3279{
3280 tANI_U32 status;
3281} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3282
3283typedef PACKED_PRE struct PACKED_POST
3284{
3285 tHalMsgHeader header;
3286 tUpdateBeaconRspParams updateBeaconRspParam;
3287} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3288
3289/*---------------------------------------------------------------------------
3290 * WLAN_HAL_SEND_BEACON_REQ
3291 *--------------------------------------------------------------------------*/
3292typedef PACKED_PRE struct PACKED_POST
3293{
3294 tANI_U32 beaconLength; //length of the template.
3295 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3296 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003297 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003298 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3299}tSendBeaconParams, *tpSendBeaconParams;
3300
3301
3302typedef PACKED_PRE struct PACKED_POST
3303{
3304 tHalMsgHeader header;
3305 tSendBeaconParams sendBeaconParam;
3306}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3307
3308/*---------------------------------------------------------------------------
3309 * WLAN_HAL_SEND_BEACON_RSP
3310 *--------------------------------------------------------------------------*/
3311typedef PACKED_PRE struct PACKED_POST
3312{
3313 tANI_U32 status;
3314} tSendBeaconRspParams, *tpSendBeaconRspParams;
3315
3316typedef PACKED_PRE struct PACKED_POST
3317{
3318 tHalMsgHeader header;
3319 tSendBeaconRspParams sendBeaconRspParam;
3320} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3321
3322#ifdef FEATURE_5GHZ_BAND
3323
3324/*---------------------------------------------------------------------------
3325 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3326 *--------------------------------------------------------------------------*/
3327typedef PACKED_PRE struct PACKED_POST
3328{
3329 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003330 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003331}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3332
3333
3334typedef PACKED_PRE struct PACKED_POST
3335{
3336 /* Link Parameters */
3337 tSirEnableRadarInfoType EnableRadarInfo;
3338}tEnableRadarReqParams, *tpEnableRadarReqParams;
3339
3340typedef PACKED_PRE struct PACKED_POST
3341{
3342 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003343 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003344}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3345
3346/*---------------------------------------------------------------------------
3347 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3348 *--------------------------------------------------------------------------*/
3349
3350typedef PACKED_PRE struct PACKED_POST
3351{
3352 /* Link Parameters */
3353 tSirMacAddr BSSID;
3354 /* success or failure */
3355 tANI_U32 status;
3356}tEnableRadarRspParams, *tpEnableRadarRspParams;
3357
3358typedef PACKED_PRE struct PACKED_POST
3359{
3360 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003361 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003362}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3363
3364/*---------------------------------------------------------------------------
3365 *WLAN_HAL_RADAR_DETECT_INTR_IND
3366 *--------------------------------------------------------------------------*/
3367
3368typedef PACKED_PRE struct PACKED_POST
3369{
3370 tANI_U8 radarDetChannel;
3371}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3372
3373typedef PACKED_PRE struct PACKED_POST
3374{
3375 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003376 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003377}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3378
3379/*---------------------------------------------------------------------------
3380 *WLAN_HAL_RADAR_DETECT_IND
3381 *-------------------------------------------------------------------------*/
3382typedef PACKED_PRE struct PACKED_POST
3383{
3384 /*channel number in which the RADAR detected*/
3385 tANI_U8 channelNumber;
3386
3387 /*RADAR pulse width*/
3388 tANI_U16 radarPulseWidth; // in usecond
3389
3390 /*Number of RADAR pulses */
3391 tANI_U16 numRadarPulse;
3392}tRadarDetectIndParams,*tpRadarDetectIndParams;
3393
3394typedef PACKED_PRE struct PACKED_POST
3395{
3396 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003397 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003398}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3399
3400
3401/*---------------------------------------------------------------------------
3402 *WLAN_HAL_GET_TPC_REPORT_REQ
3403 *-------------------------------------------------------------------------*/
3404typedef PACKED_PRE struct PACKED_POST
3405{
3406 tSirMacAddr sta;
3407 tANI_U8 dialogToken;
3408 tANI_U8 txpower;
3409}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3410
3411
3412typedef PACKED_PRE struct PACKED_POST
3413{
3414 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003415 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003416}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3417
3418/*---------------------------------------------------------------------------
3419 * WLAN_HAL_GET_TPC_REPORT_RSP
3420 *--------------------------------------------------------------------------*/
3421
3422typedef PACKED_PRE struct PACKED_POST
3423{
3424 /* success or failure */
3425 tANI_U32 status;
3426}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3427
3428typedef PACKED_PRE struct PACKED_POST
3429{
3430 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003431 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003432}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3433
3434#endif
3435
Jeff Johnson295189b2012-06-20 16:38:30 -07003436/*---------------------------------------------------------------------------
3437 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3438 *-------------------------------------------------------------------------*/
3439typedef PACKED_PRE struct PACKED_POST
3440{
3441 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3442 tANI_U32 probeRespTemplateLen;
3443 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3444 tSirMacAddr bssId;
3445
3446}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3447
3448typedef PACKED_PRE struct PACKED_POST
3449{
3450 tHalMsgHeader header;
3451 tSendProbeRespReqParams sendProbeRespReqParams ;
3452}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3453
3454/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003455 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003456 *--------------------------------------------------------------------------*/
3457
3458typedef PACKED_PRE struct PACKED_POST
3459{
3460 /* success or failure */
3461 tANI_U32 status;
3462}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3463
3464typedef PACKED_PRE struct PACKED_POST
3465{
3466 tHalMsgHeader header;
3467 tSendProbeRespRspParams sendProbeRespRspParams;
3468}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3469
3470
3471/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003472 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003473 *--------------------------------------------------------------------------*/
3474
3475typedef PACKED_PRE struct PACKED_POST
3476{
3477 /* success or failure */
3478 tANI_U32 status;
3479}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3480
3481typedef PACKED_PRE struct PACKED_POST
3482{
3483 tHalMsgHeader header;
3484 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3485}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3486
3487/*---------------------------------------------------------------------------
3488 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3489 *--------------------------------------------------------------------------*/
3490
3491typedef PACKED_PRE struct PACKED_POST
3492{
3493 tANI_U16 assocId;
3494 tANI_U16 staId;
3495 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3496 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003497 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003498 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003499
3500}tDeleteStaContextParams, *tpDeleteStaContextParams;
3501
3502
3503typedef PACKED_PRE struct PACKED_POST
3504{
3505 tHalMsgHeader header;
3506 tDeleteStaContextParams deleteStaContextParams;
3507}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3508
Anand Kumar012623a2013-01-11 17:00:00 -08003509typedef PACKED_PRE struct PACKED_POST
3510{
3511 tHalMsgHeader header;
3512 tANI_U8 assocId;
3513 tANI_U8 staIdx;
3514 tANI_U8 bssIdx;
3515 tANI_U8 uReasonCode;
3516 tANI_U32 uStatus;
3517} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003518
3519/*---------------------------------------------------------------------------
3520 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3521 *--------------------------------------------------------------------------*/
3522
3523typedef PACKED_PRE struct PACKED_POST
3524{
3525 tBtAmpEventType btAmpEventType;
3526
3527}tBtAmpEventParams, *tpBtAmpEventParams;
3528
3529
3530
3531typedef PACKED_PRE struct PACKED_POST
3532{
3533 tHalMsgHeader header;
3534 tBtAmpEventParams btAmpEventParams;
3535}tBtAmpEventMsg, *tpBtAmpEventMsg;
3536
3537/*---------------------------------------------------------------------------
3538*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3539*--------------------------------------------------------------------------*/
3540
3541typedef PACKED_PRE struct PACKED_POST
3542{
3543 /* success or failure */
3544 tANI_U32 status;
3545}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3546
3547typedef PACKED_PRE struct PACKED_POST
3548{
3549 tHalMsgHeader header;
3550 tBtAmpEventRspParams btAmpEventRspParams;
3551}tBtAmpEventRsp, *tpBtAmpEventRsp;
3552
3553
3554/*---------------------------------------------------------------------------
3555 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3556 *--------------------------------------------------------------------------*/
3557
3558typedef PACKED_PRE struct PACKED_POST
3559{
3560 // Station Index. originates from HAL
3561 tANI_U8 ucSTAId;
3562
3563 // TID for which the transmit queue is being flushed
3564 tANI_U8 ucTid;
3565
3566}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3567
3568
3569typedef PACKED_PRE struct PACKED_POST
3570{
3571 tHalMsgHeader header;
3572 tTlHalFlushAcParams tlHalFlushAcParam;
3573}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3574
3575/*---------------------------------------------------------------------------
3576*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3577*--------------------------------------------------------------------------*/
3578
3579typedef PACKED_PRE struct PACKED_POST
3580{
3581 // Station Index. originates from HAL
3582 tANI_U8 ucSTAId;
3583
3584 // TID for which the transmit queue is being flushed
3585 tANI_U8 ucTid;
3586
3587 /* success or failure */
3588 tANI_U32 status;
3589}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3590
3591typedef PACKED_PRE struct PACKED_POST
3592{
3593 tHalMsgHeader header;
3594 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3595}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3596
3597/*---------------------------------------------------------------------------
3598 * WLAN_HAL_ENTER_IMPS_REQ
3599 *--------------------------------------------------------------------------*/
3600typedef PACKED_PRE struct PACKED_POST
3601{
3602 tHalMsgHeader header;
3603} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3604
3605/*---------------------------------------------------------------------------
3606 * WLAN_HAL_EXIT_IMPS_REQ
3607 *--------------------------------------------------------------------------*/
3608typedef PACKED_PRE struct PACKED_POST
3609{
3610 tHalMsgHeader header;
3611} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3612
3613/*---------------------------------------------------------------------------
3614 * WLAN_HAL_ENTER_BMPS_REQ
3615 *--------------------------------------------------------------------------*/
3616
3617typedef PACKED_PRE struct PACKED_POST
3618{
3619 tANI_U8 bssIdx;
3620 //TBTT value derived from the last beacon
3621#ifndef BUILD_QWPTTSTATIC
3622 tANI_U64 tbtt;
3623#endif
3624 tANI_U8 dtimCount;
3625 //DTIM period given to HAL during association may not be valid,
3626 //if association is based on ProbeRsp instead of beacon.
3627 tANI_U8 dtimPeriod;
3628
3629 // For CCX and 11R Roaming
3630 tANI_U32 rssiFilterPeriod;
3631 tANI_U32 numBeaconPerRssiAverage;
3632 tANI_U8 bRssiFilterEnable;
3633
3634} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3635
3636
3637typedef PACKED_PRE struct PACKED_POST
3638{
3639 tHalMsgHeader header;
3640 tHalEnterBmpsReqParams enterBmpsReq;
3641} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3642
3643/*---------------------------------------------------------------------------
3644 * WLAN_HAL_EXIT_BMPS_REQ
3645 *--------------------------------------------------------------------------*/
3646typedef PACKED_PRE struct PACKED_POST
3647{
3648 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003649 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003650} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3651
3652typedef PACKED_PRE struct PACKED_POST
3653{
3654 tHalMsgHeader header;
3655 tHalExitBmpsReqParams exitBmpsReqParams;
3656} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3657
3658/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003659 * WLAN_HAL_MISSED_BEACON_IND
3660 *--------------------------------------------------------------------------*/
3661typedef PACKED_PRE struct PACKED_POST
3662{
3663 tANI_U8 bssIdx;
3664} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3665
3666typedef PACKED_PRE struct PACKED_POST
3667{
3668 tHalMsgHeader header;
3669 tHalMissedBeaconIndParams missedBeaconIndParams;
3670} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3671
3672/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003673 * WLAN_HAL_ADD_BCN_FILTER_REQ
3674 *--------------------------------------------------------------------------*/
3675/* Beacon Filtering data structures */
3676typedef PACKED_PRE struct PACKED_POST
3677{
3678 tANI_U8 offset;
3679 tANI_U8 value;
3680 tANI_U8 bitMask;
3681 tANI_U8 ref;
3682} tEidByteInfo, *tpEidByteInfo;
3683
Jeff Johnson32d95a32012-09-10 13:15:23 -07003684typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003685{
3686 tANI_U16 capabilityInfo;
3687 tANI_U16 capabilityMask;
3688 tANI_U16 beaconInterval;
3689 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003690 tANI_U8 bssIdx;
3691 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003692} tBeaconFilterMsg, *tpBeaconFilterMsg;
3693
3694/* The above structure would be followed by multiple of below mentioned structure */
3695typedef PACKED_PRE struct PACKED_POST
3696{
3697 tANI_U8 elementId;
3698 tANI_U8 checkIePresence;
3699 tEidByteInfo byte;
3700} tBeaconFilterIe, *tpBeaconFilterIe;
3701
3702typedef PACKED_PRE struct PACKED_POST
3703{
3704 tHalMsgHeader header;
3705 tBeaconFilterMsg addBcnFilterParams;
3706} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3707
3708/*---------------------------------------------------------------------------
3709 * WLAN_HAL_REM_BCN_FILTER_REQ
3710 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003711typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003712{
3713 tANI_U8 ucIeCount;
3714 tANI_U8 ucRemIeId[1];
3715} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3716
3717typedef PACKED_PRE struct PACKED_POST
3718{
3719 tHalMsgHeader header;
3720 tRemBeaconFilterMsg remBcnFilterParams;
3721} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3722
3723/*---------------------------------------------------------------------------
3724 * WLAN_HAL_HOST_OFFLOAD_REQ
3725 *--------------------------------------------------------------------------*/
3726#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3727#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3728#define HAL_IPV6_NS_OFFLOAD 2
3729#define HAL_IPV6_ADDR_LEN 16
3730#define HAL_MAC_ADDR_LEN 6
3731#define HAL_OFFLOAD_DISABLE 0
3732#define HAL_OFFLOAD_ENABLE 1
3733#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003734#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003735#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003736#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003737
3738typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3739{
3740 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3741 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3742 //Only support 2 possible Network Advertisement IPv6 address
3743 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3744 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3745 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3746 tANI_U8 srcIPv6AddrValid : 1;
3747 tANI_U8 targetIPv6Addr1Valid : 1;
3748 tANI_U8 targetIPv6Addr2Valid : 1;
3749 tANI_U8 reserved1 : 5;
3750 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003751 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003752 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003753} tHalNSOffloadParams;
3754
3755typedef PACKED_PRE struct PACKED_POST
3756{
3757 tANI_U8 offloadType;
3758 tANI_U8 enableOrDisable;
3759 PACKED_PRE union PACKED_POST
3760 {
3761 tANI_U8 hostIpv4Addr [4];
3762 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3763 } params;
3764} tHalHostOffloadReq, *tpHalHostOffloadReq;
3765
3766typedef PACKED_PRE struct PACKED_POST
3767{
3768 tHalMsgHeader header;
3769 tHalHostOffloadReq hostOffloadParams;
3770 tHalNSOffloadParams nsOffloadParams;
3771} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3772
3773/*---------------------------------------------------------------------------
3774 * WLAN_HAL_KEEP_ALIVE_REQ
3775 *--------------------------------------------------------------------------*/
3776/* Packet Types. */
3777#define HAL_KEEP_ALIVE_NULL_PKT 1
3778#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3779
3780/* Enable or disable keep alive */
3781#define HAL_KEEP_ALIVE_DISABLE 0
3782#define HAL_KEEP_ALIVE_ENABLE 1
3783
3784/* Keep Alive request. */
3785typedef PACKED_PRE struct PACKED_POST
3786{
3787 tANI_U8 packetType;
3788 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003789 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003790 tHalIpv4Addr destIpv4Addr;
3791 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003792 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003793} tHalKeepAliveReq, *tpHalKeepAliveReq;
3794
3795typedef PACKED_PRE struct PACKED_POST
3796{
3797 tHalMsgHeader header;
3798 tHalKeepAliveReq KeepAliveParams;
3799} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3800
3801/*---------------------------------------------------------------------------
3802 * WLAN_HAL_SET_RSSI_THRESH_REQ
3803 *--------------------------------------------------------------------------*/
3804typedef PACKED_PRE struct PACKED_POST
3805{
3806 tANI_S8 ucRssiThreshold1 : 8;
3807 tANI_S8 ucRssiThreshold2 : 8;
3808 tANI_S8 ucRssiThreshold3 : 8;
3809 tANI_U8 bRssiThres1PosNotify : 1;
3810 tANI_U8 bRssiThres1NegNotify : 1;
3811 tANI_U8 bRssiThres2PosNotify : 1;
3812 tANI_U8 bRssiThres2NegNotify : 1;
3813 tANI_U8 bRssiThres3PosNotify : 1;
3814 tANI_U8 bRssiThres3NegNotify : 1;
3815 tANI_U8 bReserved10 : 2;
3816} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003817
Jeff Johnson295189b2012-06-20 16:38:30 -07003818typedef PACKED_PRE struct PACKED_POST
3819{
3820 tHalMsgHeader header;
3821 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003822} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07003823
3824/*---------------------------------------------------------------------------
3825 * WLAN_HAL_ENTER_UAPSD_REQ
3826 *--------------------------------------------------------------------------*/
3827typedef PACKED_PRE struct PACKED_POST
3828{
3829 tANI_U8 bkDeliveryEnabled:1;
3830 tANI_U8 beDeliveryEnabled:1;
3831 tANI_U8 viDeliveryEnabled:1;
3832 tANI_U8 voDeliveryEnabled:1;
3833 tANI_U8 bkTriggerEnabled:1;
3834 tANI_U8 beTriggerEnabled:1;
3835 tANI_U8 viTriggerEnabled:1;
3836 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003837 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003838} tUapsdReqParams, *tpUapsdReqParams;
3839
3840typedef PACKED_PRE struct PACKED_POST
3841{
3842 tHalMsgHeader header;
3843 tUapsdReqParams enterUapsdParams;
3844} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3845
3846/*---------------------------------------------------------------------------
3847 * WLAN_HAL_EXIT_UAPSD_REQ
3848 *--------------------------------------------------------------------------*/
3849typedef PACKED_PRE struct PACKED_POST
3850{
3851 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003852 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003853} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3854
3855/*---------------------------------------------------------------------------
3856 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3857 *--------------------------------------------------------------------------*/
3858#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3859#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3860
3861typedef PACKED_PRE struct PACKED_POST
3862{
3863 tANI_U8 ucPatternId; // Pattern ID
3864 // Pattern byte offset from beginning of the 802.11 packet to start of the
3865 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003866 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003867 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3868 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3869 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3870 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3871 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3872 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003873 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003874} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3875
3876typedef PACKED_PRE struct PACKED_POST
3877{
3878 tHalMsgHeader header;
3879 tHalWowlAddBcastPtrn ptrnParams;
3880} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003881
Jeff Johnsone7245742012-09-05 17:12:55 -07003882
3883
Jeff Johnson295189b2012-06-20 16:38:30 -07003884/*---------------------------------------------------------------------------
3885 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3886 *--------------------------------------------------------------------------*/
3887typedef PACKED_PRE struct PACKED_POST
3888{
3889 /* Pattern ID of the wakeup pattern to be deleted */
3890 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003891 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003892} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3893
3894typedef PACKED_PRE struct PACKED_POST
3895{
3896 tHalMsgHeader header;
3897 tHalWowlDelBcastPtrn ptrnParams;
3898} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3899
3900/*---------------------------------------------------------------------------
3901 * WLAN_HAL_ENTER_WOWL_REQ
3902 *--------------------------------------------------------------------------*/
3903typedef PACKED_PRE struct PACKED_POST
3904{
3905 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003906 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003907
3908 /* Magic pattern */
3909 tSirMacAddr magicPtrn;
3910
Jeff Johnson32d95a32012-09-10 13:15:23 -07003911 /* Enables/disables packet pattern filtering in firmware.
3912 Enabling this flag enables broadcast pattern matching
3913 in Firmware. If unicast pattern matching is also desired,
3914 ucUcastPatternFilteringEnable flag must be set tot true
3915 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003916 */
3917 tANI_U8 ucPatternFilteringEnable;
3918
Jeff Johnson32d95a32012-09-10 13:15:23 -07003919 /* Enables/disables unicast packet pattern filtering.
3920 This flag specifies whether we want to do pattern match
3921 on unicast packets as well and not just broadcast packets.
3922 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003923 (main controlling flag) is set to false
3924 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003925 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003926
Jeff Johnson32d95a32012-09-10 13:15:23 -07003927 /* This configuration is valid only when magicPktEnable=1.
3928 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003929 * Channel Switch Action Frame.
3930 */
3931 tANI_U8 ucWowChnlSwitchRcv;
3932
Jeff Johnson32d95a32012-09-10 13:15:23 -07003933 /* This configuration is valid only when magicPktEnable=1.
3934 * It requests hardware to wake up when it receives the
3935 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003936 */
3937 tANI_U8 ucWowDeauthRcv;
3938
Jeff Johnson32d95a32012-09-10 13:15:23 -07003939 /* This configuration is valid only when magicPktEnable=1.
3940 * It requests hardware to wake up when it receives the
3941 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003942 */
3943 tANI_U8 ucWowDisassocRcv;
3944
Jeff Johnson32d95a32012-09-10 13:15:23 -07003945 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003946 * It requests hardware to wake up when it has missed
3947 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003948 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003949 */
3950 tANI_U8 ucWowMaxMissedBeacons;
3951
Jeff Johnson32d95a32012-09-10 13:15:23 -07003952 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003953 * This is a timeout value in units of microsec. It requests
3954 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003955 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003956 */
3957 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003958
Jeff Johnson295189b2012-06-20 16:38:30 -07003959 /* This configuration directs the WoW packet filtering to look for EAP-ID
3960 * requests embedded in EAPOL frames and use this as a wake source.
3961 */
3962 tANI_U8 ucWoWEAPIDRequestEnable;
3963
3964 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3965 * requests and use this as a wake source.
3966 */
3967 tANI_U8 ucWoWEAPOL4WayEnable;
3968
3969 /* This configuration allows a host wakeup on an network scan offload match.
3970 */
3971 tANI_U8 ucWowNetScanOffloadMatch;
3972
3973 /* This configuration allows a host wakeup on any GTK rekeying error.
3974 */
3975 tANI_U8 ucWowGTKRekeyError;
3976
3977 /* This configuration allows a host wakeup on BSS connection loss.
3978 */
3979 tANI_U8 ucWoWBSSConnLoss;
3980
Jeff Johnsone7245742012-09-05 17:12:55 -07003981 tANI_U8 bssIdx;
3982
Jeff Johnson295189b2012-06-20 16:38:30 -07003983} tHalWowlEnterParams, *tpHalWowlEnterParams;
3984
3985typedef PACKED_PRE struct PACKED_POST
3986{
3987 tHalMsgHeader header;
3988 tHalWowlEnterParams enterWowlParams;
3989} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
3990
3991/*---------------------------------------------------------------------------
3992 * WLAN_HAL_EXIT_WOWL_REQ
3993 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07003994
Jeff Johnson295189b2012-06-20 16:38:30 -07003995typedef PACKED_PRE struct PACKED_POST
3996{
Jeff Johnsone7245742012-09-05 17:12:55 -07003997 tANI_U8 bssIdx;
3998
3999} tHalWowlExitParams, *tpHalWowlExitParams;
4000
4001typedef PACKED_PRE struct PACKED_POST
4002{
4003 tHalMsgHeader header;
4004 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004005} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4006
4007/*---------------------------------------------------------------------------
4008 * WLAN_HAL_GET_RSSI_REQ
4009 *--------------------------------------------------------------------------*/
4010typedef PACKED_PRE struct PACKED_POST
4011{
4012 tHalMsgHeader header;
4013} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4014
Anand Kumar012623a2013-01-11 17:00:00 -08004015typedef PACKED_PRE struct PACKED_POST
4016{
4017 /* Valid STA Idx for per STA stats request */
4018 tANI_U32 staId;
4019
4020}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4021
4022
4023/*---------------------------------------------------------------------------
4024 * WLAN_HAL_GET_ROAM_RSSI_REQ
4025 *--------------------------------------------------------------------------*/
4026typedef PACKED_PRE struct PACKED_POST
4027{
4028 tHalMsgHeader header;
4029 tHalRoamRssiReqParams roamRssiReqParams;
4030} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4031
4032
Jeff Johnson295189b2012-06-20 16:38:30 -07004033/*---------------------------------------------------------------------------
4034 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4035 *--------------------------------------------------------------------------*/
4036typedef PACKED_PRE struct PACKED_POST {
4037 tANI_U8 staidx; // STA index
4038 tANI_U8 ac; // Access Category
4039 tANI_U8 up; // User Priority
4040 tANI_U32 srvInterval; // Service Interval
4041 tANI_U32 susInterval; // Suspend Interval
4042 tANI_U32 delayInterval; // Delay Interval
4043} tUapsdInfo, tpUapsdInfo;
4044
4045typedef PACKED_PRE struct PACKED_POST
4046{
4047 tHalMsgHeader header;
4048 tUapsdInfo enableUapsdAcParams;
4049} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4050
4051/*---------------------------------------------------------------------------
4052 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4053 *--------------------------------------------------------------------------*/
4054typedef PACKED_PRE struct PACKED_POST {
4055 tANI_U8 setMcstBcstFilterSetting;
4056 tANI_U8 setMcstBcstFilter;
4057} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4058
4059typedef PACKED_PRE struct PACKED_POST
4060{
4061 tHalMsgHeader header;
4062 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4063} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4064
4065/*---------------------------------------------------------------------------
4066 * WLAN_HAL_ENTER_IMPS_RSP
4067 *--------------------------------------------------------------------------*/
4068typedef PACKED_PRE struct PACKED_POST
4069{
4070 /* success or failure */
4071 tANI_U32 status;
4072} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4073
4074typedef PACKED_PRE struct PACKED_POST
4075{
4076 tHalMsgHeader header;
4077 tHalEnterImpsRspParams enterImpsRspParams;
4078} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4079
4080/*---------------------------------------------------------------------------
4081 * WLAN_HAL_EXIT_IMPS_RSP
4082 *--------------------------------------------------------------------------*/
4083typedef PACKED_PRE struct PACKED_POST
4084{
4085 /* success or failure */
4086 tANI_U32 status;
4087} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4088
4089typedef PACKED_PRE struct PACKED_POST
4090{
4091 tHalMsgHeader header;
4092 tHalExitImpsRspParams exitImpsRspParams;
4093} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4094
4095/*---------------------------------------------------------------------------
4096 * WLAN_HAL_ENTER_BMPS_RSP
4097 *--------------------------------------------------------------------------*/
4098typedef PACKED_PRE struct PACKED_POST
4099{
4100 /* success or failure */
4101 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004102 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004103} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4104
4105typedef PACKED_PRE struct PACKED_POST
4106{
4107 tHalMsgHeader header;
4108 tHalEnterBmpsRspParams enterBmpsRspParams;
4109} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4110
4111/*---------------------------------------------------------------------------
4112 * WLAN_HAL_EXIT_BMPS_RSP
4113 *--------------------------------------------------------------------------*/
4114typedef PACKED_PRE struct PACKED_POST
4115{
4116 /* success or failure */
4117 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004118 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004119} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4120
4121typedef PACKED_PRE struct PACKED_POST
4122{
4123 tHalMsgHeader header;
4124 tHalExitBmpsRspParams exitBmpsRspParams;
4125} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4126
4127/*---------------------------------------------------------------------------
4128 * WLAN_HAL_ENTER_UAPSD_RSP
4129 *--------------------------------------------------------------------------*/
4130typedef PACKED_PRE struct PACKED_POST
4131{
4132 /* success or failure */
4133 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004134 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004135}tUapsdRspParams, *tpUapsdRspParams;
4136
4137typedef PACKED_PRE struct PACKED_POST
4138{
4139 tHalMsgHeader header;
4140 tUapsdRspParams enterUapsdRspParams;
4141} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4142
4143/*---------------------------------------------------------------------------
4144 * WLAN_HAL_EXIT_UAPSD_RSP
4145 *--------------------------------------------------------------------------*/
4146typedef PACKED_PRE struct PACKED_POST
4147{
4148 /* success or failure */
4149 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004150 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004151} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4152
4153typedef PACKED_PRE struct PACKED_POST
4154{
4155 tHalMsgHeader header;
4156 tHalExitUapsdRspParams exitUapsdRspParams;
4157} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4158
4159/*---------------------------------------------------------------------------
4160 * WLAN_HAL_RSSI_NOTIFICATION_IND
4161 *--------------------------------------------------------------------------*/
4162typedef PACKED_PRE struct PACKED_POST
4163{
4164 tANI_U32 bRssiThres1PosCross : 1;
4165 tANI_U32 bRssiThres1NegCross : 1;
4166 tANI_U32 bRssiThres2PosCross : 1;
4167 tANI_U32 bRssiThres2NegCross : 1;
4168 tANI_U32 bRssiThres3PosCross : 1;
4169 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004170 tANI_U32 avgRssi : 8;
4171 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004172} tHalRSSINotification, *tpHalRSSINotification;
4173
4174typedef PACKED_PRE struct PACKED_POST
4175{
4176 tHalMsgHeader header;
4177 tHalRSSINotification rssiNotificationParams;
4178} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4179
4180/*---------------------------------------------------------------------------
4181 * WLAN_HAL_GET_RSSI_RSP
4182 *--------------------------------------------------------------------------*/
4183typedef PACKED_PRE struct PACKED_POST
4184{
4185 /* success or failure */
4186 tANI_U32 status;
4187 tANI_S8 rssi;
4188} tHalGetRssiParams, *tpHalGetRspParams;
4189
4190typedef PACKED_PRE struct PACKED_POST
4191{
4192 tHalMsgHeader header;
4193 tHalGetRssiParams rssiRspParams;
4194} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4195
4196/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004197 * WLAN_HAL_GET_ROAM_RSSI_RSP
4198 *--------------------------------------------------------------------------*/
4199typedef PACKED_PRE struct PACKED_POST
4200{
4201 /* success or failure */
4202 tANI_U32 status;
4203
4204 tANI_U8 staId;
4205 tANI_S8 rssi;
4206} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4207
4208typedef PACKED_PRE struct PACKED_POST
4209{
4210 tHalMsgHeader header;
4211 tHalGetRoamRssiParams roamRssiRspParams;
4212} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4213
4214/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004215 * WLAN_HAL_ENTER_WOWL_RSP
4216 *--------------------------------------------------------------------------*/
4217typedef PACKED_PRE struct PACKED_POST
4218{
4219 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004220 tANI_U32 status;
4221 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004222} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4223
4224typedef PACKED_PRE struct PACKED_POST
4225{
4226 tHalMsgHeader header;
4227 tHalEnterWowlRspParams enterWowlRspParams;
4228} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4229
4230/*---------------------------------------------------------------------------
4231 * WLAN_HAL_EXIT_WOWL_RSP
4232 *--------------------------------------------------------------------------*/
4233typedef PACKED_PRE struct PACKED_POST
4234{
4235 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004236 tANI_U32 status;
4237 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004238} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4239
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 tHalMsgHeader header;
4243 tHalExitWowlRspParams exitWowlRspParams;
4244} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4245
4246/*---------------------------------------------------------------------------
4247 * WLAN_HAL_ADD_BCN_FILTER_RSP
4248 *--------------------------------------------------------------------------*/
4249typedef PACKED_PRE struct PACKED_POST
4250{
4251 /* success or failure */
4252 tANI_U32 status;
4253} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4254
4255typedef PACKED_PRE struct PACKED_POST
4256{
4257 tHalMsgHeader header;
4258 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4259} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4260
4261/*---------------------------------------------------------------------------
4262 * WLAN_HAL_REM_BCN_FILTER_RSP
4263 *--------------------------------------------------------------------------*/
4264typedef PACKED_PRE struct PACKED_POST
4265{
4266 /* success or failure */
4267 tANI_U32 status;
4268} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4269
4270typedef PACKED_PRE struct PACKED_POST
4271{
4272 tHalMsgHeader header;
4273 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4274} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4275
4276/*---------------------------------------------------------------------------
4277 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4278 *--------------------------------------------------------------------------*/
4279typedef PACKED_PRE struct PACKED_POST
4280{
4281 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004282 tANI_U32 status;
4283 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004284} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4285
4286typedef PACKED_PRE struct PACKED_POST
4287{
4288 tHalMsgHeader header;
4289 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4290} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4291
4292/*---------------------------------------------------------------------------
4293 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4294 *--------------------------------------------------------------------------*/
4295typedef PACKED_PRE struct PACKED_POST
4296{
4297 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004298 tANI_U32 status;
4299 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004300} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4301
4302typedef PACKED_PRE struct PACKED_POST
4303{
4304 tHalMsgHeader header;
4305 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4306} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4307
4308/*---------------------------------------------------------------------------
4309 * WLAN_HAL_HOST_OFFLOAD_RSP
4310 *--------------------------------------------------------------------------*/
4311typedef PACKED_PRE struct PACKED_POST
4312{
4313 /* success or failure */
4314 tANI_U32 status;
4315} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4316
4317typedef PACKED_PRE struct PACKED_POST
4318{
4319 tHalMsgHeader header;
4320 tHalHostOffloadRspParams hostOffloadRspParams;
4321} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4322
4323/*---------------------------------------------------------------------------
4324 * WLAN_HAL_KEEP_ALIVE_RSP
4325 *--------------------------------------------------------------------------*/
4326typedef PACKED_PRE struct PACKED_POST
4327{
4328 /* success or failure */
4329 tANI_U32 status;
4330} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4331
4332typedef PACKED_PRE struct PACKED_POST
4333{
4334 tHalMsgHeader header;
4335 tHalKeepAliveRspParams keepAliveRspParams;
4336} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4337
4338/*---------------------------------------------------------------------------
4339 * WLAN_HAL_SET_RSSI_THRESH_RSP
4340 *--------------------------------------------------------------------------*/
4341typedef PACKED_PRE struct PACKED_POST
4342{
4343 /* success or failure */
4344 tANI_U32 status;
4345} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4346
4347typedef PACKED_PRE struct PACKED_POST
4348{
4349 tHalMsgHeader header;
4350 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4351} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4352
4353/*---------------------------------------------------------------------------
4354 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4355 *--------------------------------------------------------------------------*/
4356typedef PACKED_PRE struct PACKED_POST
4357{
4358 /* success or failure */
4359 tANI_U32 status;
4360} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4361
4362typedef PACKED_PRE struct PACKED_POST
4363{
4364 tHalMsgHeader header;
4365 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4366} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4367
4368/*---------------------------------------------------------------------------
4369 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4370 *--------------------------------------------------------------------------*/
4371typedef PACKED_PRE struct PACKED_POST
4372{
4373 /* success or failure */
4374 tANI_U32 status;
4375} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4376
4377typedef PACKED_PRE struct PACKED_POST
4378{
4379 tHalMsgHeader header;
4380 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4381} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4382
4383/*---------------------------------------------------------------------------
4384 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4385 *--------------------------------------------------------------------------*/
4386
4387typedef PACKED_PRE struct PACKED_POST
4388{
4389 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4390 //the request has power constraints, this should be applied only to that session
4391 tSirMacAddr selfStaMacAddr;
4392 //In request,
4393 //power == MaxTx power to be used.
4394 tPowerdBm power;
4395
4396}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4397
4398
4399typedef PACKED_PRE struct PACKED_POST
4400{
4401 tHalMsgHeader header;
4402 tSetMaxTxPwrParams setMaxTxPwrParams;
4403}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4404
4405/*---------------------------------------------------------------------------
4406*WLAN_HAL_SET_MAX_TX_POWER_RSP
4407*--------------------------------------------------------------------------*/
4408
4409typedef PACKED_PRE struct PACKED_POST
4410{
4411 //power == tx power used for management frames.
4412 tPowerdBm power;
4413
4414 /* success or failure */
4415 tANI_U32 status;
4416}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4417
4418typedef PACKED_PRE struct PACKED_POST
4419{
4420 tHalMsgHeader header;
4421 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4422}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4423
4424/*---------------------------------------------------------------------------
4425 *WLAN_HAL_SET_TX_POWER_REQ
4426 *--------------------------------------------------------------------------*/
4427
4428typedef PACKED_PRE struct PACKED_POST
4429{
4430 /* TX Power in milli watts */
4431 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004432 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004433}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4434
4435
4436typedef PACKED_PRE struct PACKED_POST
4437{
4438 tHalMsgHeader header;
4439 tSetTxPwrReqParams setTxPwrReqParams;
4440}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4441
4442/*---------------------------------------------------------------------------
4443*WLAN_HAL_SET_TX_POWER_RSP
4444*--------------------------------------------------------------------------*/
4445
4446typedef PACKED_PRE struct PACKED_POST
4447{
4448 /* success or failure */
4449 tANI_U32 status;
4450}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4451
4452typedef PACKED_PRE struct PACKED_POST
4453{
4454 tHalMsgHeader header;
4455 tSetTxPwrRspParams setTxPwrRspParams;
4456}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4457
4458/*---------------------------------------------------------------------------
4459 *WLAN_HAL_GET_TX_POWER_REQ
4460 *--------------------------------------------------------------------------*/
4461
4462typedef PACKED_PRE struct PACKED_POST
4463{
4464 tANI_U8 staId;
4465}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4466
4467typedef PACKED_PRE struct PACKED_POST
4468{
4469 tHalMsgHeader header;
4470 tGetTxPwrReqParams getTxPwrReqParams;
4471}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4472
4473/*---------------------------------------------------------------------------
4474*WLAN_HAL_GET_TX_POWER_RSP
4475*--------------------------------------------------------------------------*/
4476
4477typedef PACKED_PRE struct PACKED_POST
4478{
4479 /* success or failure */
4480 tANI_U32 status;
4481
4482 /* TX Power in milli watts */
4483 tANI_U32 txPower;
4484}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4485
4486typedef PACKED_PRE struct PACKED_POST
4487{
4488 tHalMsgHeader header;
4489 tGetTxPwrRspParams getTxPwrRspParams;
4490}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4491
4492#ifdef WLAN_FEATURE_P2P
4493/*---------------------------------------------------------------------------
4494 *WLAN_HAL_SET_P2P_GONOA_REQ
4495 *--------------------------------------------------------------------------*/
4496
4497typedef PACKED_PRE struct PACKED_POST
4498{
4499 tANI_U8 opp_ps;
4500 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004501 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004502 tANI_U32 duration;
4503 tANI_U32 interval;
4504 tANI_U32 single_noa_duration;
4505 tANI_U8 psSelection;
4506}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4507
4508
4509typedef PACKED_PRE struct PACKED_POST
4510{
4511 tHalMsgHeader header;
4512 tSetP2PGONOAParams setP2PGONOAParams;
4513}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4514
4515/*---------------------------------------------------------------------------
4516*WLAN_HAL_SET_P2P_GONOA_RSP
4517*--------------------------------------------------------------------------*/
4518
4519typedef PACKED_PRE struct PACKED_POST
4520{
4521 /* success or failure */
4522 tANI_U32 status;
4523}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4524
4525typedef PACKED_PRE struct PACKED_POST
4526{
4527 tHalMsgHeader header;
4528 tSetP2PGONOARspParams setP2PGONOARspParams;
4529}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4530#endif
4531
4532/*---------------------------------------------------------------------------
4533 *WLAN_HAL_ADD_SELF_STA_REQ
4534 *--------------------------------------------------------------------------*/
4535
4536typedef PACKED_PRE struct PACKED_POST
4537{
4538 tSirMacAddr selfMacAddr;
4539 tANI_U32 status;
4540}tAddStaSelfParams, *tpAddStaSelfParams;
4541
4542
4543typedef PACKED_PRE struct PACKED_POST
4544{
4545 tHalMsgHeader header;
4546 tAddStaSelfParams addStaSelfParams;
4547}tAddStaSelfReq, *tpAddStaSelfReq;
4548
4549/*---------------------------------------------------------------------------
4550*WLAN_HAL_ADD_SELF_STA_RSP
4551*--------------------------------------------------------------------------*/
4552
4553typedef PACKED_PRE struct PACKED_POST
4554{
4555 /* success or failure */
4556 tANI_U32 status;
4557
4558 /*Self STA Index */
4559 tANI_U8 selfStaIdx;
4560
4561 /* DPU Index (IGTK, PTK, GTK all same) */
4562 tANI_U8 dpuIdx;
4563
4564 /* DPU Signature */
4565 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004566
Jeff Johnson295189b2012-06-20 16:38:30 -07004567}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4568
4569typedef PACKED_PRE struct PACKED_POST
4570{
4571 tHalMsgHeader header;
4572 tAddStaSelfRspParams addStaSelfRspParams;
4573}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4574
4575
4576/*---------------------------------------------------------------------------
4577 WLAN_HAL_DEL_STA_SELF_REQ
4578---------------------------------------------------------------------------*/
4579
4580typedef PACKED_PRE struct PACKED_POST
4581{
4582 tSirMacAddr selfMacAddr;
4583
4584}tDelStaSelfParams, *tpDelStaSelfParams;
4585
4586typedef PACKED_PRE struct PACKED_POST
4587{
4588 tHalMsgHeader header;
4589 tDelStaSelfParams delStaSelfParams;
4590} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4591
4592
4593/*---------------------------------------------------------------------------
4594 WLAN_HAL_DEL_STA_SELF_RSP
4595---------------------------------------------------------------------------*/
4596
4597typedef PACKED_PRE struct PACKED_POST
4598{
4599 /*success or failure */
4600 tANI_U32 status;
4601
4602 tSirMacAddr selfMacAddr;
4603}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4604
4605typedef PACKED_PRE struct PACKED_POST
4606{
4607 tHalMsgHeader header;
4608 tDelStaSelfRspParams delStaSelfRspParams;
4609} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4610
4611
4612#ifdef WLAN_FEATURE_VOWIFI_11R
4613
4614/*---------------------------------------------------------------------------
4615 *WLAN_HAL_AGGR_ADD_TS_REQ
4616 *--------------------------------------------------------------------------*/
4617
4618typedef PACKED_PRE struct PACKED_POST
4619{
4620 /* Station Index */
4621 tANI_U16 staIdx;
4622
4623 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4624 /* This will carry the bitmap with the bit positions representing different AC.s*/
4625 tANI_U16 tspecIdx;
4626
4627 /* Tspec info per AC To program TPE with required parameters */
4628 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4629
4630 /* U-APSD Flags: 1b per AC. Encoded as follows:
4631 b7 b6 b5 b4 b3 b2 b1 b0 =
4632 X X X X BE BK VI VO */
4633 tANI_U8 uAPSD;
4634
4635 /* These parameters are for all the access categories */
4636 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4637 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4638 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4639
4640}tAggrAddTsParams, *tpAggrAddTsParams;
4641
4642
4643typedef PACKED_PRE struct PACKED_POST
4644{
4645 tHalMsgHeader header;
4646 tAggrAddTsParams aggrAddTsParam;
4647}tAggrAddTsReq, *tpAggrAddTsReq;
4648
4649/*---------------------------------------------------------------------------
4650*WLAN_HAL_AGGR_ADD_TS_RSP
4651*--------------------------------------------------------------------------*/
4652
4653typedef PACKED_PRE struct PACKED_POST
4654{
4655 /* success or failure */
4656 tANI_U32 status0;
4657 /* FIXME PRIMA for future use for 11R */
4658 tANI_U32 status1;
4659}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4660
4661typedef PACKED_PRE struct PACKED_POST
4662{
4663 tHalMsgHeader header;
4664 tAggrAddTsRspParams aggrAddTsRspParam;
4665}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4666
4667#endif
4668
4669/*---------------------------------------------------------------------------
4670 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4671 *--------------------------------------------------------------------------*/
4672typedef PACKED_PRE struct PACKED_POST
4673{
4674 tANI_U8 isAppsCpuAwake;
4675} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4676
4677typedef PACKED_PRE struct PACKED_POST
4678{
4679 tHalMsgHeader header;
4680 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4681} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4682
4683/*---------------------------------------------------------------------------
4684 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4685 *--------------------------------------------------------------------------*/
4686typedef PACKED_PRE struct PACKED_POST
4687{
4688 /* success or failure */
4689 tANI_U32 status;
4690} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4691
4692typedef PACKED_PRE struct PACKED_POST
4693{
4694 tHalMsgHeader header;
4695 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4696} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4697/*---------------------------------------------------------------------------
4698 * WLAN_HAL_DUMP_COMMAND_REQ
4699 *--------------------------------------------------------------------------*/
4700
4701typedef PACKED_PRE struct PACKED_POST
4702{
4703 tANI_U32 argument1;
4704 tANI_U32 argument2;
4705 tANI_U32 argument3;
4706 tANI_U32 argument4;
4707 tANI_U32 argument5;
4708
4709}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4710
4711typedef PACKED_PRE struct PACKED_POST
4712{
4713 tHalMsgHeader header;
4714 tHalDumpCmdReqParams dumpCmdReqParams;
4715} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4716
4717/*---------------------------------------------------------------------------
4718 * WLAN_HAL_DUMP_COMMAND_RSP
4719 *--------------------------------------------------------------------------*/
4720
4721typedef PACKED_PRE struct PACKED_POST
4722{
4723 /* success or failure */
4724 tANI_U32 status;
4725 /*Length of the responce message*/
4726 tANI_U32 rspLength;
4727 /*FiXME: Currently considering the the responce will be less than 100bytes */
4728 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004729
Jeff Johnson295189b2012-06-20 16:38:30 -07004730} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4731
4732typedef PACKED_PRE struct PACKED_POST
4733{
4734 tHalMsgHeader header;
4735 tHalDumpCmdRspParams dumpCmdRspParams;
4736} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4737
4738/*---------------------------------------------------------------------------
4739 *WLAN_HAL_COEX_IND
4740 *-------------------------------------------------------------------------*/
4741#define WLAN_COEX_IND_DATA_SIZE (4)
4742#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4743#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004744#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
4745#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Jeff Johnson295189b2012-06-20 16:38:30 -07004746
4747typedef PACKED_PRE struct PACKED_POST
4748{
4749 /*Coex Indication Type*/
4750 tANI_U32 coexIndType;
4751
4752 /*Coex Indication Data*/
4753 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4754}tCoexIndParams,*tpCoexIndParams;
4755
4756typedef PACKED_PRE struct PACKED_POST
4757{
4758 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004759 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004760}tCoexIndMsg, *tpCoexIndMsg;
4761
4762/*---------------------------------------------------------------------------
4763 *WLAN_HAL_OTA_TX_COMPL_IND
4764 *-------------------------------------------------------------------------*/
4765
4766typedef PACKED_PRE struct PACKED_POST
4767{
4768 /*Tx Complete Indication Success or Failure*/
4769 tANI_U32 status;
4770}tTxComplParams,*tpTxComplParams;
4771
4772typedef PACKED_PRE struct PACKED_POST
4773{
4774 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004775 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004776}tTxComplIndMsg, *tpTxComplIndMsg;
4777
4778/*---------------------------------------------------------------------------
4779 * WLAN_HAL_HOST_SUSPEND_IND
4780 *-------------------------------------------------------------------------*/
4781
4782typedef PACKED_PRE struct PACKED_POST
4783{
4784 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004785 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004786}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4787
4788typedef PACKED_PRE struct PACKED_POST
4789{
4790 tHalMsgHeader header;
4791 tHalWlanHostSuspendIndParam suspendIndParams;
4792}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4793
4794/*---------------------------------------------------------------------------
4795 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4796 *-------------------------------------------------------------------------*/
4797
4798typedef PACKED_PRE struct PACKED_POST
4799{
4800 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004801 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004802}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4803
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 tHalMsgHeader header;
4807 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4808}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4809
4810#ifdef WLAN_FEATURE_P2P
4811/*---------------------------------------------------------------------------
4812 *WLAN_HAL_NOA_ATTR_IND
4813 *-------------------------------------------------------------------------*/
4814
4815typedef PACKED_PRE struct PACKED_POST
4816{
4817 tANI_U8 index ;
4818 tANI_U8 oppPsFlag ;
4819 tANI_U16 ctWin ;
4820
4821 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08004822 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004823 tANI_U32 uNoa1Duration;
4824 tANI_U32 uNoa1Interval;
4825 tANI_U32 uNoa1StartTime;
4826
4827 tANI_U16 uNoa2IntervalCnt;
4828 tANI_U16 rsvd2;
4829 tANI_U32 uNoa2Duration;
4830 tANI_U32 uNoa2Interval;
4831 tANI_U32 uNoa2StartTime;
4832
4833 tANI_U32 status;
4834}tNoaAttrIndParams, *tpNoaAttrIndParams;
4835
4836typedef PACKED_PRE struct PACKED_POST
4837{
4838 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004839 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004840}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004841
4842/*---------------------------------------------------------------------------
4843 *WLAN_HAL_NOA_START_IND
4844 *-------------------------------------------------------------------------*/
4845
4846typedef PACKED_PRE struct PACKED_POST
4847{
4848 tANI_U32 status;
4849 tANI_U32 bssIdx;
4850}tNoaStartIndParams, *tpNoaStartIndParams;
4851
4852typedef PACKED_PRE struct PACKED_POST
4853{
4854 tHalMsgHeader header;
4855 tNoaStartIndParams noaStartIndParams;
4856}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004857#endif
4858
4859/*---------------------------------------------------------------------------
4860 * WLAN_HAL_HOST_RESUME_REQ
4861 *-------------------------------------------------------------------------*/
4862
4863typedef PACKED_PRE struct PACKED_POST
4864{
4865 tANI_U8 configuredMcstBcstFilterSetting;
4866}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4867
4868typedef PACKED_PRE struct PACKED_POST
4869{
4870 tHalMsgHeader header;
4871 tHalWlanHostResumeReqParam resumeReqParams;
4872}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4873
4874/*---------------------------------------------------------------------------
4875 * WLAN_HAL_HOST_RESUME_RSP
4876 *--------------------------------------------------------------------------*/
4877typedef PACKED_PRE struct PACKED_POST
4878{
4879 /* success or failure */
4880 tANI_U32 status;
4881} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4882
4883typedef PACKED_PRE struct PACKED_POST
4884{
4885 tHalMsgHeader header;
4886 tHalHostResumeRspParams hostResumeRspParams;
4887} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4888
Anand Kumar012623a2013-01-11 17:00:00 -08004889typedef PACKED_PRE struct PACKED_POST
4890{
4891 tANI_U16 staIdx;
4892 // Peer MAC Address, whose BA session has timed out
4893 tSirMacAddr peerMacAddr;
4894 // TID for which a BA session timeout is being triggered
4895 tANI_U8 baTID;
4896 // DELBA direction
4897 // 1 - Originator
4898 // 0 - Recipient
4899 tANI_U8 baDirection;
4900 tANI_U32 reasonCode;
4901 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4902} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
4903
4904typedef PACKED_PRE struct PACKED_POST
4905{
4906 tHalMsgHeader header;
4907 tHalWlanDelBaIndMsg hostdelBaParam;
4908} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
4909
Jeff Johnson295189b2012-06-20 16:38:30 -07004910/*---------------------------------------------------------------------------
4911 *PNO Messages
4912 *-------------------------------------------------------------------------*/
4913/*Max number of channels that a network can be found on*/
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07004914#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07004915
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304916/*Max number of channels that a network can be found on*/
4917#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4918
Jeff Johnson295189b2012-06-20 16:38:30 -07004919/*Maximum numbers of networks supported by PNO*/
4920#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4921
4922/*The number of scan time intervals that can be programmed into PNO*/
4923#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4924
4925/*Maximum size of the probe template*/
4926#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4927
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004928#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
4929#define CHANNEL_LIST_STATIC 1 /* Occupied channel list remains static */
4930#define CHANNEL_LIST_DYNAMIC_INIT 2 /* Occupied channel list can be learnt after init */
4931#define CHANNEL_LIST_DYNAMIC_FLUSH 3 /* Occupied channel list can be learnt after flush */
4932#define CHANNEL_LIST_DYNAMIC_UPDATE 4 /* Occupied channel list can be learnt after update */
4933#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
4934#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS NUM_RF_CHANNELS
4935#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 64
4936#endif
4937
Jeff Johnson32d95a32012-09-10 13:15:23 -07004938/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004939 Immediate - scanning will start immediately and PNO procedure will
4940 be repeated based on timer
4941 Suspend - scanning will start at suspend
4942 Resume - scanning will start on system resume*/
4943typedef enum
4944{
4945 ePNO_MODE_IMMEDIATE,
4946 ePNO_MODE_ON_SUSPEND,
4947 ePNO_MODE_ON_RESUME,
4948 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4949} ePNOMode;
4950
4951/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004952typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004953{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004954 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004955 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004956
Jeff Johnson295189b2012-06-20 16:38:30 -07004957 // Upper layer authentication types
4958 eAUTH_TYPE_WPA = 2,
4959 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004960
Jeff Johnson295189b2012-06-20 16:38:30 -07004961 eAUTH_TYPE_RSN = 4,
4962 eAUTH_TYPE_RSN_PSK = 5,
4963 eAUTH_TYPE_FT_RSN = 6,
4964 eAUTH_TYPE_FT_RSN_PSK = 7,
4965 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4966 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07004967 eAUTH_TYPE_CCKM_WPA = 10,
4968 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004969
Jeff Johnson295189b2012-06-20 16:38:30 -07004970 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4971
4972}tAuthType;
4973
4974/* Encryption type */
4975typedef enum eEdType
4976{
4977 eED_ANY = 0,
4978 eED_NONE = 1,
4979 eED_WEP = 2,
4980 eED_TKIP = 3,
4981 eED_CCMP = 4,
4982 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004983
Jeff Johnson295189b2012-06-20 16:38:30 -07004984 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4985} tEdType;
4986
4987/* SSID broadcast type */
4988typedef enum eSSIDBcastType
4989{
4990 eBCAST_UNKNOWN = 0,
4991 eBCAST_NORMAL = 1,
4992 eBCAST_HIDDEN = 2,
4993
4994 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4995} tSSIDBcastType;
4996
Jeff Johnson32d95a32012-09-10 13:15:23 -07004997/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004998 The network description for which PNO will have to look for
4999*/
5000typedef PACKED_PRE struct PACKED_POST
5001{
5002 /*SSID of the BSS*/
5003 tSirMacSSid ssId;
5004
5005 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005006 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005007
5008 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005009 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005010
Jeff Johnson32d95a32012-09-10 13:15:23 -07005011 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005012 0 - if all channels */
5013 tANI_U8 ucChannelCount;
5014 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5015
5016 /*Indicates the RSSI threshold for the network to be considered*/
5017 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005018}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005019
5020typedef PACKED_PRE struct PACKED_POST
5021{
5022 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005023 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005024
Jeff Johnson32d95a32012-09-10 13:15:23 -07005025 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005026 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005027 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005028
Jeff Johnson32d95a32012-09-10 13:15:23 -07005029 /*e.g: 2 3
5030 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005031 - it will wait 2s between consecutive scans for 3 times
5032 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005033}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005034
Jeff Johnson32d95a32012-09-10 13:15:23 -07005035/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005036 The network parameters to be sent to the PNO algorithm
5037*/
5038typedef PACKED_PRE struct PACKED_POST
5039{
5040 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005041 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005042
Jeff Johnson32d95a32012-09-10 13:15:23 -07005043 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005044 two consecutive scan procedures
5045 If the desired is for a uniform timer that fires always at the exact same
5046 interval - one single value is to be set
5047 If there is a desire for a more complex - telescopic like timer multiple
5048 values can be set - once PNO reaches the end of the array it will
5049 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005050 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005051
5052}tScanTimersType;
5053
5054typedef PACKED_PRE struct PACKED_POST {
5055
5056 /*Enable PNO*/
5057 tANI_U32 enable;
5058
5059 /*Immediate, On Suspend, On Resume*/
5060 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005061
Jeff Johnson295189b2012-06-20 16:38:30 -07005062 /*Number of networks sent for PNO*/
5063 tANI_U32 ucNetworksCount;
5064
5065 /*The networks that PNO needs to look for*/
5066 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5067
5068 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005069 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005070
5071 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005072 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005073 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5074
5075 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005076 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005077 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5078
5079} tPrefNetwListParams, * tpPrefNetwListParams;
5080
5081/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005082 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005083*/
5084typedef PACKED_PRE struct PACKED_POST
5085{
5086 tHalMsgHeader header;
5087 tPrefNetwListParams prefNetwListParams;
5088} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5089
5090
Jeff Johnson32d95a32012-09-10 13:15:23 -07005091/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005092 The network description for which PNO will have to look for
5093*/
5094typedef PACKED_PRE struct PACKED_POST
5095{
5096 /*SSID of the BSS*/
5097 tSirMacSSid ssId;
5098
5099 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005100 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005101
5102 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005103 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005104
5105 /*SSID broadcast type, normal, hidden or unknown*/
5106 tSSIDBcastType bcastNetworkType;
5107
Jeff Johnson32d95a32012-09-10 13:15:23 -07005108 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005109 0 - if all channels */
5110 tANI_U8 ucChannelCount;
5111 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5112
5113 /*Indicates the RSSI threshold for the network to be considered*/
5114 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005115}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005116
5117typedef PACKED_PRE struct PACKED_POST {
5118
5119 /*Enable PNO*/
5120 tANI_U32 enable;
5121
5122 /*Immediate, On Suspend, On Resume*/
5123 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005124
Jeff Johnson295189b2012-06-20 16:38:30 -07005125 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005126 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005127
5128 /*The networks that PNO needs to look for*/
5129 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5130
5131 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005132 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005133
5134 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005135 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005136 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5137
5138 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005139 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005140 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5141
5142} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5143
5144/*
5145 Preferred network list request new
5146*/
5147typedef PACKED_PRE struct PACKED_POST
5148{
5149 tHalMsgHeader header;
5150 tPrefNetwListParamsNew prefNetwListParams;
5151} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5152
5153/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005154 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005155*/
5156typedef PACKED_PRE struct PACKED_POST
5157{
5158 tHalMsgHeader header;
5159
Jeff Johnson32d95a32012-09-10 13:15:23 -07005160 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005161 the request and will start scanning*/
5162 tANI_U32 status;
5163} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5164
5165/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005166 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005167*/
5168typedef PACKED_PRE struct PACKED_POST {
5169
5170 /*Network that was found with the highest RSSI*/
5171 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005172
Jeff Johnson295189b2012-06-20 16:38:30 -07005173 /*Indicates the RSSI */
5174 tANI_U8 rssi;
5175
5176} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5177
5178/*
5179 Preferred network found indication
5180*/
5181typedef PACKED_PRE struct PACKED_POST {
5182
5183 tHalMsgHeader header;
5184 tPrefNetwFoundParams prefNetwFoundParams;
5185} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5186
5187
5188typedef PACKED_PRE struct PACKED_POST {
5189
5190 /*RSSI Threshold*/
5191 tANI_U8 ucRssiThreshold;
5192
5193} tRssiFilterParams, * tpRssiFilterParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005194#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5195typedef PACKED_PRE struct PACKED_POST
5196{
5197 tSirMacSSid ssId;
5198 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5199 tANI_U32 authentication;
5200 tEdType encryption;
5201 tEdType mcencryption;
5202 tANI_U8 ChannelCount;
5203 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5204}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005205
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005206typedef PACKED_PRE struct PACKED_POST
5207{
5208 tANI_U8 mdiePresent;
5209 tANI_U16 mobilityDomain;
5210}tMobilityDomainInfo;
5211
5212typedef PACKED_PRE struct PACKED_POST {
5213 eAniBoolean RoamScanOffloadEnabled;
5214 tANI_S8 LookupThreshold;
5215 tANI_U8 RoamRssiDiff;
5216 tANI_U8 ChannelCacheType;
5217 tANI_U8 Command;
5218 tANI_U8 StartScanReason;
5219 tANI_U16 NeighborScanTimerPeriod;
5220 tANI_U16 NeighborRoamScanRefreshPeriod;
5221 tANI_U16 NeighborScanChannelMinTime;
5222 tANI_U16 NeighborScanChannelMaxTime;
5223 tANI_U16 EmptyRefreshScanPeriod;
5224 tANI_U8 ValidChannelCount;
5225 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5226 eAniBoolean IsCCXEnabled;
5227
5228 tANI_U16 us24GProbeSize;
5229 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5230 tANI_U16 us5GProbeSize;
5231 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5232 /* Add Reserved bytes */
5233 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5234 tRoamNetworkType ConnectedNetwork;
5235 tMobilityDomainInfo MDID;
5236} tRoamCandidateListParams, * tpRoamCandidateListParams;
5237
5238typedef PACKED_PRE struct PACKED_POST
5239{
5240 tHalMsgHeader header;
5241 tRoamCandidateListParams RoamScanOffloadNetwListParams;
5242} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5243
5244typedef PACKED_PRE struct PACKED_POST
5245{
5246 tHalMsgHeader header;
5247
5248 /*status of the request - just to indicate that PNO has acknowledged
5249 * the request and will start scanning*/
5250 tANI_U32 status;
5251} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5252#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07005253/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005254 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005255*/
5256typedef PACKED_PRE struct PACKED_POST
5257{
5258 tHalMsgHeader header;
5259 tRssiFilterParams prefRSSIFilterParams;
5260} tSetRssiFilterReq, *tpSetRssiFilterReq;
5261
5262/*
5263 Set RSSI filter resp
5264*/
5265typedef PACKED_PRE struct PACKED_POST{
5266 tHalMsgHeader header;
5267 /*status of the request */
5268 tANI_U32 status;
5269} tSetRssiFilterResp, *tpSetRssiFilterResp;
5270/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005271 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005272*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005273typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005274{
5275
5276 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005277 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005278
5279 /*Lets PNO know that host has determined the regulatory domain*/
5280 tANI_U8 b11dResolved;
5281
5282 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005283 tANI_U8 ucChannelCount;
5284 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005285
5286 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005287 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005288
5289 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005290 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005291
5292 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005293 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005294
5295 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005296 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005297
5298 /*Cb State*/
5299 ePhyChanBondState cbState;
5300
5301} tUpdateScanParams, * tpUpdateScanParams;
5302
5303/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305304 Update scan params
5305*/
5306typedef PACKED_PRE struct PACKED_POST
5307{
5308
5309 /*Host setting for 11d*/
5310 tANI_U8 b11dEnabled;
5311
5312 /*Lets PNO know that host has determined the regulatory domain*/
5313 tANI_U8 b11dResolved;
5314
5315 /*Channels on which PNO is allowed to scan*/
5316 tANI_U8 ucChannelCount;
5317 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5318
5319 /*Minimum channel time*/
5320 tANI_U16 usActiveMinChTime;
5321
5322 /*Maximum channel time*/
5323 tANI_U16 usActiveMaxChTime;
5324
5325 /*Minimum channel time*/
5326 tANI_U16 usPassiveMinChTime;
5327
5328 /*Maximum channel time*/
5329 tANI_U16 usPassiveMaxChTime;
5330
5331 /*Cb State*/
5332 ePhyChanBondState cbState;
5333
5334} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5335
5336/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005337 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005338 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005339*/
5340typedef PACKED_PRE struct PACKED_POST{
5341
5342 tHalMsgHeader header;
5343 tUpdateScanParams scanParams;
5344} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5345
5346/*
5347 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005348 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005349*/
5350typedef PACKED_PRE struct PACKED_POST{
5351
5352 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305353 tUpdateScanParamsEx scanParams;
5354} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5355
5356/*
5357 Update scan params - sent from host to PNO
5358 to be used during PNO scanning
5359*/
5360typedef PACKED_PRE struct PACKED_POST{
5361
5362 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005363
5364 /*status of the request */
5365 tANI_U32 status;
5366
5367} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5368
5369/*---------------------------------------------------------------------------
5370 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5371 *--------------------------------------------------------------------------*/
5372typedef PACKED_PRE struct PACKED_POST
5373{
5374 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5375 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5376 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5377 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5378} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5379
5380typedef PACKED_PRE struct PACKED_POST
5381{
5382 tHalMsgHeader header;
5383 tHalTxPerTrackingReqParam txPerTrackingParams;
5384} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5385
5386/*---------------------------------------------------------------------------
5387 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5388 *--------------------------------------------------------------------------*/
5389typedef PACKED_PRE struct PACKED_POST
5390{
5391 /* success or failure */
5392 tANI_U32 status;
5393} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5394
5395typedef PACKED_PRE struct PACKED_POST
5396{
5397 tHalMsgHeader header;
5398 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5399} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5400
5401/*---------------------------------------------------------------------------
5402 * WLAN_HAL_TX_PER_HIT_IND
5403 *--------------------------------------------------------------------------*/
5404typedef PACKED_PRE struct PACKED_POST
5405{
5406 tHalMsgHeader header;
5407}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5408
5409/*---------------------------------------------------------------------------
5410 *******************Packet Filtering Definitions Begin*******************
5411 *--------------------------------------------------------------------------*/
5412#define HAL_PROTOCOL_DATA_LEN 8
5413#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5414#define HAL_MAX_NUM_FILTERS 20
5415#define HAL_MAX_CMP_PER_FILTER 10
5416
5417typedef enum
5418{
5419 HAL_RCV_FILTER_TYPE_INVALID,
5420 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5421 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5422 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5423}tHalReceivePacketFilterType;
5424
Jeff Johnson32d95a32012-09-10 13:15:23 -07005425typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005426{
5427 HAL_FILTER_PROTO_TYPE_INVALID,
5428 HAL_FILTER_PROTO_TYPE_MAC,
5429 HAL_FILTER_PROTO_TYPE_ARP,
5430 HAL_FILTER_PROTO_TYPE_IPV4,
5431 HAL_FILTER_PROTO_TYPE_IPV6,
5432 HAL_FILTER_PROTO_TYPE_UDP,
5433 HAL_FILTER_PROTO_TYPE_MAX
5434}tHalRcvPktFltProtocolType;
5435
Jeff Johnson32d95a32012-09-10 13:15:23 -07005436typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005437{
5438 HAL_FILTER_CMP_TYPE_INVALID,
5439 HAL_FILTER_CMP_TYPE_EQUAL,
5440 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5441 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5442 HAL_FILTER_CMP_TYPE_MAX
5443}tHalRcvPktFltCmpFlagType;
5444
Jeff Johnson32d95a32012-09-10 13:15:23 -07005445typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005446{
5447 tANI_U8 protocolLayer;
5448 tANI_U8 cmpFlag;
5449 tANI_U16 dataLength; /* Length of the data to compare */
5450 tANI_U8 dataOffset; /* from start of the respective frame header */
5451 tANI_U8 reserved; /* Reserved field */
5452 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5453 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5454}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5455
5456typedef PACKED_PRE struct PACKED_POST
5457{
5458 tANI_U8 filterId;
5459 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005460 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005461 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005462 tHalRcvPktFilterParams paramsData[1];
5463}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5464
5465typedef PACKED_PRE struct PACKED_POST
5466{
Jeff Johnsone7245742012-09-05 17:12:55 -07005467 tANI_U8 filterId;
5468 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005469 tANI_U8 numParams;
5470 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005471 tANI_U8 bssIdx;
5472 tHalRcvPktFilterParams paramsData[1];
5473}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5474
5475typedef PACKED_PRE struct PACKED_POST
5476{
Jeff Johnson295189b2012-06-20 16:38:30 -07005477 tHalMsgHeader header;
5478 tHalRcvPktFilterCfgType pktFilterCfg;
5479} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5480
Jeff Johnsone7245742012-09-05 17:12:55 -07005481typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005482{
5483 tANI_U8 dataOffset; /* from start of the respective frame header */
5484 tANI_U32 cMulticastAddr;
5485 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005486 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005487} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5488
5489typedef PACKED_PRE struct PACKED_POST
5490{
5491 /* success or failure */
5492 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005493 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005494} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5495
5496typedef PACKED_PRE struct PACKED_POST
5497{
5498 tHalMsgHeader header;
5499 tHalSetPktFilterRspParams pktFilterRspParams;
5500} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5501
Jeff Johnsone7245742012-09-05 17:12:55 -07005502typedef PACKED_PRE struct PACKED_POST
5503{
5504 tANI_U8 bssIdx;
5505} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005506
5507typedef PACKED_PRE struct PACKED_POST
5508{
5509 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005510 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005511} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5512
Jeff Johnsone7245742012-09-05 17:12:55 -07005513
Jeff Johnson295189b2012-06-20 16:38:30 -07005514typedef PACKED_PRE struct PACKED_POST
5515{
5516 tANI_U8 filterId;
5517 tANI_U32 matchCnt;
5518} tHalRcvFltPktMatchCnt;
5519typedef PACKED_PRE struct PACKED_POST
5520{
5521 /* Success or Failure */
5522 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005523 tANI_U32 matchCnt;
5524 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005525 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005526} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5527
5528typedef PACKED_PRE struct PACKED_POST
5529{
5530 tHalMsgHeader header;
5531 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5532} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5533
5534typedef PACKED_PRE struct PACKED_POST
5535{
5536 tANI_U32 status; /* only valid for response message */
5537 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005538 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005539}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5540
5541typedef PACKED_PRE struct PACKED_POST
5542{
5543 tHalMsgHeader header;
5544 tHalRcvFltPktClearParam filterClearParam;
5545} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5546
5547typedef PACKED_PRE struct PACKED_POST
5548{
5549 tHalMsgHeader header;
5550 tHalRcvFltPktClearParam filterClearParam;
5551} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5552
5553typedef PACKED_PRE struct PACKED_POST
5554{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005555 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005556 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005557}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5558
5559typedef PACKED_PRE struct PACKED_POST
5560{
5561 tHalMsgHeader header;
5562 tHalRcvFltMcAddrListType mcAddrList;
5563} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5564
5565typedef PACKED_PRE struct PACKED_POST
5566{
5567 tHalMsgHeader header;
5568 tHalRcvFltPktSetMcListRspType rspParam;
5569} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5570
5571
5572/*---------------------------------------------------------------------------
5573 *******************Packet Filtering Definitions End*******************
5574 *--------------------------------------------------------------------------*/
5575
5576typedef PACKED_PRE struct PACKED_POST
5577{
5578 /* Ignore DTIM */
5579 tANI_U32 uIgnoreDTIM;
5580
5581 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005582 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005583
5584 /* Listen Interval */
5585 tANI_U32 uListenInterval;
5586
5587 /* Broadcast Multicast Filter */
5588 tANI_U32 uBcastMcastFilter;
5589
5590 /* Beacon Early Termination */
5591 tANI_U32 uEnableBET;
5592
5593 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005594 tANI_U32 uBETInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -07005595}tSetPowerParamsType, *tpSetPowerParamsType;
5596
5597typedef PACKED_PRE struct PACKED_POST
5598{
5599 tHalMsgHeader header;
5600 tSetPowerParamsType powerParams;
5601} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5602
5603typedef PACKED_PRE struct PACKED_POST{
5604
5605 tHalMsgHeader header;
5606
5607 /*status of the request */
5608 tANI_U32 status;
5609
5610} tSetPowerParamsResp, *tpSetPowerParamsResp;
5611
5612/*---------------------------------------------------------------------------
5613 ****************Capability bitmap exchange definitions and macros starts*************
5614 *--------------------------------------------------------------------------*/
5615
Anand Kumar012623a2013-01-11 17:00:00 -08005616typedef enum {
5617 MCC = 0,
5618 P2P = 1,
5619 DOT11AC = 2,
5620 SLM_SESSIONIZATION = 3,
5621 DOT11AC_OPMODE = 4,
5622 SAP32STA = 5,
5623 TDLS = 6,
5624 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
5625 WLANACTIVE_OFFLOAD = 8,
5626 BEACON_OFFLOAD = 9,
5627 SCAN_OFFLOAD = 10,
5628 ROAM_OFFLOAD = 11,
5629 BCN_MISS_OFFLOAD = 12,
5630 STA_POWERSAVE = 13,
5631 STA_ADVANCED_PWRSAVE = 14,
5632 AP_UAPSD = 15,
5633 AP_DFS = 16,
5634 BLOCKACK = 17,
5635 PHY_ERR = 18,
5636 BCN_FILTER = 19,
5637 RTT = 20,
5638 RATECTRL = 21,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005639 WOW = 22,
5640 WLAN_ROAM_SCAN_OFFLOAD = 23,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -07005641 //MAX_FEATURE_SUPPORTED = 128
Anand Kumar012623a2013-01-11 17:00:00 -08005642} placeHolderInCapBitmap;
5643
Jeff Johnson295189b2012-06-20 16:38:30 -07005644typedef PACKED_PRE struct PACKED_POST{
5645
5646 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07005647} tWlanFeatCaps, *tpWlanFeatCaps;
5648
5649typedef PACKED_PRE struct PACKED_POST{
5650
Jeff Johnson32d95a32012-09-10 13:15:23 -07005651 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005652 tWlanFeatCaps wlanFeatCaps;
5653
5654} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5655
Jeff Johnsone7245742012-09-05 17:12:55 -07005656#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5657#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005658#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005659#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005660#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5661#define IS_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
5662#endif
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005663
Jeff Johnsone7245742012-09-05 17:12:55 -07005664tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5665
Jeff Johnson295189b2012-06-20 16:38:30 -07005666#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005667 if ((b)<=127) { \
5668 arr_index = (b)/32; \
5669 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005670 (a)->featCaps[arr_index] |= (1<<bit_index); \
5671 } \
5672 }
5673#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005674 if ((b)<=127) { \
5675 arr_index = (b)/32; \
5676 bit_index = (b)%32; \
5677 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005678 } \
5679 }
5680#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005681 if ((b)<=127) { \
5682 arr_index = (b)/32; \
5683 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005684 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005685 } \
5686 }
5687
5688/*---------------------------------------------------------------------------
5689 * WLAN_HAL_WAKE_REASON_IND
5690 *--------------------------------------------------------------------------*/
5691
5692/* status codes to help debug rekey failures */
5693typedef enum
5694{
5695 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5696 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5697 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5698 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5699 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5700 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5701 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5702 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5703 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5704 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5705
5706 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5707} tGTKRekeyStatus;
5708
5709/* wake reason types */
5710typedef enum
5711{
5712 WLAN_HAL_WAKE_REASON_NONE = 0,
5713 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5714 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5715 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5716 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5717 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5718 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5719 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5720} tWakeReasonType;
5721
5722/*
5723 Wake Packet which is saved at tWakeReasonParams.DataStart
5724 This data is sent for any wake reasons that involve a packet-based wakeup :
5725
5726 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5727 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5728 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5729 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5730 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5731
5732 The information is provided to the host for auditing and debug purposes
5733
5734*/
5735
5736/*
5737 Wake reason indication parameters
5738*/
5739typedef PACKED_PRE struct PACKED_POST
5740{
5741 uint32 ulReason; /* see tWakeReasonType */
5742 uint32 ulReasonArg; /* argument specific to the reason type */
5743 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5744 HAL truncates the data (i.e. data packets) this length
5745 will be less than the actual length */
5746 uint32 ulActualDataLen; /* actual length of data */
5747 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5748 see specific wake type */
5749} tWakeReasonParams, *tpWakeReasonParams;
5750
5751/*
5752 Wake reason indication
5753*/
5754typedef PACKED_PRE struct PACKED_POST
5755{
5756 tHalMsgHeader header;
5757 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005758 tANI_U32 uBssIdx : 8;
5759 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005760} tHalWakeReasonInd, *tpHalWakeReasonInd;
5761
5762/*---------------------------------------------------------------------------
5763* WLAN_HAL_GTK_OFFLOAD_REQ
5764*--------------------------------------------------------------------------*/
5765
5766#define HAL_GTK_KEK_BYTES 16
5767#define HAL_GTK_KCK_BYTES 16
5768
5769#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5770
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005771#define GTK_SET_BSS_KEY_TAG 0x1234AA55
5772
Jeff Johnson295189b2012-06-20 16:38:30 -07005773typedef PACKED_PRE struct PACKED_POST
5774{
5775 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005776 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005777 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5778 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005779 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005780} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5781
5782typedef PACKED_PRE struct PACKED_POST
5783{
5784 tHalMsgHeader header;
5785 tHalGtkOffloadReqParams gtkOffloadReqParams;
5786} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5787
5788/*---------------------------------------------------------------------------
5789* WLAN_HAL_GTK_OFFLOAD_RSP
5790*--------------------------------------------------------------------------*/
5791typedef PACKED_PRE struct PACKED_POST
5792{
5793 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005794 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005795} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5796
5797typedef PACKED_PRE struct PACKED_POST
5798{
5799 tHalMsgHeader header;
5800 tHalGtkOffloadRspParams gtkOffloadRspParams;
5801} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5802
5803
5804/*---------------------------------------------------------------------------
5805* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5806*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005807typedef PACKED_PRE struct PACKED_POST
5808{
5809 tANI_U8 bssIdx;
5810
5811} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005812
5813typedef PACKED_PRE struct PACKED_POST
5814{
5815 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005816 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005817} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5818
5819/*---------------------------------------------------------------------------
5820* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5821*--------------------------------------------------------------------------*/
5822typedef PACKED_PRE struct PACKED_POST
5823{
5824 tANI_U32 ulStatus; /* success or failure */
5825 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5826 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5827 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5828 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5829 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005830 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005831} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5832
5833typedef PACKED_PRE struct PACKED_POST
5834{
5835 tHalMsgHeader header;
5836 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5837} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5838
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08005839/*---------------------------------------------------------------------------
5840* WLAN_HAL_DHCP_IND
5841*--------------------------------------------------------------------------*/
5842typedef PACKED_PRE struct PACKED_POST
5843{
5844 /*Indicates the device mode which indicates about the DHCP activity */
5845 tANI_U8 device_mode;
5846 tSirMacAddr macAddr;
5847} tDHCPInfo, *tpDHCPInfo;
5848
5849typedef PACKED_PRE struct PACKED_POST
5850{
5851 tHalMsgHeader header;
5852 tANI_U32 status; /* success or failure */
5853} tDHCPIndStatus, *tpDHCPIndstatus;
5854
Jeff Johnson295189b2012-06-20 16:38:30 -07005855/*
5856 Thermal Mitigation mode of operation.
5857 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5858 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5859 reducing transmit power
5860 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5861*/
5862typedef enum
5863{
5864 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5865 HAL_THERMAL_MITIGATION_MODE_0,
5866 HAL_THERMAL_MITIGATION_MODE_1,
5867 HAL_THERMAL_MITIGATION_MODE_2,
5868 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5869}tHalThermalMitigationModeType;
5870//typedef tANI_S16 tHalThermalMitigationModeType;
5871
5872/*
5873 Thermal Mitigation level.
5874 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5875 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5876
5877 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5878 level indicates normal mode of operation
5879 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5880 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5881 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5882 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5883*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005884typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005885{
5886 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5887 HAL_THERMAL_MITIGATION_LEVEL_0,
5888 HAL_THERMAL_MITIGATION_LEVEL_1,
5889 HAL_THERMAL_MITIGATION_LEVEL_2,
5890 HAL_THERMAL_MITIGATION_LEVEL_3,
5891 HAL_THERMAL_MITIGATION_LEVEL_4,
5892 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5893}tHalThermalMitigationLevelType;
5894//typedef tANI_S16 tHalThermalMitigationLevelType;
5895
5896typedef PACKED_PRE struct PACKED_POST
5897{
5898 /* Thermal Mitigation Operation Mode */
5899 tHalThermalMitigationModeType thermalMitMode;
5900
5901 /* Thermal Mitigation Level */
5902 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005903
Jeff Johnson295189b2012-06-20 16:38:30 -07005904}tSetThermalMitgationType, *tpSetThermalMitgationType;
5905
5906/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5907typedef PACKED_PRE struct PACKED_POST
5908{
5909 tHalMsgHeader header;
5910 tSetThermalMitgationType thermalMitParams;
5911} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5912
5913typedef PACKED_PRE struct PACKED_POST{
5914
5915 tHalMsgHeader header;
5916
5917 /*status of the request */
5918 tANI_U32 status;
5919
5920} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5921
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08005922/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
5923provided to FW from Host via periodic messages */
5924typedef PACKED_PRE struct PACKED_POST {
5925 /* TX stats */
5926 uint32 txBytesPushed;
5927 uint32 txPacketsPushed;
5928
5929 /* RX stats */
5930 uint32 rxBytesRcvd;
5931 uint32 rxPacketsRcvd;
5932 uint32 rxTimeTotal;
5933} tStaStatsClassB, *tpStaStatsClassB;
5934
5935typedef PACKED_PRE struct PACKED_POST {
5936
5937 /* Duration over which this stats was collected */
5938 tANI_U32 duration;
5939
5940 /* Per STA Stats */
5941 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
5942} tStatsClassBIndParams, *tpStatsClassBIndParams;
5943
5944typedef PACKED_PRE struct PACKED_POST {
5945
5946 tHalMsgHeader header;
5947
5948 /* Class B Stats */
5949 tStatsClassBIndParams statsClassBIndParams;
5950} tStatsClassBInd, *tpStatsClassBInd;
5951
Jeff Johnson295189b2012-06-20 16:38:30 -07005952#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
5953#pragma pack(pop)
5954#elif defined(__ANI_COMPILER_PRAGMA_PACK)
5955#else
5956#endif
5957
5958#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07005959