blob: 81d6a7ac7e507a0f6ffe62ba9d2c2ce3546bf0ef [file] [log] [blame]
Dino Mycle8afbac12014-07-04 22:06:17 +05301
Abhishek Singh00b71972016-01-07 10:51:04 +05302/*
Abhishek Singh1bb2bc22017-01-02 10:38:38 +05303 * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
Abhishek Singh00b71972016-01-07 10:51:04 +05304 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 *
8 * Permission to use, copy, modify, and/or distribute this software for
9 * any purpose with or without fee is hereby granted, provided that the
10 * above copyright notice and this permission notice appear in all
11 * copies.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
14 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
15 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
16 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
17 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
18 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20 * PERFORMANCE OF THIS SOFTWARE.
21 */
Prakash Dhavali0573c4d2014-02-12 13:19:04 -080022
23/*
Abhishek Singh00b71972016-01-07 10:51:04 +053024 * This file was originally distributed by Qualcomm Atheros, Inc.
25 * under proprietary terms before Copyright ownership was assigned
26 * to the Linux Foundation.
27 */
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070028
Jeff Johnson295189b2012-06-20 16:38:30 -070029/*==========================================================================
30 *
31 * @file: wlan_hal_msg.h
32 *
33 * @brief: Exports and types for messages sent to HAL from WDI
34 *
35 * @author: Kumar Anand
36 *
Jeff Johnson295189b2012-06-20 16:38:30 -070037 *
38 *=========================================================================*/
39
40#ifndef _WLAN_HAL_MSG_H_
41#define _WLAN_HAL_MSG_H_
42
43#include "halLegacyPalTypes.h"
44#include "halCompiler.h"
45#include "wlan_qct_dev_defs.h"
46#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080047
Jeff Johnson295189b2012-06-20 16:38:30 -070048/*---------------------------------------------------------------------------
49 API VERSIONING INFORMATION
50
51 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
52 The MAJOR is incremented for major product/architecture changes
53 (and then MINOR/VERSION/REVISION are zeroed)
54 The MINOR is incremented for minor product/architecture changes
55 (and then VERSION/REVISION are zeroed)
56 The VERSION is incremented if a significant API change occurs
57 (and then REVISION is zeroed)
58 The REVISION is incremented if an insignificant API change occurs
59 or if a new API is added
60 All values are in the range 0..255 (ie they are 8-bit values)
61 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070062#define WLAN_HAL_VER_MAJOR 1
Kumar Anandea78e792013-10-10 23:47:01 -070063#define WLAN_HAL_VER_MINOR 5
Jeff Johnson295189b2012-06-20 16:38:30 -070064#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080065#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070066
67/*---------------------------------------------------------------------------
68 Commom Type definitons
69 ---------------------------------------------------------------------------*/
70
Srinivas Dasari42584632014-11-26 20:37:19 +053071#define DISA_MAX_PAYLOAD_SIZE 1600
72
Jeff Johnson295189b2012-06-20 16:38:30 -070073//This is to force compiler to use the maximum of an int ( 4 bytes )
74#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070075#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070076
77//Max no. of transmit categories
78#define STACFG_MAX_TC 8
79
80//The maximum value of access category
81#define WLAN_HAL_MAX_AC 4
82
83typedef tANI_U8 tSirMacAddr[6];
84typedef tANI_U8 tHalIpv4Addr[4];
85
86#define HAL_MAC_ADDR_LEN 6
87#define HAL_IPV4_ADDR_LEN 4
88
Amar Singhalb41c45b2014-03-21 14:44:14 -070089#define WLAN_HAL_STA_INVALID_IDX 0xFF
Jeff Johnson295189b2012-06-20 16:38:30 -070090#define WLAN_HAL_BSS_INVALID_IDX 0xFF
91
92//Default Beacon template size
Dino Mycle8afbac12014-07-04 22:06:17 +053093#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070094
Kumar Anandea78e792013-10-10 23:47:01 -070095
96//Max Tx Data Rate samples
97#define MAX_TX_RATE_SAMPLES 10
98//Max Beacon Rssi samples
99#define MAX_BCN_RSSI_SAMPLES 10
100
Dino Mycle8afbac12014-07-04 22:06:17 +0530101//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -0700102#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
103#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
104#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
105#define PARAM_llACOEXIST_CHANGED (1 << 3)
106#define PARAM_llBCOEXIST_CHANGED (1 << 4)
107#define PARAM_llGCOEXIST_CHANGED (1 << 5)
108#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
109#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
110#define PARAM_RIFS_MODE_CHANGED (1<<8)
111#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
112#define PARAM_OBSS_MODE_CHANGED (1<<10)
113#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
114 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)
115
116/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530117#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700118
119/*Version string max length (including NUL) */
120#define WLAN_HAL_VERSION_LENGTH 64
121
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530122#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
Amar Singhalb41c45b2014-03-21 14:44:14 -0700123/* 80 is actually NUM_RF_CHANNELS_V2, but beyond V2, this number will be ignored by FW */
Varun Reddy Yeturu94d94c12014-02-06 11:12:56 -0800124#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS 80
Amar Singhalb41c45b2014-03-21 14:44:14 -0700125#define WLAN_HAL_ROAM_SACN_PMK_SIZE 32
126#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 20
Yue Maab3ccfc2013-08-14 17:19:08 -0700127
Dino Mycle108eff22014-06-10 09:36:44 +0530128#define WLAN_HAL_EXT_SCAN_MAX_CHANNELS 16
129#define WLAN_HAL_EXT_SCAN_MAX_BUCKETS 16
130#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS 128
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +0530131#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +0530132
Dino Mycle108eff22014-06-10 09:36:44 +0530133#define WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE 8
134
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530135/* For Logging enhancement feature currently max 2 address will be passed */
136/* In future we may pass 3 address and length in suspend mode corner case */
137#define MAX_NUM_OF_BUFFER 3
138
139/* Log types */
140typedef enum
141{
142 MGMT_FRAME_LOGS = 0,
143 QXDM_LOGGING = 1,
Sachin Ahujac08f72a2015-09-22 15:25:47 +0530144 FW_MEMORY_DUMP = 2,
145 FATAL_EVENT = 3
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530146}tHalFrameLoggingType;
147
148/* Log size */
149typedef enum
150{
151 LOG_SIZE_4K = 0,
152 LOG_SIZE_8K = 1,
153 LOG_SIZE_12K = 2,
154 LOG_SIZE_16K = 3,
155 LOG_SIZE_32K = 4,
156 LOG_SIZE_64K = 5,
157 LOG_SIZE_96K = 6
158}tHalLogBuffSize;
159
Jeff Johnson295189b2012-06-20 16:38:30 -0700160/* Message types for messages exchanged between WDI and HAL */
Dino Mycle8afbac12014-07-04 22:06:17 +0530161typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700162{
163 //Init/De-Init
164 WLAN_HAL_START_REQ = 0,
165 WLAN_HAL_START_RSP = 1,
166 WLAN_HAL_STOP_REQ = 2,
167 WLAN_HAL_STOP_RSP = 3,
168
169 //Scan
170 WLAN_HAL_INIT_SCAN_REQ = 4,
171 WLAN_HAL_INIT_SCAN_RSP = 5,
172 WLAN_HAL_START_SCAN_REQ = 6,
173 WLAN_HAL_START_SCAN_RSP = 7 ,
174 WLAN_HAL_END_SCAN_REQ = 8,
175 WLAN_HAL_END_SCAN_RSP = 9,
176 WLAN_HAL_FINISH_SCAN_REQ = 10,
177 WLAN_HAL_FINISH_SCAN_RSP = 11,
178
179 // HW STA configuration/deconfiguration
180 WLAN_HAL_CONFIG_STA_REQ = 12,
181 WLAN_HAL_CONFIG_STA_RSP = 13,
182 WLAN_HAL_DELETE_STA_REQ = 14,
183 WLAN_HAL_DELETE_STA_RSP = 15,
184 WLAN_HAL_CONFIG_BSS_REQ = 16,
185 WLAN_HAL_CONFIG_BSS_RSP = 17,
186 WLAN_HAL_DELETE_BSS_REQ = 18,
187 WLAN_HAL_DELETE_BSS_RSP = 19,
188
189 //Infra STA asscoiation
190 WLAN_HAL_JOIN_REQ = 20,
191 WLAN_HAL_JOIN_RSP = 21,
192 WLAN_HAL_POST_ASSOC_REQ = 22,
193 WLAN_HAL_POST_ASSOC_RSP = 23,
194
195 //Security
196 WLAN_HAL_SET_BSSKEY_REQ = 24,
197 WLAN_HAL_SET_BSSKEY_RSP = 25,
198 WLAN_HAL_SET_STAKEY_REQ = 26,
199 WLAN_HAL_SET_STAKEY_RSP = 27,
200 WLAN_HAL_RMV_BSSKEY_REQ = 28,
201 WLAN_HAL_RMV_BSSKEY_RSP = 29,
202 WLAN_HAL_RMV_STAKEY_REQ = 30,
203 WLAN_HAL_RMV_STAKEY_RSP = 31,
204
205 //Qos Related
206 WLAN_HAL_ADD_TS_REQ = 32,
207 WLAN_HAL_ADD_TS_RSP = 33,
208 WLAN_HAL_DEL_TS_REQ = 34,
209 WLAN_HAL_DEL_TS_RSP = 35,
210 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
211 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
212 WLAN_HAL_ADD_BA_REQ = 38,
213 WLAN_HAL_ADD_BA_RSP = 39,
214 WLAN_HAL_DEL_BA_REQ = 40,
215 WLAN_HAL_DEL_BA_RSP = 41,
216
217 WLAN_HAL_CH_SWITCH_REQ = 42,
218 WLAN_HAL_CH_SWITCH_RSP = 43,
219 WLAN_HAL_SET_LINK_ST_REQ = 44,
220 WLAN_HAL_SET_LINK_ST_RSP = 45,
221 WLAN_HAL_GET_STATS_REQ = 46,
222 WLAN_HAL_GET_STATS_RSP = 47,
223 WLAN_HAL_UPDATE_CFG_REQ = 48,
224 WLAN_HAL_UPDATE_CFG_RSP = 49,
225
226 WLAN_HAL_MISSED_BEACON_IND = 50,
227 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
228 WLAN_HAL_MIC_FAILURE_IND = 52,
229 WLAN_HAL_FATAL_ERROR_IND = 53,
230 WLAN_HAL_SET_KEYDONE_MSG = 54,
Dino Mycle8afbac12014-07-04 22:06:17 +0530231
Jeff Johnson295189b2012-06-20 16:38:30 -0700232 //NV Interface
233 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
234 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
235
236 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
237 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
238 WLAN_HAL_TRIGGER_BA_REQ = 59,
239 WLAN_HAL_TRIGGER_BA_RSP = 60,
240 WLAN_HAL_UPDATE_BEACON_REQ = 61,
241 WLAN_HAL_UPDATE_BEACON_RSP = 62,
242 WLAN_HAL_SEND_BEACON_REQ = 63,
243 WLAN_HAL_SEND_BEACON_RSP = 64,
244
245 WLAN_HAL_SET_BCASTKEY_REQ = 65,
246 WLAN_HAL_SET_BCASTKEY_RSP = 66,
247 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
248 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
249 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Dino Mycle8afbac12014-07-04 22:06:17 +0530250
Jeff Johnson295189b2012-06-20 16:38:30 -0700251 // PTT interface support
252 WLAN_HAL_PROCESS_PTT_REQ = 70,
253 WLAN_HAL_PROCESS_PTT_RSP = 71,
Dino Mycle8afbac12014-07-04 22:06:17 +0530254
Jeff Johnson295189b2012-06-20 16:38:30 -0700255 // BTAMP related events
256 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
257 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
258 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
259 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
260
261 WLAN_HAL_ENTER_IMPS_REQ = 76,
262 WLAN_HAL_EXIT_IMPS_REQ = 77,
263 WLAN_HAL_ENTER_BMPS_REQ = 78,
264 WLAN_HAL_EXIT_BMPS_REQ = 79,
265 WLAN_HAL_ENTER_UAPSD_REQ = 80,
266 WLAN_HAL_EXIT_UAPSD_REQ = 81,
267 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
268 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
269 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
270 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
271 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
272 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
273 WLAN_HAL_ENTER_WOWL_REQ = 88,
274 WLAN_HAL_EXIT_WOWL_REQ = 89,
275 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
276 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
277 WLAN_HAL_GET_RSSI_REQ = 92,
278 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
279 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
280
281 WLAN_HAL_ENTER_IMPS_RSP = 95,
282 WLAN_HAL_EXIT_IMPS_RSP = 96,
283 WLAN_HAL_ENTER_BMPS_RSP = 97,
284 WLAN_HAL_EXIT_BMPS_RSP = 98,
285 WLAN_HAL_ENTER_UAPSD_RSP = 99,
286 WLAN_HAL_EXIT_UAPSD_RSP = 100,
287 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
288 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
289 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
290 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
291 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
292 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
293 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
294 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
295 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
296 WLAN_HAL_ENTER_WOWL_RSP = 110,
297 WLAN_HAL_EXIT_WOWL_RSP = 111,
298 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
299 WLAN_HAL_GET_RSSI_RSP = 113,
300 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
301
302 //11k related events
303 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
304 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
305
306 //11R related msgs
307 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
308 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
309
310 //P2P WLAN_FEATURE_P2P
311 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
312 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Dino Mycle8afbac12014-07-04 22:06:17 +0530313
Jeff Johnson295189b2012-06-20 16:38:30 -0700314 //WLAN Dump commands
315 WLAN_HAL_DUMP_COMMAND_REQ = 121,
316 WLAN_HAL_DUMP_COMMAND_RSP = 122,
317
Jeff Johnsone7245742012-09-05 17:12:55 -0700318 //OEM_DATA FEATURE SUPPORT
319 WLAN_HAL_START_OEM_DATA_REQ = 123,
320 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700321
322 //ADD SELF STA REQ and RSP
323 WLAN_HAL_ADD_STA_SELF_REQ = 125,
324 WLAN_HAL_ADD_STA_SELF_RSP = 126,
325
326 //DEL SELF STA SUPPORT
327 WLAN_HAL_DEL_STA_SELF_REQ = 127,
328 WLAN_HAL_DEL_STA_SELF_RSP = 128,
329
330 // Coex Indication
331 WLAN_HAL_COEX_IND = 129,
332
Dino Mycle8afbac12014-07-04 22:06:17 +0530333 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700334 WLAN_HAL_OTA_TX_COMPL_IND = 130,
335
336 //Host Suspend/resume messages
337 WLAN_HAL_HOST_SUSPEND_IND = 131,
338 WLAN_HAL_HOST_RESUME_REQ = 132,
339 WLAN_HAL_HOST_RESUME_RSP = 133,
340
341 WLAN_HAL_SET_TX_POWER_REQ = 134,
342 WLAN_HAL_SET_TX_POWER_RSP = 135,
343 WLAN_HAL_GET_TX_POWER_REQ = 136,
344 WLAN_HAL_GET_TX_POWER_RSP = 137,
345
346 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Dino Mycle8afbac12014-07-04 22:06:17 +0530347
Jeff Johnson295189b2012-06-20 16:38:30 -0700348 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
349 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
350 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
351 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
352 WLAN_HAL_RADAR_DETECT_IND = 143,
353 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
354 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Dino Mycle8afbac12014-07-04 22:06:17 +0530355 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700356
357 /*PNO messages*/
358 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
359 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
360 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
361 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
362 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
363 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Dino Mycle8afbac12014-07-04 22:06:17 +0530364 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700365
366 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
367 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
368 WLAN_HAL_TX_PER_HIT_IND = 156,
Dino Mycle8afbac12014-07-04 22:06:17 +0530369
Jeff Johnson295189b2012-06-20 16:38:30 -0700370 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Dino Mycle8afbac12014-07-04 22:06:17 +0530371 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700372
373 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Dino Mycle8afbac12014-07-04 22:06:17 +0530374 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700375 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Dino Mycle8afbac12014-07-04 22:06:17 +0530376 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700377 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Dino Mycle8afbac12014-07-04 22:06:17 +0530378 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
379 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700380 * Host and Riva code is in sync*/
381 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Dino Mycle8afbac12014-07-04 22:06:17 +0530382
Jeff Johnson295189b2012-06-20 16:38:30 -0700383 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
384 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
385
386 WLAN_HAL_TSM_STATS_REQ = 168,
387 WLAN_HAL_TSM_STATS_RSP = 169,
388
389 // wake reason indication (WOW)
390 WLAN_HAL_WAKE_REASON_IND = 170,
Dino Mycle8afbac12014-07-04 22:06:17 +0530391 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700392 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
393 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
394 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
395 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
396
397 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
398 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
399 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
400
401 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
402 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
403
Anand Kumar012623a2013-01-11 17:00:00 -0800404 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
405 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800406
Anand Kumar012623a2013-01-11 17:00:00 -0800407 WLAN_HAL_P2P_NOA_START_IND = 184,
408
409 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
410 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Dino Mycle8afbac12014-07-04 22:06:17 +0530411
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800412 WLAN_HAL_CLASS_B_STATS_IND = 187,
413 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800414 WLAN_HAL_DHCP_START_IND = 189,
415 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700416 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
417 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530418 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
419 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700420
421 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
422 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
423 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
424
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530425 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
426 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
427 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
428 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
429 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700430 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700431
Kumar Anandf53016f2013-09-04 15:15:53 -0700432 /* Scan Offload APIs */
433 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
434 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
435 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
436 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
437 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
438 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
439 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
440
Leo Chang397deb72013-08-22 11:33:16 -0700441 /* APIs to offload TCP/UDP Heartbeat handshakes */
442 WLAN_HAL_LPHB_CFG_REQ = 211,
443 WLAN_HAL_LPHB_CFG_RSP = 212,
444 WLAN_HAL_LPHB_IND = 213,
445
Yue Maab3ccfc2013-08-14 17:19:08 -0700446 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
447 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
448 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530449
Kumar Anandf53016f2013-09-04 15:15:53 -0700450 // Events to set Per-Band Tx Power Limit
451 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
452 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
453
Abhishek Singh00b71972016-01-07 10:51:04 +0530454 WLAN_HAL_RMC_RULER_REQ = 219,
455 WLAN_HAL_RMC_RULER_RSP = 220,
456 WLAN_HAL_RMC_UPDATE_IND = 221,
Kumar Anandf53016f2013-09-04 15:15:53 -0700457
krunal soni2a4728d2013-09-20 21:56:50 -0700458 /* Batchscan */
459 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
460 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
461 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
462 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
463 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
464
465 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
466 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
467
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700468 WLAN_HAL_RATE_UPDATE_IND = 229,
469
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530470 /* Tx Fail for weak link notification */
471 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
472 WLAN_HAL_TX_FAIL_IND = 231,
473
474 /* Multi-hop IP routing offload */
475 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
476
Amar Singhalb41c45b2014-03-21 14:44:14 -0700477 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530478 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800479
Amar Singhalb41c45b2014-03-21 14:44:14 -0700480 /* Fast Roam Offload Synchup request protocol */
481 /* TODO_LFR3 : change this value accordingly before final check-in */
482 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
483 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
484
485 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
486 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
487
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800488 /* Channel Switch Request version 1 */
489 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
490 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
491
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530492 /* 2G4 HT40 OBSS scan */
493 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700494 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
495
496 /* WLAN NAN Messages */
497 WLAN_HAL_NAN_FIRST = 256,
498 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
499 WLAN_HAL_NAN_RSP = 257,
500 WLAN_HAL_NAN_EVT = 258,
501 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
c_hpothu80c30472014-04-14 19:04:48 +0530502 WLAN_HAL_PRINT_REG_INFO_IND = 259,
503
c_hpothua047e572014-05-01 15:03:11 +0530504 WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
505 WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
506
Sunil Dutt8377a382014-05-26 21:18:04 +0530507 /* WLAN LINK LAYER STATS Messages */
508 WLAN_HAL_LL_SET_STATS_REQ = 262,
509 WLAN_HAL_LL_SET_STATS_RSP = 263,
510 WLAN_HAL_LL_GET_STATS_REQ = 264,
511 WLAN_HAL_LL_GET_STATS_RSP = 265,
512 WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
513 WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
514 WLAN_HAL_LL_NOTIFY_STATS = 268,
Dino Mycle8afbac12014-07-04 22:06:17 +0530515 WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
Dino Mycle108eff22014-06-10 09:36:44 +0530516
Dino Mycle8afbac12014-07-04 22:06:17 +0530517 /* WLAN EXT_SCAN Messages */
518 WLAN_HAL_EXT_SCAN_START_REQ = 269,
519 WLAN_HAL_EXT_SCAN_START_RSP = 270,
520 WLAN_HAL_EXT_SCAN_GET_CAP_REQ = 271,
521 WLAN_HAL_EXT_SCAN_GET_CAP_RSP = 272,
522 WLAN_HAL_EXT_SCAN_STOP_REQ = 273,
523 WLAN_HAL_EXT_SCAN_STOP_RSP = 274,
524 WLAN_HAL_EXT_SCAN_GET_SCAN_REQ = 275,
525 WLAN_HAL_EXT_SCAN_GET_SCAN_RSP = 276,
Dino Mycle108eff22014-06-10 09:36:44 +0530526
527 WLAN_HAL_BSSID_HOTLIST_SET_REQ = 277,
528 WLAN_HAL_BSSID_HOTLIST_SET_RSP = 278,
529 WLAN_HAL_BSSID_HOTLIST_RESET_REQ = 279,
530 WLAN_HAL_BSSID_HOTLIST_RESET_RSP = 280,
531
532 WLAN_HAL_SIG_RSSI_SET_REQ = 281,
533 WLAN_HAL_SIG_RSSI_SET_RSP = 282,
534 WLAN_HAL_SIG_RSSI_RESET_REQ = 283,
535 WLAN_HAL_SIG_RSSI_RESET_RSP = 284,
536
Dino Mycle8afbac12014-07-04 22:06:17 +0530537 WLAN_HAL_EXT_SCAN_RESULT_IND = 285,
Dino Mycle108eff22014-06-10 09:36:44 +0530538 WLAN_HAL_BSSID_HOTLIST_RESULT_IND = 286,
539 WLAN_HAL_SIG_RSSI_RESULT_IND = 287,
Dino Mycle8afbac12014-07-04 22:06:17 +0530540 WLAN_HAL_EXT_SCAN_PROGRESS_IND = 288,
541 WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND = 289,
Atul Mittal53419ed2014-08-03 19:41:23 +0530542 WLAN_HAL_TDLS_CHAN_SWITCH_REQ = 290,
543 WLAN_HAL_TDLS_CHAN_SWITCH_RSP = 291,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +0530544 WLAN_HAL_MAC_SPOOFED_SCAN_REQ = 292,
545 WLAN_HAL_MAC_SPOOFED_SCAN_RSP = 293,
Srinivas Dasari42584632014-11-26 20:37:19 +0530546 /* LGE DISA encrypt-decrypt Messages */
547 WLAN_HAL_ENCRYPT_DATA_REQ = 294,
548 WLAN_HAL_ENCRYPT_DATA_RSP = 295,
Sunil Dutt8377a382014-05-26 21:18:04 +0530549
Abhishek Singh725c1582014-11-24 11:47:48 +0530550 WLAN_HAL_FW_STATS_REQ = 296,
551 WLAN_HAL_FW_STATS_RSP = 297,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530552 WLAN_HAL_FW_LOGGING_INIT_REQ = 298,
553 WLAN_HAL_FW_LOGGING_INIT_RSP = 299,
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +0530554 WLAN_HAL_GET_FRAME_LOG_REQ = 300,
555 WLAN_HAL_GET_FRAME_LOG_RSP = 301,
Abhishek Singh725c1582014-11-24 11:47:48 +0530556
Abhishek Singhbc310882015-05-22 15:17:02 +0530557 /* Monitor Mode */
558 WLAN_HAL_ENABLE_MONITOR_MODE_REQ = 302,
559 WLAN_HAL_ENABLE_MONITOR_MODE_RSP = 303,
560
561 WLAN_HAL_DISABLE_MONITOR_MODE_REQ = 304,
562 WLAN_HAL_DISABLE_MONITOR_MODE_RSP = 305,
Katya Nigamf0511f62015-05-05 16:40:57 +0530563
Abhishek Singhbc310882015-05-22 15:17:02 +0530564 WLAN_HAL_SET_RTS_CTS_HTVHT_IND = 306,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530565 // FW Logging
566 WLAN_HAL_FATAL_EVENT_LOGGING_REQ = 307,
567 WLAN_HAL_FATAL_EVENT_LOGGING_RSP = 308,
568 WLAN_HAL_FW_MEMORY_DUMP_REQ = 309,
569 WLAN_HAL_FW_MEMORY_DUMP_RSP = 310,
570 WLAN_HAL_FW_LOGGING_DXE_DONE_IND = 311,
Sachin Ahuja75c1fd72015-08-28 15:46:46 +0530571 WLAN_HAL_LOST_LINK_PARAMETERS_IND = 312,
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +0530572 WLAN_HAL_SEND_FREQ_RANGE_CONTROL_IND = 313,
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +0530573
574 WLAN_HAL_SSID_HOTLIST_SET_REQ = 314,
575 WLAN_HAL_SSID_HOTLIST_SET_RSP = 315,
576 WLAN_HAL_SSID_HOTLIST_RESET_REQ = 316,
577 WLAN_HAL_SSID_HOTLIST_RESET_RSP = 317,
578
579 WLAN_HAL_SSID_HOTLIST_RESULT_IND = 318,
580
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +0530581 /* WFD Session Information to start/stop Scan */
582 WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ = 319,
583
Gupta, Kapil042e9fb2015-09-30 13:34:22 +0530584 WLAN_HAL_START_RSSI_MONITORING_REQ = 321,
585 WLAN_HAL_START_RSSI_MONITORING_RSP = 322,
586 WLAN_HAL_RSSI_MONITORING_IND = 323,
587 WLAN_HAL_STOP_RSSI_MONITORING_REQ = 324,
588 WLAN_HAL_STOP_RSSI_MONITORING_RSP = 325,
589
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +0530590 //RTT3 SUPPORT
591 WLAN_HAL_START_OEM_DATA_REQ_IND_NEW = 326,
592 WLAN_HAL_START_OEM_DATA_RSP_IND_NEW = 327,
593
Arun Khandavalliafc16432015-10-16 20:11:31 +0530594 WLAN_HAL_WIFI_CONFIG_SET_PARAMS_REQ = 328,
595 WLAN_HAL_WIFI_CONFIG_SET_PARAMS_RSP = 329,
596
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +0530597 WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ = 330,
598 WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP = 331,
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +0530599 WLAN_HAL_MODIFY_ROAM_PARAMS_IND = 332,
Selvaraj, Sridhar6c0eb3f2016-04-06 12:42:04 +0530600 WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND = 333,
601
Kapil Guptac1043632016-06-25 00:23:30 +0530602 /* PER based roaming support */
603 WLAN_HAL_SET_PER_ROAM_CONFIG_REQ = 334,
604 WLAN_HAL_SET_PER_ROAM_CONFIG_RSP = 335,
605 WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ = 336,
606 WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP = 337,
Anurag Chouhan9b3383a2016-12-13 22:29:55 +0530607
608 WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ = 339,
609 WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP = 340,
Agrawal Ashishc6aa0132016-12-09 15:59:29 +0530610 WLAN_HAL_SAP_AUTH_OFFLOAD_IND = 341,
Anurag Chouhan9c3ddc72016-12-16 13:12:13 +0530611 WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ = 342,
612 WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP = 343,
613 WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ = 344,
614 WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP = 345,
615 WLAN_HAL_MDNS_RESP_OFFLOAD_REQ = 346,
616 WLAN_HAL_MDNS_RESP_OFFLOAD_RSP = 347,
617 WLAN_HAL_MDNS_STATS_OFFLOAD_REQ = 348,
618 WLAN_HAL_MDNS_STATS_OFFLOAD_RSP = 349,
Anurag Chouhan9b3383a2016-12-13 22:29:55 +0530619
Kapil Guptae667f952016-12-20 18:23:27 +0530620 /* QRF Support */
621 WLAN_HAL_QRF_AP_FIND_COMMAND = 350,
622 WLAN_HAL_QRF_PREF_NETW_FOUND_IND = 351,
623
Sunil Dutt8377a382014-05-26 21:18:04 +0530624 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700625}tHalHostMsgType;
626
Jeff Johnsone7245742012-09-05 17:12:55 -0700627/* Enumeration for Version */
628typedef enum
629{
630 WLAN_HAL_MSG_VERSION0 = 0,
631 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800632 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
633 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700634}tHalHostMsgVersion;
635
Jeff Johnson295189b2012-06-20 16:38:30 -0700636/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530637typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700638{
639 eANI_BOOLEAN_FALSE = 0,
640 eANI_BOOLEAN_TRUE,
641 eANI_BOOLEAN_OFF = 0,
642 eANI_BOOLEAN_ON = 1,
643 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
644} eAniBoolean;
645
646typedef enum
647{
648 eDRIVER_TYPE_PRODUCTION = 0,
649 eDRIVER_TYPE_MFG = 1,
650 eDRIVER_TYPE_DVT = 2,
651 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
652} tDriverType;
653
654typedef enum
655{
656 HAL_STOP_TYPE_SYS_RESET,
657 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
658 HAL_STOP_TYPE_RF_KILL,
659 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
660}tHalStopType;
661
662typedef enum
663{
664 eHAL_SYS_MODE_NORMAL,
665 eHAL_SYS_MODE_LEARN,
666 eHAL_SYS_MODE_SCAN,
667 eHAL_SYS_MODE_PROMISC,
668 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700669 eHAL_SYS_MODE_ROAM_SCAN,
670 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700671 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700672 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
673} eHalSysMode;
674
675typedef enum
676{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800677 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
678 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
679 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
680 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
681 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
682 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
683 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
684 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
685 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700686 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800687 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
688} eHalChanSwitchSource;
689
690typedef enum
691{
Jeff Johnson295189b2012-06-20 16:38:30 -0700692 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
693 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
694 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
695 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700696#ifdef WLAN_FEATURE_11AC
697 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
698 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
699 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
700 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
701 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
702 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
703 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
704#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700705 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
706}ePhyChanBondState;
707
708// Spatial Multiplexing(SM) Power Save mode
709typedef enum eSirMacHTMIMOPowerSaveState
710{
711 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
712 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
713 eSIR_HT_MIMO_PS_NA = 2, // reserved
714 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
715 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
716} tSirMacHTMIMOPowerSaveState;
717
718/* each station added has a rate mode which specifies the sta attributes */
719typedef enum eStaRateMode {
720 eSTA_TAURUS = 0,
721 eSTA_TITAN,
722 eSTA_POLARIS,
723 eSTA_11b,
724 eSTA_11bg,
725 eSTA_11a,
726 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700727#ifdef WLAN_FEATURE_11AC
728 eSTA_11ac,
729#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700730 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
731} tStaRateMode, *tpStaRateMode;
732
733#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
734#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
735#define SIR_NUM_POLARIS_RATES 3 //72,96,108
736
737#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
738
739
740typedef enum eSirBssType
741{
742 eSIR_INFRASTRUCTURE_MODE,
743 eSIR_INFRA_AP_MODE, //Added for softAP support
744 eSIR_IBSS_MODE,
745 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
746 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
747 eSIR_AUTO_MODE,
748 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
749} tSirBssType;
750
751typedef enum eSirNwType
752{
753 eSIR_11A_NW_TYPE,
754 eSIR_11B_NW_TYPE,
755 eSIR_11G_NW_TYPE,
756 eSIR_11N_NW_TYPE,
757 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
758} tSirNwType;
759
760typedef tANI_U16 tSirMacBeaconInterval;
761
762#define SIR_MAC_RATESET_EID_MAX 12
763
764typedef enum eSirMacHTOperatingMode
765{
766 eSIR_HT_OP_MODE_PURE, // No Protection
767 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
768 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
769 eSIR_HT_OP_MODE_MIXED, // Protection is required
770 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
771} tSirMacHTOperatingMode;
772
Jeff Johnson295189b2012-06-20 16:38:30 -0700773/// Encryption type enum used with peer
774typedef enum eAniEdType
775{
776 eSIR_ED_NONE,
777 eSIR_ED_WEP40,
778 eSIR_ED_WEP104,
779 eSIR_ED_TKIP,
780 eSIR_ED_CCMP,
781 eSIR_ED_WPI,
782 eSIR_ED_AES_128_CMAC,
783 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
784} tAniEdType;
785
786#define WLAN_MAX_KEY_RSC_LEN 16
787#define WLAN_WAPI_KEY_RSC_LEN 16
788
789/// MAX key length when ULA is used
790#define SIR_MAC_MAX_KEY_LENGTH 32
791#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
792
793/// Enum to specify whether key is used
794/// for TX only, RX only or both
795typedef enum eAniKeyDirection
796{
797 eSIR_TX_ONLY,
798 eSIR_RX_ONLY,
799 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700800 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700801 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
802} tAniKeyDirection;
803
804typedef enum eAniWepType
805{
806 eSIR_WEP_STATIC,
807 eSIR_WEP_DYNAMIC,
808 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
809} tAniWepType;
810
811typedef enum eSriLinkState {
812
813 eSIR_LINK_IDLE_STATE = 0,
814 eSIR_LINK_PREASSOC_STATE = 1,
815 eSIR_LINK_POSTASSOC_STATE = 2,
816 eSIR_LINK_AP_STATE = 3,
817 eSIR_LINK_IBSS_STATE = 4,
818
819 /* BT-AMP Case */
820 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
821 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
822 eSIR_LINK_BTAMP_AP_STATE = 7,
823 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530824
Jeff Johnson295189b2012-06-20 16:38:30 -0700825 /* Reserved for HAL Internal Use */
826 eSIR_LINK_LEARN_STATE = 9,
827 eSIR_LINK_SCAN_STATE = 10,
828 eSIR_LINK_FINISH_SCAN_STATE = 11,
829 eSIR_LINK_INIT_CAL_STATE = 12,
830 eSIR_LINK_FINISH_CAL_STATE = 13,
831#ifdef WLAN_FEATURE_P2P
832 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530833 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700834#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700835#ifdef WLAN_FEATURE_ROAM_OFFLOAD
836 eSIR_LINK_FT_PREASSOC_STATE = 16,
837#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700838 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
839} tSirLinkState;
840
841typedef enum
842{
843 HAL_SUMMARY_STATS_INFO = 0x00000001,
844 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
845 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
846 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
847 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530848 HAL_PER_STA_STATS_INFO = 0x00000020,
849 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700850}eHalStatsMask;
851
852/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530853typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700854{
855 BTAMP_EVENT_CONNECTION_START,
856 BTAMP_EVENT_CONNECTION_STOP,
857 BTAMP_EVENT_CONNECTION_TERMINATED,
858 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
859} tBtAmpEventType;
860
861//***************************************************************
862
863
864/*******************PE Statistics*************************/
865typedef enum
866{
867 PE_SUMMARY_STATS_INFO = 0x00000001,
868 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
869 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
870 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
871 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
872 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530873 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700874 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
875}ePEStatsMask;
876
Sunil Dutt8377a382014-05-26 21:18:04 +0530877
878/******************************LINK LAYER Statitics**********************/
879
880typedef int wifi_radio;
881typedef int wifi_channel;
882typedef int wifi_tx_rate;
883
884/* channel operating width */
885typedef enum {
886 WIFI_CHAN_WIDTH_20 = 0,
887 WIFI_CHAN_WIDTH_40 = 1,
888 WIFI_CHAN_WIDTH_80 = 2,
889 WIFI_CHAN_WIDTH_160 = 3,
890 WIFI_CHAN_WIDTH_80P80 = 4,
891 WIFI_CHAN_WIDTH_5 = 5,
892 WIFI_CHAN_WIDTH_10 = 6,
893} wifi_channel_width;
894
895typedef enum {
896 WIFI_DISCONNECTED = 0,
897 WIFI_AUTHENTICATING = 1,
898 WIFI_ASSOCIATING = 2,
899 WIFI_ASSOCIATED = 3,
900 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
901 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
902} wifi_connection_state;
903
904typedef enum {
905 WIFI_ROAMING_IDLE = 0,
906 WIFI_ROAMING_ACTIVE = 1,
907} wifi_roam_state;
908
909typedef enum {
910 WIFI_INTERFACE_STA = 0,
911 WIFI_INTERFACE_SOFTAP = 1,
912 WIFI_INTERFACE_IBSS = 2,
913 WIFI_INTERFACE_P2P_CLIENT = 3,
914 WIFI_INTERFACE_P2P_GO = 4,
915 WIFI_INTERFACE_NAN = 5,
916 WIFI_INTERFACE_MESH = 6,
917 } wifi_interface_mode;
918
919#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
920#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
921#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
922#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
923#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
924#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
925
926typedef PACKED_PRE struct PACKED_POST
927{
928 wifi_interface_mode mode; // interface mode
929 tANI_U8 mac_addr[6]; // interface mac address (self)
930 wifi_connection_state state; // connection state (valid for STA, CLI only)
931 wifi_roam_state roaming; // roaming state
932 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
933 tANI_U8 ssid[33]; // null terminated SSID
934 tANI_U8 bssid[6]; // bssid
935 tANI_U8 ap_country_str[3]; // country string advertised by AP
936 tANI_U8 country_str[3]; // country string for this association
937} wifi_interface_info;
938
939/* channel information */
940typedef PACKED_PRE struct PACKED_POST
941{
942 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
943 wifi_channel center_freq; // primary 20 MHz channel
944 wifi_channel center_freq0; // center frequency (MHz) first segment
945 wifi_channel center_freq1; // center frequency (MHz) second segment
946} wifi_channel_info;
947
948/* wifi rate info */
949typedef PACKED_PRE struct PACKED_POST
950{
951 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
952 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
953 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
954 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
955 // HT/VHT it would be mcs index
956 tANI_U32 reserved :16; // reserved
957 tANI_U32 bitrate; // units of 100 Kbps
958} wifi_rate;
959
960/* channel statistics */
961typedef PACKED_PRE struct PACKED_POST
962{
963 wifi_channel_info channel; // channel
964 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
965 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
966} wifi_channel_stats;
967
968/* radio statistics */
969typedef PACKED_PRE struct PACKED_POST
970{
971 wifi_radio radio; // wifi radio (if multiple radio supported)
972 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
973 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
974 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
975 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
976 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
977 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
978 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
979 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
980 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
981 tANI_U32 num_channels; // number of channels
982 wifi_channel_stats channels[1]; // channel statistics
983} wifi_radio_stat;
984
985/* per rate statistics */
986typedef PACKED_PRE struct PACKED_POST
987{
988 wifi_rate rate; // rate information *
989 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
990 tANI_U32 rx_mpdu; // number of received data pkts
991 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
992 tANI_U32 retries; // total number of data pkt retries *
993 tANI_U32 retries_short; // number of short data pkt retries
994 tANI_U32 retries_long; // number of long data pkt retries
995} wifi_rate_stat;
996
997/* access categories */
998typedef enum {
999 WIFI_AC_VO = 0,
1000 WIFI_AC_VI = 1,
1001 WIFI_AC_BE = 2,
1002 WIFI_AC_BK = 3,
1003 WIFI_AC_MAX = 4,
1004} wifi_traffic_ac;
1005
1006/* wifi peer type */
1007typedef enum
1008{
1009 WIFI_PEER_STA,
1010 WIFI_PEER_AP,
1011 WIFI_PEER_P2P_GO,
1012 WIFI_PEER_P2P_CLIENT,
1013 WIFI_PEER_NAN,
1014 WIFI_PEER_TDLS,
1015 WIFI_PEER_INVALID,
1016} wifi_peer_type;
1017
1018/* per peer statistics */
1019typedef PACKED_PRE struct PACKED_POST
1020{
1021 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
1022 tANI_U8 peer_mac_address[6]; // mac address
1023 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
1024 tANI_U32 num_rate; // number of rates
1025 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
1026} wifi_peer_info;
1027
1028/* per access category statistics */
1029typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301030{
1031 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
1032 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
1033 tANI_U32 rx_mpdu; // number of received unicast mpdus
1034 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1035 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1036 tANI_U32 rx_mcast; // number of received multicast data packets
1037 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1038 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1039 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1040 tANI_U32 retries; // total number of data pkt retries
1041 tANI_U32 retries_short; // number of short data pkt retries
1042 tANI_U32 retries_long; // number of long data pkt retries
1043 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1044 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1045 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1046 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1047} wifi_wmm_ac_stat;
1048
Mukul Sharma03f86492015-10-20 16:10:13 +05301049typedef PACKED_PRE struct PACKED_POST
1050{
1051 tANI_U64 average_tsf_offset;
1052 tANI_U32 leaky_ap_avg_num_frames_leaked;
1053 tANI_U32 leaky_ap_guard_time;
1054 tANI_U32 leaky_ap_detected;
1055} wifi_iface_leaky_ap_info;
1056
Sunil Dutt8377a382014-05-26 21:18:04 +05301057/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1058typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301059{
1060 wifi_interface_info info; // current state of the interface
1061 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1062 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1063 tANI_U32 mgmt_action_rx; // action frames received count
1064 tANI_U32 mgmt_action_tx; // action frames transmit count
1065 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1066 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1067 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1068 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
Mukul Sharma03f86492015-10-20 16:10:13 +05301069 wifi_iface_leaky_ap_info leakyApInfo;
Sunil Dutt8377a382014-05-26 21:18:04 +05301070} wifi_iface_stat;
1071
1072/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1073typedef PACKED_PRE struct PACKED_POST
1074{
1075 tANI_U32 num_peers; // number of peers
1076 wifi_peer_info peer_info[1]; // per peer statistics
1077} wifi_peer_stat;
1078
1079/* wifi statistics bitmap for getting statistics */
1080#define WMI_LINK_STATS_RADIO 0x00000001
1081#define WMI_LINK_STATS_IFACE 0x00000002
1082#define WMI_LINK_STATS_ALL_PEER 0x00000004
1083#define WMI_LINK_STATS_PER_PEER 0x00000008
1084
1085/* wifi statistics bitmap for clearing statistics */
1086#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1087#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1088#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1089#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1090#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1091#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1092#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1093#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1094
1095
Jeff Johnson295189b2012-06-20 16:38:30 -07001096/*---------------------------------------------------------------------------
1097 Message definitons - All the messages below need to be packed
1098 ---------------------------------------------------------------------------*/
1099
1100#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1101#pragma pack(push, 1)
1102#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1103#pragma pack(1)
1104#else
1105#endif
1106
1107/// Definition for HAL API Version.
1108typedef PACKED_PRE struct PACKED_POST
1109{
1110 tANI_U8 revision;
1111 tANI_U8 version;
1112 tANI_U8 minor;
1113 tANI_U8 major;
1114} tWcnssWlanVersion, *tpWcnssWlanVersion;
1115
1116/// Definition for Encryption Keys
1117typedef PACKED_PRE struct PACKED_POST
1118{
1119 tANI_U8 keyId;
1120 tANI_U8 unicast; // 0 for multicast
1121 tAniKeyDirection keyDirection;
1122 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1123 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1124 tANI_U16 keyLength;
1125 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1126} tSirKeys, *tpSirKeys;
1127
1128
1129//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1130typedef PACKED_PRE struct PACKED_POST
1131{
1132 /*STA Index*/
1133 tANI_U16 staIdx;
1134
1135 /*Encryption Type used with peer*/
1136 tAniEdType encType;
1137
1138 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301139 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001140
1141 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1142 tANI_U8 defWEPIdx;
1143
Jeff Johnson295189b2012-06-20 16:38:30 -07001144 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301145 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1146
Jeff Johnson295189b2012-06-20 16:38:30 -07001147 /*Control for Replay Count, 1= Single TID based replay count on Tx
1148 0 = Per TID based replay count on TX */
1149 tANI_U8 singleTidRc;
1150
1151} tSetStaKeyParams, *tpSetStaKeyParams;
1152
1153
1154
1155/* 4-byte control message header used by HAL*/
1156typedef PACKED_PRE struct PACKED_POST
1157{
Jeff Johnsone7245742012-09-05 17:12:55 -07001158 tHalHostMsgType msgType:16;
1159 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001160 tANI_U32 msgLen;
1161} tHalMsgHeader, *tpHalMsgHeader;
1162
1163/* Config format required by HAL for each CFG item*/
1164typedef PACKED_PRE struct PACKED_POST
1165{
1166 /* Cfg Id. The Id required by HAL is exported by HAL
1167 * in shared header file between UMAC and HAL.*/
1168 tANI_U16 uCfgId;
1169
Dino Mycle8afbac12014-07-04 22:06:17 +05301170 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001171 * in the TLV format.*/
1172 tANI_U16 uCfgLen;
1173
1174 /* Padding bytes for unaligned address's */
1175 tANI_U16 uCfgPadBytes;
1176
1177 /* Reserve bytes for making cfgVal to align address */
1178 tANI_U16 uCfgReserve;
1179
1180 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1181 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1182} tHalCfg, *tpHalCfg;
1183
1184/*---------------------------------------------------------------------------
1185 WLAN_HAL_START_REQ
1186---------------------------------------------------------------------------*/
1187
1188typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1189{
1190 /* Drive Type - Production or FTM etc */
1191 tDriverType driverType;
1192
1193 /*Length of the config buffer*/
1194 tANI_U32 uConfigBufferLen;
1195
Dino Mycle8afbac12014-07-04 22:06:17 +05301196 /* Following this there is a TLV formatted buffer of length
1197 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001198 * The TLV is expected to be formatted like this:
1199 * 0 15 31 31+CFG_LEN-1 length-1
1200 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1201 */
1202} tHalMacStartParameters, *tpHalMacStartParameters;
1203
1204typedef PACKED_PRE struct PACKED_POST
1205{
1206 /* Note: The length specified in tHalMacStartReqMsg messages should be
1207 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1208 tHalMsgHeader header;
1209 tHalMacStartParameters startReqParams;
1210} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1211
1212/*---------------------------------------------------------------------------
1213 WLAN_HAL_START_RSP
1214---------------------------------------------------------------------------*/
1215
1216typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1217{
1218 /*success or failure */
1219 tANI_U16 status;
1220
1221 /*Max number of STA supported by the device*/
1222 tANI_U8 ucMaxStations;
1223
1224 /*Max number of BSS supported by the device*/
1225 tANI_U8 ucMaxBssids;
1226
1227 /*API Version */
1228 tWcnssWlanVersion wcnssWlanVersion;
1229
1230 /*CRM build information */
1231 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1232
1233 /*hardware/chipset/misc version information */
1234 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1235
1236} tHalMacStartRspParams, *tpHalMacStartRspParams;
1237
1238typedef PACKED_PRE struct PACKED_POST
1239{
1240 tHalMsgHeader header;
1241 tHalMacStartRspParams startRspParams;
1242} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1243
1244/*---------------------------------------------------------------------------
1245 WLAN_HAL_STOP_REQ
1246---------------------------------------------------------------------------*/
1247
1248typedef PACKED_PRE struct PACKED_POST
1249{
1250 /*The reason for which the device is being stopped*/
1251 tHalStopType reason;
1252
1253}tHalMacStopReqParams, *tpHalMacStopReqParams;
1254
1255typedef PACKED_PRE struct PACKED_POST
1256{
1257 tHalMsgHeader header;
1258 tHalMacStopReqParams stopReqParams;
1259} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1260
1261/*---------------------------------------------------------------------------
1262 WLAN_HAL_STOP_RSP
1263---------------------------------------------------------------------------*/
1264
1265typedef PACKED_PRE struct PACKED_POST
1266{
1267 /*success or failure */
1268 tANI_U32 status;
1269
1270}tHalMacStopRspParams, *tpHalMacStopRspParams;
1271
1272typedef PACKED_PRE struct PACKED_POST
1273{
1274 tHalMsgHeader header;
1275 tHalMacStopRspParams stopRspParams;
1276} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1277
1278/*---------------------------------------------------------------------------
1279 WLAN_HAL_UPDATE_CFG_REQ
1280---------------------------------------------------------------------------*/
1281
1282typedef PACKED_PRE struct PACKED_POST
1283{
1284 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1285 tANI_U32 uConfigBufferLen;
1286
Dino Mycle8afbac12014-07-04 22:06:17 +05301287 /* Following this there is a TLV formatted buffer of length
1288 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001289 * The TLV is expected to be formatted like this:
1290 * 0 15 31 31+CFG_LEN-1 length-1
1291 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1292 */
1293} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1294
1295typedef PACKED_PRE struct PACKED_POST
1296{
1297 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1298 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1299 tHalMsgHeader header;
1300 tHalUpdateCfgReqParams updateCfgReqParams;
1301} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1302
1303/*---------------------------------------------------------------------------
1304 WLAN_HAL_UPDATE_CFG_RSP
1305---------------------------------------------------------------------------*/
1306
1307typedef PACKED_PRE struct PACKED_POST
1308{
1309 /* success or failure */
1310 tANI_U32 status;
1311
1312}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1313
1314typedef PACKED_PRE struct PACKED_POST
1315{
1316 tHalMsgHeader header;
1317 tHalUpdateCfgRspParams updateCfgRspParams;
1318} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1319
1320/*---------------------------------------------------------------------------
1321 WLAN_HAL_INIT_SCAN_REQ
1322---------------------------------------------------------------------------*/
1323
1324/// Frame control field format (2 bytes)
1325typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1326{
1327
1328#ifndef ANI_LITTLE_BIT_ENDIAN
1329
1330 tANI_U8 subType :4;
1331 tANI_U8 type :2;
1332 tANI_U8 protVer :2;
1333
1334 tANI_U8 order :1;
1335 tANI_U8 wep :1;
1336 tANI_U8 moreData :1;
1337 tANI_U8 powerMgmt :1;
1338 tANI_U8 retry :1;
1339 tANI_U8 moreFrag :1;
1340 tANI_U8 fromDS :1;
1341 tANI_U8 toDS :1;
1342
1343#else
1344
1345 tANI_U8 protVer :2;
1346 tANI_U8 type :2;
1347 tANI_U8 subType :4;
1348
1349 tANI_U8 toDS :1;
1350 tANI_U8 fromDS :1;
1351 tANI_U8 moreFrag :1;
1352 tANI_U8 retry :1;
1353 tANI_U8 powerMgmt :1;
1354 tANI_U8 moreData :1;
1355 tANI_U8 wep :1;
1356 tANI_U8 order :1;
1357
1358#endif
1359
1360} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1361
1362/// Sequence control field
1363typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1364{
1365 tANI_U8 fragNum : 4;
1366 tANI_U8 seqNumLo : 4;
1367 tANI_U8 seqNumHi : 8;
1368} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1369
1370/// Management header format
1371typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1372{
1373 tSirMacFrameCtl fc;
1374 tANI_U8 durationLo;
1375 tANI_U8 durationHi;
1376 tANI_U8 da[6];
1377 tANI_U8 sa[6];
1378 tANI_U8 bssId[6];
1379 tSirMacSeqCtl seqControl;
1380} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1381
1382/// Scan Entry to hold active BSS idx's
1383typedef __ani_attr_pre_packed struct sSirScanEntry
1384{
1385 tANI_U8 bssIdx[HAL_NUM_BSSID];
1386 tANI_U8 activeBSScnt;
1387}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1388
1389typedef PACKED_PRE struct PACKED_POST {
1390
1391 /*LEARN - AP Role
1392 SCAN - STA Role*/
1393 eHalSysMode scanMode;
1394
1395 /*BSSID of the BSS*/
1396 tSirMacAddr bssid;
1397
1398 /*Whether BSS needs to be notified*/
1399 tANI_U8 notifyBss;
1400
1401 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1402 CTS to Self). Must always be a valid frame type.*/
1403 tANI_U8 frameType;
1404
1405 /*UMAC has the option of passing the MAC frame to be used for notifying
1406 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1407 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1408 frameType.*/
1409 tANI_U8 frameLength;
1410
Dino Mycle8afbac12014-07-04 22:06:17 +05301411 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001412 is non-zero. */
1413 tSirMacMgmtHdr macMgmtHdr;
1414
1415 /*Entry to hold number of active BSS idx's*/
1416 tSirScanEntry scanEntry;
1417
1418} tInitScanParams, * tpInitScanParams;
1419
1420typedef PACKED_PRE struct PACKED_POST
1421{
1422 tHalMsgHeader header;
1423 tInitScanParams initScanParams;
1424} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1425
1426typedef PACKED_PRE struct PACKED_POST {
1427
1428 /*LEARN - AP Role
1429 SCAN - STA Role*/
1430 eHalSysMode scanMode;
1431
1432 /*BSSID of the BSS*/
1433 tSirMacAddr bssid;
1434
1435 /*Whether BSS needs to be notified*/
1436 tANI_U8 notifyBss;
1437
1438 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1439 CTS to Self). Must always be a valid frame type.*/
1440 tANI_U8 frameType;
1441
1442 /*UMAC has the option of passing the MAC frame to be used for notifying
1443 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1444 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1445 frameType.*/
1446 tANI_U8 frameLength;
1447
Dino Mycle8afbac12014-07-04 22:06:17 +05301448 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001449 is non-zero. */
1450 tSirMacMgmtHdr macMgmtHdr;
1451
1452 /*Entry to hold number of active BSS idx's*/
1453 tSirScanEntry scanEntry;
1454
1455 /* Single NoA usage in Scanning */
1456 tANI_U8 useNoA;
1457
1458 /* Indicates the scan duration (in ms) */
1459 tANI_U16 scanDuration;
1460
1461} tInitScanConParams, * tpInitScanConParams;
1462
1463typedef PACKED_PRE struct PACKED_POST
1464{
1465 tHalMsgHeader header;
1466 tInitScanConParams initScanParams;
1467} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1468
1469
1470/*---------------------------------------------------------------------------
1471 WLAN_HAL_INIT_SCAN_RSP
1472---------------------------------------------------------------------------*/
1473
1474typedef PACKED_PRE struct PACKED_POST
1475{
1476 /*success or failure */
1477 tANI_U32 status;
1478
1479}tHalInitScanRspParams, *tpHalInitScanRspParams;
1480
1481typedef PACKED_PRE struct PACKED_POST
1482{
1483 tHalMsgHeader header;
1484 tHalInitScanRspParams initScanRspParams;
1485} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1486
1487/*---------------------------------------------------------------------------
1488 WLAN_HAL_START_SCAN_REQ
1489---------------------------------------------------------------------------*/
1490
Dino Mycle8afbac12014-07-04 22:06:17 +05301491typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001492{
1493 /*Indicates the channel to scan*/
1494 tANI_U8 scanChannel;
1495
1496 } tStartScanParams, * tpStartScanParams;
1497
1498typedef PACKED_PRE struct PACKED_POST
1499{
1500 tHalMsgHeader header;
1501 tStartScanParams startScanParams;
1502} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1503
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001504typedef PACKED_PRE struct PACKED_POST
1505{
1506 tHalMsgHeader header;
1507} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1508
Jeff Johnson295189b2012-06-20 16:38:30 -07001509/*---------------------------------------------------------------------------
1510 WLAN_HAL_START_SCAN_RSP
1511---------------------------------------------------------------------------*/
1512
1513typedef PACKED_PRE struct PACKED_POST
1514{
1515 /*success or failure */
1516 tANI_U32 status;
1517
1518 tANI_U32 startTSF[2];
1519 tPowerdBm txMgmtPower;
1520
1521}tHalStartScanRspParams, *tpHalStartScanRspParams;
1522
1523typedef PACKED_PRE struct PACKED_POST
1524{
1525 tHalMsgHeader header;
1526 tHalStartScanRspParams startScanRspParams;
1527} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1528
1529/*---------------------------------------------------------------------------
1530 WLAN_HAL_END_SCAN_REQ
1531---------------------------------------------------------------------------*/
1532
1533typedef PACKED_PRE struct PACKED_POST
1534{
1535 /*Indicates the channel to stop scanning. Not used really. But retained
1536 for symmetry with "start Scan" message. It can also help in error
1537 check if needed.*/
1538 tANI_U8 scanChannel;
1539
1540} tEndScanParams, *tpEndScanParams;
1541
1542typedef PACKED_PRE struct PACKED_POST
1543{
1544 tHalMsgHeader header;
1545 tEndScanParams endScanParams;
1546} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1547
1548/*---------------------------------------------------------------------------
1549 WLAN_HAL_END_SCAN_RSP
1550---------------------------------------------------------------------------*/
1551
1552typedef PACKED_PRE struct PACKED_POST
1553{
1554 /*success or failure */
1555 tANI_U32 status;
1556
1557}tHalEndScanRspParams, *tpHalEndScanRspParams;
1558
1559typedef PACKED_PRE struct PACKED_POST
1560{
1561 tHalMsgHeader header;
1562 tHalEndScanRspParams endScanRspParams;
1563} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1564
1565/*---------------------------------------------------------------------------
1566 WLAN_HAL_FINISH_SCAN_REQ
1567---------------------------------------------------------------------------*/
1568
1569typedef PACKED_PRE struct PACKED_POST
1570{
1571 /* Identifies the operational state of the AP/STA
1572 * LEARN - AP Role SCAN - STA Role */
1573 eHalSysMode scanMode;
1574
1575 /*Operating channel to tune to.*/
1576 tANI_U8 currentOperChannel;
1577
1578 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1579 40 MHz extension channel in combination with the control channel*/
1580 ePhyChanBondState cbState;
1581
1582 /*BSSID of the BSS*/
1583 tSirMacAddr bssid;
1584
1585 /*Whether BSS needs to be notified*/
1586 tANI_U8 notifyBss;
1587
1588 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1589 CTS to Self). Must always be a valid frame type.*/
1590 tANI_U8 frameType;
1591
1592 /*UMAC has the option of passing the MAC frame to be used for notifying
1593 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1594 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1595 frameType.*/
1596 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301597
1598 /*Following the framelength there is a MAC frame buffer if frameLength
1599 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001600 tSirMacMgmtHdr macMgmtHdr;
1601
1602 /*Entry to hold number of active BSS idx's*/
1603 tSirScanEntry scanEntry;
1604
1605} tFinishScanParams, *tpFinishScanParams;
1606
1607typedef PACKED_PRE struct PACKED_POST
1608{
1609 tHalMsgHeader header;
1610 tFinishScanParams finishScanParams;
1611} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1612
1613/*---------------------------------------------------------------------------
1614 WLAN_HAL_FINISH_SCAN_RSP
1615---------------------------------------------------------------------------*/
1616
1617typedef PACKED_PRE struct PACKED_POST
1618{
1619 /*success or failure */
1620 tANI_U32 status;
1621
1622}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1623
1624typedef PACKED_PRE struct PACKED_POST
1625{
1626 tHalMsgHeader header;
1627 tHalFinishScanRspParams finishScanRspParams;
1628} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1629
Srinivas Dasari42584632014-11-26 20:37:19 +05301630typedef PACKED_PRE struct PACKED_POST
1631{
1632 tSetStaKeyParams keyParams;
1633 uint8 pn[6];
1634} tHalEncConfigParams;
1635
1636typedef PACKED_PRE struct PACKED_POST
1637{
1638 uint16 length;
1639 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1640} tHalDisaPayload;
1641
1642typedef PACKED_PRE struct PACKED_POST
1643{
1644#ifdef BYTE_ORDER_BIG_ENDIAN
1645 uint8 reserved1 : 1;
1646 uint8 ackpolicy : 2;
1647 uint8 eosp : 1;
1648 uint8 tid : 4;
1649
1650 uint8 appsbufferstate : 8;
1651#else
1652 uint8 appsbufferstate : 8;
1653
1654 uint8 tid : 4;
1655 uint8 eosp : 1;
1656 uint8 ackpolicy : 2;
1657 uint8 reserved1 : 1;
1658#endif
1659} tHalQosCtrlFieldType;
1660
1661typedef PACKED_PRE struct PACKED_POST
1662 {
1663#ifdef BYTE_ORDER_BIG_ENDIAN
1664 uint16 subtype : 4;
1665 uint16 type : 2;
1666 uint16 protocol : 2;
1667
1668 uint16 order : 1;
1669 uint16 wep : 1;
1670 uint16 moredata : 1;
1671 uint16 pm : 1;
1672 uint16 retry : 1;
1673 uint16 morefrag : 1;
1674 uint16 fromds : 1;
1675 uint16 tods : 1;
1676#else
1677
1678 uint16 tods : 1;
1679 uint16 fromds : 1;
1680 uint16 morefrag : 1;
1681 uint16 retry : 1;
1682 uint16 pm : 1;
1683 uint16 moredata : 1;
1684 uint16 wep : 1;
1685 uint16 order : 1;
1686
1687 uint16 protocol : 2;
1688 uint16 type : 2;
1689 uint16 subtype : 4;
1690#endif
1691} tHalFrmCtrlType;
1692
1693typedef PACKED_PRE struct PACKED_POST
1694{
1695 /* Frame control field */
1696 tHalFrmCtrlType fc;
1697 /* Duration ID */
1698 uint16 usDurationId;
1699 /* Address 1 field */
1700 uint8 vA1[HAL_MAC_ADDR_LEN];
1701 /* Address 2 field */
1702 uint8 vA2[HAL_MAC_ADDR_LEN];
1703 /* Address 3 field */
1704 uint8 vA3[HAL_MAC_ADDR_LEN];
1705 /* Sequence control field */
1706 uint16 seqNum;
1707 /* Optional A4 address */
1708 uint8 optvA4[HAL_MAC_ADDR_LEN];
1709 /* Optional QOS control field */
1710 tHalQosCtrlFieldType usQosCtrl;
1711} tHal80211Header;
1712
1713typedef PACKED_PRE struct PACKED_POST
1714{
1715 tHal80211Header macHeader;
1716 tHalEncConfigParams encParams;
1717 tHalDisaPayload data;
1718} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1719
1720typedef PACKED_PRE struct PACKED_POST
1721{
1722 tHalMsgHeader header;
1723 tSetEncryptedDataParams encryptedDataParams;
1724} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1725
1726typedef PACKED_PRE struct PACKED_POST
1727{
1728 tANI_U32 status;
1729 tHalDisaPayload encryptedPayload;
1730} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1731
1732typedef PACKED_PRE struct PACKED_POST
1733{
1734 tHalMsgHeader header;
1735 tSetEncryptedDataRspParams encryptedDataRspParams;
1736} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1737
Jeff Johnson295189b2012-06-20 16:38:30 -07001738/*---------------------------------------------------------------------------
1739 WLAN_HAL_CONFIG_STA_REQ
1740---------------------------------------------------------------------------*/
1741
1742typedef PACKED_PRE struct PACKED_POST {
1743 /*
1744 * For Self STA Entry: this represents Self Mode.
1745 * For Peer Stations, this represents the mode of the peer.
1746 * On Station:
1747 * --this mode is updated when PE adds the Self Entry.
1748 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1749 * ON AP:
1750 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1751 * to indicate the self mode of the AP.
1752 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1753 */
1754
1755 tStaRateMode opRateMode;
1756 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1757 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1758 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1759 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1760 tANI_U16 reserved;
1761
1762 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1763 //First 26 bits are reserved for those Titan rates and
1764 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1765 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1766
1767 /*
1768 * 0-76 bits used, remaining reserved
1769 * bits 0-15 and 32 should be set.
1770 */
1771 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1772
1773 /*
1774 * RX Highest Supported Data Rate defines the highest data
1775 * rate that the STA is able to receive, in unites of 1Mbps.
1776 * This value is derived from "Supported MCS Set field" inside
1777 * the HT capability element.
1778 */
1779 tANI_U16 rxHighestDataRate;
1780
1781} tSirSupportedRates, *tpSirSupportedRates;
1782
1783typedef PACKED_PRE struct PACKED_POST
1784{
1785 /*BSSID of STA*/
1786 tSirMacAddr bssId;
1787
1788 /*ASSOC ID, as assigned by UMAC*/
1789 tANI_U16 assocId;
1790
1791 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1792 tANI_U8 staType;
1793
1794 /*Short Preamble Supported.*/
1795 tANI_U8 shortPreambleSupported;
1796
1797 /*MAC Address of STA*/
1798 tSirMacAddr staMac;
1799
1800 /*Listen interval of the STA*/
1801 tANI_U16 listenInterval;
1802
1803 /*Support for 11e/WMM*/
1804 tANI_U8 wmmEnabled;
1805
1806 /*11n HT capable STA*/
1807 tANI_U8 htCapable;
1808
1809 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1810 tANI_U8 txChannelWidthSet;
1811
1812 /*RIFS mode 0 - NA, 1 - Allowed */
1813 tANI_U8 rifsMode;
1814
Dino Mycle8afbac12014-07-04 22:06:17 +05301815 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001816 0 - No Support, 1 - Supported
1817 SG - there is global field */
1818 tANI_U8 lsigTxopProtection;
1819
1820 /*Max Ampdu Size supported by STA. TPE programming.
1821 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1822 tANI_U8 maxAmpduSize;
1823
1824 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1825 tANI_U8 maxAmpduDensity;
1826
1827 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1828 tANI_U8 maxAmsduSize;
1829
1830 /*Short GI support for 40Mhz packets*/
1831 tANI_U8 fShortGI40Mhz;
1832
1833 /*Short GI support for 20Mhz packets*/
1834 tANI_U8 fShortGI20Mhz;
1835
Jeff Johnson295189b2012-06-20 16:38:30 -07001836 /*Robust Management Frame (RMF) enabled/disabled*/
1837 tANI_U8 rmfEnabled;
1838
1839 /* The unicast encryption type in the association */
1840 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001841
1842 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001843 will set this flag in case of RE-ASSOC, where we want to reuse the old
1844 STA ID. 0 = Add, 1 = Update*/
1845 tANI_U8 action;
1846
1847 /*U-APSD Flags: 1b per AC. Encoded as follows:
1848 b7 b6 b5 b4 b3 b2 b1 b0 =
1849 X X X X BE BK VI VO */
1850 tANI_U8 uAPSD;
1851
1852 /*Max SP Length*/
1853 tANI_U8 maxSPLen;
1854
1855 /*11n Green Field preamble support
1856 0 - Not supported, 1 - Supported */
1857 tANI_U8 greenFieldCapable;
1858
1859 /*MIMO Power Save mode*/
1860 tSirMacHTMIMOPowerSaveState mimoPS;
1861
1862 /*Delayed BA Support*/
1863 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001864
Jeff Johnson295189b2012-06-20 16:38:30 -07001865 /*Max AMPDU duration in 32us*/
1866 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001867
Jeff Johnson295189b2012-06-20 16:38:30 -07001868 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1869 it to 0 if AP does not support it. This indication is sent to HAL and
1870 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1871 tANI_U8 fDsssCckMode40Mhz;
1872
1873 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1874 Retained for backward compalibity with existing HAL code*/
1875 tANI_U8 staIdx;
1876
1877 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1878 Retained for backward compalibity with existing HAL code*/
1879 tANI_U8 bssIdx;
1880
1881 tANI_U8 p2pCapableSta;
1882
Jeff Johnsone7245742012-09-05 17:12:55 -07001883 /*Reserved to align next field on a dword boundary*/
1884 tANI_U8 reserved;
1885
1886 /*These rates are the intersection of peer and self capabilities.*/
1887 tSirSupportedRates supportedRates;
1888
Jeff Johnson295189b2012-06-20 16:38:30 -07001889} tConfigStaParams, *tpConfigStaParams;
1890
Jeff Johnsone7245742012-09-05 17:12:55 -07001891/*------------------------------------------------------------------------
1892 * WLAN_HAL_CONFIG_STA_REQ
1893 * ----------------------------------------------------------------------*/
1894
1895typedef PACKED_PRE struct PACKED_POST {
1896 /*
1897 * For Self STA Entry: this represents Self Mode.
1898 * For Peer Stations, this represents the mode of the peer.
1899 * On Station:
1900 * --this mode is updated when PE adds the Self Entry.
1901 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1902 * ON AP:
1903 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1904 * to indicate the self mode of the AP.
1905 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1906 */
1907
1908 tStaRateMode opRateMode;
1909 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1910 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1911 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1912 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1913 tANI_U16 reserved;
1914
1915 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1916 //First 26 bits are reserved for those Titan rates and
1917 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1918 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1919
1920 /*
1921 * 0-76 bits used, remaining reserved
1922 * bits 0-15 and 32 should be set.
1923 */
1924 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1925
1926 /*
1927 * RX Highest Supported Data Rate defines the highest data
1928 * rate that the STA is able to receive, in unites of 1Mbps.
1929 * This value is derived from "Supported MCS Set field" inside
1930 * the HT capability element.
1931 */
1932 tANI_U16 rxHighestDataRate;
1933
1934 /* Indicates the Maximum MCS that can be received for each number
1935 * of spacial streams */
1936 tANI_U16 vhtRxMCSMap;
1937
1938 /*Indicate the highest VHT data rate that the STA is able to receive*/
1939 tANI_U16 vhtRxHighestDataRate;
1940
1941 /* Indicates the Maximum MCS that can be transmitted for each number
1942 * of spacial streams */
1943 tANI_U16 vhtTxMCSMap;
1944
1945 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1946 tANI_U16 vhtTxHighestDataRate;
1947
1948} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1949
1950typedef PACKED_PRE struct PACKED_POST
1951{
1952 /*BSSID of STA*/
1953 tSirMacAddr bssId;
1954
1955 /*ASSOC ID, as assigned by UMAC*/
1956 tANI_U16 assocId;
1957
1958 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1959 tANI_U8 staType;
1960
1961 /*Short Preamble Supported.*/
1962 tANI_U8 shortPreambleSupported;
1963
1964 /*MAC Address of STA*/
1965 tSirMacAddr staMac;
1966
1967 /*Listen interval of the STA*/
1968 tANI_U16 listenInterval;
1969
1970 /*Support for 11e/WMM*/
1971 tANI_U8 wmmEnabled;
1972
1973 /*11n HT capable STA*/
1974 tANI_U8 htCapable;
1975
1976 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1977 tANI_U8 txChannelWidthSet;
1978
1979 /*RIFS mode 0 - NA, 1 - Allowed */
1980 tANI_U8 rifsMode;
1981
1982 /*L-SIG TXOP Protection mechanism
1983 0 - No Support, 1 - Supported
1984 SG - there is global field */
1985 tANI_U8 lsigTxopProtection;
1986
1987 /*Max Ampdu Size supported by STA. TPE programming.
1988 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1989 tANI_U8 maxAmpduSize;
1990
1991 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1992 tANI_U8 maxAmpduDensity;
1993
1994 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1995 tANI_U8 maxAmsduSize;
1996
1997 /*Short GI support for 40Mhz packets*/
1998 tANI_U8 fShortGI40Mhz;
1999
2000 /*Short GI support for 20Mhz packets*/
2001 tANI_U8 fShortGI20Mhz;
2002
2003 /*Robust Management Frame (RMF) enabled/disabled*/
2004 tANI_U8 rmfEnabled;
2005
2006 /* The unicast encryption type in the association */
2007 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05302008
2009 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07002010 will set this flag in case of RE-ASSOC, where we want to reuse the old
2011 STA ID. 0 = Add, 1 = Update*/
2012 tANI_U8 action;
2013
2014 /*U-APSD Flags: 1b per AC. Encoded as follows:
2015 b7 b6 b5 b4 b3 b2 b1 b0 =
2016 X X X X BE BK VI VO */
2017 tANI_U8 uAPSD;
2018
2019 /*Max SP Length*/
2020 tANI_U8 maxSPLen;
2021
2022 /*11n Green Field preamble support
2023 0 - Not supported, 1 - Supported */
2024 tANI_U8 greenFieldCapable;
2025
2026 /*MIMO Power Save mode*/
2027 tSirMacHTMIMOPowerSaveState mimoPS;
2028
2029 /*Delayed BA Support*/
2030 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05302031
Jeff Johnsone7245742012-09-05 17:12:55 -07002032 /*Max AMPDU duration in 32us*/
2033 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05302034
Jeff Johnsone7245742012-09-05 17:12:55 -07002035 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
2036 it to 0 if AP does not support it. This indication is sent to HAL and
2037 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
2038 tANI_U8 fDsssCckMode40Mhz;
2039
2040 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
2041 Retained for backward compalibity with existing HAL code*/
2042 tANI_U8 staIdx;
2043
2044 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2045 Retained for backward compalibity with existing HAL code*/
2046 tANI_U8 bssIdx;
2047
2048 tANI_U8 p2pCapableSta;
2049
2050 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002051 tANI_U8 htLdpcEnabled:1;
2052 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002053 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302054 tANI_U8 vhtTxMUBformeeCapable:1;
2055 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002056
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002057 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002058 tSirSupportedRates_V1 supportedRates;
2059
2060 tANI_U8 vhtCapable;
2061 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002062
Jeff Johnsone7245742012-09-05 17:12:55 -07002063} tConfigStaParams_V1, *tpConfigStaParams_V1;
2064
Jeff Johnson295189b2012-06-20 16:38:30 -07002065typedef PACKED_PRE struct PACKED_POST
2066{
2067 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002068 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002069 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002070 tConfigStaParams_V1 configStaParams_V1;
2071 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002072} tConfigStaReqMsg, *tpConfigStaReqMsg;
2073
2074/*---------------------------------------------------------------------------
2075 WLAN_HAL_CONFIG_STA_RSP
2076---------------------------------------------------------------------------*/
2077
2078typedef PACKED_PRE struct PACKED_POST
2079{
2080 /*success or failure */
2081 tANI_U32 status;
2082
2083 /* Station index; valid only when 'status' field value SUCCESS */
2084 tANI_U8 staIdx;
2085
2086 /* BSSID Index of BSS to which the station is associated */
2087 tANI_U8 bssIdx;
2088
2089 /* DPU Index for PTK */
2090 tANI_U8 dpuIndex;
2091
Dino Mycle8afbac12014-07-04 22:06:17 +05302092 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002093 tANI_U8 bcastDpuIndex;
2094
2095 /*DPU Index for IGTK */
2096 tANI_U8 bcastMgmtDpuIdx;
2097
2098 /*PTK DPU signature*/
2099 tANI_U8 ucUcastSig;
2100
2101 /*GTK DPU isignature*/
2102 tANI_U8 ucBcastSig;
2103
2104 /* IGTK DPU signature*/
2105 tANI_U8 ucMgmtSig;
2106
2107 tANI_U8 p2pCapableSta;
2108
2109}tConfigStaRspParams, *tpConfigStaRspParams;
2110
2111typedef PACKED_PRE struct PACKED_POST
2112{
2113 tHalMsgHeader header;
2114 tConfigStaRspParams configStaRspParams;
2115}tConfigStaRspMsg, *tpConfigStaRspMsg;
2116
2117/*---------------------------------------------------------------------------
2118 WLAN_HAL_DELETE_STA_REQ
2119---------------------------------------------------------------------------*/
2120
2121/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302122typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002123{
2124 /* Index of STA to delete */
2125 tANI_U8 staIdx;
2126} tDeleteStaParams, *tpDeleteStaParams;
2127
2128/* Delete STA Request message*/
2129typedef PACKED_PRE struct PACKED_POST
2130{
2131 tHalMsgHeader header;
2132 tDeleteStaParams delStaParams;
2133} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2134
2135/*---------------------------------------------------------------------------
2136 WLAN_HAL_DELETE_STA_RSP
2137---------------------------------------------------------------------------*/
2138
2139/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302140typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002141{
2142 /*success or failure */
2143 tANI_U32 status;
2144
2145 /* Index of STA deleted */
2146 tANI_U8 staId;
2147} tDeleteStaRspParams, *tpDeleteStaRspParams;
2148
2149/* Delete STA Response message*/
2150typedef PACKED_PRE struct PACKED_POST
2151{
2152 tHalMsgHeader header;
2153 tDeleteStaRspParams delStaRspParams;
2154} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2155
2156/*---------------------------------------------------------------------------
2157 WLAN_HAL_CONFIG_BSS_REQ
2158---------------------------------------------------------------------------*/
2159
2160//12 Bytes long because this structure can be used to represent rate
2161//and extended rate set IEs. The parser assume this to be at least 12
2162typedef __ani_attr_pre_packed struct sSirMacRateSet
2163{
2164 tANI_U8 numRates;
2165 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2166} __ani_attr_packed tSirMacRateSet;
2167
2168// access category record
2169typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2170{
2171#ifndef ANI_LITTLE_BIT_ENDIAN
2172 tANI_U8 rsvd : 1;
2173 tANI_U8 aci : 2;
2174 tANI_U8 acm : 1;
2175 tANI_U8 aifsn : 4;
2176#else
2177 tANI_U8 aifsn : 4;
2178 tANI_U8 acm : 1;
2179 tANI_U8 aci : 2;
2180 tANI_U8 rsvd : 1;
2181#endif
2182} __ani_attr_packed tSirMacAciAifsn;
2183
2184// contention window size
2185typedef __ani_attr_pre_packed struct sSirMacCW
2186{
2187#ifndef ANI_LITTLE_BIT_ENDIAN
2188 tANI_U8 max : 4;
2189 tANI_U8 min : 4;
2190#else
2191 tANI_U8 min : 4;
2192 tANI_U8 max : 4;
2193#endif
2194} __ani_attr_packed tSirMacCW;
2195
2196typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2197{
2198 tSirMacAciAifsn aci;
2199 tSirMacCW cw;
2200 tANI_U16 txoplimit;
2201} __ani_attr_packed tSirMacEdcaParamRecord;
2202
2203typedef __ani_attr_pre_packed struct sSirMacSSid
2204{
2205 tANI_U8 length;
2206 tANI_U8 ssId[32];
2207} __ani_attr_packed tSirMacSSid;
2208
2209// Concurrency role. These are generic IDs that identify the various roles
2210// in the software system.
2211typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302212 HAL_STA_MODE=0,
2213 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002214 HAL_P2P_CLIENT_MODE,
2215 HAL_P2P_GO_MODE,
2216 HAL_MONITOR_MODE,
2217} tHalConMode;
2218
2219//This is a bit pattern to be set for each mode
2220//bit 0 - sta mode
2221//bit 1 - ap mode
2222//bit 2 - p2p client mode
2223//bit 3 - p2p go mode
2224typedef enum
2225{
Dino Mycle8afbac12014-07-04 22:06:17 +05302226 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002227 HAL_SAP=2,
2228 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2229 HAL_P2P_CLIENT=4,
2230 HAL_P2P_GO=8,
2231 HAL_MAX_CONCURRENCY_PERSONA=4
2232} tHalConcurrencyMode;
2233
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002234// IFACE PERSONA for different Operating modes
2235typedef enum
2236{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002237 HAL_IFACE_UNKNOWN=0,
2238 HAL_IFACE_STA_MODE=1,
2239 HAL_IFACE_P2P_MODE=2,
2240 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002241} tHalIfacePersona;
2242
Jeff Johnson295189b2012-06-20 16:38:30 -07002243typedef PACKED_PRE struct PACKED_POST
2244{
2245 /* BSSID */
2246 tSirMacAddr bssId;
2247
Jeff Johnson295189b2012-06-20 16:38:30 -07002248 /* Self Mac Address */
2249 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002250
2251 /* BSS type */
2252 tSirBssType bssType;
2253
2254 /*Operational Mode: AP =0, STA = 1*/
2255 tANI_U8 operMode;
2256
2257 /*Network Type*/
2258 tSirNwType nwType;
2259
2260 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2261 tANI_U8 shortSlotTimeSupported;
2262
2263 /*Co-exist with 11a STA*/
2264 tANI_U8 llaCoexist;
2265
2266 /*Co-exist with 11b STA*/
2267 tANI_U8 llbCoexist;
2268
2269 /*Co-exist with 11g STA*/
2270 tANI_U8 llgCoexist;
2271
2272 /*Coexistence with 11n STA*/
2273 tANI_U8 ht20Coexist;
2274
2275 /*Non GF coexist flag*/
2276 tANI_U8 llnNonGFCoexist;
2277
2278 /*TXOP protection support*/
2279 tANI_U8 fLsigTXOPProtectionFullSupport;
2280
2281 /*RIFS mode*/
2282 tANI_U8 fRIFSMode;
2283
2284 /*Beacon Interval in TU*/
2285 tSirMacBeaconInterval beaconInterval;
2286
2287 /*DTIM period*/
2288 tANI_U8 dtimPeriod;
2289
2290 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2291 tANI_U8 txChannelWidthSet;
2292
2293 /*Operating channel*/
2294 tANI_U8 currentOperChannel;
2295
2296 /*Extension channel for channel bonding*/
2297 tANI_U8 currentExtChannel;
2298
2299 /*Reserved to align next field on a dword boundary*/
2300 tANI_U8 reserved;
2301
Jeff Johnsone7245742012-09-05 17:12:55 -07002302 /*SSID of the BSS*/
2303 tSirMacSSid ssId;
2304
2305 /*HAL should update the existing BSS entry, if this flag is set.
2306 UMAC will set this flag in case of reassoc, where we want to resue the
2307 the old BSSID and still return success 0 = Add, 1 = Update*/
2308 tANI_U8 action;
2309
2310 /* MAC Rate Set */
2311 tSirMacRateSet rateSet;
2312
2313 /*Enable/Disable HT capabilities of the BSS*/
2314 tANI_U8 htCapable;
2315
2316 // Enable/Disable OBSS protection
2317 tANI_U8 obssProtEnabled;
2318
2319 /*RMF enabled/disabled*/
2320 tANI_U8 rmfEnabled;
2321
2322 /*HT Operating Mode operating mode of the 802.11n STA*/
2323 tSirMacHTOperatingMode htOperMode;
2324
2325 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2326 tANI_U8 dualCTSProtection;
2327
2328 /* Probe Response Max retries */
2329 tANI_U8 ucMaxProbeRespRetryLimit;
2330
2331 /* To Enable Hidden ssid */
2332 tANI_U8 bHiddenSSIDEn;
2333
2334 /* To Enable Disable FW Proxy Probe Resp */
2335 tANI_U8 bProxyProbeRespEn;
2336
2337 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2338 EDCA params or might not desire to apply EDCA params during config BSS.
2339 0 implies Not Valid ; Non-Zero implies valid*/
2340 tANI_U8 edcaParamsValid;
2341
2342 /*EDCA Parameters for Best Effort Access Category*/
2343 tSirMacEdcaParamRecord acbe;
2344
2345 /*EDCA Parameters forBackground Access Category*/
2346 tSirMacEdcaParamRecord acbk;
2347
2348 /*EDCA Parameters for Video Access Category*/
2349 tSirMacEdcaParamRecord acvi;
2350
2351 /*EDCA Parameters for Voice Access Category*/
2352 tSirMacEdcaParamRecord acvo;
2353
2354#ifdef WLAN_FEATURE_VOWIFI_11R
2355 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2356 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2357#endif
2358
2359 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2360 tANI_U8 halPersona;
2361
2362 tANI_U8 bSpectrumMgtEnable;
2363
2364 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2365 tANI_S8 txMgmtPower;
2366 /*maxTxPower has max power to be used after applying the power constraint if any */
2367 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002368 /*Context of the station being added in HW
2369 Add a STA entry for "itself" -
2370 On AP - Add the AP itself in an "STA context"
2371 On STA - Add the AP to which this STA is joining in an "STA context" */
2372 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002373} tConfigBssParams, * tpConfigBssParams;
2374
2375
2376/*--------------------------------------------------------------------------
2377 * WLAN_HAL_CONFIG_BSS_REQ
2378 *--------------------------------------------------------------------------*/
2379typedef PACKED_PRE struct PACKED_POST
2380{
2381 /* BSSID */
2382 tSirMacAddr bssId;
2383
Jeff Johnsone7245742012-09-05 17:12:55 -07002384 /* Self Mac Address */
2385 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002386
2387 /* BSS type */
2388 tSirBssType bssType;
2389
2390 /*Operational Mode: AP =0, STA = 1*/
2391 tANI_U8 operMode;
2392
2393 /*Network Type*/
2394 tSirNwType nwType;
2395
2396 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2397 tANI_U8 shortSlotTimeSupported;
2398
2399 /*Co-exist with 11a STA*/
2400 tANI_U8 llaCoexist;
2401
2402 /*Co-exist with 11b STA*/
2403 tANI_U8 llbCoexist;
2404
2405 /*Co-exist with 11g STA*/
2406 tANI_U8 llgCoexist;
2407
2408 /*Coexistence with 11n STA*/
2409 tANI_U8 ht20Coexist;
2410
2411 /*Non GF coexist flag*/
2412 tANI_U8 llnNonGFCoexist;
2413
2414 /*TXOP protection support*/
2415 tANI_U8 fLsigTXOPProtectionFullSupport;
2416 /*RIFS mode*/
2417 tANI_U8 fRIFSMode;
2418
2419 /*Beacon Interval in TU*/
2420 tSirMacBeaconInterval beaconInterval;
2421
2422 /*DTIM period*/
2423 tANI_U8 dtimPeriod;
2424
2425 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2426 tANI_U8 txChannelWidthSet;
2427
2428 /*Operating channel*/
2429 tANI_U8 currentOperChannel;
2430
2431 /*Extension channel for channel bonding*/
2432 tANI_U8 currentExtChannel;
2433
2434 /*Reserved to align next field on a dword boundary*/
2435 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002436
2437 /*SSID of the BSS*/
2438 tSirMacSSid ssId;
2439
2440 /*HAL should update the existing BSS entry, if this flag is set.
2441 UMAC will set this flag in case of reassoc, where we want to resue the
2442 the old BSSID and still return success 0 = Add, 1 = Update*/
2443 tANI_U8 action;
2444
2445 /* MAC Rate Set */
2446 tSirMacRateSet rateSet;
2447
2448 /*Enable/Disable HT capabilities of the BSS*/
2449 tANI_U8 htCapable;
2450
2451 // Enable/Disable OBSS protection
2452 tANI_U8 obssProtEnabled;
2453
2454 /*RMF enabled/disabled*/
2455 tANI_U8 rmfEnabled;
2456
2457 /*HT Operating Mode operating mode of the 802.11n STA*/
2458 tSirMacHTOperatingMode htOperMode;
2459
2460 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2461 tANI_U8 dualCTSProtection;
2462
2463 /* Probe Response Max retries */
2464 tANI_U8 ucMaxProbeRespRetryLimit;
2465
2466 /* To Enable Hidden ssid */
2467 tANI_U8 bHiddenSSIDEn;
2468
2469 /* To Enable Disable FW Proxy Probe Resp */
2470 tANI_U8 bProxyProbeRespEn;
2471
Dino Mycle8afbac12014-07-04 22:06:17 +05302472 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2473 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002474 0 implies Not Valid ; Non-Zero implies valid*/
2475 tANI_U8 edcaParamsValid;
2476
2477 /*EDCA Parameters for Best Effort Access Category*/
2478 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302479
Jeff Johnson295189b2012-06-20 16:38:30 -07002480 /*EDCA Parameters forBackground Access Category*/
2481 tSirMacEdcaParamRecord acbk;
2482
2483 /*EDCA Parameters for Video Access Category*/
2484 tSirMacEdcaParamRecord acvi;
2485
2486 /*EDCA Parameters for Voice Access Category*/
2487 tSirMacEdcaParamRecord acvo;
2488
2489#ifdef WLAN_FEATURE_VOWIFI_11R
2490 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2491 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2492#endif
2493
Dino Mycle8afbac12014-07-04 22:06:17 +05302494 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002495 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302496
Jeff Johnson295189b2012-06-20 16:38:30 -07002497 tANI_U8 bSpectrumMgtEnable;
2498
2499 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2500 tANI_S8 txMgmtPower;
2501 /*maxTxPower has max power to be used after applying the power constraint if any */
2502 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002503 /*Context of the station being added in HW
2504 Add a STA entry for "itself" -
2505 On AP - Add the AP itself in an "STA context"
2506 On STA - Add the AP to which this STA is joining in an "STA context" */
2507 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302508
Jeff Johnsone7245742012-09-05 17:12:55 -07002509 tANI_U8 vhtCapable;
2510 tANI_U8 vhtTxChannelWidthSet;
2511} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002512
2513typedef PACKED_PRE struct PACKED_POST
2514{
2515 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002516 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002517 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002518 tConfigBssParams_V1 configBssParams_V1;
2519 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002520} tConfigBssReqMsg, *tpConfigBssReqMsg;
2521
2522/*---------------------------------------------------------------------------
2523 WLAN_HAL_CONFIG_BSS_RSP
2524---------------------------------------------------------------------------*/
2525
2526typedef PACKED_PRE struct PACKED_POST
2527{
2528 /* Success or Failure */
2529 tANI_U32 status;
2530
2531 /* BSS index allocated by HAL */
2532 tANI_U8 bssIdx;
2533
2534 /* DPU descriptor index for PTK */
2535 tANI_U8 dpuDescIndx;
2536
2537 /* PTK DPU signature */
2538 tANI_U8 ucastDpuSignature;
2539
2540 /* DPU descriptor index for GTK*/
2541 tANI_U8 bcastDpuDescIndx;
2542
2543 /* GTK DPU signature */
2544 tANI_U8 bcastDpuSignature;
2545
2546 /*DPU descriptor for IGTK*/
2547 tANI_U8 mgmtDpuDescIndx;
2548
2549 /* IGTK DPU signature */
2550 tANI_U8 mgmtDpuSignature;
2551
2552 /* Station Index for BSS entry*/
2553 tANI_U8 bssStaIdx;
2554
2555 /* Self station index for this BSS */
2556 tANI_U8 bssSelfStaIdx;
2557
2558 /* Bcast station for buffering bcast frames in AP role */
2559 tANI_U8 bssBcastStaIdx;
2560
2561 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2562 tSirMacAddr staMac;
2563
2564 /*HAL fills in the tx power used for mgmt frames in this field. */
2565 tANI_S8 txMgmtPower;
2566
2567} tConfigBssRspParams, * tpConfigBssRspParams;
2568
2569typedef PACKED_PRE struct PACKED_POST
2570{
2571 tHalMsgHeader header;
2572 tConfigBssRspParams configBssRspParams;
2573} tConfigBssRspMsg, *tpConfigBssRspMsg;
2574
2575/*---------------------------------------------------------------------------
2576 WLAN_HAL_DELETE_BSS_REQ
2577---------------------------------------------------------------------------*/
2578
2579typedef PACKED_PRE struct PACKED_POST
2580{
2581 /* BSS index to be deleted */
2582 tANI_U8 bssIdx;
2583
2584} tDeleteBssParams, *tpDeleteBssParams;
2585
2586typedef PACKED_PRE struct PACKED_POST
2587{
2588 tHalMsgHeader header;
2589 tDeleteBssParams deleteBssParams;
2590} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2591
2592/*---------------------------------------------------------------------------
2593 WLAN_HAL_DELETE_BSS_RSP
2594---------------------------------------------------------------------------*/
2595
2596typedef PACKED_PRE struct PACKED_POST
2597{
2598 /* Success or Failure */
2599 tANI_U32 status;
2600
2601 /* BSS index that has been deleted */
2602 tANI_U8 bssIdx;
2603
2604} tDeleteBssRspParams, *tpDeleteBssRspParams;
2605
2606typedef PACKED_PRE struct PACKED_POST
2607{
2608 tHalMsgHeader header;
2609 tDeleteBssRspParams deleteBssRspParams;
2610} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2611
2612/*---------------------------------------------------------------------------
2613 WLAN_HAL_JOIN_REQ
2614---------------------------------------------------------------------------*/
2615
2616typedef PACKED_PRE struct PACKED_POST
2617{
2618 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302619 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002620
2621 /*Indicates the channel to switch to.*/
2622 tANI_U8 ucChannel;
2623
2624 /* Self STA MAC */
2625 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302626
Jeff Johnson295189b2012-06-20 16:38:30 -07002627 /*Local power constraint*/
2628 tANI_U8 ucLocalPowerConstraint;
2629
2630 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002631 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002632
2633 /*link State*/
2634 tSirLinkState linkState;
2635
2636 /* Max TX power */
2637 tANI_S8 maxTxPower;
2638
2639} tHalJoinReqParams, *tpHalJoinReqParams;
2640
2641typedef PACKED_PRE struct PACKED_POST
2642{
2643 tHalMsgHeader header;
2644 tHalJoinReqParams joinReqParams;
2645} tHalJoinReqMsg, *tpHalJoinReqMsg;
2646
2647/*---------------------------------------------------------------------------
2648 WLAN_HAL_JOIN_RSP
2649---------------------------------------------------------------------------*/
2650
2651typedef PACKED_PRE struct PACKED_POST
2652{
2653 /*success or failure */
2654 tANI_U32 status;
2655
2656 /* HAL fills in the tx power used for mgmt frames in this field */
2657 tPowerdBm txMgmtPower;
2658
2659}tHalJoinRspParams, *tpHalJoinRspParams;
2660
2661typedef PACKED_PRE struct PACKED_POST
2662{
2663 tHalMsgHeader header;
2664 tHalJoinRspParams joinRspParams;
2665}tHalJoinRspMsg, *tpHalJoinRspMsg;
2666
2667/*---------------------------------------------------------------------------
2668 WLAN_HAL_POST_ASSOC_REQ
2669---------------------------------------------------------------------------*/
2670
2671typedef PACKED_PRE struct PACKED_POST
2672{
2673 tConfigStaParams configStaParams;
2674 tConfigBssParams configBssParams;
2675} tPostAssocReqParams, *tpPostAssocReqParams;
2676
2677typedef PACKED_PRE struct PACKED_POST
2678{
2679 tHalMsgHeader header;
2680 tPostAssocReqParams postAssocReqParams;
2681} tPostAssocReqMsg, *tpPostAssocReqMsg;
2682
2683/*---------------------------------------------------------------------------
2684 WLAN_HAL_POST_ASSOC_RSP
2685---------------------------------------------------------------------------*/
2686
2687typedef PACKED_PRE struct PACKED_POST
2688{
2689 tConfigStaRspParams configStaRspParams;
2690 tConfigBssRspParams configBssRspParams;
2691} tPostAssocRspParams, *tpPostAssocRspParams;
2692
2693typedef PACKED_PRE struct PACKED_POST
2694{
2695 tHalMsgHeader header;
2696 tPostAssocRspParams postAssocRspParams;
2697} tPostAssocRspMsg, *tpPostAssocRspMsg;
2698
2699/*---------------------------------------------------------------------------
2700 WLAN_HAL_SET_BSSKEY_REQ
2701---------------------------------------------------------------------------*/
2702
2703/*
2704 * This is used by PE to create a set of WEP keys for a given BSS.
2705 */
2706typedef PACKED_PRE struct PACKED_POST
2707{
2708 /*BSS Index of the BSS*/
2709 tANI_U8 bssIdx;
2710
2711 /*Encryption Type used with peer*/
2712 tAniEdType encType;
2713
2714 /*Number of keys*/
2715 tANI_U8 numKeys;
2716
2717 /*Array of keys.*/
2718 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302719
Jeff Johnson295189b2012-06-20 16:38:30 -07002720 /*Control for Replay Count, 1= Single TID based replay count on Tx
2721 0 = Per TID based replay count on TX */
2722 tANI_U8 singleTidRc;
2723} tSetBssKeyParams, *tpSetBssKeyParams;
2724
2725typedef PACKED_PRE struct PACKED_POST
2726{
2727 tHalMsgHeader header;
2728 tSetBssKeyParams setBssKeyParams;
2729} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2730
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002731/* tagged version of set bss key */
2732typedef PACKED_PRE struct PACKED_POST
2733{
2734 tSetBssKeyReqMsg Msg;
2735 uint32 Tag;
2736} tSetBssKeyReqMsgTagged;
2737
Jeff Johnson295189b2012-06-20 16:38:30 -07002738/*---------------------------------------------------------------------------
2739 WLAN_HAL_SET_BSSKEY_RSP
2740---------------------------------------------------------------------------*/
2741typedef PACKED_PRE struct PACKED_POST
2742{
2743 /*success or failure */
2744 tANI_U32 status;
2745
2746} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2747
2748typedef PACKED_PRE struct PACKED_POST
2749{
2750 tHalMsgHeader header;
2751 tSetBssKeyRspParams setBssKeyRspParams;
2752} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2753
2754/*---------------------------------------------------------------------------
2755 WLAN_HAL_SET_STAKEY_REQ,
2756---------------------------------------------------------------------------*/
2757
2758/*
2759 * This is used by PE to configure the key information on a given station.
2760 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2761 * a preconfigured key from a BSS the station assoicated with; otherwise
2762 * a new key descriptor is created based on the key field.
2763 */
2764
2765typedef PACKED_PRE struct PACKED_POST
2766{
2767 tHalMsgHeader header;
2768 tSetStaKeyParams setStaKeyParams;
2769} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2770
2771/*---------------------------------------------------------------------------
2772 WLAN_HAL_SET_STAKEY_RSP,
2773---------------------------------------------------------------------------*/
2774typedef PACKED_PRE struct PACKED_POST
2775{
2776 /*success or failure */
2777 tANI_U32 status;
2778
2779} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2780
2781typedef PACKED_PRE struct PACKED_POST
2782{
2783 tHalMsgHeader header;
2784 tSetStaKeyRspParams setStaKeyRspParams;
2785} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2786
2787/*---------------------------------------------------------------------------
2788 WLAN_HAL_RMV_BSSKEY_REQ,
2789---------------------------------------------------------------------------*/
2790/*
2791 * This is used by PE to remove keys for a given BSS.
2792 */
2793typedef PACKED_PRE struct PACKED_POST
2794
2795{
2796 /*BSS Index of the BSS*/
2797 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302798
Jeff Johnson295189b2012-06-20 16:38:30 -07002799 /*Encryption Type used with peer*/
2800 tAniEdType encType;
2801
2802 /*Key Id*/
2803 tANI_U8 keyId;
2804
2805 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2806 tAniWepType wepType;
2807
2808} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2809
2810typedef PACKED_PRE struct PACKED_POST
2811{
2812 tHalMsgHeader header;
2813 tRemoveBssKeyParams removeBssKeyParams;
2814} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2815
2816/*---------------------------------------------------------------------------
2817 WLAN_HAL_RMV_BSSKEY_RSP,
2818---------------------------------------------------------------------------*/
2819typedef PACKED_PRE struct PACKED_POST
2820{
2821 /*success or failure */
2822 tANI_U32 status;
2823
2824} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2825
2826typedef PACKED_PRE struct PACKED_POST
2827{
2828 tHalMsgHeader header;
2829 tRemoveBssKeyRspParams removeBssKeyRspParams;
2830} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2831
2832/*---------------------------------------------------------------------------
2833 WLAN_HAL_RMV_STAKEY_REQ,
2834---------------------------------------------------------------------------*/
2835/*
2836 * This is used by PE to Remove the key information on a given station.
2837 */
2838typedef PACKED_PRE struct PACKED_POST
2839{
2840 /*STA Index*/
2841 tANI_U16 staIdx;
2842
2843 /*Encryption Type used with peer*/
2844 tAniEdType encType;
2845
2846 /*Key Id*/
2847 tANI_U8 keyId;
2848
2849 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2850 the same key is used for both broadcast and unicast.*/
2851 tANI_BOOLEAN unicast;
2852
2853} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2854
2855typedef PACKED_PRE struct PACKED_POST
2856{
2857 tHalMsgHeader header;
2858 tRemoveStaKeyParams removeStaKeyParams;
2859} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2860
2861/*---------------------------------------------------------------------------
2862 WLAN_HAL_RMV_STAKEY_RSP,
2863---------------------------------------------------------------------------*/
2864typedef PACKED_PRE struct PACKED_POST
2865{
2866 /*success or failure */
2867 tANI_U32 status;
2868} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2869
2870typedef PACKED_PRE struct PACKED_POST
2871{
2872 tHalMsgHeader header;
2873 tRemoveStaKeyRspParams removeStaKeyRspParams;
2874} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2875
Jeff Johnsone7245742012-09-05 17:12:55 -07002876#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002877
Jeff Johnsone7245742012-09-05 17:12:55 -07002878#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002879#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002880#endif
2881
2882#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002883#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002884#endif
2885
2886/*-------------------------------------------------------------------------
2887WLAN_HAL_START_OEM_DATA_REQ
2888--------------------------------------------------------------------------*/
2889typedef PACKED_PRE struct PACKED_POST
2890{
2891 tANI_U32 status;
2892 tSirMacAddr selfMacAddr;
2893 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2894} tStartOemDataReqParams, *tpStartOemDataReqParams;
2895
2896typedef PACKED_PRE struct PACKED_POST
2897{
2898 tHalMsgHeader header;
2899 tStartOemDataReqParams startOemDataReqParams;
2900} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2901
2902/*-------------------------------------------------------------------------
2903WLAN_HAL_START_OEM_DATA_RSP
2904--------------------------------------------------------------------------*/
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2909} tStartOemDataRspParams, *tpStartOemDataRspParams;
2910
2911typedef PACKED_PRE struct PACKED_POST
2912{
2913 tHalMsgHeader header;
2914 tStartOemDataRspParams startOemDataRspParams;
2915} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2916
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302917#ifndef NEW_OEM_DATA_REQ_SIZE
2918#define NEW_OEM_DATA_REQ_SIZE 292
2919#endif
2920
2921#ifndef NEW_OEM_DATA_RSP_SIZE
2922#define NEW_OEM_DATA_RSP_SIZE 2100
2923#endif
2924
2925/*-------------------------------------------------------------------------
2926WLAN_HAL_START_OEM_DATA_REQ_IND_NEW------------------------------------
2927--------------------------------------------------------------------------*/
2928typedef PACKED_PRE struct PACKED_POST
2929{
Padma, Santhosh Kumarb7f449f2016-01-11 18:55:44 +05302930 tSirMacAddr selfMacAddr;
2931 tANI_U8 reserved[2];
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302932 tANI_U8 oemDataReq[NEW_OEM_DATA_REQ_SIZE];
2933} tStartOemDataReqParamsNew, *tpStartOemDataReqParamsNew;
2934
2935typedef PACKED_PRE struct PACKED_POST
2936{
2937 tHalMsgHeader header;
2938 tStartOemDataReqParamsNew startOemDataReqParams;
2939} tStartOemDataReqMsgNew, *tpStartOemDataReqMsgNew;
2940
2941/*-------------------------------------------------------------------------
2942WLAN_HAL_START_OEM_DATA_RSP_IND_NEW------------------------------------
2943--------------------------------------------------------------------------*/
2944typedef PACKED_PRE struct PACKED_POST
2945{
2946 tANI_U8 oemDataRsp[NEW_OEM_DATA_RSP_SIZE];
2947} tStartOemDataRspParamsNew, *tpStartOemDataRspParamsNew;
2948
2949typedef PACKED_PRE struct PACKED_POST
2950{
2951 tHalMsgHeader header;
2952 tStartOemDataRspParamsNew startOemDataReqParams;
2953} tStartOemDataRspMsgNew, *tpStartOemDataRspMsgNew;
2954
Jeff Johnsone7245742012-09-05 17:12:55 -07002955#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002956
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002957/*---------------------------------------------------------------------------
2958WLAN_HAL_CH_SWITCH_V1_REQ
2959---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002960
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002961typedef PACKED_PRE struct PACKED_POST
2962{
2963 /* Channel number */
2964 tANI_U8 channelNumber;
2965
2966 /* Local power constraint */
2967 tANI_U8 localPowerConstraint;
2968
2969 /*Secondary channel offset */
2970 ePhyChanBondState secondaryChannelOffset;
2971
2972 //HAL fills in the tx power used for mgmt frames in this field.
2973 tPowerdBm txMgmtPower;
2974
2975 /* Max TX power */
2976 tPowerdBm maxTxPower;
2977
2978 /* Self STA MAC */
2979 tSirMacAddr selfStaMacAddr;
2980
2981 /*VO WIFI comment: BSSID needed to identify session. As the request has
2982 * power constraints, this should be applied only to that session
2983 * Since MTU timing and EDCA are sessionized, this struct needs to be
2984 * sessionized and bssid needs to be out of the VOWifi feature flag
2985 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002986 * mantain backward compatbility
2987 * by way of ignoring if using new host/old FW or old host/new FW since
2988 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002989 */
2990 tSirMacAddr bssId;
2991
2992 /* Source of Channel Switch */
2993 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002994
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002995} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2996
2997typedef PACKED_PRE struct PACKED_POST
2998{
2999 tHalMsgHeader header;
3000 tSwitchChannelParams_V1 switchChannelParams_V1;
3001} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
3002
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003003/*---------------------------------------------------------------------------
3004WLAN_HAL_CH_SWITCH_V1_RSP
3005---------------------------------------------------------------------------*/
3006
3007typedef PACKED_PRE struct PACKED_POST
3008{
3009 /* Status */
3010 tANI_U32 status;
3011
3012 /* Channel number - same as in request*/
3013 tANI_U8 channelNumber;
3014
3015 /* HAL fills in the tx power used for mgmt frames in this field */
3016 tPowerdBm txMgmtPower;
3017
3018 /* BSSID needed to identify session - same as in request*/
3019 tSirMacAddr bssId;
3020
3021 /* Source of Channel Switch */
3022 eHalChanSwitchSource channelSwitchSrc;
3023
3024} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
3025
3026typedef PACKED_PRE struct PACKED_POST
3027{
3028 tHalMsgHeader header;
3029 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
3030} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07003031
3032/*---------------------------------------------------------------------------
3033WLAN_HAL_CH_SWITCH_REQ
3034---------------------------------------------------------------------------*/
3035
3036typedef PACKED_PRE struct PACKED_POST
3037{
3038 /* Channel number */
3039 tANI_U8 channelNumber;
3040
3041 /* Local power constraint */
3042 tANI_U8 localPowerConstraint;
3043
3044 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07003045 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003046
3047 //HAL fills in the tx power used for mgmt frames in this field.
3048 tPowerdBm txMgmtPower;
3049
3050 /* Max TX power */
3051 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05303052
Jeff Johnson295189b2012-06-20 16:38:30 -07003053 /* Self STA MAC */
3054 tSirMacAddr selfStaMacAddr;
3055
3056 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
3057 this should be applied only to that session*/
3058 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
3059 * bssid needs to be out of the VOWifi feature flag */
3060 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
3061 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
3062 */
3063 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303064
Jeff Johnson295189b2012-06-20 16:38:30 -07003065}tSwitchChannelParams, *tpSwitchChannelParams;
3066
3067typedef PACKED_PRE struct PACKED_POST
3068{
3069 tHalMsgHeader header;
3070 tSwitchChannelParams switchChannelParams;
3071} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
3072
3073/*---------------------------------------------------------------------------
3074WLAN_HAL_CH_SWITCH_RSP
3075---------------------------------------------------------------------------*/
3076
3077typedef PACKED_PRE struct PACKED_POST
3078{
3079 /* Status */
3080 tANI_U32 status;
3081
3082 /* Channel number - same as in request*/
3083 tANI_U8 channelNumber;
3084
3085 /* HAL fills in the tx power used for mgmt frames in this field */
3086 tPowerdBm txMgmtPower;
3087
3088 /* BSSID needed to identify session - same as in request*/
3089 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303090
Jeff Johnson295189b2012-06-20 16:38:30 -07003091}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3092
3093typedef PACKED_PRE struct PACKED_POST
3094{
3095 tHalMsgHeader header;
3096 tSwitchChannelRspParams switchChannelRspParams;
3097} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3098
3099/*---------------------------------------------------------------------------
3100WLAN_HAL_UPD_EDCA_PARAMS_REQ
3101---------------------------------------------------------------------------*/
3102
3103typedef PACKED_PRE struct PACKED_POST
3104{
3105 /*BSS Index*/
3106 tANI_U16 bssIdx;
3107
3108 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303109 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003110
3111 /* Background */
3112 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303113
Jeff Johnson295189b2012-06-20 16:38:30 -07003114 /* Video */
3115 tSirMacEdcaParamRecord acvi;
3116
3117 /* Voice */
3118 tSirMacEdcaParamRecord acvo;
3119
3120} tEdcaParams, *tpEdcaParams;
3121
3122typedef PACKED_PRE struct PACKED_POST
3123{
3124 tHalMsgHeader header;
3125 tEdcaParams edcaParams;
3126} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3127
3128/*---------------------------------------------------------------------------
3129WLAN_HAL_UPD_EDCA_PARAMS_RSP
3130---------------------------------------------------------------------------*/
3131typedef PACKED_PRE struct PACKED_POST
3132{
3133 /*success or failure */
3134 tANI_U32 status;
3135} tEdcaRspParams, *tpEdcaRspParams;
3136
3137typedef PACKED_PRE struct PACKED_POST
3138{
3139 tHalMsgHeader header;
3140 tEdcaRspParams edcaRspParams;
3141} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3142
3143
3144
3145/*---------------------------------------------------------------------------
3146 * WLAN_HAL_GET_STATS_REQ
3147 *--------------------------------------------------------------------------*/
3148typedef PACKED_PRE struct PACKED_POST
3149
3150{
3151 /* Index of STA to which the statistics */
3152 tANI_U16 staIdx;
3153
3154 /* Encryption mode */
3155 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303156
Jeff Johnson295189b2012-06-20 16:38:30 -07003157 /* status */
3158 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303159
Jeff Johnson295189b2012-06-20 16:38:30 -07003160 /* Statistics */
3161 tANI_U32 sendBlocks;
3162 tANI_U32 recvBlocks;
3163 tANI_U32 replays;
3164 tANI_U8 micErrorCnt;
3165 tANI_U32 protExclCnt;
3166 tANI_U16 formatErrCnt;
3167 tANI_U16 unDecryptableCnt;
3168 tANI_U32 decryptErrCnt;
3169 tANI_U32 decryptOkCnt;
3170} tDpuStatsParams, * tpDpuStatsParams;
3171
3172typedef PACKED_PRE struct PACKED_POST
3173{
3174 /* Valid STA Idx for per STA stats request */
3175 tANI_U32 staId;
3176
3177 /* Categories of stats requested as specified in eHalStatsMask*/
3178 tANI_U32 statsMask;
3179}tHalStatsReqParams, *tpHalStatsReqParams;
3180
3181typedef PACKED_PRE struct PACKED_POST
3182{
3183 tHalMsgHeader header;
3184 tHalStatsReqParams statsReqParams;
3185} tHalStatsReqMsg, *tpHalStatsReqMsg;
3186
3187/*---------------------------------------------------------------------------
3188 * WLAN_HAL_GET_STATS_RSP
3189 *--------------------------------------------------------------------------*/
3190
3191typedef PACKED_PRE struct PACKED_POST
3192{
3193 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3194 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3195 // station successfully transmitted after more than one retransmission attempt
3196
Dino Mycle8afbac12014-07-04 22:06:17 +05303197 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3198 //(with and without retries, including multi-cast, broadcast)
3199 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3200 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003201 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3202 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3203 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3204 tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
Dino Mycle8afbac12014-07-04 22:06:17 +05303205 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3206 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 -07003207 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3208 tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303209 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3210 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003211 //to provide this.
3212}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3213
3214
3215// defines tx_rate_flags
3216typedef enum eTxRateInfo
3217{
3218 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3219 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3220 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3221 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003222 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3223 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3224 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3225 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3226 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3227 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3228} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003229
3230
3231typedef PACKED_PRE struct PACKED_POST
3232{
Dino Mycle8afbac12014-07-04 22:06:17 +05303233 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 -07003234 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303235 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 -07003236 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303237 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3238 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003239 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303240 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3241 //for eg: if it is 10.5dBm, the value would be 105
3242 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3243 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003244
Dino Mycle8afbac12014-07-04 22:06:17 +05303245 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3246 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003247 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303248 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3249 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003250}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3251
3252typedef PACKED_PRE struct PACKED_POST
3253{
Dino Mycle8afbac12014-07-04 22:06:17 +05303254 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3255 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003256 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303257 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 -07003258 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303259 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 -07003260 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303261 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 -07003262 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303263 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 -07003264 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303265 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 -07003266 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303267 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 -07003268 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303269 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 -07003270 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303271 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 -07003272 //decrypted
3273 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3274
3275}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303276
Jeff Johnson295189b2012-06-20 16:38:30 -07003277typedef PACKED_PRE struct PACKED_POST
3278{
3279 tAniGlobalSecurityStats ucStats;
3280 tAniGlobalSecurityStats mcbcStats;
3281}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3282
3283typedef PACKED_PRE struct PACKED_POST
3284{
Dino Mycle8afbac12014-07-04 22:06:17 +05303285 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3286 //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 -07003287 //address 1 field
3288 tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
Dino Mycle8afbac12014-07-04 22:06:17 +05303289 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 -07003290 //primary channel
3291 tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
Dino Mycle8afbac12014-07-04 22:06:17 +05303292 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 -07003293 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303294 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3295 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003296 //decoded correctly
3297}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3298
3299typedef PACKED_PRE struct PACKED_POST
3300{
Dino Mycle8afbac12014-07-04 22:06:17 +05303301 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 -07003302 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303303 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3304 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 -07003305 //is transmitted
3306}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3307
Sushant Kaushik33200572015-08-05 16:46:20 +05303308// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3309typedef PACKED_PRE struct PACKED_POST
3310{
3311 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303312 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303313 tANI_U32 reserved;
3314 tANI_U32 reserved1;
3315}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3316
Jeff Johnson295189b2012-06-20 16:38:30 -07003317typedef PACKED_PRE struct PACKED_POST
3318{
3319 /* Success or Failure */
3320 tANI_U32 status;
3321
3322 /* STA Idx */
3323 tANI_U32 staId;
3324
3325 /* Categories of STATS being returned as per eHalStatsMask*/
3326 tANI_U32 statsMask;
3327
3328 /* message type is same as the request type */
3329 tANI_U16 msgType;
3330
3331 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303332 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003333
3334} tHalStatsRspParams, *tpHalStatsRspParams;
3335
3336
3337
3338typedef PACKED_PRE struct PACKED_POST
3339{
3340 tHalMsgHeader header;
3341 tHalStatsRspParams statsRspParams;
3342} tHalStatsRspMsg, *tpHalStatsRspMsg;
3343
Abhishek Singhbc310882015-05-22 15:17:02 +05303344 /*---------------------------------------------------------------------------
3345 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3346 *---------------------------------------------------------------------------*/
3347typedef PACKED_PRE struct PACKED_POST
3348{
3349 tANI_U32 rtsCtsValue;
3350}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3351
3352typedef PACKED_PRE struct PACKED_POST
3353{
3354 tHalMsgHeader header;
3355 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3356} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3357
Jeff Johnson295189b2012-06-20 16:38:30 -07003358/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303359 * WLAN_HAL_FW_STATS_REQ
3360 *---------------------------------------------------------------------------*/
3361 typedef PACKED_PRE struct PACKED_POST
3362{
3363 tANI_U32 type;
3364}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3365
3366typedef PACKED_PRE struct PACKED_POST
3367{
3368 tHalMsgHeader header;
3369 tHalfwStatsReqParams fwstatsReqParams;
3370} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3371
3372/*---------------------------------------------------------------------------
3373 * WLAN_HAL_FW_STATS_RSP
3374 *---------------------------------------------------------------------------*/
3375 typedef PACKED_PRE struct PACKED_POST
3376{
3377 tANI_U32 type;
3378 tANI_U32 length;
3379 tANI_U8 data[1];
3380
3381}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3382
3383typedef PACKED_PRE struct PACKED_POST
3384{
3385 tHalMsgHeader header;
3386 tHalfwStatsRspParams fwstatsRspParams;
3387} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3388
3389typedef enum
3390{
3391 FW_UBSP_STATS = 1,
3392} fwstatstype;
3393
3394
3395/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003396 * WLAN_HAL_SET_LINK_ST_REQ
3397 *--------------------------------------------------------------------------*/
3398typedef PACKED_PRE struct PACKED_POST
3399{
3400 tSirMacAddr bssid;
3401 tSirLinkState state;
3402 tSirMacAddr selfMacAddr;
3403} tLinkStateParams, *tpLinkStateParams;
3404
3405typedef PACKED_PRE struct PACKED_POST
3406{
3407 tHalMsgHeader header;
3408 tLinkStateParams linkStateParams;
3409} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3410
3411/*---------------------------------------------------------------------------
3412 * WLAN_HAL_SET_LINK_ST_RSP
3413 *--------------------------------------------------------------------------*/
3414
3415typedef PACKED_PRE struct PACKED_POST
3416{
3417 /*success or failure */
3418 tANI_U32 status;
3419} tLinkStateRspParams, *tpLinkStateRspParams;
3420
3421typedef PACKED_PRE struct PACKED_POST
3422{
3423 tHalMsgHeader header;
3424 tLinkStateRspParams linkStateRspParams;
3425} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3426
3427/*---------------------------------------------------------------------------
3428 * WLAN_HAL_ADD_TS_REQ
3429 *--------------------------------------------------------------------------*/
3430
3431/* TSPEC Params */
3432typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3433{
Jeff Johnson295189b2012-06-20 16:38:30 -07003434 tANI_U16 trafficType : 1;
3435 tANI_U16 tsid : 4;
3436 tANI_U16 direction : 2;
3437 tANI_U16 accessPolicy : 2;
3438 tANI_U16 aggregation : 1;
3439 tANI_U16 psb : 1;
3440 tANI_U16 userPrio : 3;
3441 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003442} __ani_attr_packed tSirMacTSInfoTfc;
3443
3444/* Flag to schedule the traffic type */
3445typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3446{
Jeff Johnson295189b2012-06-20 16:38:30 -07003447 tANI_U8 schedule : 1;
3448 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003449} __ani_attr_packed tSirMacTSInfoSch;
3450
3451/* Traffic and scheduling info */
3452typedef __ani_attr_pre_packed struct sSirMacTSInfo
3453{
3454 tSirMacTSInfoTfc traffic;
3455 tSirMacTSInfoSch schedule;
3456} __ani_attr_packed tSirMacTSInfo;
3457
3458/* Information elements */
3459typedef __ani_attr_pre_packed struct sSirMacTspecIE
3460{
3461 tANI_U8 type;
3462 tANI_U8 length;
3463 tSirMacTSInfo tsinfo;
3464 tANI_U16 nomMsduSz;
3465 tANI_U16 maxMsduSz;
3466 tANI_U32 minSvcInterval;
3467 tANI_U32 maxSvcInterval;
3468 tANI_U32 inactInterval;
3469 tANI_U32 suspendInterval;
3470 tANI_U32 svcStartTime;
3471 tANI_U32 minDataRate;
3472 tANI_U32 meanDataRate;
3473 tANI_U32 peakDataRate;
3474 tANI_U32 maxBurstSz;
3475 tANI_U32 delayBound;
3476 tANI_U32 minPhyRate;
3477 tANI_U16 surplusBw;
3478 tANI_U16 mediumTime;
3479}__ani_attr_packed tSirMacTspecIE;
3480
3481typedef PACKED_PRE struct PACKED_POST
3482{
3483 /* Station Index */
3484 tANI_U16 staIdx;
3485
3486 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3487 tANI_U16 tspecIdx;
3488
3489 /* To program TPE with required parameters */
3490 tSirMacTspecIE tspec;
3491
3492 /* U-APSD Flags: 1b per AC. Encoded as follows:
3493 b7 b6 b5 b4 b3 b2 b1 b0 =
3494 X X X X BE BK VI VO */
3495 tANI_U8 uAPSD;
3496
3497 /* These parameters are for all the access categories */
3498 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3499 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3500 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303501
Jeff Johnson295189b2012-06-20 16:38:30 -07003502} tAddTsParams, *tpAddTsParams;
3503
3504typedef PACKED_PRE struct PACKED_POST
3505{
3506 tHalMsgHeader header;
3507 tAddTsParams addTsParams;
3508} tAddTsReqMsg, *tpAddTsReqMsg;
3509
3510/*---------------------------------------------------------------------------
3511 * WLAN_HAL_ADD_TS_RSP
3512 *--------------------------------------------------------------------------*/
3513
3514typedef PACKED_PRE struct PACKED_POST
3515{
3516 /*success or failure */
3517 tANI_U32 status;
3518} tAddTsRspParams, *tpAddTsRspParams;
3519
3520typedef PACKED_PRE struct PACKED_POST
3521{
3522 tHalMsgHeader header;
3523 tAddTsRspParams addTsRspParams;
3524} tAddTsRspMsg, *tpAddTsRspMsg;
3525
3526
3527/*---------------------------------------------------------------------------
3528 * WLAN_HAL_DEL_TS_REQ
3529 *--------------------------------------------------------------------------*/
3530
3531typedef PACKED_PRE struct PACKED_POST
3532{
3533 /* Station Index */
3534 tANI_U16 staIdx;
3535
3536 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3537 tANI_U16 tspecIdx;
3538
3539 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303540 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003541
3542} tDelTsParams, *tpDelTsParams;
3543
3544typedef PACKED_PRE struct PACKED_POST
3545{
3546 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303547 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003548} tDelTsReqMsg, *tpDelTsReqMsg;
3549
3550/*---------------------------------------------------------------------------
3551 * WLAN_HAL_DEL_TS_RSP
3552 *--------------------------------------------------------------------------*/
3553
3554typedef PACKED_PRE struct PACKED_POST
3555{
3556 /*success or failure */
3557 tANI_U32 status;
3558} tDelTsRspParams, *tpDelTsRspParams;
3559
3560typedef PACKED_PRE struct PACKED_POST
3561{
3562 tHalMsgHeader header;
3563 tDelTsRspParams delTsRspParams;
3564} tDelTsRspMsg, *tpDelTsRspMsg;
3565
3566/* End of TSpec Parameters */
3567
3568/* Start of BLOCK ACK related Parameters */
3569
3570/*---------------------------------------------------------------------------
3571 * WLAN_HAL_ADD_BA_SESSION_REQ
3572 *--------------------------------------------------------------------------*/
3573
3574typedef PACKED_PRE struct PACKED_POST
3575{
3576 /* Station Index */
3577 tANI_U16 staIdx;
3578
3579 /* Peer MAC Address */
3580 tSirMacAddr peerMacAddr;
3581
3582 /* ADDBA Action Frame dialog token
3583 HAL will not interpret this object */
3584 tANI_U8 baDialogToken;
3585
3586 /* TID for which the BA is being setup
3587 This identifies the TC or TS of interest */
3588 tANI_U8 baTID;
3589
3590 /* 0 - Delayed BA (Not supported)
3591 1 - Immediate BA */
3592 tANI_U8 baPolicy;
3593
3594 /* Indicates the number of buffers for this TID (baTID)
3595 NOTE - This is the requested buffer size. When this
3596 is processed by HAL and subsequently by HDD, it is
3597 possible that HDD may change this buffer size. Any
3598 change in the buffer size should be noted by PE and
3599 advertized appropriately in the ADDBA response */
3600 tANI_U16 baBufferSize;
3601
3602 /* BA timeout in TU's 0 means no timeout will occur */
3603 tANI_U16 baTimeout;
3604
3605 /* b0..b3 - Fragment Number - Always set to 0
3606 b4..b15 - Starting Sequence Number of first MSDU
3607 for which this BA is setup */
3608 tANI_U16 baSSN;
3609
3610 /* ADDBA direction
3611 1 - Originator
3612 0 - Recipient */
3613 tANI_U8 baDirection;
3614} tAddBASessionParams, *tpAddBASessionParams;
3615
3616typedef PACKED_PRE struct PACKED_POST
3617{
3618 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303619 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003620}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3621
3622/*---------------------------------------------------------------------------
3623 * WLAN_HAL_ADD_BA_SESSION_RSP
3624 *--------------------------------------------------------------------------*/
3625
3626typedef PACKED_PRE struct PACKED_POST
3627{
3628 /*success or failure */
3629 tANI_U32 status;
3630
3631 /* Dialog token */
3632 tANI_U8 baDialogToken;
3633
3634 /* TID for which the BA session has been setup */
3635 tANI_U8 baTID;
3636
3637 /* BA Buffer Size allocated for the current BA session */
3638 tANI_U8 baBufferSize;
3639
3640 tANI_U8 baSessionID;
3641
3642 /* Reordering Window buffer */
3643 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303644
Jeff Johnson295189b2012-06-20 16:38:30 -07003645 /*Station Index to id the sta */
3646 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303647
Jeff Johnson295189b2012-06-20 16:38:30 -07003648 /* Starting Sequence Number */
3649 tANI_U16 SSN;
3650} tAddBASessionRspParams, *tpAddBASessionRspParams;
3651
3652typedef PACKED_PRE struct PACKED_POST
3653{
3654 tHalMsgHeader header;
3655 tAddBASessionRspParams addBASessionRspParams;
3656} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3657
3658/*---------------------------------------------------------------------------
3659 * WLAN_HAL_ADD_BA_REQ
3660 *--------------------------------------------------------------------------*/
3661
3662typedef PACKED_PRE struct PACKED_POST
3663{
3664 /* Session Id */
3665 tANI_U8 baSessionID;
3666
3667 /* Reorder Window Size */
3668 tANI_U8 winSize;
3669
3670#ifdef FEATURE_ON_CHIP_REORDERING
3671 tANI_BOOLEAN isReorderingDoneOnChip;
3672#endif
3673} tAddBAParams, *tpAddBAParams;
3674
3675typedef PACKED_PRE struct PACKED_POST
3676{
3677 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303678 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003679} tAddBAReqMsg, *tpAddBAReqMsg;
3680
3681
3682/*---------------------------------------------------------------------------
3683 * WLAN_HAL_ADD_BA_RSP
3684 *--------------------------------------------------------------------------*/
3685
3686typedef PACKED_PRE struct PACKED_POST
3687{
3688 /*success or failure */
3689 tANI_U32 status;
3690
3691 /* Dialog token */
3692 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303693
Jeff Johnson295189b2012-06-20 16:38:30 -07003694} tAddBARspParams, *tpAddBARspParams;
3695
3696typedef PACKED_PRE struct PACKED_POST
3697{
3698 tHalMsgHeader header;
3699 tAddBARspParams addBARspParams;
3700} tAddBARspMsg, *tpAddBARspMsg;
3701
3702
3703/*---------------------------------------------------------------------------
3704 * WLAN_HAL_TRIGGER_BA_REQ
3705 *--------------------------------------------------------------------------*/
3706
3707
3708typedef struct sAddBaInfo
3709{
3710 tANI_U16 fBaEnable : 1;
3711 tANI_U16 startingSeqNum: 12;
3712 tANI_U16 reserved : 3;
3713}tAddBaInfo, *tpAddBaInfo;
3714
3715typedef struct sTriggerBaRspCandidate
3716{
3717 tSirMacAddr staAddr;
3718 tAddBaInfo baInfo[STACFG_MAX_TC];
3719}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3720
3721typedef struct sTriggerBaCandidate
3722{
3723 tANI_U8 staIdx;
3724 tANI_U8 tidBitmap;
3725}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3726
3727typedef PACKED_PRE struct PACKED_POST
3728{
3729 /* Session Id */
3730 tANI_U8 baSessionID;
3731
Dino Mycle8afbac12014-07-04 22:06:17 +05303732 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003733 * Candidate List(tTriggerBaCandidate)
3734 */
3735 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303736
Jeff Johnson295189b2012-06-20 16:38:30 -07003737} tTriggerBAParams, *tpTriggerBAParams;
3738
3739typedef PACKED_PRE struct PACKED_POST
3740{
3741 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303742 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003743} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3744
3745
3746/*---------------------------------------------------------------------------
3747 * WLAN_HAL_TRIGGER_BA_RSP
3748 *--------------------------------------------------------------------------*/
3749
3750typedef PACKED_PRE struct PACKED_POST
3751{
Dino Mycle8afbac12014-07-04 22:06:17 +05303752
Jeff Johnson295189b2012-06-20 16:38:30 -07003753 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303754 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003755
3756 /* success or failure */
3757 tANI_U32 status;
3758
Dino Mycle8afbac12014-07-04 22:06:17 +05303759 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003760 * Rsp Candidate List(tTriggerRspBaCandidate)
3761 */
3762 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303763
Jeff Johnson295189b2012-06-20 16:38:30 -07003764
3765} tTriggerBARspParams, *tpTriggerBARspParams;
3766
3767typedef PACKED_PRE struct PACKED_POST
3768{
3769 tHalMsgHeader header;
3770 tTriggerBARspParams triggerBARspParams;
3771} tTriggerBARspMsg, *tpTriggerBARspMsg;
3772
3773/*---------------------------------------------------------------------------
3774 * WLAN_HAL_DEL_BA_REQ
3775 *--------------------------------------------------------------------------*/
3776
3777typedef PACKED_PRE struct PACKED_POST
3778{
3779 /* Station Index */
3780 tANI_U16 staIdx;
3781
3782 /* TID for which the BA session is being deleted */
3783 tANI_U8 baTID;
3784
3785 /* DELBA direction
3786 1 - Originator
3787 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303788 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003789} tDelBAParams, *tpDelBAParams;
3790
3791typedef PACKED_PRE struct PACKED_POST
3792{
3793 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303794 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003795} tDelBAReqMsg, *tpDelBAReqMsg;
3796
3797/*---------------------------------------------------------------------------
3798 * WLAN_HAL_DEL_BA_RSP
3799 *--------------------------------------------------------------------------*/
3800
3801typedef PACKED_PRE struct PACKED_POST
3802{
3803 /* success or failure */
3804 tANI_U32 status;
3805} tDelBARspParams, *tpDelBARspParams;
3806
3807typedef PACKED_PRE struct PACKED_POST
3808{
3809 tHalMsgHeader header;
3810 tDelBARspParams delBARspParams;
3811} tDelBARspMsg, *tpDelBARspMsg;
3812
3813
Jeff Johnson295189b2012-06-20 16:38:30 -07003814/*---------------------------------------------------------------------------
3815 * WLAN_HAL_TSM_STATS_REQ
3816 *--------------------------------------------------------------------------*/
3817typedef PACKED_PRE struct PACKED_POST
3818{
3819 /* Traffic Id */
3820 tANI_U8 tsmTID;
3821
3822 tSirMacAddr bssId;
3823} tTsmStatsParams, *tpTsmStatsParams;
3824
3825typedef PACKED_PRE struct PACKED_POST
3826{
3827 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303828 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003829} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3830
3831
3832/*---------------------------------------------------------------------------
3833 * WLAN_HAL_TSM_STATS_RSP
3834 *--------------------------------------------------------------------------*/
3835typedef PACKED_PRE struct PACKED_POST
3836{
3837 /*success or failure */
3838 tANI_U32 status;
3839
Dino Mycle8afbac12014-07-04 22:06:17 +05303840 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003841 tANI_U16 UplinkPktQueueDly;
3842
Dino Mycle8afbac12014-07-04 22:06:17 +05303843 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003844 tANI_U16 UplinkPktQueueDlyHist[4];
3845
Dino Mycle8afbac12014-07-04 22:06:17 +05303846 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003847 tANI_U32 UplinkPktTxDly;
3848
Dino Mycle8afbac12014-07-04 22:06:17 +05303849 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003850 tANI_U16 UplinkPktLoss;
3851
Dino Mycle8afbac12014-07-04 22:06:17 +05303852 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003853 tANI_U16 UplinkPktCount;
3854
Dino Mycle8afbac12014-07-04 22:06:17 +05303855 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003856 tANI_U8 RoamingCount;
3857
Dino Mycle8afbac12014-07-04 22:06:17 +05303858 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003859 tANI_U16 RoamingDly;
3860} tTsmStatsRspParams, *tpTsmStatsRspParams;
3861
3862typedef PACKED_PRE struct PACKED_POST
3863{
3864 tHalMsgHeader header;
3865 tTsmStatsRspParams tsmStatsRspParams;
3866} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3867
3868
Jeff Johnson295189b2012-06-20 16:38:30 -07003869/*---------------------------------------------------------------------------
3870 * WLAN_HAL_SET_KEYDONE_MSG
3871 *--------------------------------------------------------------------------*/
3872
3873typedef PACKED_PRE struct PACKED_POST
3874{
3875 /*bssid of the keys */
3876 tANI_U8 bssidx;
3877 tANI_U8 encType;
3878} tSetKeyDoneParams, *tpSetKeyDoneParams;
3879
3880typedef PACKED_PRE struct PACKED_POST
3881{
3882 tHalMsgHeader header;
3883 tSetKeyDoneParams setKeyDoneParams;
3884} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3885
3886/*---------------------------------------------------------------------------
3887 * WLAN_HAL_DOWNLOAD_NV_REQ
3888 *--------------------------------------------------------------------------*/
3889typedef PACKED_PRE struct PACKED_POST
3890{
3891 /* Fragment sequence number of the NV Image. Note that NV Image might not
3892 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303893 * can hence choose to chop the NV blob into multiple fragments starting with
3894 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003895 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3896 * concatenated together by HAL without any padding bytes in between.*/
3897 tANI_U16 fragNumber;
3898
3899 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303900 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003901 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3902 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3903 tANI_U16 isLastFragment;
3904
3905 /* NV Image size (number of bytes) */
3906 tANI_U32 nvImgBufferSize;
3907
3908 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3909 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3910} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3911
3912typedef PACKED_PRE struct PACKED_POST
3913{
3914 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3915 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3916 tHalMsgHeader header;
3917 tHalNvImgDownloadReqParams nvImageReqParams;
3918} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3919
3920/*---------------------------------------------------------------------------
3921 * WLAN_HAL_DOWNLOAD_NV_RSP
3922 *--------------------------------------------------------------------------*/
3923typedef PACKED_PRE struct PACKED_POST
3924{
3925 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3926 * after each fragment */
3927 tANI_U32 status;
3928} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3929
3930typedef PACKED_PRE struct PACKED_POST
3931{
3932 tHalMsgHeader header;
3933 tHalNvImgDownloadRspParams nvImageRspParams;
3934} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3935
3936/*---------------------------------------------------------------------------
3937 * WLAN_HAL_STORE_NV_IND
3938 *--------------------------------------------------------------------------*/
3939typedef PACKED_PRE struct PACKED_POST
3940{
3941 /* NV Item */
3942 eNvTable tableID;
3943
3944 /* Size of NV Blob */
3945 tANI_U32 nvBlobSize;
3946
Dino Mycle8afbac12014-07-04 22:06:17 +05303947 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003948 * NV blob i.e. uint8[nvBlobSize] */
3949} tHalNvStoreParams, *tpHalNvStoreParams;
3950
3951typedef PACKED_PRE struct PACKED_POST
3952{
3953 /* Note: The length specified in tHalNvStoreInd messages should be
3954 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3955 tHalMsgHeader header;
3956 tHalNvStoreParams nvStoreParams;
3957} tHalNvStoreInd, *tpHalNvStoreInd;
3958
3959/* End of Block Ack Related Parameters */
3960
3961/*---------------------------------------------------------------------------
3962 * WLAN_HAL_MIC_FAILURE_IND
3963 *--------------------------------------------------------------------------*/
3964
3965#define SIR_CIPHER_SEQ_CTR_SIZE 6
3966
3967typedef PACKED_PRE struct PACKED_POST
3968{
Dino Mycle8afbac12014-07-04 22:06:17 +05303969 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003970 tSirMacAddr taMacAddr; //transmitter address
3971 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303972 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003973 tANI_U8 IV1; // first byte of IV
3974 tANI_U8 keyId; // second byte of IV
3975 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3976 tSirMacAddr rxMacAddr; // receive address
3977} tSirMicFailureInfo, *tpSirMicFailureInfo;
3978
3979/* Definition for MIC failure indication
3980 MAC reports this each time a MIC failure occures on Rx TKIP packet
3981 */
3982typedef PACKED_PRE struct PACKED_POST
3983{
3984 tSirMacAddr bssId; // BSSID
3985 tSirMicFailureInfo info;
3986} tSirMicFailureInd, *tpSirMicFailureInd;
3987
3988typedef PACKED_PRE struct PACKED_POST
3989{
3990 tHalMsgHeader header;
3991 tSirMicFailureInd micFailureInd;
3992} tMicFailureIndMsg, *tpMicFailureIndMsg;
3993
Mohit Khanna4a70d262012-09-11 16:30:12 -07003994typedef PACKED_PRE struct PACKED_POST
3995{
3996 tANI_U16 opMode;
3997 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303998}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003999
4000typedef PACKED_PRE struct PACKED_POST
4001{
4002 tHalMsgHeader header;
4003 tUpdateVHTOpMode updateVhtOpMode;
4004} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
4005
4006typedef PACKED_PRE struct PACKED_POST
4007{
4008 tANI_U32 status;
4009} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
4010
4011typedef PACKED_PRE struct PACKED_POST
4012{
4013 tHalMsgHeader header;
4014 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
4015} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
4016
Jeff Johnson295189b2012-06-20 16:38:30 -07004017/*---------------------------------------------------------------------------
4018 * WLAN_HAL_UPDATE_BEACON_REQ
4019 *--------------------------------------------------------------------------*/
4020typedef PACKED_PRE struct PACKED_POST
4021{
4022
4023 tANI_U8 bssIdx;
4024
4025 //shortPreamble mode. HAL should update all the STA rates when it
4026 //receives this message
4027 tANI_U8 fShortPreamble;
4028 //short Slot time.
4029 tANI_U8 fShortSlotTime;
4030 //Beacon Interval
4031 tANI_U16 beaconInterval;
4032 //Protection related
4033 tANI_U8 llaCoexist;
4034 tANI_U8 llbCoexist;
4035 tANI_U8 llgCoexist;
4036 tANI_U8 ht20MhzCoexist;
4037 tANI_U8 llnNonGFCoexist;
4038 tANI_U8 fLsigTXOPProtectionFullSupport;
4039 tANI_U8 fRIFSMode;
4040
4041 tANI_U16 paramChangeBitmap;
4042}tUpdateBeaconParams, *tpUpdateBeaconParams;
4043
4044
4045typedef PACKED_PRE struct PACKED_POST
4046{
4047 tHalMsgHeader header;
4048 tUpdateBeaconParams updateBeaconParam;
4049} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
4050
4051/*---------------------------------------------------------------------------
4052 * WLAN_HAL_UPDATE_BEACON_RSP
4053 *--------------------------------------------------------------------------*/
4054typedef PACKED_PRE struct PACKED_POST
4055{
4056 tANI_U32 status;
4057} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
4058
4059typedef PACKED_PRE struct PACKED_POST
4060{
4061 tHalMsgHeader header;
4062 tUpdateBeaconRspParams updateBeaconRspParam;
4063} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
4064
4065/*---------------------------------------------------------------------------
4066 * WLAN_HAL_SEND_BEACON_REQ
4067 *--------------------------------------------------------------------------*/
4068typedef PACKED_PRE struct PACKED_POST
4069{
4070 tANI_U32 beaconLength; //length of the template.
4071 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
4072 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004073 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07004074 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
4075}tSendBeaconParams, *tpSendBeaconParams;
4076
4077
4078typedef PACKED_PRE struct PACKED_POST
4079{
4080 tHalMsgHeader header;
4081 tSendBeaconParams sendBeaconParam;
4082}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4083
4084/*---------------------------------------------------------------------------
4085 * WLAN_HAL_SEND_BEACON_RSP
4086 *--------------------------------------------------------------------------*/
4087typedef PACKED_PRE struct PACKED_POST
4088{
4089 tANI_U32 status;
4090} tSendBeaconRspParams, *tpSendBeaconRspParams;
4091
4092typedef PACKED_PRE struct PACKED_POST
4093{
4094 tHalMsgHeader header;
4095 tSendBeaconRspParams sendBeaconRspParam;
4096} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4097
4098#ifdef FEATURE_5GHZ_BAND
4099
4100/*---------------------------------------------------------------------------
4101 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4102 *--------------------------------------------------------------------------*/
4103typedef PACKED_PRE struct PACKED_POST
4104{
4105 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304106 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004107}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4108
4109
4110typedef PACKED_PRE struct PACKED_POST
4111{
4112 /* Link Parameters */
4113 tSirEnableRadarInfoType EnableRadarInfo;
4114}tEnableRadarReqParams, *tpEnableRadarReqParams;
4115
4116typedef PACKED_PRE struct PACKED_POST
4117{
4118 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304119 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004120}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4121
4122/*---------------------------------------------------------------------------
4123 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4124 *--------------------------------------------------------------------------*/
4125
4126typedef PACKED_PRE struct PACKED_POST
4127{
4128 /* Link Parameters */
4129 tSirMacAddr BSSID;
4130 /* success or failure */
4131 tANI_U32 status;
4132}tEnableRadarRspParams, *tpEnableRadarRspParams;
4133
4134typedef PACKED_PRE struct PACKED_POST
4135{
4136 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304137 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004138}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4139
4140/*---------------------------------------------------------------------------
4141 *WLAN_HAL_RADAR_DETECT_INTR_IND
4142 *--------------------------------------------------------------------------*/
4143
4144typedef PACKED_PRE struct PACKED_POST
4145{
4146 tANI_U8 radarDetChannel;
4147}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4148
4149typedef PACKED_PRE struct PACKED_POST
4150{
4151 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304152 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004153}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4154
4155/*---------------------------------------------------------------------------
4156 *WLAN_HAL_RADAR_DETECT_IND
4157 *-------------------------------------------------------------------------*/
4158typedef PACKED_PRE struct PACKED_POST
4159{
4160 /*channel number in which the RADAR detected*/
4161 tANI_U8 channelNumber;
4162
4163 /*RADAR pulse width*/
4164 tANI_U16 radarPulseWidth; // in usecond
4165
4166 /*Number of RADAR pulses */
4167 tANI_U16 numRadarPulse;
4168}tRadarDetectIndParams,*tpRadarDetectIndParams;
4169
4170typedef PACKED_PRE struct PACKED_POST
4171{
4172 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304173 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004174}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4175
4176
4177/*---------------------------------------------------------------------------
4178 *WLAN_HAL_GET_TPC_REPORT_REQ
4179 *-------------------------------------------------------------------------*/
4180typedef PACKED_PRE struct PACKED_POST
4181{
4182 tSirMacAddr sta;
4183 tANI_U8 dialogToken;
4184 tANI_U8 txpower;
4185}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4186
4187
4188typedef PACKED_PRE struct PACKED_POST
4189{
4190 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304191 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004192}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4193
4194/*---------------------------------------------------------------------------
4195 * WLAN_HAL_GET_TPC_REPORT_RSP
4196 *--------------------------------------------------------------------------*/
4197
4198typedef PACKED_PRE struct PACKED_POST
4199{
4200 /* success or failure */
4201 tANI_U32 status;
4202}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4203
4204typedef PACKED_PRE struct PACKED_POST
4205{
4206 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304207 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004208}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4209
4210#endif
4211
Jeff Johnson295189b2012-06-20 16:38:30 -07004212/*---------------------------------------------------------------------------
4213 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4214 *-------------------------------------------------------------------------*/
4215typedef PACKED_PRE struct PACKED_POST
4216{
4217 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4218 tANI_U32 probeRespTemplateLen;
4219 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4220 tSirMacAddr bssId;
4221
4222}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4223
4224typedef PACKED_PRE struct PACKED_POST
4225{
4226 tHalMsgHeader header;
4227 tSendProbeRespReqParams sendProbeRespReqParams ;
4228}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4229
4230/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304231 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004232 *--------------------------------------------------------------------------*/
4233
4234typedef PACKED_PRE struct PACKED_POST
4235{
4236 /* success or failure */
4237 tANI_U32 status;
4238}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4239
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 tHalMsgHeader header;
4243 tSendProbeRespRspParams sendProbeRespRspParams;
4244}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4245
4246
4247/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304248 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004249 *--------------------------------------------------------------------------*/
4250
4251typedef PACKED_PRE struct PACKED_POST
4252{
4253 /* success or failure */
4254 tANI_U32 status;
4255}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4256
4257typedef PACKED_PRE struct PACKED_POST
4258{
4259 tHalMsgHeader header;
4260 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4261}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4262
4263/*---------------------------------------------------------------------------
4264 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4265 *--------------------------------------------------------------------------*/
4266
4267typedef PACKED_PRE struct PACKED_POST
4268{
4269 tANI_U16 assocId;
4270 tANI_U16 staId;
4271 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4272 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004273 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304274 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004275
4276}tDeleteStaContextParams, *tpDeleteStaContextParams;
4277
4278
4279typedef PACKED_PRE struct PACKED_POST
4280{
4281 tHalMsgHeader header;
4282 tDeleteStaContextParams deleteStaContextParams;
4283}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4284
Anand Kumar012623a2013-01-11 17:00:00 -08004285typedef PACKED_PRE struct PACKED_POST
4286{
4287 tHalMsgHeader header;
4288 tANI_U8 assocId;
4289 tANI_U8 staIdx;
4290 tANI_U8 bssIdx;
4291 tANI_U8 uReasonCode;
4292 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004293#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4294 tANI_U8 staAddr[6];
4295 tANI_U8 bssId[6];
4296#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004297} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004298
4299/*---------------------------------------------------------------------------
4300 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4301 *--------------------------------------------------------------------------*/
4302
4303typedef PACKED_PRE struct PACKED_POST
4304{
4305 tBtAmpEventType btAmpEventType;
4306
4307}tBtAmpEventParams, *tpBtAmpEventParams;
4308
4309
4310
4311typedef PACKED_PRE struct PACKED_POST
4312{
4313 tHalMsgHeader header;
4314 tBtAmpEventParams btAmpEventParams;
4315}tBtAmpEventMsg, *tpBtAmpEventMsg;
4316
4317/*---------------------------------------------------------------------------
4318*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4319*--------------------------------------------------------------------------*/
4320
4321typedef PACKED_PRE struct PACKED_POST
4322{
4323 /* success or failure */
4324 tANI_U32 status;
4325}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4326
4327typedef PACKED_PRE struct PACKED_POST
4328{
4329 tHalMsgHeader header;
4330 tBtAmpEventRspParams btAmpEventRspParams;
4331}tBtAmpEventRsp, *tpBtAmpEventRsp;
4332
4333
4334/*---------------------------------------------------------------------------
4335 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4336 *--------------------------------------------------------------------------*/
4337
4338typedef PACKED_PRE struct PACKED_POST
4339{
4340 // Station Index. originates from HAL
4341 tANI_U8 ucSTAId;
4342
4343 // TID for which the transmit queue is being flushed
4344 tANI_U8 ucTid;
4345
4346}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4347
4348
4349typedef PACKED_PRE struct PACKED_POST
4350{
4351 tHalMsgHeader header;
4352 tTlHalFlushAcParams tlHalFlushAcParam;
4353}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4354
4355/*---------------------------------------------------------------------------
4356*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4357*--------------------------------------------------------------------------*/
4358
4359typedef PACKED_PRE struct PACKED_POST
4360{
4361 // Station Index. originates from HAL
4362 tANI_U8 ucSTAId;
4363
4364 // TID for which the transmit queue is being flushed
4365 tANI_U8 ucTid;
4366
4367 /* success or failure */
4368 tANI_U32 status;
4369}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4370
4371typedef PACKED_PRE struct PACKED_POST
4372{
4373 tHalMsgHeader header;
4374 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4375}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4376
4377/*---------------------------------------------------------------------------
4378 * WLAN_HAL_ENTER_IMPS_REQ
4379 *--------------------------------------------------------------------------*/
4380typedef PACKED_PRE struct PACKED_POST
4381{
4382 tHalMsgHeader header;
4383} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4384
4385/*---------------------------------------------------------------------------
4386 * WLAN_HAL_EXIT_IMPS_REQ
4387 *--------------------------------------------------------------------------*/
4388typedef PACKED_PRE struct PACKED_POST
4389{
4390 tHalMsgHeader header;
4391} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4392
4393/*---------------------------------------------------------------------------
4394 * WLAN_HAL_ENTER_BMPS_REQ
4395 *--------------------------------------------------------------------------*/
4396
4397typedef PACKED_PRE struct PACKED_POST
4398{
4399 tANI_U8 bssIdx;
4400 //TBTT value derived from the last beacon
4401#ifndef BUILD_QWPTTSTATIC
4402 tANI_U64 tbtt;
4403#endif
4404 tANI_U8 dtimCount;
4405 //DTIM period given to HAL during association may not be valid,
4406 //if association is based on ProbeRsp instead of beacon.
4407 tANI_U8 dtimPeriod;
4408
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004409 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004410 tANI_U32 rssiFilterPeriod;
4411 tANI_U32 numBeaconPerRssiAverage;
4412 tANI_U8 bRssiFilterEnable;
4413
4414} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4415
4416
4417typedef PACKED_PRE struct PACKED_POST
4418{
4419 tHalMsgHeader header;
4420 tHalEnterBmpsReqParams enterBmpsReq;
4421} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4422
4423/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304424 * WLAN_HAL_PRINT_REG_INFO_IND
4425 *--------------------------------------------------------------------------*/
4426typedef PACKED_PRE struct PACKED_POST
4427{
4428 uint32 regAddr;
4429 uint32 regValue;
4430} tHalRegDebugInfo, *tpRegDebugInfo;
4431
4432typedef PACKED_PRE struct PACKED_POST
4433{
4434 uint32 regCount;
4435 uint32 scenario;
4436 uint32 reasonCode;
4437} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4438
4439typedef PACKED_PRE struct PACKED_POST
4440{
4441 tHalMsgHeader header;
4442 tHalRegDebugInfoParams regParams;
4443} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4444
4445/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004446 * WLAN_HAL_EXIT_BMPS_REQ
4447 *--------------------------------------------------------------------------*/
4448typedef PACKED_PRE struct PACKED_POST
4449{
4450 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004451 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004452} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4453
4454typedef PACKED_PRE struct PACKED_POST
4455{
4456 tHalMsgHeader header;
4457 tHalExitBmpsReqParams exitBmpsReqParams;
4458} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4459
4460/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004461 * WLAN_HAL_MISSED_BEACON_IND
4462 *--------------------------------------------------------------------------*/
4463typedef PACKED_PRE struct PACKED_POST
4464{
4465 tANI_U8 bssIdx;
4466} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4467
4468typedef PACKED_PRE struct PACKED_POST
4469{
4470 tHalMsgHeader header;
4471 tHalMissedBeaconIndParams missedBeaconIndParams;
4472} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4473
4474/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004475 * WLAN_HAL_ADD_BCN_FILTER_REQ
4476 *--------------------------------------------------------------------------*/
4477/* Beacon Filtering data structures */
4478typedef PACKED_PRE struct PACKED_POST
4479{
4480 tANI_U8 offset;
4481 tANI_U8 value;
4482 tANI_U8 bitMask;
4483 tANI_U8 ref;
4484} tEidByteInfo, *tpEidByteInfo;
4485
Dino Mycle8afbac12014-07-04 22:06:17 +05304486typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004487{
4488 tANI_U16 capabilityInfo;
4489 tANI_U16 capabilityMask;
4490 tANI_U16 beaconInterval;
4491 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004492 tANI_U8 bssIdx;
4493 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004494} tBeaconFilterMsg, *tpBeaconFilterMsg;
4495
4496/* The above structure would be followed by multiple of below mentioned structure */
4497typedef PACKED_PRE struct PACKED_POST
4498{
4499 tANI_U8 elementId;
4500 tANI_U8 checkIePresence;
4501 tEidByteInfo byte;
4502} tBeaconFilterIe, *tpBeaconFilterIe;
4503
4504typedef PACKED_PRE struct PACKED_POST
4505{
4506 tHalMsgHeader header;
4507 tBeaconFilterMsg addBcnFilterParams;
4508} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4509
4510/*---------------------------------------------------------------------------
4511 * WLAN_HAL_REM_BCN_FILTER_REQ
4512 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304513typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004514{
4515 tANI_U8 ucIeCount;
4516 tANI_U8 ucRemIeId[1];
4517} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4518
4519typedef PACKED_PRE struct PACKED_POST
4520{
4521 tHalMsgHeader header;
4522 tRemBeaconFilterMsg remBcnFilterParams;
4523} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4524
4525/*---------------------------------------------------------------------------
4526 * WLAN_HAL_HOST_OFFLOAD_REQ
4527 *--------------------------------------------------------------------------*/
4528#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4529#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4530#define HAL_IPV6_NS_OFFLOAD 2
4531#define HAL_IPV6_ADDR_LEN 16
4532#define HAL_MAC_ADDR_LEN 6
4533#define HAL_OFFLOAD_DISABLE 0
4534#define HAL_OFFLOAD_ENABLE 1
4535#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004536#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004537#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004538#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004539
4540typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4541{
4542 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4543 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4544 //Only support 2 possible Network Advertisement IPv6 address
4545 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4546 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4547 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4548 tANI_U8 srcIPv6AddrValid : 1;
4549 tANI_U8 targetIPv6Addr1Valid : 1;
4550 tANI_U8 targetIPv6Addr2Valid : 1;
4551 tANI_U8 reserved1 : 5;
4552 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004553 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004554 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004555} tHalNSOffloadParams;
4556
4557typedef PACKED_PRE struct PACKED_POST
4558{
4559 tANI_U8 offloadType;
4560 tANI_U8 enableOrDisable;
4561 PACKED_PRE union PACKED_POST
4562 {
4563 tANI_U8 hostIpv4Addr [4];
4564 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4565 } params;
4566} tHalHostOffloadReq, *tpHalHostOffloadReq;
4567
4568typedef PACKED_PRE struct PACKED_POST
4569{
4570 tHalMsgHeader header;
4571 tHalHostOffloadReq hostOffloadParams;
4572 tHalNSOffloadParams nsOffloadParams;
4573} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4574
Leo Chang397deb72013-08-22 11:33:16 -07004575
4576#ifdef FEATURE_WLAN_LPHB
4577typedef enum
4578{
4579 WIFI_HB_SET_ENABLE = 0x0001,
4580 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4581 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4582 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4583 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4584 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4585}tLowPowerHeartBeatCmdType ;
4586
4587#define MAX_FLITER_SIZE 64
4588/*---------------------------------------------------------------------------
4589 *FEATURE_WLAN_LPHB REQ
4590 *--------------------------------------------------------------------------*/
4591typedef PACKED_PRE struct PACKED_POST
4592{
4593 uint32 hostIpv4Addr;
4594 uint32 destIpv4Addr;
4595 uint16 hostPort;
4596 uint16 destPort;
4597 uint16 timeOutSec; // in seconds
4598 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004599 uint16 timePeriodSec; // in seconds
4600 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004601} tlowPowerHeartBeatParamsTcpStruct;
4602
4603typedef PACKED_PRE struct PACKED_POST
4604{
4605 uint32 hostIpv4Addr;
4606 uint32 destIpv4Addr;
4607 uint16 hostPort;
4608 uint16 destPort;
4609 uint16 timePeriodSec;// in seconds
4610 uint16 timeOutSec; // in seconds
4611 tSirMacAddr gatewayMacAddr;
4612} tlowPowerHeartBeatParamsUdpStruct;
4613
4614typedef PACKED_PRE struct PACKED_POST
4615{
4616 uint32 offset;
4617 uint32 filterLength;
4618 uint8 filter[MAX_FLITER_SIZE];
4619} tlowPowerHeartBeatFilterStruct;
4620
4621typedef PACKED_PRE struct PACKED_POST
4622{
4623 uint8 heartBeatEnable;
4624 uint8 heartBeatType; //TCP or UDP
4625} tlowPowerHeartBeatEnableStruct;
4626
4627typedef PACKED_PRE struct PACKED_POST
4628{
4629 uint8 dummy;
4630} tlowPowerHeartBeatNetworkInfoStruct;
4631
4632
4633typedef PACKED_PRE struct PACKED_POST
4634{
4635 uint8 sessionIdx;
4636 uint16 lowPowerHeartBeatCmdType;
4637 PACKED_PRE union PACKED_PRO
4638 {
4639 tlowPowerHeartBeatEnableStruct control;
4640 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4641 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4642 tlowPowerHeartBeatParamsUdpStruct udpParams;
4643 tlowPowerHeartBeatNetworkInfoStruct info;
4644 }options;
4645} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4646
4647
4648typedef PACKED_PRE struct PACKED_POST
4649{
4650 tHalMsgHeader header;
4651 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4652} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4653
4654/*---------------------------------------------------------------------------
4655 * FEATURE_WLAN_LPHB RSP
4656 *--------------------------------------------------------------------------*/
4657
4658typedef PACKED_PRE struct PACKED_POST
4659{
4660 /* success or failure */
4661 uint8 sessionIdx;
4662 uint32 status;
4663 uint16 lowPowerHeartBeatCmdType;
4664}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4665
4666typedef PACKED_PRE struct PACKED_POST
4667{
4668 tHalMsgHeader header;
4669 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4670}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4671
4672
4673/*---------------------------------------------------------------------------
4674 * FEATURE_WLAN_LPHB IND
4675 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004676#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4677#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4678
4679#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4680#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004681#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004682
Kumar Anandea78e792013-10-10 23:47:01 -07004683
4684#define WIFI_LPHB_PROTO_UDP 0x01
4685#define WIFI_LPHB_PROTO_TCP 0x02
4686
Leo Chang397deb72013-08-22 11:33:16 -07004687typedef PACKED_PRE struct PACKED_POST
4688{
4689 uint8 bssIdx;
4690 uint8 sessionIdx;
4691 uint8 protocolType; /*TCP or UDP*/
4692 uint8 eventReason;
4693
4694}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4695
4696typedef PACKED_PRE struct PACKED_POST
4697{
4698 tHalMsgHeader header;
4699 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4700}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4701
4702#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004703
4704#ifdef FEATURE_WLAN_BATCH_SCAN
4705
4706/*---------------------------------------------------------------------------
4707 * WLAN_HAL_BATCHSCAN_SET_REQ
4708 *--------------------------------------------------------------------------*/
4709typedef PACKED_PRE struct PACKED_POST
4710{
4711 /* Scan Frerquency - default to 30Sec*/
4712 tANI_U32 scanInterval;
4713 tANI_U32 numScan2Batch;
4714 tANI_U32 bestNetworks;
4715 tANI_U8 rfBand;
4716 tANI_U8 rtt;
4717} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4718
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 tHalMsgHeader header;
4722 tHalBatchScanSetParams batchScanParams;
4723} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4724
4725/*---------------------------------------------------------------------------
4726 * WLAN_HAL_BATCHSCAN_SET_RSP
4727 *--------------------------------------------------------------------------*/
4728typedef PACKED_PRE struct PACKED_POST
4729{
4730 tANI_U32 supportedMscan;
4731} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4732
4733typedef PACKED_PRE struct PACKED_POST
4734{
4735 tHalMsgHeader header;
4736 tHalBatchScanSetRspParam setBatchScanRspParam;
4737} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4738
4739/*---------------------------------------------------------------------------
4740* WLAN_HAL_BATCHSCAN_STOP_IND
4741*--------------------------------------------------------------------------*/
4742typedef PACKED_PRE struct PACKED_POST
4743{
4744 tANI_U32 param;
4745} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4746
4747typedef PACKED_PRE struct PACKED_POST
4748{
4749 tHalMsgHeader header;
4750 tHalBatchScanStopIndParam param;
4751} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4752
4753/*---------------------------------------------------------------------------
4754* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4755*--------------------------------------------------------------------------*/
4756typedef PACKED_PRE struct PACKED_POST
4757{
4758 tANI_U32 param;
4759} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4760
4761typedef PACKED_PRE struct PACKED_POST
4762{
4763 tHalMsgHeader header;
4764 tHalBatchScanTriggerResultParam param;
4765} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4766
4767/*---------------------------------------------------------------------------
4768 * WLAN_HAL_BATCHSCAN_GET_RSP
4769 *--------------------------------------------------------------------------*/
4770typedef PACKED_PRE struct PACKED_POST
4771{
4772 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004773 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004774 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304775 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004776 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4777 tANI_U32 timestamp;
4778} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4779
4780typedef PACKED_PRE struct PACKED_POST
4781{
4782 tANI_U32 scanId; /* Scan List ID. */
4783 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4784 tANI_U32 numNetworksInScanList;
4785 /* Variable data ptr: Number of AP in Scan List */
4786 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4787 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4788 tANI_U8 scanList[1];
4789} tHalBatchScanList, *tpHalBatchScanList;
4790
4791typedef PACKED_PRE struct PACKED_POST
4792{
4793 tANI_U32 timestamp;
4794 tANI_U32 numScanLists;
4795 boolean isLastResult;
4796 /* Variable Data ptr: Number of Scan Lists*/
4797 /* following isLastResult is data of type tHalBatchScanList
4798 * of sizeof(tHalBatchScanList) * numScanLists*/
4799 tANI_U8 scanResults[1];
4800} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4801
4802typedef PACKED_PRE struct PACKED_POST
4803{
4804 tHalMsgHeader header;
4805 tHalBatchScanResultIndParam resultIndMsgParam;
4806} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4807
4808#endif
4809
Jeff Johnson295189b2012-06-20 16:38:30 -07004810/*---------------------------------------------------------------------------
4811 * WLAN_HAL_KEEP_ALIVE_REQ
4812 *--------------------------------------------------------------------------*/
4813/* Packet Types. */
4814#define HAL_KEEP_ALIVE_NULL_PKT 1
4815#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4816
4817/* Enable or disable keep alive */
4818#define HAL_KEEP_ALIVE_DISABLE 0
4819#define HAL_KEEP_ALIVE_ENABLE 1
4820
4821/* Keep Alive request. */
4822typedef PACKED_PRE struct PACKED_POST
4823{
4824 tANI_U8 packetType;
4825 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304826 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004827 tHalIpv4Addr destIpv4Addr;
4828 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004829 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004830} tHalKeepAliveReq, *tpHalKeepAliveReq;
4831
4832typedef PACKED_PRE struct PACKED_POST
4833{
4834 tHalMsgHeader header;
4835 tHalKeepAliveReq KeepAliveParams;
4836} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4837
4838/*---------------------------------------------------------------------------
4839 * WLAN_HAL_SET_RSSI_THRESH_REQ
4840 *--------------------------------------------------------------------------*/
4841typedef PACKED_PRE struct PACKED_POST
4842{
4843 tANI_S8 ucRssiThreshold1 : 8;
4844 tANI_S8 ucRssiThreshold2 : 8;
4845 tANI_S8 ucRssiThreshold3 : 8;
4846 tANI_U8 bRssiThres1PosNotify : 1;
4847 tANI_U8 bRssiThres1NegNotify : 1;
4848 tANI_U8 bRssiThres2PosNotify : 1;
4849 tANI_U8 bRssiThres2NegNotify : 1;
4850 tANI_U8 bRssiThres3PosNotify : 1;
4851 tANI_U8 bRssiThres3NegNotify : 1;
4852 tANI_U8 bReserved10 : 2;
4853} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304854
Jeff Johnson295189b2012-06-20 16:38:30 -07004855typedef PACKED_PRE struct PACKED_POST
4856{
4857 tHalMsgHeader header;
4858 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004859} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004860
4861/*---------------------------------------------------------------------------
4862 * WLAN_HAL_ENTER_UAPSD_REQ
4863 *--------------------------------------------------------------------------*/
4864typedef PACKED_PRE struct PACKED_POST
4865{
4866 tANI_U8 bkDeliveryEnabled:1;
4867 tANI_U8 beDeliveryEnabled:1;
4868 tANI_U8 viDeliveryEnabled:1;
4869 tANI_U8 voDeliveryEnabled:1;
4870 tANI_U8 bkTriggerEnabled:1;
4871 tANI_U8 beTriggerEnabled:1;
4872 tANI_U8 viTriggerEnabled:1;
4873 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004874 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004875} tUapsdReqParams, *tpUapsdReqParams;
4876
4877typedef PACKED_PRE struct PACKED_POST
4878{
4879 tHalMsgHeader header;
4880 tUapsdReqParams enterUapsdParams;
4881} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4882
4883/*---------------------------------------------------------------------------
4884 * WLAN_HAL_EXIT_UAPSD_REQ
4885 *--------------------------------------------------------------------------*/
4886typedef PACKED_PRE struct PACKED_POST
4887{
4888 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004889 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004890} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4891
Kumar Anandea78e792013-10-10 23:47:01 -07004892#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4893#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004894/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004895 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4896 *--------------------------------------------------------------------------*/
4897typedef PACKED_PRE struct PACKED_POST
4898{
4899 tANI_U32 selfStaIdx:8;
4900 tANI_U32 ucPtrnId:8; // Pattern ID
4901 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4902 tANI_U32 uPtrnIntervalMs; // In msec
4903 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4904} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4905
4906typedef PACKED_PRE struct PACKED_POST
4907{
4908 tHalMsgHeader header;
4909 tHalAddPeriodicTxPtrn ptrnParams;
4910} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4911
4912/*---------------------------------------------------------------------------
4913 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4914 *--------------------------------------------------------------------------*/
4915typedef PACKED_PRE struct PACKED_POST
4916{
4917 tANI_U32 selfStaIdx:8;
4918 tANI_U32 rsvd:24;
4919 /* Bitmap of pattern IDs that needs to be deleted */
4920 tANI_U32 uPatternIdBitmap;
4921} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4922
4923typedef PACKED_PRE struct PACKED_POST
4924{
4925 tHalMsgHeader header;
4926 tHalDelPeriodicTxPtrn ptrnParams;
4927} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4928
4929/*---------------------------------------------------------------------------
4930 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4931 *--------------------------------------------------------------------------*/
4932typedef PACKED_PRE struct PACKED_POST
4933{
4934 /* Type of Failure indication */
4935 tANI_U32 bssIdx:8;
4936 tANI_U32 selfStaIdx:8;
4937 tANI_U32 rsvd:16;
4938 tANI_U32 status;
4939 tANI_U32 patternIdBitmap;
4940} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4941
4942typedef PACKED_PRE struct PACKED_POST
4943{
4944 tHalMsgHeader header;
4945 tHalPeriodicTxPtrnFwInd fwIndParams;
4946} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4947
4948/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004949 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4950 *--------------------------------------------------------------------------*/
4951#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4952#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4953
4954typedef PACKED_PRE struct PACKED_POST
4955{
4956 tANI_U8 ucPatternId; // Pattern ID
4957 // Pattern byte offset from beginning of the 802.11 packet to start of the
4958 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304959 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004960 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4961 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4962 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4963 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4964 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4965 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004966 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004967} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4968
4969typedef PACKED_PRE struct PACKED_POST
4970{
4971 tHalMsgHeader header;
4972 tHalWowlAddBcastPtrn ptrnParams;
4973} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304974
Jeff Johnsone7245742012-09-05 17:12:55 -07004975
4976
Jeff Johnson295189b2012-06-20 16:38:30 -07004977/*---------------------------------------------------------------------------
4978 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4979 *--------------------------------------------------------------------------*/
4980typedef PACKED_PRE struct PACKED_POST
4981{
4982 /* Pattern ID of the wakeup pattern to be deleted */
4983 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004984 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004985} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4986
4987typedef PACKED_PRE struct PACKED_POST
4988{
4989 tHalMsgHeader header;
4990 tHalWowlDelBcastPtrn ptrnParams;
4991} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4992
4993/*---------------------------------------------------------------------------
4994 * WLAN_HAL_ENTER_WOWL_REQ
4995 *--------------------------------------------------------------------------*/
4996typedef PACKED_PRE struct PACKED_POST
4997{
4998 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304999 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005000
5001 /* Magic pattern */
5002 tSirMacAddr magicPtrn;
5003
Dino Mycle8afbac12014-07-04 22:06:17 +05305004 /* Enables/disables packet pattern filtering in firmware.
5005 Enabling this flag enables broadcast pattern matching
5006 in Firmware. If unicast pattern matching is also desired,
5007 ucUcastPatternFilteringEnable flag must be set tot true
5008 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07005009 */
5010 tANI_U8 ucPatternFilteringEnable;
5011
Dino Mycle8afbac12014-07-04 22:06:17 +05305012 /* Enables/disables unicast packet pattern filtering.
5013 This flag specifies whether we want to do pattern match
5014 on unicast packets as well and not just broadcast packets.
5015 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07005016 (main controlling flag) is set to false
5017 */
Dino Mycle8afbac12014-07-04 22:06:17 +05305018 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005019
Dino Mycle8afbac12014-07-04 22:06:17 +05305020 /* This configuration is valid only when magicPktEnable=1.
5021 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07005022 * Channel Switch Action Frame.
5023 */
5024 tANI_U8 ucWowChnlSwitchRcv;
5025
Dino Mycle8afbac12014-07-04 22:06:17 +05305026 /* This configuration is valid only when magicPktEnable=1.
5027 * It requests hardware to wake up when it receives the
5028 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005029 */
5030 tANI_U8 ucWowDeauthRcv;
5031
Dino Mycle8afbac12014-07-04 22:06:17 +05305032 /* This configuration is valid only when magicPktEnable=1.
5033 * It requests hardware to wake up when it receives the
5034 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005035 */
5036 tANI_U8 ucWowDisassocRcv;
5037
Dino Mycle8afbac12014-07-04 22:06:17 +05305038 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005039 * It requests hardware to wake up when it has missed
5040 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05305041 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07005042 */
5043 tANI_U8 ucWowMaxMissedBeacons;
5044
Dino Mycle8afbac12014-07-04 22:06:17 +05305045 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005046 * This is a timeout value in units of microsec. It requests
5047 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05305048 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07005049 */
5050 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05305051
Jeff Johnson295189b2012-06-20 16:38:30 -07005052 /* This configuration directs the WoW packet filtering to look for EAP-ID
5053 * requests embedded in EAPOL frames and use this as a wake source.
5054 */
5055 tANI_U8 ucWoWEAPIDRequestEnable;
5056
5057 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
5058 * requests and use this as a wake source.
5059 */
5060 tANI_U8 ucWoWEAPOL4WayEnable;
5061
5062 /* This configuration allows a host wakeup on an network scan offload match.
5063 */
5064 tANI_U8 ucWowNetScanOffloadMatch;
5065
5066 /* This configuration allows a host wakeup on any GTK rekeying error.
5067 */
5068 tANI_U8 ucWowGTKRekeyError;
5069
5070 /* This configuration allows a host wakeup on BSS connection loss.
5071 */
5072 tANI_U8 ucWoWBSSConnLoss;
5073
Jeff Johnsone7245742012-09-05 17:12:55 -07005074 tANI_U8 bssIdx;
5075
Jeff Johnson295189b2012-06-20 16:38:30 -07005076} tHalWowlEnterParams, *tpHalWowlEnterParams;
5077
5078typedef PACKED_PRE struct PACKED_POST
5079{
5080 tHalMsgHeader header;
5081 tHalWowlEnterParams enterWowlParams;
5082} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5083
5084/*---------------------------------------------------------------------------
5085 * WLAN_HAL_EXIT_WOWL_REQ
5086 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005087
Jeff Johnson295189b2012-06-20 16:38:30 -07005088typedef PACKED_PRE struct PACKED_POST
5089{
Jeff Johnsone7245742012-09-05 17:12:55 -07005090 tANI_U8 bssIdx;
5091
5092} tHalWowlExitParams, *tpHalWowlExitParams;
5093
5094typedef PACKED_PRE struct PACKED_POST
5095{
5096 tHalMsgHeader header;
5097 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005098} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5099
5100/*---------------------------------------------------------------------------
5101 * WLAN_HAL_GET_RSSI_REQ
5102 *--------------------------------------------------------------------------*/
5103typedef PACKED_PRE struct PACKED_POST
5104{
5105 tHalMsgHeader header;
5106} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5107
Anand Kumar012623a2013-01-11 17:00:00 -08005108typedef PACKED_PRE struct PACKED_POST
5109{
5110 /* Valid STA Idx for per STA stats request */
5111 tANI_U32 staId;
5112
5113}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5114
5115
5116/*---------------------------------------------------------------------------
5117 * WLAN_HAL_GET_ROAM_RSSI_REQ
5118 *--------------------------------------------------------------------------*/
5119typedef PACKED_PRE struct PACKED_POST
5120{
5121 tHalMsgHeader header;
5122 tHalRoamRssiReqParams roamRssiReqParams;
5123} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5124
5125
Jeff Johnson295189b2012-06-20 16:38:30 -07005126/*---------------------------------------------------------------------------
5127 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5128 *--------------------------------------------------------------------------*/
5129typedef PACKED_PRE struct PACKED_POST {
5130 tANI_U8 staidx; // STA index
5131 tANI_U8 ac; // Access Category
5132 tANI_U8 up; // User Priority
5133 tANI_U32 srvInterval; // Service Interval
5134 tANI_U32 susInterval; // Suspend Interval
5135 tANI_U32 delayInterval; // Delay Interval
5136} tUapsdInfo, tpUapsdInfo;
5137
5138typedef PACKED_PRE struct PACKED_POST
5139{
5140 tHalMsgHeader header;
5141 tUapsdInfo enableUapsdAcParams;
5142} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5143
5144/*---------------------------------------------------------------------------
5145 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5146 *--------------------------------------------------------------------------*/
5147typedef PACKED_PRE struct PACKED_POST {
5148 tANI_U8 setMcstBcstFilterSetting;
5149 tANI_U8 setMcstBcstFilter;
5150} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5151
5152typedef PACKED_PRE struct PACKED_POST
5153{
5154 tHalMsgHeader header;
5155 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5156} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5157
5158/*---------------------------------------------------------------------------
5159 * WLAN_HAL_ENTER_IMPS_RSP
5160 *--------------------------------------------------------------------------*/
5161typedef PACKED_PRE struct PACKED_POST
5162{
5163 /* success or failure */
5164 tANI_U32 status;
5165} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5166
5167typedef PACKED_PRE struct PACKED_POST
5168{
5169 tHalMsgHeader header;
5170 tHalEnterImpsRspParams enterImpsRspParams;
5171} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5172
5173/*---------------------------------------------------------------------------
5174 * WLAN_HAL_EXIT_IMPS_RSP
5175 *--------------------------------------------------------------------------*/
5176typedef PACKED_PRE struct PACKED_POST
5177{
5178 /* success or failure */
5179 tANI_U32 status;
5180} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5181
5182typedef PACKED_PRE struct PACKED_POST
5183{
5184 tHalMsgHeader header;
5185 tHalExitImpsRspParams exitImpsRspParams;
5186} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5187
5188/*---------------------------------------------------------------------------
5189 * WLAN_HAL_ENTER_BMPS_RSP
5190 *--------------------------------------------------------------------------*/
5191typedef PACKED_PRE struct PACKED_POST
5192{
5193 /* success or failure */
5194 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005195 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005196} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5197
5198typedef PACKED_PRE struct PACKED_POST
5199{
5200 tHalMsgHeader header;
5201 tHalEnterBmpsRspParams enterBmpsRspParams;
5202} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5203
5204/*---------------------------------------------------------------------------
5205 * WLAN_HAL_EXIT_BMPS_RSP
5206 *--------------------------------------------------------------------------*/
5207typedef PACKED_PRE struct PACKED_POST
5208{
5209 /* success or failure */
5210 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005211 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005212} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5213
5214typedef PACKED_PRE struct PACKED_POST
5215{
5216 tHalMsgHeader header;
5217 tHalExitBmpsRspParams exitBmpsRspParams;
5218} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5219
5220/*---------------------------------------------------------------------------
5221 * WLAN_HAL_ENTER_UAPSD_RSP
5222 *--------------------------------------------------------------------------*/
5223typedef PACKED_PRE struct PACKED_POST
5224{
5225 /* success or failure */
5226 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005227 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005228}tUapsdRspParams, *tpUapsdRspParams;
5229
5230typedef PACKED_PRE struct PACKED_POST
5231{
5232 tHalMsgHeader header;
5233 tUapsdRspParams enterUapsdRspParams;
5234} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5235
5236/*---------------------------------------------------------------------------
5237 * WLAN_HAL_EXIT_UAPSD_RSP
5238 *--------------------------------------------------------------------------*/
5239typedef PACKED_PRE struct PACKED_POST
5240{
5241 /* success or failure */
5242 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005243 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005244} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5245
5246typedef PACKED_PRE struct PACKED_POST
5247{
5248 tHalMsgHeader header;
5249 tHalExitUapsdRspParams exitUapsdRspParams;
5250} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5251
5252/*---------------------------------------------------------------------------
5253 * WLAN_HAL_RSSI_NOTIFICATION_IND
5254 *--------------------------------------------------------------------------*/
5255typedef PACKED_PRE struct PACKED_POST
5256{
5257 tANI_U32 bRssiThres1PosCross : 1;
5258 tANI_U32 bRssiThres1NegCross : 1;
5259 tANI_U32 bRssiThres2PosCross : 1;
5260 tANI_U32 bRssiThres2NegCross : 1;
5261 tANI_U32 bRssiThres3PosCross : 1;
5262 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005263 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005264 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005265 tANI_U32 isBTCoexCompromise : 1;
5266 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005267 tANI_S8 refRssiThreshold1;
5268 tANI_S8 refRssiThreshold2;
5269 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005270} tHalRSSINotification, *tpHalRSSINotification;
5271
5272typedef PACKED_PRE struct PACKED_POST
5273{
5274 tHalMsgHeader header;
5275 tHalRSSINotification rssiNotificationParams;
5276} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5277
5278/*---------------------------------------------------------------------------
5279 * WLAN_HAL_GET_RSSI_RSP
5280 *--------------------------------------------------------------------------*/
5281typedef PACKED_PRE struct PACKED_POST
5282{
5283 /* success or failure */
5284 tANI_U32 status;
5285 tANI_S8 rssi;
5286} tHalGetRssiParams, *tpHalGetRspParams;
5287
5288typedef PACKED_PRE struct PACKED_POST
5289{
5290 tHalMsgHeader header;
5291 tHalGetRssiParams rssiRspParams;
5292} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5293
5294/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005295 * WLAN_HAL_GET_ROAM_RSSI_RSP
5296 *--------------------------------------------------------------------------*/
5297typedef PACKED_PRE struct PACKED_POST
5298{
5299 /* success or failure */
5300 tANI_U32 status;
5301
5302 tANI_U8 staId;
5303 tANI_S8 rssi;
5304} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5305
5306typedef PACKED_PRE struct PACKED_POST
5307{
5308 tHalMsgHeader header;
5309 tHalGetRoamRssiParams roamRssiRspParams;
5310} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5311
5312/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005313 * WLAN_HAL_ENTER_WOWL_RSP
5314 *--------------------------------------------------------------------------*/
5315typedef PACKED_PRE struct PACKED_POST
5316{
5317 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005318 tANI_U32 status;
5319 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005320} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5321
5322typedef PACKED_PRE struct PACKED_POST
5323{
5324 tHalMsgHeader header;
5325 tHalEnterWowlRspParams enterWowlRspParams;
5326} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5327
5328/*---------------------------------------------------------------------------
5329 * WLAN_HAL_EXIT_WOWL_RSP
5330 *--------------------------------------------------------------------------*/
5331typedef PACKED_PRE struct PACKED_POST
5332{
5333 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005334 tANI_U32 status;
5335 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005336} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5337
5338typedef PACKED_PRE struct PACKED_POST
5339{
5340 tHalMsgHeader header;
5341 tHalExitWowlRspParams exitWowlRspParams;
5342} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5343
5344/*---------------------------------------------------------------------------
5345 * WLAN_HAL_ADD_BCN_FILTER_RSP
5346 *--------------------------------------------------------------------------*/
5347typedef PACKED_PRE struct PACKED_POST
5348{
5349 /* success or failure */
5350 tANI_U32 status;
5351} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5352
5353typedef PACKED_PRE struct PACKED_POST
5354{
5355 tHalMsgHeader header;
5356 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5357} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5358
5359/*---------------------------------------------------------------------------
5360 * WLAN_HAL_REM_BCN_FILTER_RSP
5361 *--------------------------------------------------------------------------*/
5362typedef PACKED_PRE struct PACKED_POST
5363{
5364 /* success or failure */
5365 tANI_U32 status;
5366} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5367
5368typedef PACKED_PRE struct PACKED_POST
5369{
5370 tHalMsgHeader header;
5371 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5372} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5373
5374/*---------------------------------------------------------------------------
5375 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5376 *--------------------------------------------------------------------------*/
5377typedef PACKED_PRE struct PACKED_POST
5378{
5379 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005380 tANI_U32 status;
5381 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005382} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5383
5384typedef PACKED_PRE struct PACKED_POST
5385{
5386 tHalMsgHeader header;
5387 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5388} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5389
5390/*---------------------------------------------------------------------------
5391 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5392 *--------------------------------------------------------------------------*/
5393typedef PACKED_PRE struct PACKED_POST
5394{
5395 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005396 tANI_U32 status;
5397 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005398} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5399
5400typedef PACKED_PRE struct PACKED_POST
5401{
5402 tHalMsgHeader header;
5403 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5404} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5405
5406/*---------------------------------------------------------------------------
5407 * WLAN_HAL_HOST_OFFLOAD_RSP
5408 *--------------------------------------------------------------------------*/
5409typedef PACKED_PRE struct PACKED_POST
5410{
5411 /* success or failure */
5412 tANI_U32 status;
5413} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5414
5415typedef PACKED_PRE struct PACKED_POST
5416{
5417 tHalMsgHeader header;
5418 tHalHostOffloadRspParams hostOffloadRspParams;
5419} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5420
5421/*---------------------------------------------------------------------------
5422 * WLAN_HAL_KEEP_ALIVE_RSP
5423 *--------------------------------------------------------------------------*/
5424typedef PACKED_PRE struct PACKED_POST
5425{
5426 /* success or failure */
5427 tANI_U32 status;
5428} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5429
5430typedef PACKED_PRE struct PACKED_POST
5431{
5432 tHalMsgHeader header;
5433 tHalKeepAliveRspParams keepAliveRspParams;
5434} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5435
5436/*---------------------------------------------------------------------------
5437 * WLAN_HAL_SET_RSSI_THRESH_RSP
5438 *--------------------------------------------------------------------------*/
5439typedef PACKED_PRE struct PACKED_POST
5440{
5441 /* success or failure */
5442 tANI_U32 status;
5443} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5444
5445typedef PACKED_PRE struct PACKED_POST
5446{
5447 tHalMsgHeader header;
5448 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5449} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5450
5451/*---------------------------------------------------------------------------
5452 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5453 *--------------------------------------------------------------------------*/
5454typedef PACKED_PRE struct PACKED_POST
5455{
5456 /* success or failure */
5457 tANI_U32 status;
5458} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5459
5460typedef PACKED_PRE struct PACKED_POST
5461{
5462 tHalMsgHeader header;
5463 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5464} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5465
5466/*---------------------------------------------------------------------------
5467 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5468 *--------------------------------------------------------------------------*/
5469typedef PACKED_PRE struct PACKED_POST
5470{
5471 /* success or failure */
5472 tANI_U32 status;
5473} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5474
5475typedef PACKED_PRE struct PACKED_POST
5476{
5477 tHalMsgHeader header;
5478 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5479} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5480
5481/*---------------------------------------------------------------------------
5482 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5483 *--------------------------------------------------------------------------*/
5484
5485typedef PACKED_PRE struct PACKED_POST
5486{
5487 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5488 //the request has power constraints, this should be applied only to that session
5489 tSirMacAddr selfStaMacAddr;
5490 //In request,
5491 //power == MaxTx power to be used.
5492 tPowerdBm power;
5493
5494}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5495
5496
5497typedef PACKED_PRE struct PACKED_POST
5498{
5499 tHalMsgHeader header;
5500 tSetMaxTxPwrParams setMaxTxPwrParams;
5501}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5502
5503/*---------------------------------------------------------------------------
5504*WLAN_HAL_SET_MAX_TX_POWER_RSP
5505*--------------------------------------------------------------------------*/
5506
5507typedef PACKED_PRE struct PACKED_POST
5508{
5509 //power == tx power used for management frames.
5510 tPowerdBm power;
5511
5512 /* success or failure */
5513 tANI_U32 status;
5514}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5515
5516typedef PACKED_PRE struct PACKED_POST
5517{
5518 tHalMsgHeader header;
5519 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5520}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5521
Kumar Anandea78e792013-10-10 23:47:01 -07005522
Jeff Johnson295189b2012-06-20 16:38:30 -07005523/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005524 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5525 *--------------------------------------------------------------------------*/
5526
5527/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5528typedef enum
5529{
5530 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5531 // For 2.4GHz or 5GHz bands
5532 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5533 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5534 // End of valid enums
5535 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5536}tHalSetMaxTxPwrBandInfo;
5537
5538typedef PACKED_PRE struct PACKED_POST
5539{
5540 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005541 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005542}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5543
Kumar Anandea78e792013-10-10 23:47:01 -07005544
Arif Hussain36fda162013-08-30 14:46:57 -07005545typedef PACKED_PRE struct PACKED_POST
5546{
5547 tHalMsgHeader header;
5548 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5549}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5550
5551/*---------------------------------------------------------------------------
5552*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5553*--------------------------------------------------------------------------*/
5554
5555typedef PACKED_PRE struct PACKED_POST
5556{
5557 //power == tx power used for management frames.
5558 tPowerdBm power;
5559
5560 /* success or failure */
5561 tANI_U32 status;
5562}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5563
5564typedef PACKED_PRE struct PACKED_POST
5565{
5566 tHalMsgHeader header;
5567 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5568}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5569
5570/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005571 *WLAN_HAL_SET_TX_POWER_REQ
5572 *--------------------------------------------------------------------------*/
5573
5574typedef PACKED_PRE struct PACKED_POST
5575{
5576 /* TX Power in milli watts */
5577 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005578 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005579}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5580
5581
5582typedef PACKED_PRE struct PACKED_POST
5583{
5584 tHalMsgHeader header;
5585 tSetTxPwrReqParams setTxPwrReqParams;
5586}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5587
5588/*---------------------------------------------------------------------------
5589*WLAN_HAL_SET_TX_POWER_RSP
5590*--------------------------------------------------------------------------*/
5591
5592typedef PACKED_PRE struct PACKED_POST
5593{
5594 /* success or failure */
5595 tANI_U32 status;
5596}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5597
5598typedef PACKED_PRE struct PACKED_POST
5599{
5600 tHalMsgHeader header;
5601 tSetTxPwrRspParams setTxPwrRspParams;
5602}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5603
5604/*---------------------------------------------------------------------------
5605 *WLAN_HAL_GET_TX_POWER_REQ
5606 *--------------------------------------------------------------------------*/
5607
5608typedef PACKED_PRE struct PACKED_POST
5609{
5610 tANI_U8 staId;
5611}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5612
5613typedef PACKED_PRE struct PACKED_POST
5614{
5615 tHalMsgHeader header;
5616 tGetTxPwrReqParams getTxPwrReqParams;
5617}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5618
5619/*---------------------------------------------------------------------------
5620*WLAN_HAL_GET_TX_POWER_RSP
5621*--------------------------------------------------------------------------*/
5622
5623typedef PACKED_PRE struct PACKED_POST
5624{
5625 /* success or failure */
5626 tANI_U32 status;
5627
5628 /* TX Power in milli watts */
5629 tANI_U32 txPower;
5630}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5631
5632typedef PACKED_PRE struct PACKED_POST
5633{
5634 tHalMsgHeader header;
5635 tGetTxPwrRspParams getTxPwrRspParams;
5636}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5637
5638#ifdef WLAN_FEATURE_P2P
5639/*---------------------------------------------------------------------------
5640 *WLAN_HAL_SET_P2P_GONOA_REQ
5641 *--------------------------------------------------------------------------*/
5642
5643typedef PACKED_PRE struct PACKED_POST
5644{
5645 tANI_U8 opp_ps;
5646 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305647 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005648 tANI_U32 duration;
5649 tANI_U32 interval;
5650 tANI_U32 single_noa_duration;
5651 tANI_U8 psSelection;
5652}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5653
5654
5655typedef PACKED_PRE struct PACKED_POST
5656{
5657 tHalMsgHeader header;
5658 tSetP2PGONOAParams setP2PGONOAParams;
5659}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5660
5661/*---------------------------------------------------------------------------
5662*WLAN_HAL_SET_P2P_GONOA_RSP
5663*--------------------------------------------------------------------------*/
5664
5665typedef PACKED_PRE struct PACKED_POST
5666{
5667 /* success or failure */
5668 tANI_U32 status;
5669}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5670
5671typedef PACKED_PRE struct PACKED_POST
5672{
5673 tHalMsgHeader header;
5674 tSetP2PGONOARspParams setP2PGONOARspParams;
5675}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5676#endif
5677
5678/*---------------------------------------------------------------------------
5679 *WLAN_HAL_ADD_SELF_STA_REQ
5680 *--------------------------------------------------------------------------*/
5681
5682typedef PACKED_PRE struct PACKED_POST
5683{
5684 tSirMacAddr selfMacAddr;
5685 tANI_U32 status;
5686}tAddStaSelfParams, *tpAddStaSelfParams;
5687
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005688typedef PACKED_PRE struct PACKED_POST
5689{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005690 tHalMsgHeader header;
5691 tAddStaSelfParams addStaSelfParams;
5692}tAddStaSelfReq, *tpAddStaSelfReq;
5693
5694/* This V1 structure carries additionally the IFACE PERSONA
5695 of the interface as compared to the legacy control
5696 message */
5697typedef PACKED_PRE struct PACKED_POST
5698{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005699 tSirMacAddr selfMacAddr;
5700 tANI_U32 status;
5701 tHalIfacePersona iface_persona;
5702}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005703
5704typedef PACKED_PRE struct PACKED_POST
5705{
5706 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005707 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005708}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005709
5710/*---------------------------------------------------------------------------
5711*WLAN_HAL_ADD_SELF_STA_RSP
5712*--------------------------------------------------------------------------*/
5713
5714typedef PACKED_PRE struct PACKED_POST
5715{
5716 /* success or failure */
5717 tANI_U32 status;
5718
5719 /*Self STA Index */
5720 tANI_U8 selfStaIdx;
5721
5722 /* DPU Index (IGTK, PTK, GTK all same) */
5723 tANI_U8 dpuIdx;
5724
5725 /* DPU Signature */
5726 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305727
Jeff Johnson295189b2012-06-20 16:38:30 -07005728}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5729
5730typedef PACKED_PRE struct PACKED_POST
5731{
5732 tHalMsgHeader header;
5733 tAddStaSelfRspParams addStaSelfRspParams;
5734}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5735
5736
5737/*---------------------------------------------------------------------------
5738 WLAN_HAL_DEL_STA_SELF_REQ
5739---------------------------------------------------------------------------*/
5740
5741typedef PACKED_PRE struct PACKED_POST
5742{
5743 tSirMacAddr selfMacAddr;
5744
5745}tDelStaSelfParams, *tpDelStaSelfParams;
5746
5747typedef PACKED_PRE struct PACKED_POST
5748{
5749 tHalMsgHeader header;
5750 tDelStaSelfParams delStaSelfParams;
5751} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5752
5753
5754/*---------------------------------------------------------------------------
5755 WLAN_HAL_DEL_STA_SELF_RSP
5756---------------------------------------------------------------------------*/
5757
5758typedef PACKED_PRE struct PACKED_POST
5759{
5760 /*success or failure */
5761 tANI_U32 status;
5762
5763 tSirMacAddr selfMacAddr;
5764}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5765
5766typedef PACKED_PRE struct PACKED_POST
5767{
5768 tHalMsgHeader header;
5769 tDelStaSelfRspParams delStaSelfRspParams;
5770} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5771
5772
5773#ifdef WLAN_FEATURE_VOWIFI_11R
5774
5775/*---------------------------------------------------------------------------
5776 *WLAN_HAL_AGGR_ADD_TS_REQ
5777 *--------------------------------------------------------------------------*/
5778
5779typedef PACKED_PRE struct PACKED_POST
5780{
5781 /* Station Index */
5782 tANI_U16 staIdx;
5783
5784 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5785 /* This will carry the bitmap with the bit positions representing different AC.s*/
5786 tANI_U16 tspecIdx;
5787
5788 /* Tspec info per AC To program TPE with required parameters */
5789 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5790
5791 /* U-APSD Flags: 1b per AC. Encoded as follows:
5792 b7 b6 b5 b4 b3 b2 b1 b0 =
5793 X X X X BE BK VI VO */
5794 tANI_U8 uAPSD;
5795
5796 /* These parameters are for all the access categories */
5797 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5798 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5799 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5800
5801}tAggrAddTsParams, *tpAggrAddTsParams;
5802
5803
5804typedef PACKED_PRE struct PACKED_POST
5805{
5806 tHalMsgHeader header;
5807 tAggrAddTsParams aggrAddTsParam;
5808}tAggrAddTsReq, *tpAggrAddTsReq;
5809
5810/*---------------------------------------------------------------------------
5811*WLAN_HAL_AGGR_ADD_TS_RSP
5812*--------------------------------------------------------------------------*/
5813
5814typedef PACKED_PRE struct PACKED_POST
5815{
5816 /* success or failure */
5817 tANI_U32 status0;
5818 /* FIXME PRIMA for future use for 11R */
5819 tANI_U32 status1;
5820}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5821
5822typedef PACKED_PRE struct PACKED_POST
5823{
5824 tHalMsgHeader header;
5825 tAggrAddTsRspParams aggrAddTsRspParam;
5826}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5827
5828#endif
5829
5830/*---------------------------------------------------------------------------
5831 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5832 *--------------------------------------------------------------------------*/
5833typedef PACKED_PRE struct PACKED_POST
5834{
5835 tANI_U8 isAppsCpuAwake;
5836} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5837
5838typedef PACKED_PRE struct PACKED_POST
5839{
5840 tHalMsgHeader header;
5841 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5842} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5843
5844/*---------------------------------------------------------------------------
5845 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5846 *--------------------------------------------------------------------------*/
5847typedef PACKED_PRE struct PACKED_POST
5848{
5849 /* success or failure */
5850 tANI_U32 status;
5851} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5852
5853typedef PACKED_PRE struct PACKED_POST
5854{
5855 tHalMsgHeader header;
5856 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5857} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5858/*---------------------------------------------------------------------------
5859 * WLAN_HAL_DUMP_COMMAND_REQ
5860 *--------------------------------------------------------------------------*/
5861
5862typedef PACKED_PRE struct PACKED_POST
5863{
5864 tANI_U32 argument1;
5865 tANI_U32 argument2;
5866 tANI_U32 argument3;
5867 tANI_U32 argument4;
5868 tANI_U32 argument5;
5869
5870}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5871
5872typedef PACKED_PRE struct PACKED_POST
5873{
5874 tHalMsgHeader header;
5875 tHalDumpCmdReqParams dumpCmdReqParams;
5876} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5877
5878/*---------------------------------------------------------------------------
5879 * WLAN_HAL_DUMP_COMMAND_RSP
5880 *--------------------------------------------------------------------------*/
5881
5882typedef PACKED_PRE struct PACKED_POST
5883{
5884 /* success or failure */
5885 tANI_U32 status;
5886 /*Length of the responce message*/
5887 tANI_U32 rspLength;
5888 /*FiXME: Currently considering the the responce will be less than 100bytes */
5889 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305890
Jeff Johnson295189b2012-06-20 16:38:30 -07005891} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5892
5893typedef PACKED_PRE struct PACKED_POST
5894{
5895 tHalMsgHeader header;
5896 tHalDumpCmdRspParams dumpCmdRspParams;
5897} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5898
5899/*---------------------------------------------------------------------------
5900 *WLAN_HAL_COEX_IND
5901 *-------------------------------------------------------------------------*/
5902#define WLAN_COEX_IND_DATA_SIZE (4)
5903#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5904#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005905#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5906#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005907#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5908#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305909#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5910#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305911#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Abhishek Singh1bb2bc22017-01-02 10:38:38 +05305912#define WLAN_COEX_IND_TYPE_HID_CONNECTED_WLAN_CONNECTED_IN_2p4 (9)
5913#define WLAN_COEX_IND_TYPE_HID_DISCONNECTED_WLAN_CONNECTED_IN_2p4 (10)
Jeff Johnson295189b2012-06-20 16:38:30 -07005914
5915typedef PACKED_PRE struct PACKED_POST
5916{
5917 /*Coex Indication Type*/
5918 tANI_U32 coexIndType;
5919
5920 /*Coex Indication Data*/
5921 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5922}tCoexIndParams,*tpCoexIndParams;
5923
5924typedef PACKED_PRE struct PACKED_POST
5925{
5926 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305927 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005928}tCoexIndMsg, *tpCoexIndMsg;
5929
5930/*---------------------------------------------------------------------------
5931 *WLAN_HAL_OTA_TX_COMPL_IND
5932 *-------------------------------------------------------------------------*/
5933
5934typedef PACKED_PRE struct PACKED_POST
5935{
5936 /*Tx Complete Indication Success or Failure*/
5937 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305938 /* Dialog token */
5939 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005940}tTxComplParams,*tpTxComplParams;
5941
5942typedef PACKED_PRE struct PACKED_POST
5943{
5944 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305945 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005946}tTxComplIndMsg, *tpTxComplIndMsg;
5947
5948/*---------------------------------------------------------------------------
5949 * WLAN_HAL_HOST_SUSPEND_IND
5950 *-------------------------------------------------------------------------*/
5951
5952typedef PACKED_PRE struct PACKED_POST
5953{
5954 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305955 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005956}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5957
5958typedef PACKED_PRE struct PACKED_POST
5959{
5960 tHalMsgHeader header;
5961 tHalWlanHostSuspendIndParam suspendIndParams;
5962}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5963
5964/*---------------------------------------------------------------------------
5965 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5966 *-------------------------------------------------------------------------*/
5967
5968typedef PACKED_PRE struct PACKED_POST
5969{
5970 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305971 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005972}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5973
5974typedef PACKED_PRE struct PACKED_POST
5975{
5976 tHalMsgHeader header;
5977 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5978}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5979
5980#ifdef WLAN_FEATURE_P2P
5981/*---------------------------------------------------------------------------
5982 *WLAN_HAL_NOA_ATTR_IND
5983 *-------------------------------------------------------------------------*/
5984
5985typedef PACKED_PRE struct PACKED_POST
5986{
5987 tANI_U8 index ;
5988 tANI_U8 oppPsFlag ;
5989 tANI_U16 ctWin ;
5990
5991 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005992 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005993 tANI_U32 uNoa1Duration;
5994 tANI_U32 uNoa1Interval;
5995 tANI_U32 uNoa1StartTime;
5996
5997 tANI_U16 uNoa2IntervalCnt;
5998 tANI_U16 rsvd2;
5999 tANI_U32 uNoa2Duration;
6000 tANI_U32 uNoa2Interval;
6001 tANI_U32 uNoa2StartTime;
6002
6003 tANI_U32 status;
6004}tNoaAttrIndParams, *tpNoaAttrIndParams;
6005
6006typedef PACKED_PRE struct PACKED_POST
6007{
6008 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05306009 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006010}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08006011
6012/*---------------------------------------------------------------------------
6013 *WLAN_HAL_NOA_START_IND
6014 *-------------------------------------------------------------------------*/
6015
6016typedef PACKED_PRE struct PACKED_POST
6017{
6018 tANI_U32 status;
6019 tANI_U32 bssIdx;
6020}tNoaStartIndParams, *tpNoaStartIndParams;
6021
6022typedef PACKED_PRE struct PACKED_POST
6023{
6024 tHalMsgHeader header;
6025 tNoaStartIndParams noaStartIndParams;
6026}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07006027#endif
6028
6029/*---------------------------------------------------------------------------
6030 * WLAN_HAL_HOST_RESUME_REQ
6031 *-------------------------------------------------------------------------*/
6032
6033typedef PACKED_PRE struct PACKED_POST
6034{
6035 tANI_U8 configuredMcstBcstFilterSetting;
6036}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
6037
6038typedef PACKED_PRE struct PACKED_POST
6039{
6040 tHalMsgHeader header;
6041 tHalWlanHostResumeReqParam resumeReqParams;
6042}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
6043
6044/*---------------------------------------------------------------------------
6045 * WLAN_HAL_HOST_RESUME_RSP
6046 *--------------------------------------------------------------------------*/
6047typedef PACKED_PRE struct PACKED_POST
6048{
6049 /* success or failure */
6050 tANI_U32 status;
6051} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
6052
6053typedef PACKED_PRE struct PACKED_POST
6054{
6055 tHalMsgHeader header;
6056 tHalHostResumeRspParams hostResumeRspParams;
6057} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
6058
Anand Kumar012623a2013-01-11 17:00:00 -08006059typedef PACKED_PRE struct PACKED_POST
6060{
6061 tANI_U16 staIdx;
6062 // Peer MAC Address, whose BA session has timed out
6063 tSirMacAddr peerMacAddr;
6064 // TID for which a BA session timeout is being triggered
6065 tANI_U8 baTID;
6066 // DELBA direction
6067 // 1 - Originator
6068 // 0 - Recipient
6069 tANI_U8 baDirection;
6070 tANI_U32 reasonCode;
6071 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6072} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6073
6074typedef PACKED_PRE struct PACKED_POST
6075{
6076 tHalMsgHeader header;
6077 tHalWlanDelBaIndMsg hostdelBaParam;
6078} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6079
Jeff Johnson295189b2012-06-20 16:38:30 -07006080/*---------------------------------------------------------------------------
6081 *PNO Messages
6082 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006083/* Max number of channels that a network can be found on*/
6084/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6085 * be changed at same time
6086 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006087#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006088
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306089/*Max number of channels that a network can be found on*/
6090#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6091
Jeff Johnson295189b2012-06-20 16:38:30 -07006092/*Maximum numbers of networks supported by PNO*/
6093#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6094
6095/*The number of scan time intervals that can be programmed into PNO*/
6096#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6097
6098/*Maximum size of the probe template*/
6099#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6100
Dino Mycle8afbac12014-07-04 22:06:17 +05306101/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006102 Immediate - scanning will start immediately and PNO procedure will
6103 be repeated based on timer
6104 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006105 Resume - scanning will start on system resume
6106 Delay - start the scan timer to trigger PNO scan
6107 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006108typedef enum
6109{
6110 ePNO_MODE_IMMEDIATE,
6111 ePNO_MODE_ON_SUSPEND,
6112 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306113 ePNO_MODE_DELAY,
6114 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006115 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6116} ePNOMode;
6117
6118/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306119typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006120{
Dino Mycle8afbac12014-07-04 22:06:17 +05306121 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006122 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306123
Jeff Johnson295189b2012-06-20 16:38:30 -07006124 // Upper layer authentication types
6125 eAUTH_TYPE_WPA = 2,
6126 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306127
Jeff Johnson295189b2012-06-20 16:38:30 -07006128 eAUTH_TYPE_RSN = 4,
6129 eAUTH_TYPE_RSN_PSK = 5,
6130 eAUTH_TYPE_FT_RSN = 6,
6131 eAUTH_TYPE_FT_RSN_PSK = 7,
6132 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6133 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006134 eAUTH_TYPE_CCKM_WPA = 10,
6135 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306136 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6137 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306138
Jeff Johnson295189b2012-06-20 16:38:30 -07006139 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6140
6141}tAuthType;
6142
6143/* Encryption type */
6144typedef enum eEdType
6145{
6146 eED_ANY = 0,
6147 eED_NONE = 1,
6148 eED_WEP = 2,
6149 eED_TKIP = 3,
6150 eED_CCMP = 4,
6151 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306152
Jeff Johnson295189b2012-06-20 16:38:30 -07006153 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6154} tEdType;
6155
6156/* SSID broadcast type */
6157typedef enum eSSIDBcastType
6158{
6159 eBCAST_UNKNOWN = 0,
6160 eBCAST_NORMAL = 1,
6161 eBCAST_HIDDEN = 2,
6162
6163 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6164} tSSIDBcastType;
6165
Dino Mycle8afbac12014-07-04 22:06:17 +05306166/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006167 The network description for which PNO will have to look for
6168*/
6169typedef PACKED_PRE struct PACKED_POST
6170{
6171 /*SSID of the BSS*/
6172 tSirMacSSid ssId;
6173
6174 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306175 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006176
6177 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306178 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006179
Dino Mycle8afbac12014-07-04 22:06:17 +05306180 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006181 0 - if all channels */
6182 tANI_U8 ucChannelCount;
6183 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6184
6185 /*Indicates the RSSI threshold for the network to be considered*/
6186 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306187}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006188
6189typedef PACKED_PRE struct PACKED_POST
6190{
6191 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306192 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006193
Dino Mycle8afbac12014-07-04 22:06:17 +05306194 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006195 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306196 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006197
Dino Mycle8afbac12014-07-04 22:06:17 +05306198 /*e.g: 2 3
6199 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006200 - it will wait 2s between consecutive scans for 3 times
6201 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306202}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006203
Dino Mycle8afbac12014-07-04 22:06:17 +05306204/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006205 The network parameters to be sent to the PNO algorithm
6206*/
6207typedef PACKED_PRE struct PACKED_POST
6208{
6209 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306210 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006211
Dino Mycle8afbac12014-07-04 22:06:17 +05306212 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006213 two consecutive scan procedures
6214 If the desired is for a uniform timer that fires always at the exact same
6215 interval - one single value is to be set
6216 If there is a desire for a more complex - telescopic like timer multiple
6217 values can be set - once PNO reaches the end of the array it will
6218 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306219 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006220
6221}tScanTimersType;
6222
6223typedef PACKED_PRE struct PACKED_POST {
6224
6225 /*Enable PNO*/
6226 tANI_U32 enable;
6227
6228 /*Immediate, On Suspend, On Resume*/
6229 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306230
Jeff Johnson295189b2012-06-20 16:38:30 -07006231 /*Number of networks sent for PNO*/
6232 tANI_U32 ucNetworksCount;
6233
6234 /*The networks that PNO needs to look for*/
6235 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6236
6237 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306238 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006239
6240 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306241 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006242 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6243
6244 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306245 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006246 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6247
6248} tPrefNetwListParams, * tpPrefNetwListParams;
6249
6250/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306251 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006252*/
6253typedef PACKED_PRE struct PACKED_POST
6254{
6255 tHalMsgHeader header;
6256 tPrefNetwListParams prefNetwListParams;
6257} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6258
6259
Dino Mycle8afbac12014-07-04 22:06:17 +05306260/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006261 The network description for which PNO will have to look for
6262*/
6263typedef PACKED_PRE struct PACKED_POST
6264{
6265 /*SSID of the BSS*/
6266 tSirMacSSid ssId;
6267
6268 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306269 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006270
6271 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306272 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006273
6274 /*SSID broadcast type, normal, hidden or unknown*/
6275 tSSIDBcastType bcastNetworkType;
6276
Dino Mycle8afbac12014-07-04 22:06:17 +05306277 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006278 0 - if all channels */
6279 tANI_U8 ucChannelCount;
6280 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6281
6282 /*Indicates the RSSI threshold for the network to be considered*/
6283 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306284}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006285
6286typedef PACKED_PRE struct PACKED_POST {
6287
6288 /*Enable PNO*/
6289 tANI_U32 enable;
6290
6291 /*Immediate, On Suspend, On Resume*/
6292 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306293
Jeff Johnson295189b2012-06-20 16:38:30 -07006294 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306295 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006296
6297 /*The networks that PNO needs to look for*/
6298 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6299
6300 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306301 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006302
6303 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306304 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006305 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6306
6307 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306308 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006309 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6310
6311} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6312
6313/*
6314 Preferred network list request new
6315*/
6316typedef PACKED_PRE struct PACKED_POST
6317{
6318 tHalMsgHeader header;
6319 tPrefNetwListParamsNew prefNetwListParams;
6320} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6321
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006322#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6323typedef PACKED_PRE struct PACKED_POST
6324{
6325 tSirMacSSid ssId;
6326 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6327 tANI_U32 authentication;
6328 tEdType encryption;
6329 tEdType mcencryption;
6330 tANI_U8 ChannelCount;
6331 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6332}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006333
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006334typedef PACKED_PRE struct PACKED_POST
6335{
6336 tANI_U8 mdiePresent;
6337 tANI_U16 mobilityDomain;
6338}tMobilityDomainInfo;
6339
6340typedef PACKED_PRE struct PACKED_POST {
6341 eAniBoolean RoamScanOffloadEnabled;
6342 tANI_S8 LookupThreshold;
6343 tANI_U8 RoamRssiDiff;
6344 tANI_U8 ChannelCacheType;
6345 tANI_U8 Command;
6346 tANI_U8 StartScanReason;
6347 tANI_U16 NeighborScanTimerPeriod;
6348 tANI_U16 NeighborRoamScanRefreshPeriod;
6349 tANI_U16 NeighborScanChannelMinTime;
6350 tANI_U16 NeighborScanChannelMaxTime;
6351 tANI_U16 EmptyRefreshScanPeriod;
6352 tANI_U8 ValidChannelCount;
6353 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006354 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006355
6356 tANI_U16 us24GProbeSize;
6357 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6358 tANI_U16 us5GProbeSize;
6359 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6360 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006361 tANI_U8 nProbes;
6362 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006363 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006364 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006365 tANI_U8 RoamOffloadEnabled;
6366 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6367 tANI_U8 Prefer5GHz;
6368 tANI_U8 RoamRssiCatGap;
6369 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006370 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6371 tRoamNetworkType ConnectedNetwork;
6372 tMobilityDomainInfo MDID;
6373} tRoamCandidateListParams, * tpRoamCandidateListParams;
6374
6375typedef PACKED_PRE struct PACKED_POST
6376{
Kumar Anandea78e792013-10-10 23:47:01 -07006377 tHalMsgHeader header;
6378 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006379} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6380
6381typedef PACKED_PRE struct PACKED_POST
6382{
Kumar Anandea78e792013-10-10 23:47:01 -07006383 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006384
Kumar Anandea78e792013-10-10 23:47:01 -07006385 /* status of the request - just to indicate that PNO has acknowledged
6386 * the request and will start scanning */
6387 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006388} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6389#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006390
6391/*
6392 Preferred network list response
6393*/
6394typedef PACKED_PRE struct PACKED_POST
6395{
6396 tHalMsgHeader header;
6397
6398 /* status of the request - just to indicate that PNO has acknowledged
6399 * the request and will start scanning*/
6400 tANI_U32 status;
6401} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6402
6403/*
6404 Preferred network indication parameters
6405*/
6406typedef PACKED_PRE struct PACKED_POST {
6407
6408 /*Network that was found with the highest RSSI*/
6409 tSirMacSSid ssId;
6410
6411 /*Indicates the RSSI */
6412 tANI_U8 rssi;
6413
6414 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6415 tANI_U16 frameLength;
6416
6417} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6418
6419/*
6420 Preferred network found indication
6421*/
6422typedef PACKED_PRE struct PACKED_POST {
6423
6424 tHalMsgHeader header;
6425 tPrefNetwFoundParams prefNetwFoundParams;
6426} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6427
6428
6429typedef PACKED_PRE struct PACKED_POST {
6430
6431 /*RSSI Threshold*/
6432 tANI_U8 ucRssiThreshold;
6433
6434} tRssiFilterParams, * tpRssiFilterParams;
6435
Jeff Johnson295189b2012-06-20 16:38:30 -07006436/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306437 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006438*/
6439typedef PACKED_PRE struct PACKED_POST
6440{
6441 tHalMsgHeader header;
6442 tRssiFilterParams prefRSSIFilterParams;
6443} tSetRssiFilterReq, *tpSetRssiFilterReq;
6444
6445/*
6446 Set RSSI filter resp
6447*/
6448typedef PACKED_PRE struct PACKED_POST{
6449 tHalMsgHeader header;
6450 /*status of the request */
6451 tANI_U32 status;
6452} tSetRssiFilterResp, *tpSetRssiFilterResp;
6453/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306454 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006455*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306456typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006457{
6458
6459 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306460 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006461
6462 /*Lets PNO know that host has determined the regulatory domain*/
6463 tANI_U8 b11dResolved;
6464
6465 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306466 tANI_U8 ucChannelCount;
6467 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006468
6469 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306470 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006471
6472 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306473 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006474
6475 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306476 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006477
6478 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306479 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006480
6481 /*Cb State*/
6482 ePhyChanBondState cbState;
6483
6484} tUpdateScanParams, * tpUpdateScanParams;
6485
6486/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306487 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306488*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306489typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306490{
6491
6492 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306493 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306494
6495 /*Lets PNO know that host has determined the regulatory domain*/
6496 tANI_U8 b11dResolved;
6497
6498 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306499 tANI_U8 ucChannelCount;
6500 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306501
6502 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306503 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306504
6505 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306506 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306507
6508 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306509 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306510
6511 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306512 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306513
6514 /*Cb State*/
6515 ePhyChanBondState cbState;
6516
6517} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6518
6519/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006520 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306521 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006522*/
6523typedef PACKED_PRE struct PACKED_POST{
6524
6525 tHalMsgHeader header;
6526 tUpdateScanParams scanParams;
6527} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6528
6529/*
6530 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306531 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006532*/
6533typedef PACKED_PRE struct PACKED_POST{
6534
6535 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306536 tUpdateScanParamsEx scanParams;
6537} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6538
6539/*
6540 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306541 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306542*/
6543typedef PACKED_PRE struct PACKED_POST{
6544
6545 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006546
6547 /*status of the request */
6548 tANI_U32 status;
6549
6550} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6551
6552/*---------------------------------------------------------------------------
6553 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6554 *--------------------------------------------------------------------------*/
6555typedef PACKED_PRE struct PACKED_POST
6556{
6557 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6558 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6559 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6560 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6561} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6562
6563typedef PACKED_PRE struct PACKED_POST
6564{
6565 tHalMsgHeader header;
6566 tHalTxPerTrackingReqParam txPerTrackingParams;
6567} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6568
6569/*---------------------------------------------------------------------------
6570 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6571 *--------------------------------------------------------------------------*/
6572typedef PACKED_PRE struct PACKED_POST
6573{
6574 /* success or failure */
6575 tANI_U32 status;
6576} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6577
6578typedef PACKED_PRE struct PACKED_POST
6579{
6580 tHalMsgHeader header;
6581 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6582} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6583
6584/*---------------------------------------------------------------------------
6585 * WLAN_HAL_TX_PER_HIT_IND
6586 *--------------------------------------------------------------------------*/
6587typedef PACKED_PRE struct PACKED_POST
6588{
6589 tHalMsgHeader header;
6590}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6591
6592/*---------------------------------------------------------------------------
6593 *******************Packet Filtering Definitions Begin*******************
6594 *--------------------------------------------------------------------------*/
6595#define HAL_PROTOCOL_DATA_LEN 8
6596#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6597#define HAL_MAX_NUM_FILTERS 20
6598#define HAL_MAX_CMP_PER_FILTER 10
6599
6600typedef enum
6601{
6602 HAL_RCV_FILTER_TYPE_INVALID,
6603 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6604 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6605 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6606}tHalReceivePacketFilterType;
6607
Dino Mycle8afbac12014-07-04 22:06:17 +05306608typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006609{
6610 HAL_FILTER_PROTO_TYPE_INVALID,
6611 HAL_FILTER_PROTO_TYPE_MAC,
6612 HAL_FILTER_PROTO_TYPE_ARP,
6613 HAL_FILTER_PROTO_TYPE_IPV4,
6614 HAL_FILTER_PROTO_TYPE_IPV6,
6615 HAL_FILTER_PROTO_TYPE_UDP,
6616 HAL_FILTER_PROTO_TYPE_MAX
6617}tHalRcvPktFltProtocolType;
6618
Dino Mycle8afbac12014-07-04 22:06:17 +05306619typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006620{
6621 HAL_FILTER_CMP_TYPE_INVALID,
6622 HAL_FILTER_CMP_TYPE_EQUAL,
6623 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6624 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6625 HAL_FILTER_CMP_TYPE_MAX
6626}tHalRcvPktFltCmpFlagType;
6627
Dino Mycle8afbac12014-07-04 22:06:17 +05306628typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006629{
6630 tANI_U8 protocolLayer;
6631 tANI_U8 cmpFlag;
6632 tANI_U16 dataLength; /* Length of the data to compare */
6633 tANI_U8 dataOffset; /* from start of the respective frame header */
6634 tANI_U8 reserved; /* Reserved field */
6635 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6636 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6637}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6638
6639typedef PACKED_PRE struct PACKED_POST
6640{
6641 tANI_U8 filterId;
6642 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306643 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006644 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006645 tHalRcvPktFilterParams paramsData[1];
6646}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6647
6648typedef PACKED_PRE struct PACKED_POST
6649{
Jeff Johnsone7245742012-09-05 17:12:55 -07006650 tANI_U8 filterId;
6651 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306652 tANI_U8 numParams;
6653 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006654 tANI_U8 bssIdx;
6655 tHalRcvPktFilterParams paramsData[1];
6656}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6657
6658typedef PACKED_PRE struct PACKED_POST
6659{
Jeff Johnson295189b2012-06-20 16:38:30 -07006660 tHalMsgHeader header;
6661 tHalRcvPktFilterCfgType pktFilterCfg;
6662} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6663
Jeff Johnsone7245742012-09-05 17:12:55 -07006664typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006665{
6666 tANI_U8 dataOffset; /* from start of the respective frame header */
6667 tANI_U32 cMulticastAddr;
6668 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006669 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006670} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6671
6672typedef PACKED_PRE struct PACKED_POST
6673{
6674 /* success or failure */
6675 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006676 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006677} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6678
6679typedef PACKED_PRE struct PACKED_POST
6680{
6681 tHalMsgHeader header;
6682 tHalSetPktFilterRspParams pktFilterRspParams;
6683} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6684
Jeff Johnsone7245742012-09-05 17:12:55 -07006685typedef PACKED_PRE struct PACKED_POST
6686{
6687 tANI_U8 bssIdx;
6688} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006689
6690typedef PACKED_PRE struct PACKED_POST
6691{
6692 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006693 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006694} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6695
Jeff Johnsone7245742012-09-05 17:12:55 -07006696
Jeff Johnson295189b2012-06-20 16:38:30 -07006697typedef PACKED_PRE struct PACKED_POST
6698{
6699 tANI_U8 filterId;
6700 tANI_U32 matchCnt;
6701} tHalRcvFltPktMatchCnt;
6702typedef PACKED_PRE struct PACKED_POST
6703{
6704 /* Success or Failure */
6705 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306706 tANI_U32 matchCnt;
6707 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006708 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006709} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6710
6711typedef PACKED_PRE struct PACKED_POST
6712{
6713 tHalMsgHeader header;
6714 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6715} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6716
6717typedef PACKED_PRE struct PACKED_POST
6718{
6719 tANI_U32 status; /* only valid for response message */
6720 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006721 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006722}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6723
6724typedef PACKED_PRE struct PACKED_POST
6725{
6726 tHalMsgHeader header;
6727 tHalRcvFltPktClearParam filterClearParam;
6728} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6729
6730typedef PACKED_PRE struct PACKED_POST
6731{
6732 tHalMsgHeader header;
6733 tHalRcvFltPktClearParam filterClearParam;
6734} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6735
6736typedef PACKED_PRE struct PACKED_POST
6737{
Dino Mycle8afbac12014-07-04 22:06:17 +05306738 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006739 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006740}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6741
6742typedef PACKED_PRE struct PACKED_POST
6743{
6744 tHalMsgHeader header;
6745 tHalRcvFltMcAddrListType mcAddrList;
6746} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6747
6748typedef PACKED_PRE struct PACKED_POST
6749{
6750 tHalMsgHeader header;
6751 tHalRcvFltPktSetMcListRspType rspParam;
6752} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6753
6754
6755/*---------------------------------------------------------------------------
6756 *******************Packet Filtering Definitions End*******************
6757 *--------------------------------------------------------------------------*/
6758
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006759/*
6760 * There are two versions of this message
6761 * Version 1 : Base version
6762 * Current version : Base version + Max LI modulated DTIM
6763 */
6764typedef PACKED_PRE struct PACKED_POST
6765{
6766 /* Ignore DTIM */
6767 tANI_U32 uIgnoreDTIM;
6768
6769 /*DTIM Period*/
6770 tANI_U32 uDTIMPeriod;
6771
6772 /* Listen Interval */
6773 tANI_U32 uListenInterval;
6774
6775 /* Broadcast Multicast Filter */
6776 tANI_U32 uBcastMcastFilter;
6777
6778 /* Beacon Early Termination */
6779 tANI_U32 uEnableBET;
6780
6781 /* Beacon Early Termination Interval */
6782 tANI_U32 uBETInterval;
6783}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6784
6785typedef PACKED_PRE struct PACKED_POST
6786{
6787 tHalMsgHeader header;
6788 tSetPowerParamsVer1Type powerParams;
6789} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6790
Jeff Johnson295189b2012-06-20 16:38:30 -07006791typedef PACKED_PRE struct PACKED_POST
6792{
6793 /* Ignore DTIM */
6794 tANI_U32 uIgnoreDTIM;
6795
6796 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306797 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006798
6799 /* Listen Interval */
6800 tANI_U32 uListenInterval;
6801
6802 /* Broadcast Multicast Filter */
6803 tANI_U32 uBcastMcastFilter;
6804
6805 /* Beacon Early Termination */
6806 tANI_U32 uEnableBET;
6807
6808 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306809 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006810
6811 /* MAX LI for modulated DTIM */
6812 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006813}tSetPowerParamsType, *tpSetPowerParamsType;
6814
6815typedef PACKED_PRE struct PACKED_POST
6816{
6817 tHalMsgHeader header;
6818 tSetPowerParamsType powerParams;
6819} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6820
6821typedef PACKED_PRE struct PACKED_POST{
6822
6823 tHalMsgHeader header;
6824
6825 /*status of the request */
6826 tANI_U32 status;
6827
6828} tSetPowerParamsResp, *tpSetPowerParamsResp;
6829
6830/*---------------------------------------------------------------------------
6831 ****************Capability bitmap exchange definitions and macros starts*************
6832 *--------------------------------------------------------------------------*/
6833
Anand Kumar012623a2013-01-11 17:00:00 -08006834typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006835 MCC = 0,
6836 P2P = 1,
6837 DOT11AC = 2,
6838 SLM_SESSIONIZATION = 3,
6839 DOT11AC_OPMODE = 4,
6840 SAP32STA = 5,
6841 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006842 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006843 WLANACTIVE_OFFLOAD = 8,
6844 BEACON_OFFLOAD = 9,
6845 SCAN_OFFLOAD = 10,
6846 ROAM_OFFLOAD = 11,
6847 BCN_MISS_OFFLOAD = 12,
6848 STA_POWERSAVE = 13,
6849 STA_ADVANCED_PWRSAVE = 14,
6850 AP_UAPSD = 15,
6851 AP_DFS = 16,
6852 BLOCKACK = 17,
6853 PHY_ERR = 18,
6854 BCN_FILTER = 19,
6855 RTT = 20,
6856 RATECTRL = 21,
6857 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006858 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006859 SPECULATIVE_PS_POLL = 24,
6860 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006861 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006862 WLAN_SCAN_OFFLOAD = 27,
6863 WLAN_PERIODIC_TX_PTRN = 28,
6864 ADVANCE_TDLS = 29,
6865 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306866 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306867 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306868 CH_SWITCH_V1 = 33,
6869 HT40_OBSS_SCAN = 34,
6870 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006871 WLAN_MCADDR_FLT = 36,
6872 WLAN_CH144 = 37,
6873 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306874 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306875 LINK_LAYER_STATS_MEAS = 40,
6876 MU_MIMO = 41,
6877 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306878 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306879 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306880 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306881 DISA = 46,
6882 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306883 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306884 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306885 TDLS_OFF_CHANNEL = 51,
Padma, Santhosh Kumarcfbcf942015-12-08 16:07:47 +05306886 RTT3 = 52,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306887 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306888 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306889 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306890 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306891 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306892 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306893 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306894 WIFI_CONFIG = 61,
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05306895 ANTENNA_DIVERSITY_SELECTION = 62,
Kapil Guptac1043632016-06-25 00:23:30 +05306896 PER_BASED_ROAMING = 63,
Agrawal Ashish1d75aac2016-12-12 12:36:59 +05306897 SAP_MODE_WOW = 64,
6898 SAP_OFFLOADS = 65,
Sravan Kumar Kairam9ba5f5b2016-12-13 13:50:46 +05306899 SAP_BUFF_ALLOC = 66,
Kumar Anandea78e792013-10-10 23:47:01 -07006900 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006901} placeHolderInCapBitmap;
6902
Jeff Johnson295189b2012-06-20 16:38:30 -07006903typedef PACKED_PRE struct PACKED_POST{
6904
6905 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006906} tWlanFeatCaps, *tpWlanFeatCaps;
6907
6908typedef PACKED_PRE struct PACKED_POST{
6909
Dino Mycle8afbac12014-07-04 22:06:17 +05306910 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006911 tWlanFeatCaps wlanFeatCaps;
6912
6913} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6914
Jeff Johnsone7245742012-09-05 17:12:55 -07006915#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6916#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006917#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006918#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006919#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006920#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006921#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006922#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306923#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306924#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306925#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306926#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306927#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006928
Jeff Johnsone7245742012-09-05 17:12:55 -07006929tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6930
Jeff Johnson295189b2012-06-20 16:38:30 -07006931#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006932 if ((b)<=127) { \
6933 arr_index = (b)/32; \
6934 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006935 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006936 (a)->featCaps[arr_index] |= (1<<bit_index); \
6937 } \
6938 }
6939#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006940 if ((b)<=127) { \
6941 arr_index = (b)/32; \
6942 bit_index = (b)%32; \
6943 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006944 } \
6945 }
6946#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006947 if ((b)<=127) { \
6948 arr_index = (b)/32; \
6949 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006950 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006951 } \
6952 }
6953
6954/*---------------------------------------------------------------------------
6955 * WLAN_HAL_WAKE_REASON_IND
6956 *--------------------------------------------------------------------------*/
6957
6958/* status codes to help debug rekey failures */
6959typedef enum
6960{
6961 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6962 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6963 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6964 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6965 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6966 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6967 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6968 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6969 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6970 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6971
6972 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6973} tGTKRekeyStatus;
6974
6975/* wake reason types */
6976typedef enum
6977{
6978 WLAN_HAL_WAKE_REASON_NONE = 0,
6979 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6980 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6981 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6982 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6983 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6984 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6985 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6986} tWakeReasonType;
6987
6988/*
6989 Wake Packet which is saved at tWakeReasonParams.DataStart
6990 This data is sent for any wake reasons that involve a packet-based wakeup :
6991
6992 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6993 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6994 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6995 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6996 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6997
6998 The information is provided to the host for auditing and debug purposes
6999
7000*/
7001
7002/*
7003 Wake reason indication parameters
7004*/
7005typedef PACKED_PRE struct PACKED_POST
7006{
7007 uint32 ulReason; /* see tWakeReasonType */
7008 uint32 ulReasonArg; /* argument specific to the reason type */
7009 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
7010 HAL truncates the data (i.e. data packets) this length
7011 will be less than the actual length */
7012 uint32 ulActualDataLen; /* actual length of data */
7013 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
7014 see specific wake type */
7015} tWakeReasonParams, *tpWakeReasonParams;
7016
7017/*
7018 Wake reason indication
7019*/
7020typedef PACKED_PRE struct PACKED_POST
7021{
7022 tHalMsgHeader header;
7023 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07007024 tANI_U32 uBssIdx : 8;
7025 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07007026} tHalWakeReasonInd, *tpHalWakeReasonInd;
7027
7028/*---------------------------------------------------------------------------
7029* WLAN_HAL_GTK_OFFLOAD_REQ
7030*--------------------------------------------------------------------------*/
7031
7032#define HAL_GTK_KEK_BYTES 16
7033#define HAL_GTK_KCK_BYTES 16
7034
7035#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
7036
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007037#define GTK_SET_BSS_KEY_TAG 0x1234AA55
7038
Jeff Johnson295189b2012-06-20 16:38:30 -07007039typedef PACKED_PRE struct PACKED_POST
7040{
7041 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05307042 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07007043 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
7044 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07007045 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007046} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
7047
7048typedef PACKED_PRE struct PACKED_POST
7049{
7050 tHalMsgHeader header;
7051 tHalGtkOffloadReqParams gtkOffloadReqParams;
7052} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
7053
7054/*---------------------------------------------------------------------------
7055* WLAN_HAL_GTK_OFFLOAD_RSP
7056*--------------------------------------------------------------------------*/
7057typedef PACKED_PRE struct PACKED_POST
7058{
7059 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07007060 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007061} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
7062
7063typedef PACKED_PRE struct PACKED_POST
7064{
7065 tHalMsgHeader header;
7066 tHalGtkOffloadRspParams gtkOffloadRspParams;
7067} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
7068
7069
7070/*---------------------------------------------------------------------------
7071* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
7072*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07007073typedef PACKED_PRE struct PACKED_POST
7074{
7075 tANI_U8 bssIdx;
7076
7077} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007078
7079typedef PACKED_PRE struct PACKED_POST
7080{
7081 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007082 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007083} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7084
7085/*---------------------------------------------------------------------------
7086* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7087*--------------------------------------------------------------------------*/
7088typedef PACKED_PRE struct PACKED_POST
7089{
7090 tANI_U32 ulStatus; /* success or failure */
7091 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7092 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7093 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7094 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7095 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007096 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007097} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7098
7099typedef PACKED_PRE struct PACKED_POST
7100{
7101 tHalMsgHeader header;
7102 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7103} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7104
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007105/*---------------------------------------------------------------------------
7106* WLAN_HAL_DHCP_IND
7107*--------------------------------------------------------------------------*/
7108typedef PACKED_PRE struct PACKED_POST
7109{
7110 /*Indicates the device mode which indicates about the DHCP activity */
7111 tANI_U8 device_mode;
7112 tSirMacAddr macAddr;
7113} tDHCPInfo, *tpDHCPInfo;
7114
7115typedef PACKED_PRE struct PACKED_POST
7116{
7117 tHalMsgHeader header;
7118 tANI_U32 status; /* success or failure */
7119} tDHCPIndStatus, *tpDHCPIndstatus;
7120
Jeff Johnson295189b2012-06-20 16:38:30 -07007121/*
7122 Thermal Mitigation mode of operation.
7123 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7124 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7125 reducing transmit power
7126 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7127*/
7128typedef enum
7129{
7130 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7131 HAL_THERMAL_MITIGATION_MODE_0,
7132 HAL_THERMAL_MITIGATION_MODE_1,
7133 HAL_THERMAL_MITIGATION_MODE_2,
7134 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7135}tHalThermalMitigationModeType;
7136//typedef tANI_S16 tHalThermalMitigationModeType;
7137
7138/*
7139 Thermal Mitigation level.
7140 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7141 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7142
7143 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7144 level indicates normal mode of operation
7145 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7146 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7147 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7148 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7149*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307150typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007151{
7152 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7153 HAL_THERMAL_MITIGATION_LEVEL_0,
7154 HAL_THERMAL_MITIGATION_LEVEL_1,
7155 HAL_THERMAL_MITIGATION_LEVEL_2,
7156 HAL_THERMAL_MITIGATION_LEVEL_3,
7157 HAL_THERMAL_MITIGATION_LEVEL_4,
7158 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7159}tHalThermalMitigationLevelType;
7160//typedef tANI_S16 tHalThermalMitigationLevelType;
7161
7162typedef PACKED_PRE struct PACKED_POST
7163{
7164 /* Thermal Mitigation Operation Mode */
7165 tHalThermalMitigationModeType thermalMitMode;
7166
7167 /* Thermal Mitigation Level */
7168 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307169
Jeff Johnson295189b2012-06-20 16:38:30 -07007170}tSetThermalMitgationType, *tpSetThermalMitgationType;
7171
7172/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7173typedef PACKED_PRE struct PACKED_POST
7174{
7175 tHalMsgHeader header;
7176 tSetThermalMitgationType thermalMitParams;
7177} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7178
7179typedef PACKED_PRE struct PACKED_POST{
7180
7181 tHalMsgHeader header;
7182
7183 /*status of the request */
7184 tANI_U32 status;
7185
7186} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7187
Dino Mycle8afbac12014-07-04 22:06:17 +05307188/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007189provided to FW from Host via periodic messages */
7190typedef PACKED_PRE struct PACKED_POST {
7191 /* TX stats */
7192 uint32 txBytesPushed;
7193 uint32 txPacketsPushed;
7194
7195 /* RX stats */
7196 uint32 rxBytesRcvd;
7197 uint32 rxPacketsRcvd;
7198 uint32 rxTimeTotal;
7199} tStaStatsClassB, *tpStaStatsClassB;
7200
7201typedef PACKED_PRE struct PACKED_POST {
7202
7203 /* Duration over which this stats was collected */
7204 tANI_U32 duration;
7205
7206 /* Per STA Stats */
7207 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7208} tStatsClassBIndParams, *tpStatsClassBIndParams;
7209
7210typedef PACKED_PRE struct PACKED_POST {
7211
7212 tHalMsgHeader header;
7213
7214 /* Class B Stats */
7215 tStatsClassBIndParams statsClassBIndParams;
7216} tStatsClassBInd, *tpStatsClassBInd;
7217
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307218/*Wifi Proximity paramters in AP mode*/
7219#ifdef FEATURE_WIFI_PROXIMITY
7220
7221typedef PACKED_PRE struct PACKED_POST{
7222
7223 tANI_U8 wifiProximityChannel;
7224 tANI_U32 wifiProximityDuration;
7225 tANI_U32 wifiProximityInterval;
7226 tANI_U32 wifiProximityMode;
7227 tANI_U32 wifiProximityStatus;
7228 tSirMacAddr bssId;
7229 tSirMacSSid ssId;
7230
7231} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7232
7233typedef PACKED_PRE struct PACKED_POST
7234{
7235 tHalMsgHeader header;
7236
7237 tSetWifiProximityReqParam wifiProximityReqParams;
7238
7239}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7240
7241/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7242typedef PACKED_PRE struct PACKED_POST{
7243
7244 tHalMsgHeader header;
7245
7246 /*status of the request */
7247 tANI_U32 status;
7248
7249} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7250
7251#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007252
7253#ifdef FEATURE_SPECULATIVE_PS_POLL
7254/*---------------------------------------------------------------------------
7255 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7256 *--------------------------------------------------------------------------*/
7257typedef PACKED_PRE struct PACKED_POST
7258{
7259 tANI_U8 bssIdx;
7260 tANI_U16 serviceInterval;
7261 tANI_U16 suspendInterval;
7262 tANI_U8 acMask;
7263} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7264
7265typedef PACKED_PRE struct PACKED_POST
7266{
7267 tHalMsgHeader header;
7268 tHalStartSpecPsPollReqParams specPsPollReq;
7269} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7270
7271/*---------------------------------------------------------------------------
7272 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7273 *--------------------------------------------------------------------------*/
7274typedef PACKED_PRE struct PACKED_POST
7275{
7276 /* success or failure */
7277 tANI_U32 status;
7278 tANI_U8 bssIdx;
7279} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7280
7281typedef PACKED_PRE struct PACKED_POST
7282{
7283 tHalMsgHeader header;
7284 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7285} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7286
7287/*---------------------------------------------------------------------------
7288 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7289 *--------------------------------------------------------------------------*/
7290typedef PACKED_PRE struct PACKED_POST
7291{
7292 tHalMsgHeader header;
7293 tANI_U8 bssIdx;
7294} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7295#endif
7296
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307297#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307298#define HAL_MAX_SUPP_CHANNELS 128
7299#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307300/*---------------------------------------------------------------------------
7301 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7302 *-------------------------------------------------------------------------*/
7303typedef PACKED_PRE struct PACKED_POST
7304{
7305 /*STA Index*/
7306 tANI_U16 staIdx;
7307
7308 /* if this is 1, self is initiator and peer is reponder */
7309 tANI_U8 bIsResponder;
7310
7311 /* QoS Info */
7312 tANI_U8 acVOUAPSDFlag:1;
7313 tANI_U8 acVIUAPSDFlag:1;
7314 tANI_U8 acBKUAPSDFlag:1;
7315 tANI_U8 acBEUAPSDFlag:1;
7316 tANI_U8 aAck:1;
7317 tANI_U8 maxServicePeriodLength:2;
7318 tANI_U8 moreDataAck:1;
7319
7320 /*TDLS Peer U-APSD Buffer STA Support*/
7321 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007322
7323 /*TDLS off channel related params */
7324 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307325 tANI_U8 peerCurrOperClass;
7326 tANI_U8 selfCurrOperClass;
7327 tANI_U8 validChannelsLen;
7328 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7329 tANI_U8 validOperClassesLen;
7330 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307331}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7332
7333typedef PACKED_PRE struct PACKED_POST
7334{
7335 tHalMsgHeader header;
7336 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7337} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7338
7339/*---------------------------------------------------------------------------
7340 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7341 *-------------------------------------------------------------------------*/
7342
7343typedef PACKED_PRE struct PACKED_POST
7344{
7345 tANI_U32 status;
7346
7347 /*STA Index*/
7348 tANI_U16 staIdx;
7349} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7350
7351typedef PACKED_PRE struct PACKED_POST
7352{
7353 tHalMsgHeader header;
7354 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7355} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307356/*---------------------------------------------------------------------------
7357 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7358 + *-------------------------------------------------------------------------*/
7359typedef PACKED_PRE struct PACKED_POST
7360{
7361 /*STA Index*/
7362 tANI_U16 staIdx;
7363 /* if this is 1, self is initiator otherwise responder only*/
7364 tANI_U8 isOffchannelInitiator;
7365 /*TDLS off channel related params */
7366 tANI_U8 targetOperClass;
7367 tANI_U8 targetChannel;
7368 tANI_U8 secondaryChannelOffset;
7369 tANI_U8 reserved[32];
7370}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7371
7372typedef PACKED_PRE struct PACKED_POST
7373{
7374 tHalMsgHeader header;
7375 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7376} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7377/*---------------------------------------------------------------------------
7378 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7379 *-------------------------------------------------------------------------*/
7380
7381typedef PACKED_PRE struct PACKED_POST
7382{
7383 tANI_U32 status;
7384 /*STA Index*/
7385 tANI_U16 staIdx;
7386} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7387
7388typedef PACKED_PRE struct PACKED_POST
7389{
7390 tHalMsgHeader header;
7391 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7392} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7393
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307394
7395/*---------------------------------------------------------------------------
7396 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7397 *-------------------------------------------------------------------------*/
7398typedef PACKED_PRE struct PACKED_POST
7399{
7400 /*STA Index*/
7401 tANI_U16 staIdx;
7402}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7403
7404typedef PACKED_PRE struct PACKED_POST
7405{
7406 tHalMsgHeader header;
7407 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7408} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7409
7410/*---------------------------------------------------------------------------
7411 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7412 *-------------------------------------------------------------------------*/
7413
7414typedef PACKED_PRE struct PACKED_POST
7415{
7416 tANI_U32 status;
7417
7418 /*STA Index*/
7419 tANI_U16 staIdx;
7420} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7421
7422typedef PACKED_PRE struct PACKED_POST
7423{
7424 tHalMsgHeader header;
7425 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7426} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7427
7428/*---------------------------------------------------------------------------
7429 *WLAN_HAL_TDLS_IND
7430 *--------------------------------------------------------------------------*/
7431
7432typedef PACKED_PRE struct PACKED_POST
7433{
7434 tANI_U16 assocId;
7435 tANI_U16 staIdx;
7436 tANI_U16 status;
7437 tANI_U16 reasonCode;
7438}tTdlsIndParams, *tpTdlsIndParams;
7439
7440
7441typedef PACKED_PRE struct PACKED_POST
7442{
7443 tHalMsgHeader header;
7444 tTdlsIndParams tdlsIndParams;
7445}tTdlsIndMsg, *tpTdlsIndMsg;
7446
7447#endif
7448
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007449/*---------------------------------------------------------------------------
7450 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7451 *--------------------------------------------------------------------------*/
7452
7453typedef PACKED_PRE struct PACKED_POST
7454{
7455 tANI_U8 bssIdx;
7456 tANI_U8 staIdx;
7457 tSirMacAddr staAddr;
7458}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7459
7460
7461typedef PACKED_PRE struct PACKED_POST
7462{
7463 tHalMsgHeader header;
7464 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7465}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7466
7467
Kumar Anandea78e792013-10-10 23:47:01 -07007468/*********** Scan Offload Related Structures *************/
7469#define HAL_NUM_SCAN_SSID 10
7470#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007471
Kumar Anandea78e792013-10-10 23:47:01 -07007472/*
7473 * Enumetation to indicate scan type (active/passive)
7474 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007475typedef enum
7476{
Kumar Anandea78e792013-10-10 23:47:01 -07007477 eSIR_PASSIVE_SCAN,
7478 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7479} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007480
7481typedef PACKED_PRE struct PACKED_POST
7482{
Kumar Anandea78e792013-10-10 23:47:01 -07007483 tANI_U8 numBssid;
7484 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7485 tANI_U8 numSsid;
7486 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7487 tANI_BOOLEAN hiddenSsid;
7488 tSirMacAddr selfMacAddr;
7489 tSirBssType bssType;
7490 tSirScanType scanType;
7491 tANI_U32 minChannelTime;
7492 tANI_U32 maxChannelTime;
7493 tANI_BOOLEAN p2pSearch;
7494 tANI_U8 channelCount;
7495 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7496 tANI_U16 ieFieldLen;
7497 tANI_U8 ieField[1];
7498}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007499
7500/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007501 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007502 *-------------------------------------------------------------------------*/
7503typedef PACKED_PRE struct PACKED_POST
7504{
Kumar Anandf53016f2013-09-04 15:15:53 -07007505 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007506 tScanOffloadReqType scanOffloadParams;
7507} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007508
7509/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007510 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007511 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007512typedef PACKED_PRE struct PACKED_POST
7513{
7514 tHalMsgHeader header;
7515
7516 /*status of the request - just to indicate SO has acknowledged
7517 * * the request and will start scanning*/
7518 tANI_U32 status;
7519} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7520
7521/*---------------------------------------------------------------------------
7522 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7523 *-------------------------------------------------------------------------*/
7524typedef PACKED_PRE struct PACKED_POST
7525{
7526 tHalMsgHeader header;
7527} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7528
7529/*---------------------------------------------------------------------------
7530 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7531 *-------------------------------------------------------------------------*/
7532typedef PACKED_PRE struct PACKED_POST
7533{
7534 tHalMsgHeader header;
7535
7536 /*status of the request - just to indicate SO has acknowledged
7537 the request and will start scanning*/
7538 tANI_U32 status;
7539} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7540
7541/*
7542 * Enumetation of scan events indicated by firmware to the host
7543 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007544typedef enum
7545{
Kumar Anandea78e792013-10-10 23:47:01 -07007546 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7547 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7548 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7549 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7550 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7551 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7552 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7553 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7554 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7555} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007556
7557typedef PACKED_PRE struct PACKED_POST
7558{
Kumar Anandea78e792013-10-10 23:47:01 -07007559 tScanEventType event;
7560 tANI_U32 channel;
7561 tANI_U32 scanId;
7562} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007563
Kumar Anandea78e792013-10-10 23:47:01 -07007564/*---------------------------------------------------------------------------
7565 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7566 *-------------------------------------------------------------------------*/
7567typedef PACKED_PRE struct PACKED_POST
7568{
7569 tHalMsgHeader header;
7570 tScanOffloadEventInfo scanOffloadInd;
7571} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007572
Kumar Anandea78e792013-10-10 23:47:01 -07007573typedef PACKED_PRE struct PACKED_POST {
7574 /** primary 20 MHz channel frequency in mhz */
7575 tANI_U32 mhz;
7576 /** Center frequency 1 in MHz*/
7577 tANI_U32 band_center_freq1;
7578 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7579 tANI_U32 band_center_freq2;
7580 /* The first 26 bits are a bit mask to indicate any channel flags,
7581 (see WLAN_HAL_CHAN_FLAG*)
7582 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7583 tANI_U32 channel_info;
7584 /** contains min power, max power, reg power and reg class id. */
7585 tANI_U32 reg_info_1;
7586 /** contains antennamax */
7587 tANI_U32 reg_info_2;
7588} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007589
Kumar Anandf53016f2013-09-04 15:15:53 -07007590
Kumar Anandea78e792013-10-10 23:47:01 -07007591typedef enum {
7592 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7593 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7594 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7595 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7596 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7597 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7598 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7599 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7600 WLAN_HAL_MODE_11AC_VHT20 = 8,
7601 WLAN_HAL_MODE_11AC_VHT40 = 9,
7602 WLAN_HAL_MODE_11AC_VHT80 = 10,
7603 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7604 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7605 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7606 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007607
Kumar Anandea78e792013-10-10 23:47:01 -07007608} tChannelPhyModeType;
7609
7610#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7611#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7612#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7613#define WLAN_HAL_CHAN_AP_DISABLED 9
7614#define WLAN_HAL_CHAN_FLAG_DFS 10
7615#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7616#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007617#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7618
7619#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007620 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007621 } while(0)
7622
7623#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007624 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007625
7626#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7627 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7628 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7629 } while(0)
7630#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7631
7632#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7633 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7634 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7635 } while(0)
7636#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7637
7638#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7639 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7640 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7641 } while(0)
7642#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7643#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7644 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7645 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7646 } while(0)
7647#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7648
7649#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7650 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7651 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7652 } while(0)
7653#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7654
7655#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7656 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7657 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7658 } while(0)
7659#define WLAN_HAL_GET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_2)>>8) & 0xff )
Kumar Anandea78e792013-10-10 23:47:01 -07007660
7661typedef PACKED_PRE struct PACKED_POST
7662{
7663 tANI_U8 numChan;
7664 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7665} tUpdateChannelReqType;
7666
7667/*---------------------------------------------------------------------------
7668 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7669 *-------------------------------------------------------------------------*/
7670typedef PACKED_PRE struct PACKED_POST
7671{
7672 tHalMsgHeader header;
7673 tUpdateChannelReqType updateChannelParams;
7674} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7675
7676/*---------------------------------------------------------------------------
7677 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7678 *-------------------------------------------------------------------------*/
7679typedef PACKED_PRE struct PACKED_POST
7680{
7681 tHalMsgHeader header;
7682
7683 /*status of the request - just to indicate SO has acknowledged
7684 * * the request and will start scanning*/
7685 tANI_U32 status;
7686} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7687
7688
7689/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307690 * WLAN_HAL_RMC_RULER_REQ
7691 *-------------------------------------------------------------------------*/
7692
7693#define HAL_MAX_RMC_SESSIONS 2
7694
7695#define HAL_NUM_MAX_RULERS 8
7696
7697typedef enum
7698{
7699 WLAN_HAL_SUGGEST_RULER,
7700 WLAN_HAL_BECOME_RULER,
7701 WLAN_HAL_RULER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7702}tRulerReqCmdType, tRulerRspCmdType;
7703
Kumar Anandea78e792013-10-10 23:47:01 -07007704typedef PACKED_PRE struct PACKED_POST
7705{
Abhishek Singh00b71972016-01-07 10:51:04 +05307706 tRulerReqCmdType cmd;
7707
7708 /* MAC address of MCAST Transmitter (source) */
7709 tSirMacAddr mcastTransmitter;
7710
7711 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7712 tSirMacAddr mcastGroup;
7713
7714 /* Optional black list for cmd = WLAN_HAL_SUGGEST_RULER */
7715 tSirMacAddr blacklist[HAL_NUM_MAX_RULERS];
7716} tHalRmcRulerReqParams, *tpHalRmcRulerReqParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007717
7718typedef PACKED_PRE struct PACKED_POST
7719{
7720 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307721 tHalRmcRulerReqParams rulerReqParams;
7722} tHalRmcRulerReqMsg, *tpHalRmcRulerReqMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007723
7724/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307725 * WLAN_HAL_RMC_RULER_RSP
7726 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007727typedef PACKED_PRE struct PACKED_POST
7728{
Abhishek Singh00b71972016-01-07 10:51:04 +05307729 /* success or failure */
7730 tANI_U32 status;
7731
7732 /* Command Type */
7733 tRulerRspCmdType cmd;
7734
7735 /* MAC address of MCAST Transmitter (source) */
7736 tSirMacAddr mcastTransmitter;
7737
7738 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7739 tSirMacAddr mcastGroup;
7740
7741 /* List of candidates for cmd = WLAN_HAL_SUGGEST_RULER*/
7742 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7743
7744} tHalRmcRulerRspParams, *tpHalRmcRulerRspParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007745
7746typedef PACKED_PRE struct PACKED_POST
7747{
7748 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307749 tHalRmcRulerRspParams rulerRspParams;
7750} tHalRmcRulerRspMsg, *tpHalRmcRulerRspMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007751
7752/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307753 * WLAN_HAL_RMC_UPDATE_IND
7754 *-------------------------------------------------------------------------*/
7755typedef enum
Kumar Anandea78e792013-10-10 23:47:01 -07007756{
Abhishek Singh00b71972016-01-07 10:51:04 +05307757 WLAN_HAL_RULER_ACCEPTED, //Host-->FW
7758 WLAN_HAL_RULER_CANCELED, //Host-->FW
7759 WLAN_HAL_RULER_PICK_NEW, //FW-->Host
7760 WLAN_HAL_RULER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
7761}tRmcUpdateIndType;
7762
7763typedef enum
7764{
7765 WLAN_HAL_RMC_RULER_ROLE,
7766 WLAN_HAL_RMC_TRANSMITTER_ROLE,
7767 WLAN_HAL_RMC_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7768}tRmcRoleType;
Kumar Anandea78e792013-10-10 23:47:01 -07007769
7770typedef PACKED_PRE struct PACKED_POST
7771{
Abhishek Singh00b71972016-01-07 10:51:04 +05307772 tRmcUpdateIndType indication;
7773
7774 /* Role of the entity generating this indication */
7775 tRmcRoleType role;
7776
7777 /* MAC address of MCAST Transmitter (source) */
7778 tSirMacAddr mcastTransmitter;
7779
7780 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7781 tSirMacAddr mcastGroup;
7782
7783 tSirMacAddr mcastRuler;
7784
7785 /* Candidate list for indication = WLAN_HAL_RULER_PICK_NEW */
7786 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7787} tHalRmcUpdateIndParams, *tpHalRmcUpdateIndParams;
Kumar Anandf53016f2013-09-04 15:15:53 -07007788
7789typedef PACKED_PRE struct PACKED_POST
7790{
7791 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307792 tHalRmcUpdateIndParams rulerIndParams;
7793} tHalRmcUpdateInd, *tpHalRmcUpdateInd;
7794
7795typedef PACKED_PRE struct PACKED_POST
7796{
7797 tANI_U8 staIdx; // Station Idx;
7798 tANI_U32 txRate; // Legacy transmit rate, in units of 500 kbit/sec,
7799 // for the most recently transmitted frame
7800 tANI_U32 mcsIndex; // mcs index for HT20 and HT40 rates
7801 tANI_U32 txRateFlags; // to differentiate between HT20 and
7802 // HT40 rates; short and long guard interval
7803 tANI_S8 rssi; // RSSI of the last received beacon
7804}tHalIbssPeerParams, *tpHalIbssPeerParams;
7805
7806typedef PACKED_PRE struct PACKED_POST
7807{
7808 tANI_U32 status; // success or failure
7809 tANI_U8 numOfPeers; // Number of Peers for
7810 // which stats are being reported
7811 tHalIbssPeerParams ibssPeerParams[1]; // Stats of peer in IBSS
7812}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
7813
7814// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
7815typedef PACKED_PRE struct PACKED_POST
7816{
7817 tHalMsgHeader header;
7818 tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
7819}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
7820
7821typedef PACKED_PRE struct PACKED_POST
7822{
7823 tANI_U8 bssIdx; // Bss Index
7824 tANI_BOOLEAN allPeerInfoReqd; // If set, all IBSS peers stats are reported
7825 tANI_U8 staIdx; // If allPeerInfoReqd is not set,
7826 // only stats of peer with
7827 // staIdx is reported
7828}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
7829
7830// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
7831typedef PACKED_PRE struct PACKED_POST
7832{
7833 tHalMsgHeader header;
7834 tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
7835}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
krunal soni2a4728d2013-09-20 21:56:50 -07007836
Kumar Anandf53016f2013-09-04 15:15:53 -07007837/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007838 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7839 *-------------------------------------------------------------------------*/
7840typedef enum
7841{
7842 /* reassociation is done, but couldn't finish security handshake */
7843 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7844
7845 /* roam has successfully completed by firmware */
7846 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7847
7848 /* UNKONW error */
7849 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7850}tHalRoamOffloadRoamAuthStatus;
7851
7852typedef enum
7853{
7854 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7855 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7856 WLAN_HAL_ROAM_TYPE_OKC,
7857 WLAN_HAL_ROAM_TYPE_CCKM,
7858 WLAN_HAL_ROAM_TYPE_FT,
7859 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7860} tHalRoamOffloadType;
7861
7862typedef PACKED_PRE struct PACKED_POST
7863{
7864 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7865 tANI_U16 beaconProbeRespOffset;
7866
7867 /* Length of beaon / probe resp. */
7868 tANI_U16 beaconProbeRespLength;
7869
7870 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7871 tANI_U16 reassocRespOffset;
7872
7873 /* Length of reassoc resp. */
7874 tANI_U16 reassocRespLength;
7875
7876 /* 0 for probe response frame, 1 for beacon frame, */
7877 tANI_U8 isBeacon;
7878
7879 /* staIdx of old AP */
7880 tANI_U8 oldStaIdx;
7881
7882 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7883 tConfigBssRspParams */
7884 /* bssIdx of new roamed AP */
7885 tANI_U8 bssIdx;
7886
7887 /* DPU descriptor index for PTK */
7888 tANI_U8 dpuDescIndx;
7889
7890 /* PTK DPU signature */
7891 tANI_U8 ucastDpuSignature;
7892
7893 /* DPU descriptor index for GTK*/
7894 tANI_U8 bcastDpuDescIndx;
7895
7896 /* GTK DPU signature */
7897 tANI_U8 bcastDpuSignature;
7898
7899 /*DPU descriptor for IGTK*/
7900 tANI_U8 mgmtDpuDescIndx;
7901
7902 /* IGTK DPU signature */
7903 tANI_U8 mgmtDpuSignature;
7904
7905 /* Station Index for BSS entry*/
7906 tANI_U8 staIdx;
7907
7908 /* Self station index for this BSS */
7909 tANI_U8 selfStaIdx;
7910
7911 /* Bcast station for buffering bcast frames in AP role */
7912 tANI_U8 bcastStaIdx;
7913
7914 /* MAC address of roamed AP */
7915 tSirMacAddr bssid;
7916
7917 /*HAL fills in the tx power used for mgmt frames in this field. */
7918 tANI_S8 txMgmtPower;
7919
7920 /* success or failure */
7921 tHalRoamOffloadRoamAuthStatus authStatus;
7922
7923 /* TODO : add more info as needed */
7924
7925 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7926 /* Beacon or probe resp from new AP. This is in 802.11
7927 frame format starting with MAC header. */
7928 /* Up to beaconProbeRespLength */
7929
7930 /* reassocRespOffset points to starting of reassoc resp frame */
7931 /* Reassoc resp from new AP. This is in 802.11
7932 frame format starting with MAC header. */
7933 /* Up to reassocRespLength */
7934
7935} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7936
7937
7938typedef PACKED_PRE struct PACKED_POST
7939{
7940 tHalMsgHeader header;
7941 tHalRoamOffloadSynchIndParams params;
7942} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7943
7944/*---------------------------------------------------------------------------
7945 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7946 *-------------------------------------------------------------------------*/
7947typedef PACKED_PRE struct PACKED_POST
7948{
7949 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7950 tSirMacAddr bssid;
7951} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7952
7953typedef PACKED_PRE struct PACKED_POST
7954{
7955 tHalMsgHeader header;
7956 tHalRoamOffloadSynchCnfParams params;
7957} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7958
7959
7960/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007961 WLAN_HAL_RATE_UPDATE_IND
7962 *-------------------------------------------------------------------------*/
Abhishek Singh00b71972016-01-07 10:51:04 +05307963 typedef PACKED_PRE struct PACKED_POST
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007964{
7965 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7966 tANI_S32 ucastDataRate; //unit Mbpsx10
7967
7968 /* TX flag to differentiate between HT20, HT40 etc */
7969 tTxRateInfoFlags ucastDataRateTxFlag;
7970
7971 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7972 tSirMacAddr bssid;
7973
7974 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
Abhishek Singh00b71972016-01-07 10:51:04 +05307975 tANI_S32 rmcDataRate; //unit Mbpsx10
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007976
7977 /* TX flag to differentiate between HT20, HT40 etc */
Abhishek Singh00b71972016-01-07 10:51:04 +05307978 tTxRateInfoFlags rmcDataRateTxFlag;
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007979
Abhishek Singh00b71972016-01-07 10:51:04 +05307980 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007981 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7982
7983 /* TX flag to differentiate between HT20, HT40 etc */
7984 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7985
Abhishek Singh00b71972016-01-07 10:51:04 +05307986 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007987 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7988
7989 /* TX flag to differentiate between HT20, HT40 etc */
7990 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7991
7992} tHalRateUpdateParams, *tpHalRateUpdateParams;
7993
7994typedef PACKED_PRE struct PACKED_POST
7995{
7996 tHalMsgHeader header;
7997 tHalRateUpdateParams halRateUpdateParams;
7998} tHalRateUpdateInd, * tpHalRateUpdateInd;
7999
8000/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05308001* WLAN_HAL_TX_FAIL_IND
8002*--------------------------------------------------------------------------*/
8003// Northbound indication from FW to host on weak link detection
8004typedef PACKED_PRE struct PACKED_POST
8005{
8006 // Sequence number increases by 1 whenever the device driver
8007 // sends a notification event. This is cleared as 0 when the
8008 // JOIN IBSS commamd is issued
8009 tANI_U16 seqNo;
8010 tANI_U16 staId;
8011 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
8012} tHalTXFailIndParams, *tpHalTXFailIndParams;
8013
8014typedef PACKED_PRE struct PACKED_POST
8015{
8016 tHalMsgHeader header;
8017 tHalTXFailIndParams txFailIndParams;
8018} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
8019
8020/*---------------------------------------------------------------------------
8021* WLAN_HAL_TX_FAIL_MONITOR_IND
8022*--------------------------------------------------------------------------*/
8023// Southbound message from Host to monitor the Tx failures
8024typedef PACKED_PRE struct PACKED_POST
8025{
8026 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
8027 tANI_U8 tx_fail_count;
8028} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
8029
8030typedef PACKED_PRE struct PACKED_POST
8031{
8032 tHalMsgHeader header;
8033 tTXFailMonitorInfo txFailMonitor;
8034} tTXFailMonitorInd, *tpTXFailMonitorInd;
8035
8036/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308037 * WLAN_HAL_AVOID_FREQ_RANGE_IND
8038 *-------------------------------------------------------------------------*/
8039
Abhishek Singhe0443152015-06-18 10:07:43 +05308040#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308041
8042typedef PACKED_PRE struct PACKED_POST
8043{
8044 tANI_U32 startFreq;
8045 tANI_U32 endFreq;
8046} tHalFreqRange, *tpHalFreqRange;
8047
8048typedef PACKED_PRE struct PACKED_POST
8049{
8050 tANI_U32 avoidCnt;
8051 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
8052} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
8053
8054typedef PACKED_PRE struct PACKED_POST
8055{
8056 tHalMsgHeader header;
8057 tHalAvoidFreqRangeIndParams freqRangeIndParams;
8058} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
8059
8060/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308061 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07008062 *-------------------------------------------------------------------------*/
8063
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308064typedef enum
8065{
8066 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
8067 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
8068 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
8069}tHT40OBssScanCmdType;
8070
8071typedef PACKED_PRE struct PACKED_POST
8072{
8073 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008074
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308075 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008076 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
8077 tANI_U16 OBSSScanActiveDwellTime; // In TUs
8078 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
8079 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
8080 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
8081 tANI_U16 BSSWidthChannelTransitionDelayFactor;
8082 tANI_U16 OBSSScanActivityThreshold;
8083
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308084 tANI_U8 selfStaIdx;
8085 tANI_U8 bssIdx;
8086 tANI_U8 fortyMHZIntolerent;
8087 tANI_U8 channelCount;
8088 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
8089 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008090
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308091 tANI_U16 ieFieldLen;
8092 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
8093}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
8094
8095typedef PACKED_PRE struct PACKED_POST
8096{
8097 tHalMsgHeader header;
8098 tHT40ObssScanIndType scanHT40ObssScanParams;
8099} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
8100
8101/*---------------------------------------------------------------------------
8102 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
8103 *-------------------------------------------------------------------------*/
8104typedef PACKED_PRE struct PACKED_POST
8105{
8106 tHalMsgHeader header;
8107 tANI_U8 bssIdx;
8108} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05308109
8110/*---------------------------------------------------------------------------
8111 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
8112 *-------------------------------------------------------------------------*/
8113
8114typedef PACKED_PRE struct PACKED_POST
8115{
8116 /* Valid BSS Idx for beacon miss rate */
8117 tANI_U8 bssIdx;
8118
8119}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
8120
8121typedef PACKED_PRE struct PACKED_POST
8122{
8123 tHalMsgHeader header;
8124 tHalBcnMissRateReqParams bcnMissRateReqParams;
8125} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
8126
8127/*---------------------------------------------------------------------------
8128 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
8129 *-------------------------------------------------------------------------*/
8130
8131typedef PACKED_PRE struct PACKED_POST
8132{
8133 tANI_U32 status;
8134 tANI_U32 bcnMissCnt;
8135}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
8136
8137typedef PACKED_PRE struct PACKED_POST
8138{
8139 tHalMsgHeader header;
8140 tHalBcnMissRateRspParams bcnMissRateRspParams;
8141}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
8142
Selvaraj, Sridhar6c0eb3f2016-04-06 12:42:04 +05308143/*---------------------------------------------------------------------------
8144 * WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND
8145 *-------------------------------------------------------------------------*/
8146
8147typedef PACKED_PRE struct PACKED_POST
8148{
8149 tANI_U32 actionFramesBitMask;
8150 tANI_U32 reserved;
8151}tHalAllowedActionFrames, *tpHalAllowedActionFrames;
8152
8153typedef PACKED_PRE struct PACKED_POST
8154{
8155 tHalMsgHeader header;
8156 tHalAllowedActionFrames allowedActionFrames;
8157}tHalAllowedActionFramesReqInd, *tpHalAllowedActionFramesReqInd;
8158
Sunil Dutt8377a382014-05-26 21:18:04 +05308159/*--------------------------------------------------------------------------
8160* WLAN_HAL_LL_SET_STATS_REQ
8161*---------------------------------------------------------------------------*/
8162
8163typedef PACKED_PRE struct PACKED_POST
8164{
8165 tANI_U32 req_id;
8166 tANI_U8 sta_id;
8167 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
8168 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
8169} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
8170
8171typedef PACKED_PRE struct PACKED_POST
8172{
8173 tHalMsgHeader header;
8174 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
8175} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
8176
8177/*---------------------------------------------------------------------------
8178 WLAN_HAL_LL_SET_STATS_RSP
8179---------------------------------------------------------------------------*/
8180
8181typedef PACKED_PRE struct PACKED_POST
8182{
8183 tANI_U32 status;
8184 tANI_U32 resp_id;
8185 tANI_U8 iface_id;
8186} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
8187
8188typedef PACKED_PRE struct PACKED_POST
8189{
8190 tHalMsgHeader header;
8191 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
8192} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
8193
8194/*---------------------------------------------------------------------------
8195 WLAN_HAL_LL_GET_STATS_REQ
8196---------------------------------------------------------------------------*/
8197
8198typedef PACKED_PRE struct PACKED_POST
8199{
8200 tANI_U32 req_id;
8201 tANI_U8 sta_id;
8202 tANI_U32 param_id_mask;
8203} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
8204
8205typedef PACKED_PRE struct PACKED_POST
8206{
8207 tHalMsgHeader header;
8208 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
8209} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
8210
8211/*---------------------------------------------------------------------------
8212 WLAN_HAL_LL_GET_STATS_RSP
8213---------------------------------------------------------------------------*/
8214typedef PACKED_PRE struct PACKED_POST
8215{
8216 tANI_U32 status;
8217 tANI_U32 resp_id;
8218 tANI_U8 iface_id;
8219} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8220
8221typedef PACKED_PRE struct PACKED_POST
8222{
8223 tHalMsgHeader header;
8224 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8225} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8226
8227/*---------------------------------------------------------------------------
8228 WLAN_HAL_LL_CLEAR_STATS_REQ
8229---------------------------------------------------------------------------*/
8230typedef PACKED_PRE struct PACKED_POST
8231{
8232 tANI_U32 req_id;
8233 tANI_U8 sta_id;
8234 tANI_U32 stats_clear_req_mask;
8235 tANI_U8 stop_req;
8236} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8237
8238typedef PACKED_PRE struct PACKED_POST
8239{
8240 tHalMsgHeader header;
8241 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8242} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8243
8244/*---------------------------------------------------------------------------
8245 WLAN_HAL_LL_CLEAR_STATS_RSP
8246---------------------------------------------------------------------------*/
8247typedef PACKED_PRE struct PACKED_POST
8248{
8249 tANI_U32 status;
8250 tANI_U8 sta_id;
8251 tANI_U32 resp_id;
8252 tANI_U32 stats_clear_rsp_mask;
8253 tANI_U8 stop_req_status;
8254} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8255
8256typedef PACKED_PRE struct PACKED_POST
8257{
8258 tHalMsgHeader header;
8259 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8260} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8261
8262/*---------------------------------------------------------------------------
8263 WLAN_HAL_LL_NOTIFY_STATS
8264---------------------------------------------------------------------------*/
8265
8266typedef PACKED_PRE struct PACKED_POST
8267{
8268 tHalMsgHeader header;
8269 tANI_U32 param_id;
8270 tANI_U8 iface_id;
8271 tANI_U32 resp_id;
8272 tANI_U32 more_result_to_follow;
8273 tANI_U8 result[1];
8274} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008275
Dino Mycle108eff22014-06-10 09:36:44 +05308276/*---------------------------------------------------------------------------
8277 * WLAN_HAL_EXT_SCAN_START_REQ
8278 *-------------------------------------------------------------------------*/
8279
Dino Mycle8afbac12014-07-04 22:06:17 +05308280typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308281{
8282 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8283 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8284 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8285 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8286 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8287 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8288 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308289 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308290} tExtScanChannelBandMask;
8291
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308292#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8293#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8294
8295#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8296
8297#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8298#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8299#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8300#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8301
Dino Mycle108eff22014-06-10 09:36:44 +05308302typedef PACKED_PRE struct PACKED_POST
8303{
8304 tANI_U32 channel; // frequency
8305 tANI_U32 dwellTimeMs; // dwell time hint
8306 tANI_U8 passive; // 0 => active,
8307 // 1 => passive scan; ignored for DFS
8308}tExtScanChannelSpec, *tpExtScanChannelSpec;
8309
8310typedef PACKED_PRE struct PACKED_POST
8311 {
8312 /* bucket index, 0 based */
8313 tANI_U8 bucketId;
8314 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8315 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308316 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308317 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308318 /* This is a bit field; which defines following bits -
8319 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8320 is % full
8321 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8322 after scan
8323 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8324 (beacons/probe responses + IEs) in real time to HAL, in addition
8325 to completion events
8326 Note: To keep backward compatibility, fire completion events
8327 regardless of REPORT_EVENTS_EACH_SCAN.
8328 * REPORT_EVENTS_NO_BATCH => controls batching,
8329 0 => batching, 1 => no batching
8330 */
Dino Mycle108eff22014-06-10 09:36:44 +05308331 tANI_U8 reportEvents;
8332 /* number of channels */
8333 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308334 // new Exponential Scan params
8335 tANI_U32 max_period;
8336 tANI_U32 exponent;
8337 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308338 /* if channels to scan. In the TLV channelList[] */
8339 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8340}tExtScanBucketData, *tpExtScanBucketData;
8341
8342typedef PACKED_PRE struct PACKED_POST
8343{
8344 tANI_U32 requestId;
8345 tANI_U8 sessionId;
8346 /* Base period (milliseconds) used by scan buckets to define periodicity
8347 of the scans */
8348 tANI_U32 basePeriod;
8349 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8350 (keep the most significant, i.e. stronger RSSI) */
8351 tANI_U32 maxApPerScan;
8352 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308353 tANI_U32 reportThresholdPercent;
8354 /* in number of scans, wake up AP after these many scans */
8355 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308356 /* This will be off channel minimum time */
8357 tANI_U16 neighborScanChannelMinTime;
8358 /* This will be out off channel max time */
8359 tANI_U16 neighborScanChannelMaxTime;
8360 /* This will be the home (BSS) channel time */
8361 tANI_U16 homeAwayTime;
8362 /* number of buckets (maximum 8) */
8363 tANI_U8 numBuckets;
8364 /* Buckets data */
8365 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8366} tHalExtScanStartReq, *tpHalExtScanStartReq;
8367
8368typedef PACKED_PRE struct PACKED_POST
8369{
8370 tHalMsgHeader header;
8371 tHalExtScanStartReq extScanStartReq;
8372}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8373
8374/*---------------------------------------------------------------------------
8375 * WLAN_HAL_EXT_SCAN_START_RSP
8376 *-------------------------------------------------------------------------*/
8377
8378typedef PACKED_PRE struct PACKED_POST
8379{
8380 tANI_U32 requestId;
8381 tANI_U32 status;
8382}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8383
8384typedef PACKED_PRE struct PACKED_POST
8385{
8386 tHalMsgHeader header;
8387 tHalExtScanStartRsp extScanStartRsp;
8388}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8389
8390/*---------------------------------------------------------------------------
8391 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8392 *-------------------------------------------------------------------------*/
8393
8394typedef PACKED_PRE struct PACKED_POST
8395{
8396 tANI_U32 requestId;
8397 tANI_U8 sessionId;
8398}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8399
8400typedef PACKED_PRE struct PACKED_POST
8401{
8402 tHalMsgHeader header;
8403 tHalExtScanGetCapReq extScanGetCapReq;
8404}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8405
8406/*---------------------------------------------------------------------------
8407 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8408 *-------------------------------------------------------------------------*/
8409
8410typedef PACKED_PRE struct PACKED_POST
8411{
8412 tANI_U32 requestId;
8413 tANI_U32 status;
8414
8415 tANI_U32 scanCacheSize;
8416 tANI_U32 scanBuckets;
8417 tANI_U32 maxApPerScan;
8418 tANI_U32 maxRssiSampleSize;
8419 tANI_U32 maxScanReportingThreshold;
8420
8421 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308422 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308423
8424 tANI_U32 maxBssidHistoryEntries;
8425}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8426
8427typedef PACKED_PRE struct PACKED_POST
8428{
8429 tHalMsgHeader header;
8430 tHalExtScanGetCapRsp extScanGetCapRsp;
8431}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8432
8433/*---------------------------------------------------------------------------
8434 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8435 *-------------------------------------------------------------------------*/
8436
8437typedef PACKED_PRE struct PACKED_POST
8438{
8439 tANI_U32 requestId;
8440 tANI_U8 sessionId;
8441 /*
8442 * 1 return cached results and flush it
8443 * 0 return cached results and do not flush
8444 */
8445 tANI_BOOLEAN flush;
8446}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8447
8448typedef PACKED_PRE struct PACKED_POST
8449{
8450 tHalMsgHeader header;
8451 tHalExtScanGetScanReq getScanReq;
8452}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8453
8454/*---------------------------------------------------------------------------
8455 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8456 *-------------------------------------------------------------------------*/
8457
8458typedef PACKED_PRE struct PACKED_POST
8459{
8460 tANI_U32 requestId;
8461 tANI_U32 status;
8462}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8463
8464typedef PACKED_PRE struct PACKED_POST
8465{
8466 tHalMsgHeader header;
8467 tHalExtScanGetScanRsp getScanRsp;
8468}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8469
8470/*---------------------------------------------------------------------------
8471 * WLAN_HAL_EXT_SCAN_RESULT_IND
8472 *-------------------------------------------------------------------------*/
8473
8474typedef PACKED_PRE struct PACKED_POST
8475{
8476 tANI_U64 ts; // time of discovery
8477 tANI_U8 ssid[32+1]; // null terminated SSID
8478 tSirMacAddr bssid; // BSSID
8479 tANI_U32 channel; // channel frequency in MHz
8480 tANI_S32 rssi; // RSSI in dBm
8481 tANI_U32 rtt; // RTT in nanoseconds - not expected
8482 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308483 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308484 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308485 tANI_U16 ieLength; // size of the ie_data blob
8486 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308487} tHalExtScanResultParams, *tpHalExtScanResultParams;
8488
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308489/* Get the GSCAN cached scan results */
8490typedef struct {
8491 tANI_U16 scan_id; // a unique identifier for the scan unit
8492 tANI_U8 flags; // a bitmask with additional
8493 // information about scan
8494 tANI_U8 num_results; // number of bssids retrieved by the scan
8495 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8496 // scan results - one for each bssid
8497} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8498
Dino Mycle108eff22014-06-10 09:36:44 +05308499typedef PACKED_PRE struct PACKED_POST
8500{
8501 tHalMsgHeader header;
8502 tANI_U32 requestId;
8503 tANI_U32 scanResultSize;
8504 tANI_BOOLEAN moreData;
8505 tANI_U8 extScanResult[1];
8506}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8507
8508/*---------------------------------------------------------------------------
8509 * WLAN_HAL_EXT_SCAN_STOP_REQ
8510 *-------------------------------------------------------------------------*/
8511
8512typedef PACKED_PRE struct PACKED_POST
8513{
8514 tANI_U32 requestId;
8515 tANI_U8 sessionId;
8516}tHalExtScanStopReq, *tpHalExtScanStopReq;
8517
8518typedef PACKED_PRE struct PACKED_POST
8519{
8520 tHalMsgHeader header;
8521 tHalExtScanStopReq extScanStopReq;
8522}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8523
8524/*---------------------------------------------------------------------------
8525 * WLAN_HAL_EXT_SCAN_STOP_RSP
8526 *-------------------------------------------------------------------------*/
8527
8528typedef PACKED_PRE struct PACKED_POST
8529{
8530 tANI_U32 requestId;
8531 tANI_U32 status;
8532}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8533
8534typedef PACKED_PRE struct PACKED_POST
8535{
8536 tHalMsgHeader header;
8537 tHalExtScanStopRsp extScanStopRsp;
8538}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8539
8540/*---------------------------------------------------------------------------
8541 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8542 *-------------------------------------------------------------------------*/
8543
Dino Mycle8afbac12014-07-04 22:06:17 +05308544typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308545{
8546 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8547 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308548 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308549} tHalExtScanProgressEventType;
8550
8551typedef PACKED_PRE struct PACKED_POST
8552{
8553 tANI_U32 requestId;
8554 tANI_U32 status;
8555 tHalExtScanProgressEventType extScanEventType;
8556}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8557
8558typedef PACKED_PRE struct PACKED_POST
8559{
8560 tHalMsgHeader header;
8561 tHalExtScanProgressInd extScanProgressInd;
8562}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8563
8564/*---------------------------------------------------------------------------
8565 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8566 *-------------------------------------------------------------------------*/
8567
8568typedef PACKED_PRE struct PACKED_POST
8569{
8570 tANI_U32 requestId;
8571 tANI_U32 numOfScanResAvailable;
8572}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8573
8574typedef PACKED_PRE struct PACKED_POST
8575{
8576 tHalMsgHeader header;
8577 tHalExtScanResAvailableInd extScanResAvailableInd;
8578}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8579
Dino Mycle108eff22014-06-10 09:36:44 +05308580typedef PACKED_PRE struct PACKED_POST
8581{
8582 /* AP BSSID */
8583 tSirMacAddr bssid;
8584 /* low threshold - used in L for significant_change - not used in L for
8585 hotlist*/
8586 tANI_S32 lowRssiThreshold;
8587 /* high threshold - used in L for significant rssi - used in L for hotlist */
8588 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308589} tApThresholdParams, *tpApThresholdParams;
8590
Dino Mycle108eff22014-06-10 09:36:44 +05308591/*---------------------------------------------------------------------------
8592 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8593 *-------------------------------------------------------------------------*/
8594
8595typedef PACKED_PRE struct PACKED_POST
8596{
8597 tANI_U32 requestId;
8598 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308599 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308600 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308601 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308602 // hotlist APs
8603 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8604} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8605
8606typedef PACKED_PRE struct PACKED_POST
8607{
8608 tHalMsgHeader header;
8609 tHalBssidHotlistSetReq bssidHotlistSetReq;
8610}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8611
8612/*---------------------------------------------------------------------------
8613 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8614 *-------------------------------------------------------------------------*/
8615
8616typedef PACKED_PRE struct PACKED_POST
8617{
8618 tANI_U32 requestId;
8619 tANI_U32 status;
8620}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8621
8622typedef PACKED_PRE struct PACKED_POST
8623{
8624 tHalMsgHeader header;
8625 tHalHotlistSetRsp hotlistSetRsp;
8626}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8627
8628/*---------------------------------------------------------------------------
8629 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8630 *-------------------------------------------------------------------------*/
8631
8632typedef PACKED_PRE struct PACKED_POST
8633{
8634 tANI_U32 requestId;
8635}tHalHotlistResetReq, *tpHalHotlistResetReq;
8636
8637typedef PACKED_PRE struct PACKED_POST
8638{
8639 tHalMsgHeader header;
8640 tHalHotlistResetReq hotlistResetReq;
8641}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8642
8643/*---------------------------------------------------------------------------
8644 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8645 *-------------------------------------------------------------------------*/
8646
8647typedef PACKED_PRE struct PACKED_POST
8648{
8649 tANI_U32 requestId;
8650 tANI_U32 status;
8651}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8652
8653typedef PACKED_PRE struct PACKED_POST
8654{
8655 tHalMsgHeader header;
8656 tHalHotlistResetRsp hotlistResetRsp;
8657}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8658
8659/*---------------------------------------------------------------------------
8660 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8661 *-------------------------------------------------------------------------*/
8662
8663typedef PACKED_PRE struct PACKED_POST
8664{
8665 tHalMsgHeader header;
8666 tANI_U32 requestId;
8667 tANI_U32 numHotlistBss;
8668 tANI_BOOLEAN moreData;
8669 tANI_U8 bssHotlist[1];
8670}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8671
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308672/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308673 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8674 *-------------------------------------------------------------------------*/
8675
8676typedef PACKED_PRE struct PACKED_POST
8677{
8678 /* SSID */
8679 char ssid [32+1];
8680 /* low threshold - used in L for significant_change - not used in L for
8681 hotlist*/
8682 tANI_S32 lowRssiThreshold;
8683 /* high threshold - used in L for significant rssi - used in L for hotlist */
8684 tANI_S32 highRssiThreshold;
8685 /* band */
8686 tANI_U32 band;
8687 } tSsidThresholdParams, *tpSsidThresholdParams;
8688
8689
8690typedef PACKED_PRE struct PACKED_POST
8691{
8692 tANI_U32 requestId;
8693 tANI_U8 sessionId;
8694 tANI_U32 lostSsidSampleSize;
8695 // number of hotlist SSIDs
8696 tANI_U32 numSsid;
8697 // hotlist SSIDs
8698 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8699} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8700
8701typedef PACKED_PRE struct PACKED_POST
8702{
8703 tHalMsgHeader header;
8704 tHalSsidHotlistSetReq ssidHotlistSetReq;
8705}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8706
8707/*---------------------------------------------------------------------------
8708 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8709 *-------------------------------------------------------------------------*/
8710typedef PACKED_PRE struct PACKED_POST
8711{
8712 tANI_U32 requestId;
8713 tANI_U32 status;
8714}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8715
8716typedef PACKED_PRE struct PACKED_POST
8717{
8718 tHalMsgHeader header;
8719 tHalSsidHotlistSetRsp hotlistSetRsp;
8720}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8721
8722/*---------------------------------------------------------------------------
8723 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8724 *-------------------------------------------------------------------------*/
8725
8726typedef PACKED_PRE struct PACKED_POST
8727{
8728 tANI_U32 requestId;
8729}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8730
8731typedef PACKED_PRE struct PACKED_POST
8732{
8733 tHalMsgHeader header;
8734 tHalSsidHotlistResetReq hotlistResetReq;
8735}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8736
8737/*---------------------------------------------------------------------------
8738 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8739 *-------------------------------------------------------------------------*/
8740
8741typedef PACKED_PRE struct PACKED_POST
8742{
8743 tANI_U32 requestId;
8744 tANI_U32 status;
8745}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8746
8747typedef PACKED_PRE struct PACKED_POST
8748{
8749 tHalMsgHeader header;
8750 tHalSsidHotlistResetRsp hotlistResetRsp;
8751}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8752
8753/*---------------------------------------------------------------------------
8754 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8755 *-------------------------------------------------------------------------*/
8756
8757typedef PACKED_PRE struct PACKED_POST
8758{
8759 tHalMsgHeader header;
8760 tANI_U32 requestId;
8761 tANI_BOOLEAN ssid_found;
8762 tANI_U32 numHotlistSsid;
8763 tANI_BOOLEAN moreData;
8764 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8765}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8766
8767/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308768 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8769 *-------------------------------------------------------------------------*/
8770
8771typedef PACKED_PRE struct PACKED_POST
8772{
8773 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8774 tANI_U32 reserved; //reserved for future use
8775}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8776
8777typedef PACKED_PRE struct PACKED_POST
8778{
8779 tHalMsgHeader header;
8780 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8781}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8782
8783/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308784 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8785 *--------------------------------------------------------------------------*/
8786typedef PACKED_PRE struct PACKED_POST
8787{
8788 tANI_U8 macAddr[6];
8789 tANI_U32 reserved1;
8790 tANI_U32 reserved2;
8791}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8792
8793typedef PACKED_PRE struct PACKED_POST
8794{
8795 tHalMsgHeader header;
8796 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8797} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8798
8799/*---------------------------------------------------------------------------
8800* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8801*-------------------------------------------------------------------------*/
8802
8803typedef PACKED_PRE struct PACKED_POST
8804{
8805 tANI_U32 status;
8806 tANI_U32 reserved1;
8807} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8808
8809typedef PACKED_PRE struct PACKED_POST
8810{
8811 tHalMsgHeader header;
8812 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8813} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308814/*---------------------------------------------------------------------------
8815 *WLAN_HAL_GET_FRAME_LOG_REQ
8816 *--------------------------------------------------------------------------*/
8817typedef PACKED_PRE struct PACKED_POST
8818{
8819 tANI_U8 flags;
8820}tGetFrameLogReqType, * tpGetFrameLogReqType;
8821
8822typedef PACKED_PRE struct PACKED_POST
8823{
8824 tHalMsgHeader header;
8825 tGetFrameLogReqType tGetFrameLogReqParams;
8826} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8827
8828/*---------------------------------------------------------------------------
8829 * WLAN_HAL_GET_FRAME_LOG_RSP
8830 *-------------------------------------------------------------------------*/
8831typedef PACKED_PRE struct PACKED_POST
8832{
8833 tANI_U32 status;
8834} tGetFrameLogResp, * tpGetFrameLogResp;
8835
8836typedef PACKED_PRE struct PACKED_POST
8837{
8838 tHalMsgHeader header;
8839 tGetFrameLogResp tGetFrameLogRespParams;
8840} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8841
8842/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308843 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8844 *-------------------------------------------------------------------------*/
8845typedef PACKED_PRE struct PACKED_POST
8846{
8847 tANI_U32 reasonCode;
8848}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8849
8850typedef PACKED_PRE struct PACKED_POST
8851{
8852 tHalMsgHeader header;
8853 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8854}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8855
8856/*---------------------------------------------------------------------------
8857 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8858 *-------------------------------------------------------------------------*/
8859typedef PACKED_PRE struct PACKED_POST
8860{ tANI_U32 status;
8861}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8862
8863typedef PACKED_PRE struct PACKED_POST
8864{
8865 tHalMsgHeader header;
8866 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8867}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8868
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308869/*---------------------------------------------------------------------------
8870 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8871 *-------------------------------------------------------------------------*/
8872typedef PACKED_PRE struct PACKED_POST
8873{
8874 tANI_U8 bssIdx;
8875 tANI_U8 rssi;
8876 tSirMacAddr selfMacAddr;
8877 tANI_U32 linkFlCnt;
8878 tANI_U32 linkFlTx;
8879 tANI_U32 lastDataRate;
8880 tANI_U32 rsvd1;
8881 tANI_U32 rsvd2;
8882}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8883
8884typedef PACKED_PRE struct PACKED_POST
8885{
8886 tHalMsgHeader header;
8887 tHalLostLinkParametersIndParams lostLinkParameters;
8888}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308889
8890
8891/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308892 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308893 *--------------------------------------------------------------------------*/
8894typedef PACKED_PRE struct PACKED_POST
8895{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308896 /* BIT0 - enable frame logging
8897 * BIT1 - enableBMUHWtracing
8898 * BIT2 - enableQXDMlogging
8899 * BIT3 - enableUElogDpuTxp
8900 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308901 tANI_U8 enableFlag;
8902 tANI_U8 frameType;
8903 tANI_U8 frameSize;
8904 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308905 /* Host mem address to be used as logmailbox */
8906 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308907 /* firmware will wakeup the host to send logs always */
8908 tANI_U8 continuousFrameLogging;
8909 /* Logging mail box version */
8910 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308911 /* Max ring size in firmware to log msgs when host is suspended state */
8912 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308913 /* when firmware log reaches this threshold and
8914 * if host is awake it will push the logs.
8915 */
8916 tANI_U8 minLogBuffSize;
8917 /* Reserved for future purpose */
8918 tANI_U32 reserved0;
8919 tANI_U32 reserved1;
8920 tANI_U32 reserved2;
8921}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308922
8923typedef PACKED_PRE struct PACKED_POST
8924{
8925 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308926 tFWLoggingInitReqType tFWLoggingInitReqParams;
8927} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308928
8929/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308930 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308931 *-------------------------------------------------------------------------*/
8932typedef PACKED_PRE struct PACKED_POST
8933{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308934 tANI_U32 status;
8935 /* FW mail box address */
8936 tANI_U64 logMailBoxAddr;
8937 /* Logging mail box version */
8938 tANI_U8 logMailBoxVer;
8939 /* Qshrink is enabled */
8940 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308941 /* fw_dump_max_size is used to tell fwr mem dump size */
8942 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308943 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308944 tANI_U32 reserved1;
8945 tANI_U32 reserved2;
8946} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308947
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05308948
8949typedef PACKED_PRE struct PACKED_POST {
8950 tANI_U32 request_id;
8951 tSirMacAddr bssId;
8952 tANI_S8 min_rssi;
8953 tANI_S8 max_rssi;
8954} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
8955
8956typedef PACKED_PRE struct PACKED_POST
8957{
8958 tHalMsgHeader header;
8959 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
8960}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
8961
8962//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
8963typedef PACKED_PRE struct PACKED_POST {
8964 tANI_U32 request_id;
8965 tANI_U32 status;
8966} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
8967
8968typedef PACKED_PRE struct PACKED_POST
8969{
8970 tHalMsgHeader header;
8971 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
8972}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
8973
8974//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
8975typedef PACKED_PRE struct PACKED_POST
8976{
8977 tANI_U32 request_id;
8978 tSirMacAddr bssId;
8979 tANI_S8 rssi;
8980} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
8981
8982typedef PACKED_PRE struct PACKED_POST
8983{
8984 tHalMsgHeader header;
8985 tHalRssiMonitorIndParams RssiMonitorIndParams;
8986}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
8987
8988
8989//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
8990typedef PACKED_PRE struct PACKED_POST {
8991 tANI_U32 request_id;
8992 tSirMacAddr bssId;
8993} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
8994
8995typedef PACKED_PRE struct PACKED_POST
8996{
8997 tHalMsgHeader header;
8998 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
8999}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
9000
9001//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
9002typedef PACKED_PRE struct PACKED_POST {
9003 tANI_U32 request_id;
9004 tANI_U32 status;
9005} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
9006
9007typedef PACKED_PRE struct PACKED_POST
9008{
9009 tHalMsgHeader header;
9010 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
9011}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
9012
9013
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309014typedef PACKED_PRE struct PACKED_POST
9015{
9016 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309017 tFWLoggingInitResp tFWLoggingInitRespParams;
9018} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
9019
9020/*---------------------------------------------------------------------------
Kapil Guptac1043632016-06-25 00:23:30 +05309021 * WLAN_HAL_SET_PER_ROAM_CONFIG_REQ
9022 *---------------------------------------------------------------------------*/
9023
9024typedef PACKED_PRE struct PACKED_POST {
9025 tANI_U32 request_id;
9026 tANI_U32 isPERRoamCCAEnabled;
9027 tANI_U32 rateUpThreshold;
9028 tANI_U32 rateDownThreshold;
9029 tANI_U32 waitPeriodForNextPERScan;
9030 tANI_U32 PERtimerThreshold;
9031 tANI_U32 PERroamTriggerPercent;
Kapil Guptaffe21522016-08-29 12:33:00 +05309032 tANI_S16 PERRoamFullScanThreshold;
9033 tANI_U16 reserved;
Kapil Guptac1043632016-06-25 00:23:30 +05309034} tPerRoamConfigParams, * tpPerRoamConfigParams;
9035
9036typedef PACKED_PRE struct PACKED_POST
9037{
9038 tHalMsgHeader header;
9039 tPerRoamConfigParams perRoamConfigParams;
9040} tSetPerRoamConfigReq, * tpSetPerRoamConfigReq;
9041
9042/*---------------------------------------------------------------------------
9043 * WLAN_HAL_SET_PER_ROAM_CONFIG_RSP
9044 *---------------------------------------------------------------------------*/
9045
9046typedef PACKED_PRE struct PACKED_POST
9047{
9048 /* Success or Failure */
9049 tANI_U32 status;
9050} tConfigPerRoamRspParams, * tpConfigPerRoamRspParams;
9051
9052typedef PACKED_PRE struct PACKED_POST
9053{
9054 tHalMsgHeader header;
9055 tConfigPerRoamRspParams configPerRoamRspParams;
9056} tSetPerRoamConfigRsp, * tpSetPerRoamConfigRsp;
9057
9058/*---------------------------------------------------------------------------
9059 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ
9060 *---------------------------------------------------------------------------*/
9061
9062typedef PACKED_PRE struct PACKED_POST {
9063 bool roamScanReq;
9064} tStartRoamScanTriggerParams, * tpStartRoamScanTriggerParams;
9065
9066typedef PACKED_PRE struct PACKED_POST {
9067
9068 tHalMsgHeader header;
9069 tStartRoamScanTriggerParams startRoamScanTriggerParams;
9070} tStartRoamScanReq, *tpStartRoamScanReq;
9071
9072/*---------------------------------------------------------------------------
9073 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP
9074 *---------------------------------------------------------------------------*/
9075
9076typedef PACKED_PRE struct PACKED_POST
9077{
9078 /* Success /Failure / Nil result */
9079 tANI_U32 status;
9080} tConfigRoamScanRspParams, * tpConfigRoamScanRspParams;
9081
9082typedef PACKED_PRE struct PACKED_POST
9083{
9084 tHalMsgHeader header;
9085 tConfigRoamScanRspParams configRoamScanRspParams;
9086} tSetRoamScanConfigRsp, * tpSetRoamScanConfigRsp;
9087
9088
9089#define PER_ROAM_MAX_AP_CNT 30
9090#define PER_ROAM_MAX_CANDIDATE_CNT 15
9091
9092/* Candidate Information to be shared in the Candidate Indication,
9093 * similar to what is sent in legacy roaming with following additional info
9094 */
9095
9096typedef PACKED_PRE struct PACKED_POST {
9097 tANI_U8 channelNumber;
9098 tANI_U8 channelCCA;
9099 tANI_U8 otherApCount;
9100 tANI_S8 otherApRssi[PER_ROAM_MAX_AP_CNT];
9101} tCandidateChannelInfo, * tpCandidateChannelInfo;
9102
9103typedef PACKED_PRE struct PACKED_POST {
9104 tANI_U32 candidateCount;
9105 tCandidateChannelInfo channelInfo[PER_ROAM_MAX_CANDIDATE_CNT];
9106} tPerRoamScanResult, * tpPerRoamScanResult;
9107
9108
9109/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309110 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
9111 *-------------------------------------------------------------------------*/
9112typedef PACKED_PRE struct PACKED_POST
9113{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05309114 tANI_U16 status;
9115 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309116 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9117 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9118} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
9119
9120typedef PACKED_PRE struct PACKED_POST
9121{
9122 tHalMsgHeader header;
9123 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
9124} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
9125
9126/*---------------------------------------------------------------------------
Kapil Guptae667f952016-12-20 18:23:27 +05309127 * WLAN_HAL_APFIND_CMDID
9128 * ---------------------------------------------------------------------------*/
9129
9130#define MAX_ARRAY_SIZE 1000
9131typedef PACKED_PRE struct PACKED_POST
9132{
9133 tANI_U16 msg_version:4;
9134 tANI_U16 msg_id:12;
9135 tANI_U16 msg_len:16;
9136 tANI_U16 handle;
9137 tANI_U16 transaction_id;
9138} tApfindMsgHeader, *tpApfindMsgHeader;
9139
9140typedef PACKED_PRE struct PACKED_POST
9141{
9142 tANI_U16 type;
9143 tANI_U16 length;
9144 tANI_U8* value;
9145} tApfindTlv, *tpApfindTlv;
9146
9147typedef PACKED_PRE struct PACKED_POST
9148{
9149 tApfindMsgHeader apFindHeader;
9150 tANI_U8 ptlv[MAX_ARRAY_SIZE];
9151} tQRFPrefNetwListParams, *tpQRFPrefNetwListParams;
9152
9153typedef enum
9154{
9155 APFIND_MSG_ID_ERROR_RSP = 0,
9156 APFIND_MSG_ID_ENABLE_REQ = 1,
9157 APFIND_MSG_ID_SET_SSID = 2,
9158 APFIND_MSG_ID_SET_MAC = 3,
9159 APFIND_MSG_ID_SET_PARAMS = 4,
9160} tApfindMsgId;
9161
9162typedef PACKED_PRE struct PACKED_POST
9163{
9164 tHalMsgHeader header;
9165 tQRFPrefNetwListParams qRFprefNetwListParams;
9166} tQRFSetPrefNetwListReq, *tpQRFSetPrefNetwListReq;
9167
9168#define QRF_MAX_SUPPORTED_NETWORKS 10
9169
9170typedef PACKED_PRE struct PACKED_POST {
9171 /*Network that was found with the highest RSSI*/
9172 tSirMacSSid ssId;
9173 /*Indicates the RSSI */
9174 tANI_U8 rssi;
9175 /* The MPDU frame length of a beacon or probe rsp.
9176 * data is the start of the frame
9177 */
9178 tANI_U16 frameLength;
9179} tQrfNetwFoundParam, *tpQrfNetwFoundParam;
9180
9181typedef PACKED_PRE struct PACKED_POST {
9182 uint8 netwCount;
9183 tQrfNetwFoundParam qrfNetwParams[QRF_MAX_SUPPORTED_NETWORKS];
9184} tQrfPrefNetwFoundParams, * tpQrfPrefNetwFoundParams;
9185
9186/*
9187 * Preferred network found indication
9188 */
9189typedef PACKED_PRE struct PACKED_POST {
9190 tHalMsgHeader header;
9191 tQrfPrefNetwFoundParams qrfPrefNetwFoundParams;
9192} tQrfPrefNetwFoundInd, *tpQrfPrefNetwFoundInd;
9193
9194
9195/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309196 * Logging mail box structure
9197 *-------------------------------------------------------------------------*/
9198
9199#define MAILBOX_VERSION_V1 0x1
9200
9201typedef PACKED_PRE struct PACKED_POST
9202{
9203 /* Logging mail box version */
9204 tANI_U8 logMbVersion;
9205 /* Current logging buffer address */
9206 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9207 /* Current logging buffer length */
9208 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9209 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
9210 tANI_U16 reasonCode;
9211 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
9212 tANI_U8 logType;
9213 /* Indicate if Last segment of log is received*/
9214 tANI_BOOLEAN done;
9215}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05309216
Katya Nigamf0511f62015-05-05 16:40:57 +05309217/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05309218 *WLAN_HAL_FW_MEMORY_DUMP_REQ
9219 *--------------------------------------------------------------------------*/
9220typedef PACKED_PRE struct PACKED_POST
9221{
9222 tANI_U32 reserved;
9223}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
9224
9225typedef PACKED_PRE struct PACKED_POST
9226{
9227 tHalMsgHeader header;
9228 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
9229} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
9230
9231/*---------------------------------------------------------------------------
9232 * WLAN_HAL_FW_MEMORY_DUMP_RSP
9233 *-------------------------------------------------------------------------*/
9234typedef PACKED_PRE struct PACKED_POST
9235{
9236 tANI_U32 status;
9237} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
9238
9239typedef PACKED_PRE struct PACKED_POST
9240{
9241 tHalMsgHeader header;
9242 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
9243} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
9244
9245
9246/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05309247* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
9248*-------------------------------------------------------------------------*/
9249
9250/* only 1 filter is supported as of now */
9251#define NUM_FILTERS_SUPPORTED 1
9252
9253typedef PACKED_PRE struct PACKED_POST
9254{
9255 tSirMacAddr macAddr;
9256 tANI_U8 isA1filteringNeeded;
9257 tANI_U8 isA2filteringNeeded;
9258 tANI_U8 isA3filteringNeeded;
9259}tHalMacFilter, *tpHalMacFilter;
9260
9261typedef PACKED_PRE struct PACKED_POST
9262{
9263 tANI_U8 channelNumber;
9264 ePhyChanBondState cbState;
9265
9266 tANI_U32 maxAmpduLen;
9267 tANI_U32 maxMpduInAmpduLen;
9268
9269 tANI_U8 crcCheckEnabled;
9270
9271 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
9272 tANI_U8 numMacFilters;
9273 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
9274
9275 /* Each bit position maps to IEEE convention of typeSubtype */
9276 tANI_U64 typeSubtypeBitmap;
9277
9278 tANI_U64 reserved;
9279
9280}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
9281
9282typedef PACKED_PRE struct PACKED_POST
9283{
9284 tHalMsgHeader header;
9285 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
9286}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
9287
9288
9289/*---------------------------------------------------------------------------
9290* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
9291*-------------------------------------------------------------------------*/
9292
9293typedef PACKED_PRE struct PACKED_POST
9294{
9295 tANI_U32 status;
9296}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
9297
9298typedef PACKED_PRE struct PACKED_POST
9299{
9300 tHalMsgHeader header;
9301 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
9302}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
9303
9304/*---------------------------------------------------------------------------
9305* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
9306*-------------------------------------------------------------------------*/
9307
9308typedef PACKED_PRE struct PACKED_POST
9309{
9310 tHalMsgHeader header;
9311 tANI_U8 resetConfiguration;
9312}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
9313
9314/*---------------------------------------------------------------------------
9315* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
9316*-------------------------------------------------------------------------*/
9317
9318typedef PACKED_PRE struct PACKED_POST
9319{
9320 tANI_U32 status;
9321}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
9322
9323typedef PACKED_PRE struct PACKED_POST
9324{
9325 tHalMsgHeader header;
9326 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
9327}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
9328
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05309329typedef PACKED_PRE struct PACKED_POST
9330{
9331 tANI_U8 status;
9332}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
9333
Arun Khandavalliafc16432015-10-16 20:11:31 +05309334typedef PACKED_PRE struct PACKED_POST
9335{
9336 tANI_U8 paramType;
9337 tANI_U32 paramValue;
9338 tSirMacAddr bssid;
9339} tSetWifiConfigParams, *tpSetWifiConfigParams;
9340
9341typedef PACKED_PRE struct PACKED_POST
9342{
9343 tHalMsgHeader header;
9344 tSetWifiConfigParams wifiConfigParams;
9345} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
9346
9347typedef PACKED_PRE struct PACKED_POST {
9348 tANI_U32 status;
9349} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
9350
9351typedef PACKED_PRE struct PACKED_POST
9352{
9353 tHalMsgHeader header;
9354
9355 tHalSetWifiConfigRspParams setWifiConfigRspParams;
9356} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
9357
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05309358/*---------------------------------------------------------------------------
9359* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
9360*-------------------------------------------------------------------------*/
9361typedef PACKED_PRE struct PACKED_POST
9362{
9363 tANI_U32 reserved;
9364} tHalAntennaDiversitySelectionReqParams, *tpHalAntennaDiversitySelectionReqParams;
9365
9366typedef PACKED_PRE struct PACKED_POST
9367{
9368 tHalMsgHeader header;
9369 tHalAntennaDiversitySelectionReqParams AntDivSelReqParams;
9370}tHalAntennaDiversitySelectionReqMsg;
9371
9372/*---------------------------------------------------------------------------
9373* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP
9374*-------------------------------------------------------------------------*/
9375
9376typedef PACKED_PRE struct PACKED_POST
9377{
9378 tANI_U16 status;
9379 tANI_U32 selectedAntennaId;
9380 tANI_U32 reserved;
9381} tHalAntennaDiversitySelectionRspParams, *tpHalAntennaDiversitySelectionRspParams;
9382
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +05309383/* WDI_MODIFY_ROAM_PARAMS_IND */
9384typedef PACKED_PRE struct PACKED_POST {
9385 tANI_U8 param;
9386 tANI_U32 value;
9387} tHalModifyRoamParamsIndParams, *tpHalModifyRoamParamsIndParams;
9388
9389typedef PACKED_PRE struct PACKED_POST
9390{
9391 tHalMsgHeader header;
9392 tHalModifyRoamParamsIndParams modifyRoamParamsReqParams;
9393} tHalModifyRoamParamsInd, *tpHalModifyRoamParamsInd;
9394
Agrawal Ashishc6aa0132016-12-09 15:59:29 +05309395typedef PACKED_PRE struct PACKED_POST
9396{
9397 tSirMacAddr selfMacAddr;
9398 tANI_U32 enable;
9399 tSirMacSSid ssId;
9400 tANI_U32 rsn_authmode;
9401 tANI_U32 rsn_ucastcipherset;
9402 tANI_U32 rsn_mcastcipherset;
9403 tANI_U32 rsn_mcastmgmtcipherset;
9404 tANI_U32 channel;
9405 tANI_U32 psk_len;
9406 tANI_U8 psk[1];
9407} tSapOffloadEnableMsg, *tpSapOffloadEnableMsg;
9408
9409typedef PACKED_PRE struct PACKED_POST
9410{
9411 tHalMsgHeader header;
9412 tSapOffloadEnableMsg SapOffloadEnableMsg;
9413} tHalSapoffloadEnable, *tpHalSapoffloadEnable;
9414
Anurag Chouhan9b3383a2016-12-13 22:29:55 +05309415/*---------------------------------------------------------------------------
9416 * WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ
9417 *--------------------------------------------------------------------------*/
9418typedef PACKED_PRE struct PACKED_POST
9419{
9420 tANI_U8 bss_idx;
9421 tANI_U32 enable;
9422 tANI_U32 srv_ipv4; /* server IP */
9423 tANI_U32 start_lsb; /* starting address assigned to client */
9424 tANI_U32 num_client; /* number of clients we support */
9425} hal_dhcp_srv_offload_req_param_t, *hal_dhcp_srv_offload_req_params;
9426
9427typedef PACKED_PRE struct PACKED_POST
9428{
9429 tHalMsgHeader header;
9430 hal_dhcp_srv_offload_req_param_t dhcp_srv_offload_req_params;
9431} hal_dhcp_srv_offload_req_msg_t;
9432
9433/*---------------------------------------------------------------------------
9434 * WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP
9435 *--------------------------------------------------------------------------*/
9436typedef PACKED_PRE struct PACKED_POST
9437{
9438 tANI_U32 status;
9439} hal_dhcp_srv_offload_rsp_param_t, *hal_dhcp_srv_offload_rsp_params;
9440
9441typedef PACKED_PRE struct PACKED_POST
9442{
9443 tHalMsgHeader header;
9444 hal_dhcp_srv_offload_rsp_param_t dhcp_srv_offload_rsp_params;
9445} hal_dhcp_srv_offload_rsp_msg_t, *hal_dhcp_srv_offload_rsp_msg;
9446
Anurag Chouhan9c3ddc72016-12-16 13:12:13 +05309447/*---------------------------------------------------------------------------
9448 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ
9449 *--------------------------------------------------------------------------*/
9450typedef PACKED_PRE struct PACKED_POST
9451{
9452 tANI_U8 bss_idx;
9453 tANI_U32 enable;
9454} hal_mdns_enable_offload_req_param_t, *hal_mdns_enable_offload_req_params;
9455
9456typedef PACKED_PRE struct PACKED_POST
9457{
9458 tHalMsgHeader header;
9459 hal_mdns_enable_offload_req_param_t mdns_enable_req_params;
9460} hal_mdns_enable_offload_req_msg_t;
9461
9462/*---------------------------------------------------------------------------
9463 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP
9464 *--------------------------------------------------------------------------*/
9465typedef PACKED_PRE struct PACKED_POST
9466{
9467 tANI_U32 status;
9468} hal_mdns_enable_offload_rsp_param_t, *hal_mdns_enable_offload_rsp_params;
9469
9470typedef PACKED_PRE struct PACKED_POST
9471{
9472 tHalMsgHeader header;
9473 hal_mdns_enable_offload_rsp_param_t mdns_enable_rsp_params;
9474} hal_mdns_enable_offload_rsp_msg_t, *hal_mdns_enable_offload_rsp_msg;
9475
9476/*---------------------------------------------------------------------------
9477 * WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ
9478 *--------------------------------------------------------------------------*/
9479typedef PACKED_PRE struct PACKED_POST
9480{
9481 tANI_U8 bss_idx;
9482 tANI_U32 type;
9483 tANI_U32 fqdn_len;
9484 tANI_U8 fqdn_data[1];
9485} hal_mdns_fqdn_offload_req_param_t, *hal_mdns_fqdn_offload_req_params;
9486
9487typedef PACKED_PRE struct PACKED_POST
9488{
9489 tHalMsgHeader header;
9490 hal_mdns_fqdn_offload_req_param_t mdns_fqdn_req_params;
9491} hal_mdns_fqdn_offload_req_msg_t;
9492
9493/*---------------------------------------------------------------------------
9494 * WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP
9495 *--------------------------------------------------------------------------*/
9496typedef PACKED_PRE struct PACKED_POST
9497{
9498 tANI_U32 status;
9499} hal_mdns_fqdn_offload_rsp_param_t, *hal_mdns_fqdn_offload_rsp_params;
9500
9501typedef PACKED_PRE struct PACKED_POST
9502{
9503 tHalMsgHeader header;
9504 hal_mdns_fqdn_offload_rsp_param_t mdns_fqdn_rsp_params;
9505} hal_mdns_fqdn_offload_rsp_msg_t, *hal_mdns_fqdn_offload_rsp_msg;
9506
9507/*---------------------------------------------------------------------------
9508 * WLAN_HAL_MDNS_RESP_OFFLOAD_REQ
9509 *--------------------------------------------------------------------------*/
9510typedef PACKED_PRE struct PACKED_POST
9511{
9512 tANI_U8 bss_idx;
9513 tANI_U32 ar_count;
9514 tANI_U32 resp_len;
9515 tANI_U8 resp_data[1];
9516} hal_mdns_resp_offload_req_param_t, *hal_mdns_resp_offload_req_params;
9517
9518typedef PACKED_PRE struct PACKED_POST
9519{
9520 tHalMsgHeader header;
9521 hal_mdns_resp_offload_req_param_t mdns_resp_req_params;
9522} hal_mdns_resp_offload_req_msg_t;
9523
9524/*---------------------------------------------------------------------------
9525 * WLAN_HAL_MDNS_RESP_OFFLOAD_RSP
9526 *--------------------------------------------------------------------------*/
9527typedef PACKED_PRE struct PACKED_POST
9528{
9529 tANI_U32 status;
9530} hal_mdns_resp_offload_rsp_param_t, *hal_mdns_resp_offload_rsp_params;
9531
9532typedef PACKED_PRE struct PACKED_POST
9533{
9534 tHalMsgHeader header;
9535 hal_mdns_resp_offload_rsp_param_t mdns_rsp_params;
9536} hal_mdns_resp_offload_rsp_msg_t, *hal_mdns_resp_offload_rsp_msg;
9537
9538/*---------------------------------------------------------------------------
9539 * WLAN_HAL_MDNS_STATS_OFFLOAD_REQ
9540 *--------------------------------------------------------------------------*/
9541typedef PACKED_PRE struct PACKED_POST
9542{
9543 tANI_U8 bss_idx;
9544} hal_mdns_stats_offload_req_param_t, *hal_mdns_stats_offload_req_params;
9545
9546typedef PACKED_PRE struct PACKED_POST
9547{
9548 tHalMsgHeader header;
9549 hal_mdns_stats_offload_req_param_t mdns_stats_req_params;
9550} hal_mdns_stats_offload_req_msg_t;
9551
9552/*---------------------------------------------------------------------------
9553 * WLAN_HAL_MDNS_STATS_OFFLOAD_RSP
9554 *--------------------------------------------------------------------------*/
9555typedef PACKED_PRE struct PACKED_POST
9556{
9557 tANI_U8 bss_idx;
9558 tANI_U32 current_ts;
9559 tANI_U32 last_query_ts;
9560 tANI_U32 last_rsp_ts;
9561 tANI_U32 tot_queries;
9562 tANI_U32 tot_matches;
9563 tANI_U32 tot_rsp;
9564 tANI_U32 status;
9565} hal_mdns_stats_offload_rsp_param_t, *hal_mdns_stats_offload_rsp_params;
9566
9567typedef PACKED_PRE struct PACKED_POST
9568{
9569 tHalMsgHeader header;
9570 hal_mdns_stats_offload_rsp_param_t mdns_stats_rsp_params;
9571} hal_mdns_stats_offload_rsp_msg_t, *hal_mdns_stats_offload_rsp_msg;
9572
Jeff Johnson295189b2012-06-20 16:38:30 -07009573#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
9574#pragma pack(pop)
9575#elif defined(__ANI_COMPILER_PRAGMA_PACK)
9576#else
9577#endif
9578
9579#endif /* _WLAN_HAL_MSG_H_ */