blob: 23b8e25232e9b43f84338da5061a0d7a66422319 [file] [log] [blame]
Dino Mycle8afbac12014-07-04 22:06:17 +05301
Abhishek Singh00b71972016-01-07 10:51:04 +05302/*
Sourav Mohapatra3629ecf2018-02-12 10:24:28 +05303 * Copyright (c) 2012-2018 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
Sreelakshmi Konamki24ebdca2017-05-29 15:48:36 +0530126#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 19
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,
Manjeet Singh4dedb502017-01-17 11:46:35 +0530623 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP = 352,
624 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP = 353,
Anurag Chouhance0f0822017-01-24 15:44:26 +0530625 /* ARP DEBUG stats*/
626 WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ = 354,
627 WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP = 355,
628 WLAN_HAL_FW_GET_ARP_STATS_REQ = 356,
629 WLAN_HAL_FW_GET_ARP_STATS_RSP = 357,
Kapil Guptae667f952016-12-20 18:23:27 +0530630
Sourav Mohapatra3629ecf2018-02-12 10:24:28 +0530631 WLAN_HAL_POWER_CONTROL_MODE_CHANGE_REQ = 358,
632 WLAN_HAL_POWER_CONTROL_MODE_CHANGE_RSP = 359,
633
Sourav Mohapatra72c2c342018-03-05 19:49:05 +0530634 WLAN_HAL_VOWIFI_IND = 360,
Ashish Kumar Dhanotiyac4c53842018-04-10 18:24:33 +0530635 WLAN_HAL_QPOWER_ENABLE_BY_HOST_IND = 361,
Ajit Vaishya4b922072020-04-18 19:17:39 +0530636 WLAN_HAL_BLACK_LIST_SSID_REQ = 362,
637 WLAN_HAL_BLACK_LIST_SSID_RSP = 363,
Dundi Ravitejaa7b31992020-09-15 23:37:55 +0530638 WLAN_HAL_HOST_SW_PTA_COEX_PARAMS_REQ = 364,
639 WLAN_HAL_HOST_SW_PTA_COEX_PARAMS_RSP = 365,
Sourav Mohapatra72c2c342018-03-05 19:49:05 +0530640
Sunil Dutt8377a382014-05-26 21:18:04 +0530641 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700642}tHalHostMsgType;
643
Jeff Johnsone7245742012-09-05 17:12:55 -0700644/* Enumeration for Version */
645typedef enum
646{
647 WLAN_HAL_MSG_VERSION0 = 0,
648 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800649 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
650 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700651}tHalHostMsgVersion;
652
Jeff Johnson295189b2012-06-20 16:38:30 -0700653/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530654typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700655{
656 eANI_BOOLEAN_FALSE = 0,
657 eANI_BOOLEAN_TRUE,
658 eANI_BOOLEAN_OFF = 0,
659 eANI_BOOLEAN_ON = 1,
660 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
661} eAniBoolean;
662
663typedef enum
664{
665 eDRIVER_TYPE_PRODUCTION = 0,
666 eDRIVER_TYPE_MFG = 1,
667 eDRIVER_TYPE_DVT = 2,
668 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
669} tDriverType;
670
671typedef enum
672{
673 HAL_STOP_TYPE_SYS_RESET,
674 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
675 HAL_STOP_TYPE_RF_KILL,
676 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
677}tHalStopType;
678
679typedef enum
680{
681 eHAL_SYS_MODE_NORMAL,
682 eHAL_SYS_MODE_LEARN,
683 eHAL_SYS_MODE_SCAN,
684 eHAL_SYS_MODE_PROMISC,
685 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700686 eHAL_SYS_MODE_ROAM_SCAN,
687 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700688 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700689 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
690} eHalSysMode;
691
692typedef enum
693{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800694 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
695 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
696 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
697 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
698 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
699 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
700 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
701 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
702 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700703 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800704 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
705} eHalChanSwitchSource;
706
707typedef enum
708{
Jeff Johnson295189b2012-06-20 16:38:30 -0700709 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
710 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
711 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
712 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700713#ifdef WLAN_FEATURE_11AC
714 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
715 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
716 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
717 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
718 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
719 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
720 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
721#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700722 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
723}ePhyChanBondState;
724
725// Spatial Multiplexing(SM) Power Save mode
726typedef enum eSirMacHTMIMOPowerSaveState
727{
728 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
729 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
730 eSIR_HT_MIMO_PS_NA = 2, // reserved
731 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
732 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
733} tSirMacHTMIMOPowerSaveState;
734
735/* each station added has a rate mode which specifies the sta attributes */
736typedef enum eStaRateMode {
737 eSTA_TAURUS = 0,
738 eSTA_TITAN,
739 eSTA_POLARIS,
740 eSTA_11b,
741 eSTA_11bg,
742 eSTA_11a,
743 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700744#ifdef WLAN_FEATURE_11AC
745 eSTA_11ac,
746#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700747 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
748} tStaRateMode, *tpStaRateMode;
749
750#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
751#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
752#define SIR_NUM_POLARIS_RATES 3 //72,96,108
753
754#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
755
756
757typedef enum eSirBssType
758{
759 eSIR_INFRASTRUCTURE_MODE,
760 eSIR_INFRA_AP_MODE, //Added for softAP support
761 eSIR_IBSS_MODE,
762 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
763 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
764 eSIR_AUTO_MODE,
765 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
766} tSirBssType;
767
768typedef enum eSirNwType
769{
770 eSIR_11A_NW_TYPE,
771 eSIR_11B_NW_TYPE,
772 eSIR_11G_NW_TYPE,
773 eSIR_11N_NW_TYPE,
774 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
775} tSirNwType;
776
777typedef tANI_U16 tSirMacBeaconInterval;
778
779#define SIR_MAC_RATESET_EID_MAX 12
780
781typedef enum eSirMacHTOperatingMode
782{
783 eSIR_HT_OP_MODE_PURE, // No Protection
784 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
785 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
786 eSIR_HT_OP_MODE_MIXED, // Protection is required
787 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
788} tSirMacHTOperatingMode;
789
Jeff Johnson295189b2012-06-20 16:38:30 -0700790/// Encryption type enum used with peer
791typedef enum eAniEdType
792{
793 eSIR_ED_NONE,
794 eSIR_ED_WEP40,
795 eSIR_ED_WEP104,
796 eSIR_ED_TKIP,
797 eSIR_ED_CCMP,
798 eSIR_ED_WPI,
799 eSIR_ED_AES_128_CMAC,
800 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
801} tAniEdType;
802
803#define WLAN_MAX_KEY_RSC_LEN 16
804#define WLAN_WAPI_KEY_RSC_LEN 16
805
806/// MAX key length when ULA is used
807#define SIR_MAC_MAX_KEY_LENGTH 32
808#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
809
810/// Enum to specify whether key is used
811/// for TX only, RX only or both
812typedef enum eAniKeyDirection
813{
814 eSIR_TX_ONLY,
815 eSIR_RX_ONLY,
816 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700817 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700818 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
819} tAniKeyDirection;
820
821typedef enum eAniWepType
822{
823 eSIR_WEP_STATIC,
824 eSIR_WEP_DYNAMIC,
825 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
826} tAniWepType;
827
828typedef enum eSriLinkState {
829
830 eSIR_LINK_IDLE_STATE = 0,
831 eSIR_LINK_PREASSOC_STATE = 1,
832 eSIR_LINK_POSTASSOC_STATE = 2,
833 eSIR_LINK_AP_STATE = 3,
834 eSIR_LINK_IBSS_STATE = 4,
835
836 /* BT-AMP Case */
837 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
838 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
839 eSIR_LINK_BTAMP_AP_STATE = 7,
840 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530841
Jeff Johnson295189b2012-06-20 16:38:30 -0700842 /* Reserved for HAL Internal Use */
843 eSIR_LINK_LEARN_STATE = 9,
844 eSIR_LINK_SCAN_STATE = 10,
845 eSIR_LINK_FINISH_SCAN_STATE = 11,
846 eSIR_LINK_INIT_CAL_STATE = 12,
847 eSIR_LINK_FINISH_CAL_STATE = 13,
848#ifdef WLAN_FEATURE_P2P
849 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530850 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700851#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700852#ifdef WLAN_FEATURE_ROAM_OFFLOAD
853 eSIR_LINK_FT_PREASSOC_STATE = 16,
854#endif
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +0530855#ifdef WLAN_FEATURE_LFR_MBB
856 eSIR_LINK_PRE_AUTH_REASSOC_STATE = 17,
857#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700858 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
859} tSirLinkState;
860
861typedef enum
862{
863 HAL_SUMMARY_STATS_INFO = 0x00000001,
864 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
865 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
866 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
867 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530868 HAL_PER_STA_STATS_INFO = 0x00000020,
869 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700870}eHalStatsMask;
871
872/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530873typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700874{
875 BTAMP_EVENT_CONNECTION_START,
876 BTAMP_EVENT_CONNECTION_STOP,
877 BTAMP_EVENT_CONNECTION_TERMINATED,
878 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
879} tBtAmpEventType;
880
881//***************************************************************
882
883
884/*******************PE Statistics*************************/
885typedef enum
886{
887 PE_SUMMARY_STATS_INFO = 0x00000001,
888 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
889 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
890 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
891 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
892 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530893 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700894 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
895}ePEStatsMask;
896
Sunil Dutt8377a382014-05-26 21:18:04 +0530897
898/******************************LINK LAYER Statitics**********************/
899
900typedef int wifi_radio;
901typedef int wifi_channel;
902typedef int wifi_tx_rate;
903
904/* channel operating width */
905typedef enum {
906 WIFI_CHAN_WIDTH_20 = 0,
907 WIFI_CHAN_WIDTH_40 = 1,
908 WIFI_CHAN_WIDTH_80 = 2,
909 WIFI_CHAN_WIDTH_160 = 3,
910 WIFI_CHAN_WIDTH_80P80 = 4,
911 WIFI_CHAN_WIDTH_5 = 5,
912 WIFI_CHAN_WIDTH_10 = 6,
913} wifi_channel_width;
914
915typedef enum {
916 WIFI_DISCONNECTED = 0,
917 WIFI_AUTHENTICATING = 1,
918 WIFI_ASSOCIATING = 2,
919 WIFI_ASSOCIATED = 3,
920 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
921 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
922} wifi_connection_state;
923
924typedef enum {
925 WIFI_ROAMING_IDLE = 0,
926 WIFI_ROAMING_ACTIVE = 1,
927} wifi_roam_state;
928
929typedef enum {
930 WIFI_INTERFACE_STA = 0,
931 WIFI_INTERFACE_SOFTAP = 1,
932 WIFI_INTERFACE_IBSS = 2,
933 WIFI_INTERFACE_P2P_CLIENT = 3,
934 WIFI_INTERFACE_P2P_GO = 4,
935 WIFI_INTERFACE_NAN = 5,
936 WIFI_INTERFACE_MESH = 6,
937 } wifi_interface_mode;
938
939#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
940#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
941#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
942#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
943#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
944#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
945
946typedef PACKED_PRE struct PACKED_POST
947{
948 wifi_interface_mode mode; // interface mode
949 tANI_U8 mac_addr[6]; // interface mac address (self)
950 wifi_connection_state state; // connection state (valid for STA, CLI only)
951 wifi_roam_state roaming; // roaming state
952 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
953 tANI_U8 ssid[33]; // null terminated SSID
954 tANI_U8 bssid[6]; // bssid
955 tANI_U8 ap_country_str[3]; // country string advertised by AP
956 tANI_U8 country_str[3]; // country string for this association
957} wifi_interface_info;
958
959/* channel information */
960typedef PACKED_PRE struct PACKED_POST
961{
962 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
963 wifi_channel center_freq; // primary 20 MHz channel
964 wifi_channel center_freq0; // center frequency (MHz) first segment
965 wifi_channel center_freq1; // center frequency (MHz) second segment
966} wifi_channel_info;
967
968/* wifi rate info */
969typedef PACKED_PRE struct PACKED_POST
970{
971 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
972 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
973 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
974 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
975 // HT/VHT it would be mcs index
976 tANI_U32 reserved :16; // reserved
977 tANI_U32 bitrate; // units of 100 Kbps
978} wifi_rate;
979
980/* channel statistics */
981typedef PACKED_PRE struct PACKED_POST
982{
983 wifi_channel_info channel; // channel
984 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
985 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
986} wifi_channel_stats;
987
988/* radio statistics */
989typedef PACKED_PRE struct PACKED_POST
990{
991 wifi_radio radio; // wifi radio (if multiple radio supported)
992 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
993 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
994 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
995 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
996 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
997 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
998 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
999 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
1000 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
1001 tANI_U32 num_channels; // number of channels
1002 wifi_channel_stats channels[1]; // channel statistics
1003} wifi_radio_stat;
1004
1005/* per rate statistics */
1006typedef PACKED_PRE struct PACKED_POST
1007{
1008 wifi_rate rate; // rate information *
1009 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
1010 tANI_U32 rx_mpdu; // number of received data pkts
1011 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
1012 tANI_U32 retries; // total number of data pkt retries *
1013 tANI_U32 retries_short; // number of short data pkt retries
1014 tANI_U32 retries_long; // number of long data pkt retries
1015} wifi_rate_stat;
1016
1017/* access categories */
1018typedef enum {
1019 WIFI_AC_VO = 0,
1020 WIFI_AC_VI = 1,
1021 WIFI_AC_BE = 2,
1022 WIFI_AC_BK = 3,
1023 WIFI_AC_MAX = 4,
1024} wifi_traffic_ac;
1025
1026/* wifi peer type */
1027typedef enum
1028{
1029 WIFI_PEER_STA,
1030 WIFI_PEER_AP,
1031 WIFI_PEER_P2P_GO,
1032 WIFI_PEER_P2P_CLIENT,
1033 WIFI_PEER_NAN,
1034 WIFI_PEER_TDLS,
1035 WIFI_PEER_INVALID,
1036} wifi_peer_type;
1037
1038/* per peer statistics */
1039typedef PACKED_PRE struct PACKED_POST
1040{
1041 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
1042 tANI_U8 peer_mac_address[6]; // mac address
1043 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
1044 tANI_U32 num_rate; // number of rates
1045 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
1046} wifi_peer_info;
1047
1048/* per access category statistics */
1049typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301050{
1051 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
1052 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
1053 tANI_U32 rx_mpdu; // number of received unicast mpdus
1054 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1055 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1056 tANI_U32 rx_mcast; // number of received multicast data packets
1057 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1058 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1059 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1060 tANI_U32 retries; // total number of data pkt retries
1061 tANI_U32 retries_short; // number of short data pkt retries
1062 tANI_U32 retries_long; // number of long data pkt retries
1063 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1064 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1065 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1066 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1067} wifi_wmm_ac_stat;
1068
Mukul Sharma03f86492015-10-20 16:10:13 +05301069typedef PACKED_PRE struct PACKED_POST
1070{
1071 tANI_U64 average_tsf_offset;
1072 tANI_U32 leaky_ap_avg_num_frames_leaked;
1073 tANI_U32 leaky_ap_guard_time;
1074 tANI_U32 leaky_ap_detected;
1075} wifi_iface_leaky_ap_info;
1076
Sunil Dutt8377a382014-05-26 21:18:04 +05301077/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1078typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301079{
1080 wifi_interface_info info; // current state of the interface
1081 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1082 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1083 tANI_U32 mgmt_action_rx; // action frames received count
1084 tANI_U32 mgmt_action_tx; // action frames transmit count
1085 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1086 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1087 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1088 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
Mukul Sharma03f86492015-10-20 16:10:13 +05301089 wifi_iface_leaky_ap_info leakyApInfo;
Sunil Dutt8377a382014-05-26 21:18:04 +05301090} wifi_iface_stat;
1091
1092/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1093typedef PACKED_PRE struct PACKED_POST
1094{
1095 tANI_U32 num_peers; // number of peers
1096 wifi_peer_info peer_info[1]; // per peer statistics
1097} wifi_peer_stat;
1098
1099/* wifi statistics bitmap for getting statistics */
1100#define WMI_LINK_STATS_RADIO 0x00000001
1101#define WMI_LINK_STATS_IFACE 0x00000002
1102#define WMI_LINK_STATS_ALL_PEER 0x00000004
1103#define WMI_LINK_STATS_PER_PEER 0x00000008
1104
1105/* wifi statistics bitmap for clearing statistics */
1106#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1107#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1108#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1109#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1110#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1111#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1112#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1113#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1114
1115
Jeff Johnson295189b2012-06-20 16:38:30 -07001116/*---------------------------------------------------------------------------
1117 Message definitons - All the messages below need to be packed
1118 ---------------------------------------------------------------------------*/
1119
1120#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1121#pragma pack(push, 1)
1122#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1123#pragma pack(1)
1124#else
1125#endif
1126
1127/// Definition for HAL API Version.
1128typedef PACKED_PRE struct PACKED_POST
1129{
1130 tANI_U8 revision;
1131 tANI_U8 version;
1132 tANI_U8 minor;
1133 tANI_U8 major;
1134} tWcnssWlanVersion, *tpWcnssWlanVersion;
1135
1136/// Definition for Encryption Keys
1137typedef PACKED_PRE struct PACKED_POST
1138{
1139 tANI_U8 keyId;
1140 tANI_U8 unicast; // 0 for multicast
1141 tAniKeyDirection keyDirection;
1142 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1143 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1144 tANI_U16 keyLength;
1145 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1146} tSirKeys, *tpSirKeys;
1147
1148
1149//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1150typedef PACKED_PRE struct PACKED_POST
1151{
1152 /*STA Index*/
1153 tANI_U16 staIdx;
1154
1155 /*Encryption Type used with peer*/
1156 tAniEdType encType;
1157
1158 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301159 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001160
1161 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1162 tANI_U8 defWEPIdx;
1163
Jeff Johnson295189b2012-06-20 16:38:30 -07001164 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301165 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1166
Jeff Johnson295189b2012-06-20 16:38:30 -07001167 /*Control for Replay Count, 1= Single TID based replay count on Tx
1168 0 = Per TID based replay count on TX */
1169 tANI_U8 singleTidRc;
1170
1171} tSetStaKeyParams, *tpSetStaKeyParams;
1172
1173
1174
1175/* 4-byte control message header used by HAL*/
1176typedef PACKED_PRE struct PACKED_POST
1177{
Jeff Johnsone7245742012-09-05 17:12:55 -07001178 tHalHostMsgType msgType:16;
1179 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001180 tANI_U32 msgLen;
1181} tHalMsgHeader, *tpHalMsgHeader;
1182
1183/* Config format required by HAL for each CFG item*/
1184typedef PACKED_PRE struct PACKED_POST
1185{
1186 /* Cfg Id. The Id required by HAL is exported by HAL
1187 * in shared header file between UMAC and HAL.*/
1188 tANI_U16 uCfgId;
1189
Dino Mycle8afbac12014-07-04 22:06:17 +05301190 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001191 * in the TLV format.*/
1192 tANI_U16 uCfgLen;
1193
1194 /* Padding bytes for unaligned address's */
1195 tANI_U16 uCfgPadBytes;
1196
1197 /* Reserve bytes for making cfgVal to align address */
1198 tANI_U16 uCfgReserve;
1199
1200 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1201 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1202} tHalCfg, *tpHalCfg;
1203
1204/*---------------------------------------------------------------------------
1205 WLAN_HAL_START_REQ
1206---------------------------------------------------------------------------*/
1207
1208typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1209{
1210 /* Drive Type - Production or FTM etc */
1211 tDriverType driverType;
1212
1213 /*Length of the config buffer*/
1214 tANI_U32 uConfigBufferLen;
1215
Dino Mycle8afbac12014-07-04 22:06:17 +05301216 /* Following this there is a TLV formatted buffer of length
1217 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001218 * The TLV is expected to be formatted like this:
1219 * 0 15 31 31+CFG_LEN-1 length-1
1220 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1221 */
1222} tHalMacStartParameters, *tpHalMacStartParameters;
1223
1224typedef PACKED_PRE struct PACKED_POST
1225{
1226 /* Note: The length specified in tHalMacStartReqMsg messages should be
1227 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1228 tHalMsgHeader header;
1229 tHalMacStartParameters startReqParams;
1230} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1231
1232/*---------------------------------------------------------------------------
1233 WLAN_HAL_START_RSP
1234---------------------------------------------------------------------------*/
1235
1236typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1237{
1238 /*success or failure */
1239 tANI_U16 status;
1240
1241 /*Max number of STA supported by the device*/
1242 tANI_U8 ucMaxStations;
1243
1244 /*Max number of BSS supported by the device*/
1245 tANI_U8 ucMaxBssids;
1246
1247 /*API Version */
1248 tWcnssWlanVersion wcnssWlanVersion;
1249
1250 /*CRM build information */
1251 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1252
1253 /*hardware/chipset/misc version information */
1254 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1255
1256} tHalMacStartRspParams, *tpHalMacStartRspParams;
1257
1258typedef PACKED_PRE struct PACKED_POST
1259{
1260 tHalMsgHeader header;
1261 tHalMacStartRspParams startRspParams;
1262} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1263
1264/*---------------------------------------------------------------------------
1265 WLAN_HAL_STOP_REQ
1266---------------------------------------------------------------------------*/
1267
1268typedef PACKED_PRE struct PACKED_POST
1269{
1270 /*The reason for which the device is being stopped*/
1271 tHalStopType reason;
1272
1273}tHalMacStopReqParams, *tpHalMacStopReqParams;
1274
1275typedef PACKED_PRE struct PACKED_POST
1276{
1277 tHalMsgHeader header;
1278 tHalMacStopReqParams stopReqParams;
1279} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1280
1281/*---------------------------------------------------------------------------
1282 WLAN_HAL_STOP_RSP
1283---------------------------------------------------------------------------*/
1284
1285typedef PACKED_PRE struct PACKED_POST
1286{
1287 /*success or failure */
1288 tANI_U32 status;
1289
1290}tHalMacStopRspParams, *tpHalMacStopRspParams;
1291
1292typedef PACKED_PRE struct PACKED_POST
1293{
1294 tHalMsgHeader header;
1295 tHalMacStopRspParams stopRspParams;
1296} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1297
1298/*---------------------------------------------------------------------------
1299 WLAN_HAL_UPDATE_CFG_REQ
1300---------------------------------------------------------------------------*/
1301
1302typedef PACKED_PRE struct PACKED_POST
1303{
1304 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1305 tANI_U32 uConfigBufferLen;
1306
Dino Mycle8afbac12014-07-04 22:06:17 +05301307 /* Following this there is a TLV formatted buffer of length
1308 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001309 * The TLV is expected to be formatted like this:
1310 * 0 15 31 31+CFG_LEN-1 length-1
1311 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1312 */
1313} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1314
1315typedef PACKED_PRE struct PACKED_POST
1316{
1317 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1318 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1319 tHalMsgHeader header;
1320 tHalUpdateCfgReqParams updateCfgReqParams;
1321} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1322
1323/*---------------------------------------------------------------------------
1324 WLAN_HAL_UPDATE_CFG_RSP
1325---------------------------------------------------------------------------*/
1326
1327typedef PACKED_PRE struct PACKED_POST
1328{
1329 /* success or failure */
1330 tANI_U32 status;
1331
1332}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1333
1334typedef PACKED_PRE struct PACKED_POST
1335{
1336 tHalMsgHeader header;
1337 tHalUpdateCfgRspParams updateCfgRspParams;
1338} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1339
1340/*---------------------------------------------------------------------------
1341 WLAN_HAL_INIT_SCAN_REQ
1342---------------------------------------------------------------------------*/
1343
1344/// Frame control field format (2 bytes)
1345typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1346{
1347
1348#ifndef ANI_LITTLE_BIT_ENDIAN
1349
1350 tANI_U8 subType :4;
1351 tANI_U8 type :2;
1352 tANI_U8 protVer :2;
1353
1354 tANI_U8 order :1;
1355 tANI_U8 wep :1;
1356 tANI_U8 moreData :1;
1357 tANI_U8 powerMgmt :1;
1358 tANI_U8 retry :1;
1359 tANI_U8 moreFrag :1;
1360 tANI_U8 fromDS :1;
1361 tANI_U8 toDS :1;
1362
1363#else
1364
1365 tANI_U8 protVer :2;
1366 tANI_U8 type :2;
1367 tANI_U8 subType :4;
1368
1369 tANI_U8 toDS :1;
1370 tANI_U8 fromDS :1;
1371 tANI_U8 moreFrag :1;
1372 tANI_U8 retry :1;
1373 tANI_U8 powerMgmt :1;
1374 tANI_U8 moreData :1;
1375 tANI_U8 wep :1;
1376 tANI_U8 order :1;
1377
1378#endif
1379
1380} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1381
1382/// Sequence control field
1383typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1384{
1385 tANI_U8 fragNum : 4;
1386 tANI_U8 seqNumLo : 4;
1387 tANI_U8 seqNumHi : 8;
1388} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1389
1390/// Management header format
1391typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1392{
1393 tSirMacFrameCtl fc;
1394 tANI_U8 durationLo;
1395 tANI_U8 durationHi;
1396 tANI_U8 da[6];
1397 tANI_U8 sa[6];
1398 tANI_U8 bssId[6];
1399 tSirMacSeqCtl seqControl;
1400} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1401
1402/// Scan Entry to hold active BSS idx's
1403typedef __ani_attr_pre_packed struct sSirScanEntry
1404{
1405 tANI_U8 bssIdx[HAL_NUM_BSSID];
1406 tANI_U8 activeBSScnt;
1407}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1408
1409typedef PACKED_PRE struct PACKED_POST {
1410
1411 /*LEARN - AP Role
1412 SCAN - STA Role*/
1413 eHalSysMode scanMode;
1414
1415 /*BSSID of the BSS*/
1416 tSirMacAddr bssid;
1417
1418 /*Whether BSS needs to be notified*/
1419 tANI_U8 notifyBss;
1420
1421 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1422 CTS to Self). Must always be a valid frame type.*/
1423 tANI_U8 frameType;
1424
1425 /*UMAC has the option of passing the MAC frame to be used for notifying
1426 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1427 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1428 frameType.*/
1429 tANI_U8 frameLength;
1430
Dino Mycle8afbac12014-07-04 22:06:17 +05301431 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001432 is non-zero. */
1433 tSirMacMgmtHdr macMgmtHdr;
1434
1435 /*Entry to hold number of active BSS idx's*/
1436 tSirScanEntry scanEntry;
1437
1438} tInitScanParams, * tpInitScanParams;
1439
1440typedef PACKED_PRE struct PACKED_POST
1441{
1442 tHalMsgHeader header;
1443 tInitScanParams initScanParams;
1444} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1445
1446typedef PACKED_PRE struct PACKED_POST {
1447
1448 /*LEARN - AP Role
1449 SCAN - STA Role*/
1450 eHalSysMode scanMode;
1451
1452 /*BSSID of the BSS*/
1453 tSirMacAddr bssid;
1454
1455 /*Whether BSS needs to be notified*/
1456 tANI_U8 notifyBss;
1457
1458 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1459 CTS to Self). Must always be a valid frame type.*/
1460 tANI_U8 frameType;
1461
1462 /*UMAC has the option of passing the MAC frame to be used for notifying
1463 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1464 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1465 frameType.*/
1466 tANI_U8 frameLength;
1467
Dino Mycle8afbac12014-07-04 22:06:17 +05301468 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001469 is non-zero. */
1470 tSirMacMgmtHdr macMgmtHdr;
1471
1472 /*Entry to hold number of active BSS idx's*/
1473 tSirScanEntry scanEntry;
1474
1475 /* Single NoA usage in Scanning */
1476 tANI_U8 useNoA;
1477
1478 /* Indicates the scan duration (in ms) */
1479 tANI_U16 scanDuration;
1480
1481} tInitScanConParams, * tpInitScanConParams;
1482
1483typedef PACKED_PRE struct PACKED_POST
1484{
1485 tHalMsgHeader header;
1486 tInitScanConParams initScanParams;
1487} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1488
1489
1490/*---------------------------------------------------------------------------
1491 WLAN_HAL_INIT_SCAN_RSP
1492---------------------------------------------------------------------------*/
1493
1494typedef PACKED_PRE struct PACKED_POST
1495{
1496 /*success or failure */
1497 tANI_U32 status;
1498
1499}tHalInitScanRspParams, *tpHalInitScanRspParams;
1500
1501typedef PACKED_PRE struct PACKED_POST
1502{
1503 tHalMsgHeader header;
1504 tHalInitScanRspParams initScanRspParams;
1505} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1506
1507/*---------------------------------------------------------------------------
1508 WLAN_HAL_START_SCAN_REQ
1509---------------------------------------------------------------------------*/
1510
Dino Mycle8afbac12014-07-04 22:06:17 +05301511typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001512{
1513 /*Indicates the channel to scan*/
1514 tANI_U8 scanChannel;
1515
1516 } tStartScanParams, * tpStartScanParams;
1517
1518typedef PACKED_PRE struct PACKED_POST
1519{
1520 tHalMsgHeader header;
1521 tStartScanParams startScanParams;
1522} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1523
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001524typedef PACKED_PRE struct PACKED_POST
1525{
1526 tHalMsgHeader header;
1527} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1528
Jeff Johnson295189b2012-06-20 16:38:30 -07001529/*---------------------------------------------------------------------------
1530 WLAN_HAL_START_SCAN_RSP
1531---------------------------------------------------------------------------*/
1532
1533typedef PACKED_PRE struct PACKED_POST
1534{
1535 /*success or failure */
1536 tANI_U32 status;
1537
1538 tANI_U32 startTSF[2];
1539 tPowerdBm txMgmtPower;
1540
1541}tHalStartScanRspParams, *tpHalStartScanRspParams;
1542
1543typedef PACKED_PRE struct PACKED_POST
1544{
1545 tHalMsgHeader header;
1546 tHalStartScanRspParams startScanRspParams;
1547} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1548
1549/*---------------------------------------------------------------------------
1550 WLAN_HAL_END_SCAN_REQ
1551---------------------------------------------------------------------------*/
1552
1553typedef PACKED_PRE struct PACKED_POST
1554{
1555 /*Indicates the channel to stop scanning. Not used really. But retained
1556 for symmetry with "start Scan" message. It can also help in error
1557 check if needed.*/
1558 tANI_U8 scanChannel;
1559
1560} tEndScanParams, *tpEndScanParams;
1561
1562typedef PACKED_PRE struct PACKED_POST
1563{
1564 tHalMsgHeader header;
1565 tEndScanParams endScanParams;
1566} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1567
1568/*---------------------------------------------------------------------------
1569 WLAN_HAL_END_SCAN_RSP
1570---------------------------------------------------------------------------*/
1571
1572typedef PACKED_PRE struct PACKED_POST
1573{
1574 /*success or failure */
1575 tANI_U32 status;
1576
1577}tHalEndScanRspParams, *tpHalEndScanRspParams;
1578
1579typedef PACKED_PRE struct PACKED_POST
1580{
1581 tHalMsgHeader header;
1582 tHalEndScanRspParams endScanRspParams;
1583} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1584
1585/*---------------------------------------------------------------------------
1586 WLAN_HAL_FINISH_SCAN_REQ
1587---------------------------------------------------------------------------*/
1588
1589typedef PACKED_PRE struct PACKED_POST
1590{
1591 /* Identifies the operational state of the AP/STA
1592 * LEARN - AP Role SCAN - STA Role */
1593 eHalSysMode scanMode;
1594
1595 /*Operating channel to tune to.*/
1596 tANI_U8 currentOperChannel;
1597
1598 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1599 40 MHz extension channel in combination with the control channel*/
1600 ePhyChanBondState cbState;
1601
1602 /*BSSID of the BSS*/
1603 tSirMacAddr bssid;
1604
1605 /*Whether BSS needs to be notified*/
1606 tANI_U8 notifyBss;
1607
1608 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1609 CTS to Self). Must always be a valid frame type.*/
1610 tANI_U8 frameType;
1611
1612 /*UMAC has the option of passing the MAC frame to be used for notifying
1613 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1614 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1615 frameType.*/
1616 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301617
1618 /*Following the framelength there is a MAC frame buffer if frameLength
1619 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001620 tSirMacMgmtHdr macMgmtHdr;
1621
1622 /*Entry to hold number of active BSS idx's*/
1623 tSirScanEntry scanEntry;
1624
1625} tFinishScanParams, *tpFinishScanParams;
1626
1627typedef PACKED_PRE struct PACKED_POST
1628{
1629 tHalMsgHeader header;
1630 tFinishScanParams finishScanParams;
1631} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1632
1633/*---------------------------------------------------------------------------
1634 WLAN_HAL_FINISH_SCAN_RSP
1635---------------------------------------------------------------------------*/
1636
1637typedef PACKED_PRE struct PACKED_POST
1638{
1639 /*success or failure */
1640 tANI_U32 status;
1641
1642}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1643
1644typedef PACKED_PRE struct PACKED_POST
1645{
1646 tHalMsgHeader header;
1647 tHalFinishScanRspParams finishScanRspParams;
1648} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1649
Srinivas Dasari42584632014-11-26 20:37:19 +05301650typedef PACKED_PRE struct PACKED_POST
1651{
1652 tSetStaKeyParams keyParams;
1653 uint8 pn[6];
1654} tHalEncConfigParams;
1655
1656typedef PACKED_PRE struct PACKED_POST
1657{
1658 uint16 length;
1659 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1660} tHalDisaPayload;
1661
1662typedef PACKED_PRE struct PACKED_POST
1663{
1664#ifdef BYTE_ORDER_BIG_ENDIAN
1665 uint8 reserved1 : 1;
1666 uint8 ackpolicy : 2;
1667 uint8 eosp : 1;
1668 uint8 tid : 4;
1669
1670 uint8 appsbufferstate : 8;
1671#else
1672 uint8 appsbufferstate : 8;
1673
1674 uint8 tid : 4;
1675 uint8 eosp : 1;
1676 uint8 ackpolicy : 2;
1677 uint8 reserved1 : 1;
1678#endif
1679} tHalQosCtrlFieldType;
1680
1681typedef PACKED_PRE struct PACKED_POST
1682 {
1683#ifdef BYTE_ORDER_BIG_ENDIAN
1684 uint16 subtype : 4;
1685 uint16 type : 2;
1686 uint16 protocol : 2;
1687
1688 uint16 order : 1;
1689 uint16 wep : 1;
1690 uint16 moredata : 1;
1691 uint16 pm : 1;
1692 uint16 retry : 1;
1693 uint16 morefrag : 1;
1694 uint16 fromds : 1;
1695 uint16 tods : 1;
1696#else
1697
1698 uint16 tods : 1;
1699 uint16 fromds : 1;
1700 uint16 morefrag : 1;
1701 uint16 retry : 1;
1702 uint16 pm : 1;
1703 uint16 moredata : 1;
1704 uint16 wep : 1;
1705 uint16 order : 1;
1706
1707 uint16 protocol : 2;
1708 uint16 type : 2;
1709 uint16 subtype : 4;
1710#endif
1711} tHalFrmCtrlType;
1712
1713typedef PACKED_PRE struct PACKED_POST
1714{
1715 /* Frame control field */
1716 tHalFrmCtrlType fc;
1717 /* Duration ID */
1718 uint16 usDurationId;
1719 /* Address 1 field */
1720 uint8 vA1[HAL_MAC_ADDR_LEN];
1721 /* Address 2 field */
1722 uint8 vA2[HAL_MAC_ADDR_LEN];
1723 /* Address 3 field */
1724 uint8 vA3[HAL_MAC_ADDR_LEN];
1725 /* Sequence control field */
1726 uint16 seqNum;
1727 /* Optional A4 address */
1728 uint8 optvA4[HAL_MAC_ADDR_LEN];
1729 /* Optional QOS control field */
1730 tHalQosCtrlFieldType usQosCtrl;
1731} tHal80211Header;
1732
1733typedef PACKED_PRE struct PACKED_POST
1734{
1735 tHal80211Header macHeader;
1736 tHalEncConfigParams encParams;
1737 tHalDisaPayload data;
1738} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1739
1740typedef PACKED_PRE struct PACKED_POST
1741{
1742 tHalMsgHeader header;
1743 tSetEncryptedDataParams encryptedDataParams;
1744} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1745
1746typedef PACKED_PRE struct PACKED_POST
1747{
1748 tANI_U32 status;
1749 tHalDisaPayload encryptedPayload;
1750} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1751
1752typedef PACKED_PRE struct PACKED_POST
1753{
1754 tHalMsgHeader header;
1755 tSetEncryptedDataRspParams encryptedDataRspParams;
1756} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1757
Jeff Johnson295189b2012-06-20 16:38:30 -07001758/*---------------------------------------------------------------------------
1759 WLAN_HAL_CONFIG_STA_REQ
1760---------------------------------------------------------------------------*/
1761
1762typedef PACKED_PRE struct PACKED_POST {
1763 /*
1764 * For Self STA Entry: this represents Self Mode.
1765 * For Peer Stations, this represents the mode of the peer.
1766 * On Station:
1767 * --this mode is updated when PE adds the Self Entry.
1768 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1769 * ON AP:
1770 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1771 * to indicate the self mode of the AP.
1772 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1773 */
1774
1775 tStaRateMode opRateMode;
1776 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1777 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1778 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1779 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1780 tANI_U16 reserved;
1781
1782 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1783 //First 26 bits are reserved for those Titan rates and
1784 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1785 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1786
1787 /*
1788 * 0-76 bits used, remaining reserved
1789 * bits 0-15 and 32 should be set.
1790 */
1791 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1792
1793 /*
1794 * RX Highest Supported Data Rate defines the highest data
1795 * rate that the STA is able to receive, in unites of 1Mbps.
1796 * This value is derived from "Supported MCS Set field" inside
1797 * the HT capability element.
1798 */
1799 tANI_U16 rxHighestDataRate;
1800
1801} tSirSupportedRates, *tpSirSupportedRates;
1802
1803typedef PACKED_PRE struct PACKED_POST
1804{
1805 /*BSSID of STA*/
1806 tSirMacAddr bssId;
1807
1808 /*ASSOC ID, as assigned by UMAC*/
1809 tANI_U16 assocId;
1810
1811 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1812 tANI_U8 staType;
1813
1814 /*Short Preamble Supported.*/
1815 tANI_U8 shortPreambleSupported;
1816
1817 /*MAC Address of STA*/
1818 tSirMacAddr staMac;
1819
1820 /*Listen interval of the STA*/
1821 tANI_U16 listenInterval;
1822
1823 /*Support for 11e/WMM*/
1824 tANI_U8 wmmEnabled;
1825
1826 /*11n HT capable STA*/
1827 tANI_U8 htCapable;
1828
1829 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1830 tANI_U8 txChannelWidthSet;
1831
1832 /*RIFS mode 0 - NA, 1 - Allowed */
1833 tANI_U8 rifsMode;
1834
Dino Mycle8afbac12014-07-04 22:06:17 +05301835 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001836 0 - No Support, 1 - Supported
1837 SG - there is global field */
1838 tANI_U8 lsigTxopProtection;
1839
1840 /*Max Ampdu Size supported by STA. TPE programming.
1841 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1842 tANI_U8 maxAmpduSize;
1843
1844 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1845 tANI_U8 maxAmpduDensity;
1846
1847 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1848 tANI_U8 maxAmsduSize;
1849
1850 /*Short GI support for 40Mhz packets*/
1851 tANI_U8 fShortGI40Mhz;
1852
1853 /*Short GI support for 20Mhz packets*/
1854 tANI_U8 fShortGI20Mhz;
1855
Jeff Johnson295189b2012-06-20 16:38:30 -07001856 /*Robust Management Frame (RMF) enabled/disabled*/
1857 tANI_U8 rmfEnabled;
1858
1859 /* The unicast encryption type in the association */
1860 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001861
1862 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001863 will set this flag in case of RE-ASSOC, where we want to reuse the old
1864 STA ID. 0 = Add, 1 = Update*/
1865 tANI_U8 action;
1866
1867 /*U-APSD Flags: 1b per AC. Encoded as follows:
1868 b7 b6 b5 b4 b3 b2 b1 b0 =
1869 X X X X BE BK VI VO */
1870 tANI_U8 uAPSD;
1871
1872 /*Max SP Length*/
1873 tANI_U8 maxSPLen;
1874
1875 /*11n Green Field preamble support
1876 0 - Not supported, 1 - Supported */
1877 tANI_U8 greenFieldCapable;
1878
1879 /*MIMO Power Save mode*/
1880 tSirMacHTMIMOPowerSaveState mimoPS;
1881
1882 /*Delayed BA Support*/
1883 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001884
Jeff Johnson295189b2012-06-20 16:38:30 -07001885 /*Max AMPDU duration in 32us*/
1886 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001887
Jeff Johnson295189b2012-06-20 16:38:30 -07001888 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1889 it to 0 if AP does not support it. This indication is sent to HAL and
1890 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1891 tANI_U8 fDsssCckMode40Mhz;
1892
1893 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1894 Retained for backward compalibity with existing HAL code*/
1895 tANI_U8 staIdx;
1896
1897 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1898 Retained for backward compalibity with existing HAL code*/
1899 tANI_U8 bssIdx;
1900
1901 tANI_U8 p2pCapableSta;
1902
Jeff Johnsone7245742012-09-05 17:12:55 -07001903 /*Reserved to align next field on a dword boundary*/
1904 tANI_U8 reserved;
1905
1906 /*These rates are the intersection of peer and self capabilities.*/
1907 tSirSupportedRates supportedRates;
1908
Jeff Johnson295189b2012-06-20 16:38:30 -07001909} tConfigStaParams, *tpConfigStaParams;
1910
Jeff Johnsone7245742012-09-05 17:12:55 -07001911/*------------------------------------------------------------------------
1912 * WLAN_HAL_CONFIG_STA_REQ
1913 * ----------------------------------------------------------------------*/
1914
1915typedef PACKED_PRE struct PACKED_POST {
1916 /*
1917 * For Self STA Entry: this represents Self Mode.
1918 * For Peer Stations, this represents the mode of the peer.
1919 * On Station:
1920 * --this mode is updated when PE adds the Self Entry.
1921 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1922 * ON AP:
1923 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1924 * to indicate the self mode of the AP.
1925 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1926 */
1927
1928 tStaRateMode opRateMode;
1929 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1930 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1931 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1932 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1933 tANI_U16 reserved;
1934
1935 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1936 //First 26 bits are reserved for those Titan rates and
1937 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1938 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1939
1940 /*
1941 * 0-76 bits used, remaining reserved
1942 * bits 0-15 and 32 should be set.
1943 */
1944 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1945
1946 /*
1947 * RX Highest Supported Data Rate defines the highest data
1948 * rate that the STA is able to receive, in unites of 1Mbps.
1949 * This value is derived from "Supported MCS Set field" inside
1950 * the HT capability element.
1951 */
1952 tANI_U16 rxHighestDataRate;
1953
1954 /* Indicates the Maximum MCS that can be received for each number
1955 * of spacial streams */
1956 tANI_U16 vhtRxMCSMap;
1957
1958 /*Indicate the highest VHT data rate that the STA is able to receive*/
1959 tANI_U16 vhtRxHighestDataRate;
1960
1961 /* Indicates the Maximum MCS that can be transmitted for each number
1962 * of spacial streams */
1963 tANI_U16 vhtTxMCSMap;
1964
1965 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1966 tANI_U16 vhtTxHighestDataRate;
1967
1968} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1969
1970typedef PACKED_PRE struct PACKED_POST
1971{
1972 /*BSSID of STA*/
1973 tSirMacAddr bssId;
1974
1975 /*ASSOC ID, as assigned by UMAC*/
1976 tANI_U16 assocId;
1977
1978 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1979 tANI_U8 staType;
1980
1981 /*Short Preamble Supported.*/
1982 tANI_U8 shortPreambleSupported;
1983
1984 /*MAC Address of STA*/
1985 tSirMacAddr staMac;
1986
1987 /*Listen interval of the STA*/
1988 tANI_U16 listenInterval;
1989
1990 /*Support for 11e/WMM*/
1991 tANI_U8 wmmEnabled;
1992
1993 /*11n HT capable STA*/
1994 tANI_U8 htCapable;
1995
1996 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1997 tANI_U8 txChannelWidthSet;
1998
1999 /*RIFS mode 0 - NA, 1 - Allowed */
2000 tANI_U8 rifsMode;
2001
2002 /*L-SIG TXOP Protection mechanism
2003 0 - No Support, 1 - Supported
2004 SG - there is global field */
2005 tANI_U8 lsigTxopProtection;
2006
2007 /*Max Ampdu Size supported by STA. TPE programming.
2008 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
2009 tANI_U8 maxAmpduSize;
2010
2011 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
2012 tANI_U8 maxAmpduDensity;
2013
2014 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
2015 tANI_U8 maxAmsduSize;
2016
2017 /*Short GI support for 40Mhz packets*/
2018 tANI_U8 fShortGI40Mhz;
2019
2020 /*Short GI support for 20Mhz packets*/
2021 tANI_U8 fShortGI20Mhz;
2022
2023 /*Robust Management Frame (RMF) enabled/disabled*/
2024 tANI_U8 rmfEnabled;
2025
2026 /* The unicast encryption type in the association */
2027 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05302028
2029 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07002030 will set this flag in case of RE-ASSOC, where we want to reuse the old
2031 STA ID. 0 = Add, 1 = Update*/
2032 tANI_U8 action;
2033
2034 /*U-APSD Flags: 1b per AC. Encoded as follows:
2035 b7 b6 b5 b4 b3 b2 b1 b0 =
2036 X X X X BE BK VI VO */
2037 tANI_U8 uAPSD;
2038
2039 /*Max SP Length*/
2040 tANI_U8 maxSPLen;
2041
2042 /*11n Green Field preamble support
2043 0 - Not supported, 1 - Supported */
2044 tANI_U8 greenFieldCapable;
2045
2046 /*MIMO Power Save mode*/
2047 tSirMacHTMIMOPowerSaveState mimoPS;
2048
2049 /*Delayed BA Support*/
2050 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05302051
Jeff Johnsone7245742012-09-05 17:12:55 -07002052 /*Max AMPDU duration in 32us*/
2053 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05302054
Jeff Johnsone7245742012-09-05 17:12:55 -07002055 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
2056 it to 0 if AP does not support it. This indication is sent to HAL and
2057 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
2058 tANI_U8 fDsssCckMode40Mhz;
2059
2060 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
2061 Retained for backward compalibity with existing HAL code*/
2062 tANI_U8 staIdx;
2063
2064 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2065 Retained for backward compalibity with existing HAL code*/
2066 tANI_U8 bssIdx;
2067
2068 tANI_U8 p2pCapableSta;
2069
2070 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002071 tANI_U8 htLdpcEnabled:1;
2072 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002073 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302074 tANI_U8 vhtTxMUBformeeCapable:1;
2075 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002076
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002077 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002078 tSirSupportedRates_V1 supportedRates;
2079
2080 tANI_U8 vhtCapable;
2081 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002082
Jeff Johnsone7245742012-09-05 17:12:55 -07002083} tConfigStaParams_V1, *tpConfigStaParams_V1;
2084
Jeff Johnson295189b2012-06-20 16:38:30 -07002085typedef PACKED_PRE struct PACKED_POST
2086{
2087 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002088 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002089 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002090 tConfigStaParams_V1 configStaParams_V1;
2091 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002092} tConfigStaReqMsg, *tpConfigStaReqMsg;
2093
2094/*---------------------------------------------------------------------------
2095 WLAN_HAL_CONFIG_STA_RSP
2096---------------------------------------------------------------------------*/
2097
2098typedef PACKED_PRE struct PACKED_POST
2099{
2100 /*success or failure */
2101 tANI_U32 status;
2102
2103 /* Station index; valid only when 'status' field value SUCCESS */
2104 tANI_U8 staIdx;
2105
2106 /* BSSID Index of BSS to which the station is associated */
2107 tANI_U8 bssIdx;
2108
2109 /* DPU Index for PTK */
2110 tANI_U8 dpuIndex;
2111
Dino Mycle8afbac12014-07-04 22:06:17 +05302112 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002113 tANI_U8 bcastDpuIndex;
2114
2115 /*DPU Index for IGTK */
2116 tANI_U8 bcastMgmtDpuIdx;
2117
2118 /*PTK DPU signature*/
2119 tANI_U8 ucUcastSig;
2120
2121 /*GTK DPU isignature*/
2122 tANI_U8 ucBcastSig;
2123
2124 /* IGTK DPU signature*/
2125 tANI_U8 ucMgmtSig;
2126
2127 tANI_U8 p2pCapableSta;
2128
2129}tConfigStaRspParams, *tpConfigStaRspParams;
2130
2131typedef PACKED_PRE struct PACKED_POST
2132{
2133 tHalMsgHeader header;
2134 tConfigStaRspParams configStaRspParams;
2135}tConfigStaRspMsg, *tpConfigStaRspMsg;
2136
2137/*---------------------------------------------------------------------------
2138 WLAN_HAL_DELETE_STA_REQ
2139---------------------------------------------------------------------------*/
2140
2141/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302142typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002143{
2144 /* Index of STA to delete */
2145 tANI_U8 staIdx;
2146} tDeleteStaParams, *tpDeleteStaParams;
2147
2148/* Delete STA Request message*/
2149typedef PACKED_PRE struct PACKED_POST
2150{
2151 tHalMsgHeader header;
2152 tDeleteStaParams delStaParams;
2153} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2154
2155/*---------------------------------------------------------------------------
2156 WLAN_HAL_DELETE_STA_RSP
2157---------------------------------------------------------------------------*/
2158
2159/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302160typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002161{
2162 /*success or failure */
2163 tANI_U32 status;
2164
2165 /* Index of STA deleted */
2166 tANI_U8 staId;
2167} tDeleteStaRspParams, *tpDeleteStaRspParams;
2168
2169/* Delete STA Response message*/
2170typedef PACKED_PRE struct PACKED_POST
2171{
2172 tHalMsgHeader header;
2173 tDeleteStaRspParams delStaRspParams;
2174} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2175
2176/*---------------------------------------------------------------------------
2177 WLAN_HAL_CONFIG_BSS_REQ
2178---------------------------------------------------------------------------*/
2179
2180//12 Bytes long because this structure can be used to represent rate
2181//and extended rate set IEs. The parser assume this to be at least 12
2182typedef __ani_attr_pre_packed struct sSirMacRateSet
2183{
2184 tANI_U8 numRates;
2185 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2186} __ani_attr_packed tSirMacRateSet;
2187
2188// access category record
2189typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2190{
2191#ifndef ANI_LITTLE_BIT_ENDIAN
2192 tANI_U8 rsvd : 1;
2193 tANI_U8 aci : 2;
2194 tANI_U8 acm : 1;
2195 tANI_U8 aifsn : 4;
2196#else
2197 tANI_U8 aifsn : 4;
2198 tANI_U8 acm : 1;
2199 tANI_U8 aci : 2;
2200 tANI_U8 rsvd : 1;
2201#endif
2202} __ani_attr_packed tSirMacAciAifsn;
2203
2204// contention window size
2205typedef __ani_attr_pre_packed struct sSirMacCW
2206{
2207#ifndef ANI_LITTLE_BIT_ENDIAN
2208 tANI_U8 max : 4;
2209 tANI_U8 min : 4;
2210#else
2211 tANI_U8 min : 4;
2212 tANI_U8 max : 4;
2213#endif
2214} __ani_attr_packed tSirMacCW;
2215
2216typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2217{
2218 tSirMacAciAifsn aci;
2219 tSirMacCW cw;
2220 tANI_U16 txoplimit;
2221} __ani_attr_packed tSirMacEdcaParamRecord;
2222
2223typedef __ani_attr_pre_packed struct sSirMacSSid
2224{
2225 tANI_U8 length;
2226 tANI_U8 ssId[32];
2227} __ani_attr_packed tSirMacSSid;
2228
2229// Concurrency role. These are generic IDs that identify the various roles
2230// in the software system.
2231typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302232 HAL_STA_MODE=0,
2233 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002234 HAL_P2P_CLIENT_MODE,
2235 HAL_P2P_GO_MODE,
2236 HAL_MONITOR_MODE,
2237} tHalConMode;
2238
2239//This is a bit pattern to be set for each mode
2240//bit 0 - sta mode
2241//bit 1 - ap mode
2242//bit 2 - p2p client mode
2243//bit 3 - p2p go mode
2244typedef enum
2245{
Dino Mycle8afbac12014-07-04 22:06:17 +05302246 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002247 HAL_SAP=2,
2248 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2249 HAL_P2P_CLIENT=4,
2250 HAL_P2P_GO=8,
2251 HAL_MAX_CONCURRENCY_PERSONA=4
2252} tHalConcurrencyMode;
2253
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002254// IFACE PERSONA for different Operating modes
2255typedef enum
2256{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002257 HAL_IFACE_UNKNOWN=0,
2258 HAL_IFACE_STA_MODE=1,
2259 HAL_IFACE_P2P_MODE=2,
2260 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002261} tHalIfacePersona;
2262
Jeff Johnson295189b2012-06-20 16:38:30 -07002263typedef PACKED_PRE struct PACKED_POST
2264{
2265 /* BSSID */
2266 tSirMacAddr bssId;
2267
Jeff Johnson295189b2012-06-20 16:38:30 -07002268 /* Self Mac Address */
2269 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002270
2271 /* BSS type */
2272 tSirBssType bssType;
2273
2274 /*Operational Mode: AP =0, STA = 1*/
2275 tANI_U8 operMode;
2276
2277 /*Network Type*/
2278 tSirNwType nwType;
2279
2280 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2281 tANI_U8 shortSlotTimeSupported;
2282
2283 /*Co-exist with 11a STA*/
2284 tANI_U8 llaCoexist;
2285
2286 /*Co-exist with 11b STA*/
2287 tANI_U8 llbCoexist;
2288
2289 /*Co-exist with 11g STA*/
2290 tANI_U8 llgCoexist;
2291
2292 /*Coexistence with 11n STA*/
2293 tANI_U8 ht20Coexist;
2294
2295 /*Non GF coexist flag*/
2296 tANI_U8 llnNonGFCoexist;
2297
2298 /*TXOP protection support*/
2299 tANI_U8 fLsigTXOPProtectionFullSupport;
2300
2301 /*RIFS mode*/
2302 tANI_U8 fRIFSMode;
2303
2304 /*Beacon Interval in TU*/
2305 tSirMacBeaconInterval beaconInterval;
2306
2307 /*DTIM period*/
2308 tANI_U8 dtimPeriod;
2309
2310 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2311 tANI_U8 txChannelWidthSet;
2312
2313 /*Operating channel*/
2314 tANI_U8 currentOperChannel;
2315
2316 /*Extension channel for channel bonding*/
2317 tANI_U8 currentExtChannel;
2318
2319 /*Reserved to align next field on a dword boundary*/
2320 tANI_U8 reserved;
2321
Jeff Johnsone7245742012-09-05 17:12:55 -07002322 /*SSID of the BSS*/
2323 tSirMacSSid ssId;
2324
2325 /*HAL should update the existing BSS entry, if this flag is set.
2326 UMAC will set this flag in case of reassoc, where we want to resue the
2327 the old BSSID and still return success 0 = Add, 1 = Update*/
2328 tANI_U8 action;
2329
2330 /* MAC Rate Set */
2331 tSirMacRateSet rateSet;
2332
2333 /*Enable/Disable HT capabilities of the BSS*/
2334 tANI_U8 htCapable;
2335
2336 // Enable/Disable OBSS protection
2337 tANI_U8 obssProtEnabled;
2338
2339 /*RMF enabled/disabled*/
2340 tANI_U8 rmfEnabled;
2341
2342 /*HT Operating Mode operating mode of the 802.11n STA*/
2343 tSirMacHTOperatingMode htOperMode;
2344
2345 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2346 tANI_U8 dualCTSProtection;
2347
2348 /* Probe Response Max retries */
2349 tANI_U8 ucMaxProbeRespRetryLimit;
2350
2351 /* To Enable Hidden ssid */
2352 tANI_U8 bHiddenSSIDEn;
2353
2354 /* To Enable Disable FW Proxy Probe Resp */
2355 tANI_U8 bProxyProbeRespEn;
2356
2357 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2358 EDCA params or might not desire to apply EDCA params during config BSS.
2359 0 implies Not Valid ; Non-Zero implies valid*/
2360 tANI_U8 edcaParamsValid;
2361
2362 /*EDCA Parameters for Best Effort Access Category*/
2363 tSirMacEdcaParamRecord acbe;
2364
2365 /*EDCA Parameters forBackground Access Category*/
2366 tSirMacEdcaParamRecord acbk;
2367
2368 /*EDCA Parameters for Video Access Category*/
2369 tSirMacEdcaParamRecord acvi;
2370
2371 /*EDCA Parameters for Voice Access Category*/
2372 tSirMacEdcaParamRecord acvo;
2373
2374#ifdef WLAN_FEATURE_VOWIFI_11R
2375 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2376 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2377#endif
2378
2379 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2380 tANI_U8 halPersona;
2381
2382 tANI_U8 bSpectrumMgtEnable;
2383
2384 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2385 tANI_S8 txMgmtPower;
2386 /*maxTxPower has max power to be used after applying the power constraint if any */
2387 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002388 /*Context of the station being added in HW
2389 Add a STA entry for "itself" -
2390 On AP - Add the AP itself in an "STA context"
2391 On STA - Add the AP to which this STA is joining in an "STA context" */
2392 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002393} tConfigBssParams, * tpConfigBssParams;
2394
2395
2396/*--------------------------------------------------------------------------
2397 * WLAN_HAL_CONFIG_BSS_REQ
2398 *--------------------------------------------------------------------------*/
2399typedef PACKED_PRE struct PACKED_POST
2400{
2401 /* BSSID */
2402 tSirMacAddr bssId;
2403
Jeff Johnsone7245742012-09-05 17:12:55 -07002404 /* Self Mac Address */
2405 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002406
2407 /* BSS type */
2408 tSirBssType bssType;
2409
2410 /*Operational Mode: AP =0, STA = 1*/
2411 tANI_U8 operMode;
2412
2413 /*Network Type*/
2414 tSirNwType nwType;
2415
2416 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2417 tANI_U8 shortSlotTimeSupported;
2418
2419 /*Co-exist with 11a STA*/
2420 tANI_U8 llaCoexist;
2421
2422 /*Co-exist with 11b STA*/
2423 tANI_U8 llbCoexist;
2424
2425 /*Co-exist with 11g STA*/
2426 tANI_U8 llgCoexist;
2427
2428 /*Coexistence with 11n STA*/
2429 tANI_U8 ht20Coexist;
2430
2431 /*Non GF coexist flag*/
2432 tANI_U8 llnNonGFCoexist;
2433
2434 /*TXOP protection support*/
2435 tANI_U8 fLsigTXOPProtectionFullSupport;
2436 /*RIFS mode*/
2437 tANI_U8 fRIFSMode;
2438
2439 /*Beacon Interval in TU*/
2440 tSirMacBeaconInterval beaconInterval;
2441
2442 /*DTIM period*/
2443 tANI_U8 dtimPeriod;
2444
2445 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2446 tANI_U8 txChannelWidthSet;
2447
2448 /*Operating channel*/
2449 tANI_U8 currentOperChannel;
2450
2451 /*Extension channel for channel bonding*/
2452 tANI_U8 currentExtChannel;
2453
2454 /*Reserved to align next field on a dword boundary*/
2455 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002456
2457 /*SSID of the BSS*/
2458 tSirMacSSid ssId;
2459
2460 /*HAL should update the existing BSS entry, if this flag is set.
2461 UMAC will set this flag in case of reassoc, where we want to resue the
2462 the old BSSID and still return success 0 = Add, 1 = Update*/
2463 tANI_U8 action;
2464
2465 /* MAC Rate Set */
2466 tSirMacRateSet rateSet;
2467
2468 /*Enable/Disable HT capabilities of the BSS*/
2469 tANI_U8 htCapable;
2470
2471 // Enable/Disable OBSS protection
2472 tANI_U8 obssProtEnabled;
2473
2474 /*RMF enabled/disabled*/
2475 tANI_U8 rmfEnabled;
2476
2477 /*HT Operating Mode operating mode of the 802.11n STA*/
2478 tSirMacHTOperatingMode htOperMode;
2479
2480 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2481 tANI_U8 dualCTSProtection;
2482
2483 /* Probe Response Max retries */
2484 tANI_U8 ucMaxProbeRespRetryLimit;
2485
2486 /* To Enable Hidden ssid */
2487 tANI_U8 bHiddenSSIDEn;
2488
2489 /* To Enable Disable FW Proxy Probe Resp */
2490 tANI_U8 bProxyProbeRespEn;
2491
Dino Mycle8afbac12014-07-04 22:06:17 +05302492 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2493 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002494 0 implies Not Valid ; Non-Zero implies valid*/
2495 tANI_U8 edcaParamsValid;
2496
2497 /*EDCA Parameters for Best Effort Access Category*/
2498 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302499
Jeff Johnson295189b2012-06-20 16:38:30 -07002500 /*EDCA Parameters forBackground Access Category*/
2501 tSirMacEdcaParamRecord acbk;
2502
2503 /*EDCA Parameters for Video Access Category*/
2504 tSirMacEdcaParamRecord acvi;
2505
2506 /*EDCA Parameters for Voice Access Category*/
2507 tSirMacEdcaParamRecord acvo;
2508
2509#ifdef WLAN_FEATURE_VOWIFI_11R
2510 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2511 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2512#endif
2513
Dino Mycle8afbac12014-07-04 22:06:17 +05302514 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002515 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302516
Jeff Johnson295189b2012-06-20 16:38:30 -07002517 tANI_U8 bSpectrumMgtEnable;
2518
2519 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2520 tANI_S8 txMgmtPower;
2521 /*maxTxPower has max power to be used after applying the power constraint if any */
2522 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002523 /*Context of the station being added in HW
2524 Add a STA entry for "itself" -
2525 On AP - Add the AP itself in an "STA context"
2526 On STA - Add the AP to which this STA is joining in an "STA context" */
2527 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302528
Jeff Johnsone7245742012-09-05 17:12:55 -07002529 tANI_U8 vhtCapable;
2530 tANI_U8 vhtTxChannelWidthSet;
2531} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002532
2533typedef PACKED_PRE struct PACKED_POST
2534{
2535 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002536 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002537 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002538 tConfigBssParams_V1 configBssParams_V1;
2539 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002540} tConfigBssReqMsg, *tpConfigBssReqMsg;
2541
2542/*---------------------------------------------------------------------------
2543 WLAN_HAL_CONFIG_BSS_RSP
2544---------------------------------------------------------------------------*/
2545
2546typedef PACKED_PRE struct PACKED_POST
2547{
2548 /* Success or Failure */
2549 tANI_U32 status;
2550
2551 /* BSS index allocated by HAL */
2552 tANI_U8 bssIdx;
2553
2554 /* DPU descriptor index for PTK */
2555 tANI_U8 dpuDescIndx;
2556
2557 /* PTK DPU signature */
2558 tANI_U8 ucastDpuSignature;
2559
2560 /* DPU descriptor index for GTK*/
2561 tANI_U8 bcastDpuDescIndx;
2562
2563 /* GTK DPU signature */
2564 tANI_U8 bcastDpuSignature;
2565
2566 /*DPU descriptor for IGTK*/
2567 tANI_U8 mgmtDpuDescIndx;
2568
2569 /* IGTK DPU signature */
2570 tANI_U8 mgmtDpuSignature;
2571
2572 /* Station Index for BSS entry*/
2573 tANI_U8 bssStaIdx;
2574
2575 /* Self station index for this BSS */
2576 tANI_U8 bssSelfStaIdx;
2577
2578 /* Bcast station for buffering bcast frames in AP role */
2579 tANI_U8 bssBcastStaIdx;
2580
2581 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2582 tSirMacAddr staMac;
2583
2584 /*HAL fills in the tx power used for mgmt frames in this field. */
2585 tANI_S8 txMgmtPower;
2586
2587} tConfigBssRspParams, * tpConfigBssRspParams;
2588
2589typedef PACKED_PRE struct PACKED_POST
2590{
2591 tHalMsgHeader header;
2592 tConfigBssRspParams configBssRspParams;
2593} tConfigBssRspMsg, *tpConfigBssRspMsg;
2594
2595/*---------------------------------------------------------------------------
2596 WLAN_HAL_DELETE_BSS_REQ
2597---------------------------------------------------------------------------*/
2598
2599typedef PACKED_PRE struct PACKED_POST
2600{
2601 /* BSS index to be deleted */
2602 tANI_U8 bssIdx;
2603
2604} tDeleteBssParams, *tpDeleteBssParams;
2605
2606typedef PACKED_PRE struct PACKED_POST
2607{
2608 tHalMsgHeader header;
2609 tDeleteBssParams deleteBssParams;
2610} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2611
2612/*---------------------------------------------------------------------------
2613 WLAN_HAL_DELETE_BSS_RSP
2614---------------------------------------------------------------------------*/
2615
2616typedef PACKED_PRE struct PACKED_POST
2617{
2618 /* Success or Failure */
2619 tANI_U32 status;
2620
2621 /* BSS index that has been deleted */
2622 tANI_U8 bssIdx;
2623
2624} tDeleteBssRspParams, *tpDeleteBssRspParams;
2625
2626typedef PACKED_PRE struct PACKED_POST
2627{
2628 tHalMsgHeader header;
2629 tDeleteBssRspParams deleteBssRspParams;
2630} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2631
2632/*---------------------------------------------------------------------------
2633 WLAN_HAL_JOIN_REQ
2634---------------------------------------------------------------------------*/
2635
2636typedef PACKED_PRE struct PACKED_POST
2637{
2638 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302639 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002640
2641 /*Indicates the channel to switch to.*/
2642 tANI_U8 ucChannel;
2643
2644 /* Self STA MAC */
2645 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302646
Jeff Johnson295189b2012-06-20 16:38:30 -07002647 /*Local power constraint*/
2648 tANI_U8 ucLocalPowerConstraint;
2649
2650 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002651 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002652
2653 /*link State*/
2654 tSirLinkState linkState;
2655
2656 /* Max TX power */
2657 tANI_S8 maxTxPower;
2658
2659} tHalJoinReqParams, *tpHalJoinReqParams;
2660
2661typedef PACKED_PRE struct PACKED_POST
2662{
2663 tHalMsgHeader header;
2664 tHalJoinReqParams joinReqParams;
2665} tHalJoinReqMsg, *tpHalJoinReqMsg;
2666
2667/*---------------------------------------------------------------------------
2668 WLAN_HAL_JOIN_RSP
2669---------------------------------------------------------------------------*/
2670
2671typedef PACKED_PRE struct PACKED_POST
2672{
2673 /*success or failure */
2674 tANI_U32 status;
2675
2676 /* HAL fills in the tx power used for mgmt frames in this field */
2677 tPowerdBm txMgmtPower;
2678
2679}tHalJoinRspParams, *tpHalJoinRspParams;
2680
2681typedef PACKED_PRE struct PACKED_POST
2682{
2683 tHalMsgHeader header;
2684 tHalJoinRspParams joinRspParams;
2685}tHalJoinRspMsg, *tpHalJoinRspMsg;
2686
2687/*---------------------------------------------------------------------------
2688 WLAN_HAL_POST_ASSOC_REQ
2689---------------------------------------------------------------------------*/
2690
2691typedef PACKED_PRE struct PACKED_POST
2692{
2693 tConfigStaParams configStaParams;
2694 tConfigBssParams configBssParams;
2695} tPostAssocReqParams, *tpPostAssocReqParams;
2696
2697typedef PACKED_PRE struct PACKED_POST
2698{
2699 tHalMsgHeader header;
2700 tPostAssocReqParams postAssocReqParams;
2701} tPostAssocReqMsg, *tpPostAssocReqMsg;
2702
2703/*---------------------------------------------------------------------------
2704 WLAN_HAL_POST_ASSOC_RSP
2705---------------------------------------------------------------------------*/
2706
2707typedef PACKED_PRE struct PACKED_POST
2708{
2709 tConfigStaRspParams configStaRspParams;
2710 tConfigBssRspParams configBssRspParams;
2711} tPostAssocRspParams, *tpPostAssocRspParams;
2712
2713typedef PACKED_PRE struct PACKED_POST
2714{
2715 tHalMsgHeader header;
2716 tPostAssocRspParams postAssocRspParams;
2717} tPostAssocRspMsg, *tpPostAssocRspMsg;
2718
2719/*---------------------------------------------------------------------------
2720 WLAN_HAL_SET_BSSKEY_REQ
2721---------------------------------------------------------------------------*/
2722
2723/*
2724 * This is used by PE to create a set of WEP keys for a given BSS.
2725 */
2726typedef PACKED_PRE struct PACKED_POST
2727{
2728 /*BSS Index of the BSS*/
2729 tANI_U8 bssIdx;
2730
2731 /*Encryption Type used with peer*/
2732 tAniEdType encType;
2733
2734 /*Number of keys*/
2735 tANI_U8 numKeys;
2736
2737 /*Array of keys.*/
2738 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302739
Jeff Johnson295189b2012-06-20 16:38:30 -07002740 /*Control for Replay Count, 1= Single TID based replay count on Tx
2741 0 = Per TID based replay count on TX */
2742 tANI_U8 singleTidRc;
2743} tSetBssKeyParams, *tpSetBssKeyParams;
2744
2745typedef PACKED_PRE struct PACKED_POST
2746{
2747 tHalMsgHeader header;
2748 tSetBssKeyParams setBssKeyParams;
2749} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2750
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002751/* tagged version of set bss key */
2752typedef PACKED_PRE struct PACKED_POST
2753{
2754 tSetBssKeyReqMsg Msg;
2755 uint32 Tag;
2756} tSetBssKeyReqMsgTagged;
2757
Jeff Johnson295189b2012-06-20 16:38:30 -07002758/*---------------------------------------------------------------------------
2759 WLAN_HAL_SET_BSSKEY_RSP
2760---------------------------------------------------------------------------*/
2761typedef PACKED_PRE struct PACKED_POST
2762{
2763 /*success or failure */
2764 tANI_U32 status;
2765
2766} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2767
2768typedef PACKED_PRE struct PACKED_POST
2769{
2770 tHalMsgHeader header;
2771 tSetBssKeyRspParams setBssKeyRspParams;
2772} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2773
2774/*---------------------------------------------------------------------------
2775 WLAN_HAL_SET_STAKEY_REQ,
2776---------------------------------------------------------------------------*/
2777
2778/*
2779 * This is used by PE to configure the key information on a given station.
2780 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2781 * a preconfigured key from a BSS the station assoicated with; otherwise
2782 * a new key descriptor is created based on the key field.
2783 */
2784
2785typedef PACKED_PRE struct PACKED_POST
2786{
2787 tHalMsgHeader header;
2788 tSetStaKeyParams setStaKeyParams;
2789} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2790
2791/*---------------------------------------------------------------------------
2792 WLAN_HAL_SET_STAKEY_RSP,
2793---------------------------------------------------------------------------*/
2794typedef PACKED_PRE struct PACKED_POST
2795{
2796 /*success or failure */
2797 tANI_U32 status;
2798
2799} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2800
2801typedef PACKED_PRE struct PACKED_POST
2802{
2803 tHalMsgHeader header;
2804 tSetStaKeyRspParams setStaKeyRspParams;
2805} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2806
2807/*---------------------------------------------------------------------------
2808 WLAN_HAL_RMV_BSSKEY_REQ,
2809---------------------------------------------------------------------------*/
2810/*
2811 * This is used by PE to remove keys for a given BSS.
2812 */
2813typedef PACKED_PRE struct PACKED_POST
2814
2815{
2816 /*BSS Index of the BSS*/
2817 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302818
Jeff Johnson295189b2012-06-20 16:38:30 -07002819 /*Encryption Type used with peer*/
2820 tAniEdType encType;
2821
2822 /*Key Id*/
2823 tANI_U8 keyId;
2824
2825 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2826 tAniWepType wepType;
2827
2828} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2829
2830typedef PACKED_PRE struct PACKED_POST
2831{
2832 tHalMsgHeader header;
2833 tRemoveBssKeyParams removeBssKeyParams;
2834} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2835
2836/*---------------------------------------------------------------------------
2837 WLAN_HAL_RMV_BSSKEY_RSP,
2838---------------------------------------------------------------------------*/
2839typedef PACKED_PRE struct PACKED_POST
2840{
2841 /*success or failure */
2842 tANI_U32 status;
2843
2844} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2845
2846typedef PACKED_PRE struct PACKED_POST
2847{
2848 tHalMsgHeader header;
2849 tRemoveBssKeyRspParams removeBssKeyRspParams;
2850} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2851
2852/*---------------------------------------------------------------------------
2853 WLAN_HAL_RMV_STAKEY_REQ,
2854---------------------------------------------------------------------------*/
2855/*
2856 * This is used by PE to Remove the key information on a given station.
2857 */
2858typedef PACKED_PRE struct PACKED_POST
2859{
2860 /*STA Index*/
2861 tANI_U16 staIdx;
2862
2863 /*Encryption Type used with peer*/
2864 tAniEdType encType;
2865
2866 /*Key Id*/
2867 tANI_U8 keyId;
2868
2869 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2870 the same key is used for both broadcast and unicast.*/
2871 tANI_BOOLEAN unicast;
2872
2873} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2874
2875typedef PACKED_PRE struct PACKED_POST
2876{
2877 tHalMsgHeader header;
2878 tRemoveStaKeyParams removeStaKeyParams;
2879} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2880
2881/*---------------------------------------------------------------------------
2882 WLAN_HAL_RMV_STAKEY_RSP,
2883---------------------------------------------------------------------------*/
2884typedef PACKED_PRE struct PACKED_POST
2885{
2886 /*success or failure */
2887 tANI_U32 status;
2888} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2889
2890typedef PACKED_PRE struct PACKED_POST
2891{
2892 tHalMsgHeader header;
2893 tRemoveStaKeyRspParams removeStaKeyRspParams;
2894} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2895
Jeff Johnsone7245742012-09-05 17:12:55 -07002896#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002897
Jeff Johnsone7245742012-09-05 17:12:55 -07002898#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002899#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002900#endif
2901
2902#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002903#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002904#endif
2905
2906/*-------------------------------------------------------------------------
2907WLAN_HAL_START_OEM_DATA_REQ
2908--------------------------------------------------------------------------*/
2909typedef PACKED_PRE struct PACKED_POST
2910{
2911 tANI_U32 status;
2912 tSirMacAddr selfMacAddr;
2913 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2914} tStartOemDataReqParams, *tpStartOemDataReqParams;
2915
2916typedef PACKED_PRE struct PACKED_POST
2917{
2918 tHalMsgHeader header;
2919 tStartOemDataReqParams startOemDataReqParams;
2920} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2921
2922/*-------------------------------------------------------------------------
2923WLAN_HAL_START_OEM_DATA_RSP
2924--------------------------------------------------------------------------*/
2925
2926typedef PACKED_PRE struct PACKED_POST
2927{
2928 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2929} tStartOemDataRspParams, *tpStartOemDataRspParams;
2930
2931typedef PACKED_PRE struct PACKED_POST
2932{
2933 tHalMsgHeader header;
2934 tStartOemDataRspParams startOemDataRspParams;
2935} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2936
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302937#ifndef NEW_OEM_DATA_REQ_SIZE
2938#define NEW_OEM_DATA_REQ_SIZE 292
2939#endif
2940
2941#ifndef NEW_OEM_DATA_RSP_SIZE
2942#define NEW_OEM_DATA_RSP_SIZE 2100
2943#endif
2944
2945/*-------------------------------------------------------------------------
2946WLAN_HAL_START_OEM_DATA_REQ_IND_NEW------------------------------------
2947--------------------------------------------------------------------------*/
2948typedef PACKED_PRE struct PACKED_POST
2949{
Padma, Santhosh Kumarb7f449f2016-01-11 18:55:44 +05302950 tSirMacAddr selfMacAddr;
2951 tANI_U8 reserved[2];
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302952 tANI_U8 oemDataReq[NEW_OEM_DATA_REQ_SIZE];
2953} tStartOemDataReqParamsNew, *tpStartOemDataReqParamsNew;
2954
2955typedef PACKED_PRE struct PACKED_POST
2956{
2957 tHalMsgHeader header;
2958 tStartOemDataReqParamsNew startOemDataReqParams;
2959} tStartOemDataReqMsgNew, *tpStartOemDataReqMsgNew;
2960
2961/*-------------------------------------------------------------------------
2962WLAN_HAL_START_OEM_DATA_RSP_IND_NEW------------------------------------
2963--------------------------------------------------------------------------*/
2964typedef PACKED_PRE struct PACKED_POST
2965{
2966 tANI_U8 oemDataRsp[NEW_OEM_DATA_RSP_SIZE];
2967} tStartOemDataRspParamsNew, *tpStartOemDataRspParamsNew;
2968
2969typedef PACKED_PRE struct PACKED_POST
2970{
2971 tHalMsgHeader header;
2972 tStartOemDataRspParamsNew startOemDataReqParams;
2973} tStartOemDataRspMsgNew, *tpStartOemDataRspMsgNew;
2974
Jeff Johnsone7245742012-09-05 17:12:55 -07002975#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002976
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002977/*---------------------------------------------------------------------------
2978WLAN_HAL_CH_SWITCH_V1_REQ
2979---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002980
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002981typedef PACKED_PRE struct PACKED_POST
2982{
2983 /* Channel number */
2984 tANI_U8 channelNumber;
2985
2986 /* Local power constraint */
2987 tANI_U8 localPowerConstraint;
2988
2989 /*Secondary channel offset */
2990 ePhyChanBondState secondaryChannelOffset;
2991
2992 //HAL fills in the tx power used for mgmt frames in this field.
2993 tPowerdBm txMgmtPower;
2994
2995 /* Max TX power */
2996 tPowerdBm maxTxPower;
2997
2998 /* Self STA MAC */
2999 tSirMacAddr selfStaMacAddr;
3000
3001 /*VO WIFI comment: BSSID needed to identify session. As the request has
3002 * power constraints, this should be applied only to that session
3003 * Since MTU timing and EDCA are sessionized, this struct needs to be
3004 * sessionized and bssid needs to be out of the VOWifi feature flag
3005 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07003006 * mantain backward compatbility
3007 * by way of ignoring if using new host/old FW or old host/new FW since
3008 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003009 */
3010 tSirMacAddr bssId;
3011
3012 /* Source of Channel Switch */
3013 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07003014
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003015} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
3016
3017typedef PACKED_PRE struct PACKED_POST
3018{
3019 tHalMsgHeader header;
3020 tSwitchChannelParams_V1 switchChannelParams_V1;
3021} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
3022
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003023/*---------------------------------------------------------------------------
3024WLAN_HAL_CH_SWITCH_V1_RSP
3025---------------------------------------------------------------------------*/
3026
3027typedef PACKED_PRE struct PACKED_POST
3028{
3029 /* Status */
3030 tANI_U32 status;
3031
3032 /* Channel number - same as in request*/
3033 tANI_U8 channelNumber;
3034
3035 /* HAL fills in the tx power used for mgmt frames in this field */
3036 tPowerdBm txMgmtPower;
3037
3038 /* BSSID needed to identify session - same as in request*/
3039 tSirMacAddr bssId;
3040
3041 /* Source of Channel Switch */
3042 eHalChanSwitchSource channelSwitchSrc;
3043
3044} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
3045
3046typedef PACKED_PRE struct PACKED_POST
3047{
3048 tHalMsgHeader header;
3049 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
3050} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07003051
3052/*---------------------------------------------------------------------------
3053WLAN_HAL_CH_SWITCH_REQ
3054---------------------------------------------------------------------------*/
3055
3056typedef PACKED_PRE struct PACKED_POST
3057{
3058 /* Channel number */
3059 tANI_U8 channelNumber;
3060
3061 /* Local power constraint */
3062 tANI_U8 localPowerConstraint;
3063
3064 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07003065 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003066
3067 //HAL fills in the tx power used for mgmt frames in this field.
3068 tPowerdBm txMgmtPower;
3069
3070 /* Max TX power */
3071 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05303072
Jeff Johnson295189b2012-06-20 16:38:30 -07003073 /* Self STA MAC */
3074 tSirMacAddr selfStaMacAddr;
3075
3076 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
3077 this should be applied only to that session*/
3078 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
3079 * bssid needs to be out of the VOWifi feature flag */
3080 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
3081 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
3082 */
3083 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303084
Jeff Johnson295189b2012-06-20 16:38:30 -07003085}tSwitchChannelParams, *tpSwitchChannelParams;
3086
3087typedef PACKED_PRE struct PACKED_POST
3088{
3089 tHalMsgHeader header;
3090 tSwitchChannelParams switchChannelParams;
3091} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
3092
3093/*---------------------------------------------------------------------------
3094WLAN_HAL_CH_SWITCH_RSP
3095---------------------------------------------------------------------------*/
3096
3097typedef PACKED_PRE struct PACKED_POST
3098{
3099 /* Status */
3100 tANI_U32 status;
3101
3102 /* Channel number - same as in request*/
3103 tANI_U8 channelNumber;
3104
3105 /* HAL fills in the tx power used for mgmt frames in this field */
3106 tPowerdBm txMgmtPower;
3107
3108 /* BSSID needed to identify session - same as in request*/
3109 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303110
Jeff Johnson295189b2012-06-20 16:38:30 -07003111}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3112
3113typedef PACKED_PRE struct PACKED_POST
3114{
3115 tHalMsgHeader header;
3116 tSwitchChannelRspParams switchChannelRspParams;
3117} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3118
3119/*---------------------------------------------------------------------------
3120WLAN_HAL_UPD_EDCA_PARAMS_REQ
3121---------------------------------------------------------------------------*/
3122
3123typedef PACKED_PRE struct PACKED_POST
3124{
3125 /*BSS Index*/
3126 tANI_U16 bssIdx;
3127
3128 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303129 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003130
3131 /* Background */
3132 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303133
Jeff Johnson295189b2012-06-20 16:38:30 -07003134 /* Video */
3135 tSirMacEdcaParamRecord acvi;
3136
3137 /* Voice */
3138 tSirMacEdcaParamRecord acvo;
3139
3140} tEdcaParams, *tpEdcaParams;
3141
3142typedef PACKED_PRE struct PACKED_POST
3143{
3144 tHalMsgHeader header;
3145 tEdcaParams edcaParams;
3146} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3147
3148/*---------------------------------------------------------------------------
3149WLAN_HAL_UPD_EDCA_PARAMS_RSP
3150---------------------------------------------------------------------------*/
3151typedef PACKED_PRE struct PACKED_POST
3152{
3153 /*success or failure */
3154 tANI_U32 status;
3155} tEdcaRspParams, *tpEdcaRspParams;
3156
3157typedef PACKED_PRE struct PACKED_POST
3158{
3159 tHalMsgHeader header;
3160 tEdcaRspParams edcaRspParams;
3161} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3162
3163
3164
3165/*---------------------------------------------------------------------------
3166 * WLAN_HAL_GET_STATS_REQ
3167 *--------------------------------------------------------------------------*/
3168typedef PACKED_PRE struct PACKED_POST
3169
3170{
3171 /* Index of STA to which the statistics */
3172 tANI_U16 staIdx;
3173
3174 /* Encryption mode */
3175 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303176
Jeff Johnson295189b2012-06-20 16:38:30 -07003177 /* status */
3178 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303179
Jeff Johnson295189b2012-06-20 16:38:30 -07003180 /* Statistics */
3181 tANI_U32 sendBlocks;
3182 tANI_U32 recvBlocks;
3183 tANI_U32 replays;
3184 tANI_U8 micErrorCnt;
3185 tANI_U32 protExclCnt;
3186 tANI_U16 formatErrCnt;
3187 tANI_U16 unDecryptableCnt;
3188 tANI_U32 decryptErrCnt;
3189 tANI_U32 decryptOkCnt;
3190} tDpuStatsParams, * tpDpuStatsParams;
3191
3192typedef PACKED_PRE struct PACKED_POST
3193{
3194 /* Valid STA Idx for per STA stats request */
3195 tANI_U32 staId;
3196
3197 /* Categories of stats requested as specified in eHalStatsMask*/
3198 tANI_U32 statsMask;
3199}tHalStatsReqParams, *tpHalStatsReqParams;
3200
3201typedef PACKED_PRE struct PACKED_POST
3202{
3203 tHalMsgHeader header;
3204 tHalStatsReqParams statsReqParams;
3205} tHalStatsReqMsg, *tpHalStatsReqMsg;
3206
3207/*---------------------------------------------------------------------------
3208 * WLAN_HAL_GET_STATS_RSP
3209 *--------------------------------------------------------------------------*/
3210
3211typedef PACKED_PRE struct PACKED_POST
3212{
3213 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3214 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3215 // station successfully transmitted after more than one retransmission attempt
3216
Dino Mycle8afbac12014-07-04 22:06:17 +05303217 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3218 //(with and without retries, including multi-cast, broadcast)
3219 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3220 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003221 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3222 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3223 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3224 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 +05303225 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3226 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 -07003227 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3228 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 +05303229 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3230 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003231 //to provide this.
3232}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3233
3234
3235// defines tx_rate_flags
3236typedef enum eTxRateInfo
3237{
3238 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3239 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3240 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3241 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003242 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3243 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3244 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3245 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3246 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3247 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3248} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003249
3250
3251typedef PACKED_PRE struct PACKED_POST
3252{
Dino Mycle8afbac12014-07-04 22:06:17 +05303253 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 -07003254 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303255 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 -07003256 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303257 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3258 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003259 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303260 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3261 //for eg: if it is 10.5dBm, the value would be 105
3262 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3263 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003264
Dino Mycle8afbac12014-07-04 22:06:17 +05303265 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3266 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003267 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303268 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3269 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003270}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3271
3272typedef PACKED_PRE struct PACKED_POST
3273{
Dino Mycle8afbac12014-07-04 22:06:17 +05303274 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3275 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003276 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303277 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 -07003278 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303279 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 -07003280 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303281 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 -07003282 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303283 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 -07003284 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303285 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 -07003286 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303287 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 -07003288 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303289 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 -07003290 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303291 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 -07003292 //decrypted
3293 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3294
3295}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303296
Jeff Johnson295189b2012-06-20 16:38:30 -07003297typedef PACKED_PRE struct PACKED_POST
3298{
3299 tAniGlobalSecurityStats ucStats;
3300 tAniGlobalSecurityStats mcbcStats;
3301}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3302
3303typedef PACKED_PRE struct PACKED_POST
3304{
Dino Mycle8afbac12014-07-04 22:06:17 +05303305 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3306 //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 -07003307 //address 1 field
3308 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 +05303309 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 -07003310 //primary channel
3311 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 +05303312 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 -07003313 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303314 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3315 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003316 //decoded correctly
3317}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3318
3319typedef PACKED_PRE struct PACKED_POST
3320{
Dino Mycle8afbac12014-07-04 22:06:17 +05303321 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 -07003322 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303323 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3324 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 -07003325 //is transmitted
3326}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3327
Sushant Kaushik33200572015-08-05 16:46:20 +05303328// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3329typedef PACKED_PRE struct PACKED_POST
3330{
3331 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303332 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303333 tANI_U32 reserved;
3334 tANI_U32 reserved1;
3335}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3336
Jeff Johnson295189b2012-06-20 16:38:30 -07003337typedef PACKED_PRE struct PACKED_POST
3338{
3339 /* Success or Failure */
3340 tANI_U32 status;
3341
3342 /* STA Idx */
3343 tANI_U32 staId;
3344
3345 /* Categories of STATS being returned as per eHalStatsMask*/
3346 tANI_U32 statsMask;
3347
3348 /* message type is same as the request type */
3349 tANI_U16 msgType;
3350
3351 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303352 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003353
3354} tHalStatsRspParams, *tpHalStatsRspParams;
3355
3356
3357
3358typedef PACKED_PRE struct PACKED_POST
3359{
3360 tHalMsgHeader header;
3361 tHalStatsRspParams statsRspParams;
3362} tHalStatsRspMsg, *tpHalStatsRspMsg;
3363
Abhishek Singhbc310882015-05-22 15:17:02 +05303364 /*---------------------------------------------------------------------------
3365 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3366 *---------------------------------------------------------------------------*/
3367typedef PACKED_PRE struct PACKED_POST
3368{
3369 tANI_U32 rtsCtsValue;
3370}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3371
3372typedef PACKED_PRE struct PACKED_POST
3373{
3374 tHalMsgHeader header;
3375 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3376} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3377
Jeff Johnson295189b2012-06-20 16:38:30 -07003378/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303379 * WLAN_HAL_FW_STATS_REQ
3380 *---------------------------------------------------------------------------*/
3381 typedef PACKED_PRE struct PACKED_POST
3382{
3383 tANI_U32 type;
3384}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3385
3386typedef PACKED_PRE struct PACKED_POST
3387{
3388 tHalMsgHeader header;
3389 tHalfwStatsReqParams fwstatsReqParams;
3390} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3391
3392/*---------------------------------------------------------------------------
3393 * WLAN_HAL_FW_STATS_RSP
3394 *---------------------------------------------------------------------------*/
3395 typedef PACKED_PRE struct PACKED_POST
3396{
3397 tANI_U32 type;
3398 tANI_U32 length;
3399 tANI_U8 data[1];
3400
3401}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3402
3403typedef PACKED_PRE struct PACKED_POST
3404{
3405 tHalMsgHeader header;
3406 tHalfwStatsRspParams fwstatsRspParams;
3407} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3408
3409typedef enum
3410{
3411 FW_UBSP_STATS = 1,
3412} fwstatstype;
3413
3414
3415/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003416 * WLAN_HAL_SET_LINK_ST_REQ
3417 *--------------------------------------------------------------------------*/
3418typedef PACKED_PRE struct PACKED_POST
3419{
3420 tSirMacAddr bssid;
3421 tSirLinkState state;
3422 tSirMacAddr selfMacAddr;
3423} tLinkStateParams, *tpLinkStateParams;
3424
3425typedef PACKED_PRE struct PACKED_POST
3426{
3427 tHalMsgHeader header;
3428 tLinkStateParams linkStateParams;
3429} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3430
3431/*---------------------------------------------------------------------------
3432 * WLAN_HAL_SET_LINK_ST_RSP
3433 *--------------------------------------------------------------------------*/
3434
3435typedef PACKED_PRE struct PACKED_POST
3436{
3437 /*success or failure */
3438 tANI_U32 status;
3439} tLinkStateRspParams, *tpLinkStateRspParams;
3440
3441typedef PACKED_PRE struct PACKED_POST
3442{
3443 tHalMsgHeader header;
3444 tLinkStateRspParams linkStateRspParams;
3445} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3446
3447/*---------------------------------------------------------------------------
3448 * WLAN_HAL_ADD_TS_REQ
3449 *--------------------------------------------------------------------------*/
3450
3451/* TSPEC Params */
3452typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3453{
Jeff Johnson295189b2012-06-20 16:38:30 -07003454 tANI_U16 trafficType : 1;
3455 tANI_U16 tsid : 4;
3456 tANI_U16 direction : 2;
3457 tANI_U16 accessPolicy : 2;
3458 tANI_U16 aggregation : 1;
3459 tANI_U16 psb : 1;
3460 tANI_U16 userPrio : 3;
3461 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003462} __ani_attr_packed tSirMacTSInfoTfc;
3463
3464/* Flag to schedule the traffic type */
3465typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3466{
Jeff Johnson295189b2012-06-20 16:38:30 -07003467 tANI_U8 schedule : 1;
3468 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003469} __ani_attr_packed tSirMacTSInfoSch;
3470
3471/* Traffic and scheduling info */
3472typedef __ani_attr_pre_packed struct sSirMacTSInfo
3473{
3474 tSirMacTSInfoTfc traffic;
3475 tSirMacTSInfoSch schedule;
3476} __ani_attr_packed tSirMacTSInfo;
3477
3478/* Information elements */
3479typedef __ani_attr_pre_packed struct sSirMacTspecIE
3480{
3481 tANI_U8 type;
3482 tANI_U8 length;
3483 tSirMacTSInfo tsinfo;
3484 tANI_U16 nomMsduSz;
3485 tANI_U16 maxMsduSz;
3486 tANI_U32 minSvcInterval;
3487 tANI_U32 maxSvcInterval;
3488 tANI_U32 inactInterval;
3489 tANI_U32 suspendInterval;
3490 tANI_U32 svcStartTime;
3491 tANI_U32 minDataRate;
3492 tANI_U32 meanDataRate;
3493 tANI_U32 peakDataRate;
3494 tANI_U32 maxBurstSz;
3495 tANI_U32 delayBound;
3496 tANI_U32 minPhyRate;
3497 tANI_U16 surplusBw;
3498 tANI_U16 mediumTime;
3499}__ani_attr_packed tSirMacTspecIE;
3500
3501typedef PACKED_PRE struct PACKED_POST
3502{
3503 /* Station Index */
3504 tANI_U16 staIdx;
3505
3506 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3507 tANI_U16 tspecIdx;
3508
3509 /* To program TPE with required parameters */
3510 tSirMacTspecIE tspec;
3511
3512 /* U-APSD Flags: 1b per AC. Encoded as follows:
3513 b7 b6 b5 b4 b3 b2 b1 b0 =
3514 X X X X BE BK VI VO */
3515 tANI_U8 uAPSD;
3516
3517 /* These parameters are for all the access categories */
3518 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3519 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3520 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303521
Jeff Johnson295189b2012-06-20 16:38:30 -07003522} tAddTsParams, *tpAddTsParams;
3523
3524typedef PACKED_PRE struct PACKED_POST
3525{
3526 tHalMsgHeader header;
3527 tAddTsParams addTsParams;
3528} tAddTsReqMsg, *tpAddTsReqMsg;
3529
3530/*---------------------------------------------------------------------------
3531 * WLAN_HAL_ADD_TS_RSP
3532 *--------------------------------------------------------------------------*/
3533
3534typedef PACKED_PRE struct PACKED_POST
3535{
3536 /*success or failure */
3537 tANI_U32 status;
3538} tAddTsRspParams, *tpAddTsRspParams;
3539
3540typedef PACKED_PRE struct PACKED_POST
3541{
3542 tHalMsgHeader header;
3543 tAddTsRspParams addTsRspParams;
3544} tAddTsRspMsg, *tpAddTsRspMsg;
3545
3546
3547/*---------------------------------------------------------------------------
3548 * WLAN_HAL_DEL_TS_REQ
3549 *--------------------------------------------------------------------------*/
3550
3551typedef PACKED_PRE struct PACKED_POST
3552{
3553 /* Station Index */
3554 tANI_U16 staIdx;
3555
3556 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3557 tANI_U16 tspecIdx;
3558
3559 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303560 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003561
3562} tDelTsParams, *tpDelTsParams;
3563
3564typedef PACKED_PRE struct PACKED_POST
3565{
3566 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303567 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003568} tDelTsReqMsg, *tpDelTsReqMsg;
3569
3570/*---------------------------------------------------------------------------
3571 * WLAN_HAL_DEL_TS_RSP
3572 *--------------------------------------------------------------------------*/
3573
3574typedef PACKED_PRE struct PACKED_POST
3575{
3576 /*success or failure */
3577 tANI_U32 status;
3578} tDelTsRspParams, *tpDelTsRspParams;
3579
3580typedef PACKED_PRE struct PACKED_POST
3581{
3582 tHalMsgHeader header;
3583 tDelTsRspParams delTsRspParams;
3584} tDelTsRspMsg, *tpDelTsRspMsg;
3585
3586/* End of TSpec Parameters */
3587
3588/* Start of BLOCK ACK related Parameters */
3589
3590/*---------------------------------------------------------------------------
3591 * WLAN_HAL_ADD_BA_SESSION_REQ
3592 *--------------------------------------------------------------------------*/
3593
3594typedef PACKED_PRE struct PACKED_POST
3595{
3596 /* Station Index */
3597 tANI_U16 staIdx;
3598
3599 /* Peer MAC Address */
3600 tSirMacAddr peerMacAddr;
3601
3602 /* ADDBA Action Frame dialog token
3603 HAL will not interpret this object */
3604 tANI_U8 baDialogToken;
3605
3606 /* TID for which the BA is being setup
3607 This identifies the TC or TS of interest */
3608 tANI_U8 baTID;
3609
3610 /* 0 - Delayed BA (Not supported)
3611 1 - Immediate BA */
3612 tANI_U8 baPolicy;
3613
3614 /* Indicates the number of buffers for this TID (baTID)
3615 NOTE - This is the requested buffer size. When this
3616 is processed by HAL and subsequently by HDD, it is
3617 possible that HDD may change this buffer size. Any
3618 change in the buffer size should be noted by PE and
3619 advertized appropriately in the ADDBA response */
3620 tANI_U16 baBufferSize;
3621
3622 /* BA timeout in TU's 0 means no timeout will occur */
3623 tANI_U16 baTimeout;
3624
3625 /* b0..b3 - Fragment Number - Always set to 0
3626 b4..b15 - Starting Sequence Number of first MSDU
3627 for which this BA is setup */
3628 tANI_U16 baSSN;
3629
3630 /* ADDBA direction
3631 1 - Originator
3632 0 - Recipient */
3633 tANI_U8 baDirection;
3634} tAddBASessionParams, *tpAddBASessionParams;
3635
3636typedef PACKED_PRE struct PACKED_POST
3637{
3638 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303639 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003640}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3641
3642/*---------------------------------------------------------------------------
3643 * WLAN_HAL_ADD_BA_SESSION_RSP
3644 *--------------------------------------------------------------------------*/
3645
3646typedef PACKED_PRE struct PACKED_POST
3647{
3648 /*success or failure */
3649 tANI_U32 status;
3650
3651 /* Dialog token */
3652 tANI_U8 baDialogToken;
3653
3654 /* TID for which the BA session has been setup */
3655 tANI_U8 baTID;
3656
3657 /* BA Buffer Size allocated for the current BA session */
3658 tANI_U8 baBufferSize;
3659
3660 tANI_U8 baSessionID;
3661
3662 /* Reordering Window buffer */
3663 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303664
Jeff Johnson295189b2012-06-20 16:38:30 -07003665 /*Station Index to id the sta */
3666 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303667
Jeff Johnson295189b2012-06-20 16:38:30 -07003668 /* Starting Sequence Number */
3669 tANI_U16 SSN;
3670} tAddBASessionRspParams, *tpAddBASessionRspParams;
3671
3672typedef PACKED_PRE struct PACKED_POST
3673{
3674 tHalMsgHeader header;
3675 tAddBASessionRspParams addBASessionRspParams;
3676} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3677
3678/*---------------------------------------------------------------------------
3679 * WLAN_HAL_ADD_BA_REQ
3680 *--------------------------------------------------------------------------*/
3681
3682typedef PACKED_PRE struct PACKED_POST
3683{
3684 /* Session Id */
3685 tANI_U8 baSessionID;
3686
3687 /* Reorder Window Size */
3688 tANI_U8 winSize;
3689
3690#ifdef FEATURE_ON_CHIP_REORDERING
3691 tANI_BOOLEAN isReorderingDoneOnChip;
3692#endif
3693} tAddBAParams, *tpAddBAParams;
3694
3695typedef PACKED_PRE struct PACKED_POST
3696{
3697 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303698 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003699} tAddBAReqMsg, *tpAddBAReqMsg;
3700
3701
3702/*---------------------------------------------------------------------------
3703 * WLAN_HAL_ADD_BA_RSP
3704 *--------------------------------------------------------------------------*/
3705
3706typedef PACKED_PRE struct PACKED_POST
3707{
3708 /*success or failure */
3709 tANI_U32 status;
3710
3711 /* Dialog token */
3712 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303713
Jeff Johnson295189b2012-06-20 16:38:30 -07003714} tAddBARspParams, *tpAddBARspParams;
3715
3716typedef PACKED_PRE struct PACKED_POST
3717{
3718 tHalMsgHeader header;
3719 tAddBARspParams addBARspParams;
3720} tAddBARspMsg, *tpAddBARspMsg;
3721
3722
3723/*---------------------------------------------------------------------------
3724 * WLAN_HAL_TRIGGER_BA_REQ
3725 *--------------------------------------------------------------------------*/
3726
3727
3728typedef struct sAddBaInfo
3729{
3730 tANI_U16 fBaEnable : 1;
3731 tANI_U16 startingSeqNum: 12;
3732 tANI_U16 reserved : 3;
3733}tAddBaInfo, *tpAddBaInfo;
3734
3735typedef struct sTriggerBaRspCandidate
3736{
3737 tSirMacAddr staAddr;
3738 tAddBaInfo baInfo[STACFG_MAX_TC];
3739}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3740
3741typedef struct sTriggerBaCandidate
3742{
3743 tANI_U8 staIdx;
3744 tANI_U8 tidBitmap;
3745}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3746
3747typedef PACKED_PRE struct PACKED_POST
3748{
3749 /* Session Id */
3750 tANI_U8 baSessionID;
3751
Dino Mycle8afbac12014-07-04 22:06:17 +05303752 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003753 * Candidate List(tTriggerBaCandidate)
3754 */
3755 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303756
Jeff Johnson295189b2012-06-20 16:38:30 -07003757} tTriggerBAParams, *tpTriggerBAParams;
3758
3759typedef PACKED_PRE struct PACKED_POST
3760{
3761 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303762 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003763} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3764
3765
3766/*---------------------------------------------------------------------------
3767 * WLAN_HAL_TRIGGER_BA_RSP
3768 *--------------------------------------------------------------------------*/
3769
3770typedef PACKED_PRE struct PACKED_POST
3771{
Dino Mycle8afbac12014-07-04 22:06:17 +05303772
Jeff Johnson295189b2012-06-20 16:38:30 -07003773 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303774 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003775
3776 /* success or failure */
3777 tANI_U32 status;
3778
Dino Mycle8afbac12014-07-04 22:06:17 +05303779 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003780 * Rsp Candidate List(tTriggerRspBaCandidate)
3781 */
3782 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303783
Jeff Johnson295189b2012-06-20 16:38:30 -07003784
3785} tTriggerBARspParams, *tpTriggerBARspParams;
3786
3787typedef PACKED_PRE struct PACKED_POST
3788{
3789 tHalMsgHeader header;
3790 tTriggerBARspParams triggerBARspParams;
3791} tTriggerBARspMsg, *tpTriggerBARspMsg;
3792
3793/*---------------------------------------------------------------------------
3794 * WLAN_HAL_DEL_BA_REQ
3795 *--------------------------------------------------------------------------*/
3796
3797typedef PACKED_PRE struct PACKED_POST
3798{
3799 /* Station Index */
3800 tANI_U16 staIdx;
3801
3802 /* TID for which the BA session is being deleted */
3803 tANI_U8 baTID;
3804
3805 /* DELBA direction
3806 1 - Originator
3807 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303808 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003809} tDelBAParams, *tpDelBAParams;
3810
3811typedef PACKED_PRE struct PACKED_POST
3812{
3813 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303814 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003815} tDelBAReqMsg, *tpDelBAReqMsg;
3816
3817/*---------------------------------------------------------------------------
3818 * WLAN_HAL_DEL_BA_RSP
3819 *--------------------------------------------------------------------------*/
3820
3821typedef PACKED_PRE struct PACKED_POST
3822{
3823 /* success or failure */
3824 tANI_U32 status;
3825} tDelBARspParams, *tpDelBARspParams;
3826
3827typedef PACKED_PRE struct PACKED_POST
3828{
3829 tHalMsgHeader header;
3830 tDelBARspParams delBARspParams;
3831} tDelBARspMsg, *tpDelBARspMsg;
3832
3833
Jeff Johnson295189b2012-06-20 16:38:30 -07003834/*---------------------------------------------------------------------------
3835 * WLAN_HAL_TSM_STATS_REQ
3836 *--------------------------------------------------------------------------*/
3837typedef PACKED_PRE struct PACKED_POST
3838{
3839 /* Traffic Id */
3840 tANI_U8 tsmTID;
3841
3842 tSirMacAddr bssId;
3843} tTsmStatsParams, *tpTsmStatsParams;
3844
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303848 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003849} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3850
3851
3852/*---------------------------------------------------------------------------
3853 * WLAN_HAL_TSM_STATS_RSP
3854 *--------------------------------------------------------------------------*/
3855typedef PACKED_PRE struct PACKED_POST
3856{
3857 /*success or failure */
3858 tANI_U32 status;
3859
Dino Mycle8afbac12014-07-04 22:06:17 +05303860 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003861 tANI_U16 UplinkPktQueueDly;
3862
Dino Mycle8afbac12014-07-04 22:06:17 +05303863 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003864 tANI_U16 UplinkPktQueueDlyHist[4];
3865
Dino Mycle8afbac12014-07-04 22:06:17 +05303866 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003867 tANI_U32 UplinkPktTxDly;
3868
Dino Mycle8afbac12014-07-04 22:06:17 +05303869 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003870 tANI_U16 UplinkPktLoss;
3871
Dino Mycle8afbac12014-07-04 22:06:17 +05303872 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003873 tANI_U16 UplinkPktCount;
3874
Dino Mycle8afbac12014-07-04 22:06:17 +05303875 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003876 tANI_U8 RoamingCount;
3877
Dino Mycle8afbac12014-07-04 22:06:17 +05303878 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003879 tANI_U16 RoamingDly;
3880} tTsmStatsRspParams, *tpTsmStatsRspParams;
3881
3882typedef PACKED_PRE struct PACKED_POST
3883{
3884 tHalMsgHeader header;
3885 tTsmStatsRspParams tsmStatsRspParams;
3886} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3887
3888
Jeff Johnson295189b2012-06-20 16:38:30 -07003889/*---------------------------------------------------------------------------
3890 * WLAN_HAL_SET_KEYDONE_MSG
3891 *--------------------------------------------------------------------------*/
3892
3893typedef PACKED_PRE struct PACKED_POST
3894{
3895 /*bssid of the keys */
3896 tANI_U8 bssidx;
3897 tANI_U8 encType;
3898} tSetKeyDoneParams, *tpSetKeyDoneParams;
3899
3900typedef PACKED_PRE struct PACKED_POST
3901{
3902 tHalMsgHeader header;
3903 tSetKeyDoneParams setKeyDoneParams;
3904} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3905
3906/*---------------------------------------------------------------------------
3907 * WLAN_HAL_DOWNLOAD_NV_REQ
3908 *--------------------------------------------------------------------------*/
3909typedef PACKED_PRE struct PACKED_POST
3910{
3911 /* Fragment sequence number of the NV Image. Note that NV Image might not
3912 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303913 * can hence choose to chop the NV blob into multiple fragments starting with
3914 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003915 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3916 * concatenated together by HAL without any padding bytes in between.*/
3917 tANI_U16 fragNumber;
3918
3919 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303920 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003921 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3922 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3923 tANI_U16 isLastFragment;
3924
3925 /* NV Image size (number of bytes) */
3926 tANI_U32 nvImgBufferSize;
3927
3928 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3929 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3930} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3931
3932typedef PACKED_PRE struct PACKED_POST
3933{
3934 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3935 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3936 tHalMsgHeader header;
3937 tHalNvImgDownloadReqParams nvImageReqParams;
3938} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3939
3940/*---------------------------------------------------------------------------
3941 * WLAN_HAL_DOWNLOAD_NV_RSP
3942 *--------------------------------------------------------------------------*/
3943typedef PACKED_PRE struct PACKED_POST
3944{
3945 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3946 * after each fragment */
3947 tANI_U32 status;
3948} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3949
3950typedef PACKED_PRE struct PACKED_POST
3951{
3952 tHalMsgHeader header;
3953 tHalNvImgDownloadRspParams nvImageRspParams;
3954} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3955
3956/*---------------------------------------------------------------------------
3957 * WLAN_HAL_STORE_NV_IND
3958 *--------------------------------------------------------------------------*/
3959typedef PACKED_PRE struct PACKED_POST
3960{
3961 /* NV Item */
3962 eNvTable tableID;
3963
3964 /* Size of NV Blob */
3965 tANI_U32 nvBlobSize;
3966
Dino Mycle8afbac12014-07-04 22:06:17 +05303967 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003968 * NV blob i.e. uint8[nvBlobSize] */
3969} tHalNvStoreParams, *tpHalNvStoreParams;
3970
3971typedef PACKED_PRE struct PACKED_POST
3972{
3973 /* Note: The length specified in tHalNvStoreInd messages should be
3974 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3975 tHalMsgHeader header;
3976 tHalNvStoreParams nvStoreParams;
3977} tHalNvStoreInd, *tpHalNvStoreInd;
3978
3979/* End of Block Ack Related Parameters */
3980
3981/*---------------------------------------------------------------------------
3982 * WLAN_HAL_MIC_FAILURE_IND
3983 *--------------------------------------------------------------------------*/
3984
3985#define SIR_CIPHER_SEQ_CTR_SIZE 6
3986
3987typedef PACKED_PRE struct PACKED_POST
3988{
Dino Mycle8afbac12014-07-04 22:06:17 +05303989 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003990 tSirMacAddr taMacAddr; //transmitter address
3991 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303992 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003993 tANI_U8 IV1; // first byte of IV
3994 tANI_U8 keyId; // second byte of IV
3995 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3996 tSirMacAddr rxMacAddr; // receive address
3997} tSirMicFailureInfo, *tpSirMicFailureInfo;
3998
3999/* Definition for MIC failure indication
4000 MAC reports this each time a MIC failure occures on Rx TKIP packet
4001 */
4002typedef PACKED_PRE struct PACKED_POST
4003{
4004 tSirMacAddr bssId; // BSSID
4005 tSirMicFailureInfo info;
4006} tSirMicFailureInd, *tpSirMicFailureInd;
4007
4008typedef PACKED_PRE struct PACKED_POST
4009{
4010 tHalMsgHeader header;
4011 tSirMicFailureInd micFailureInd;
4012} tMicFailureIndMsg, *tpMicFailureIndMsg;
4013
Mohit Khanna4a70d262012-09-11 16:30:12 -07004014typedef PACKED_PRE struct PACKED_POST
4015{
4016 tANI_U16 opMode;
4017 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05304018}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07004019
4020typedef PACKED_PRE struct PACKED_POST
4021{
4022 tHalMsgHeader header;
4023 tUpdateVHTOpMode updateVhtOpMode;
4024} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
4025
4026typedef PACKED_PRE struct PACKED_POST
4027{
4028 tANI_U32 status;
4029} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
4030
4031typedef PACKED_PRE struct PACKED_POST
4032{
4033 tHalMsgHeader header;
4034 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
4035} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
4036
Jeff Johnson295189b2012-06-20 16:38:30 -07004037/*---------------------------------------------------------------------------
4038 * WLAN_HAL_UPDATE_BEACON_REQ
4039 *--------------------------------------------------------------------------*/
4040typedef PACKED_PRE struct PACKED_POST
4041{
4042
4043 tANI_U8 bssIdx;
4044
4045 //shortPreamble mode. HAL should update all the STA rates when it
4046 //receives this message
4047 tANI_U8 fShortPreamble;
4048 //short Slot time.
4049 tANI_U8 fShortSlotTime;
4050 //Beacon Interval
4051 tANI_U16 beaconInterval;
4052 //Protection related
4053 tANI_U8 llaCoexist;
4054 tANI_U8 llbCoexist;
4055 tANI_U8 llgCoexist;
4056 tANI_U8 ht20MhzCoexist;
4057 tANI_U8 llnNonGFCoexist;
4058 tANI_U8 fLsigTXOPProtectionFullSupport;
4059 tANI_U8 fRIFSMode;
4060
4061 tANI_U16 paramChangeBitmap;
4062}tUpdateBeaconParams, *tpUpdateBeaconParams;
4063
4064
4065typedef PACKED_PRE struct PACKED_POST
4066{
4067 tHalMsgHeader header;
4068 tUpdateBeaconParams updateBeaconParam;
4069} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
4070
4071/*---------------------------------------------------------------------------
4072 * WLAN_HAL_UPDATE_BEACON_RSP
4073 *--------------------------------------------------------------------------*/
4074typedef PACKED_PRE struct PACKED_POST
4075{
4076 tANI_U32 status;
4077} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
4078
4079typedef PACKED_PRE struct PACKED_POST
4080{
4081 tHalMsgHeader header;
4082 tUpdateBeaconRspParams updateBeaconRspParam;
4083} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
4084
4085/*---------------------------------------------------------------------------
4086 * WLAN_HAL_SEND_BEACON_REQ
4087 *--------------------------------------------------------------------------*/
4088typedef PACKED_PRE struct PACKED_POST
4089{
4090 tANI_U32 beaconLength; //length of the template.
4091 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
4092 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004093 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07004094 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
4095}tSendBeaconParams, *tpSendBeaconParams;
4096
4097
4098typedef PACKED_PRE struct PACKED_POST
4099{
4100 tHalMsgHeader header;
4101 tSendBeaconParams sendBeaconParam;
4102}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4103
4104/*---------------------------------------------------------------------------
4105 * WLAN_HAL_SEND_BEACON_RSP
4106 *--------------------------------------------------------------------------*/
4107typedef PACKED_PRE struct PACKED_POST
4108{
4109 tANI_U32 status;
4110} tSendBeaconRspParams, *tpSendBeaconRspParams;
4111
4112typedef PACKED_PRE struct PACKED_POST
4113{
4114 tHalMsgHeader header;
4115 tSendBeaconRspParams sendBeaconRspParam;
4116} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4117
4118#ifdef FEATURE_5GHZ_BAND
4119
4120/*---------------------------------------------------------------------------
4121 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4122 *--------------------------------------------------------------------------*/
4123typedef PACKED_PRE struct PACKED_POST
4124{
4125 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304126 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004127}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4128
4129
4130typedef PACKED_PRE struct PACKED_POST
4131{
4132 /* Link Parameters */
4133 tSirEnableRadarInfoType EnableRadarInfo;
4134}tEnableRadarReqParams, *tpEnableRadarReqParams;
4135
4136typedef PACKED_PRE struct PACKED_POST
4137{
4138 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304139 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004140}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4141
4142/*---------------------------------------------------------------------------
4143 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4144 *--------------------------------------------------------------------------*/
4145
4146typedef PACKED_PRE struct PACKED_POST
4147{
4148 /* Link Parameters */
4149 tSirMacAddr BSSID;
4150 /* success or failure */
4151 tANI_U32 status;
4152}tEnableRadarRspParams, *tpEnableRadarRspParams;
4153
4154typedef PACKED_PRE struct PACKED_POST
4155{
4156 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304157 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004158}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4159
4160/*---------------------------------------------------------------------------
4161 *WLAN_HAL_RADAR_DETECT_INTR_IND
4162 *--------------------------------------------------------------------------*/
4163
4164typedef PACKED_PRE struct PACKED_POST
4165{
4166 tANI_U8 radarDetChannel;
4167}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4168
4169typedef PACKED_PRE struct PACKED_POST
4170{
4171 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304172 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004173}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4174
4175/*---------------------------------------------------------------------------
4176 *WLAN_HAL_RADAR_DETECT_IND
4177 *-------------------------------------------------------------------------*/
4178typedef PACKED_PRE struct PACKED_POST
4179{
4180 /*channel number in which the RADAR detected*/
4181 tANI_U8 channelNumber;
4182
4183 /*RADAR pulse width*/
4184 tANI_U16 radarPulseWidth; // in usecond
4185
4186 /*Number of RADAR pulses */
4187 tANI_U16 numRadarPulse;
4188}tRadarDetectIndParams,*tpRadarDetectIndParams;
4189
4190typedef PACKED_PRE struct PACKED_POST
4191{
4192 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304193 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004194}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4195
4196
4197/*---------------------------------------------------------------------------
4198 *WLAN_HAL_GET_TPC_REPORT_REQ
4199 *-------------------------------------------------------------------------*/
4200typedef PACKED_PRE struct PACKED_POST
4201{
4202 tSirMacAddr sta;
4203 tANI_U8 dialogToken;
4204 tANI_U8 txpower;
4205}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4206
4207
4208typedef PACKED_PRE struct PACKED_POST
4209{
4210 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304211 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004212}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4213
4214/*---------------------------------------------------------------------------
4215 * WLAN_HAL_GET_TPC_REPORT_RSP
4216 *--------------------------------------------------------------------------*/
4217
4218typedef PACKED_PRE struct PACKED_POST
4219{
4220 /* success or failure */
4221 tANI_U32 status;
4222}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4223
4224typedef PACKED_PRE struct PACKED_POST
4225{
4226 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304227 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004228}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4229
4230#endif
4231
Jeff Johnson295189b2012-06-20 16:38:30 -07004232/*---------------------------------------------------------------------------
4233 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4234 *-------------------------------------------------------------------------*/
4235typedef PACKED_PRE struct PACKED_POST
4236{
4237 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4238 tANI_U32 probeRespTemplateLen;
4239 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4240 tSirMacAddr bssId;
4241
4242}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4243
4244typedef PACKED_PRE struct PACKED_POST
4245{
4246 tHalMsgHeader header;
4247 tSendProbeRespReqParams sendProbeRespReqParams ;
4248}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4249
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05304250typedef PACKED_PRE struct PACKED_POST
4251{
4252 tSirMacAddr bssId;
4253 tANI_U32 probeRespTemplateLen;
4254 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4255 tANI_U8 pProbeRespTemplate[1]; //Variable length array
4256}tSendProbeRespReqParams_V1, *tpSendProbeRespReqParams_V1;
4257
4258typedef PACKED_PRE struct PACKED_POST
4259{
4260 tHalMsgHeader header;
4261 tSendProbeRespReqParams_V1 sendProbeRespReqParams_v1;
4262}tSendProbeRespReqMsg_V1, *tpSendProbeRespReqMsg_V1;
4263
Jeff Johnson295189b2012-06-20 16:38:30 -07004264/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304265 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004266 *--------------------------------------------------------------------------*/
4267
4268typedef PACKED_PRE struct PACKED_POST
4269{
4270 /* success or failure */
4271 tANI_U32 status;
4272}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4273
4274typedef PACKED_PRE struct PACKED_POST
4275{
4276 tHalMsgHeader header;
4277 tSendProbeRespRspParams sendProbeRespRspParams;
4278}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4279
4280
4281/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304282 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004283 *--------------------------------------------------------------------------*/
4284
4285typedef PACKED_PRE struct PACKED_POST
4286{
4287 /* success or failure */
4288 tANI_U32 status;
4289}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4290
4291typedef PACKED_PRE struct PACKED_POST
4292{
4293 tHalMsgHeader header;
4294 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4295}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4296
4297/*---------------------------------------------------------------------------
4298 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4299 *--------------------------------------------------------------------------*/
4300
4301typedef PACKED_PRE struct PACKED_POST
4302{
4303 tANI_U16 assocId;
4304 tANI_U16 staId;
4305 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4306 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004307 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304308 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004309
4310}tDeleteStaContextParams, *tpDeleteStaContextParams;
4311
4312
4313typedef PACKED_PRE struct PACKED_POST
4314{
4315 tHalMsgHeader header;
4316 tDeleteStaContextParams deleteStaContextParams;
4317}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4318
Anand Kumar012623a2013-01-11 17:00:00 -08004319typedef PACKED_PRE struct PACKED_POST
4320{
4321 tHalMsgHeader header;
4322 tANI_U8 assocId;
4323 tANI_U8 staIdx;
4324 tANI_U8 bssIdx;
4325 tANI_U8 uReasonCode;
4326 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004327#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4328 tANI_U8 staAddr[6];
4329 tANI_U8 bssId[6];
4330#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004331} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004332
4333/*---------------------------------------------------------------------------
4334 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4335 *--------------------------------------------------------------------------*/
4336
4337typedef PACKED_PRE struct PACKED_POST
4338{
4339 tBtAmpEventType btAmpEventType;
4340
4341}tBtAmpEventParams, *tpBtAmpEventParams;
4342
4343
4344
4345typedef PACKED_PRE struct PACKED_POST
4346{
4347 tHalMsgHeader header;
4348 tBtAmpEventParams btAmpEventParams;
4349}tBtAmpEventMsg, *tpBtAmpEventMsg;
4350
4351/*---------------------------------------------------------------------------
4352*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4353*--------------------------------------------------------------------------*/
4354
4355typedef PACKED_PRE struct PACKED_POST
4356{
4357 /* success or failure */
4358 tANI_U32 status;
4359}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4360
4361typedef PACKED_PRE struct PACKED_POST
4362{
4363 tHalMsgHeader header;
4364 tBtAmpEventRspParams btAmpEventRspParams;
4365}tBtAmpEventRsp, *tpBtAmpEventRsp;
4366
4367
4368/*---------------------------------------------------------------------------
4369 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4370 *--------------------------------------------------------------------------*/
4371
4372typedef PACKED_PRE struct PACKED_POST
4373{
4374 // Station Index. originates from HAL
4375 tANI_U8 ucSTAId;
4376
4377 // TID for which the transmit queue is being flushed
4378 tANI_U8 ucTid;
4379
4380}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4381
4382
4383typedef PACKED_PRE struct PACKED_POST
4384{
4385 tHalMsgHeader header;
4386 tTlHalFlushAcParams tlHalFlushAcParam;
4387}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4388
4389/*---------------------------------------------------------------------------
4390*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4391*--------------------------------------------------------------------------*/
4392
4393typedef PACKED_PRE struct PACKED_POST
4394{
4395 // Station Index. originates from HAL
4396 tANI_U8 ucSTAId;
4397
4398 // TID for which the transmit queue is being flushed
4399 tANI_U8 ucTid;
4400
4401 /* success or failure */
4402 tANI_U32 status;
4403}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4404
4405typedef PACKED_PRE struct PACKED_POST
4406{
4407 tHalMsgHeader header;
4408 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4409}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4410
4411/*---------------------------------------------------------------------------
4412 * WLAN_HAL_ENTER_IMPS_REQ
4413 *--------------------------------------------------------------------------*/
4414typedef PACKED_PRE struct PACKED_POST
4415{
4416 tHalMsgHeader header;
4417} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4418
4419/*---------------------------------------------------------------------------
4420 * WLAN_HAL_EXIT_IMPS_REQ
4421 *--------------------------------------------------------------------------*/
4422typedef PACKED_PRE struct PACKED_POST
4423{
4424 tHalMsgHeader header;
4425} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4426
4427/*---------------------------------------------------------------------------
4428 * WLAN_HAL_ENTER_BMPS_REQ
4429 *--------------------------------------------------------------------------*/
4430
4431typedef PACKED_PRE struct PACKED_POST
4432{
4433 tANI_U8 bssIdx;
4434 //TBTT value derived from the last beacon
4435#ifndef BUILD_QWPTTSTATIC
4436 tANI_U64 tbtt;
4437#endif
4438 tANI_U8 dtimCount;
4439 //DTIM period given to HAL during association may not be valid,
4440 //if association is based on ProbeRsp instead of beacon.
4441 tANI_U8 dtimPeriod;
4442
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004443 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004444 tANI_U32 rssiFilterPeriod;
4445 tANI_U32 numBeaconPerRssiAverage;
4446 tANI_U8 bRssiFilterEnable;
4447
4448} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4449
4450
4451typedef PACKED_PRE struct PACKED_POST
4452{
4453 tHalMsgHeader header;
4454 tHalEnterBmpsReqParams enterBmpsReq;
4455} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4456
4457/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304458 * WLAN_HAL_PRINT_REG_INFO_IND
4459 *--------------------------------------------------------------------------*/
4460typedef PACKED_PRE struct PACKED_POST
4461{
4462 uint32 regAddr;
4463 uint32 regValue;
4464} tHalRegDebugInfo, *tpRegDebugInfo;
4465
4466typedef PACKED_PRE struct PACKED_POST
4467{
4468 uint32 regCount;
4469 uint32 scenario;
4470 uint32 reasonCode;
4471} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4472
4473typedef PACKED_PRE struct PACKED_POST
4474{
4475 tHalMsgHeader header;
4476 tHalRegDebugInfoParams regParams;
4477} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4478
4479/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004480 * WLAN_HAL_EXIT_BMPS_REQ
4481 *--------------------------------------------------------------------------*/
4482typedef PACKED_PRE struct PACKED_POST
4483{
4484 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004485 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004486} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4487
4488typedef PACKED_PRE struct PACKED_POST
4489{
4490 tHalMsgHeader header;
4491 tHalExitBmpsReqParams exitBmpsReqParams;
4492} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4493
4494/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004495 * WLAN_HAL_MISSED_BEACON_IND
4496 *--------------------------------------------------------------------------*/
4497typedef PACKED_PRE struct PACKED_POST
4498{
4499 tANI_U8 bssIdx;
4500} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4501
4502typedef PACKED_PRE struct PACKED_POST
4503{
4504 tHalMsgHeader header;
4505 tHalMissedBeaconIndParams missedBeaconIndParams;
4506} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4507
4508/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004509 * WLAN_HAL_ADD_BCN_FILTER_REQ
4510 *--------------------------------------------------------------------------*/
4511/* Beacon Filtering data structures */
4512typedef PACKED_PRE struct PACKED_POST
4513{
4514 tANI_U8 offset;
4515 tANI_U8 value;
4516 tANI_U8 bitMask;
4517 tANI_U8 ref;
4518} tEidByteInfo, *tpEidByteInfo;
4519
Dino Mycle8afbac12014-07-04 22:06:17 +05304520typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004521{
4522 tANI_U16 capabilityInfo;
4523 tANI_U16 capabilityMask;
4524 tANI_U16 beaconInterval;
4525 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004526 tANI_U8 bssIdx;
4527 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004528} tBeaconFilterMsg, *tpBeaconFilterMsg;
4529
4530/* The above structure would be followed by multiple of below mentioned structure */
4531typedef PACKED_PRE struct PACKED_POST
4532{
4533 tANI_U8 elementId;
4534 tANI_U8 checkIePresence;
4535 tEidByteInfo byte;
4536} tBeaconFilterIe, *tpBeaconFilterIe;
4537
4538typedef PACKED_PRE struct PACKED_POST
4539{
4540 tHalMsgHeader header;
4541 tBeaconFilterMsg addBcnFilterParams;
4542} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4543
4544/*---------------------------------------------------------------------------
4545 * WLAN_HAL_REM_BCN_FILTER_REQ
4546 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304547typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004548{
4549 tANI_U8 ucIeCount;
4550 tANI_U8 ucRemIeId[1];
4551} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4552
4553typedef PACKED_PRE struct PACKED_POST
4554{
4555 tHalMsgHeader header;
4556 tRemBeaconFilterMsg remBcnFilterParams;
4557} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4558
4559/*---------------------------------------------------------------------------
4560 * WLAN_HAL_HOST_OFFLOAD_REQ
4561 *--------------------------------------------------------------------------*/
4562#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4563#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4564#define HAL_IPV6_NS_OFFLOAD 2
4565#define HAL_IPV6_ADDR_LEN 16
4566#define HAL_MAC_ADDR_LEN 6
4567#define HAL_OFFLOAD_DISABLE 0
4568#define HAL_OFFLOAD_ENABLE 1
4569#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004570#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004571#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004572#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004573
4574typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4575{
4576 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4577 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4578 //Only support 2 possible Network Advertisement IPv6 address
4579 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4580 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4581 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4582 tANI_U8 srcIPv6AddrValid : 1;
4583 tANI_U8 targetIPv6Addr1Valid : 1;
4584 tANI_U8 targetIPv6Addr2Valid : 1;
4585 tANI_U8 reserved1 : 5;
4586 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004587 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004588 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004589} tHalNSOffloadParams;
4590
4591typedef PACKED_PRE struct PACKED_POST
4592{
4593 tANI_U8 offloadType;
4594 tANI_U8 enableOrDisable;
4595 PACKED_PRE union PACKED_POST
4596 {
4597 tANI_U8 hostIpv4Addr [4];
4598 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4599 } params;
4600} tHalHostOffloadReq, *tpHalHostOffloadReq;
4601
4602typedef PACKED_PRE struct PACKED_POST
4603{
4604 tHalMsgHeader header;
4605 tHalHostOffloadReq hostOffloadParams;
4606 tHalNSOffloadParams nsOffloadParams;
4607} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4608
Leo Chang397deb72013-08-22 11:33:16 -07004609
4610#ifdef FEATURE_WLAN_LPHB
4611typedef enum
4612{
4613 WIFI_HB_SET_ENABLE = 0x0001,
4614 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4615 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4616 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4617 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4618 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4619}tLowPowerHeartBeatCmdType ;
4620
4621#define MAX_FLITER_SIZE 64
4622/*---------------------------------------------------------------------------
4623 *FEATURE_WLAN_LPHB REQ
4624 *--------------------------------------------------------------------------*/
4625typedef PACKED_PRE struct PACKED_POST
4626{
4627 uint32 hostIpv4Addr;
4628 uint32 destIpv4Addr;
4629 uint16 hostPort;
4630 uint16 destPort;
4631 uint16 timeOutSec; // in seconds
4632 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004633 uint16 timePeriodSec; // in seconds
4634 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004635} tlowPowerHeartBeatParamsTcpStruct;
4636
4637typedef PACKED_PRE struct PACKED_POST
4638{
4639 uint32 hostIpv4Addr;
4640 uint32 destIpv4Addr;
4641 uint16 hostPort;
4642 uint16 destPort;
4643 uint16 timePeriodSec;// in seconds
4644 uint16 timeOutSec; // in seconds
4645 tSirMacAddr gatewayMacAddr;
4646} tlowPowerHeartBeatParamsUdpStruct;
4647
4648typedef PACKED_PRE struct PACKED_POST
4649{
4650 uint32 offset;
4651 uint32 filterLength;
4652 uint8 filter[MAX_FLITER_SIZE];
4653} tlowPowerHeartBeatFilterStruct;
4654
4655typedef PACKED_PRE struct PACKED_POST
4656{
4657 uint8 heartBeatEnable;
4658 uint8 heartBeatType; //TCP or UDP
4659} tlowPowerHeartBeatEnableStruct;
4660
4661typedef PACKED_PRE struct PACKED_POST
4662{
4663 uint8 dummy;
4664} tlowPowerHeartBeatNetworkInfoStruct;
4665
4666
4667typedef PACKED_PRE struct PACKED_POST
4668{
4669 uint8 sessionIdx;
4670 uint16 lowPowerHeartBeatCmdType;
4671 PACKED_PRE union PACKED_PRO
4672 {
4673 tlowPowerHeartBeatEnableStruct control;
4674 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4675 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4676 tlowPowerHeartBeatParamsUdpStruct udpParams;
4677 tlowPowerHeartBeatNetworkInfoStruct info;
4678 }options;
4679} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4680
4681
4682typedef PACKED_PRE struct PACKED_POST
4683{
4684 tHalMsgHeader header;
4685 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4686} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4687
4688/*---------------------------------------------------------------------------
4689 * FEATURE_WLAN_LPHB RSP
4690 *--------------------------------------------------------------------------*/
4691
4692typedef PACKED_PRE struct PACKED_POST
4693{
4694 /* success or failure */
4695 uint8 sessionIdx;
4696 uint32 status;
4697 uint16 lowPowerHeartBeatCmdType;
4698}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4699
4700typedef PACKED_PRE struct PACKED_POST
4701{
4702 tHalMsgHeader header;
4703 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4704}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4705
4706
4707/*---------------------------------------------------------------------------
4708 * FEATURE_WLAN_LPHB IND
4709 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004710#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4711#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4712
4713#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4714#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004715#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004716
Kumar Anandea78e792013-10-10 23:47:01 -07004717
4718#define WIFI_LPHB_PROTO_UDP 0x01
4719#define WIFI_LPHB_PROTO_TCP 0x02
4720
Leo Chang397deb72013-08-22 11:33:16 -07004721typedef PACKED_PRE struct PACKED_POST
4722{
4723 uint8 bssIdx;
4724 uint8 sessionIdx;
4725 uint8 protocolType; /*TCP or UDP*/
4726 uint8 eventReason;
4727
4728}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4729
4730typedef PACKED_PRE struct PACKED_POST
4731{
4732 tHalMsgHeader header;
4733 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4734}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4735
4736#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004737
4738#ifdef FEATURE_WLAN_BATCH_SCAN
4739
4740/*---------------------------------------------------------------------------
4741 * WLAN_HAL_BATCHSCAN_SET_REQ
4742 *--------------------------------------------------------------------------*/
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 /* Scan Frerquency - default to 30Sec*/
4746 tANI_U32 scanInterval;
4747 tANI_U32 numScan2Batch;
4748 tANI_U32 bestNetworks;
4749 tANI_U8 rfBand;
4750 tANI_U8 rtt;
4751} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4752
4753typedef PACKED_PRE struct PACKED_POST
4754{
4755 tHalMsgHeader header;
4756 tHalBatchScanSetParams batchScanParams;
4757} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4758
4759/*---------------------------------------------------------------------------
4760 * WLAN_HAL_BATCHSCAN_SET_RSP
4761 *--------------------------------------------------------------------------*/
4762typedef PACKED_PRE struct PACKED_POST
4763{
4764 tANI_U32 supportedMscan;
4765} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4766
4767typedef PACKED_PRE struct PACKED_POST
4768{
4769 tHalMsgHeader header;
4770 tHalBatchScanSetRspParam setBatchScanRspParam;
4771} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4772
4773/*---------------------------------------------------------------------------
4774* WLAN_HAL_BATCHSCAN_STOP_IND
4775*--------------------------------------------------------------------------*/
4776typedef PACKED_PRE struct PACKED_POST
4777{
4778 tANI_U32 param;
4779} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4780
4781typedef PACKED_PRE struct PACKED_POST
4782{
4783 tHalMsgHeader header;
4784 tHalBatchScanStopIndParam param;
4785} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4786
4787/*---------------------------------------------------------------------------
4788* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4789*--------------------------------------------------------------------------*/
4790typedef PACKED_PRE struct PACKED_POST
4791{
4792 tANI_U32 param;
4793} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4794
4795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tHalMsgHeader header;
4798 tHalBatchScanTriggerResultParam param;
4799} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4800
4801/*---------------------------------------------------------------------------
4802 * WLAN_HAL_BATCHSCAN_GET_RSP
4803 *--------------------------------------------------------------------------*/
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004807 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004808 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304809 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004810 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4811 tANI_U32 timestamp;
4812} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4813
4814typedef PACKED_PRE struct PACKED_POST
4815{
4816 tANI_U32 scanId; /* Scan List ID. */
4817 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4818 tANI_U32 numNetworksInScanList;
4819 /* Variable data ptr: Number of AP in Scan List */
4820 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4821 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4822 tANI_U8 scanList[1];
4823} tHalBatchScanList, *tpHalBatchScanList;
4824
4825typedef PACKED_PRE struct PACKED_POST
4826{
4827 tANI_U32 timestamp;
4828 tANI_U32 numScanLists;
4829 boolean isLastResult;
4830 /* Variable Data ptr: Number of Scan Lists*/
4831 /* following isLastResult is data of type tHalBatchScanList
4832 * of sizeof(tHalBatchScanList) * numScanLists*/
4833 tANI_U8 scanResults[1];
4834} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4835
4836typedef PACKED_PRE struct PACKED_POST
4837{
4838 tHalMsgHeader header;
4839 tHalBatchScanResultIndParam resultIndMsgParam;
4840} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4841
4842#endif
4843
Jeff Johnson295189b2012-06-20 16:38:30 -07004844/*---------------------------------------------------------------------------
4845 * WLAN_HAL_KEEP_ALIVE_REQ
4846 *--------------------------------------------------------------------------*/
4847/* Packet Types. */
4848#define HAL_KEEP_ALIVE_NULL_PKT 1
4849#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4850
4851/* Enable or disable keep alive */
4852#define HAL_KEEP_ALIVE_DISABLE 0
4853#define HAL_KEEP_ALIVE_ENABLE 1
4854
4855/* Keep Alive request. */
4856typedef PACKED_PRE struct PACKED_POST
4857{
4858 tANI_U8 packetType;
4859 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304860 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004861 tHalIpv4Addr destIpv4Addr;
4862 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004863 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004864} tHalKeepAliveReq, *tpHalKeepAliveReq;
4865
4866typedef PACKED_PRE struct PACKED_POST
4867{
4868 tHalMsgHeader header;
4869 tHalKeepAliveReq KeepAliveParams;
4870} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4871
4872/*---------------------------------------------------------------------------
4873 * WLAN_HAL_SET_RSSI_THRESH_REQ
4874 *--------------------------------------------------------------------------*/
4875typedef PACKED_PRE struct PACKED_POST
4876{
4877 tANI_S8 ucRssiThreshold1 : 8;
4878 tANI_S8 ucRssiThreshold2 : 8;
4879 tANI_S8 ucRssiThreshold3 : 8;
4880 tANI_U8 bRssiThres1PosNotify : 1;
4881 tANI_U8 bRssiThres1NegNotify : 1;
4882 tANI_U8 bRssiThres2PosNotify : 1;
4883 tANI_U8 bRssiThres2NegNotify : 1;
4884 tANI_U8 bRssiThres3PosNotify : 1;
4885 tANI_U8 bRssiThres3NegNotify : 1;
4886 tANI_U8 bReserved10 : 2;
4887} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304888
Jeff Johnson295189b2012-06-20 16:38:30 -07004889typedef PACKED_PRE struct PACKED_POST
4890{
4891 tHalMsgHeader header;
4892 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004893} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004894
4895/*---------------------------------------------------------------------------
4896 * WLAN_HAL_ENTER_UAPSD_REQ
4897 *--------------------------------------------------------------------------*/
4898typedef PACKED_PRE struct PACKED_POST
4899{
4900 tANI_U8 bkDeliveryEnabled:1;
4901 tANI_U8 beDeliveryEnabled:1;
4902 tANI_U8 viDeliveryEnabled:1;
4903 tANI_U8 voDeliveryEnabled:1;
4904 tANI_U8 bkTriggerEnabled:1;
4905 tANI_U8 beTriggerEnabled:1;
4906 tANI_U8 viTriggerEnabled:1;
4907 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004908 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004909} tUapsdReqParams, *tpUapsdReqParams;
4910
4911typedef PACKED_PRE struct PACKED_POST
4912{
4913 tHalMsgHeader header;
4914 tUapsdReqParams enterUapsdParams;
4915} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4916
4917/*---------------------------------------------------------------------------
4918 * WLAN_HAL_EXIT_UAPSD_REQ
4919 *--------------------------------------------------------------------------*/
4920typedef PACKED_PRE struct PACKED_POST
4921{
4922 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004923 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004924} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4925
Kumar Anandea78e792013-10-10 23:47:01 -07004926#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4927#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004928/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004929 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4930 *--------------------------------------------------------------------------*/
4931typedef PACKED_PRE struct PACKED_POST
4932{
4933 tANI_U32 selfStaIdx:8;
4934 tANI_U32 ucPtrnId:8; // Pattern ID
4935 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4936 tANI_U32 uPtrnIntervalMs; // In msec
4937 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4938} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4939
4940typedef PACKED_PRE struct PACKED_POST
4941{
4942 tHalMsgHeader header;
4943 tHalAddPeriodicTxPtrn ptrnParams;
4944} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4945
4946/*---------------------------------------------------------------------------
4947 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4948 *--------------------------------------------------------------------------*/
4949typedef PACKED_PRE struct PACKED_POST
4950{
4951 tANI_U32 selfStaIdx:8;
4952 tANI_U32 rsvd:24;
4953 /* Bitmap of pattern IDs that needs to be deleted */
4954 tANI_U32 uPatternIdBitmap;
4955} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4956
4957typedef PACKED_PRE struct PACKED_POST
4958{
4959 tHalMsgHeader header;
4960 tHalDelPeriodicTxPtrn ptrnParams;
4961} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4962
4963/*---------------------------------------------------------------------------
4964 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4965 *--------------------------------------------------------------------------*/
4966typedef PACKED_PRE struct PACKED_POST
4967{
4968 /* Type of Failure indication */
4969 tANI_U32 bssIdx:8;
4970 tANI_U32 selfStaIdx:8;
4971 tANI_U32 rsvd:16;
4972 tANI_U32 status;
4973 tANI_U32 patternIdBitmap;
4974} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4975
4976typedef PACKED_PRE struct PACKED_POST
4977{
4978 tHalMsgHeader header;
4979 tHalPeriodicTxPtrnFwInd fwIndParams;
4980} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4981
4982/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004983 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4984 *--------------------------------------------------------------------------*/
4985#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4986#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4987
4988typedef PACKED_PRE struct PACKED_POST
4989{
4990 tANI_U8 ucPatternId; // Pattern ID
4991 // Pattern byte offset from beginning of the 802.11 packet to start of the
4992 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304993 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004994 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4995 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4996 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4997 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4998 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4999 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07005000 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005001} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
5002
5003typedef PACKED_PRE struct PACKED_POST
5004{
5005 tHalMsgHeader header;
5006 tHalWowlAddBcastPtrn ptrnParams;
5007} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05305008
Jeff Johnsone7245742012-09-05 17:12:55 -07005009
5010
Jeff Johnson295189b2012-06-20 16:38:30 -07005011/*---------------------------------------------------------------------------
5012 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
5013 *--------------------------------------------------------------------------*/
5014typedef PACKED_PRE struct PACKED_POST
5015{
5016 /* Pattern ID of the wakeup pattern to be deleted */
5017 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005018 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005019} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
5020
5021typedef PACKED_PRE struct PACKED_POST
5022{
5023 tHalMsgHeader header;
5024 tHalWowlDelBcastPtrn ptrnParams;
5025} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
5026
5027/*---------------------------------------------------------------------------
5028 * WLAN_HAL_ENTER_WOWL_REQ
5029 *--------------------------------------------------------------------------*/
5030typedef PACKED_PRE struct PACKED_POST
5031{
5032 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05305033 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005034
5035 /* Magic pattern */
5036 tSirMacAddr magicPtrn;
5037
Dino Mycle8afbac12014-07-04 22:06:17 +05305038 /* Enables/disables packet pattern filtering in firmware.
5039 Enabling this flag enables broadcast pattern matching
5040 in Firmware. If unicast pattern matching is also desired,
5041 ucUcastPatternFilteringEnable flag must be set tot true
5042 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07005043 */
5044 tANI_U8 ucPatternFilteringEnable;
5045
Dino Mycle8afbac12014-07-04 22:06:17 +05305046 /* Enables/disables unicast packet pattern filtering.
5047 This flag specifies whether we want to do pattern match
5048 on unicast packets as well and not just broadcast packets.
5049 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07005050 (main controlling flag) is set to false
5051 */
Dino Mycle8afbac12014-07-04 22:06:17 +05305052 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005053
Dino Mycle8afbac12014-07-04 22:06:17 +05305054 /* This configuration is valid only when magicPktEnable=1.
5055 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07005056 * Channel Switch Action Frame.
5057 */
5058 tANI_U8 ucWowChnlSwitchRcv;
5059
Dino Mycle8afbac12014-07-04 22:06:17 +05305060 /* This configuration is valid only when magicPktEnable=1.
5061 * It requests hardware to wake up when it receives the
5062 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005063 */
5064 tANI_U8 ucWowDeauthRcv;
5065
Dino Mycle8afbac12014-07-04 22:06:17 +05305066 /* This configuration is valid only when magicPktEnable=1.
5067 * It requests hardware to wake up when it receives the
5068 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005069 */
5070 tANI_U8 ucWowDisassocRcv;
5071
Dino Mycle8afbac12014-07-04 22:06:17 +05305072 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005073 * It requests hardware to wake up when it has missed
5074 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05305075 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07005076 */
5077 tANI_U8 ucWowMaxMissedBeacons;
5078
Dino Mycle8afbac12014-07-04 22:06:17 +05305079 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005080 * This is a timeout value in units of microsec. It requests
5081 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05305082 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07005083 */
5084 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05305085
Jeff Johnson295189b2012-06-20 16:38:30 -07005086 /* This configuration directs the WoW packet filtering to look for EAP-ID
5087 * requests embedded in EAPOL frames and use this as a wake source.
5088 */
5089 tANI_U8 ucWoWEAPIDRequestEnable;
5090
5091 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
5092 * requests and use this as a wake source.
5093 */
5094 tANI_U8 ucWoWEAPOL4WayEnable;
5095
5096 /* This configuration allows a host wakeup on an network scan offload match.
5097 */
5098 tANI_U8 ucWowNetScanOffloadMatch;
5099
5100 /* This configuration allows a host wakeup on any GTK rekeying error.
5101 */
5102 tANI_U8 ucWowGTKRekeyError;
5103
5104 /* This configuration allows a host wakeup on BSS connection loss.
5105 */
5106 tANI_U8 ucWoWBSSConnLoss;
5107
Jeff Johnsone7245742012-09-05 17:12:55 -07005108 tANI_U8 bssIdx;
5109
Jeff Johnson295189b2012-06-20 16:38:30 -07005110} tHalWowlEnterParams, *tpHalWowlEnterParams;
5111
5112typedef PACKED_PRE struct PACKED_POST
5113{
5114 tHalMsgHeader header;
5115 tHalWowlEnterParams enterWowlParams;
5116} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5117
5118/*---------------------------------------------------------------------------
5119 * WLAN_HAL_EXIT_WOWL_REQ
5120 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005121
Jeff Johnson295189b2012-06-20 16:38:30 -07005122typedef PACKED_PRE struct PACKED_POST
5123{
Jeff Johnsone7245742012-09-05 17:12:55 -07005124 tANI_U8 bssIdx;
5125
5126} tHalWowlExitParams, *tpHalWowlExitParams;
5127
5128typedef PACKED_PRE struct PACKED_POST
5129{
5130 tHalMsgHeader header;
5131 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005132} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5133
5134/*---------------------------------------------------------------------------
5135 * WLAN_HAL_GET_RSSI_REQ
5136 *--------------------------------------------------------------------------*/
5137typedef PACKED_PRE struct PACKED_POST
5138{
5139 tHalMsgHeader header;
5140} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5141
Anand Kumar012623a2013-01-11 17:00:00 -08005142typedef PACKED_PRE struct PACKED_POST
5143{
5144 /* Valid STA Idx for per STA stats request */
5145 tANI_U32 staId;
5146
5147}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5148
5149
5150/*---------------------------------------------------------------------------
5151 * WLAN_HAL_GET_ROAM_RSSI_REQ
5152 *--------------------------------------------------------------------------*/
5153typedef PACKED_PRE struct PACKED_POST
5154{
5155 tHalMsgHeader header;
5156 tHalRoamRssiReqParams roamRssiReqParams;
5157} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5158
5159
Jeff Johnson295189b2012-06-20 16:38:30 -07005160/*---------------------------------------------------------------------------
5161 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5162 *--------------------------------------------------------------------------*/
5163typedef PACKED_PRE struct PACKED_POST {
5164 tANI_U8 staidx; // STA index
5165 tANI_U8 ac; // Access Category
5166 tANI_U8 up; // User Priority
5167 tANI_U32 srvInterval; // Service Interval
5168 tANI_U32 susInterval; // Suspend Interval
5169 tANI_U32 delayInterval; // Delay Interval
5170} tUapsdInfo, tpUapsdInfo;
5171
5172typedef PACKED_PRE struct PACKED_POST
5173{
5174 tHalMsgHeader header;
5175 tUapsdInfo enableUapsdAcParams;
5176} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5177
5178/*---------------------------------------------------------------------------
5179 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5180 *--------------------------------------------------------------------------*/
5181typedef PACKED_PRE struct PACKED_POST {
5182 tANI_U8 setMcstBcstFilterSetting;
5183 tANI_U8 setMcstBcstFilter;
5184} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5185
5186typedef PACKED_PRE struct PACKED_POST
5187{
5188 tHalMsgHeader header;
5189 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5190} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5191
5192/*---------------------------------------------------------------------------
5193 * WLAN_HAL_ENTER_IMPS_RSP
5194 *--------------------------------------------------------------------------*/
5195typedef PACKED_PRE struct PACKED_POST
5196{
5197 /* success or failure */
5198 tANI_U32 status;
5199} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5200
5201typedef PACKED_PRE struct PACKED_POST
5202{
5203 tHalMsgHeader header;
5204 tHalEnterImpsRspParams enterImpsRspParams;
5205} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5206
5207/*---------------------------------------------------------------------------
5208 * WLAN_HAL_EXIT_IMPS_RSP
5209 *--------------------------------------------------------------------------*/
5210typedef PACKED_PRE struct PACKED_POST
5211{
5212 /* success or failure */
5213 tANI_U32 status;
5214} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5215
5216typedef PACKED_PRE struct PACKED_POST
5217{
5218 tHalMsgHeader header;
5219 tHalExitImpsRspParams exitImpsRspParams;
5220} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5221
5222/*---------------------------------------------------------------------------
5223 * WLAN_HAL_ENTER_BMPS_RSP
5224 *--------------------------------------------------------------------------*/
5225typedef PACKED_PRE struct PACKED_POST
5226{
5227 /* success or failure */
5228 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005229 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005230} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5231
5232typedef PACKED_PRE struct PACKED_POST
5233{
5234 tHalMsgHeader header;
5235 tHalEnterBmpsRspParams enterBmpsRspParams;
5236} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5237
5238/*---------------------------------------------------------------------------
5239 * WLAN_HAL_EXIT_BMPS_RSP
5240 *--------------------------------------------------------------------------*/
5241typedef PACKED_PRE struct PACKED_POST
5242{
5243 /* success or failure */
5244 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005245 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005246} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5247
5248typedef PACKED_PRE struct PACKED_POST
5249{
5250 tHalMsgHeader header;
5251 tHalExitBmpsRspParams exitBmpsRspParams;
5252} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5253
5254/*---------------------------------------------------------------------------
5255 * WLAN_HAL_ENTER_UAPSD_RSP
5256 *--------------------------------------------------------------------------*/
5257typedef PACKED_PRE struct PACKED_POST
5258{
5259 /* success or failure */
5260 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005261 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005262}tUapsdRspParams, *tpUapsdRspParams;
5263
5264typedef PACKED_PRE struct PACKED_POST
5265{
5266 tHalMsgHeader header;
5267 tUapsdRspParams enterUapsdRspParams;
5268} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5269
5270/*---------------------------------------------------------------------------
5271 * WLAN_HAL_EXIT_UAPSD_RSP
5272 *--------------------------------------------------------------------------*/
5273typedef PACKED_PRE struct PACKED_POST
5274{
5275 /* success or failure */
5276 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005277 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005278} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5279
5280typedef PACKED_PRE struct PACKED_POST
5281{
5282 tHalMsgHeader header;
5283 tHalExitUapsdRspParams exitUapsdRspParams;
5284} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5285
5286/*---------------------------------------------------------------------------
5287 * WLAN_HAL_RSSI_NOTIFICATION_IND
5288 *--------------------------------------------------------------------------*/
5289typedef PACKED_PRE struct PACKED_POST
5290{
5291 tANI_U32 bRssiThres1PosCross : 1;
5292 tANI_U32 bRssiThres1NegCross : 1;
5293 tANI_U32 bRssiThres2PosCross : 1;
5294 tANI_U32 bRssiThres2NegCross : 1;
5295 tANI_U32 bRssiThres3PosCross : 1;
5296 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005297 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005298 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005299 tANI_U32 isBTCoexCompromise : 1;
5300 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005301 tANI_S8 refRssiThreshold1;
5302 tANI_S8 refRssiThreshold2;
5303 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005304} tHalRSSINotification, *tpHalRSSINotification;
5305
5306typedef PACKED_PRE struct PACKED_POST
5307{
5308 tHalMsgHeader header;
5309 tHalRSSINotification rssiNotificationParams;
5310} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5311
5312/*---------------------------------------------------------------------------
5313 * WLAN_HAL_GET_RSSI_RSP
5314 *--------------------------------------------------------------------------*/
5315typedef PACKED_PRE struct PACKED_POST
5316{
5317 /* success or failure */
5318 tANI_U32 status;
5319 tANI_S8 rssi;
5320} tHalGetRssiParams, *tpHalGetRspParams;
5321
5322typedef PACKED_PRE struct PACKED_POST
5323{
5324 tHalMsgHeader header;
5325 tHalGetRssiParams rssiRspParams;
5326} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5327
5328/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005329 * WLAN_HAL_GET_ROAM_RSSI_RSP
5330 *--------------------------------------------------------------------------*/
5331typedef PACKED_PRE struct PACKED_POST
5332{
5333 /* success or failure */
5334 tANI_U32 status;
5335
5336 tANI_U8 staId;
5337 tANI_S8 rssi;
5338} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5339
5340typedef PACKED_PRE struct PACKED_POST
5341{
5342 tHalMsgHeader header;
5343 tHalGetRoamRssiParams roamRssiRspParams;
5344} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5345
5346/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005347 * WLAN_HAL_ENTER_WOWL_RSP
5348 *--------------------------------------------------------------------------*/
5349typedef PACKED_PRE struct PACKED_POST
5350{
5351 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005352 tANI_U32 status;
5353 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005354} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5355
5356typedef PACKED_PRE struct PACKED_POST
5357{
5358 tHalMsgHeader header;
5359 tHalEnterWowlRspParams enterWowlRspParams;
5360} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5361
5362/*---------------------------------------------------------------------------
5363 * WLAN_HAL_EXIT_WOWL_RSP
5364 *--------------------------------------------------------------------------*/
5365typedef PACKED_PRE struct PACKED_POST
5366{
5367 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005368 tANI_U32 status;
5369 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005370} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5371
5372typedef PACKED_PRE struct PACKED_POST
5373{
5374 tHalMsgHeader header;
5375 tHalExitWowlRspParams exitWowlRspParams;
5376} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5377
5378/*---------------------------------------------------------------------------
5379 * WLAN_HAL_ADD_BCN_FILTER_RSP
5380 *--------------------------------------------------------------------------*/
5381typedef PACKED_PRE struct PACKED_POST
5382{
5383 /* success or failure */
5384 tANI_U32 status;
5385} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5386
5387typedef PACKED_PRE struct PACKED_POST
5388{
5389 tHalMsgHeader header;
5390 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5391} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5392
5393/*---------------------------------------------------------------------------
5394 * WLAN_HAL_REM_BCN_FILTER_RSP
5395 *--------------------------------------------------------------------------*/
5396typedef PACKED_PRE struct PACKED_POST
5397{
5398 /* success or failure */
5399 tANI_U32 status;
5400} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5401
5402typedef PACKED_PRE struct PACKED_POST
5403{
5404 tHalMsgHeader header;
5405 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5406} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5407
5408/*---------------------------------------------------------------------------
5409 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5410 *--------------------------------------------------------------------------*/
5411typedef PACKED_PRE struct PACKED_POST
5412{
5413 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005414 tANI_U32 status;
5415 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005416} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5417
5418typedef PACKED_PRE struct PACKED_POST
5419{
5420 tHalMsgHeader header;
5421 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5422} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5423
5424/*---------------------------------------------------------------------------
5425 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5426 *--------------------------------------------------------------------------*/
5427typedef PACKED_PRE struct PACKED_POST
5428{
5429 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005430 tANI_U32 status;
5431 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005432} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5433
5434typedef PACKED_PRE struct PACKED_POST
5435{
5436 tHalMsgHeader header;
5437 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5438} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5439
5440/*---------------------------------------------------------------------------
5441 * WLAN_HAL_HOST_OFFLOAD_RSP
5442 *--------------------------------------------------------------------------*/
5443typedef PACKED_PRE struct PACKED_POST
5444{
5445 /* success or failure */
5446 tANI_U32 status;
5447} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5448
5449typedef PACKED_PRE struct PACKED_POST
5450{
5451 tHalMsgHeader header;
5452 tHalHostOffloadRspParams hostOffloadRspParams;
5453} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5454
5455/*---------------------------------------------------------------------------
5456 * WLAN_HAL_KEEP_ALIVE_RSP
5457 *--------------------------------------------------------------------------*/
5458typedef PACKED_PRE struct PACKED_POST
5459{
5460 /* success or failure */
5461 tANI_U32 status;
5462} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5463
5464typedef PACKED_PRE struct PACKED_POST
5465{
5466 tHalMsgHeader header;
5467 tHalKeepAliveRspParams keepAliveRspParams;
5468} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5469
5470/*---------------------------------------------------------------------------
5471 * WLAN_HAL_SET_RSSI_THRESH_RSP
5472 *--------------------------------------------------------------------------*/
5473typedef PACKED_PRE struct PACKED_POST
5474{
5475 /* success or failure */
5476 tANI_U32 status;
5477} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5478
5479typedef PACKED_PRE struct PACKED_POST
5480{
5481 tHalMsgHeader header;
5482 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5483} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5484
5485/*---------------------------------------------------------------------------
5486 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5487 *--------------------------------------------------------------------------*/
5488typedef PACKED_PRE struct PACKED_POST
5489{
5490 /* success or failure */
5491 tANI_U32 status;
5492} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5493
5494typedef PACKED_PRE struct PACKED_POST
5495{
5496 tHalMsgHeader header;
5497 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5498} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5499
5500/*---------------------------------------------------------------------------
5501 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5502 *--------------------------------------------------------------------------*/
5503typedef PACKED_PRE struct PACKED_POST
5504{
5505 /* success or failure */
5506 tANI_U32 status;
5507} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5508
5509typedef PACKED_PRE struct PACKED_POST
5510{
5511 tHalMsgHeader header;
5512 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5513} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5514
5515/*---------------------------------------------------------------------------
5516 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5517 *--------------------------------------------------------------------------*/
5518
5519typedef PACKED_PRE struct PACKED_POST
5520{
5521 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5522 //the request has power constraints, this should be applied only to that session
5523 tSirMacAddr selfStaMacAddr;
5524 //In request,
5525 //power == MaxTx power to be used.
5526 tPowerdBm power;
5527
5528}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5529
5530
5531typedef PACKED_PRE struct PACKED_POST
5532{
5533 tHalMsgHeader header;
5534 tSetMaxTxPwrParams setMaxTxPwrParams;
5535}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5536
5537/*---------------------------------------------------------------------------
5538*WLAN_HAL_SET_MAX_TX_POWER_RSP
5539*--------------------------------------------------------------------------*/
5540
5541typedef PACKED_PRE struct PACKED_POST
5542{
5543 //power == tx power used for management frames.
5544 tPowerdBm power;
5545
5546 /* success or failure */
5547 tANI_U32 status;
5548}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5549
5550typedef PACKED_PRE struct PACKED_POST
5551{
5552 tHalMsgHeader header;
5553 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5554}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5555
Kumar Anandea78e792013-10-10 23:47:01 -07005556
Jeff Johnson295189b2012-06-20 16:38:30 -07005557/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005558 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5559 *--------------------------------------------------------------------------*/
5560
5561/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5562typedef enum
5563{
5564 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5565 // For 2.4GHz or 5GHz bands
5566 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5567 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5568 // End of valid enums
5569 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5570}tHalSetMaxTxPwrBandInfo;
5571
5572typedef PACKED_PRE struct PACKED_POST
5573{
5574 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005575 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005576}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5577
Kumar Anandea78e792013-10-10 23:47:01 -07005578
Arif Hussain36fda162013-08-30 14:46:57 -07005579typedef PACKED_PRE struct PACKED_POST
5580{
5581 tHalMsgHeader header;
5582 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5583}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5584
5585/*---------------------------------------------------------------------------
5586*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5587*--------------------------------------------------------------------------*/
5588
5589typedef PACKED_PRE struct PACKED_POST
5590{
5591 //power == tx power used for management frames.
5592 tPowerdBm power;
5593
5594 /* success or failure */
5595 tANI_U32 status;
5596}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5597
5598typedef PACKED_PRE struct PACKED_POST
5599{
5600 tHalMsgHeader header;
5601 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5602}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5603
5604/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005605 *WLAN_HAL_SET_TX_POWER_REQ
5606 *--------------------------------------------------------------------------*/
5607
5608typedef PACKED_PRE struct PACKED_POST
5609{
5610 /* TX Power in milli watts */
5611 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005612 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005613}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5614
5615
5616typedef PACKED_PRE struct PACKED_POST
5617{
5618 tHalMsgHeader header;
5619 tSetTxPwrReqParams setTxPwrReqParams;
5620}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5621
5622/*---------------------------------------------------------------------------
5623*WLAN_HAL_SET_TX_POWER_RSP
5624*--------------------------------------------------------------------------*/
5625
5626typedef PACKED_PRE struct PACKED_POST
5627{
5628 /* success or failure */
5629 tANI_U32 status;
5630}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5631
5632typedef PACKED_PRE struct PACKED_POST
5633{
5634 tHalMsgHeader header;
5635 tSetTxPwrRspParams setTxPwrRspParams;
5636}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5637
5638/*---------------------------------------------------------------------------
5639 *WLAN_HAL_GET_TX_POWER_REQ
5640 *--------------------------------------------------------------------------*/
5641
5642typedef PACKED_PRE struct PACKED_POST
5643{
5644 tANI_U8 staId;
5645}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5646
5647typedef PACKED_PRE struct PACKED_POST
5648{
5649 tHalMsgHeader header;
5650 tGetTxPwrReqParams getTxPwrReqParams;
5651}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5652
5653/*---------------------------------------------------------------------------
5654*WLAN_HAL_GET_TX_POWER_RSP
5655*--------------------------------------------------------------------------*/
5656
5657typedef PACKED_PRE struct PACKED_POST
5658{
5659 /* success or failure */
5660 tANI_U32 status;
5661
5662 /* TX Power in milli watts */
5663 tANI_U32 txPower;
5664}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5665
5666typedef PACKED_PRE struct PACKED_POST
5667{
5668 tHalMsgHeader header;
5669 tGetTxPwrRspParams getTxPwrRspParams;
5670}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5671
5672#ifdef WLAN_FEATURE_P2P
5673/*---------------------------------------------------------------------------
5674 *WLAN_HAL_SET_P2P_GONOA_REQ
5675 *--------------------------------------------------------------------------*/
5676
5677typedef PACKED_PRE struct PACKED_POST
5678{
5679 tANI_U8 opp_ps;
5680 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305681 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005682 tANI_U32 duration;
5683 tANI_U32 interval;
5684 tANI_U32 single_noa_duration;
5685 tANI_U8 psSelection;
5686}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5687
5688
5689typedef PACKED_PRE struct PACKED_POST
5690{
5691 tHalMsgHeader header;
5692 tSetP2PGONOAParams setP2PGONOAParams;
5693}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5694
5695/*---------------------------------------------------------------------------
5696*WLAN_HAL_SET_P2P_GONOA_RSP
5697*--------------------------------------------------------------------------*/
5698
5699typedef PACKED_PRE struct PACKED_POST
5700{
5701 /* success or failure */
5702 tANI_U32 status;
5703}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5704
5705typedef PACKED_PRE struct PACKED_POST
5706{
5707 tHalMsgHeader header;
5708 tSetP2PGONOARspParams setP2PGONOARspParams;
5709}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5710#endif
5711
5712/*---------------------------------------------------------------------------
5713 *WLAN_HAL_ADD_SELF_STA_REQ
5714 *--------------------------------------------------------------------------*/
5715
5716typedef PACKED_PRE struct PACKED_POST
5717{
5718 tSirMacAddr selfMacAddr;
5719 tANI_U32 status;
5720}tAddStaSelfParams, *tpAddStaSelfParams;
5721
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005722typedef PACKED_PRE struct PACKED_POST
5723{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005724 tHalMsgHeader header;
5725 tAddStaSelfParams addStaSelfParams;
5726}tAddStaSelfReq, *tpAddStaSelfReq;
5727
5728/* This V1 structure carries additionally the IFACE PERSONA
5729 of the interface as compared to the legacy control
5730 message */
5731typedef PACKED_PRE struct PACKED_POST
5732{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005733 tSirMacAddr selfMacAddr;
5734 tANI_U32 status;
5735 tHalIfacePersona iface_persona;
5736}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005737
5738typedef PACKED_PRE struct PACKED_POST
5739{
5740 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005741 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005742}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005743
5744/*---------------------------------------------------------------------------
5745*WLAN_HAL_ADD_SELF_STA_RSP
5746*--------------------------------------------------------------------------*/
5747
5748typedef PACKED_PRE struct PACKED_POST
5749{
5750 /* success or failure */
5751 tANI_U32 status;
5752
5753 /*Self STA Index */
5754 tANI_U8 selfStaIdx;
5755
5756 /* DPU Index (IGTK, PTK, GTK all same) */
5757 tANI_U8 dpuIdx;
5758
5759 /* DPU Signature */
5760 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305761
Jeff Johnson295189b2012-06-20 16:38:30 -07005762}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5763
5764typedef PACKED_PRE struct PACKED_POST
5765{
5766 tHalMsgHeader header;
5767 tAddStaSelfRspParams addStaSelfRspParams;
5768}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5769
5770
5771/*---------------------------------------------------------------------------
5772 WLAN_HAL_DEL_STA_SELF_REQ
5773---------------------------------------------------------------------------*/
5774
5775typedef PACKED_PRE struct PACKED_POST
5776{
5777 tSirMacAddr selfMacAddr;
5778
5779}tDelStaSelfParams, *tpDelStaSelfParams;
5780
5781typedef PACKED_PRE struct PACKED_POST
5782{
5783 tHalMsgHeader header;
5784 tDelStaSelfParams delStaSelfParams;
5785} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5786
5787
5788/*---------------------------------------------------------------------------
5789 WLAN_HAL_DEL_STA_SELF_RSP
5790---------------------------------------------------------------------------*/
5791
5792typedef PACKED_PRE struct PACKED_POST
5793{
5794 /*success or failure */
5795 tANI_U32 status;
5796
5797 tSirMacAddr selfMacAddr;
5798}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5799
5800typedef PACKED_PRE struct PACKED_POST
5801{
5802 tHalMsgHeader header;
5803 tDelStaSelfRspParams delStaSelfRspParams;
5804} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5805
5806
5807#ifdef WLAN_FEATURE_VOWIFI_11R
5808
5809/*---------------------------------------------------------------------------
5810 *WLAN_HAL_AGGR_ADD_TS_REQ
5811 *--------------------------------------------------------------------------*/
5812
5813typedef PACKED_PRE struct PACKED_POST
5814{
5815 /* Station Index */
5816 tANI_U16 staIdx;
5817
5818 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5819 /* This will carry the bitmap with the bit positions representing different AC.s*/
5820 tANI_U16 tspecIdx;
5821
5822 /* Tspec info per AC To program TPE with required parameters */
5823 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5824
5825 /* U-APSD Flags: 1b per AC. Encoded as follows:
5826 b7 b6 b5 b4 b3 b2 b1 b0 =
5827 X X X X BE BK VI VO */
5828 tANI_U8 uAPSD;
5829
5830 /* These parameters are for all the access categories */
5831 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5832 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5833 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5834
5835}tAggrAddTsParams, *tpAggrAddTsParams;
5836
5837
5838typedef PACKED_PRE struct PACKED_POST
5839{
5840 tHalMsgHeader header;
5841 tAggrAddTsParams aggrAddTsParam;
5842}tAggrAddTsReq, *tpAggrAddTsReq;
5843
5844/*---------------------------------------------------------------------------
5845*WLAN_HAL_AGGR_ADD_TS_RSP
5846*--------------------------------------------------------------------------*/
5847
5848typedef PACKED_PRE struct PACKED_POST
5849{
5850 /* success or failure */
5851 tANI_U32 status0;
5852 /* FIXME PRIMA for future use for 11R */
5853 tANI_U32 status1;
5854}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5855
5856typedef PACKED_PRE struct PACKED_POST
5857{
5858 tHalMsgHeader header;
5859 tAggrAddTsRspParams aggrAddTsRspParam;
5860}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5861
5862#endif
5863
5864/*---------------------------------------------------------------------------
5865 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5866 *--------------------------------------------------------------------------*/
5867typedef PACKED_PRE struct PACKED_POST
5868{
5869 tANI_U8 isAppsCpuAwake;
5870} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5871
5872typedef PACKED_PRE struct PACKED_POST
5873{
5874 tHalMsgHeader header;
5875 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5876} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5877
5878/*---------------------------------------------------------------------------
5879 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5880 *--------------------------------------------------------------------------*/
5881typedef PACKED_PRE struct PACKED_POST
5882{
5883 /* success or failure */
5884 tANI_U32 status;
5885} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5886
5887typedef PACKED_PRE struct PACKED_POST
5888{
5889 tHalMsgHeader header;
5890 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5891} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5892/*---------------------------------------------------------------------------
5893 * WLAN_HAL_DUMP_COMMAND_REQ
5894 *--------------------------------------------------------------------------*/
5895
5896typedef PACKED_PRE struct PACKED_POST
5897{
5898 tANI_U32 argument1;
5899 tANI_U32 argument2;
5900 tANI_U32 argument3;
5901 tANI_U32 argument4;
5902 tANI_U32 argument5;
5903
5904}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5905
5906typedef PACKED_PRE struct PACKED_POST
5907{
5908 tHalMsgHeader header;
5909 tHalDumpCmdReqParams dumpCmdReqParams;
5910} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5911
5912/*---------------------------------------------------------------------------
5913 * WLAN_HAL_DUMP_COMMAND_RSP
5914 *--------------------------------------------------------------------------*/
5915
5916typedef PACKED_PRE struct PACKED_POST
5917{
5918 /* success or failure */
5919 tANI_U32 status;
5920 /*Length of the responce message*/
5921 tANI_U32 rspLength;
5922 /*FiXME: Currently considering the the responce will be less than 100bytes */
5923 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305924
Jeff Johnson295189b2012-06-20 16:38:30 -07005925} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5926
5927typedef PACKED_PRE struct PACKED_POST
5928{
5929 tHalMsgHeader header;
5930 tHalDumpCmdRspParams dumpCmdRspParams;
5931} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5932
5933/*---------------------------------------------------------------------------
5934 *WLAN_HAL_COEX_IND
5935 *-------------------------------------------------------------------------*/
5936#define WLAN_COEX_IND_DATA_SIZE (4)
5937#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5938#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005939#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5940#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005941#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5942#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305943#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5944#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305945#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Abhishek Singh1bb2bc22017-01-02 10:38:38 +05305946#define WLAN_COEX_IND_TYPE_HID_CONNECTED_WLAN_CONNECTED_IN_2p4 (9)
5947#define WLAN_COEX_IND_TYPE_HID_DISCONNECTED_WLAN_CONNECTED_IN_2p4 (10)
Jeff Johnson295189b2012-06-20 16:38:30 -07005948
5949typedef PACKED_PRE struct PACKED_POST
5950{
5951 /*Coex Indication Type*/
5952 tANI_U32 coexIndType;
5953
5954 /*Coex Indication Data*/
5955 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5956}tCoexIndParams,*tpCoexIndParams;
5957
5958typedef PACKED_PRE struct PACKED_POST
5959{
5960 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305961 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005962}tCoexIndMsg, *tpCoexIndMsg;
5963
5964/*---------------------------------------------------------------------------
5965 *WLAN_HAL_OTA_TX_COMPL_IND
5966 *-------------------------------------------------------------------------*/
5967
5968typedef PACKED_PRE struct PACKED_POST
5969{
5970 /*Tx Complete Indication Success or Failure*/
5971 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305972 /* Dialog token */
5973 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005974}tTxComplParams,*tpTxComplParams;
5975
5976typedef PACKED_PRE struct PACKED_POST
5977{
5978 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305979 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005980}tTxComplIndMsg, *tpTxComplIndMsg;
5981
5982/*---------------------------------------------------------------------------
5983 * WLAN_HAL_HOST_SUSPEND_IND
5984 *-------------------------------------------------------------------------*/
5985
5986typedef PACKED_PRE struct PACKED_POST
5987{
5988 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305989 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005990}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5991
5992typedef PACKED_PRE struct PACKED_POST
5993{
5994 tHalMsgHeader header;
5995 tHalWlanHostSuspendIndParam suspendIndParams;
5996}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5997
5998/*---------------------------------------------------------------------------
5999 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
6000 *-------------------------------------------------------------------------*/
6001
6002typedef PACKED_PRE struct PACKED_POST
6003{
6004 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05306005 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07006006}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
6007
6008typedef PACKED_PRE struct PACKED_POST
6009{
6010 tHalMsgHeader header;
6011 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
6012}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
6013
6014#ifdef WLAN_FEATURE_P2P
6015/*---------------------------------------------------------------------------
6016 *WLAN_HAL_NOA_ATTR_IND
6017 *-------------------------------------------------------------------------*/
6018
6019typedef PACKED_PRE struct PACKED_POST
6020{
6021 tANI_U8 index ;
6022 tANI_U8 oppPsFlag ;
6023 tANI_U16 ctWin ;
6024
6025 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08006026 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006027 tANI_U32 uNoa1Duration;
6028 tANI_U32 uNoa1Interval;
6029 tANI_U32 uNoa1StartTime;
6030
6031 tANI_U16 uNoa2IntervalCnt;
6032 tANI_U16 rsvd2;
6033 tANI_U32 uNoa2Duration;
6034 tANI_U32 uNoa2Interval;
6035 tANI_U32 uNoa2StartTime;
6036
6037 tANI_U32 status;
6038}tNoaAttrIndParams, *tpNoaAttrIndParams;
6039
6040typedef PACKED_PRE struct PACKED_POST
6041{
6042 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05306043 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006044}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08006045
6046/*---------------------------------------------------------------------------
6047 *WLAN_HAL_NOA_START_IND
6048 *-------------------------------------------------------------------------*/
6049
6050typedef PACKED_PRE struct PACKED_POST
6051{
6052 tANI_U32 status;
6053 tANI_U32 bssIdx;
6054}tNoaStartIndParams, *tpNoaStartIndParams;
6055
6056typedef PACKED_PRE struct PACKED_POST
6057{
6058 tHalMsgHeader header;
6059 tNoaStartIndParams noaStartIndParams;
6060}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07006061#endif
6062
6063/*---------------------------------------------------------------------------
6064 * WLAN_HAL_HOST_RESUME_REQ
6065 *-------------------------------------------------------------------------*/
6066
6067typedef PACKED_PRE struct PACKED_POST
6068{
6069 tANI_U8 configuredMcstBcstFilterSetting;
6070}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
6071
6072typedef PACKED_PRE struct PACKED_POST
6073{
6074 tHalMsgHeader header;
6075 tHalWlanHostResumeReqParam resumeReqParams;
6076}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
6077
6078/*---------------------------------------------------------------------------
6079 * WLAN_HAL_HOST_RESUME_RSP
6080 *--------------------------------------------------------------------------*/
6081typedef PACKED_PRE struct PACKED_POST
6082{
6083 /* success or failure */
6084 tANI_U32 status;
6085} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
6086
6087typedef PACKED_PRE struct PACKED_POST
6088{
6089 tHalMsgHeader header;
6090 tHalHostResumeRspParams hostResumeRspParams;
6091} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
6092
Anand Kumar012623a2013-01-11 17:00:00 -08006093typedef PACKED_PRE struct PACKED_POST
6094{
6095 tANI_U16 staIdx;
6096 // Peer MAC Address, whose BA session has timed out
6097 tSirMacAddr peerMacAddr;
6098 // TID for which a BA session timeout is being triggered
6099 tANI_U8 baTID;
6100 // DELBA direction
6101 // 1 - Originator
6102 // 0 - Recipient
6103 tANI_U8 baDirection;
6104 tANI_U32 reasonCode;
6105 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6106} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6107
6108typedef PACKED_PRE struct PACKED_POST
6109{
6110 tHalMsgHeader header;
6111 tHalWlanDelBaIndMsg hostdelBaParam;
6112} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6113
Jeff Johnson295189b2012-06-20 16:38:30 -07006114/*---------------------------------------------------------------------------
6115 *PNO Messages
6116 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006117/* Max number of channels that a network can be found on*/
6118/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6119 * be changed at same time
6120 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006121#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006122
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306123/*Max number of channels that a network can be found on*/
6124#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6125
Jeff Johnson295189b2012-06-20 16:38:30 -07006126/*Maximum numbers of networks supported by PNO*/
6127#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6128
6129/*The number of scan time intervals that can be programmed into PNO*/
6130#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6131
6132/*Maximum size of the probe template*/
6133#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6134
Dino Mycle8afbac12014-07-04 22:06:17 +05306135/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006136 Immediate - scanning will start immediately and PNO procedure will
6137 be repeated based on timer
6138 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006139 Resume - scanning will start on system resume
6140 Delay - start the scan timer to trigger PNO scan
6141 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006142typedef enum
6143{
6144 ePNO_MODE_IMMEDIATE,
6145 ePNO_MODE_ON_SUSPEND,
6146 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306147 ePNO_MODE_DELAY,
6148 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006149 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6150} ePNOMode;
6151
6152/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306153typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006154{
Dino Mycle8afbac12014-07-04 22:06:17 +05306155 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006156 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306157
Jeff Johnson295189b2012-06-20 16:38:30 -07006158 // Upper layer authentication types
6159 eAUTH_TYPE_WPA = 2,
6160 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306161
Jeff Johnson295189b2012-06-20 16:38:30 -07006162 eAUTH_TYPE_RSN = 4,
6163 eAUTH_TYPE_RSN_PSK = 5,
6164 eAUTH_TYPE_FT_RSN = 6,
6165 eAUTH_TYPE_FT_RSN_PSK = 7,
6166 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6167 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006168 eAUTH_TYPE_CCKM_WPA = 10,
6169 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306170 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6171 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306172
Jeff Johnson295189b2012-06-20 16:38:30 -07006173 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6174
6175}tAuthType;
6176
6177/* Encryption type */
6178typedef enum eEdType
6179{
6180 eED_ANY = 0,
6181 eED_NONE = 1,
6182 eED_WEP = 2,
6183 eED_TKIP = 3,
6184 eED_CCMP = 4,
6185 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306186
Jeff Johnson295189b2012-06-20 16:38:30 -07006187 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6188} tEdType;
6189
6190/* SSID broadcast type */
6191typedef enum eSSIDBcastType
6192{
6193 eBCAST_UNKNOWN = 0,
6194 eBCAST_NORMAL = 1,
6195 eBCAST_HIDDEN = 2,
6196
6197 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6198} tSSIDBcastType;
6199
Dino Mycle8afbac12014-07-04 22:06:17 +05306200/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006201 The network description for which PNO will have to look for
6202*/
6203typedef PACKED_PRE struct PACKED_POST
6204{
6205 /*SSID of the BSS*/
6206 tSirMacSSid ssId;
6207
6208 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306209 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006210
6211 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306212 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006213
Dino Mycle8afbac12014-07-04 22:06:17 +05306214 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006215 0 - if all channels */
6216 tANI_U8 ucChannelCount;
6217 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6218
6219 /*Indicates the RSSI threshold for the network to be considered*/
6220 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306221}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006222
6223typedef PACKED_PRE struct PACKED_POST
6224{
6225 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306226 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006227
Dino Mycle8afbac12014-07-04 22:06:17 +05306228 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006229 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306230 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006231
Dino Mycle8afbac12014-07-04 22:06:17 +05306232 /*e.g: 2 3
6233 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006234 - it will wait 2s between consecutive scans for 3 times
6235 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306236}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006237
Dino Mycle8afbac12014-07-04 22:06:17 +05306238/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006239 The network parameters to be sent to the PNO algorithm
6240*/
6241typedef PACKED_PRE struct PACKED_POST
6242{
6243 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306244 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006245
Dino Mycle8afbac12014-07-04 22:06:17 +05306246 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006247 two consecutive scan procedures
6248 If the desired is for a uniform timer that fires always at the exact same
6249 interval - one single value is to be set
6250 If there is a desire for a more complex - telescopic like timer multiple
6251 values can be set - once PNO reaches the end of the array it will
6252 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306253 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006254
6255}tScanTimersType;
6256
6257typedef PACKED_PRE struct PACKED_POST {
6258
6259 /*Enable PNO*/
6260 tANI_U32 enable;
6261
6262 /*Immediate, On Suspend, On Resume*/
6263 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306264
Jeff Johnson295189b2012-06-20 16:38:30 -07006265 /*Number of networks sent for PNO*/
6266 tANI_U32 ucNetworksCount;
6267
6268 /*The networks that PNO needs to look for*/
6269 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6270
6271 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306272 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006273
6274 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306275 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006276 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6277
6278 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306279 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006280 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6281
6282} tPrefNetwListParams, * tpPrefNetwListParams;
6283
6284/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306285 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006286*/
6287typedef PACKED_PRE struct PACKED_POST
6288{
6289 tHalMsgHeader header;
6290 tPrefNetwListParams prefNetwListParams;
6291} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6292
6293
Dino Mycle8afbac12014-07-04 22:06:17 +05306294/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006295 The network description for which PNO will have to look for
6296*/
6297typedef PACKED_PRE struct PACKED_POST
6298{
6299 /*SSID of the BSS*/
6300 tSirMacSSid ssId;
6301
6302 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306303 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006304
6305 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306306 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006307
6308 /*SSID broadcast type, normal, hidden or unknown*/
6309 tSSIDBcastType bcastNetworkType;
6310
Dino Mycle8afbac12014-07-04 22:06:17 +05306311 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006312 0 - if all channels */
6313 tANI_U8 ucChannelCount;
6314 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6315
6316 /*Indicates the RSSI threshold for the network to be considered*/
6317 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306318}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006319
6320typedef PACKED_PRE struct PACKED_POST {
6321
6322 /*Enable PNO*/
6323 tANI_U32 enable;
6324
6325 /*Immediate, On Suspend, On Resume*/
6326 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306327
Jeff Johnson295189b2012-06-20 16:38:30 -07006328 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306329 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006330
6331 /*The networks that PNO needs to look for*/
6332 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6333
6334 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306335 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006336
6337 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306338 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006339 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6340
6341 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306342 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006343 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6344
6345} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6346
6347/*
6348 Preferred network list request new
6349*/
6350typedef PACKED_PRE struct PACKED_POST
6351{
6352 tHalMsgHeader header;
6353 tPrefNetwListParamsNew prefNetwListParams;
6354} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6355
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006356#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6357typedef PACKED_PRE struct PACKED_POST
6358{
6359 tSirMacSSid ssId;
6360 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6361 tANI_U32 authentication;
6362 tEdType encryption;
6363 tEdType mcencryption;
6364 tANI_U8 ChannelCount;
6365 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6366}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006367
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006368typedef PACKED_PRE struct PACKED_POST
6369{
6370 tANI_U8 mdiePresent;
6371 tANI_U16 mobilityDomain;
6372}tMobilityDomainInfo;
6373
6374typedef PACKED_PRE struct PACKED_POST {
6375 eAniBoolean RoamScanOffloadEnabled;
6376 tANI_S8 LookupThreshold;
6377 tANI_U8 RoamRssiDiff;
6378 tANI_U8 ChannelCacheType;
6379 tANI_U8 Command;
6380 tANI_U8 StartScanReason;
6381 tANI_U16 NeighborScanTimerPeriod;
6382 tANI_U16 NeighborRoamScanRefreshPeriod;
6383 tANI_U16 NeighborScanChannelMinTime;
6384 tANI_U16 NeighborScanChannelMaxTime;
6385 tANI_U16 EmptyRefreshScanPeriod;
6386 tANI_U8 ValidChannelCount;
6387 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006388 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006389
6390 tANI_U16 us24GProbeSize;
6391 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6392 tANI_U16 us5GProbeSize;
6393 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6394 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006395 tANI_U8 nProbes;
6396 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006397 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006398 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006399 tANI_U8 RoamOffloadEnabled;
6400 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6401 tANI_U8 Prefer5GHz;
6402 tANI_U8 RoamRssiCatGap;
6403 tANI_U8 Select5GHzMargin;
Sreelakshmi Konamki24ebdca2017-05-29 15:48:36 +05306404 tANI_U8 WeakZoneRssiThresholdForRoam;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006405 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6406 tRoamNetworkType ConnectedNetwork;
6407 tMobilityDomainInfo MDID;
6408} tRoamCandidateListParams, * tpRoamCandidateListParams;
6409
6410typedef PACKED_PRE struct PACKED_POST
6411{
Kumar Anandea78e792013-10-10 23:47:01 -07006412 tHalMsgHeader header;
6413 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006414} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6415
6416typedef PACKED_PRE struct PACKED_POST
6417{
Kumar Anandea78e792013-10-10 23:47:01 -07006418 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006419
Kumar Anandea78e792013-10-10 23:47:01 -07006420 /* status of the request - just to indicate that PNO has acknowledged
6421 * the request and will start scanning */
6422 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006423} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6424#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006425
6426/*
6427 Preferred network list response
6428*/
6429typedef PACKED_PRE struct PACKED_POST
6430{
6431 tHalMsgHeader header;
6432
6433 /* status of the request - just to indicate that PNO has acknowledged
6434 * the request and will start scanning*/
6435 tANI_U32 status;
6436} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6437
6438/*
6439 Preferred network indication parameters
6440*/
6441typedef PACKED_PRE struct PACKED_POST {
6442
6443 /*Network that was found with the highest RSSI*/
6444 tSirMacSSid ssId;
6445
6446 /*Indicates the RSSI */
6447 tANI_U8 rssi;
6448
6449 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6450 tANI_U16 frameLength;
6451
6452} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6453
6454/*
6455 Preferred network found indication
6456*/
6457typedef PACKED_PRE struct PACKED_POST {
6458
6459 tHalMsgHeader header;
6460 tPrefNetwFoundParams prefNetwFoundParams;
6461} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6462
6463
6464typedef PACKED_PRE struct PACKED_POST {
6465
6466 /*RSSI Threshold*/
6467 tANI_U8 ucRssiThreshold;
6468
6469} tRssiFilterParams, * tpRssiFilterParams;
6470
Jeff Johnson295189b2012-06-20 16:38:30 -07006471/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306472 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006473*/
6474typedef PACKED_PRE struct PACKED_POST
6475{
6476 tHalMsgHeader header;
6477 tRssiFilterParams prefRSSIFilterParams;
6478} tSetRssiFilterReq, *tpSetRssiFilterReq;
6479
6480/*
6481 Set RSSI filter resp
6482*/
6483typedef PACKED_PRE struct PACKED_POST{
6484 tHalMsgHeader header;
6485 /*status of the request */
6486 tANI_U32 status;
6487} tSetRssiFilterResp, *tpSetRssiFilterResp;
6488/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306489 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006490*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306491typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006492{
6493
6494 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306495 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006496
6497 /*Lets PNO know that host has determined the regulatory domain*/
6498 tANI_U8 b11dResolved;
6499
6500 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306501 tANI_U8 ucChannelCount;
6502 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006503
6504 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306505 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006506
6507 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306508 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006509
6510 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306511 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006512
6513 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306514 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006515
6516 /*Cb State*/
6517 ePhyChanBondState cbState;
6518
6519} tUpdateScanParams, * tpUpdateScanParams;
6520
6521/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306522 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306523*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306524typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306525{
6526
6527 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306528 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306529
6530 /*Lets PNO know that host has determined the regulatory domain*/
6531 tANI_U8 b11dResolved;
6532
6533 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306534 tANI_U8 ucChannelCount;
6535 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306536
6537 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306538 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306539
6540 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306541 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306542
6543 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306544 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306545
6546 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306547 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306548
6549 /*Cb State*/
6550 ePhyChanBondState cbState;
6551
6552} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6553
6554/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006555 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306556 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006557*/
6558typedef PACKED_PRE struct PACKED_POST{
6559
6560 tHalMsgHeader header;
6561 tUpdateScanParams scanParams;
6562} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6563
6564/*
6565 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306566 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006567*/
6568typedef PACKED_PRE struct PACKED_POST{
6569
6570 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306571 tUpdateScanParamsEx scanParams;
6572} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6573
6574/*
6575 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306576 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306577*/
6578typedef PACKED_PRE struct PACKED_POST{
6579
6580 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006581
6582 /*status of the request */
6583 tANI_U32 status;
6584
6585} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6586
6587/*---------------------------------------------------------------------------
6588 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6589 *--------------------------------------------------------------------------*/
6590typedef PACKED_PRE struct PACKED_POST
6591{
6592 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6593 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6594 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6595 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6596} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6597
6598typedef PACKED_PRE struct PACKED_POST
6599{
6600 tHalMsgHeader header;
6601 tHalTxPerTrackingReqParam txPerTrackingParams;
6602} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6603
6604/*---------------------------------------------------------------------------
6605 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6606 *--------------------------------------------------------------------------*/
6607typedef PACKED_PRE struct PACKED_POST
6608{
6609 /* success or failure */
6610 tANI_U32 status;
6611} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6612
6613typedef PACKED_PRE struct PACKED_POST
6614{
6615 tHalMsgHeader header;
6616 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6617} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6618
6619/*---------------------------------------------------------------------------
6620 * WLAN_HAL_TX_PER_HIT_IND
6621 *--------------------------------------------------------------------------*/
6622typedef PACKED_PRE struct PACKED_POST
6623{
6624 tHalMsgHeader header;
6625}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6626
6627/*---------------------------------------------------------------------------
6628 *******************Packet Filtering Definitions Begin*******************
6629 *--------------------------------------------------------------------------*/
6630#define HAL_PROTOCOL_DATA_LEN 8
6631#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6632#define HAL_MAX_NUM_FILTERS 20
6633#define HAL_MAX_CMP_PER_FILTER 10
6634
6635typedef enum
6636{
6637 HAL_RCV_FILTER_TYPE_INVALID,
6638 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6639 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6640 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6641}tHalReceivePacketFilterType;
6642
Dino Mycle8afbac12014-07-04 22:06:17 +05306643typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006644{
6645 HAL_FILTER_PROTO_TYPE_INVALID,
6646 HAL_FILTER_PROTO_TYPE_MAC,
6647 HAL_FILTER_PROTO_TYPE_ARP,
6648 HAL_FILTER_PROTO_TYPE_IPV4,
6649 HAL_FILTER_PROTO_TYPE_IPV6,
6650 HAL_FILTER_PROTO_TYPE_UDP,
6651 HAL_FILTER_PROTO_TYPE_MAX
6652}tHalRcvPktFltProtocolType;
6653
Dino Mycle8afbac12014-07-04 22:06:17 +05306654typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006655{
6656 HAL_FILTER_CMP_TYPE_INVALID,
6657 HAL_FILTER_CMP_TYPE_EQUAL,
6658 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6659 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6660 HAL_FILTER_CMP_TYPE_MAX
6661}tHalRcvPktFltCmpFlagType;
6662
Dino Mycle8afbac12014-07-04 22:06:17 +05306663typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006664{
6665 tANI_U8 protocolLayer;
6666 tANI_U8 cmpFlag;
6667 tANI_U16 dataLength; /* Length of the data to compare */
6668 tANI_U8 dataOffset; /* from start of the respective frame header */
6669 tANI_U8 reserved; /* Reserved field */
6670 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6671 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6672}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6673
6674typedef PACKED_PRE struct PACKED_POST
6675{
6676 tANI_U8 filterId;
6677 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306678 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006679 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006680 tHalRcvPktFilterParams paramsData[1];
6681}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6682
6683typedef PACKED_PRE struct PACKED_POST
6684{
Jeff Johnsone7245742012-09-05 17:12:55 -07006685 tANI_U8 filterId;
6686 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306687 tANI_U8 numParams;
6688 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006689 tANI_U8 bssIdx;
6690 tHalRcvPktFilterParams paramsData[1];
6691}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6692
6693typedef PACKED_PRE struct PACKED_POST
6694{
Jeff Johnson295189b2012-06-20 16:38:30 -07006695 tHalMsgHeader header;
6696 tHalRcvPktFilterCfgType pktFilterCfg;
6697} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6698
Jeff Johnsone7245742012-09-05 17:12:55 -07006699typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006700{
6701 tANI_U8 dataOffset; /* from start of the respective frame header */
6702 tANI_U32 cMulticastAddr;
6703 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006704 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006705} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6706
6707typedef PACKED_PRE struct PACKED_POST
6708{
6709 /* success or failure */
6710 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006711 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006712} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6713
6714typedef PACKED_PRE struct PACKED_POST
6715{
6716 tHalMsgHeader header;
6717 tHalSetPktFilterRspParams pktFilterRspParams;
6718} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6719
Jeff Johnsone7245742012-09-05 17:12:55 -07006720typedef PACKED_PRE struct PACKED_POST
6721{
6722 tANI_U8 bssIdx;
6723} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006724
6725typedef PACKED_PRE struct PACKED_POST
6726{
6727 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006728 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006729} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6730
Jeff Johnsone7245742012-09-05 17:12:55 -07006731
Jeff Johnson295189b2012-06-20 16:38:30 -07006732typedef PACKED_PRE struct PACKED_POST
6733{
6734 tANI_U8 filterId;
6735 tANI_U32 matchCnt;
6736} tHalRcvFltPktMatchCnt;
6737typedef PACKED_PRE struct PACKED_POST
6738{
6739 /* Success or Failure */
6740 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306741 tANI_U32 matchCnt;
6742 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006743 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006744} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6745
6746typedef PACKED_PRE struct PACKED_POST
6747{
6748 tHalMsgHeader header;
6749 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6750} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6751
6752typedef PACKED_PRE struct PACKED_POST
6753{
6754 tANI_U32 status; /* only valid for response message */
6755 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006756 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006757}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6758
6759typedef PACKED_PRE struct PACKED_POST
6760{
6761 tHalMsgHeader header;
6762 tHalRcvFltPktClearParam filterClearParam;
6763} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6764
6765typedef PACKED_PRE struct PACKED_POST
6766{
6767 tHalMsgHeader header;
6768 tHalRcvFltPktClearParam filterClearParam;
6769} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6770
6771typedef PACKED_PRE struct PACKED_POST
6772{
Dino Mycle8afbac12014-07-04 22:06:17 +05306773 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006774 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006775}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6776
6777typedef PACKED_PRE struct PACKED_POST
6778{
6779 tHalMsgHeader header;
6780 tHalRcvFltMcAddrListType mcAddrList;
6781} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6782
6783typedef PACKED_PRE struct PACKED_POST
6784{
6785 tHalMsgHeader header;
6786 tHalRcvFltPktSetMcListRspType rspParam;
6787} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6788
6789
6790/*---------------------------------------------------------------------------
6791 *******************Packet Filtering Definitions End*******************
6792 *--------------------------------------------------------------------------*/
6793
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006794/*
6795 * There are two versions of this message
6796 * Version 1 : Base version
6797 * Current version : Base version + Max LI modulated DTIM
6798 */
6799typedef PACKED_PRE struct PACKED_POST
6800{
6801 /* Ignore DTIM */
6802 tANI_U32 uIgnoreDTIM;
6803
6804 /*DTIM Period*/
6805 tANI_U32 uDTIMPeriod;
6806
6807 /* Listen Interval */
6808 tANI_U32 uListenInterval;
6809
6810 /* Broadcast Multicast Filter */
6811 tANI_U32 uBcastMcastFilter;
6812
6813 /* Beacon Early Termination */
6814 tANI_U32 uEnableBET;
6815
6816 /* Beacon Early Termination Interval */
6817 tANI_U32 uBETInterval;
6818}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6819
6820typedef PACKED_PRE struct PACKED_POST
6821{
6822 tHalMsgHeader header;
6823 tSetPowerParamsVer1Type powerParams;
6824} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6825
Jeff Johnson295189b2012-06-20 16:38:30 -07006826typedef PACKED_PRE struct PACKED_POST
6827{
6828 /* Ignore DTIM */
6829 tANI_U32 uIgnoreDTIM;
6830
6831 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306832 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006833
6834 /* Listen Interval */
6835 tANI_U32 uListenInterval;
6836
6837 /* Broadcast Multicast Filter */
6838 tANI_U32 uBcastMcastFilter;
6839
6840 /* Beacon Early Termination */
6841 tANI_U32 uEnableBET;
6842
6843 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306844 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006845
6846 /* MAX LI for modulated DTIM */
6847 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006848}tSetPowerParamsType, *tpSetPowerParamsType;
6849
6850typedef PACKED_PRE struct PACKED_POST
6851{
6852 tHalMsgHeader header;
6853 tSetPowerParamsType powerParams;
6854} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6855
6856typedef PACKED_PRE struct PACKED_POST{
6857
6858 tHalMsgHeader header;
6859
6860 /*status of the request */
6861 tANI_U32 status;
6862
6863} tSetPowerParamsResp, *tpSetPowerParamsResp;
6864
6865/*---------------------------------------------------------------------------
6866 ****************Capability bitmap exchange definitions and macros starts*************
6867 *--------------------------------------------------------------------------*/
6868
Anand Kumar012623a2013-01-11 17:00:00 -08006869typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006870 MCC = 0,
6871 P2P = 1,
6872 DOT11AC = 2,
6873 SLM_SESSIONIZATION = 3,
6874 DOT11AC_OPMODE = 4,
6875 SAP32STA = 5,
6876 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006877 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006878 WLANACTIVE_OFFLOAD = 8,
6879 BEACON_OFFLOAD = 9,
6880 SCAN_OFFLOAD = 10,
6881 ROAM_OFFLOAD = 11,
6882 BCN_MISS_OFFLOAD = 12,
6883 STA_POWERSAVE = 13,
6884 STA_ADVANCED_PWRSAVE = 14,
6885 AP_UAPSD = 15,
6886 AP_DFS = 16,
6887 BLOCKACK = 17,
6888 PHY_ERR = 18,
6889 BCN_FILTER = 19,
6890 RTT = 20,
6891 RATECTRL = 21,
6892 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006893 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006894 SPECULATIVE_PS_POLL = 24,
6895 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006896 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006897 WLAN_SCAN_OFFLOAD = 27,
6898 WLAN_PERIODIC_TX_PTRN = 28,
6899 ADVANCE_TDLS = 29,
6900 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306901 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306902 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306903 CH_SWITCH_V1 = 33,
6904 HT40_OBSS_SCAN = 34,
6905 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006906 WLAN_MCADDR_FLT = 36,
6907 WLAN_CH144 = 37,
6908 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306909 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306910 LINK_LAYER_STATS_MEAS = 40,
6911 MU_MIMO = 41,
6912 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306913 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306914 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306915 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306916 DISA = 46,
6917 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306918 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306919 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306920 TDLS_OFF_CHANNEL = 51,
Padma, Santhosh Kumarcfbcf942015-12-08 16:07:47 +05306921 RTT3 = 52,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306922 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306923 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306924 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306925 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306926 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306927 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306928 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306929 WIFI_CONFIG = 61,
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05306930 ANTENNA_DIVERSITY_SELECTION = 62,
Kapil Guptac1043632016-06-25 00:23:30 +05306931 PER_BASED_ROAMING = 63,
Agrawal Ashish1d75aac2016-12-12 12:36:59 +05306932 SAP_MODE_WOW = 64,
6933 SAP_OFFLOADS = 65,
Sravan Kumar Kairam9ba5f5b2016-12-13 13:50:46 +05306934 SAP_BUFF_ALLOC = 66,
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +05306935 MAKE_BEFORE_BREAK = 67,
Anurag Chouhance0f0822017-01-24 15:44:26 +05306936 NUD_DEBUG = 68,
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05306937 /* 69 reserved for FATAL_EVENT_LOGGING */
6938 /* 70 reserved for WIFI_DUAL_BAND_ENABLE */
6939 PROBE_RSP_TEMPLATE_VER1 = 71,
Rajeev Kumar Sirasanagandlaba4d7692017-12-19 13:32:36 +05306940 STA_MONITOR_SCC = 72,
Ajit Vaishya1d5e41a2020-04-18 18:36:11 +05306941 BSSID_BLACKLIST = 73,
Kumar Anandea78e792013-10-10 23:47:01 -07006942 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006943} placeHolderInCapBitmap;
6944
Jeff Johnson295189b2012-06-20 16:38:30 -07006945typedef PACKED_PRE struct PACKED_POST{
6946
6947 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006948} tWlanFeatCaps, *tpWlanFeatCaps;
6949
6950typedef PACKED_PRE struct PACKED_POST{
6951
Dino Mycle8afbac12014-07-04 22:06:17 +05306952 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006953 tWlanFeatCaps wlanFeatCaps;
6954
6955} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6956
Jeff Johnsone7245742012-09-05 17:12:55 -07006957#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6958#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006959#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006960#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006961#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006962#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006963#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006964#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306965#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306966#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306967#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306968#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306969#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006970
Jeff Johnsone7245742012-09-05 17:12:55 -07006971tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6972
Jeff Johnson295189b2012-06-20 16:38:30 -07006973#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006974 if ((b)<=127) { \
6975 arr_index = (b)/32; \
6976 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006977 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006978 (a)->featCaps[arr_index] |= (1<<bit_index); \
6979 } \
6980 }
6981#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006982 if ((b)<=127) { \
6983 arr_index = (b)/32; \
6984 bit_index = (b)%32; \
6985 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006986 } \
6987 }
6988#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006989 if ((b)<=127) { \
6990 arr_index = (b)/32; \
6991 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006992 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006993 } \
6994 }
6995
6996/*---------------------------------------------------------------------------
6997 * WLAN_HAL_WAKE_REASON_IND
6998 *--------------------------------------------------------------------------*/
6999
7000/* status codes to help debug rekey failures */
7001typedef enum
7002{
7003 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
7004 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
7005 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
7006 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
7007 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
7008 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
7009 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
7010 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
7011 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
7012 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
7013
7014 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
7015} tGTKRekeyStatus;
7016
7017/* wake reason types */
7018typedef enum
7019{
7020 WLAN_HAL_WAKE_REASON_NONE = 0,
7021 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
7022 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
7023 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
7024 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
7025 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
7026 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
7027 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
7028} tWakeReasonType;
7029
7030/*
7031 Wake Packet which is saved at tWakeReasonParams.DataStart
7032 This data is sent for any wake reasons that involve a packet-based wakeup :
7033
7034 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
7035 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
7036 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
7037 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
7038 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
7039
7040 The information is provided to the host for auditing and debug purposes
7041
7042*/
7043
7044/*
7045 Wake reason indication parameters
7046*/
7047typedef PACKED_PRE struct PACKED_POST
7048{
7049 uint32 ulReason; /* see tWakeReasonType */
7050 uint32 ulReasonArg; /* argument specific to the reason type */
7051 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
7052 HAL truncates the data (i.e. data packets) this length
7053 will be less than the actual length */
7054 uint32 ulActualDataLen; /* actual length of data */
7055 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
7056 see specific wake type */
7057} tWakeReasonParams, *tpWakeReasonParams;
7058
7059/*
7060 Wake reason indication
7061*/
7062typedef PACKED_PRE struct PACKED_POST
7063{
7064 tHalMsgHeader header;
7065 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07007066 tANI_U32 uBssIdx : 8;
7067 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07007068} tHalWakeReasonInd, *tpHalWakeReasonInd;
7069
7070/*---------------------------------------------------------------------------
7071* WLAN_HAL_GTK_OFFLOAD_REQ
7072*--------------------------------------------------------------------------*/
7073
7074#define HAL_GTK_KEK_BYTES 16
7075#define HAL_GTK_KCK_BYTES 16
7076
7077#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
7078
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007079#define GTK_SET_BSS_KEY_TAG 0x1234AA55
7080
Jeff Johnson295189b2012-06-20 16:38:30 -07007081typedef PACKED_PRE struct PACKED_POST
7082{
7083 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05307084 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07007085 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
7086 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07007087 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007088} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
7089
7090typedef PACKED_PRE struct PACKED_POST
7091{
7092 tHalMsgHeader header;
7093 tHalGtkOffloadReqParams gtkOffloadReqParams;
7094} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
7095
7096/*---------------------------------------------------------------------------
7097* WLAN_HAL_GTK_OFFLOAD_RSP
7098*--------------------------------------------------------------------------*/
7099typedef PACKED_PRE struct PACKED_POST
7100{
7101 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07007102 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007103} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
7104
7105typedef PACKED_PRE struct PACKED_POST
7106{
7107 tHalMsgHeader header;
7108 tHalGtkOffloadRspParams gtkOffloadRspParams;
7109} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
7110
7111
7112/*---------------------------------------------------------------------------
7113* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
7114*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07007115typedef PACKED_PRE struct PACKED_POST
7116{
7117 tANI_U8 bssIdx;
7118
7119} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007120
7121typedef PACKED_PRE struct PACKED_POST
7122{
7123 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007124 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007125} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7126
7127/*---------------------------------------------------------------------------
7128* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7129*--------------------------------------------------------------------------*/
7130typedef PACKED_PRE struct PACKED_POST
7131{
7132 tANI_U32 ulStatus; /* success or failure */
7133 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7134 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7135 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7136 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7137 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007138 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007139} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7140
7141typedef PACKED_PRE struct PACKED_POST
7142{
7143 tHalMsgHeader header;
7144 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7145} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7146
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007147/*---------------------------------------------------------------------------
7148* WLAN_HAL_DHCP_IND
7149*--------------------------------------------------------------------------*/
7150typedef PACKED_PRE struct PACKED_POST
7151{
7152 /*Indicates the device mode which indicates about the DHCP activity */
7153 tANI_U8 device_mode;
7154 tSirMacAddr macAddr;
7155} tDHCPInfo, *tpDHCPInfo;
7156
7157typedef PACKED_PRE struct PACKED_POST
7158{
7159 tHalMsgHeader header;
7160 tANI_U32 status; /* success or failure */
7161} tDHCPIndStatus, *tpDHCPIndstatus;
7162
Jeff Johnson295189b2012-06-20 16:38:30 -07007163/*
7164 Thermal Mitigation mode of operation.
7165 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7166 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7167 reducing transmit power
7168 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7169*/
7170typedef enum
7171{
7172 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7173 HAL_THERMAL_MITIGATION_MODE_0,
7174 HAL_THERMAL_MITIGATION_MODE_1,
7175 HAL_THERMAL_MITIGATION_MODE_2,
7176 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7177}tHalThermalMitigationModeType;
7178//typedef tANI_S16 tHalThermalMitigationModeType;
7179
7180/*
7181 Thermal Mitigation level.
7182 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7183 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7184
7185 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7186 level indicates normal mode of operation
7187 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7188 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7189 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7190 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7191*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307192typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007193{
7194 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7195 HAL_THERMAL_MITIGATION_LEVEL_0,
7196 HAL_THERMAL_MITIGATION_LEVEL_1,
7197 HAL_THERMAL_MITIGATION_LEVEL_2,
7198 HAL_THERMAL_MITIGATION_LEVEL_3,
7199 HAL_THERMAL_MITIGATION_LEVEL_4,
7200 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7201}tHalThermalMitigationLevelType;
7202//typedef tANI_S16 tHalThermalMitigationLevelType;
7203
7204typedef PACKED_PRE struct PACKED_POST
7205{
7206 /* Thermal Mitigation Operation Mode */
7207 tHalThermalMitigationModeType thermalMitMode;
7208
7209 /* Thermal Mitigation Level */
7210 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307211
Jeff Johnson295189b2012-06-20 16:38:30 -07007212}tSetThermalMitgationType, *tpSetThermalMitgationType;
7213
7214/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7215typedef PACKED_PRE struct PACKED_POST
7216{
7217 tHalMsgHeader header;
7218 tSetThermalMitgationType thermalMitParams;
7219} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7220
7221typedef PACKED_PRE struct PACKED_POST{
7222
7223 tHalMsgHeader header;
7224
7225 /*status of the request */
7226 tANI_U32 status;
7227
7228} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7229
Dino Mycle8afbac12014-07-04 22:06:17 +05307230/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007231provided to FW from Host via periodic messages */
7232typedef PACKED_PRE struct PACKED_POST {
7233 /* TX stats */
7234 uint32 txBytesPushed;
7235 uint32 txPacketsPushed;
7236
7237 /* RX stats */
7238 uint32 rxBytesRcvd;
7239 uint32 rxPacketsRcvd;
7240 uint32 rxTimeTotal;
7241} tStaStatsClassB, *tpStaStatsClassB;
7242
7243typedef PACKED_PRE struct PACKED_POST {
7244
7245 /* Duration over which this stats was collected */
7246 tANI_U32 duration;
7247
7248 /* Per STA Stats */
7249 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7250} tStatsClassBIndParams, *tpStatsClassBIndParams;
7251
7252typedef PACKED_PRE struct PACKED_POST {
7253
7254 tHalMsgHeader header;
7255
7256 /* Class B Stats */
7257 tStatsClassBIndParams statsClassBIndParams;
7258} tStatsClassBInd, *tpStatsClassBInd;
7259
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307260/*Wifi Proximity paramters in AP mode*/
7261#ifdef FEATURE_WIFI_PROXIMITY
7262
7263typedef PACKED_PRE struct PACKED_POST{
7264
7265 tANI_U8 wifiProximityChannel;
7266 tANI_U32 wifiProximityDuration;
7267 tANI_U32 wifiProximityInterval;
7268 tANI_U32 wifiProximityMode;
7269 tANI_U32 wifiProximityStatus;
7270 tSirMacAddr bssId;
7271 tSirMacSSid ssId;
7272
7273} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7274
7275typedef PACKED_PRE struct PACKED_POST
7276{
7277 tHalMsgHeader header;
7278
7279 tSetWifiProximityReqParam wifiProximityReqParams;
7280
7281}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7282
7283/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7284typedef PACKED_PRE struct PACKED_POST{
7285
7286 tHalMsgHeader header;
7287
7288 /*status of the request */
7289 tANI_U32 status;
7290
7291} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7292
7293#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007294
7295#ifdef FEATURE_SPECULATIVE_PS_POLL
7296/*---------------------------------------------------------------------------
7297 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7298 *--------------------------------------------------------------------------*/
7299typedef PACKED_PRE struct PACKED_POST
7300{
7301 tANI_U8 bssIdx;
7302 tANI_U16 serviceInterval;
7303 tANI_U16 suspendInterval;
7304 tANI_U8 acMask;
7305} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7306
7307typedef PACKED_PRE struct PACKED_POST
7308{
7309 tHalMsgHeader header;
7310 tHalStartSpecPsPollReqParams specPsPollReq;
7311} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7312
7313/*---------------------------------------------------------------------------
7314 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7315 *--------------------------------------------------------------------------*/
7316typedef PACKED_PRE struct PACKED_POST
7317{
7318 /* success or failure */
7319 tANI_U32 status;
7320 tANI_U8 bssIdx;
7321} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7322
7323typedef PACKED_PRE struct PACKED_POST
7324{
7325 tHalMsgHeader header;
7326 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7327} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7328
7329/*---------------------------------------------------------------------------
7330 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7331 *--------------------------------------------------------------------------*/
7332typedef PACKED_PRE struct PACKED_POST
7333{
7334 tHalMsgHeader header;
7335 tANI_U8 bssIdx;
7336} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7337#endif
7338
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307339#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307340#define HAL_MAX_SUPP_CHANNELS 128
7341#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307342/*---------------------------------------------------------------------------
7343 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7344 *-------------------------------------------------------------------------*/
7345typedef PACKED_PRE struct PACKED_POST
7346{
7347 /*STA Index*/
7348 tANI_U16 staIdx;
7349
7350 /* if this is 1, self is initiator and peer is reponder */
7351 tANI_U8 bIsResponder;
7352
7353 /* QoS Info */
7354 tANI_U8 acVOUAPSDFlag:1;
7355 tANI_U8 acVIUAPSDFlag:1;
7356 tANI_U8 acBKUAPSDFlag:1;
7357 tANI_U8 acBEUAPSDFlag:1;
7358 tANI_U8 aAck:1;
7359 tANI_U8 maxServicePeriodLength:2;
7360 tANI_U8 moreDataAck:1;
7361
7362 /*TDLS Peer U-APSD Buffer STA Support*/
7363 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007364
7365 /*TDLS off channel related params */
7366 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307367 tANI_U8 peerCurrOperClass;
7368 tANI_U8 selfCurrOperClass;
7369 tANI_U8 validChannelsLen;
7370 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7371 tANI_U8 validOperClassesLen;
7372 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307373}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7374
7375typedef PACKED_PRE struct PACKED_POST
7376{
7377 tHalMsgHeader header;
7378 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7379} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7380
7381/*---------------------------------------------------------------------------
7382 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7383 *-------------------------------------------------------------------------*/
7384
7385typedef PACKED_PRE struct PACKED_POST
7386{
7387 tANI_U32 status;
7388
7389 /*STA Index*/
7390 tANI_U16 staIdx;
7391} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7392
7393typedef PACKED_PRE struct PACKED_POST
7394{
7395 tHalMsgHeader header;
7396 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7397} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307398/*---------------------------------------------------------------------------
7399 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7400 + *-------------------------------------------------------------------------*/
7401typedef PACKED_PRE struct PACKED_POST
7402{
7403 /*STA Index*/
7404 tANI_U16 staIdx;
7405 /* if this is 1, self is initiator otherwise responder only*/
7406 tANI_U8 isOffchannelInitiator;
7407 /*TDLS off channel related params */
7408 tANI_U8 targetOperClass;
7409 tANI_U8 targetChannel;
7410 tANI_U8 secondaryChannelOffset;
7411 tANI_U8 reserved[32];
7412}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7413
7414typedef PACKED_PRE struct PACKED_POST
7415{
7416 tHalMsgHeader header;
7417 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7418} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7419/*---------------------------------------------------------------------------
7420 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7421 *-------------------------------------------------------------------------*/
7422
7423typedef PACKED_PRE struct PACKED_POST
7424{
7425 tANI_U32 status;
7426 /*STA Index*/
7427 tANI_U16 staIdx;
7428} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7429
7430typedef PACKED_PRE struct PACKED_POST
7431{
7432 tHalMsgHeader header;
7433 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7434} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7435
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307436
7437/*---------------------------------------------------------------------------
7438 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7439 *-------------------------------------------------------------------------*/
7440typedef PACKED_PRE struct PACKED_POST
7441{
7442 /*STA Index*/
7443 tANI_U16 staIdx;
7444}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7445
7446typedef PACKED_PRE struct PACKED_POST
7447{
7448 tHalMsgHeader header;
7449 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7450} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7451
7452/*---------------------------------------------------------------------------
7453 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7454 *-------------------------------------------------------------------------*/
7455
7456typedef PACKED_PRE struct PACKED_POST
7457{
7458 tANI_U32 status;
7459
7460 /*STA Index*/
7461 tANI_U16 staIdx;
7462} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7463
7464typedef PACKED_PRE struct PACKED_POST
7465{
7466 tHalMsgHeader header;
7467 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7468} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7469
7470/*---------------------------------------------------------------------------
7471 *WLAN_HAL_TDLS_IND
7472 *--------------------------------------------------------------------------*/
7473
7474typedef PACKED_PRE struct PACKED_POST
7475{
7476 tANI_U16 assocId;
7477 tANI_U16 staIdx;
7478 tANI_U16 status;
7479 tANI_U16 reasonCode;
7480}tTdlsIndParams, *tpTdlsIndParams;
7481
7482
7483typedef PACKED_PRE struct PACKED_POST
7484{
7485 tHalMsgHeader header;
7486 tTdlsIndParams tdlsIndParams;
7487}tTdlsIndMsg, *tpTdlsIndMsg;
7488
7489#endif
7490
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007491/*---------------------------------------------------------------------------
7492 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7493 *--------------------------------------------------------------------------*/
7494
7495typedef PACKED_PRE struct PACKED_POST
7496{
7497 tANI_U8 bssIdx;
7498 tANI_U8 staIdx;
7499 tSirMacAddr staAddr;
7500}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7501
7502
7503typedef PACKED_PRE struct PACKED_POST
7504{
7505 tHalMsgHeader header;
7506 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7507}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7508
7509
Kumar Anandea78e792013-10-10 23:47:01 -07007510/*********** Scan Offload Related Structures *************/
7511#define HAL_NUM_SCAN_SSID 10
7512#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007513
Kumar Anandea78e792013-10-10 23:47:01 -07007514/*
7515 * Enumetation to indicate scan type (active/passive)
7516 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007517typedef enum
7518{
Kumar Anandea78e792013-10-10 23:47:01 -07007519 eSIR_PASSIVE_SCAN,
7520 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7521} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007522
7523typedef PACKED_PRE struct PACKED_POST
7524{
Kumar Anandea78e792013-10-10 23:47:01 -07007525 tANI_U8 numBssid;
7526 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7527 tANI_U8 numSsid;
7528 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7529 tANI_BOOLEAN hiddenSsid;
7530 tSirMacAddr selfMacAddr;
7531 tSirBssType bssType;
7532 tSirScanType scanType;
7533 tANI_U32 minChannelTime;
7534 tANI_U32 maxChannelTime;
7535 tANI_BOOLEAN p2pSearch;
7536 tANI_U8 channelCount;
7537 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7538 tANI_U16 ieFieldLen;
7539 tANI_U8 ieField[1];
7540}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007541
7542/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007543 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007544 *-------------------------------------------------------------------------*/
7545typedef PACKED_PRE struct PACKED_POST
7546{
Kumar Anandf53016f2013-09-04 15:15:53 -07007547 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007548 tScanOffloadReqType scanOffloadParams;
7549} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007550
7551/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007552 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007553 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007554typedef PACKED_PRE struct PACKED_POST
7555{
7556 tHalMsgHeader header;
7557
7558 /*status of the request - just to indicate SO has acknowledged
7559 * * the request and will start scanning*/
7560 tANI_U32 status;
7561} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7562
7563/*---------------------------------------------------------------------------
7564 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7565 *-------------------------------------------------------------------------*/
7566typedef PACKED_PRE struct PACKED_POST
7567{
7568 tHalMsgHeader header;
7569} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7570
7571/*---------------------------------------------------------------------------
7572 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7573 *-------------------------------------------------------------------------*/
7574typedef PACKED_PRE struct PACKED_POST
7575{
7576 tHalMsgHeader header;
7577
7578 /*status of the request - just to indicate SO has acknowledged
7579 the request and will start scanning*/
7580 tANI_U32 status;
7581} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7582
7583/*
7584 * Enumetation of scan events indicated by firmware to the host
7585 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007586typedef enum
7587{
Kumar Anandea78e792013-10-10 23:47:01 -07007588 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7589 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7590 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7591 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7592 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7593 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7594 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7595 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7596 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7597} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007598
7599typedef PACKED_PRE struct PACKED_POST
7600{
Kumar Anandea78e792013-10-10 23:47:01 -07007601 tScanEventType event;
7602 tANI_U32 channel;
7603 tANI_U32 scanId;
7604} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007605
Kumar Anandea78e792013-10-10 23:47:01 -07007606/*---------------------------------------------------------------------------
7607 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7608 *-------------------------------------------------------------------------*/
7609typedef PACKED_PRE struct PACKED_POST
7610{
7611 tHalMsgHeader header;
7612 tScanOffloadEventInfo scanOffloadInd;
7613} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007614
Kumar Anandea78e792013-10-10 23:47:01 -07007615typedef PACKED_PRE struct PACKED_POST {
7616 /** primary 20 MHz channel frequency in mhz */
7617 tANI_U32 mhz;
7618 /** Center frequency 1 in MHz*/
7619 tANI_U32 band_center_freq1;
7620 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7621 tANI_U32 band_center_freq2;
7622 /* The first 26 bits are a bit mask to indicate any channel flags,
7623 (see WLAN_HAL_CHAN_FLAG*)
7624 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7625 tANI_U32 channel_info;
7626 /** contains min power, max power, reg power and reg class id. */
7627 tANI_U32 reg_info_1;
7628 /** contains antennamax */
7629 tANI_U32 reg_info_2;
7630} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007631
Kumar Anandf53016f2013-09-04 15:15:53 -07007632
Kumar Anandea78e792013-10-10 23:47:01 -07007633typedef enum {
7634 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7635 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7636 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7637 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7638 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7639 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7640 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7641 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7642 WLAN_HAL_MODE_11AC_VHT20 = 8,
7643 WLAN_HAL_MODE_11AC_VHT40 = 9,
7644 WLAN_HAL_MODE_11AC_VHT80 = 10,
7645 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7646 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7647 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7648 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007649
Kumar Anandea78e792013-10-10 23:47:01 -07007650} tChannelPhyModeType;
7651
7652#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7653#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7654#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7655#define WLAN_HAL_CHAN_AP_DISABLED 9
7656#define WLAN_HAL_CHAN_FLAG_DFS 10
7657#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7658#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007659#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7660
7661#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007662 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007663 } while(0)
7664
7665#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007666 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007667
7668#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7669 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7670 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7671 } while(0)
7672#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7673
7674#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7675 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7676 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7677 } while(0)
7678#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7679
7680#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7681 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7682 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7683 } while(0)
7684#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7685#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7686 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7687 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7688 } while(0)
7689#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7690
7691#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7692 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7693 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7694 } while(0)
7695#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7696
7697#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7698 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7699 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7700 } while(0)
7701#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 -07007702
7703typedef PACKED_PRE struct PACKED_POST
7704{
7705 tANI_U8 numChan;
7706 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7707} tUpdateChannelReqType;
7708
7709/*---------------------------------------------------------------------------
7710 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7711 *-------------------------------------------------------------------------*/
7712typedef PACKED_PRE struct PACKED_POST
7713{
7714 tHalMsgHeader header;
7715 tUpdateChannelReqType updateChannelParams;
7716} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7717
7718/*---------------------------------------------------------------------------
7719 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7720 *-------------------------------------------------------------------------*/
7721typedef PACKED_PRE struct PACKED_POST
7722{
7723 tHalMsgHeader header;
7724
7725 /*status of the request - just to indicate SO has acknowledged
7726 * * the request and will start scanning*/
7727 tANI_U32 status;
7728} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7729
7730
7731/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307732 * WLAN_HAL_RMC_RULER_REQ
7733 *-------------------------------------------------------------------------*/
7734
7735#define HAL_MAX_RMC_SESSIONS 2
7736
7737#define HAL_NUM_MAX_RULERS 8
7738
7739typedef enum
7740{
7741 WLAN_HAL_SUGGEST_RULER,
7742 WLAN_HAL_BECOME_RULER,
7743 WLAN_HAL_RULER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7744}tRulerReqCmdType, tRulerRspCmdType;
7745
Kumar Anandea78e792013-10-10 23:47:01 -07007746typedef PACKED_PRE struct PACKED_POST
7747{
Abhishek Singh00b71972016-01-07 10:51:04 +05307748 tRulerReqCmdType cmd;
7749
7750 /* MAC address of MCAST Transmitter (source) */
7751 tSirMacAddr mcastTransmitter;
7752
7753 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7754 tSirMacAddr mcastGroup;
7755
7756 /* Optional black list for cmd = WLAN_HAL_SUGGEST_RULER */
7757 tSirMacAddr blacklist[HAL_NUM_MAX_RULERS];
7758} tHalRmcRulerReqParams, *tpHalRmcRulerReqParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007759
7760typedef PACKED_PRE struct PACKED_POST
7761{
7762 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307763 tHalRmcRulerReqParams rulerReqParams;
7764} tHalRmcRulerReqMsg, *tpHalRmcRulerReqMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007765
7766/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307767 * WLAN_HAL_RMC_RULER_RSP
7768 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007769typedef PACKED_PRE struct PACKED_POST
7770{
Abhishek Singh00b71972016-01-07 10:51:04 +05307771 /* success or failure */
7772 tANI_U32 status;
7773
7774 /* Command Type */
7775 tRulerRspCmdType cmd;
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 /* List of candidates for cmd = WLAN_HAL_SUGGEST_RULER*/
7784 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7785
7786} tHalRmcRulerRspParams, *tpHalRmcRulerRspParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007787
7788typedef PACKED_PRE struct PACKED_POST
7789{
7790 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307791 tHalRmcRulerRspParams rulerRspParams;
7792} tHalRmcRulerRspMsg, *tpHalRmcRulerRspMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007793
7794/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307795 * WLAN_HAL_RMC_UPDATE_IND
7796 *-------------------------------------------------------------------------*/
7797typedef enum
Kumar Anandea78e792013-10-10 23:47:01 -07007798{
Abhishek Singh00b71972016-01-07 10:51:04 +05307799 WLAN_HAL_RULER_ACCEPTED, //Host-->FW
7800 WLAN_HAL_RULER_CANCELED, //Host-->FW
7801 WLAN_HAL_RULER_PICK_NEW, //FW-->Host
7802 WLAN_HAL_RULER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
7803}tRmcUpdateIndType;
7804
7805typedef enum
7806{
7807 WLAN_HAL_RMC_RULER_ROLE,
7808 WLAN_HAL_RMC_TRANSMITTER_ROLE,
7809 WLAN_HAL_RMC_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7810}tRmcRoleType;
Kumar Anandea78e792013-10-10 23:47:01 -07007811
7812typedef PACKED_PRE struct PACKED_POST
7813{
Abhishek Singh00b71972016-01-07 10:51:04 +05307814 tRmcUpdateIndType indication;
7815
7816 /* Role of the entity generating this indication */
7817 tRmcRoleType role;
7818
7819 /* MAC address of MCAST Transmitter (source) */
7820 tSirMacAddr mcastTransmitter;
7821
7822 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7823 tSirMacAddr mcastGroup;
7824
7825 tSirMacAddr mcastRuler;
7826
7827 /* Candidate list for indication = WLAN_HAL_RULER_PICK_NEW */
7828 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7829} tHalRmcUpdateIndParams, *tpHalRmcUpdateIndParams;
Kumar Anandf53016f2013-09-04 15:15:53 -07007830
7831typedef PACKED_PRE struct PACKED_POST
7832{
7833 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307834 tHalRmcUpdateIndParams rulerIndParams;
7835} tHalRmcUpdateInd, *tpHalRmcUpdateInd;
7836
7837typedef PACKED_PRE struct PACKED_POST
7838{
7839 tANI_U8 staIdx; // Station Idx;
7840 tANI_U32 txRate; // Legacy transmit rate, in units of 500 kbit/sec,
7841 // for the most recently transmitted frame
7842 tANI_U32 mcsIndex; // mcs index for HT20 and HT40 rates
7843 tANI_U32 txRateFlags; // to differentiate between HT20 and
7844 // HT40 rates; short and long guard interval
7845 tANI_S8 rssi; // RSSI of the last received beacon
7846}tHalIbssPeerParams, *tpHalIbssPeerParams;
7847
7848typedef PACKED_PRE struct PACKED_POST
7849{
7850 tANI_U32 status; // success or failure
7851 tANI_U8 numOfPeers; // Number of Peers for
7852 // which stats are being reported
7853 tHalIbssPeerParams ibssPeerParams[1]; // Stats of peer in IBSS
7854}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
7855
7856// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
7857typedef PACKED_PRE struct PACKED_POST
7858{
7859 tHalMsgHeader header;
7860 tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
7861}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
7862
7863typedef PACKED_PRE struct PACKED_POST
7864{
7865 tANI_U8 bssIdx; // Bss Index
7866 tANI_BOOLEAN allPeerInfoReqd; // If set, all IBSS peers stats are reported
7867 tANI_U8 staIdx; // If allPeerInfoReqd is not set,
7868 // only stats of peer with
7869 // staIdx is reported
7870}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
7871
7872// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
7873typedef PACKED_PRE struct PACKED_POST
7874{
7875 tHalMsgHeader header;
7876 tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
7877}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
krunal soni2a4728d2013-09-20 21:56:50 -07007878
Kumar Anandf53016f2013-09-04 15:15:53 -07007879/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007880 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7881 *-------------------------------------------------------------------------*/
7882typedef enum
7883{
7884 /* reassociation is done, but couldn't finish security handshake */
7885 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7886
7887 /* roam has successfully completed by firmware */
7888 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7889
7890 /* UNKONW error */
7891 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7892}tHalRoamOffloadRoamAuthStatus;
7893
7894typedef enum
7895{
7896 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7897 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7898 WLAN_HAL_ROAM_TYPE_OKC,
7899 WLAN_HAL_ROAM_TYPE_CCKM,
7900 WLAN_HAL_ROAM_TYPE_FT,
7901 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7902} tHalRoamOffloadType;
7903
7904typedef PACKED_PRE struct PACKED_POST
7905{
7906 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7907 tANI_U16 beaconProbeRespOffset;
7908
7909 /* Length of beaon / probe resp. */
7910 tANI_U16 beaconProbeRespLength;
7911
7912 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7913 tANI_U16 reassocRespOffset;
7914
7915 /* Length of reassoc resp. */
7916 tANI_U16 reassocRespLength;
7917
7918 /* 0 for probe response frame, 1 for beacon frame, */
7919 tANI_U8 isBeacon;
7920
7921 /* staIdx of old AP */
7922 tANI_U8 oldStaIdx;
7923
7924 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7925 tConfigBssRspParams */
7926 /* bssIdx of new roamed AP */
7927 tANI_U8 bssIdx;
7928
7929 /* DPU descriptor index for PTK */
7930 tANI_U8 dpuDescIndx;
7931
7932 /* PTK DPU signature */
7933 tANI_U8 ucastDpuSignature;
7934
7935 /* DPU descriptor index for GTK*/
7936 tANI_U8 bcastDpuDescIndx;
7937
7938 /* GTK DPU signature */
7939 tANI_U8 bcastDpuSignature;
7940
7941 /*DPU descriptor for IGTK*/
7942 tANI_U8 mgmtDpuDescIndx;
7943
7944 /* IGTK DPU signature */
7945 tANI_U8 mgmtDpuSignature;
7946
7947 /* Station Index for BSS entry*/
7948 tANI_U8 staIdx;
7949
7950 /* Self station index for this BSS */
7951 tANI_U8 selfStaIdx;
7952
7953 /* Bcast station for buffering bcast frames in AP role */
7954 tANI_U8 bcastStaIdx;
7955
7956 /* MAC address of roamed AP */
7957 tSirMacAddr bssid;
7958
7959 /*HAL fills in the tx power used for mgmt frames in this field. */
7960 tANI_S8 txMgmtPower;
7961
7962 /* success or failure */
7963 tHalRoamOffloadRoamAuthStatus authStatus;
7964
7965 /* TODO : add more info as needed */
7966
7967 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7968 /* Beacon or probe resp from new AP. This is in 802.11
7969 frame format starting with MAC header. */
7970 /* Up to beaconProbeRespLength */
7971
7972 /* reassocRespOffset points to starting of reassoc resp frame */
7973 /* Reassoc resp from new AP. This is in 802.11
7974 frame format starting with MAC header. */
7975 /* Up to reassocRespLength */
7976
7977} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7978
7979
7980typedef PACKED_PRE struct PACKED_POST
7981{
7982 tHalMsgHeader header;
7983 tHalRoamOffloadSynchIndParams params;
7984} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7985
7986/*---------------------------------------------------------------------------
7987 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7988 *-------------------------------------------------------------------------*/
7989typedef PACKED_PRE struct PACKED_POST
7990{
7991 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7992 tSirMacAddr bssid;
7993} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7994
7995typedef PACKED_PRE struct PACKED_POST
7996{
7997 tHalMsgHeader header;
7998 tHalRoamOffloadSynchCnfParams params;
7999} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
8000
8001
8002/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008003 WLAN_HAL_RATE_UPDATE_IND
8004 *-------------------------------------------------------------------------*/
Abhishek Singh00b71972016-01-07 10:51:04 +05308005 typedef PACKED_PRE struct PACKED_POST
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008006{
8007 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
8008 tANI_S32 ucastDataRate; //unit Mbpsx10
8009
8010 /* TX flag to differentiate between HT20, HT40 etc */
8011 tTxRateInfoFlags ucastDataRateTxFlag;
8012
8013 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
8014 tSirMacAddr bssid;
8015
8016 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
Abhishek Singh00b71972016-01-07 10:51:04 +05308017 tANI_S32 rmcDataRate; //unit Mbpsx10
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008018
8019 /* TX flag to differentiate between HT20, HT40 etc */
Abhishek Singh00b71972016-01-07 10:51:04 +05308020 tTxRateInfoFlags rmcDataRateTxFlag;
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008021
Abhishek Singh00b71972016-01-07 10:51:04 +05308022 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008023 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
8024
8025 /* TX flag to differentiate between HT20, HT40 etc */
8026 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
8027
Abhishek Singh00b71972016-01-07 10:51:04 +05308028 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008029 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
8030
8031 /* TX flag to differentiate between HT20, HT40 etc */
8032 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
8033
8034} tHalRateUpdateParams, *tpHalRateUpdateParams;
8035
8036typedef PACKED_PRE struct PACKED_POST
8037{
8038 tHalMsgHeader header;
8039 tHalRateUpdateParams halRateUpdateParams;
8040} tHalRateUpdateInd, * tpHalRateUpdateInd;
8041
8042/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05308043* WLAN_HAL_TX_FAIL_IND
8044*--------------------------------------------------------------------------*/
8045// Northbound indication from FW to host on weak link detection
8046typedef PACKED_PRE struct PACKED_POST
8047{
8048 // Sequence number increases by 1 whenever the device driver
8049 // sends a notification event. This is cleared as 0 when the
8050 // JOIN IBSS commamd is issued
8051 tANI_U16 seqNo;
8052 tANI_U16 staId;
8053 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
8054} tHalTXFailIndParams, *tpHalTXFailIndParams;
8055
8056typedef PACKED_PRE struct PACKED_POST
8057{
8058 tHalMsgHeader header;
8059 tHalTXFailIndParams txFailIndParams;
8060} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
8061
8062/*---------------------------------------------------------------------------
8063* WLAN_HAL_TX_FAIL_MONITOR_IND
8064*--------------------------------------------------------------------------*/
8065// Southbound message from Host to monitor the Tx failures
8066typedef PACKED_PRE struct PACKED_POST
8067{
8068 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
8069 tANI_U8 tx_fail_count;
8070} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
8071
8072typedef PACKED_PRE struct PACKED_POST
8073{
8074 tHalMsgHeader header;
8075 tTXFailMonitorInfo txFailMonitor;
8076} tTXFailMonitorInd, *tpTXFailMonitorInd;
8077
8078/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308079 * WLAN_HAL_AVOID_FREQ_RANGE_IND
8080 *-------------------------------------------------------------------------*/
8081
Abhishek Singhe0443152015-06-18 10:07:43 +05308082#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308083
8084typedef PACKED_PRE struct PACKED_POST
8085{
8086 tANI_U32 startFreq;
8087 tANI_U32 endFreq;
8088} tHalFreqRange, *tpHalFreqRange;
8089
8090typedef PACKED_PRE struct PACKED_POST
8091{
8092 tANI_U32 avoidCnt;
8093 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
8094} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
8095
8096typedef PACKED_PRE struct PACKED_POST
8097{
8098 tHalMsgHeader header;
8099 tHalAvoidFreqRangeIndParams freqRangeIndParams;
8100} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
8101
8102/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308103 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07008104 *-------------------------------------------------------------------------*/
8105
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308106typedef enum
8107{
8108 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
8109 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
8110 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
8111}tHT40OBssScanCmdType;
8112
8113typedef PACKED_PRE struct PACKED_POST
8114{
8115 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008116
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308117 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008118 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
8119 tANI_U16 OBSSScanActiveDwellTime; // In TUs
8120 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
8121 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
8122 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
8123 tANI_U16 BSSWidthChannelTransitionDelayFactor;
8124 tANI_U16 OBSSScanActivityThreshold;
8125
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308126 tANI_U8 selfStaIdx;
8127 tANI_U8 bssIdx;
8128 tANI_U8 fortyMHZIntolerent;
8129 tANI_U8 channelCount;
8130 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
8131 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008132
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308133 tANI_U16 ieFieldLen;
8134 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
8135}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
8136
8137typedef PACKED_PRE struct PACKED_POST
8138{
8139 tHalMsgHeader header;
8140 tHT40ObssScanIndType scanHT40ObssScanParams;
8141} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
8142
8143/*---------------------------------------------------------------------------
8144 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
8145 *-------------------------------------------------------------------------*/
8146typedef PACKED_PRE struct PACKED_POST
8147{
8148 tHalMsgHeader header;
8149 tANI_U8 bssIdx;
8150} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05308151
8152/*---------------------------------------------------------------------------
8153 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
8154 *-------------------------------------------------------------------------*/
8155
8156typedef PACKED_PRE struct PACKED_POST
8157{
8158 /* Valid BSS Idx for beacon miss rate */
8159 tANI_U8 bssIdx;
8160
8161}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
8162
8163typedef PACKED_PRE struct PACKED_POST
8164{
8165 tHalMsgHeader header;
8166 tHalBcnMissRateReqParams bcnMissRateReqParams;
8167} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
8168
8169/*---------------------------------------------------------------------------
8170 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
8171 *-------------------------------------------------------------------------*/
8172
8173typedef PACKED_PRE struct PACKED_POST
8174{
8175 tANI_U32 status;
8176 tANI_U32 bcnMissCnt;
8177}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
8178
8179typedef PACKED_PRE struct PACKED_POST
8180{
8181 tHalMsgHeader header;
8182 tHalBcnMissRateRspParams bcnMissRateRspParams;
8183}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
8184
Selvaraj, Sridhar6c0eb3f2016-04-06 12:42:04 +05308185/*---------------------------------------------------------------------------
8186 * WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND
8187 *-------------------------------------------------------------------------*/
8188
8189typedef PACKED_PRE struct PACKED_POST
8190{
8191 tANI_U32 actionFramesBitMask;
8192 tANI_U32 reserved;
8193}tHalAllowedActionFrames, *tpHalAllowedActionFrames;
8194
8195typedef PACKED_PRE struct PACKED_POST
8196{
8197 tHalMsgHeader header;
8198 tHalAllowedActionFrames allowedActionFrames;
8199}tHalAllowedActionFramesReqInd, *tpHalAllowedActionFramesReqInd;
8200
Sourav Mohapatra72c2c342018-03-05 19:49:05 +05308201/*----------------------------------------------------------------
8202 WLAN_HAL_VOWIFI_IND
8203-----------------------------------------------------------------*/
8204typedef PACKED_PRE struct PACKED_POST
8205{
8206 /* 0 implies VoWifi call ended, 1 implies VoWifi call started */
8207 tANI_U8 enable;
8208} tHalVoWiFiIndParams, *tpHalVoWiFiIndParams;
8209
8210typedef PACKED_PRE struct PACKED_POST
8211{
8212 tHalMsgHeader header;
8213 tHalVoWiFiIndParams voWiFiIndParams;
8214} tHalVoWiFiInd, * tpHalVoWiFiInd;
8215
Ashish Kumar Dhanotiyac4c53842018-04-10 18:24:33 +05308216/*----------------------------------------------------------------
8217 WLAN_HAL_QPOWER
8218-----------------------------------------------------------------*/
8219typedef PACKED_PRE struct PACKED_POST
8220{
8221 tANI_U8 enable;
8222} tHalQpowerParams, *tpHalQpowerParams;
8223
8224typedef PACKED_PRE struct PACKED_POST
8225{
8226 tHalMsgHeader header;
8227 tHalQpowerParams qpowerParams;
8228} tHalQpower, * tpHalQpower;
8229
Sunil Dutt8377a382014-05-26 21:18:04 +05308230/*--------------------------------------------------------------------------
8231* WLAN_HAL_LL_SET_STATS_REQ
8232*---------------------------------------------------------------------------*/
8233
8234typedef PACKED_PRE struct PACKED_POST
8235{
8236 tANI_U32 req_id;
8237 tANI_U8 sta_id;
8238 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
8239 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
8240} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
8241
8242typedef PACKED_PRE struct PACKED_POST
8243{
8244 tHalMsgHeader header;
8245 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
8246} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
8247
8248/*---------------------------------------------------------------------------
8249 WLAN_HAL_LL_SET_STATS_RSP
8250---------------------------------------------------------------------------*/
8251
8252typedef PACKED_PRE struct PACKED_POST
8253{
8254 tANI_U32 status;
8255 tANI_U32 resp_id;
8256 tANI_U8 iface_id;
8257} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
8258
8259typedef PACKED_PRE struct PACKED_POST
8260{
8261 tHalMsgHeader header;
8262 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
8263} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
8264
8265/*---------------------------------------------------------------------------
8266 WLAN_HAL_LL_GET_STATS_REQ
8267---------------------------------------------------------------------------*/
8268
8269typedef PACKED_PRE struct PACKED_POST
8270{
8271 tANI_U32 req_id;
8272 tANI_U8 sta_id;
8273 tANI_U32 param_id_mask;
8274} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
8275
8276typedef PACKED_PRE struct PACKED_POST
8277{
8278 tHalMsgHeader header;
8279 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
8280} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
8281
8282/*---------------------------------------------------------------------------
8283 WLAN_HAL_LL_GET_STATS_RSP
8284---------------------------------------------------------------------------*/
8285typedef PACKED_PRE struct PACKED_POST
8286{
8287 tANI_U32 status;
8288 tANI_U32 resp_id;
8289 tANI_U8 iface_id;
8290} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8291
8292typedef PACKED_PRE struct PACKED_POST
8293{
8294 tHalMsgHeader header;
8295 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8296} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8297
8298/*---------------------------------------------------------------------------
8299 WLAN_HAL_LL_CLEAR_STATS_REQ
8300---------------------------------------------------------------------------*/
8301typedef PACKED_PRE struct PACKED_POST
8302{
8303 tANI_U32 req_id;
8304 tANI_U8 sta_id;
8305 tANI_U32 stats_clear_req_mask;
8306 tANI_U8 stop_req;
8307} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8308
8309typedef PACKED_PRE struct PACKED_POST
8310{
8311 tHalMsgHeader header;
8312 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8313} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8314
8315/*---------------------------------------------------------------------------
8316 WLAN_HAL_LL_CLEAR_STATS_RSP
8317---------------------------------------------------------------------------*/
8318typedef PACKED_PRE struct PACKED_POST
8319{
8320 tANI_U32 status;
8321 tANI_U8 sta_id;
8322 tANI_U32 resp_id;
8323 tANI_U32 stats_clear_rsp_mask;
8324 tANI_U8 stop_req_status;
8325} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8326
8327typedef PACKED_PRE struct PACKED_POST
8328{
8329 tHalMsgHeader header;
8330 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8331} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8332
8333/*---------------------------------------------------------------------------
8334 WLAN_HAL_LL_NOTIFY_STATS
8335---------------------------------------------------------------------------*/
8336
8337typedef PACKED_PRE struct PACKED_POST
8338{
8339 tHalMsgHeader header;
8340 tANI_U32 param_id;
8341 tANI_U8 iface_id;
8342 tANI_U32 resp_id;
8343 tANI_U32 more_result_to_follow;
8344 tANI_U8 result[1];
8345} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008346
Dino Mycle108eff22014-06-10 09:36:44 +05308347/*---------------------------------------------------------------------------
8348 * WLAN_HAL_EXT_SCAN_START_REQ
8349 *-------------------------------------------------------------------------*/
8350
Dino Mycle8afbac12014-07-04 22:06:17 +05308351typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308352{
8353 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8354 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8355 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8356 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8357 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8358 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8359 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308360 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308361} tExtScanChannelBandMask;
8362
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308363#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8364#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8365
8366#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8367
8368#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8369#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8370#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8371#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8372
Dino Mycle108eff22014-06-10 09:36:44 +05308373typedef PACKED_PRE struct PACKED_POST
8374{
8375 tANI_U32 channel; // frequency
8376 tANI_U32 dwellTimeMs; // dwell time hint
8377 tANI_U8 passive; // 0 => active,
8378 // 1 => passive scan; ignored for DFS
8379}tExtScanChannelSpec, *tpExtScanChannelSpec;
8380
8381typedef PACKED_PRE struct PACKED_POST
8382 {
8383 /* bucket index, 0 based */
8384 tANI_U8 bucketId;
8385 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8386 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308387 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308388 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308389 /* This is a bit field; which defines following bits -
8390 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8391 is % full
8392 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8393 after scan
8394 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8395 (beacons/probe responses + IEs) in real time to HAL, in addition
8396 to completion events
8397 Note: To keep backward compatibility, fire completion events
8398 regardless of REPORT_EVENTS_EACH_SCAN.
8399 * REPORT_EVENTS_NO_BATCH => controls batching,
8400 0 => batching, 1 => no batching
8401 */
Dino Mycle108eff22014-06-10 09:36:44 +05308402 tANI_U8 reportEvents;
8403 /* number of channels */
8404 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308405 // new Exponential Scan params
8406 tANI_U32 max_period;
8407 tANI_U32 exponent;
8408 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308409 /* if channels to scan. In the TLV channelList[] */
8410 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8411}tExtScanBucketData, *tpExtScanBucketData;
8412
8413typedef PACKED_PRE struct PACKED_POST
8414{
8415 tANI_U32 requestId;
8416 tANI_U8 sessionId;
8417 /* Base period (milliseconds) used by scan buckets to define periodicity
8418 of the scans */
8419 tANI_U32 basePeriod;
8420 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8421 (keep the most significant, i.e. stronger RSSI) */
8422 tANI_U32 maxApPerScan;
8423 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308424 tANI_U32 reportThresholdPercent;
8425 /* in number of scans, wake up AP after these many scans */
8426 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308427 /* This will be off channel minimum time */
8428 tANI_U16 neighborScanChannelMinTime;
8429 /* This will be out off channel max time */
8430 tANI_U16 neighborScanChannelMaxTime;
8431 /* This will be the home (BSS) channel time */
8432 tANI_U16 homeAwayTime;
8433 /* number of buckets (maximum 8) */
8434 tANI_U8 numBuckets;
8435 /* Buckets data */
8436 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8437} tHalExtScanStartReq, *tpHalExtScanStartReq;
8438
8439typedef PACKED_PRE struct PACKED_POST
8440{
8441 tHalMsgHeader header;
8442 tHalExtScanStartReq extScanStartReq;
8443}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8444
8445/*---------------------------------------------------------------------------
8446 * WLAN_HAL_EXT_SCAN_START_RSP
8447 *-------------------------------------------------------------------------*/
8448
8449typedef PACKED_PRE struct PACKED_POST
8450{
8451 tANI_U32 requestId;
8452 tANI_U32 status;
8453}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8454
8455typedef PACKED_PRE struct PACKED_POST
8456{
8457 tHalMsgHeader header;
8458 tHalExtScanStartRsp extScanStartRsp;
8459}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8460
8461/*---------------------------------------------------------------------------
8462 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8463 *-------------------------------------------------------------------------*/
8464
8465typedef PACKED_PRE struct PACKED_POST
8466{
8467 tANI_U32 requestId;
8468 tANI_U8 sessionId;
8469}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8470
8471typedef PACKED_PRE struct PACKED_POST
8472{
8473 tHalMsgHeader header;
8474 tHalExtScanGetCapReq extScanGetCapReq;
8475}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8476
8477/*---------------------------------------------------------------------------
8478 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8479 *-------------------------------------------------------------------------*/
8480
8481typedef PACKED_PRE struct PACKED_POST
8482{
8483 tANI_U32 requestId;
8484 tANI_U32 status;
8485
8486 tANI_U32 scanCacheSize;
8487 tANI_U32 scanBuckets;
8488 tANI_U32 maxApPerScan;
8489 tANI_U32 maxRssiSampleSize;
8490 tANI_U32 maxScanReportingThreshold;
8491
8492 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308493 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308494
8495 tANI_U32 maxBssidHistoryEntries;
8496}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8497
8498typedef PACKED_PRE struct PACKED_POST
8499{
8500 tHalMsgHeader header;
8501 tHalExtScanGetCapRsp extScanGetCapRsp;
8502}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8503
8504/*---------------------------------------------------------------------------
8505 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8506 *-------------------------------------------------------------------------*/
8507
8508typedef PACKED_PRE struct PACKED_POST
8509{
8510 tANI_U32 requestId;
8511 tANI_U8 sessionId;
8512 /*
8513 * 1 return cached results and flush it
8514 * 0 return cached results and do not flush
8515 */
8516 tANI_BOOLEAN flush;
8517}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8518
8519typedef PACKED_PRE struct PACKED_POST
8520{
8521 tHalMsgHeader header;
8522 tHalExtScanGetScanReq getScanReq;
8523}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8524
8525/*---------------------------------------------------------------------------
8526 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8527 *-------------------------------------------------------------------------*/
8528
8529typedef PACKED_PRE struct PACKED_POST
8530{
8531 tANI_U32 requestId;
8532 tANI_U32 status;
8533}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8534
8535typedef PACKED_PRE struct PACKED_POST
8536{
8537 tHalMsgHeader header;
8538 tHalExtScanGetScanRsp getScanRsp;
8539}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8540
8541/*---------------------------------------------------------------------------
8542 * WLAN_HAL_EXT_SCAN_RESULT_IND
8543 *-------------------------------------------------------------------------*/
8544
8545typedef PACKED_PRE struct PACKED_POST
8546{
8547 tANI_U64 ts; // time of discovery
8548 tANI_U8 ssid[32+1]; // null terminated SSID
8549 tSirMacAddr bssid; // BSSID
8550 tANI_U32 channel; // channel frequency in MHz
8551 tANI_S32 rssi; // RSSI in dBm
8552 tANI_U32 rtt; // RTT in nanoseconds - not expected
8553 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308554 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308555 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308556 tANI_U16 ieLength; // size of the ie_data blob
8557 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308558} tHalExtScanResultParams, *tpHalExtScanResultParams;
8559
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308560/* Get the GSCAN cached scan results */
8561typedef struct {
8562 tANI_U16 scan_id; // a unique identifier for the scan unit
8563 tANI_U8 flags; // a bitmask with additional
8564 // information about scan
8565 tANI_U8 num_results; // number of bssids retrieved by the scan
8566 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8567 // scan results - one for each bssid
8568} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8569
Dino Mycle108eff22014-06-10 09:36:44 +05308570typedef PACKED_PRE struct PACKED_POST
8571{
8572 tHalMsgHeader header;
8573 tANI_U32 requestId;
8574 tANI_U32 scanResultSize;
8575 tANI_BOOLEAN moreData;
8576 tANI_U8 extScanResult[1];
8577}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8578
8579/*---------------------------------------------------------------------------
8580 * WLAN_HAL_EXT_SCAN_STOP_REQ
8581 *-------------------------------------------------------------------------*/
8582
8583typedef PACKED_PRE struct PACKED_POST
8584{
8585 tANI_U32 requestId;
8586 tANI_U8 sessionId;
8587}tHalExtScanStopReq, *tpHalExtScanStopReq;
8588
8589typedef PACKED_PRE struct PACKED_POST
8590{
8591 tHalMsgHeader header;
8592 tHalExtScanStopReq extScanStopReq;
8593}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8594
8595/*---------------------------------------------------------------------------
8596 * WLAN_HAL_EXT_SCAN_STOP_RSP
8597 *-------------------------------------------------------------------------*/
8598
8599typedef PACKED_PRE struct PACKED_POST
8600{
8601 tANI_U32 requestId;
8602 tANI_U32 status;
8603}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8604
8605typedef PACKED_PRE struct PACKED_POST
8606{
8607 tHalMsgHeader header;
8608 tHalExtScanStopRsp extScanStopRsp;
8609}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8610
8611/*---------------------------------------------------------------------------
8612 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8613 *-------------------------------------------------------------------------*/
8614
Dino Mycle8afbac12014-07-04 22:06:17 +05308615typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308616{
8617 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8618 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308619 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308620} tHalExtScanProgressEventType;
8621
8622typedef PACKED_PRE struct PACKED_POST
8623{
8624 tANI_U32 requestId;
8625 tANI_U32 status;
8626 tHalExtScanProgressEventType extScanEventType;
8627}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8628
8629typedef PACKED_PRE struct PACKED_POST
8630{
8631 tHalMsgHeader header;
8632 tHalExtScanProgressInd extScanProgressInd;
8633}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8634
8635/*---------------------------------------------------------------------------
8636 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8637 *-------------------------------------------------------------------------*/
8638
8639typedef PACKED_PRE struct PACKED_POST
8640{
8641 tANI_U32 requestId;
8642 tANI_U32 numOfScanResAvailable;
8643}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8644
8645typedef PACKED_PRE struct PACKED_POST
8646{
8647 tHalMsgHeader header;
8648 tHalExtScanResAvailableInd extScanResAvailableInd;
8649}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8650
Dino Mycle108eff22014-06-10 09:36:44 +05308651typedef PACKED_PRE struct PACKED_POST
8652{
8653 /* AP BSSID */
8654 tSirMacAddr bssid;
8655 /* low threshold - used in L for significant_change - not used in L for
8656 hotlist*/
8657 tANI_S32 lowRssiThreshold;
8658 /* high threshold - used in L for significant rssi - used in L for hotlist */
8659 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308660} tApThresholdParams, *tpApThresholdParams;
8661
Dino Mycle108eff22014-06-10 09:36:44 +05308662/*---------------------------------------------------------------------------
8663 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8664 *-------------------------------------------------------------------------*/
8665
8666typedef PACKED_PRE struct PACKED_POST
8667{
8668 tANI_U32 requestId;
8669 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308670 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308671 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308672 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308673 // hotlist APs
8674 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8675} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8676
8677typedef PACKED_PRE struct PACKED_POST
8678{
8679 tHalMsgHeader header;
8680 tHalBssidHotlistSetReq bssidHotlistSetReq;
8681}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8682
8683/*---------------------------------------------------------------------------
8684 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8685 *-------------------------------------------------------------------------*/
8686
8687typedef PACKED_PRE struct PACKED_POST
8688{
8689 tANI_U32 requestId;
8690 tANI_U32 status;
8691}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8692
8693typedef PACKED_PRE struct PACKED_POST
8694{
8695 tHalMsgHeader header;
8696 tHalHotlistSetRsp hotlistSetRsp;
8697}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8698
8699/*---------------------------------------------------------------------------
8700 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8701 *-------------------------------------------------------------------------*/
8702
8703typedef PACKED_PRE struct PACKED_POST
8704{
8705 tANI_U32 requestId;
8706}tHalHotlistResetReq, *tpHalHotlistResetReq;
8707
8708typedef PACKED_PRE struct PACKED_POST
8709{
8710 tHalMsgHeader header;
8711 tHalHotlistResetReq hotlistResetReq;
8712}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8713
8714/*---------------------------------------------------------------------------
8715 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8716 *-------------------------------------------------------------------------*/
8717
8718typedef PACKED_PRE struct PACKED_POST
8719{
8720 tANI_U32 requestId;
8721 tANI_U32 status;
8722}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8723
8724typedef PACKED_PRE struct PACKED_POST
8725{
8726 tHalMsgHeader header;
8727 tHalHotlistResetRsp hotlistResetRsp;
8728}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8729
8730/*---------------------------------------------------------------------------
8731 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8732 *-------------------------------------------------------------------------*/
8733
8734typedef PACKED_PRE struct PACKED_POST
8735{
8736 tHalMsgHeader header;
8737 tANI_U32 requestId;
8738 tANI_U32 numHotlistBss;
8739 tANI_BOOLEAN moreData;
8740 tANI_U8 bssHotlist[1];
8741}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8742
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308743/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308744 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8745 *-------------------------------------------------------------------------*/
8746
8747typedef PACKED_PRE struct PACKED_POST
8748{
8749 /* SSID */
8750 char ssid [32+1];
8751 /* low threshold - used in L for significant_change - not used in L for
8752 hotlist*/
8753 tANI_S32 lowRssiThreshold;
8754 /* high threshold - used in L for significant rssi - used in L for hotlist */
8755 tANI_S32 highRssiThreshold;
8756 /* band */
8757 tANI_U32 band;
8758 } tSsidThresholdParams, *tpSsidThresholdParams;
8759
8760
8761typedef PACKED_PRE struct PACKED_POST
8762{
8763 tANI_U32 requestId;
8764 tANI_U8 sessionId;
8765 tANI_U32 lostSsidSampleSize;
8766 // number of hotlist SSIDs
8767 tANI_U32 numSsid;
8768 // hotlist SSIDs
8769 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8770} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8771
8772typedef PACKED_PRE struct PACKED_POST
8773{
8774 tHalMsgHeader header;
8775 tHalSsidHotlistSetReq ssidHotlistSetReq;
8776}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8777
8778/*---------------------------------------------------------------------------
8779 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8780 *-------------------------------------------------------------------------*/
8781typedef PACKED_PRE struct PACKED_POST
8782{
8783 tANI_U32 requestId;
8784 tANI_U32 status;
8785}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8786
8787typedef PACKED_PRE struct PACKED_POST
8788{
8789 tHalMsgHeader header;
8790 tHalSsidHotlistSetRsp hotlistSetRsp;
8791}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8792
8793/*---------------------------------------------------------------------------
8794 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8795 *-------------------------------------------------------------------------*/
8796
8797typedef PACKED_PRE struct PACKED_POST
8798{
8799 tANI_U32 requestId;
8800}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8801
8802typedef PACKED_PRE struct PACKED_POST
8803{
8804 tHalMsgHeader header;
8805 tHalSsidHotlistResetReq hotlistResetReq;
8806}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8807
8808/*---------------------------------------------------------------------------
8809 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8810 *-------------------------------------------------------------------------*/
8811
8812typedef PACKED_PRE struct PACKED_POST
8813{
8814 tANI_U32 requestId;
8815 tANI_U32 status;
8816}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8817
8818typedef PACKED_PRE struct PACKED_POST
8819{
8820 tHalMsgHeader header;
8821 tHalSsidHotlistResetRsp hotlistResetRsp;
8822}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8823
8824/*---------------------------------------------------------------------------
8825 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8826 *-------------------------------------------------------------------------*/
8827
8828typedef PACKED_PRE struct PACKED_POST
8829{
8830 tHalMsgHeader header;
8831 tANI_U32 requestId;
8832 tANI_BOOLEAN ssid_found;
8833 tANI_U32 numHotlistSsid;
8834 tANI_BOOLEAN moreData;
8835 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8836}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8837
8838/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308839 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8840 *-------------------------------------------------------------------------*/
8841
8842typedef PACKED_PRE struct PACKED_POST
8843{
8844 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8845 tANI_U32 reserved; //reserved for future use
8846}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8847
8848typedef PACKED_PRE struct PACKED_POST
8849{
8850 tHalMsgHeader header;
8851 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8852}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8853
8854/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308855 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8856 *--------------------------------------------------------------------------*/
8857typedef PACKED_PRE struct PACKED_POST
8858{
8859 tANI_U8 macAddr[6];
8860 tANI_U32 reserved1;
8861 tANI_U32 reserved2;
8862}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8863
8864typedef PACKED_PRE struct PACKED_POST
8865{
8866 tHalMsgHeader header;
8867 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8868} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8869
8870/*---------------------------------------------------------------------------
8871* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8872*-------------------------------------------------------------------------*/
8873
8874typedef PACKED_PRE struct PACKED_POST
8875{
8876 tANI_U32 status;
8877 tANI_U32 reserved1;
8878} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8879
8880typedef PACKED_PRE struct PACKED_POST
8881{
8882 tHalMsgHeader header;
8883 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8884} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308885/*---------------------------------------------------------------------------
8886 *WLAN_HAL_GET_FRAME_LOG_REQ
8887 *--------------------------------------------------------------------------*/
8888typedef PACKED_PRE struct PACKED_POST
8889{
8890 tANI_U8 flags;
8891}tGetFrameLogReqType, * tpGetFrameLogReqType;
8892
8893typedef PACKED_PRE struct PACKED_POST
8894{
8895 tHalMsgHeader header;
8896 tGetFrameLogReqType tGetFrameLogReqParams;
8897} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8898
8899/*---------------------------------------------------------------------------
8900 * WLAN_HAL_GET_FRAME_LOG_RSP
8901 *-------------------------------------------------------------------------*/
8902typedef PACKED_PRE struct PACKED_POST
8903{
8904 tANI_U32 status;
8905} tGetFrameLogResp, * tpGetFrameLogResp;
8906
8907typedef PACKED_PRE struct PACKED_POST
8908{
8909 tHalMsgHeader header;
8910 tGetFrameLogResp tGetFrameLogRespParams;
8911} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8912
8913/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308914 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8915 *-------------------------------------------------------------------------*/
8916typedef PACKED_PRE struct PACKED_POST
8917{
8918 tANI_U32 reasonCode;
8919}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8920
8921typedef PACKED_PRE struct PACKED_POST
8922{
8923 tHalMsgHeader header;
8924 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8925}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8926
8927/*---------------------------------------------------------------------------
8928 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8929 *-------------------------------------------------------------------------*/
8930typedef PACKED_PRE struct PACKED_POST
8931{ tANI_U32 status;
8932}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8933
8934typedef PACKED_PRE struct PACKED_POST
8935{
8936 tHalMsgHeader header;
8937 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8938}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8939
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308940/*---------------------------------------------------------------------------
8941 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8942 *-------------------------------------------------------------------------*/
8943typedef PACKED_PRE struct PACKED_POST
8944{
8945 tANI_U8 bssIdx;
8946 tANI_U8 rssi;
8947 tSirMacAddr selfMacAddr;
8948 tANI_U32 linkFlCnt;
8949 tANI_U32 linkFlTx;
8950 tANI_U32 lastDataRate;
8951 tANI_U32 rsvd1;
8952 tANI_U32 rsvd2;
8953}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8954
8955typedef PACKED_PRE struct PACKED_POST
8956{
8957 tHalMsgHeader header;
8958 tHalLostLinkParametersIndParams lostLinkParameters;
8959}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308960
8961
8962/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308963 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308964 *--------------------------------------------------------------------------*/
8965typedef PACKED_PRE struct PACKED_POST
8966{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308967 /* BIT0 - enable frame logging
8968 * BIT1 - enableBMUHWtracing
8969 * BIT2 - enableQXDMlogging
8970 * BIT3 - enableUElogDpuTxp
8971 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308972 tANI_U8 enableFlag;
8973 tANI_U8 frameType;
8974 tANI_U8 frameSize;
8975 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308976 /* Host mem address to be used as logmailbox */
8977 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308978 /* firmware will wakeup the host to send logs always */
8979 tANI_U8 continuousFrameLogging;
8980 /* Logging mail box version */
8981 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308982 /* Max ring size in firmware to log msgs when host is suspended state */
8983 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308984 /* when firmware log reaches this threshold and
8985 * if host is awake it will push the logs.
8986 */
8987 tANI_U8 minLogBuffSize;
8988 /* Reserved for future purpose */
8989 tANI_U32 reserved0;
8990 tANI_U32 reserved1;
8991 tANI_U32 reserved2;
8992}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308993
8994typedef PACKED_PRE struct PACKED_POST
8995{
8996 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308997 tFWLoggingInitReqType tFWLoggingInitReqParams;
8998} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308999
9000/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309001 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309002 *-------------------------------------------------------------------------*/
9003typedef PACKED_PRE struct PACKED_POST
9004{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309005 tANI_U32 status;
9006 /* FW mail box address */
9007 tANI_U64 logMailBoxAddr;
9008 /* Logging mail box version */
9009 tANI_U8 logMailBoxVer;
9010 /* Qshrink is enabled */
9011 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05309012 /* fw_dump_max_size is used to tell fwr mem dump size */
9013 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309014 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309015 tANI_U32 reserved1;
9016 tANI_U32 reserved2;
9017} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309018
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05309019
9020typedef PACKED_PRE struct PACKED_POST {
9021 tANI_U32 request_id;
9022 tSirMacAddr bssId;
9023 tANI_S8 min_rssi;
9024 tANI_S8 max_rssi;
9025} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
9026
9027typedef PACKED_PRE struct PACKED_POST
9028{
9029 tHalMsgHeader header;
9030 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
9031}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
9032
9033//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
9034typedef PACKED_PRE struct PACKED_POST {
9035 tANI_U32 request_id;
9036 tANI_U32 status;
9037} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
9038
9039typedef PACKED_PRE struct PACKED_POST
9040{
9041 tHalMsgHeader header;
9042 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
9043}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
9044
9045//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
9046typedef PACKED_PRE struct PACKED_POST
9047{
9048 tANI_U32 request_id;
9049 tSirMacAddr bssId;
9050 tANI_S8 rssi;
9051} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
9052
9053typedef PACKED_PRE struct PACKED_POST
9054{
9055 tHalMsgHeader header;
9056 tHalRssiMonitorIndParams RssiMonitorIndParams;
9057}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
9058
9059
9060//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
9061typedef PACKED_PRE struct PACKED_POST {
9062 tANI_U32 request_id;
9063 tSirMacAddr bssId;
9064} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
9065
9066typedef PACKED_PRE struct PACKED_POST
9067{
9068 tHalMsgHeader header;
9069 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
9070}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
9071
9072//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
9073typedef PACKED_PRE struct PACKED_POST {
9074 tANI_U32 request_id;
9075 tANI_U32 status;
9076} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
9077
9078typedef PACKED_PRE struct PACKED_POST
9079{
9080 tHalMsgHeader header;
9081 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
9082}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
9083
9084
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309085typedef PACKED_PRE struct PACKED_POST
9086{
9087 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309088 tFWLoggingInitResp tFWLoggingInitRespParams;
9089} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
9090
9091/*---------------------------------------------------------------------------
Kapil Guptac1043632016-06-25 00:23:30 +05309092 * WLAN_HAL_SET_PER_ROAM_CONFIG_REQ
9093 *---------------------------------------------------------------------------*/
9094
9095typedef PACKED_PRE struct PACKED_POST {
9096 tANI_U32 request_id;
9097 tANI_U32 isPERRoamCCAEnabled;
9098 tANI_U32 rateUpThreshold;
9099 tANI_U32 rateDownThreshold;
9100 tANI_U32 waitPeriodForNextPERScan;
9101 tANI_U32 PERtimerThreshold;
9102 tANI_U32 PERroamTriggerPercent;
Kapil Guptaffe21522016-08-29 12:33:00 +05309103 tANI_S16 PERRoamFullScanThreshold;
9104 tANI_U16 reserved;
Kapil Guptac1043632016-06-25 00:23:30 +05309105} tPerRoamConfigParams, * tpPerRoamConfigParams;
9106
9107typedef PACKED_PRE struct PACKED_POST
9108{
9109 tHalMsgHeader header;
9110 tPerRoamConfigParams perRoamConfigParams;
9111} tSetPerRoamConfigReq, * tpSetPerRoamConfigReq;
9112
9113/*---------------------------------------------------------------------------
9114 * WLAN_HAL_SET_PER_ROAM_CONFIG_RSP
9115 *---------------------------------------------------------------------------*/
9116
9117typedef PACKED_PRE struct PACKED_POST
9118{
9119 /* Success or Failure */
9120 tANI_U32 status;
9121} tConfigPerRoamRspParams, * tpConfigPerRoamRspParams;
9122
9123typedef PACKED_PRE struct PACKED_POST
9124{
9125 tHalMsgHeader header;
9126 tConfigPerRoamRspParams configPerRoamRspParams;
9127} tSetPerRoamConfigRsp, * tpSetPerRoamConfigRsp;
9128
9129/*---------------------------------------------------------------------------
9130 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ
9131 *---------------------------------------------------------------------------*/
9132
9133typedef PACKED_PRE struct PACKED_POST {
9134 bool roamScanReq;
9135} tStartRoamScanTriggerParams, * tpStartRoamScanTriggerParams;
9136
9137typedef PACKED_PRE struct PACKED_POST {
9138
9139 tHalMsgHeader header;
9140 tStartRoamScanTriggerParams startRoamScanTriggerParams;
9141} tStartRoamScanReq, *tpStartRoamScanReq;
9142
9143/*---------------------------------------------------------------------------
9144 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP
9145 *---------------------------------------------------------------------------*/
9146
9147typedef PACKED_PRE struct PACKED_POST
9148{
9149 /* Success /Failure / Nil result */
9150 tANI_U32 status;
9151} tConfigRoamScanRspParams, * tpConfigRoamScanRspParams;
9152
9153typedef PACKED_PRE struct PACKED_POST
9154{
9155 tHalMsgHeader header;
9156 tConfigRoamScanRspParams configRoamScanRspParams;
9157} tSetRoamScanConfigRsp, * tpSetRoamScanConfigRsp;
9158
Manjeet Singh4dedb502017-01-17 11:46:35 +05309159/*---------------------------------------------------------------------------
9160* WLAN_HAL_CAPTURE_GET_TSF_TSTAMP
9161*-------------------------------------------------------------------------*/
9162typedef PACKED_PRE struct PACKED_POST
9163{
9164 uint8 uBssIdx;
9165 boolean capTSFget;
9166}tHalCapTSFget, *tptHalCapTSFget;
9167
9168typedef PACKED_PRE struct PACKED_POST
9169{
9170 tHalMsgHeader header;
9171 tHalCapTSFget capTSFget;
9172}tHalCapTSFgetReqInd, *tpHalCapTSFgetReqInd;
9173
9174/*---------------------------------------------------------------------------
9175 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP
9176---------------------------------------------------------------------------*/
9177
9178typedef PACKED_PRE struct PACKED_POST
9179{
9180 /* Success /Failure / Nil result */
9181 tANI_U32 status;
9182 tANI_U32 tsf_lo;
9183 tANI_U32 tsf_hi;
9184} tConfigcapTSFgetRspParams, * tptConfigcapTSFgetRspParams;
9185
9186typedef PACKED_PRE struct PACKED_POST
9187{
9188 tHalMsgHeader header;
9189 tConfigcapTSFgetRspParams configcapTSFgetRspParams;
9190} tcapGetTSFConfigRsp, * tpcapGetTSFConfigRsp;
9191
Kapil Guptac1043632016-06-25 00:23:30 +05309192
9193#define PER_ROAM_MAX_AP_CNT 30
9194#define PER_ROAM_MAX_CANDIDATE_CNT 15
9195
9196/* Candidate Information to be shared in the Candidate Indication,
9197 * similar to what is sent in legacy roaming with following additional info
9198 */
9199
9200typedef PACKED_PRE struct PACKED_POST {
9201 tANI_U8 channelNumber;
9202 tANI_U8 channelCCA;
9203 tANI_U8 otherApCount;
9204 tANI_S8 otherApRssi[PER_ROAM_MAX_AP_CNT];
9205} tCandidateChannelInfo, * tpCandidateChannelInfo;
9206
9207typedef PACKED_PRE struct PACKED_POST {
9208 tANI_U32 candidateCount;
9209 tCandidateChannelInfo channelInfo[PER_ROAM_MAX_CANDIDATE_CNT];
9210} tPerRoamScanResult, * tpPerRoamScanResult;
9211
9212
9213/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309214 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
9215 *-------------------------------------------------------------------------*/
9216typedef PACKED_PRE struct PACKED_POST
9217{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05309218 tANI_U16 status;
9219 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309220 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9221 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9222} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
9223
9224typedef PACKED_PRE struct PACKED_POST
9225{
9226 tHalMsgHeader header;
9227 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
9228} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
9229
9230/*---------------------------------------------------------------------------
Kapil Guptae667f952016-12-20 18:23:27 +05309231 * WLAN_HAL_APFIND_CMDID
9232 * ---------------------------------------------------------------------------*/
9233
9234#define MAX_ARRAY_SIZE 1000
9235typedef PACKED_PRE struct PACKED_POST
9236{
9237 tANI_U16 msg_version:4;
9238 tANI_U16 msg_id:12;
9239 tANI_U16 msg_len:16;
9240 tANI_U16 handle;
9241 tANI_U16 transaction_id;
9242} tApfindMsgHeader, *tpApfindMsgHeader;
9243
9244typedef PACKED_PRE struct PACKED_POST
9245{
9246 tANI_U16 type;
9247 tANI_U16 length;
9248 tANI_U8* value;
9249} tApfindTlv, *tpApfindTlv;
9250
9251typedef PACKED_PRE struct PACKED_POST
9252{
9253 tApfindMsgHeader apFindHeader;
9254 tANI_U8 ptlv[MAX_ARRAY_SIZE];
9255} tQRFPrefNetwListParams, *tpQRFPrefNetwListParams;
9256
9257typedef enum
9258{
9259 APFIND_MSG_ID_ERROR_RSP = 0,
9260 APFIND_MSG_ID_ENABLE_REQ = 1,
9261 APFIND_MSG_ID_SET_SSID = 2,
9262 APFIND_MSG_ID_SET_MAC = 3,
9263 APFIND_MSG_ID_SET_PARAMS = 4,
9264} tApfindMsgId;
9265
9266typedef PACKED_PRE struct PACKED_POST
9267{
9268 tHalMsgHeader header;
9269 tQRFPrefNetwListParams qRFprefNetwListParams;
9270} tQRFSetPrefNetwListReq, *tpQRFSetPrefNetwListReq;
9271
9272#define QRF_MAX_SUPPORTED_NETWORKS 10
9273
9274typedef PACKED_PRE struct PACKED_POST {
9275 /*Network that was found with the highest RSSI*/
9276 tSirMacSSid ssId;
9277 /*Indicates the RSSI */
9278 tANI_U8 rssi;
9279 /* The MPDU frame length of a beacon or probe rsp.
9280 * data is the start of the frame
9281 */
9282 tANI_U16 frameLength;
9283} tQrfNetwFoundParam, *tpQrfNetwFoundParam;
9284
9285typedef PACKED_PRE struct PACKED_POST {
9286 uint8 netwCount;
9287 tQrfNetwFoundParam qrfNetwParams[QRF_MAX_SUPPORTED_NETWORKS];
9288} tQrfPrefNetwFoundParams, * tpQrfPrefNetwFoundParams;
9289
9290/*
9291 * Preferred network found indication
9292 */
9293typedef PACKED_PRE struct PACKED_POST {
9294 tHalMsgHeader header;
9295 tQrfPrefNetwFoundParams qrfPrefNetwFoundParams;
9296} tQrfPrefNetwFoundInd, *tpQrfPrefNetwFoundInd;
9297
9298
9299/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309300 * Logging mail box structure
9301 *-------------------------------------------------------------------------*/
9302
9303#define MAILBOX_VERSION_V1 0x1
9304
9305typedef PACKED_PRE struct PACKED_POST
9306{
9307 /* Logging mail box version */
9308 tANI_U8 logMbVersion;
9309 /* Current logging buffer address */
9310 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9311 /* Current logging buffer length */
9312 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9313 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
9314 tANI_U16 reasonCode;
9315 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
9316 tANI_U8 logType;
9317 /* Indicate if Last segment of log is received*/
9318 tANI_BOOLEAN done;
9319}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05309320
Katya Nigamf0511f62015-05-05 16:40:57 +05309321/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05309322 *WLAN_HAL_FW_MEMORY_DUMP_REQ
9323 *--------------------------------------------------------------------------*/
9324typedef PACKED_PRE struct PACKED_POST
9325{
9326 tANI_U32 reserved;
9327}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
9328
9329typedef PACKED_PRE struct PACKED_POST
9330{
9331 tHalMsgHeader header;
9332 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
9333} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
9334
9335/*---------------------------------------------------------------------------
9336 * WLAN_HAL_FW_MEMORY_DUMP_RSP
9337 *-------------------------------------------------------------------------*/
9338typedef PACKED_PRE struct PACKED_POST
9339{
9340 tANI_U32 status;
9341} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
9342
9343typedef PACKED_PRE struct PACKED_POST
9344{
9345 tHalMsgHeader header;
9346 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
9347} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
9348
9349
9350/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05309351* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
9352*-------------------------------------------------------------------------*/
9353
9354/* only 1 filter is supported as of now */
9355#define NUM_FILTERS_SUPPORTED 1
9356
9357typedef PACKED_PRE struct PACKED_POST
9358{
9359 tSirMacAddr macAddr;
9360 tANI_U8 isA1filteringNeeded;
9361 tANI_U8 isA2filteringNeeded;
9362 tANI_U8 isA3filteringNeeded;
9363}tHalMacFilter, *tpHalMacFilter;
9364
9365typedef PACKED_PRE struct PACKED_POST
9366{
9367 tANI_U8 channelNumber;
9368 ePhyChanBondState cbState;
9369
9370 tANI_U32 maxAmpduLen;
9371 tANI_U32 maxMpduInAmpduLen;
9372
9373 tANI_U8 crcCheckEnabled;
9374
9375 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
9376 tANI_U8 numMacFilters;
9377 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
9378
9379 /* Each bit position maps to IEEE convention of typeSubtype */
9380 tANI_U64 typeSubtypeBitmap;
9381
9382 tANI_U64 reserved;
9383
9384}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
9385
9386typedef PACKED_PRE struct PACKED_POST
9387{
9388 tHalMsgHeader header;
9389 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
9390}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
9391
9392
9393/*---------------------------------------------------------------------------
9394* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
9395*-------------------------------------------------------------------------*/
9396
9397typedef PACKED_PRE struct PACKED_POST
9398{
9399 tANI_U32 status;
9400}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
9401
9402typedef PACKED_PRE struct PACKED_POST
9403{
9404 tHalMsgHeader header;
9405 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
9406}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
9407
9408/*---------------------------------------------------------------------------
9409* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
9410*-------------------------------------------------------------------------*/
9411
9412typedef PACKED_PRE struct PACKED_POST
9413{
9414 tHalMsgHeader header;
9415 tANI_U8 resetConfiguration;
9416}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
9417
9418/*---------------------------------------------------------------------------
9419* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
9420*-------------------------------------------------------------------------*/
9421
9422typedef PACKED_PRE struct PACKED_POST
9423{
9424 tANI_U32 status;
9425}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
9426
9427typedef PACKED_PRE struct PACKED_POST
9428{
9429 tHalMsgHeader header;
9430 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
9431}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
9432
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05309433typedef PACKED_PRE struct PACKED_POST
9434{
9435 tANI_U8 status;
9436}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
9437
Arun Khandavalliafc16432015-10-16 20:11:31 +05309438typedef PACKED_PRE struct PACKED_POST
9439{
9440 tANI_U8 paramType;
9441 tANI_U32 paramValue;
9442 tSirMacAddr bssid;
9443} tSetWifiConfigParams, *tpSetWifiConfigParams;
9444
9445typedef PACKED_PRE struct PACKED_POST
9446{
9447 tHalMsgHeader header;
9448 tSetWifiConfigParams wifiConfigParams;
9449} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
9450
9451typedef PACKED_PRE struct PACKED_POST {
9452 tANI_U32 status;
9453} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
9454
9455typedef PACKED_PRE struct PACKED_POST
9456{
9457 tHalMsgHeader header;
9458
9459 tHalSetWifiConfigRspParams setWifiConfigRspParams;
9460} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
9461
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05309462/*---------------------------------------------------------------------------
9463* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
9464*-------------------------------------------------------------------------*/
9465typedef PACKED_PRE struct PACKED_POST
9466{
9467 tANI_U32 reserved;
9468} tHalAntennaDiversitySelectionReqParams, *tpHalAntennaDiversitySelectionReqParams;
9469
9470typedef PACKED_PRE struct PACKED_POST
9471{
9472 tHalMsgHeader header;
9473 tHalAntennaDiversitySelectionReqParams AntDivSelReqParams;
9474}tHalAntennaDiversitySelectionReqMsg;
9475
9476/*---------------------------------------------------------------------------
9477* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP
9478*-------------------------------------------------------------------------*/
9479
9480typedef PACKED_PRE struct PACKED_POST
9481{
9482 tANI_U16 status;
9483 tANI_U32 selectedAntennaId;
9484 tANI_U32 reserved;
9485} tHalAntennaDiversitySelectionRspParams, *tpHalAntennaDiversitySelectionRspParams;
9486
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +05309487/* WDI_MODIFY_ROAM_PARAMS_IND */
9488typedef PACKED_PRE struct PACKED_POST {
9489 tANI_U8 param;
9490 tANI_U32 value;
9491} tHalModifyRoamParamsIndParams, *tpHalModifyRoamParamsIndParams;
9492
9493typedef PACKED_PRE struct PACKED_POST
9494{
9495 tHalMsgHeader header;
9496 tHalModifyRoamParamsIndParams modifyRoamParamsReqParams;
9497} tHalModifyRoamParamsInd, *tpHalModifyRoamParamsInd;
9498
Agrawal Ashishc6aa0132016-12-09 15:59:29 +05309499typedef PACKED_PRE struct PACKED_POST
9500{
9501 tSirMacAddr selfMacAddr;
9502 tANI_U32 enable;
9503 tSirMacSSid ssId;
9504 tANI_U32 rsn_authmode;
9505 tANI_U32 rsn_ucastcipherset;
9506 tANI_U32 rsn_mcastcipherset;
9507 tANI_U32 rsn_mcastmgmtcipherset;
9508 tANI_U32 channel;
9509 tANI_U32 psk_len;
9510 tANI_U8 psk[1];
9511} tSapOffloadEnableMsg, *tpSapOffloadEnableMsg;
9512
9513typedef PACKED_PRE struct PACKED_POST
9514{
9515 tHalMsgHeader header;
9516 tSapOffloadEnableMsg SapOffloadEnableMsg;
9517} tHalSapoffloadEnable, *tpHalSapoffloadEnable;
9518
Anurag Chouhan9b3383a2016-12-13 22:29:55 +05309519/*---------------------------------------------------------------------------
9520 * WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ
9521 *--------------------------------------------------------------------------*/
9522typedef PACKED_PRE struct PACKED_POST
9523{
9524 tANI_U8 bss_idx;
9525 tANI_U32 enable;
9526 tANI_U32 srv_ipv4; /* server IP */
9527 tANI_U32 start_lsb; /* starting address assigned to client */
9528 tANI_U32 num_client; /* number of clients we support */
9529} hal_dhcp_srv_offload_req_param_t, *hal_dhcp_srv_offload_req_params;
9530
9531typedef PACKED_PRE struct PACKED_POST
9532{
9533 tHalMsgHeader header;
9534 hal_dhcp_srv_offload_req_param_t dhcp_srv_offload_req_params;
9535} hal_dhcp_srv_offload_req_msg_t;
9536
9537/*---------------------------------------------------------------------------
9538 * WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP
9539 *--------------------------------------------------------------------------*/
9540typedef PACKED_PRE struct PACKED_POST
9541{
9542 tANI_U32 status;
9543} hal_dhcp_srv_offload_rsp_param_t, *hal_dhcp_srv_offload_rsp_params;
9544
9545typedef PACKED_PRE struct PACKED_POST
9546{
9547 tHalMsgHeader header;
9548 hal_dhcp_srv_offload_rsp_param_t dhcp_srv_offload_rsp_params;
9549} hal_dhcp_srv_offload_rsp_msg_t, *hal_dhcp_srv_offload_rsp_msg;
9550
Anurag Chouhan9c3ddc72016-12-16 13:12:13 +05309551/*---------------------------------------------------------------------------
9552 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ
9553 *--------------------------------------------------------------------------*/
9554typedef PACKED_PRE struct PACKED_POST
9555{
9556 tANI_U8 bss_idx;
9557 tANI_U32 enable;
9558} hal_mdns_enable_offload_req_param_t, *hal_mdns_enable_offload_req_params;
9559
9560typedef PACKED_PRE struct PACKED_POST
9561{
9562 tHalMsgHeader header;
9563 hal_mdns_enable_offload_req_param_t mdns_enable_req_params;
9564} hal_mdns_enable_offload_req_msg_t;
9565
9566/*---------------------------------------------------------------------------
9567 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP
9568 *--------------------------------------------------------------------------*/
9569typedef PACKED_PRE struct PACKED_POST
9570{
9571 tANI_U32 status;
9572} hal_mdns_enable_offload_rsp_param_t, *hal_mdns_enable_offload_rsp_params;
9573
9574typedef PACKED_PRE struct PACKED_POST
9575{
9576 tHalMsgHeader header;
9577 hal_mdns_enable_offload_rsp_param_t mdns_enable_rsp_params;
9578} hal_mdns_enable_offload_rsp_msg_t, *hal_mdns_enable_offload_rsp_msg;
9579
9580/*---------------------------------------------------------------------------
9581 * WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ
9582 *--------------------------------------------------------------------------*/
9583typedef PACKED_PRE struct PACKED_POST
9584{
9585 tANI_U8 bss_idx;
9586 tANI_U32 type;
9587 tANI_U32 fqdn_len;
9588 tANI_U8 fqdn_data[1];
9589} hal_mdns_fqdn_offload_req_param_t, *hal_mdns_fqdn_offload_req_params;
9590
9591typedef PACKED_PRE struct PACKED_POST
9592{
9593 tHalMsgHeader header;
9594 hal_mdns_fqdn_offload_req_param_t mdns_fqdn_req_params;
9595} hal_mdns_fqdn_offload_req_msg_t;
9596
9597/*---------------------------------------------------------------------------
9598 * WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP
9599 *--------------------------------------------------------------------------*/
9600typedef PACKED_PRE struct PACKED_POST
9601{
9602 tANI_U32 status;
9603} hal_mdns_fqdn_offload_rsp_param_t, *hal_mdns_fqdn_offload_rsp_params;
9604
9605typedef PACKED_PRE struct PACKED_POST
9606{
9607 tHalMsgHeader header;
9608 hal_mdns_fqdn_offload_rsp_param_t mdns_fqdn_rsp_params;
9609} hal_mdns_fqdn_offload_rsp_msg_t, *hal_mdns_fqdn_offload_rsp_msg;
9610
9611/*---------------------------------------------------------------------------
9612 * WLAN_HAL_MDNS_RESP_OFFLOAD_REQ
9613 *--------------------------------------------------------------------------*/
9614typedef PACKED_PRE struct PACKED_POST
9615{
9616 tANI_U8 bss_idx;
9617 tANI_U32 ar_count;
9618 tANI_U32 resp_len;
9619 tANI_U8 resp_data[1];
9620} hal_mdns_resp_offload_req_param_t, *hal_mdns_resp_offload_req_params;
9621
9622typedef PACKED_PRE struct PACKED_POST
9623{
9624 tHalMsgHeader header;
9625 hal_mdns_resp_offload_req_param_t mdns_resp_req_params;
9626} hal_mdns_resp_offload_req_msg_t;
9627
9628/*---------------------------------------------------------------------------
9629 * WLAN_HAL_MDNS_RESP_OFFLOAD_RSP
9630 *--------------------------------------------------------------------------*/
9631typedef PACKED_PRE struct PACKED_POST
9632{
9633 tANI_U32 status;
9634} hal_mdns_resp_offload_rsp_param_t, *hal_mdns_resp_offload_rsp_params;
9635
9636typedef PACKED_PRE struct PACKED_POST
9637{
9638 tHalMsgHeader header;
9639 hal_mdns_resp_offload_rsp_param_t mdns_rsp_params;
9640} hal_mdns_resp_offload_rsp_msg_t, *hal_mdns_resp_offload_rsp_msg;
9641
9642/*---------------------------------------------------------------------------
9643 * WLAN_HAL_MDNS_STATS_OFFLOAD_REQ
9644 *--------------------------------------------------------------------------*/
9645typedef PACKED_PRE struct PACKED_POST
9646{
9647 tANI_U8 bss_idx;
9648} hal_mdns_stats_offload_req_param_t, *hal_mdns_stats_offload_req_params;
9649
9650typedef PACKED_PRE struct PACKED_POST
9651{
9652 tHalMsgHeader header;
9653 hal_mdns_stats_offload_req_param_t mdns_stats_req_params;
9654} hal_mdns_stats_offload_req_msg_t;
9655
9656/*---------------------------------------------------------------------------
9657 * WLAN_HAL_MDNS_STATS_OFFLOAD_RSP
9658 *--------------------------------------------------------------------------*/
9659typedef PACKED_PRE struct PACKED_POST
9660{
9661 tANI_U8 bss_idx;
9662 tANI_U32 current_ts;
9663 tANI_U32 last_query_ts;
9664 tANI_U32 last_rsp_ts;
9665 tANI_U32 tot_queries;
9666 tANI_U32 tot_matches;
9667 tANI_U32 tot_rsp;
9668 tANI_U32 status;
9669} hal_mdns_stats_offload_rsp_param_t, *hal_mdns_stats_offload_rsp_params;
9670
9671typedef PACKED_PRE struct PACKED_POST
9672{
9673 tHalMsgHeader header;
9674 hal_mdns_stats_offload_rsp_param_t mdns_stats_rsp_params;
9675} hal_mdns_stats_offload_rsp_msg_t, *hal_mdns_stats_offload_rsp_msg;
9676
Anurag Chouhance0f0822017-01-24 15:44:26 +05309677/*---------------------------------------------------------------------------
9678 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ
9679 *--------------------------------------------------------------------------*/
9680typedef PACKED_PRE struct PACKED_POST
9681{
9682 tANI_U8 set_clr; /*1 set and 0 reset*/
9683 tANI_U8 pkt_type; /* Default 1: ARP */
9684 tANI_U32 ip_addr; /*GW ipv4 address */
9685} tHalStatsArpReqParams, *tpHalStatsArpReqParams;
9686
9687typedef PACKED_PRE struct PACKED_POST
9688{
9689 tHalMsgHeader header;
9690 tHalStatsArpReqParams statsArpReqParams;
9691} tHalStatsArpReqMsg, *tpHalStatsArpReqMsg;
9692
9693/*---------------------------------------------------------------------------
9694 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP
9695 *--------------------------------------------------------------------------*/
9696typedef PACKED_PRE struct PACKED_POST
9697{
9698 tANI_U32 status; //success or failure
9699} tHalStatsArpRspParams, *tpHalStatsArpRspParams;
9700
9701typedef PACKED_PRE struct PACKED_POST
9702{
9703 tHalMsgHeader header;
9704 tHalStatsArpRspParams statsArpRspParams;
9705} tHalStatsArpRspMsg, *tpHalStatsArpRspMsg;
9706
9707/*---------------------------------------------------------------------------
9708 * WLAN_HAL_FW_GET_ARP_STATS_REQ
9709 *--------------------------------------------------------------------------*/
9710typedef PACKED_PRE struct PACKED_POST
9711{
9712 tANI_U8 pkt_type; /* Furture purpose */
9713} tHalStatsGetArpReqParams, *tpHalStatsGetArpReqParams;
9714
9715typedef PACKED_PRE struct PACKED_POST
9716{
9717 tHalMsgHeader header;
9718 tHalStatsGetArpReqParams statsGetArpReqParams;
9719} tHalStatsGetArpReqMsg, *tpHalStatsGetArpReqMsg;
9720
9721/*---------------------------------------------------------------------------
9722 * WLAN_HAL_FW_GET_ARP_STATS_RSP
9723 *--------------------------------------------------------------------------*/
9724typedef PACKED_PRE struct PACKED_POST
9725{
9726 tANI_U32 status;
9727 tANI_U16 dad;
9728 tANI_U16 arpReqRcvdInFW;
9729 tANI_U16 ackedArpReqCnt;
9730 tANI_U16 arpRspCnt;
9731 tANI_U8 data[1];
9732} tdbugArpStatsgetRspParams, *tpdbugArpStatsgetRspParams;
9733
9734typedef PACKED_PRE struct PACKED_POST
9735{
9736 tHalMsgHeader header;
9737 tdbugArpStatsgetRspParams fwArpstatsRspParams;
9738} tHalARPfwStatsRspMsg, *tpHalARPfwStatsRspMsg;
9739
Sourav Mohapatra3629ecf2018-02-12 10:24:28 +05309740/*----------------------------------------------------------------
9741 * WLAN_HAL_POWER_CONTROL_MODE_CHANGE_REQ
9742 *-----------------------------------------------------------------*/
9743
9744typedef PACKED_PRE struct PACKED_POST
9745{
9746 tANI_U8 enable;
9747} tHalPowerControlModeChangeReqParams, *tpHalPowerControlModeChangeReqParams;
9748
9749typedef PACKED_PRE struct PACKED_POST
9750{
9751 tHalMsgHeader header;
9752 tHalPowerControlModeChangeReqParams pwrCtrlModeChangeReqParams;
9753} tHalPowerControlModeChangeReqMsg, *tpHalPowerControlModeChangeReqMsg;
9754
9755/*----------------------------------------------------------------
9756 * WLAN_HAL_POWER_CONTROL_MODE_CHANGE_RSP
9757 *-----------------------------------------------------------------*/
9758
9759typedef PACKED_PRE struct PACKED_POST
9760{
9761 tANI_U32 status;
9762} tHalPowerControlModeChangeRspParams, *tpHalPowerControlModeChangeRspParams;
9763
9764typedef PACKED_PRE struct PACKED_POST
9765{
9766 tHalMsgHeader header;
9767 tHalPowerControlModeChangeRspParams pwrCtrlModeChangeRspParams;
9768} tHalPowerControlModeChangeRspMsg, *tpHalPowerControlModeChangeRspMsg;
9769
Jeff Johnson295189b2012-06-20 16:38:30 -07009770#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
9771#pragma pack(pop)
9772#elif defined(__ANI_COMPILER_PRAGMA_PACK)
9773#else
9774#endif
9775
Dundi Ravitejaa7b31992020-09-15 23:37:55 +05309776#ifdef FEATURE_WLAN_SW_PTA
9777/**
Dundi Ravitejaa7b31992020-09-15 23:37:55 +05309778 * hal_sw_pta_req - SW PTA coex params request
Dundi Raviteja1982ed42020-11-05 17:25:57 +05309779 * @bt_enabled: BT status
9780 * @bt_adv: BT advertisement status
9781 * @ble_on: BLE status
9782 * @bt_a2dp: BT A2DP status
9783 * @bt_sco: BT SCO status
Dundi Ravitejaa7b31992020-09-15 23:37:55 +05309784 */
9785typedef PACKED_PRE struct PACKED_POST {
Dundi Raviteja1982ed42020-11-05 17:25:57 +05309786 uint8_t bt_enabled;
9787 uint8_t bt_adv;
9788 uint8_t ble_enabled;
9789 uint8_t bt_a2dp;
9790 uint8_t bt_sco;
Dundi Ravitejaa7b31992020-09-15 23:37:55 +05309791} tHalSwPTAReq, *tpHalSwPTAReq;
9792#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07009793#endif /* _WLAN_HAL_MSG_H_ */