blob: f859c9db859d79a7d16abd42566cb89a9888f927 [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,
Sourav Mohapatra72c2c342018-03-05 19:49:05 +0530636
Sunil Dutt8377a382014-05-26 21:18:04 +0530637 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700638}tHalHostMsgType;
639
Jeff Johnsone7245742012-09-05 17:12:55 -0700640/* Enumeration for Version */
641typedef enum
642{
643 WLAN_HAL_MSG_VERSION0 = 0,
644 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800645 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
646 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700647}tHalHostMsgVersion;
648
Jeff Johnson295189b2012-06-20 16:38:30 -0700649/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530650typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700651{
652 eANI_BOOLEAN_FALSE = 0,
653 eANI_BOOLEAN_TRUE,
654 eANI_BOOLEAN_OFF = 0,
655 eANI_BOOLEAN_ON = 1,
656 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
657} eAniBoolean;
658
659typedef enum
660{
661 eDRIVER_TYPE_PRODUCTION = 0,
662 eDRIVER_TYPE_MFG = 1,
663 eDRIVER_TYPE_DVT = 2,
664 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
665} tDriverType;
666
667typedef enum
668{
669 HAL_STOP_TYPE_SYS_RESET,
670 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
671 HAL_STOP_TYPE_RF_KILL,
672 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
673}tHalStopType;
674
675typedef enum
676{
677 eHAL_SYS_MODE_NORMAL,
678 eHAL_SYS_MODE_LEARN,
679 eHAL_SYS_MODE_SCAN,
680 eHAL_SYS_MODE_PROMISC,
681 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700682 eHAL_SYS_MODE_ROAM_SCAN,
683 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700684 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700685 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
686} eHalSysMode;
687
688typedef enum
689{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800690 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
691 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
692 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
693 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
694 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
695 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
696 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
697 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
698 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700699 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800700 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
701} eHalChanSwitchSource;
702
703typedef enum
704{
Jeff Johnson295189b2012-06-20 16:38:30 -0700705 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
706 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
707 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
708 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700709#ifdef WLAN_FEATURE_11AC
710 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
711 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
712 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
713 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
714 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
715 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
716 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
717#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700718 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
719}ePhyChanBondState;
720
721// Spatial Multiplexing(SM) Power Save mode
722typedef enum eSirMacHTMIMOPowerSaveState
723{
724 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
725 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
726 eSIR_HT_MIMO_PS_NA = 2, // reserved
727 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
728 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
729} tSirMacHTMIMOPowerSaveState;
730
731/* each station added has a rate mode which specifies the sta attributes */
732typedef enum eStaRateMode {
733 eSTA_TAURUS = 0,
734 eSTA_TITAN,
735 eSTA_POLARIS,
736 eSTA_11b,
737 eSTA_11bg,
738 eSTA_11a,
739 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700740#ifdef WLAN_FEATURE_11AC
741 eSTA_11ac,
742#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700743 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
744} tStaRateMode, *tpStaRateMode;
745
746#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
747#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
748#define SIR_NUM_POLARIS_RATES 3 //72,96,108
749
750#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
751
752
753typedef enum eSirBssType
754{
755 eSIR_INFRASTRUCTURE_MODE,
756 eSIR_INFRA_AP_MODE, //Added for softAP support
757 eSIR_IBSS_MODE,
758 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
759 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
760 eSIR_AUTO_MODE,
761 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
762} tSirBssType;
763
764typedef enum eSirNwType
765{
766 eSIR_11A_NW_TYPE,
767 eSIR_11B_NW_TYPE,
768 eSIR_11G_NW_TYPE,
769 eSIR_11N_NW_TYPE,
770 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
771} tSirNwType;
772
773typedef tANI_U16 tSirMacBeaconInterval;
774
775#define SIR_MAC_RATESET_EID_MAX 12
776
777typedef enum eSirMacHTOperatingMode
778{
779 eSIR_HT_OP_MODE_PURE, // No Protection
780 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
781 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
782 eSIR_HT_OP_MODE_MIXED, // Protection is required
783 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
784} tSirMacHTOperatingMode;
785
Jeff Johnson295189b2012-06-20 16:38:30 -0700786/// Encryption type enum used with peer
787typedef enum eAniEdType
788{
789 eSIR_ED_NONE,
790 eSIR_ED_WEP40,
791 eSIR_ED_WEP104,
792 eSIR_ED_TKIP,
793 eSIR_ED_CCMP,
794 eSIR_ED_WPI,
795 eSIR_ED_AES_128_CMAC,
796 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
797} tAniEdType;
798
799#define WLAN_MAX_KEY_RSC_LEN 16
800#define WLAN_WAPI_KEY_RSC_LEN 16
801
802/// MAX key length when ULA is used
803#define SIR_MAC_MAX_KEY_LENGTH 32
804#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
805
806/// Enum to specify whether key is used
807/// for TX only, RX only or both
808typedef enum eAniKeyDirection
809{
810 eSIR_TX_ONLY,
811 eSIR_RX_ONLY,
812 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700813 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700814 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
815} tAniKeyDirection;
816
817typedef enum eAniWepType
818{
819 eSIR_WEP_STATIC,
820 eSIR_WEP_DYNAMIC,
821 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
822} tAniWepType;
823
824typedef enum eSriLinkState {
825
826 eSIR_LINK_IDLE_STATE = 0,
827 eSIR_LINK_PREASSOC_STATE = 1,
828 eSIR_LINK_POSTASSOC_STATE = 2,
829 eSIR_LINK_AP_STATE = 3,
830 eSIR_LINK_IBSS_STATE = 4,
831
832 /* BT-AMP Case */
833 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
834 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
835 eSIR_LINK_BTAMP_AP_STATE = 7,
836 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530837
Jeff Johnson295189b2012-06-20 16:38:30 -0700838 /* Reserved for HAL Internal Use */
839 eSIR_LINK_LEARN_STATE = 9,
840 eSIR_LINK_SCAN_STATE = 10,
841 eSIR_LINK_FINISH_SCAN_STATE = 11,
842 eSIR_LINK_INIT_CAL_STATE = 12,
843 eSIR_LINK_FINISH_CAL_STATE = 13,
844#ifdef WLAN_FEATURE_P2P
845 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530846 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700847#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700848#ifdef WLAN_FEATURE_ROAM_OFFLOAD
849 eSIR_LINK_FT_PREASSOC_STATE = 16,
850#endif
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +0530851#ifdef WLAN_FEATURE_LFR_MBB
852 eSIR_LINK_PRE_AUTH_REASSOC_STATE = 17,
853#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700854 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
855} tSirLinkState;
856
857typedef enum
858{
859 HAL_SUMMARY_STATS_INFO = 0x00000001,
860 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
861 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
862 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
863 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530864 HAL_PER_STA_STATS_INFO = 0x00000020,
865 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700866}eHalStatsMask;
867
868/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530869typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700870{
871 BTAMP_EVENT_CONNECTION_START,
872 BTAMP_EVENT_CONNECTION_STOP,
873 BTAMP_EVENT_CONNECTION_TERMINATED,
874 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
875} tBtAmpEventType;
876
877//***************************************************************
878
879
880/*******************PE Statistics*************************/
881typedef enum
882{
883 PE_SUMMARY_STATS_INFO = 0x00000001,
884 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
885 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
886 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
887 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
888 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530889 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700890 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
891}ePEStatsMask;
892
Sunil Dutt8377a382014-05-26 21:18:04 +0530893
894/******************************LINK LAYER Statitics**********************/
895
896typedef int wifi_radio;
897typedef int wifi_channel;
898typedef int wifi_tx_rate;
899
900/* channel operating width */
901typedef enum {
902 WIFI_CHAN_WIDTH_20 = 0,
903 WIFI_CHAN_WIDTH_40 = 1,
904 WIFI_CHAN_WIDTH_80 = 2,
905 WIFI_CHAN_WIDTH_160 = 3,
906 WIFI_CHAN_WIDTH_80P80 = 4,
907 WIFI_CHAN_WIDTH_5 = 5,
908 WIFI_CHAN_WIDTH_10 = 6,
909} wifi_channel_width;
910
911typedef enum {
912 WIFI_DISCONNECTED = 0,
913 WIFI_AUTHENTICATING = 1,
914 WIFI_ASSOCIATING = 2,
915 WIFI_ASSOCIATED = 3,
916 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
917 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
918} wifi_connection_state;
919
920typedef enum {
921 WIFI_ROAMING_IDLE = 0,
922 WIFI_ROAMING_ACTIVE = 1,
923} wifi_roam_state;
924
925typedef enum {
926 WIFI_INTERFACE_STA = 0,
927 WIFI_INTERFACE_SOFTAP = 1,
928 WIFI_INTERFACE_IBSS = 2,
929 WIFI_INTERFACE_P2P_CLIENT = 3,
930 WIFI_INTERFACE_P2P_GO = 4,
931 WIFI_INTERFACE_NAN = 5,
932 WIFI_INTERFACE_MESH = 6,
933 } wifi_interface_mode;
934
935#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
936#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
937#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
938#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
939#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
940#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
941
942typedef PACKED_PRE struct PACKED_POST
943{
944 wifi_interface_mode mode; // interface mode
945 tANI_U8 mac_addr[6]; // interface mac address (self)
946 wifi_connection_state state; // connection state (valid for STA, CLI only)
947 wifi_roam_state roaming; // roaming state
948 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
949 tANI_U8 ssid[33]; // null terminated SSID
950 tANI_U8 bssid[6]; // bssid
951 tANI_U8 ap_country_str[3]; // country string advertised by AP
952 tANI_U8 country_str[3]; // country string for this association
953} wifi_interface_info;
954
955/* channel information */
956typedef PACKED_PRE struct PACKED_POST
957{
958 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
959 wifi_channel center_freq; // primary 20 MHz channel
960 wifi_channel center_freq0; // center frequency (MHz) first segment
961 wifi_channel center_freq1; // center frequency (MHz) second segment
962} wifi_channel_info;
963
964/* wifi rate info */
965typedef PACKED_PRE struct PACKED_POST
966{
967 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
968 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
969 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
970 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
971 // HT/VHT it would be mcs index
972 tANI_U32 reserved :16; // reserved
973 tANI_U32 bitrate; // units of 100 Kbps
974} wifi_rate;
975
976/* channel statistics */
977typedef PACKED_PRE struct PACKED_POST
978{
979 wifi_channel_info channel; // channel
980 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
981 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
982} wifi_channel_stats;
983
984/* radio statistics */
985typedef PACKED_PRE struct PACKED_POST
986{
987 wifi_radio radio; // wifi radio (if multiple radio supported)
988 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
989 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
990 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
991 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
992 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
993 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
994 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
995 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
996 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
997 tANI_U32 num_channels; // number of channels
998 wifi_channel_stats channels[1]; // channel statistics
999} wifi_radio_stat;
1000
1001/* per rate statistics */
1002typedef PACKED_PRE struct PACKED_POST
1003{
1004 wifi_rate rate; // rate information *
1005 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
1006 tANI_U32 rx_mpdu; // number of received data pkts
1007 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
1008 tANI_U32 retries; // total number of data pkt retries *
1009 tANI_U32 retries_short; // number of short data pkt retries
1010 tANI_U32 retries_long; // number of long data pkt retries
1011} wifi_rate_stat;
1012
1013/* access categories */
1014typedef enum {
1015 WIFI_AC_VO = 0,
1016 WIFI_AC_VI = 1,
1017 WIFI_AC_BE = 2,
1018 WIFI_AC_BK = 3,
1019 WIFI_AC_MAX = 4,
1020} wifi_traffic_ac;
1021
1022/* wifi peer type */
1023typedef enum
1024{
1025 WIFI_PEER_STA,
1026 WIFI_PEER_AP,
1027 WIFI_PEER_P2P_GO,
1028 WIFI_PEER_P2P_CLIENT,
1029 WIFI_PEER_NAN,
1030 WIFI_PEER_TDLS,
1031 WIFI_PEER_INVALID,
1032} wifi_peer_type;
1033
1034/* per peer statistics */
1035typedef PACKED_PRE struct PACKED_POST
1036{
1037 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
1038 tANI_U8 peer_mac_address[6]; // mac address
1039 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
1040 tANI_U32 num_rate; // number of rates
1041 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
1042} wifi_peer_info;
1043
1044/* per access category statistics */
1045typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301046{
1047 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
1048 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
1049 tANI_U32 rx_mpdu; // number of received unicast mpdus
1050 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1051 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1052 tANI_U32 rx_mcast; // number of received multicast data packets
1053 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1054 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1055 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1056 tANI_U32 retries; // total number of data pkt retries
1057 tANI_U32 retries_short; // number of short data pkt retries
1058 tANI_U32 retries_long; // number of long data pkt retries
1059 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1060 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1061 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1062 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1063} wifi_wmm_ac_stat;
1064
Mukul Sharma03f86492015-10-20 16:10:13 +05301065typedef PACKED_PRE struct PACKED_POST
1066{
1067 tANI_U64 average_tsf_offset;
1068 tANI_U32 leaky_ap_avg_num_frames_leaked;
1069 tANI_U32 leaky_ap_guard_time;
1070 tANI_U32 leaky_ap_detected;
1071} wifi_iface_leaky_ap_info;
1072
Sunil Dutt8377a382014-05-26 21:18:04 +05301073/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1074typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301075{
1076 wifi_interface_info info; // current state of the interface
1077 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1078 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1079 tANI_U32 mgmt_action_rx; // action frames received count
1080 tANI_U32 mgmt_action_tx; // action frames transmit count
1081 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1082 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1083 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1084 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
Mukul Sharma03f86492015-10-20 16:10:13 +05301085 wifi_iface_leaky_ap_info leakyApInfo;
Sunil Dutt8377a382014-05-26 21:18:04 +05301086} wifi_iface_stat;
1087
1088/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1089typedef PACKED_PRE struct PACKED_POST
1090{
1091 tANI_U32 num_peers; // number of peers
1092 wifi_peer_info peer_info[1]; // per peer statistics
1093} wifi_peer_stat;
1094
1095/* wifi statistics bitmap for getting statistics */
1096#define WMI_LINK_STATS_RADIO 0x00000001
1097#define WMI_LINK_STATS_IFACE 0x00000002
1098#define WMI_LINK_STATS_ALL_PEER 0x00000004
1099#define WMI_LINK_STATS_PER_PEER 0x00000008
1100
1101/* wifi statistics bitmap for clearing statistics */
1102#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1103#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1104#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1105#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1106#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1107#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1108#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1109#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1110
1111
Jeff Johnson295189b2012-06-20 16:38:30 -07001112/*---------------------------------------------------------------------------
1113 Message definitons - All the messages below need to be packed
1114 ---------------------------------------------------------------------------*/
1115
1116#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1117#pragma pack(push, 1)
1118#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1119#pragma pack(1)
1120#else
1121#endif
1122
1123/// Definition for HAL API Version.
1124typedef PACKED_PRE struct PACKED_POST
1125{
1126 tANI_U8 revision;
1127 tANI_U8 version;
1128 tANI_U8 minor;
1129 tANI_U8 major;
1130} tWcnssWlanVersion, *tpWcnssWlanVersion;
1131
1132/// Definition for Encryption Keys
1133typedef PACKED_PRE struct PACKED_POST
1134{
1135 tANI_U8 keyId;
1136 tANI_U8 unicast; // 0 for multicast
1137 tAniKeyDirection keyDirection;
1138 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1139 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1140 tANI_U16 keyLength;
1141 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1142} tSirKeys, *tpSirKeys;
1143
1144
1145//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1146typedef PACKED_PRE struct PACKED_POST
1147{
1148 /*STA Index*/
1149 tANI_U16 staIdx;
1150
1151 /*Encryption Type used with peer*/
1152 tAniEdType encType;
1153
1154 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301155 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001156
1157 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1158 tANI_U8 defWEPIdx;
1159
Jeff Johnson295189b2012-06-20 16:38:30 -07001160 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301161 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1162
Jeff Johnson295189b2012-06-20 16:38:30 -07001163 /*Control for Replay Count, 1= Single TID based replay count on Tx
1164 0 = Per TID based replay count on TX */
1165 tANI_U8 singleTidRc;
1166
1167} tSetStaKeyParams, *tpSetStaKeyParams;
1168
1169
1170
1171/* 4-byte control message header used by HAL*/
1172typedef PACKED_PRE struct PACKED_POST
1173{
Jeff Johnsone7245742012-09-05 17:12:55 -07001174 tHalHostMsgType msgType:16;
1175 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001176 tANI_U32 msgLen;
1177} tHalMsgHeader, *tpHalMsgHeader;
1178
1179/* Config format required by HAL for each CFG item*/
1180typedef PACKED_PRE struct PACKED_POST
1181{
1182 /* Cfg Id. The Id required by HAL is exported by HAL
1183 * in shared header file between UMAC and HAL.*/
1184 tANI_U16 uCfgId;
1185
Dino Mycle8afbac12014-07-04 22:06:17 +05301186 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001187 * in the TLV format.*/
1188 tANI_U16 uCfgLen;
1189
1190 /* Padding bytes for unaligned address's */
1191 tANI_U16 uCfgPadBytes;
1192
1193 /* Reserve bytes for making cfgVal to align address */
1194 tANI_U16 uCfgReserve;
1195
1196 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1197 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1198} tHalCfg, *tpHalCfg;
1199
1200/*---------------------------------------------------------------------------
1201 WLAN_HAL_START_REQ
1202---------------------------------------------------------------------------*/
1203
1204typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1205{
1206 /* Drive Type - Production or FTM etc */
1207 tDriverType driverType;
1208
1209 /*Length of the config buffer*/
1210 tANI_U32 uConfigBufferLen;
1211
Dino Mycle8afbac12014-07-04 22:06:17 +05301212 /* Following this there is a TLV formatted buffer of length
1213 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001214 * The TLV is expected to be formatted like this:
1215 * 0 15 31 31+CFG_LEN-1 length-1
1216 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1217 */
1218} tHalMacStartParameters, *tpHalMacStartParameters;
1219
1220typedef PACKED_PRE struct PACKED_POST
1221{
1222 /* Note: The length specified in tHalMacStartReqMsg messages should be
1223 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1224 tHalMsgHeader header;
1225 tHalMacStartParameters startReqParams;
1226} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1227
1228/*---------------------------------------------------------------------------
1229 WLAN_HAL_START_RSP
1230---------------------------------------------------------------------------*/
1231
1232typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1233{
1234 /*success or failure */
1235 tANI_U16 status;
1236
1237 /*Max number of STA supported by the device*/
1238 tANI_U8 ucMaxStations;
1239
1240 /*Max number of BSS supported by the device*/
1241 tANI_U8 ucMaxBssids;
1242
1243 /*API Version */
1244 tWcnssWlanVersion wcnssWlanVersion;
1245
1246 /*CRM build information */
1247 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1248
1249 /*hardware/chipset/misc version information */
1250 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1251
1252} tHalMacStartRspParams, *tpHalMacStartRspParams;
1253
1254typedef PACKED_PRE struct PACKED_POST
1255{
1256 tHalMsgHeader header;
1257 tHalMacStartRspParams startRspParams;
1258} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1259
1260/*---------------------------------------------------------------------------
1261 WLAN_HAL_STOP_REQ
1262---------------------------------------------------------------------------*/
1263
1264typedef PACKED_PRE struct PACKED_POST
1265{
1266 /*The reason for which the device is being stopped*/
1267 tHalStopType reason;
1268
1269}tHalMacStopReqParams, *tpHalMacStopReqParams;
1270
1271typedef PACKED_PRE struct PACKED_POST
1272{
1273 tHalMsgHeader header;
1274 tHalMacStopReqParams stopReqParams;
1275} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1276
1277/*---------------------------------------------------------------------------
1278 WLAN_HAL_STOP_RSP
1279---------------------------------------------------------------------------*/
1280
1281typedef PACKED_PRE struct PACKED_POST
1282{
1283 /*success or failure */
1284 tANI_U32 status;
1285
1286}tHalMacStopRspParams, *tpHalMacStopRspParams;
1287
1288typedef PACKED_PRE struct PACKED_POST
1289{
1290 tHalMsgHeader header;
1291 tHalMacStopRspParams stopRspParams;
1292} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1293
1294/*---------------------------------------------------------------------------
1295 WLAN_HAL_UPDATE_CFG_REQ
1296---------------------------------------------------------------------------*/
1297
1298typedef PACKED_PRE struct PACKED_POST
1299{
1300 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1301 tANI_U32 uConfigBufferLen;
1302
Dino Mycle8afbac12014-07-04 22:06:17 +05301303 /* Following this there is a TLV formatted buffer of length
1304 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001305 * The TLV is expected to be formatted like this:
1306 * 0 15 31 31+CFG_LEN-1 length-1
1307 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1308 */
1309} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1310
1311typedef PACKED_PRE struct PACKED_POST
1312{
1313 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1314 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1315 tHalMsgHeader header;
1316 tHalUpdateCfgReqParams updateCfgReqParams;
1317} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1318
1319/*---------------------------------------------------------------------------
1320 WLAN_HAL_UPDATE_CFG_RSP
1321---------------------------------------------------------------------------*/
1322
1323typedef PACKED_PRE struct PACKED_POST
1324{
1325 /* success or failure */
1326 tANI_U32 status;
1327
1328}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1329
1330typedef PACKED_PRE struct PACKED_POST
1331{
1332 tHalMsgHeader header;
1333 tHalUpdateCfgRspParams updateCfgRspParams;
1334} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1335
1336/*---------------------------------------------------------------------------
1337 WLAN_HAL_INIT_SCAN_REQ
1338---------------------------------------------------------------------------*/
1339
1340/// Frame control field format (2 bytes)
1341typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1342{
1343
1344#ifndef ANI_LITTLE_BIT_ENDIAN
1345
1346 tANI_U8 subType :4;
1347 tANI_U8 type :2;
1348 tANI_U8 protVer :2;
1349
1350 tANI_U8 order :1;
1351 tANI_U8 wep :1;
1352 tANI_U8 moreData :1;
1353 tANI_U8 powerMgmt :1;
1354 tANI_U8 retry :1;
1355 tANI_U8 moreFrag :1;
1356 tANI_U8 fromDS :1;
1357 tANI_U8 toDS :1;
1358
1359#else
1360
1361 tANI_U8 protVer :2;
1362 tANI_U8 type :2;
1363 tANI_U8 subType :4;
1364
1365 tANI_U8 toDS :1;
1366 tANI_U8 fromDS :1;
1367 tANI_U8 moreFrag :1;
1368 tANI_U8 retry :1;
1369 tANI_U8 powerMgmt :1;
1370 tANI_U8 moreData :1;
1371 tANI_U8 wep :1;
1372 tANI_U8 order :1;
1373
1374#endif
1375
1376} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1377
1378/// Sequence control field
1379typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1380{
1381 tANI_U8 fragNum : 4;
1382 tANI_U8 seqNumLo : 4;
1383 tANI_U8 seqNumHi : 8;
1384} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1385
1386/// Management header format
1387typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1388{
1389 tSirMacFrameCtl fc;
1390 tANI_U8 durationLo;
1391 tANI_U8 durationHi;
1392 tANI_U8 da[6];
1393 tANI_U8 sa[6];
1394 tANI_U8 bssId[6];
1395 tSirMacSeqCtl seqControl;
1396} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1397
1398/// Scan Entry to hold active BSS idx's
1399typedef __ani_attr_pre_packed struct sSirScanEntry
1400{
1401 tANI_U8 bssIdx[HAL_NUM_BSSID];
1402 tANI_U8 activeBSScnt;
1403}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1404
1405typedef PACKED_PRE struct PACKED_POST {
1406
1407 /*LEARN - AP Role
1408 SCAN - STA Role*/
1409 eHalSysMode scanMode;
1410
1411 /*BSSID of the BSS*/
1412 tSirMacAddr bssid;
1413
1414 /*Whether BSS needs to be notified*/
1415 tANI_U8 notifyBss;
1416
1417 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1418 CTS to Self). Must always be a valid frame type.*/
1419 tANI_U8 frameType;
1420
1421 /*UMAC has the option of passing the MAC frame to be used for notifying
1422 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1423 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1424 frameType.*/
1425 tANI_U8 frameLength;
1426
Dino Mycle8afbac12014-07-04 22:06:17 +05301427 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001428 is non-zero. */
1429 tSirMacMgmtHdr macMgmtHdr;
1430
1431 /*Entry to hold number of active BSS idx's*/
1432 tSirScanEntry scanEntry;
1433
1434} tInitScanParams, * tpInitScanParams;
1435
1436typedef PACKED_PRE struct PACKED_POST
1437{
1438 tHalMsgHeader header;
1439 tInitScanParams initScanParams;
1440} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1441
1442typedef PACKED_PRE struct PACKED_POST {
1443
1444 /*LEARN - AP Role
1445 SCAN - STA Role*/
1446 eHalSysMode scanMode;
1447
1448 /*BSSID of the BSS*/
1449 tSirMacAddr bssid;
1450
1451 /*Whether BSS needs to be notified*/
1452 tANI_U8 notifyBss;
1453
1454 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1455 CTS to Self). Must always be a valid frame type.*/
1456 tANI_U8 frameType;
1457
1458 /*UMAC has the option of passing the MAC frame to be used for notifying
1459 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1460 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1461 frameType.*/
1462 tANI_U8 frameLength;
1463
Dino Mycle8afbac12014-07-04 22:06:17 +05301464 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001465 is non-zero. */
1466 tSirMacMgmtHdr macMgmtHdr;
1467
1468 /*Entry to hold number of active BSS idx's*/
1469 tSirScanEntry scanEntry;
1470
1471 /* Single NoA usage in Scanning */
1472 tANI_U8 useNoA;
1473
1474 /* Indicates the scan duration (in ms) */
1475 tANI_U16 scanDuration;
1476
1477} tInitScanConParams, * tpInitScanConParams;
1478
1479typedef PACKED_PRE struct PACKED_POST
1480{
1481 tHalMsgHeader header;
1482 tInitScanConParams initScanParams;
1483} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1484
1485
1486/*---------------------------------------------------------------------------
1487 WLAN_HAL_INIT_SCAN_RSP
1488---------------------------------------------------------------------------*/
1489
1490typedef PACKED_PRE struct PACKED_POST
1491{
1492 /*success or failure */
1493 tANI_U32 status;
1494
1495}tHalInitScanRspParams, *tpHalInitScanRspParams;
1496
1497typedef PACKED_PRE struct PACKED_POST
1498{
1499 tHalMsgHeader header;
1500 tHalInitScanRspParams initScanRspParams;
1501} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1502
1503/*---------------------------------------------------------------------------
1504 WLAN_HAL_START_SCAN_REQ
1505---------------------------------------------------------------------------*/
1506
Dino Mycle8afbac12014-07-04 22:06:17 +05301507typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001508{
1509 /*Indicates the channel to scan*/
1510 tANI_U8 scanChannel;
1511
1512 } tStartScanParams, * tpStartScanParams;
1513
1514typedef PACKED_PRE struct PACKED_POST
1515{
1516 tHalMsgHeader header;
1517 tStartScanParams startScanParams;
1518} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1519
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001520typedef PACKED_PRE struct PACKED_POST
1521{
1522 tHalMsgHeader header;
1523} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1524
Jeff Johnson295189b2012-06-20 16:38:30 -07001525/*---------------------------------------------------------------------------
1526 WLAN_HAL_START_SCAN_RSP
1527---------------------------------------------------------------------------*/
1528
1529typedef PACKED_PRE struct PACKED_POST
1530{
1531 /*success or failure */
1532 tANI_U32 status;
1533
1534 tANI_U32 startTSF[2];
1535 tPowerdBm txMgmtPower;
1536
1537}tHalStartScanRspParams, *tpHalStartScanRspParams;
1538
1539typedef PACKED_PRE struct PACKED_POST
1540{
1541 tHalMsgHeader header;
1542 tHalStartScanRspParams startScanRspParams;
1543} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1544
1545/*---------------------------------------------------------------------------
1546 WLAN_HAL_END_SCAN_REQ
1547---------------------------------------------------------------------------*/
1548
1549typedef PACKED_PRE struct PACKED_POST
1550{
1551 /*Indicates the channel to stop scanning. Not used really. But retained
1552 for symmetry with "start Scan" message. It can also help in error
1553 check if needed.*/
1554 tANI_U8 scanChannel;
1555
1556} tEndScanParams, *tpEndScanParams;
1557
1558typedef PACKED_PRE struct PACKED_POST
1559{
1560 tHalMsgHeader header;
1561 tEndScanParams endScanParams;
1562} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1563
1564/*---------------------------------------------------------------------------
1565 WLAN_HAL_END_SCAN_RSP
1566---------------------------------------------------------------------------*/
1567
1568typedef PACKED_PRE struct PACKED_POST
1569{
1570 /*success or failure */
1571 tANI_U32 status;
1572
1573}tHalEndScanRspParams, *tpHalEndScanRspParams;
1574
1575typedef PACKED_PRE struct PACKED_POST
1576{
1577 tHalMsgHeader header;
1578 tHalEndScanRspParams endScanRspParams;
1579} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1580
1581/*---------------------------------------------------------------------------
1582 WLAN_HAL_FINISH_SCAN_REQ
1583---------------------------------------------------------------------------*/
1584
1585typedef PACKED_PRE struct PACKED_POST
1586{
1587 /* Identifies the operational state of the AP/STA
1588 * LEARN - AP Role SCAN - STA Role */
1589 eHalSysMode scanMode;
1590
1591 /*Operating channel to tune to.*/
1592 tANI_U8 currentOperChannel;
1593
1594 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1595 40 MHz extension channel in combination with the control channel*/
1596 ePhyChanBondState cbState;
1597
1598 /*BSSID of the BSS*/
1599 tSirMacAddr bssid;
1600
1601 /*Whether BSS needs to be notified*/
1602 tANI_U8 notifyBss;
1603
1604 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1605 CTS to Self). Must always be a valid frame type.*/
1606 tANI_U8 frameType;
1607
1608 /*UMAC has the option of passing the MAC frame to be used for notifying
1609 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1610 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1611 frameType.*/
1612 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301613
1614 /*Following the framelength there is a MAC frame buffer if frameLength
1615 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001616 tSirMacMgmtHdr macMgmtHdr;
1617
1618 /*Entry to hold number of active BSS idx's*/
1619 tSirScanEntry scanEntry;
1620
1621} tFinishScanParams, *tpFinishScanParams;
1622
1623typedef PACKED_PRE struct PACKED_POST
1624{
1625 tHalMsgHeader header;
1626 tFinishScanParams finishScanParams;
1627} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1628
1629/*---------------------------------------------------------------------------
1630 WLAN_HAL_FINISH_SCAN_RSP
1631---------------------------------------------------------------------------*/
1632
1633typedef PACKED_PRE struct PACKED_POST
1634{
1635 /*success or failure */
1636 tANI_U32 status;
1637
1638}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1639
1640typedef PACKED_PRE struct PACKED_POST
1641{
1642 tHalMsgHeader header;
1643 tHalFinishScanRspParams finishScanRspParams;
1644} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1645
Srinivas Dasari42584632014-11-26 20:37:19 +05301646typedef PACKED_PRE struct PACKED_POST
1647{
1648 tSetStaKeyParams keyParams;
1649 uint8 pn[6];
1650} tHalEncConfigParams;
1651
1652typedef PACKED_PRE struct PACKED_POST
1653{
1654 uint16 length;
1655 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1656} tHalDisaPayload;
1657
1658typedef PACKED_PRE struct PACKED_POST
1659{
1660#ifdef BYTE_ORDER_BIG_ENDIAN
1661 uint8 reserved1 : 1;
1662 uint8 ackpolicy : 2;
1663 uint8 eosp : 1;
1664 uint8 tid : 4;
1665
1666 uint8 appsbufferstate : 8;
1667#else
1668 uint8 appsbufferstate : 8;
1669
1670 uint8 tid : 4;
1671 uint8 eosp : 1;
1672 uint8 ackpolicy : 2;
1673 uint8 reserved1 : 1;
1674#endif
1675} tHalQosCtrlFieldType;
1676
1677typedef PACKED_PRE struct PACKED_POST
1678 {
1679#ifdef BYTE_ORDER_BIG_ENDIAN
1680 uint16 subtype : 4;
1681 uint16 type : 2;
1682 uint16 protocol : 2;
1683
1684 uint16 order : 1;
1685 uint16 wep : 1;
1686 uint16 moredata : 1;
1687 uint16 pm : 1;
1688 uint16 retry : 1;
1689 uint16 morefrag : 1;
1690 uint16 fromds : 1;
1691 uint16 tods : 1;
1692#else
1693
1694 uint16 tods : 1;
1695 uint16 fromds : 1;
1696 uint16 morefrag : 1;
1697 uint16 retry : 1;
1698 uint16 pm : 1;
1699 uint16 moredata : 1;
1700 uint16 wep : 1;
1701 uint16 order : 1;
1702
1703 uint16 protocol : 2;
1704 uint16 type : 2;
1705 uint16 subtype : 4;
1706#endif
1707} tHalFrmCtrlType;
1708
1709typedef PACKED_PRE struct PACKED_POST
1710{
1711 /* Frame control field */
1712 tHalFrmCtrlType fc;
1713 /* Duration ID */
1714 uint16 usDurationId;
1715 /* Address 1 field */
1716 uint8 vA1[HAL_MAC_ADDR_LEN];
1717 /* Address 2 field */
1718 uint8 vA2[HAL_MAC_ADDR_LEN];
1719 /* Address 3 field */
1720 uint8 vA3[HAL_MAC_ADDR_LEN];
1721 /* Sequence control field */
1722 uint16 seqNum;
1723 /* Optional A4 address */
1724 uint8 optvA4[HAL_MAC_ADDR_LEN];
1725 /* Optional QOS control field */
1726 tHalQosCtrlFieldType usQosCtrl;
1727} tHal80211Header;
1728
1729typedef PACKED_PRE struct PACKED_POST
1730{
1731 tHal80211Header macHeader;
1732 tHalEncConfigParams encParams;
1733 tHalDisaPayload data;
1734} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1735
1736typedef PACKED_PRE struct PACKED_POST
1737{
1738 tHalMsgHeader header;
1739 tSetEncryptedDataParams encryptedDataParams;
1740} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1741
1742typedef PACKED_PRE struct PACKED_POST
1743{
1744 tANI_U32 status;
1745 tHalDisaPayload encryptedPayload;
1746} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1747
1748typedef PACKED_PRE struct PACKED_POST
1749{
1750 tHalMsgHeader header;
1751 tSetEncryptedDataRspParams encryptedDataRspParams;
1752} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1753
Jeff Johnson295189b2012-06-20 16:38:30 -07001754/*---------------------------------------------------------------------------
1755 WLAN_HAL_CONFIG_STA_REQ
1756---------------------------------------------------------------------------*/
1757
1758typedef PACKED_PRE struct PACKED_POST {
1759 /*
1760 * For Self STA Entry: this represents Self Mode.
1761 * For Peer Stations, this represents the mode of the peer.
1762 * On Station:
1763 * --this mode is updated when PE adds the Self Entry.
1764 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1765 * ON AP:
1766 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1767 * to indicate the self mode of the AP.
1768 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1769 */
1770
1771 tStaRateMode opRateMode;
1772 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1773 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1774 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1775 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1776 tANI_U16 reserved;
1777
1778 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1779 //First 26 bits are reserved for those Titan rates and
1780 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1781 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1782
1783 /*
1784 * 0-76 bits used, remaining reserved
1785 * bits 0-15 and 32 should be set.
1786 */
1787 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1788
1789 /*
1790 * RX Highest Supported Data Rate defines the highest data
1791 * rate that the STA is able to receive, in unites of 1Mbps.
1792 * This value is derived from "Supported MCS Set field" inside
1793 * the HT capability element.
1794 */
1795 tANI_U16 rxHighestDataRate;
1796
1797} tSirSupportedRates, *tpSirSupportedRates;
1798
1799typedef PACKED_PRE struct PACKED_POST
1800{
1801 /*BSSID of STA*/
1802 tSirMacAddr bssId;
1803
1804 /*ASSOC ID, as assigned by UMAC*/
1805 tANI_U16 assocId;
1806
1807 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1808 tANI_U8 staType;
1809
1810 /*Short Preamble Supported.*/
1811 tANI_U8 shortPreambleSupported;
1812
1813 /*MAC Address of STA*/
1814 tSirMacAddr staMac;
1815
1816 /*Listen interval of the STA*/
1817 tANI_U16 listenInterval;
1818
1819 /*Support for 11e/WMM*/
1820 tANI_U8 wmmEnabled;
1821
1822 /*11n HT capable STA*/
1823 tANI_U8 htCapable;
1824
1825 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1826 tANI_U8 txChannelWidthSet;
1827
1828 /*RIFS mode 0 - NA, 1 - Allowed */
1829 tANI_U8 rifsMode;
1830
Dino Mycle8afbac12014-07-04 22:06:17 +05301831 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001832 0 - No Support, 1 - Supported
1833 SG - there is global field */
1834 tANI_U8 lsigTxopProtection;
1835
1836 /*Max Ampdu Size supported by STA. TPE programming.
1837 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1838 tANI_U8 maxAmpduSize;
1839
1840 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1841 tANI_U8 maxAmpduDensity;
1842
1843 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1844 tANI_U8 maxAmsduSize;
1845
1846 /*Short GI support for 40Mhz packets*/
1847 tANI_U8 fShortGI40Mhz;
1848
1849 /*Short GI support for 20Mhz packets*/
1850 tANI_U8 fShortGI20Mhz;
1851
Jeff Johnson295189b2012-06-20 16:38:30 -07001852 /*Robust Management Frame (RMF) enabled/disabled*/
1853 tANI_U8 rmfEnabled;
1854
1855 /* The unicast encryption type in the association */
1856 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001857
1858 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001859 will set this flag in case of RE-ASSOC, where we want to reuse the old
1860 STA ID. 0 = Add, 1 = Update*/
1861 tANI_U8 action;
1862
1863 /*U-APSD Flags: 1b per AC. Encoded as follows:
1864 b7 b6 b5 b4 b3 b2 b1 b0 =
1865 X X X X BE BK VI VO */
1866 tANI_U8 uAPSD;
1867
1868 /*Max SP Length*/
1869 tANI_U8 maxSPLen;
1870
1871 /*11n Green Field preamble support
1872 0 - Not supported, 1 - Supported */
1873 tANI_U8 greenFieldCapable;
1874
1875 /*MIMO Power Save mode*/
1876 tSirMacHTMIMOPowerSaveState mimoPS;
1877
1878 /*Delayed BA Support*/
1879 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001880
Jeff Johnson295189b2012-06-20 16:38:30 -07001881 /*Max AMPDU duration in 32us*/
1882 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001883
Jeff Johnson295189b2012-06-20 16:38:30 -07001884 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1885 it to 0 if AP does not support it. This indication is sent to HAL and
1886 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1887 tANI_U8 fDsssCckMode40Mhz;
1888
1889 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1890 Retained for backward compalibity with existing HAL code*/
1891 tANI_U8 staIdx;
1892
1893 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1894 Retained for backward compalibity with existing HAL code*/
1895 tANI_U8 bssIdx;
1896
1897 tANI_U8 p2pCapableSta;
1898
Jeff Johnsone7245742012-09-05 17:12:55 -07001899 /*Reserved to align next field on a dword boundary*/
1900 tANI_U8 reserved;
1901
1902 /*These rates are the intersection of peer and self capabilities.*/
1903 tSirSupportedRates supportedRates;
1904
Jeff Johnson295189b2012-06-20 16:38:30 -07001905} tConfigStaParams, *tpConfigStaParams;
1906
Jeff Johnsone7245742012-09-05 17:12:55 -07001907/*------------------------------------------------------------------------
1908 * WLAN_HAL_CONFIG_STA_REQ
1909 * ----------------------------------------------------------------------*/
1910
1911typedef PACKED_PRE struct PACKED_POST {
1912 /*
1913 * For Self STA Entry: this represents Self Mode.
1914 * For Peer Stations, this represents the mode of the peer.
1915 * On Station:
1916 * --this mode is updated when PE adds the Self Entry.
1917 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1918 * ON AP:
1919 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1920 * to indicate the self mode of the AP.
1921 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1922 */
1923
1924 tStaRateMode opRateMode;
1925 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1926 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1927 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1928 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1929 tANI_U16 reserved;
1930
1931 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1932 //First 26 bits are reserved for those Titan rates and
1933 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1934 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1935
1936 /*
1937 * 0-76 bits used, remaining reserved
1938 * bits 0-15 and 32 should be set.
1939 */
1940 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1941
1942 /*
1943 * RX Highest Supported Data Rate defines the highest data
1944 * rate that the STA is able to receive, in unites of 1Mbps.
1945 * This value is derived from "Supported MCS Set field" inside
1946 * the HT capability element.
1947 */
1948 tANI_U16 rxHighestDataRate;
1949
1950 /* Indicates the Maximum MCS that can be received for each number
1951 * of spacial streams */
1952 tANI_U16 vhtRxMCSMap;
1953
1954 /*Indicate the highest VHT data rate that the STA is able to receive*/
1955 tANI_U16 vhtRxHighestDataRate;
1956
1957 /* Indicates the Maximum MCS that can be transmitted for each number
1958 * of spacial streams */
1959 tANI_U16 vhtTxMCSMap;
1960
1961 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1962 tANI_U16 vhtTxHighestDataRate;
1963
1964} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1965
1966typedef PACKED_PRE struct PACKED_POST
1967{
1968 /*BSSID of STA*/
1969 tSirMacAddr bssId;
1970
1971 /*ASSOC ID, as assigned by UMAC*/
1972 tANI_U16 assocId;
1973
1974 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1975 tANI_U8 staType;
1976
1977 /*Short Preamble Supported.*/
1978 tANI_U8 shortPreambleSupported;
1979
1980 /*MAC Address of STA*/
1981 tSirMacAddr staMac;
1982
1983 /*Listen interval of the STA*/
1984 tANI_U16 listenInterval;
1985
1986 /*Support for 11e/WMM*/
1987 tANI_U8 wmmEnabled;
1988
1989 /*11n HT capable STA*/
1990 tANI_U8 htCapable;
1991
1992 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1993 tANI_U8 txChannelWidthSet;
1994
1995 /*RIFS mode 0 - NA, 1 - Allowed */
1996 tANI_U8 rifsMode;
1997
1998 /*L-SIG TXOP Protection mechanism
1999 0 - No Support, 1 - Supported
2000 SG - there is global field */
2001 tANI_U8 lsigTxopProtection;
2002
2003 /*Max Ampdu Size supported by STA. TPE programming.
2004 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
2005 tANI_U8 maxAmpduSize;
2006
2007 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
2008 tANI_U8 maxAmpduDensity;
2009
2010 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
2011 tANI_U8 maxAmsduSize;
2012
2013 /*Short GI support for 40Mhz packets*/
2014 tANI_U8 fShortGI40Mhz;
2015
2016 /*Short GI support for 20Mhz packets*/
2017 tANI_U8 fShortGI20Mhz;
2018
2019 /*Robust Management Frame (RMF) enabled/disabled*/
2020 tANI_U8 rmfEnabled;
2021
2022 /* The unicast encryption type in the association */
2023 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05302024
2025 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07002026 will set this flag in case of RE-ASSOC, where we want to reuse the old
2027 STA ID. 0 = Add, 1 = Update*/
2028 tANI_U8 action;
2029
2030 /*U-APSD Flags: 1b per AC. Encoded as follows:
2031 b7 b6 b5 b4 b3 b2 b1 b0 =
2032 X X X X BE BK VI VO */
2033 tANI_U8 uAPSD;
2034
2035 /*Max SP Length*/
2036 tANI_U8 maxSPLen;
2037
2038 /*11n Green Field preamble support
2039 0 - Not supported, 1 - Supported */
2040 tANI_U8 greenFieldCapable;
2041
2042 /*MIMO Power Save mode*/
2043 tSirMacHTMIMOPowerSaveState mimoPS;
2044
2045 /*Delayed BA Support*/
2046 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05302047
Jeff Johnsone7245742012-09-05 17:12:55 -07002048 /*Max AMPDU duration in 32us*/
2049 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05302050
Jeff Johnsone7245742012-09-05 17:12:55 -07002051 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
2052 it to 0 if AP does not support it. This indication is sent to HAL and
2053 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
2054 tANI_U8 fDsssCckMode40Mhz;
2055
2056 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
2057 Retained for backward compalibity with existing HAL code*/
2058 tANI_U8 staIdx;
2059
2060 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2061 Retained for backward compalibity with existing HAL code*/
2062 tANI_U8 bssIdx;
2063
2064 tANI_U8 p2pCapableSta;
2065
2066 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002067 tANI_U8 htLdpcEnabled:1;
2068 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002069 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302070 tANI_U8 vhtTxMUBformeeCapable:1;
2071 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002072
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002073 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002074 tSirSupportedRates_V1 supportedRates;
2075
2076 tANI_U8 vhtCapable;
2077 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002078
Jeff Johnsone7245742012-09-05 17:12:55 -07002079} tConfigStaParams_V1, *tpConfigStaParams_V1;
2080
Jeff Johnson295189b2012-06-20 16:38:30 -07002081typedef PACKED_PRE struct PACKED_POST
2082{
2083 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002084 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002085 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002086 tConfigStaParams_V1 configStaParams_V1;
2087 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002088} tConfigStaReqMsg, *tpConfigStaReqMsg;
2089
2090/*---------------------------------------------------------------------------
2091 WLAN_HAL_CONFIG_STA_RSP
2092---------------------------------------------------------------------------*/
2093
2094typedef PACKED_PRE struct PACKED_POST
2095{
2096 /*success or failure */
2097 tANI_U32 status;
2098
2099 /* Station index; valid only when 'status' field value SUCCESS */
2100 tANI_U8 staIdx;
2101
2102 /* BSSID Index of BSS to which the station is associated */
2103 tANI_U8 bssIdx;
2104
2105 /* DPU Index for PTK */
2106 tANI_U8 dpuIndex;
2107
Dino Mycle8afbac12014-07-04 22:06:17 +05302108 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002109 tANI_U8 bcastDpuIndex;
2110
2111 /*DPU Index for IGTK */
2112 tANI_U8 bcastMgmtDpuIdx;
2113
2114 /*PTK DPU signature*/
2115 tANI_U8 ucUcastSig;
2116
2117 /*GTK DPU isignature*/
2118 tANI_U8 ucBcastSig;
2119
2120 /* IGTK DPU signature*/
2121 tANI_U8 ucMgmtSig;
2122
2123 tANI_U8 p2pCapableSta;
2124
2125}tConfigStaRspParams, *tpConfigStaRspParams;
2126
2127typedef PACKED_PRE struct PACKED_POST
2128{
2129 tHalMsgHeader header;
2130 tConfigStaRspParams configStaRspParams;
2131}tConfigStaRspMsg, *tpConfigStaRspMsg;
2132
2133/*---------------------------------------------------------------------------
2134 WLAN_HAL_DELETE_STA_REQ
2135---------------------------------------------------------------------------*/
2136
2137/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302138typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002139{
2140 /* Index of STA to delete */
2141 tANI_U8 staIdx;
2142} tDeleteStaParams, *tpDeleteStaParams;
2143
2144/* Delete STA Request message*/
2145typedef PACKED_PRE struct PACKED_POST
2146{
2147 tHalMsgHeader header;
2148 tDeleteStaParams delStaParams;
2149} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2150
2151/*---------------------------------------------------------------------------
2152 WLAN_HAL_DELETE_STA_RSP
2153---------------------------------------------------------------------------*/
2154
2155/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302156typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002157{
2158 /*success or failure */
2159 tANI_U32 status;
2160
2161 /* Index of STA deleted */
2162 tANI_U8 staId;
2163} tDeleteStaRspParams, *tpDeleteStaRspParams;
2164
2165/* Delete STA Response message*/
2166typedef PACKED_PRE struct PACKED_POST
2167{
2168 tHalMsgHeader header;
2169 tDeleteStaRspParams delStaRspParams;
2170} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2171
2172/*---------------------------------------------------------------------------
2173 WLAN_HAL_CONFIG_BSS_REQ
2174---------------------------------------------------------------------------*/
2175
2176//12 Bytes long because this structure can be used to represent rate
2177//and extended rate set IEs. The parser assume this to be at least 12
2178typedef __ani_attr_pre_packed struct sSirMacRateSet
2179{
2180 tANI_U8 numRates;
2181 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2182} __ani_attr_packed tSirMacRateSet;
2183
2184// access category record
2185typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2186{
2187#ifndef ANI_LITTLE_BIT_ENDIAN
2188 tANI_U8 rsvd : 1;
2189 tANI_U8 aci : 2;
2190 tANI_U8 acm : 1;
2191 tANI_U8 aifsn : 4;
2192#else
2193 tANI_U8 aifsn : 4;
2194 tANI_U8 acm : 1;
2195 tANI_U8 aci : 2;
2196 tANI_U8 rsvd : 1;
2197#endif
2198} __ani_attr_packed tSirMacAciAifsn;
2199
2200// contention window size
2201typedef __ani_attr_pre_packed struct sSirMacCW
2202{
2203#ifndef ANI_LITTLE_BIT_ENDIAN
2204 tANI_U8 max : 4;
2205 tANI_U8 min : 4;
2206#else
2207 tANI_U8 min : 4;
2208 tANI_U8 max : 4;
2209#endif
2210} __ani_attr_packed tSirMacCW;
2211
2212typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2213{
2214 tSirMacAciAifsn aci;
2215 tSirMacCW cw;
2216 tANI_U16 txoplimit;
2217} __ani_attr_packed tSirMacEdcaParamRecord;
2218
2219typedef __ani_attr_pre_packed struct sSirMacSSid
2220{
2221 tANI_U8 length;
2222 tANI_U8 ssId[32];
2223} __ani_attr_packed tSirMacSSid;
2224
2225// Concurrency role. These are generic IDs that identify the various roles
2226// in the software system.
2227typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302228 HAL_STA_MODE=0,
2229 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002230 HAL_P2P_CLIENT_MODE,
2231 HAL_P2P_GO_MODE,
2232 HAL_MONITOR_MODE,
2233} tHalConMode;
2234
2235//This is a bit pattern to be set for each mode
2236//bit 0 - sta mode
2237//bit 1 - ap mode
2238//bit 2 - p2p client mode
2239//bit 3 - p2p go mode
2240typedef enum
2241{
Dino Mycle8afbac12014-07-04 22:06:17 +05302242 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002243 HAL_SAP=2,
2244 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2245 HAL_P2P_CLIENT=4,
2246 HAL_P2P_GO=8,
2247 HAL_MAX_CONCURRENCY_PERSONA=4
2248} tHalConcurrencyMode;
2249
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002250// IFACE PERSONA for different Operating modes
2251typedef enum
2252{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002253 HAL_IFACE_UNKNOWN=0,
2254 HAL_IFACE_STA_MODE=1,
2255 HAL_IFACE_P2P_MODE=2,
2256 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002257} tHalIfacePersona;
2258
Jeff Johnson295189b2012-06-20 16:38:30 -07002259typedef PACKED_PRE struct PACKED_POST
2260{
2261 /* BSSID */
2262 tSirMacAddr bssId;
2263
Jeff Johnson295189b2012-06-20 16:38:30 -07002264 /* Self Mac Address */
2265 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002266
2267 /* BSS type */
2268 tSirBssType bssType;
2269
2270 /*Operational Mode: AP =0, STA = 1*/
2271 tANI_U8 operMode;
2272
2273 /*Network Type*/
2274 tSirNwType nwType;
2275
2276 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2277 tANI_U8 shortSlotTimeSupported;
2278
2279 /*Co-exist with 11a STA*/
2280 tANI_U8 llaCoexist;
2281
2282 /*Co-exist with 11b STA*/
2283 tANI_U8 llbCoexist;
2284
2285 /*Co-exist with 11g STA*/
2286 tANI_U8 llgCoexist;
2287
2288 /*Coexistence with 11n STA*/
2289 tANI_U8 ht20Coexist;
2290
2291 /*Non GF coexist flag*/
2292 tANI_U8 llnNonGFCoexist;
2293
2294 /*TXOP protection support*/
2295 tANI_U8 fLsigTXOPProtectionFullSupport;
2296
2297 /*RIFS mode*/
2298 tANI_U8 fRIFSMode;
2299
2300 /*Beacon Interval in TU*/
2301 tSirMacBeaconInterval beaconInterval;
2302
2303 /*DTIM period*/
2304 tANI_U8 dtimPeriod;
2305
2306 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2307 tANI_U8 txChannelWidthSet;
2308
2309 /*Operating channel*/
2310 tANI_U8 currentOperChannel;
2311
2312 /*Extension channel for channel bonding*/
2313 tANI_U8 currentExtChannel;
2314
2315 /*Reserved to align next field on a dword boundary*/
2316 tANI_U8 reserved;
2317
Jeff Johnsone7245742012-09-05 17:12:55 -07002318 /*SSID of the BSS*/
2319 tSirMacSSid ssId;
2320
2321 /*HAL should update the existing BSS entry, if this flag is set.
2322 UMAC will set this flag in case of reassoc, where we want to resue the
2323 the old BSSID and still return success 0 = Add, 1 = Update*/
2324 tANI_U8 action;
2325
2326 /* MAC Rate Set */
2327 tSirMacRateSet rateSet;
2328
2329 /*Enable/Disable HT capabilities of the BSS*/
2330 tANI_U8 htCapable;
2331
2332 // Enable/Disable OBSS protection
2333 tANI_U8 obssProtEnabled;
2334
2335 /*RMF enabled/disabled*/
2336 tANI_U8 rmfEnabled;
2337
2338 /*HT Operating Mode operating mode of the 802.11n STA*/
2339 tSirMacHTOperatingMode htOperMode;
2340
2341 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2342 tANI_U8 dualCTSProtection;
2343
2344 /* Probe Response Max retries */
2345 tANI_U8 ucMaxProbeRespRetryLimit;
2346
2347 /* To Enable Hidden ssid */
2348 tANI_U8 bHiddenSSIDEn;
2349
2350 /* To Enable Disable FW Proxy Probe Resp */
2351 tANI_U8 bProxyProbeRespEn;
2352
2353 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2354 EDCA params or might not desire to apply EDCA params during config BSS.
2355 0 implies Not Valid ; Non-Zero implies valid*/
2356 tANI_U8 edcaParamsValid;
2357
2358 /*EDCA Parameters for Best Effort Access Category*/
2359 tSirMacEdcaParamRecord acbe;
2360
2361 /*EDCA Parameters forBackground Access Category*/
2362 tSirMacEdcaParamRecord acbk;
2363
2364 /*EDCA Parameters for Video Access Category*/
2365 tSirMacEdcaParamRecord acvi;
2366
2367 /*EDCA Parameters for Voice Access Category*/
2368 tSirMacEdcaParamRecord acvo;
2369
2370#ifdef WLAN_FEATURE_VOWIFI_11R
2371 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2372 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2373#endif
2374
2375 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2376 tANI_U8 halPersona;
2377
2378 tANI_U8 bSpectrumMgtEnable;
2379
2380 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2381 tANI_S8 txMgmtPower;
2382 /*maxTxPower has max power to be used after applying the power constraint if any */
2383 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002384 /*Context of the station being added in HW
2385 Add a STA entry for "itself" -
2386 On AP - Add the AP itself in an "STA context"
2387 On STA - Add the AP to which this STA is joining in an "STA context" */
2388 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002389} tConfigBssParams, * tpConfigBssParams;
2390
2391
2392/*--------------------------------------------------------------------------
2393 * WLAN_HAL_CONFIG_BSS_REQ
2394 *--------------------------------------------------------------------------*/
2395typedef PACKED_PRE struct PACKED_POST
2396{
2397 /* BSSID */
2398 tSirMacAddr bssId;
2399
Jeff Johnsone7245742012-09-05 17:12:55 -07002400 /* Self Mac Address */
2401 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002402
2403 /* BSS type */
2404 tSirBssType bssType;
2405
2406 /*Operational Mode: AP =0, STA = 1*/
2407 tANI_U8 operMode;
2408
2409 /*Network Type*/
2410 tSirNwType nwType;
2411
2412 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2413 tANI_U8 shortSlotTimeSupported;
2414
2415 /*Co-exist with 11a STA*/
2416 tANI_U8 llaCoexist;
2417
2418 /*Co-exist with 11b STA*/
2419 tANI_U8 llbCoexist;
2420
2421 /*Co-exist with 11g STA*/
2422 tANI_U8 llgCoexist;
2423
2424 /*Coexistence with 11n STA*/
2425 tANI_U8 ht20Coexist;
2426
2427 /*Non GF coexist flag*/
2428 tANI_U8 llnNonGFCoexist;
2429
2430 /*TXOP protection support*/
2431 tANI_U8 fLsigTXOPProtectionFullSupport;
2432 /*RIFS mode*/
2433 tANI_U8 fRIFSMode;
2434
2435 /*Beacon Interval in TU*/
2436 tSirMacBeaconInterval beaconInterval;
2437
2438 /*DTIM period*/
2439 tANI_U8 dtimPeriod;
2440
2441 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2442 tANI_U8 txChannelWidthSet;
2443
2444 /*Operating channel*/
2445 tANI_U8 currentOperChannel;
2446
2447 /*Extension channel for channel bonding*/
2448 tANI_U8 currentExtChannel;
2449
2450 /*Reserved to align next field on a dword boundary*/
2451 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002452
2453 /*SSID of the BSS*/
2454 tSirMacSSid ssId;
2455
2456 /*HAL should update the existing BSS entry, if this flag is set.
2457 UMAC will set this flag in case of reassoc, where we want to resue the
2458 the old BSSID and still return success 0 = Add, 1 = Update*/
2459 tANI_U8 action;
2460
2461 /* MAC Rate Set */
2462 tSirMacRateSet rateSet;
2463
2464 /*Enable/Disable HT capabilities of the BSS*/
2465 tANI_U8 htCapable;
2466
2467 // Enable/Disable OBSS protection
2468 tANI_U8 obssProtEnabled;
2469
2470 /*RMF enabled/disabled*/
2471 tANI_U8 rmfEnabled;
2472
2473 /*HT Operating Mode operating mode of the 802.11n STA*/
2474 tSirMacHTOperatingMode htOperMode;
2475
2476 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2477 tANI_U8 dualCTSProtection;
2478
2479 /* Probe Response Max retries */
2480 tANI_U8 ucMaxProbeRespRetryLimit;
2481
2482 /* To Enable Hidden ssid */
2483 tANI_U8 bHiddenSSIDEn;
2484
2485 /* To Enable Disable FW Proxy Probe Resp */
2486 tANI_U8 bProxyProbeRespEn;
2487
Dino Mycle8afbac12014-07-04 22:06:17 +05302488 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2489 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002490 0 implies Not Valid ; Non-Zero implies valid*/
2491 tANI_U8 edcaParamsValid;
2492
2493 /*EDCA Parameters for Best Effort Access Category*/
2494 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302495
Jeff Johnson295189b2012-06-20 16:38:30 -07002496 /*EDCA Parameters forBackground Access Category*/
2497 tSirMacEdcaParamRecord acbk;
2498
2499 /*EDCA Parameters for Video Access Category*/
2500 tSirMacEdcaParamRecord acvi;
2501
2502 /*EDCA Parameters for Voice Access Category*/
2503 tSirMacEdcaParamRecord acvo;
2504
2505#ifdef WLAN_FEATURE_VOWIFI_11R
2506 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2507 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2508#endif
2509
Dino Mycle8afbac12014-07-04 22:06:17 +05302510 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002511 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302512
Jeff Johnson295189b2012-06-20 16:38:30 -07002513 tANI_U8 bSpectrumMgtEnable;
2514
2515 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2516 tANI_S8 txMgmtPower;
2517 /*maxTxPower has max power to be used after applying the power constraint if any */
2518 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002519 /*Context of the station being added in HW
2520 Add a STA entry for "itself" -
2521 On AP - Add the AP itself in an "STA context"
2522 On STA - Add the AP to which this STA is joining in an "STA context" */
2523 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302524
Jeff Johnsone7245742012-09-05 17:12:55 -07002525 tANI_U8 vhtCapable;
2526 tANI_U8 vhtTxChannelWidthSet;
2527} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002528
2529typedef PACKED_PRE struct PACKED_POST
2530{
2531 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002532 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002533 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002534 tConfigBssParams_V1 configBssParams_V1;
2535 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002536} tConfigBssReqMsg, *tpConfigBssReqMsg;
2537
2538/*---------------------------------------------------------------------------
2539 WLAN_HAL_CONFIG_BSS_RSP
2540---------------------------------------------------------------------------*/
2541
2542typedef PACKED_PRE struct PACKED_POST
2543{
2544 /* Success or Failure */
2545 tANI_U32 status;
2546
2547 /* BSS index allocated by HAL */
2548 tANI_U8 bssIdx;
2549
2550 /* DPU descriptor index for PTK */
2551 tANI_U8 dpuDescIndx;
2552
2553 /* PTK DPU signature */
2554 tANI_U8 ucastDpuSignature;
2555
2556 /* DPU descriptor index for GTK*/
2557 tANI_U8 bcastDpuDescIndx;
2558
2559 /* GTK DPU signature */
2560 tANI_U8 bcastDpuSignature;
2561
2562 /*DPU descriptor for IGTK*/
2563 tANI_U8 mgmtDpuDescIndx;
2564
2565 /* IGTK DPU signature */
2566 tANI_U8 mgmtDpuSignature;
2567
2568 /* Station Index for BSS entry*/
2569 tANI_U8 bssStaIdx;
2570
2571 /* Self station index for this BSS */
2572 tANI_U8 bssSelfStaIdx;
2573
2574 /* Bcast station for buffering bcast frames in AP role */
2575 tANI_U8 bssBcastStaIdx;
2576
2577 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2578 tSirMacAddr staMac;
2579
2580 /*HAL fills in the tx power used for mgmt frames in this field. */
2581 tANI_S8 txMgmtPower;
2582
2583} tConfigBssRspParams, * tpConfigBssRspParams;
2584
2585typedef PACKED_PRE struct PACKED_POST
2586{
2587 tHalMsgHeader header;
2588 tConfigBssRspParams configBssRspParams;
2589} tConfigBssRspMsg, *tpConfigBssRspMsg;
2590
2591/*---------------------------------------------------------------------------
2592 WLAN_HAL_DELETE_BSS_REQ
2593---------------------------------------------------------------------------*/
2594
2595typedef PACKED_PRE struct PACKED_POST
2596{
2597 /* BSS index to be deleted */
2598 tANI_U8 bssIdx;
2599
2600} tDeleteBssParams, *tpDeleteBssParams;
2601
2602typedef PACKED_PRE struct PACKED_POST
2603{
2604 tHalMsgHeader header;
2605 tDeleteBssParams deleteBssParams;
2606} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2607
2608/*---------------------------------------------------------------------------
2609 WLAN_HAL_DELETE_BSS_RSP
2610---------------------------------------------------------------------------*/
2611
2612typedef PACKED_PRE struct PACKED_POST
2613{
2614 /* Success or Failure */
2615 tANI_U32 status;
2616
2617 /* BSS index that has been deleted */
2618 tANI_U8 bssIdx;
2619
2620} tDeleteBssRspParams, *tpDeleteBssRspParams;
2621
2622typedef PACKED_PRE struct PACKED_POST
2623{
2624 tHalMsgHeader header;
2625 tDeleteBssRspParams deleteBssRspParams;
2626} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2627
2628/*---------------------------------------------------------------------------
2629 WLAN_HAL_JOIN_REQ
2630---------------------------------------------------------------------------*/
2631
2632typedef PACKED_PRE struct PACKED_POST
2633{
2634 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302635 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002636
2637 /*Indicates the channel to switch to.*/
2638 tANI_U8 ucChannel;
2639
2640 /* Self STA MAC */
2641 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302642
Jeff Johnson295189b2012-06-20 16:38:30 -07002643 /*Local power constraint*/
2644 tANI_U8 ucLocalPowerConstraint;
2645
2646 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002647 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002648
2649 /*link State*/
2650 tSirLinkState linkState;
2651
2652 /* Max TX power */
2653 tANI_S8 maxTxPower;
2654
2655} tHalJoinReqParams, *tpHalJoinReqParams;
2656
2657typedef PACKED_PRE struct PACKED_POST
2658{
2659 tHalMsgHeader header;
2660 tHalJoinReqParams joinReqParams;
2661} tHalJoinReqMsg, *tpHalJoinReqMsg;
2662
2663/*---------------------------------------------------------------------------
2664 WLAN_HAL_JOIN_RSP
2665---------------------------------------------------------------------------*/
2666
2667typedef PACKED_PRE struct PACKED_POST
2668{
2669 /*success or failure */
2670 tANI_U32 status;
2671
2672 /* HAL fills in the tx power used for mgmt frames in this field */
2673 tPowerdBm txMgmtPower;
2674
2675}tHalJoinRspParams, *tpHalJoinRspParams;
2676
2677typedef PACKED_PRE struct PACKED_POST
2678{
2679 tHalMsgHeader header;
2680 tHalJoinRspParams joinRspParams;
2681}tHalJoinRspMsg, *tpHalJoinRspMsg;
2682
2683/*---------------------------------------------------------------------------
2684 WLAN_HAL_POST_ASSOC_REQ
2685---------------------------------------------------------------------------*/
2686
2687typedef PACKED_PRE struct PACKED_POST
2688{
2689 tConfigStaParams configStaParams;
2690 tConfigBssParams configBssParams;
2691} tPostAssocReqParams, *tpPostAssocReqParams;
2692
2693typedef PACKED_PRE struct PACKED_POST
2694{
2695 tHalMsgHeader header;
2696 tPostAssocReqParams postAssocReqParams;
2697} tPostAssocReqMsg, *tpPostAssocReqMsg;
2698
2699/*---------------------------------------------------------------------------
2700 WLAN_HAL_POST_ASSOC_RSP
2701---------------------------------------------------------------------------*/
2702
2703typedef PACKED_PRE struct PACKED_POST
2704{
2705 tConfigStaRspParams configStaRspParams;
2706 tConfigBssRspParams configBssRspParams;
2707} tPostAssocRspParams, *tpPostAssocRspParams;
2708
2709typedef PACKED_PRE struct PACKED_POST
2710{
2711 tHalMsgHeader header;
2712 tPostAssocRspParams postAssocRspParams;
2713} tPostAssocRspMsg, *tpPostAssocRspMsg;
2714
2715/*---------------------------------------------------------------------------
2716 WLAN_HAL_SET_BSSKEY_REQ
2717---------------------------------------------------------------------------*/
2718
2719/*
2720 * This is used by PE to create a set of WEP keys for a given BSS.
2721 */
2722typedef PACKED_PRE struct PACKED_POST
2723{
2724 /*BSS Index of the BSS*/
2725 tANI_U8 bssIdx;
2726
2727 /*Encryption Type used with peer*/
2728 tAniEdType encType;
2729
2730 /*Number of keys*/
2731 tANI_U8 numKeys;
2732
2733 /*Array of keys.*/
2734 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302735
Jeff Johnson295189b2012-06-20 16:38:30 -07002736 /*Control for Replay Count, 1= Single TID based replay count on Tx
2737 0 = Per TID based replay count on TX */
2738 tANI_U8 singleTidRc;
2739} tSetBssKeyParams, *tpSetBssKeyParams;
2740
2741typedef PACKED_PRE struct PACKED_POST
2742{
2743 tHalMsgHeader header;
2744 tSetBssKeyParams setBssKeyParams;
2745} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2746
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002747/* tagged version of set bss key */
2748typedef PACKED_PRE struct PACKED_POST
2749{
2750 tSetBssKeyReqMsg Msg;
2751 uint32 Tag;
2752} tSetBssKeyReqMsgTagged;
2753
Jeff Johnson295189b2012-06-20 16:38:30 -07002754/*---------------------------------------------------------------------------
2755 WLAN_HAL_SET_BSSKEY_RSP
2756---------------------------------------------------------------------------*/
2757typedef PACKED_PRE struct PACKED_POST
2758{
2759 /*success or failure */
2760 tANI_U32 status;
2761
2762} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2763
2764typedef PACKED_PRE struct PACKED_POST
2765{
2766 tHalMsgHeader header;
2767 tSetBssKeyRspParams setBssKeyRspParams;
2768} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2769
2770/*---------------------------------------------------------------------------
2771 WLAN_HAL_SET_STAKEY_REQ,
2772---------------------------------------------------------------------------*/
2773
2774/*
2775 * This is used by PE to configure the key information on a given station.
2776 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2777 * a preconfigured key from a BSS the station assoicated with; otherwise
2778 * a new key descriptor is created based on the key field.
2779 */
2780
2781typedef PACKED_PRE struct PACKED_POST
2782{
2783 tHalMsgHeader header;
2784 tSetStaKeyParams setStaKeyParams;
2785} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2786
2787/*---------------------------------------------------------------------------
2788 WLAN_HAL_SET_STAKEY_RSP,
2789---------------------------------------------------------------------------*/
2790typedef PACKED_PRE struct PACKED_POST
2791{
2792 /*success or failure */
2793 tANI_U32 status;
2794
2795} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2796
2797typedef PACKED_PRE struct PACKED_POST
2798{
2799 tHalMsgHeader header;
2800 tSetStaKeyRspParams setStaKeyRspParams;
2801} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2802
2803/*---------------------------------------------------------------------------
2804 WLAN_HAL_RMV_BSSKEY_REQ,
2805---------------------------------------------------------------------------*/
2806/*
2807 * This is used by PE to remove keys for a given BSS.
2808 */
2809typedef PACKED_PRE struct PACKED_POST
2810
2811{
2812 /*BSS Index of the BSS*/
2813 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302814
Jeff Johnson295189b2012-06-20 16:38:30 -07002815 /*Encryption Type used with peer*/
2816 tAniEdType encType;
2817
2818 /*Key Id*/
2819 tANI_U8 keyId;
2820
2821 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2822 tAniWepType wepType;
2823
2824} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2825
2826typedef PACKED_PRE struct PACKED_POST
2827{
2828 tHalMsgHeader header;
2829 tRemoveBssKeyParams removeBssKeyParams;
2830} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2831
2832/*---------------------------------------------------------------------------
2833 WLAN_HAL_RMV_BSSKEY_RSP,
2834---------------------------------------------------------------------------*/
2835typedef PACKED_PRE struct PACKED_POST
2836{
2837 /*success or failure */
2838 tANI_U32 status;
2839
2840} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2841
2842typedef PACKED_PRE struct PACKED_POST
2843{
2844 tHalMsgHeader header;
2845 tRemoveBssKeyRspParams removeBssKeyRspParams;
2846} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2847
2848/*---------------------------------------------------------------------------
2849 WLAN_HAL_RMV_STAKEY_REQ,
2850---------------------------------------------------------------------------*/
2851/*
2852 * This is used by PE to Remove the key information on a given station.
2853 */
2854typedef PACKED_PRE struct PACKED_POST
2855{
2856 /*STA Index*/
2857 tANI_U16 staIdx;
2858
2859 /*Encryption Type used with peer*/
2860 tAniEdType encType;
2861
2862 /*Key Id*/
2863 tANI_U8 keyId;
2864
2865 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2866 the same key is used for both broadcast and unicast.*/
2867 tANI_BOOLEAN unicast;
2868
2869} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2870
2871typedef PACKED_PRE struct PACKED_POST
2872{
2873 tHalMsgHeader header;
2874 tRemoveStaKeyParams removeStaKeyParams;
2875} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2876
2877/*---------------------------------------------------------------------------
2878 WLAN_HAL_RMV_STAKEY_RSP,
2879---------------------------------------------------------------------------*/
2880typedef PACKED_PRE struct PACKED_POST
2881{
2882 /*success or failure */
2883 tANI_U32 status;
2884} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2885
2886typedef PACKED_PRE struct PACKED_POST
2887{
2888 tHalMsgHeader header;
2889 tRemoveStaKeyRspParams removeStaKeyRspParams;
2890} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2891
Jeff Johnsone7245742012-09-05 17:12:55 -07002892#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002893
Jeff Johnsone7245742012-09-05 17:12:55 -07002894#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002895#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002896#endif
2897
2898#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002899#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002900#endif
2901
2902/*-------------------------------------------------------------------------
2903WLAN_HAL_START_OEM_DATA_REQ
2904--------------------------------------------------------------------------*/
2905typedef PACKED_PRE struct PACKED_POST
2906{
2907 tANI_U32 status;
2908 tSirMacAddr selfMacAddr;
2909 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2910} tStartOemDataReqParams, *tpStartOemDataReqParams;
2911
2912typedef PACKED_PRE struct PACKED_POST
2913{
2914 tHalMsgHeader header;
2915 tStartOemDataReqParams startOemDataReqParams;
2916} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2917
2918/*-------------------------------------------------------------------------
2919WLAN_HAL_START_OEM_DATA_RSP
2920--------------------------------------------------------------------------*/
2921
2922typedef PACKED_PRE struct PACKED_POST
2923{
2924 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2925} tStartOemDataRspParams, *tpStartOemDataRspParams;
2926
2927typedef PACKED_PRE struct PACKED_POST
2928{
2929 tHalMsgHeader header;
2930 tStartOemDataRspParams startOemDataRspParams;
2931} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2932
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302933#ifndef NEW_OEM_DATA_REQ_SIZE
2934#define NEW_OEM_DATA_REQ_SIZE 292
2935#endif
2936
2937#ifndef NEW_OEM_DATA_RSP_SIZE
2938#define NEW_OEM_DATA_RSP_SIZE 2100
2939#endif
2940
2941/*-------------------------------------------------------------------------
2942WLAN_HAL_START_OEM_DATA_REQ_IND_NEW------------------------------------
2943--------------------------------------------------------------------------*/
2944typedef PACKED_PRE struct PACKED_POST
2945{
Padma, Santhosh Kumarb7f449f2016-01-11 18:55:44 +05302946 tSirMacAddr selfMacAddr;
2947 tANI_U8 reserved[2];
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302948 tANI_U8 oemDataReq[NEW_OEM_DATA_REQ_SIZE];
2949} tStartOemDataReqParamsNew, *tpStartOemDataReqParamsNew;
2950
2951typedef PACKED_PRE struct PACKED_POST
2952{
2953 tHalMsgHeader header;
2954 tStartOemDataReqParamsNew startOemDataReqParams;
2955} tStartOemDataReqMsgNew, *tpStartOemDataReqMsgNew;
2956
2957/*-------------------------------------------------------------------------
2958WLAN_HAL_START_OEM_DATA_RSP_IND_NEW------------------------------------
2959--------------------------------------------------------------------------*/
2960typedef PACKED_PRE struct PACKED_POST
2961{
2962 tANI_U8 oemDataRsp[NEW_OEM_DATA_RSP_SIZE];
2963} tStartOemDataRspParamsNew, *tpStartOemDataRspParamsNew;
2964
2965typedef PACKED_PRE struct PACKED_POST
2966{
2967 tHalMsgHeader header;
2968 tStartOemDataRspParamsNew startOemDataReqParams;
2969} tStartOemDataRspMsgNew, *tpStartOemDataRspMsgNew;
2970
Jeff Johnsone7245742012-09-05 17:12:55 -07002971#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002972
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002973/*---------------------------------------------------------------------------
2974WLAN_HAL_CH_SWITCH_V1_REQ
2975---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002976
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002977typedef PACKED_PRE struct PACKED_POST
2978{
2979 /* Channel number */
2980 tANI_U8 channelNumber;
2981
2982 /* Local power constraint */
2983 tANI_U8 localPowerConstraint;
2984
2985 /*Secondary channel offset */
2986 ePhyChanBondState secondaryChannelOffset;
2987
2988 //HAL fills in the tx power used for mgmt frames in this field.
2989 tPowerdBm txMgmtPower;
2990
2991 /* Max TX power */
2992 tPowerdBm maxTxPower;
2993
2994 /* Self STA MAC */
2995 tSirMacAddr selfStaMacAddr;
2996
2997 /*VO WIFI comment: BSSID needed to identify session. As the request has
2998 * power constraints, this should be applied only to that session
2999 * Since MTU timing and EDCA are sessionized, this struct needs to be
3000 * sessionized and bssid needs to be out of the VOWifi feature flag
3001 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07003002 * mantain backward compatbility
3003 * by way of ignoring if using new host/old FW or old host/new FW since
3004 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003005 */
3006 tSirMacAddr bssId;
3007
3008 /* Source of Channel Switch */
3009 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07003010
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003011} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
3012
3013typedef PACKED_PRE struct PACKED_POST
3014{
3015 tHalMsgHeader header;
3016 tSwitchChannelParams_V1 switchChannelParams_V1;
3017} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
3018
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003019/*---------------------------------------------------------------------------
3020WLAN_HAL_CH_SWITCH_V1_RSP
3021---------------------------------------------------------------------------*/
3022
3023typedef PACKED_PRE struct PACKED_POST
3024{
3025 /* Status */
3026 tANI_U32 status;
3027
3028 /* Channel number - same as in request*/
3029 tANI_U8 channelNumber;
3030
3031 /* HAL fills in the tx power used for mgmt frames in this field */
3032 tPowerdBm txMgmtPower;
3033
3034 /* BSSID needed to identify session - same as in request*/
3035 tSirMacAddr bssId;
3036
3037 /* Source of Channel Switch */
3038 eHalChanSwitchSource channelSwitchSrc;
3039
3040} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
3041
3042typedef PACKED_PRE struct PACKED_POST
3043{
3044 tHalMsgHeader header;
3045 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
3046} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07003047
3048/*---------------------------------------------------------------------------
3049WLAN_HAL_CH_SWITCH_REQ
3050---------------------------------------------------------------------------*/
3051
3052typedef PACKED_PRE struct PACKED_POST
3053{
3054 /* Channel number */
3055 tANI_U8 channelNumber;
3056
3057 /* Local power constraint */
3058 tANI_U8 localPowerConstraint;
3059
3060 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07003061 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003062
3063 //HAL fills in the tx power used for mgmt frames in this field.
3064 tPowerdBm txMgmtPower;
3065
3066 /* Max TX power */
3067 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05303068
Jeff Johnson295189b2012-06-20 16:38:30 -07003069 /* Self STA MAC */
3070 tSirMacAddr selfStaMacAddr;
3071
3072 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
3073 this should be applied only to that session*/
3074 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
3075 * bssid needs to be out of the VOWifi feature flag */
3076 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
3077 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
3078 */
3079 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303080
Jeff Johnson295189b2012-06-20 16:38:30 -07003081}tSwitchChannelParams, *tpSwitchChannelParams;
3082
3083typedef PACKED_PRE struct PACKED_POST
3084{
3085 tHalMsgHeader header;
3086 tSwitchChannelParams switchChannelParams;
3087} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
3088
3089/*---------------------------------------------------------------------------
3090WLAN_HAL_CH_SWITCH_RSP
3091---------------------------------------------------------------------------*/
3092
3093typedef PACKED_PRE struct PACKED_POST
3094{
3095 /* Status */
3096 tANI_U32 status;
3097
3098 /* Channel number - same as in request*/
3099 tANI_U8 channelNumber;
3100
3101 /* HAL fills in the tx power used for mgmt frames in this field */
3102 tPowerdBm txMgmtPower;
3103
3104 /* BSSID needed to identify session - same as in request*/
3105 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303106
Jeff Johnson295189b2012-06-20 16:38:30 -07003107}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3108
3109typedef PACKED_PRE struct PACKED_POST
3110{
3111 tHalMsgHeader header;
3112 tSwitchChannelRspParams switchChannelRspParams;
3113} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3114
3115/*---------------------------------------------------------------------------
3116WLAN_HAL_UPD_EDCA_PARAMS_REQ
3117---------------------------------------------------------------------------*/
3118
3119typedef PACKED_PRE struct PACKED_POST
3120{
3121 /*BSS Index*/
3122 tANI_U16 bssIdx;
3123
3124 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303125 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003126
3127 /* Background */
3128 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303129
Jeff Johnson295189b2012-06-20 16:38:30 -07003130 /* Video */
3131 tSirMacEdcaParamRecord acvi;
3132
3133 /* Voice */
3134 tSirMacEdcaParamRecord acvo;
3135
3136} tEdcaParams, *tpEdcaParams;
3137
3138typedef PACKED_PRE struct PACKED_POST
3139{
3140 tHalMsgHeader header;
3141 tEdcaParams edcaParams;
3142} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3143
3144/*---------------------------------------------------------------------------
3145WLAN_HAL_UPD_EDCA_PARAMS_RSP
3146---------------------------------------------------------------------------*/
3147typedef PACKED_PRE struct PACKED_POST
3148{
3149 /*success or failure */
3150 tANI_U32 status;
3151} tEdcaRspParams, *tpEdcaRspParams;
3152
3153typedef PACKED_PRE struct PACKED_POST
3154{
3155 tHalMsgHeader header;
3156 tEdcaRspParams edcaRspParams;
3157} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3158
3159
3160
3161/*---------------------------------------------------------------------------
3162 * WLAN_HAL_GET_STATS_REQ
3163 *--------------------------------------------------------------------------*/
3164typedef PACKED_PRE struct PACKED_POST
3165
3166{
3167 /* Index of STA to which the statistics */
3168 tANI_U16 staIdx;
3169
3170 /* Encryption mode */
3171 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303172
Jeff Johnson295189b2012-06-20 16:38:30 -07003173 /* status */
3174 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303175
Jeff Johnson295189b2012-06-20 16:38:30 -07003176 /* Statistics */
3177 tANI_U32 sendBlocks;
3178 tANI_U32 recvBlocks;
3179 tANI_U32 replays;
3180 tANI_U8 micErrorCnt;
3181 tANI_U32 protExclCnt;
3182 tANI_U16 formatErrCnt;
3183 tANI_U16 unDecryptableCnt;
3184 tANI_U32 decryptErrCnt;
3185 tANI_U32 decryptOkCnt;
3186} tDpuStatsParams, * tpDpuStatsParams;
3187
3188typedef PACKED_PRE struct PACKED_POST
3189{
3190 /* Valid STA Idx for per STA stats request */
3191 tANI_U32 staId;
3192
3193 /* Categories of stats requested as specified in eHalStatsMask*/
3194 tANI_U32 statsMask;
3195}tHalStatsReqParams, *tpHalStatsReqParams;
3196
3197typedef PACKED_PRE struct PACKED_POST
3198{
3199 tHalMsgHeader header;
3200 tHalStatsReqParams statsReqParams;
3201} tHalStatsReqMsg, *tpHalStatsReqMsg;
3202
3203/*---------------------------------------------------------------------------
3204 * WLAN_HAL_GET_STATS_RSP
3205 *--------------------------------------------------------------------------*/
3206
3207typedef PACKED_PRE struct PACKED_POST
3208{
3209 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3210 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3211 // station successfully transmitted after more than one retransmission attempt
3212
Dino Mycle8afbac12014-07-04 22:06:17 +05303213 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3214 //(with and without retries, including multi-cast, broadcast)
3215 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3216 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003217 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3218 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3219 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3220 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 +05303221 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3222 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 -07003223 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3224 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 +05303225 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3226 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003227 //to provide this.
3228}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3229
3230
3231// defines tx_rate_flags
3232typedef enum eTxRateInfo
3233{
3234 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3235 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3236 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3237 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003238 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3239 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3240 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3241 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3242 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3243 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3244} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003245
3246
3247typedef PACKED_PRE struct PACKED_POST
3248{
Dino Mycle8afbac12014-07-04 22:06:17 +05303249 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 -07003250 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303251 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 -07003252 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303253 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3254 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003255 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303256 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3257 //for eg: if it is 10.5dBm, the value would be 105
3258 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3259 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003260
Dino Mycle8afbac12014-07-04 22:06:17 +05303261 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3262 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003263 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303264 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3265 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003266}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3267
3268typedef PACKED_PRE struct PACKED_POST
3269{
Dino Mycle8afbac12014-07-04 22:06:17 +05303270 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3271 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003272 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303273 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 -07003274 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303275 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 -07003276 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303277 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 -07003278 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303279 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 -07003280 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303281 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 -07003282 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303283 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 -07003284 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303285 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 -07003286 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303287 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 -07003288 //decrypted
3289 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3290
3291}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303292
Jeff Johnson295189b2012-06-20 16:38:30 -07003293typedef PACKED_PRE struct PACKED_POST
3294{
3295 tAniGlobalSecurityStats ucStats;
3296 tAniGlobalSecurityStats mcbcStats;
3297}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3298
3299typedef PACKED_PRE struct PACKED_POST
3300{
Dino Mycle8afbac12014-07-04 22:06:17 +05303301 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3302 //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 -07003303 //address 1 field
3304 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 +05303305 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 -07003306 //primary channel
3307 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 +05303308 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 -07003309 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303310 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3311 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003312 //decoded correctly
3313}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3314
3315typedef PACKED_PRE struct PACKED_POST
3316{
Dino Mycle8afbac12014-07-04 22:06:17 +05303317 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 -07003318 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303319 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3320 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 -07003321 //is transmitted
3322}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3323
Sushant Kaushik33200572015-08-05 16:46:20 +05303324// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3325typedef PACKED_PRE struct PACKED_POST
3326{
3327 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303328 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303329 tANI_U32 reserved;
3330 tANI_U32 reserved1;
3331}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3332
Jeff Johnson295189b2012-06-20 16:38:30 -07003333typedef PACKED_PRE struct PACKED_POST
3334{
3335 /* Success or Failure */
3336 tANI_U32 status;
3337
3338 /* STA Idx */
3339 tANI_U32 staId;
3340
3341 /* Categories of STATS being returned as per eHalStatsMask*/
3342 tANI_U32 statsMask;
3343
3344 /* message type is same as the request type */
3345 tANI_U16 msgType;
3346
3347 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303348 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003349
3350} tHalStatsRspParams, *tpHalStatsRspParams;
3351
3352
3353
3354typedef PACKED_PRE struct PACKED_POST
3355{
3356 tHalMsgHeader header;
3357 tHalStatsRspParams statsRspParams;
3358} tHalStatsRspMsg, *tpHalStatsRspMsg;
3359
Abhishek Singhbc310882015-05-22 15:17:02 +05303360 /*---------------------------------------------------------------------------
3361 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3362 *---------------------------------------------------------------------------*/
3363typedef PACKED_PRE struct PACKED_POST
3364{
3365 tANI_U32 rtsCtsValue;
3366}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3367
3368typedef PACKED_PRE struct PACKED_POST
3369{
3370 tHalMsgHeader header;
3371 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3372} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3373
Jeff Johnson295189b2012-06-20 16:38:30 -07003374/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303375 * WLAN_HAL_FW_STATS_REQ
3376 *---------------------------------------------------------------------------*/
3377 typedef PACKED_PRE struct PACKED_POST
3378{
3379 tANI_U32 type;
3380}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3381
3382typedef PACKED_PRE struct PACKED_POST
3383{
3384 tHalMsgHeader header;
3385 tHalfwStatsReqParams fwstatsReqParams;
3386} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3387
3388/*---------------------------------------------------------------------------
3389 * WLAN_HAL_FW_STATS_RSP
3390 *---------------------------------------------------------------------------*/
3391 typedef PACKED_PRE struct PACKED_POST
3392{
3393 tANI_U32 type;
3394 tANI_U32 length;
3395 tANI_U8 data[1];
3396
3397}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3398
3399typedef PACKED_PRE struct PACKED_POST
3400{
3401 tHalMsgHeader header;
3402 tHalfwStatsRspParams fwstatsRspParams;
3403} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3404
3405typedef enum
3406{
3407 FW_UBSP_STATS = 1,
3408} fwstatstype;
3409
3410
3411/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003412 * WLAN_HAL_SET_LINK_ST_REQ
3413 *--------------------------------------------------------------------------*/
3414typedef PACKED_PRE struct PACKED_POST
3415{
3416 tSirMacAddr bssid;
3417 tSirLinkState state;
3418 tSirMacAddr selfMacAddr;
3419} tLinkStateParams, *tpLinkStateParams;
3420
3421typedef PACKED_PRE struct PACKED_POST
3422{
3423 tHalMsgHeader header;
3424 tLinkStateParams linkStateParams;
3425} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3426
3427/*---------------------------------------------------------------------------
3428 * WLAN_HAL_SET_LINK_ST_RSP
3429 *--------------------------------------------------------------------------*/
3430
3431typedef PACKED_PRE struct PACKED_POST
3432{
3433 /*success or failure */
3434 tANI_U32 status;
3435} tLinkStateRspParams, *tpLinkStateRspParams;
3436
3437typedef PACKED_PRE struct PACKED_POST
3438{
3439 tHalMsgHeader header;
3440 tLinkStateRspParams linkStateRspParams;
3441} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3442
3443/*---------------------------------------------------------------------------
3444 * WLAN_HAL_ADD_TS_REQ
3445 *--------------------------------------------------------------------------*/
3446
3447/* TSPEC Params */
3448typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3449{
Jeff Johnson295189b2012-06-20 16:38:30 -07003450 tANI_U16 trafficType : 1;
3451 tANI_U16 tsid : 4;
3452 tANI_U16 direction : 2;
3453 tANI_U16 accessPolicy : 2;
3454 tANI_U16 aggregation : 1;
3455 tANI_U16 psb : 1;
3456 tANI_U16 userPrio : 3;
3457 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003458} __ani_attr_packed tSirMacTSInfoTfc;
3459
3460/* Flag to schedule the traffic type */
3461typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3462{
Jeff Johnson295189b2012-06-20 16:38:30 -07003463 tANI_U8 schedule : 1;
3464 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003465} __ani_attr_packed tSirMacTSInfoSch;
3466
3467/* Traffic and scheduling info */
3468typedef __ani_attr_pre_packed struct sSirMacTSInfo
3469{
3470 tSirMacTSInfoTfc traffic;
3471 tSirMacTSInfoSch schedule;
3472} __ani_attr_packed tSirMacTSInfo;
3473
3474/* Information elements */
3475typedef __ani_attr_pre_packed struct sSirMacTspecIE
3476{
3477 tANI_U8 type;
3478 tANI_U8 length;
3479 tSirMacTSInfo tsinfo;
3480 tANI_U16 nomMsduSz;
3481 tANI_U16 maxMsduSz;
3482 tANI_U32 minSvcInterval;
3483 tANI_U32 maxSvcInterval;
3484 tANI_U32 inactInterval;
3485 tANI_U32 suspendInterval;
3486 tANI_U32 svcStartTime;
3487 tANI_U32 minDataRate;
3488 tANI_U32 meanDataRate;
3489 tANI_U32 peakDataRate;
3490 tANI_U32 maxBurstSz;
3491 tANI_U32 delayBound;
3492 tANI_U32 minPhyRate;
3493 tANI_U16 surplusBw;
3494 tANI_U16 mediumTime;
3495}__ani_attr_packed tSirMacTspecIE;
3496
3497typedef PACKED_PRE struct PACKED_POST
3498{
3499 /* Station Index */
3500 tANI_U16 staIdx;
3501
3502 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3503 tANI_U16 tspecIdx;
3504
3505 /* To program TPE with required parameters */
3506 tSirMacTspecIE tspec;
3507
3508 /* U-APSD Flags: 1b per AC. Encoded as follows:
3509 b7 b6 b5 b4 b3 b2 b1 b0 =
3510 X X X X BE BK VI VO */
3511 tANI_U8 uAPSD;
3512
3513 /* These parameters are for all the access categories */
3514 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3515 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3516 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303517
Jeff Johnson295189b2012-06-20 16:38:30 -07003518} tAddTsParams, *tpAddTsParams;
3519
3520typedef PACKED_PRE struct PACKED_POST
3521{
3522 tHalMsgHeader header;
3523 tAddTsParams addTsParams;
3524} tAddTsReqMsg, *tpAddTsReqMsg;
3525
3526/*---------------------------------------------------------------------------
3527 * WLAN_HAL_ADD_TS_RSP
3528 *--------------------------------------------------------------------------*/
3529
3530typedef PACKED_PRE struct PACKED_POST
3531{
3532 /*success or failure */
3533 tANI_U32 status;
3534} tAddTsRspParams, *tpAddTsRspParams;
3535
3536typedef PACKED_PRE struct PACKED_POST
3537{
3538 tHalMsgHeader header;
3539 tAddTsRspParams addTsRspParams;
3540} tAddTsRspMsg, *tpAddTsRspMsg;
3541
3542
3543/*---------------------------------------------------------------------------
3544 * WLAN_HAL_DEL_TS_REQ
3545 *--------------------------------------------------------------------------*/
3546
3547typedef PACKED_PRE struct PACKED_POST
3548{
3549 /* Station Index */
3550 tANI_U16 staIdx;
3551
3552 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3553 tANI_U16 tspecIdx;
3554
3555 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303556 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003557
3558} tDelTsParams, *tpDelTsParams;
3559
3560typedef PACKED_PRE struct PACKED_POST
3561{
3562 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303563 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003564} tDelTsReqMsg, *tpDelTsReqMsg;
3565
3566/*---------------------------------------------------------------------------
3567 * WLAN_HAL_DEL_TS_RSP
3568 *--------------------------------------------------------------------------*/
3569
3570typedef PACKED_PRE struct PACKED_POST
3571{
3572 /*success or failure */
3573 tANI_U32 status;
3574} tDelTsRspParams, *tpDelTsRspParams;
3575
3576typedef PACKED_PRE struct PACKED_POST
3577{
3578 tHalMsgHeader header;
3579 tDelTsRspParams delTsRspParams;
3580} tDelTsRspMsg, *tpDelTsRspMsg;
3581
3582/* End of TSpec Parameters */
3583
3584/* Start of BLOCK ACK related Parameters */
3585
3586/*---------------------------------------------------------------------------
3587 * WLAN_HAL_ADD_BA_SESSION_REQ
3588 *--------------------------------------------------------------------------*/
3589
3590typedef PACKED_PRE struct PACKED_POST
3591{
3592 /* Station Index */
3593 tANI_U16 staIdx;
3594
3595 /* Peer MAC Address */
3596 tSirMacAddr peerMacAddr;
3597
3598 /* ADDBA Action Frame dialog token
3599 HAL will not interpret this object */
3600 tANI_U8 baDialogToken;
3601
3602 /* TID for which the BA is being setup
3603 This identifies the TC or TS of interest */
3604 tANI_U8 baTID;
3605
3606 /* 0 - Delayed BA (Not supported)
3607 1 - Immediate BA */
3608 tANI_U8 baPolicy;
3609
3610 /* Indicates the number of buffers for this TID (baTID)
3611 NOTE - This is the requested buffer size. When this
3612 is processed by HAL and subsequently by HDD, it is
3613 possible that HDD may change this buffer size. Any
3614 change in the buffer size should be noted by PE and
3615 advertized appropriately in the ADDBA response */
3616 tANI_U16 baBufferSize;
3617
3618 /* BA timeout in TU's 0 means no timeout will occur */
3619 tANI_U16 baTimeout;
3620
3621 /* b0..b3 - Fragment Number - Always set to 0
3622 b4..b15 - Starting Sequence Number of first MSDU
3623 for which this BA is setup */
3624 tANI_U16 baSSN;
3625
3626 /* ADDBA direction
3627 1 - Originator
3628 0 - Recipient */
3629 tANI_U8 baDirection;
3630} tAddBASessionParams, *tpAddBASessionParams;
3631
3632typedef PACKED_PRE struct PACKED_POST
3633{
3634 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303635 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003636}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3637
3638/*---------------------------------------------------------------------------
3639 * WLAN_HAL_ADD_BA_SESSION_RSP
3640 *--------------------------------------------------------------------------*/
3641
3642typedef PACKED_PRE struct PACKED_POST
3643{
3644 /*success or failure */
3645 tANI_U32 status;
3646
3647 /* Dialog token */
3648 tANI_U8 baDialogToken;
3649
3650 /* TID for which the BA session has been setup */
3651 tANI_U8 baTID;
3652
3653 /* BA Buffer Size allocated for the current BA session */
3654 tANI_U8 baBufferSize;
3655
3656 tANI_U8 baSessionID;
3657
3658 /* Reordering Window buffer */
3659 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303660
Jeff Johnson295189b2012-06-20 16:38:30 -07003661 /*Station Index to id the sta */
3662 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303663
Jeff Johnson295189b2012-06-20 16:38:30 -07003664 /* Starting Sequence Number */
3665 tANI_U16 SSN;
3666} tAddBASessionRspParams, *tpAddBASessionRspParams;
3667
3668typedef PACKED_PRE struct PACKED_POST
3669{
3670 tHalMsgHeader header;
3671 tAddBASessionRspParams addBASessionRspParams;
3672} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3673
3674/*---------------------------------------------------------------------------
3675 * WLAN_HAL_ADD_BA_REQ
3676 *--------------------------------------------------------------------------*/
3677
3678typedef PACKED_PRE struct PACKED_POST
3679{
3680 /* Session Id */
3681 tANI_U8 baSessionID;
3682
3683 /* Reorder Window Size */
3684 tANI_U8 winSize;
3685
3686#ifdef FEATURE_ON_CHIP_REORDERING
3687 tANI_BOOLEAN isReorderingDoneOnChip;
3688#endif
3689} tAddBAParams, *tpAddBAParams;
3690
3691typedef PACKED_PRE struct PACKED_POST
3692{
3693 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303694 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003695} tAddBAReqMsg, *tpAddBAReqMsg;
3696
3697
3698/*---------------------------------------------------------------------------
3699 * WLAN_HAL_ADD_BA_RSP
3700 *--------------------------------------------------------------------------*/
3701
3702typedef PACKED_PRE struct PACKED_POST
3703{
3704 /*success or failure */
3705 tANI_U32 status;
3706
3707 /* Dialog token */
3708 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303709
Jeff Johnson295189b2012-06-20 16:38:30 -07003710} tAddBARspParams, *tpAddBARspParams;
3711
3712typedef PACKED_PRE struct PACKED_POST
3713{
3714 tHalMsgHeader header;
3715 tAddBARspParams addBARspParams;
3716} tAddBARspMsg, *tpAddBARspMsg;
3717
3718
3719/*---------------------------------------------------------------------------
3720 * WLAN_HAL_TRIGGER_BA_REQ
3721 *--------------------------------------------------------------------------*/
3722
3723
3724typedef struct sAddBaInfo
3725{
3726 tANI_U16 fBaEnable : 1;
3727 tANI_U16 startingSeqNum: 12;
3728 tANI_U16 reserved : 3;
3729}tAddBaInfo, *tpAddBaInfo;
3730
3731typedef struct sTriggerBaRspCandidate
3732{
3733 tSirMacAddr staAddr;
3734 tAddBaInfo baInfo[STACFG_MAX_TC];
3735}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3736
3737typedef struct sTriggerBaCandidate
3738{
3739 tANI_U8 staIdx;
3740 tANI_U8 tidBitmap;
3741}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3742
3743typedef PACKED_PRE struct PACKED_POST
3744{
3745 /* Session Id */
3746 tANI_U8 baSessionID;
3747
Dino Mycle8afbac12014-07-04 22:06:17 +05303748 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003749 * Candidate List(tTriggerBaCandidate)
3750 */
3751 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303752
Jeff Johnson295189b2012-06-20 16:38:30 -07003753} tTriggerBAParams, *tpTriggerBAParams;
3754
3755typedef PACKED_PRE struct PACKED_POST
3756{
3757 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303758 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003759} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3760
3761
3762/*---------------------------------------------------------------------------
3763 * WLAN_HAL_TRIGGER_BA_RSP
3764 *--------------------------------------------------------------------------*/
3765
3766typedef PACKED_PRE struct PACKED_POST
3767{
Dino Mycle8afbac12014-07-04 22:06:17 +05303768
Jeff Johnson295189b2012-06-20 16:38:30 -07003769 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303770 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003771
3772 /* success or failure */
3773 tANI_U32 status;
3774
Dino Mycle8afbac12014-07-04 22:06:17 +05303775 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003776 * Rsp Candidate List(tTriggerRspBaCandidate)
3777 */
3778 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303779
Jeff Johnson295189b2012-06-20 16:38:30 -07003780
3781} tTriggerBARspParams, *tpTriggerBARspParams;
3782
3783typedef PACKED_PRE struct PACKED_POST
3784{
3785 tHalMsgHeader header;
3786 tTriggerBARspParams triggerBARspParams;
3787} tTriggerBARspMsg, *tpTriggerBARspMsg;
3788
3789/*---------------------------------------------------------------------------
3790 * WLAN_HAL_DEL_BA_REQ
3791 *--------------------------------------------------------------------------*/
3792
3793typedef PACKED_PRE struct PACKED_POST
3794{
3795 /* Station Index */
3796 tANI_U16 staIdx;
3797
3798 /* TID for which the BA session is being deleted */
3799 tANI_U8 baTID;
3800
3801 /* DELBA direction
3802 1 - Originator
3803 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303804 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003805} tDelBAParams, *tpDelBAParams;
3806
3807typedef PACKED_PRE struct PACKED_POST
3808{
3809 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303810 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003811} tDelBAReqMsg, *tpDelBAReqMsg;
3812
3813/*---------------------------------------------------------------------------
3814 * WLAN_HAL_DEL_BA_RSP
3815 *--------------------------------------------------------------------------*/
3816
3817typedef PACKED_PRE struct PACKED_POST
3818{
3819 /* success or failure */
3820 tANI_U32 status;
3821} tDelBARspParams, *tpDelBARspParams;
3822
3823typedef PACKED_PRE struct PACKED_POST
3824{
3825 tHalMsgHeader header;
3826 tDelBARspParams delBARspParams;
3827} tDelBARspMsg, *tpDelBARspMsg;
3828
3829
Jeff Johnson295189b2012-06-20 16:38:30 -07003830/*---------------------------------------------------------------------------
3831 * WLAN_HAL_TSM_STATS_REQ
3832 *--------------------------------------------------------------------------*/
3833typedef PACKED_PRE struct PACKED_POST
3834{
3835 /* Traffic Id */
3836 tANI_U8 tsmTID;
3837
3838 tSirMacAddr bssId;
3839} tTsmStatsParams, *tpTsmStatsParams;
3840
3841typedef PACKED_PRE struct PACKED_POST
3842{
3843 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303844 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003845} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3846
3847
3848/*---------------------------------------------------------------------------
3849 * WLAN_HAL_TSM_STATS_RSP
3850 *--------------------------------------------------------------------------*/
3851typedef PACKED_PRE struct PACKED_POST
3852{
3853 /*success or failure */
3854 tANI_U32 status;
3855
Dino Mycle8afbac12014-07-04 22:06:17 +05303856 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003857 tANI_U16 UplinkPktQueueDly;
3858
Dino Mycle8afbac12014-07-04 22:06:17 +05303859 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003860 tANI_U16 UplinkPktQueueDlyHist[4];
3861
Dino Mycle8afbac12014-07-04 22:06:17 +05303862 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003863 tANI_U32 UplinkPktTxDly;
3864
Dino Mycle8afbac12014-07-04 22:06:17 +05303865 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003866 tANI_U16 UplinkPktLoss;
3867
Dino Mycle8afbac12014-07-04 22:06:17 +05303868 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003869 tANI_U16 UplinkPktCount;
3870
Dino Mycle8afbac12014-07-04 22:06:17 +05303871 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003872 tANI_U8 RoamingCount;
3873
Dino Mycle8afbac12014-07-04 22:06:17 +05303874 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003875 tANI_U16 RoamingDly;
3876} tTsmStatsRspParams, *tpTsmStatsRspParams;
3877
3878typedef PACKED_PRE struct PACKED_POST
3879{
3880 tHalMsgHeader header;
3881 tTsmStatsRspParams tsmStatsRspParams;
3882} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3883
3884
Jeff Johnson295189b2012-06-20 16:38:30 -07003885/*---------------------------------------------------------------------------
3886 * WLAN_HAL_SET_KEYDONE_MSG
3887 *--------------------------------------------------------------------------*/
3888
3889typedef PACKED_PRE struct PACKED_POST
3890{
3891 /*bssid of the keys */
3892 tANI_U8 bssidx;
3893 tANI_U8 encType;
3894} tSetKeyDoneParams, *tpSetKeyDoneParams;
3895
3896typedef PACKED_PRE struct PACKED_POST
3897{
3898 tHalMsgHeader header;
3899 tSetKeyDoneParams setKeyDoneParams;
3900} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3901
3902/*---------------------------------------------------------------------------
3903 * WLAN_HAL_DOWNLOAD_NV_REQ
3904 *--------------------------------------------------------------------------*/
3905typedef PACKED_PRE struct PACKED_POST
3906{
3907 /* Fragment sequence number of the NV Image. Note that NV Image might not
3908 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303909 * can hence choose to chop the NV blob into multiple fragments starting with
3910 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003911 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3912 * concatenated together by HAL without any padding bytes in between.*/
3913 tANI_U16 fragNumber;
3914
3915 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303916 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003917 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3918 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3919 tANI_U16 isLastFragment;
3920
3921 /* NV Image size (number of bytes) */
3922 tANI_U32 nvImgBufferSize;
3923
3924 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3925 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3926} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3927
3928typedef PACKED_PRE struct PACKED_POST
3929{
3930 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3931 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3932 tHalMsgHeader header;
3933 tHalNvImgDownloadReqParams nvImageReqParams;
3934} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3935
3936/*---------------------------------------------------------------------------
3937 * WLAN_HAL_DOWNLOAD_NV_RSP
3938 *--------------------------------------------------------------------------*/
3939typedef PACKED_PRE struct PACKED_POST
3940{
3941 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3942 * after each fragment */
3943 tANI_U32 status;
3944} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3945
3946typedef PACKED_PRE struct PACKED_POST
3947{
3948 tHalMsgHeader header;
3949 tHalNvImgDownloadRspParams nvImageRspParams;
3950} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3951
3952/*---------------------------------------------------------------------------
3953 * WLAN_HAL_STORE_NV_IND
3954 *--------------------------------------------------------------------------*/
3955typedef PACKED_PRE struct PACKED_POST
3956{
3957 /* NV Item */
3958 eNvTable tableID;
3959
3960 /* Size of NV Blob */
3961 tANI_U32 nvBlobSize;
3962
Dino Mycle8afbac12014-07-04 22:06:17 +05303963 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003964 * NV blob i.e. uint8[nvBlobSize] */
3965} tHalNvStoreParams, *tpHalNvStoreParams;
3966
3967typedef PACKED_PRE struct PACKED_POST
3968{
3969 /* Note: The length specified in tHalNvStoreInd messages should be
3970 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3971 tHalMsgHeader header;
3972 tHalNvStoreParams nvStoreParams;
3973} tHalNvStoreInd, *tpHalNvStoreInd;
3974
3975/* End of Block Ack Related Parameters */
3976
3977/*---------------------------------------------------------------------------
3978 * WLAN_HAL_MIC_FAILURE_IND
3979 *--------------------------------------------------------------------------*/
3980
3981#define SIR_CIPHER_SEQ_CTR_SIZE 6
3982
3983typedef PACKED_PRE struct PACKED_POST
3984{
Dino Mycle8afbac12014-07-04 22:06:17 +05303985 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003986 tSirMacAddr taMacAddr; //transmitter address
3987 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303988 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003989 tANI_U8 IV1; // first byte of IV
3990 tANI_U8 keyId; // second byte of IV
3991 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3992 tSirMacAddr rxMacAddr; // receive address
3993} tSirMicFailureInfo, *tpSirMicFailureInfo;
3994
3995/* Definition for MIC failure indication
3996 MAC reports this each time a MIC failure occures on Rx TKIP packet
3997 */
3998typedef PACKED_PRE struct PACKED_POST
3999{
4000 tSirMacAddr bssId; // BSSID
4001 tSirMicFailureInfo info;
4002} tSirMicFailureInd, *tpSirMicFailureInd;
4003
4004typedef PACKED_PRE struct PACKED_POST
4005{
4006 tHalMsgHeader header;
4007 tSirMicFailureInd micFailureInd;
4008} tMicFailureIndMsg, *tpMicFailureIndMsg;
4009
Mohit Khanna4a70d262012-09-11 16:30:12 -07004010typedef PACKED_PRE struct PACKED_POST
4011{
4012 tANI_U16 opMode;
4013 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05304014}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07004015
4016typedef PACKED_PRE struct PACKED_POST
4017{
4018 tHalMsgHeader header;
4019 tUpdateVHTOpMode updateVhtOpMode;
4020} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
4021
4022typedef PACKED_PRE struct PACKED_POST
4023{
4024 tANI_U32 status;
4025} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
4026
4027typedef PACKED_PRE struct PACKED_POST
4028{
4029 tHalMsgHeader header;
4030 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
4031} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
4032
Jeff Johnson295189b2012-06-20 16:38:30 -07004033/*---------------------------------------------------------------------------
4034 * WLAN_HAL_UPDATE_BEACON_REQ
4035 *--------------------------------------------------------------------------*/
4036typedef PACKED_PRE struct PACKED_POST
4037{
4038
4039 tANI_U8 bssIdx;
4040
4041 //shortPreamble mode. HAL should update all the STA rates when it
4042 //receives this message
4043 tANI_U8 fShortPreamble;
4044 //short Slot time.
4045 tANI_U8 fShortSlotTime;
4046 //Beacon Interval
4047 tANI_U16 beaconInterval;
4048 //Protection related
4049 tANI_U8 llaCoexist;
4050 tANI_U8 llbCoexist;
4051 tANI_U8 llgCoexist;
4052 tANI_U8 ht20MhzCoexist;
4053 tANI_U8 llnNonGFCoexist;
4054 tANI_U8 fLsigTXOPProtectionFullSupport;
4055 tANI_U8 fRIFSMode;
4056
4057 tANI_U16 paramChangeBitmap;
4058}tUpdateBeaconParams, *tpUpdateBeaconParams;
4059
4060
4061typedef PACKED_PRE struct PACKED_POST
4062{
4063 tHalMsgHeader header;
4064 tUpdateBeaconParams updateBeaconParam;
4065} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
4066
4067/*---------------------------------------------------------------------------
4068 * WLAN_HAL_UPDATE_BEACON_RSP
4069 *--------------------------------------------------------------------------*/
4070typedef PACKED_PRE struct PACKED_POST
4071{
4072 tANI_U32 status;
4073} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
4074
4075typedef PACKED_PRE struct PACKED_POST
4076{
4077 tHalMsgHeader header;
4078 tUpdateBeaconRspParams updateBeaconRspParam;
4079} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
4080
4081/*---------------------------------------------------------------------------
4082 * WLAN_HAL_SEND_BEACON_REQ
4083 *--------------------------------------------------------------------------*/
4084typedef PACKED_PRE struct PACKED_POST
4085{
4086 tANI_U32 beaconLength; //length of the template.
4087 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
4088 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004089 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07004090 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
4091}tSendBeaconParams, *tpSendBeaconParams;
4092
4093
4094typedef PACKED_PRE struct PACKED_POST
4095{
4096 tHalMsgHeader header;
4097 tSendBeaconParams sendBeaconParam;
4098}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4099
4100/*---------------------------------------------------------------------------
4101 * WLAN_HAL_SEND_BEACON_RSP
4102 *--------------------------------------------------------------------------*/
4103typedef PACKED_PRE struct PACKED_POST
4104{
4105 tANI_U32 status;
4106} tSendBeaconRspParams, *tpSendBeaconRspParams;
4107
4108typedef PACKED_PRE struct PACKED_POST
4109{
4110 tHalMsgHeader header;
4111 tSendBeaconRspParams sendBeaconRspParam;
4112} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4113
4114#ifdef FEATURE_5GHZ_BAND
4115
4116/*---------------------------------------------------------------------------
4117 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4118 *--------------------------------------------------------------------------*/
4119typedef PACKED_PRE struct PACKED_POST
4120{
4121 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304122 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004123}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4124
4125
4126typedef PACKED_PRE struct PACKED_POST
4127{
4128 /* Link Parameters */
4129 tSirEnableRadarInfoType EnableRadarInfo;
4130}tEnableRadarReqParams, *tpEnableRadarReqParams;
4131
4132typedef PACKED_PRE struct PACKED_POST
4133{
4134 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304135 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004136}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4137
4138/*---------------------------------------------------------------------------
4139 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4140 *--------------------------------------------------------------------------*/
4141
4142typedef PACKED_PRE struct PACKED_POST
4143{
4144 /* Link Parameters */
4145 tSirMacAddr BSSID;
4146 /* success or failure */
4147 tANI_U32 status;
4148}tEnableRadarRspParams, *tpEnableRadarRspParams;
4149
4150typedef PACKED_PRE struct PACKED_POST
4151{
4152 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304153 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004154}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4155
4156/*---------------------------------------------------------------------------
4157 *WLAN_HAL_RADAR_DETECT_INTR_IND
4158 *--------------------------------------------------------------------------*/
4159
4160typedef PACKED_PRE struct PACKED_POST
4161{
4162 tANI_U8 radarDetChannel;
4163}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4164
4165typedef PACKED_PRE struct PACKED_POST
4166{
4167 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304168 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004169}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4170
4171/*---------------------------------------------------------------------------
4172 *WLAN_HAL_RADAR_DETECT_IND
4173 *-------------------------------------------------------------------------*/
4174typedef PACKED_PRE struct PACKED_POST
4175{
4176 /*channel number in which the RADAR detected*/
4177 tANI_U8 channelNumber;
4178
4179 /*RADAR pulse width*/
4180 tANI_U16 radarPulseWidth; // in usecond
4181
4182 /*Number of RADAR pulses */
4183 tANI_U16 numRadarPulse;
4184}tRadarDetectIndParams,*tpRadarDetectIndParams;
4185
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304189 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004190}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4191
4192
4193/*---------------------------------------------------------------------------
4194 *WLAN_HAL_GET_TPC_REPORT_REQ
4195 *-------------------------------------------------------------------------*/
4196typedef PACKED_PRE struct PACKED_POST
4197{
4198 tSirMacAddr sta;
4199 tANI_U8 dialogToken;
4200 tANI_U8 txpower;
4201}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4202
4203
4204typedef PACKED_PRE struct PACKED_POST
4205{
4206 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304207 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004208}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4209
4210/*---------------------------------------------------------------------------
4211 * WLAN_HAL_GET_TPC_REPORT_RSP
4212 *--------------------------------------------------------------------------*/
4213
4214typedef PACKED_PRE struct PACKED_POST
4215{
4216 /* success or failure */
4217 tANI_U32 status;
4218}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4219
4220typedef PACKED_PRE struct PACKED_POST
4221{
4222 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304223 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004224}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4225
4226#endif
4227
Jeff Johnson295189b2012-06-20 16:38:30 -07004228/*---------------------------------------------------------------------------
4229 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4230 *-------------------------------------------------------------------------*/
4231typedef PACKED_PRE struct PACKED_POST
4232{
4233 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4234 tANI_U32 probeRespTemplateLen;
4235 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4236 tSirMacAddr bssId;
4237
4238}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4239
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 tHalMsgHeader header;
4243 tSendProbeRespReqParams sendProbeRespReqParams ;
4244}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4245
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05304246typedef PACKED_PRE struct PACKED_POST
4247{
4248 tSirMacAddr bssId;
4249 tANI_U32 probeRespTemplateLen;
4250 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4251 tANI_U8 pProbeRespTemplate[1]; //Variable length array
4252}tSendProbeRespReqParams_V1, *tpSendProbeRespReqParams_V1;
4253
4254typedef PACKED_PRE struct PACKED_POST
4255{
4256 tHalMsgHeader header;
4257 tSendProbeRespReqParams_V1 sendProbeRespReqParams_v1;
4258}tSendProbeRespReqMsg_V1, *tpSendProbeRespReqMsg_V1;
4259
Jeff Johnson295189b2012-06-20 16:38:30 -07004260/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304261 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004262 *--------------------------------------------------------------------------*/
4263
4264typedef PACKED_PRE struct PACKED_POST
4265{
4266 /* success or failure */
4267 tANI_U32 status;
4268}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4269
4270typedef PACKED_PRE struct PACKED_POST
4271{
4272 tHalMsgHeader header;
4273 tSendProbeRespRspParams sendProbeRespRspParams;
4274}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4275
4276
4277/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304278 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004279 *--------------------------------------------------------------------------*/
4280
4281typedef PACKED_PRE struct PACKED_POST
4282{
4283 /* success or failure */
4284 tANI_U32 status;
4285}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4286
4287typedef PACKED_PRE struct PACKED_POST
4288{
4289 tHalMsgHeader header;
4290 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4291}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4292
4293/*---------------------------------------------------------------------------
4294 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4295 *--------------------------------------------------------------------------*/
4296
4297typedef PACKED_PRE struct PACKED_POST
4298{
4299 tANI_U16 assocId;
4300 tANI_U16 staId;
4301 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4302 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004303 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304304 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004305
4306}tDeleteStaContextParams, *tpDeleteStaContextParams;
4307
4308
4309typedef PACKED_PRE struct PACKED_POST
4310{
4311 tHalMsgHeader header;
4312 tDeleteStaContextParams deleteStaContextParams;
4313}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4314
Anand Kumar012623a2013-01-11 17:00:00 -08004315typedef PACKED_PRE struct PACKED_POST
4316{
4317 tHalMsgHeader header;
4318 tANI_U8 assocId;
4319 tANI_U8 staIdx;
4320 tANI_U8 bssIdx;
4321 tANI_U8 uReasonCode;
4322 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004323#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4324 tANI_U8 staAddr[6];
4325 tANI_U8 bssId[6];
4326#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004327} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004328
4329/*---------------------------------------------------------------------------
4330 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4331 *--------------------------------------------------------------------------*/
4332
4333typedef PACKED_PRE struct PACKED_POST
4334{
4335 tBtAmpEventType btAmpEventType;
4336
4337}tBtAmpEventParams, *tpBtAmpEventParams;
4338
4339
4340
4341typedef PACKED_PRE struct PACKED_POST
4342{
4343 tHalMsgHeader header;
4344 tBtAmpEventParams btAmpEventParams;
4345}tBtAmpEventMsg, *tpBtAmpEventMsg;
4346
4347/*---------------------------------------------------------------------------
4348*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4349*--------------------------------------------------------------------------*/
4350
4351typedef PACKED_PRE struct PACKED_POST
4352{
4353 /* success or failure */
4354 tANI_U32 status;
4355}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4356
4357typedef PACKED_PRE struct PACKED_POST
4358{
4359 tHalMsgHeader header;
4360 tBtAmpEventRspParams btAmpEventRspParams;
4361}tBtAmpEventRsp, *tpBtAmpEventRsp;
4362
4363
4364/*---------------------------------------------------------------------------
4365 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4366 *--------------------------------------------------------------------------*/
4367
4368typedef PACKED_PRE struct PACKED_POST
4369{
4370 // Station Index. originates from HAL
4371 tANI_U8 ucSTAId;
4372
4373 // TID for which the transmit queue is being flushed
4374 tANI_U8 ucTid;
4375
4376}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4377
4378
4379typedef PACKED_PRE struct PACKED_POST
4380{
4381 tHalMsgHeader header;
4382 tTlHalFlushAcParams tlHalFlushAcParam;
4383}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4384
4385/*---------------------------------------------------------------------------
4386*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4387*--------------------------------------------------------------------------*/
4388
4389typedef PACKED_PRE struct PACKED_POST
4390{
4391 // Station Index. originates from HAL
4392 tANI_U8 ucSTAId;
4393
4394 // TID for which the transmit queue is being flushed
4395 tANI_U8 ucTid;
4396
4397 /* success or failure */
4398 tANI_U32 status;
4399}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4400
4401typedef PACKED_PRE struct PACKED_POST
4402{
4403 tHalMsgHeader header;
4404 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4405}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4406
4407/*---------------------------------------------------------------------------
4408 * WLAN_HAL_ENTER_IMPS_REQ
4409 *--------------------------------------------------------------------------*/
4410typedef PACKED_PRE struct PACKED_POST
4411{
4412 tHalMsgHeader header;
4413} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4414
4415/*---------------------------------------------------------------------------
4416 * WLAN_HAL_EXIT_IMPS_REQ
4417 *--------------------------------------------------------------------------*/
4418typedef PACKED_PRE struct PACKED_POST
4419{
4420 tHalMsgHeader header;
4421} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4422
4423/*---------------------------------------------------------------------------
4424 * WLAN_HAL_ENTER_BMPS_REQ
4425 *--------------------------------------------------------------------------*/
4426
4427typedef PACKED_PRE struct PACKED_POST
4428{
4429 tANI_U8 bssIdx;
4430 //TBTT value derived from the last beacon
4431#ifndef BUILD_QWPTTSTATIC
4432 tANI_U64 tbtt;
4433#endif
4434 tANI_U8 dtimCount;
4435 //DTIM period given to HAL during association may not be valid,
4436 //if association is based on ProbeRsp instead of beacon.
4437 tANI_U8 dtimPeriod;
4438
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004439 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004440 tANI_U32 rssiFilterPeriod;
4441 tANI_U32 numBeaconPerRssiAverage;
4442 tANI_U8 bRssiFilterEnable;
4443
4444} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4445
4446
4447typedef PACKED_PRE struct PACKED_POST
4448{
4449 tHalMsgHeader header;
4450 tHalEnterBmpsReqParams enterBmpsReq;
4451} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4452
4453/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304454 * WLAN_HAL_PRINT_REG_INFO_IND
4455 *--------------------------------------------------------------------------*/
4456typedef PACKED_PRE struct PACKED_POST
4457{
4458 uint32 regAddr;
4459 uint32 regValue;
4460} tHalRegDebugInfo, *tpRegDebugInfo;
4461
4462typedef PACKED_PRE struct PACKED_POST
4463{
4464 uint32 regCount;
4465 uint32 scenario;
4466 uint32 reasonCode;
4467} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4468
4469typedef PACKED_PRE struct PACKED_POST
4470{
4471 tHalMsgHeader header;
4472 tHalRegDebugInfoParams regParams;
4473} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4474
4475/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004476 * WLAN_HAL_EXIT_BMPS_REQ
4477 *--------------------------------------------------------------------------*/
4478typedef PACKED_PRE struct PACKED_POST
4479{
4480 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004481 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004482} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4483
4484typedef PACKED_PRE struct PACKED_POST
4485{
4486 tHalMsgHeader header;
4487 tHalExitBmpsReqParams exitBmpsReqParams;
4488} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4489
4490/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004491 * WLAN_HAL_MISSED_BEACON_IND
4492 *--------------------------------------------------------------------------*/
4493typedef PACKED_PRE struct PACKED_POST
4494{
4495 tANI_U8 bssIdx;
4496} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4497
4498typedef PACKED_PRE struct PACKED_POST
4499{
4500 tHalMsgHeader header;
4501 tHalMissedBeaconIndParams missedBeaconIndParams;
4502} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4503
4504/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004505 * WLAN_HAL_ADD_BCN_FILTER_REQ
4506 *--------------------------------------------------------------------------*/
4507/* Beacon Filtering data structures */
4508typedef PACKED_PRE struct PACKED_POST
4509{
4510 tANI_U8 offset;
4511 tANI_U8 value;
4512 tANI_U8 bitMask;
4513 tANI_U8 ref;
4514} tEidByteInfo, *tpEidByteInfo;
4515
Dino Mycle8afbac12014-07-04 22:06:17 +05304516typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004517{
4518 tANI_U16 capabilityInfo;
4519 tANI_U16 capabilityMask;
4520 tANI_U16 beaconInterval;
4521 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004522 tANI_U8 bssIdx;
4523 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004524} tBeaconFilterMsg, *tpBeaconFilterMsg;
4525
4526/* The above structure would be followed by multiple of below mentioned structure */
4527typedef PACKED_PRE struct PACKED_POST
4528{
4529 tANI_U8 elementId;
4530 tANI_U8 checkIePresence;
4531 tEidByteInfo byte;
4532} tBeaconFilterIe, *tpBeaconFilterIe;
4533
4534typedef PACKED_PRE struct PACKED_POST
4535{
4536 tHalMsgHeader header;
4537 tBeaconFilterMsg addBcnFilterParams;
4538} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4539
4540/*---------------------------------------------------------------------------
4541 * WLAN_HAL_REM_BCN_FILTER_REQ
4542 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304543typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004544{
4545 tANI_U8 ucIeCount;
4546 tANI_U8 ucRemIeId[1];
4547} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4548
4549typedef PACKED_PRE struct PACKED_POST
4550{
4551 tHalMsgHeader header;
4552 tRemBeaconFilterMsg remBcnFilterParams;
4553} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4554
4555/*---------------------------------------------------------------------------
4556 * WLAN_HAL_HOST_OFFLOAD_REQ
4557 *--------------------------------------------------------------------------*/
4558#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4559#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4560#define HAL_IPV6_NS_OFFLOAD 2
4561#define HAL_IPV6_ADDR_LEN 16
4562#define HAL_MAC_ADDR_LEN 6
4563#define HAL_OFFLOAD_DISABLE 0
4564#define HAL_OFFLOAD_ENABLE 1
4565#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004566#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004567#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004568#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004569
4570typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4571{
4572 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4573 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4574 //Only support 2 possible Network Advertisement IPv6 address
4575 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4576 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4577 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4578 tANI_U8 srcIPv6AddrValid : 1;
4579 tANI_U8 targetIPv6Addr1Valid : 1;
4580 tANI_U8 targetIPv6Addr2Valid : 1;
4581 tANI_U8 reserved1 : 5;
4582 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004583 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004584 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004585} tHalNSOffloadParams;
4586
4587typedef PACKED_PRE struct PACKED_POST
4588{
4589 tANI_U8 offloadType;
4590 tANI_U8 enableOrDisable;
4591 PACKED_PRE union PACKED_POST
4592 {
4593 tANI_U8 hostIpv4Addr [4];
4594 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4595 } params;
4596} tHalHostOffloadReq, *tpHalHostOffloadReq;
4597
4598typedef PACKED_PRE struct PACKED_POST
4599{
4600 tHalMsgHeader header;
4601 tHalHostOffloadReq hostOffloadParams;
4602 tHalNSOffloadParams nsOffloadParams;
4603} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4604
Leo Chang397deb72013-08-22 11:33:16 -07004605
4606#ifdef FEATURE_WLAN_LPHB
4607typedef enum
4608{
4609 WIFI_HB_SET_ENABLE = 0x0001,
4610 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4611 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4612 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4613 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4614 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4615}tLowPowerHeartBeatCmdType ;
4616
4617#define MAX_FLITER_SIZE 64
4618/*---------------------------------------------------------------------------
4619 *FEATURE_WLAN_LPHB REQ
4620 *--------------------------------------------------------------------------*/
4621typedef PACKED_PRE struct PACKED_POST
4622{
4623 uint32 hostIpv4Addr;
4624 uint32 destIpv4Addr;
4625 uint16 hostPort;
4626 uint16 destPort;
4627 uint16 timeOutSec; // in seconds
4628 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004629 uint16 timePeriodSec; // in seconds
4630 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004631} tlowPowerHeartBeatParamsTcpStruct;
4632
4633typedef PACKED_PRE struct PACKED_POST
4634{
4635 uint32 hostIpv4Addr;
4636 uint32 destIpv4Addr;
4637 uint16 hostPort;
4638 uint16 destPort;
4639 uint16 timePeriodSec;// in seconds
4640 uint16 timeOutSec; // in seconds
4641 tSirMacAddr gatewayMacAddr;
4642} tlowPowerHeartBeatParamsUdpStruct;
4643
4644typedef PACKED_PRE struct PACKED_POST
4645{
4646 uint32 offset;
4647 uint32 filterLength;
4648 uint8 filter[MAX_FLITER_SIZE];
4649} tlowPowerHeartBeatFilterStruct;
4650
4651typedef PACKED_PRE struct PACKED_POST
4652{
4653 uint8 heartBeatEnable;
4654 uint8 heartBeatType; //TCP or UDP
4655} tlowPowerHeartBeatEnableStruct;
4656
4657typedef PACKED_PRE struct PACKED_POST
4658{
4659 uint8 dummy;
4660} tlowPowerHeartBeatNetworkInfoStruct;
4661
4662
4663typedef PACKED_PRE struct PACKED_POST
4664{
4665 uint8 sessionIdx;
4666 uint16 lowPowerHeartBeatCmdType;
4667 PACKED_PRE union PACKED_PRO
4668 {
4669 tlowPowerHeartBeatEnableStruct control;
4670 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4671 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4672 tlowPowerHeartBeatParamsUdpStruct udpParams;
4673 tlowPowerHeartBeatNetworkInfoStruct info;
4674 }options;
4675} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4676
4677
4678typedef PACKED_PRE struct PACKED_POST
4679{
4680 tHalMsgHeader header;
4681 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4682} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4683
4684/*---------------------------------------------------------------------------
4685 * FEATURE_WLAN_LPHB RSP
4686 *--------------------------------------------------------------------------*/
4687
4688typedef PACKED_PRE struct PACKED_POST
4689{
4690 /* success or failure */
4691 uint8 sessionIdx;
4692 uint32 status;
4693 uint16 lowPowerHeartBeatCmdType;
4694}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4695
4696typedef PACKED_PRE struct PACKED_POST
4697{
4698 tHalMsgHeader header;
4699 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4700}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4701
4702
4703/*---------------------------------------------------------------------------
4704 * FEATURE_WLAN_LPHB IND
4705 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004706#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4707#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4708
4709#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4710#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004711#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004712
Kumar Anandea78e792013-10-10 23:47:01 -07004713
4714#define WIFI_LPHB_PROTO_UDP 0x01
4715#define WIFI_LPHB_PROTO_TCP 0x02
4716
Leo Chang397deb72013-08-22 11:33:16 -07004717typedef PACKED_PRE struct PACKED_POST
4718{
4719 uint8 bssIdx;
4720 uint8 sessionIdx;
4721 uint8 protocolType; /*TCP or UDP*/
4722 uint8 eventReason;
4723
4724}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4725
4726typedef PACKED_PRE struct PACKED_POST
4727{
4728 tHalMsgHeader header;
4729 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4730}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4731
4732#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004733
4734#ifdef FEATURE_WLAN_BATCH_SCAN
4735
4736/*---------------------------------------------------------------------------
4737 * WLAN_HAL_BATCHSCAN_SET_REQ
4738 *--------------------------------------------------------------------------*/
4739typedef PACKED_PRE struct PACKED_POST
4740{
4741 /* Scan Frerquency - default to 30Sec*/
4742 tANI_U32 scanInterval;
4743 tANI_U32 numScan2Batch;
4744 tANI_U32 bestNetworks;
4745 tANI_U8 rfBand;
4746 tANI_U8 rtt;
4747} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4748
4749typedef PACKED_PRE struct PACKED_POST
4750{
4751 tHalMsgHeader header;
4752 tHalBatchScanSetParams batchScanParams;
4753} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4754
4755/*---------------------------------------------------------------------------
4756 * WLAN_HAL_BATCHSCAN_SET_RSP
4757 *--------------------------------------------------------------------------*/
4758typedef PACKED_PRE struct PACKED_POST
4759{
4760 tANI_U32 supportedMscan;
4761} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4762
4763typedef PACKED_PRE struct PACKED_POST
4764{
4765 tHalMsgHeader header;
4766 tHalBatchScanSetRspParam setBatchScanRspParam;
4767} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4768
4769/*---------------------------------------------------------------------------
4770* WLAN_HAL_BATCHSCAN_STOP_IND
4771*--------------------------------------------------------------------------*/
4772typedef PACKED_PRE struct PACKED_POST
4773{
4774 tANI_U32 param;
4775} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4776
4777typedef PACKED_PRE struct PACKED_POST
4778{
4779 tHalMsgHeader header;
4780 tHalBatchScanStopIndParam param;
4781} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4782
4783/*---------------------------------------------------------------------------
4784* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4785*--------------------------------------------------------------------------*/
4786typedef PACKED_PRE struct PACKED_POST
4787{
4788 tANI_U32 param;
4789} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4790
4791typedef PACKED_PRE struct PACKED_POST
4792{
4793 tHalMsgHeader header;
4794 tHalBatchScanTriggerResultParam param;
4795} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4796
4797/*---------------------------------------------------------------------------
4798 * WLAN_HAL_BATCHSCAN_GET_RSP
4799 *--------------------------------------------------------------------------*/
4800typedef PACKED_PRE struct PACKED_POST
4801{
4802 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004803 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004804 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304805 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004806 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4807 tANI_U32 timestamp;
4808} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4809
4810typedef PACKED_PRE struct PACKED_POST
4811{
4812 tANI_U32 scanId; /* Scan List ID. */
4813 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4814 tANI_U32 numNetworksInScanList;
4815 /* Variable data ptr: Number of AP in Scan List */
4816 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4817 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4818 tANI_U8 scanList[1];
4819} tHalBatchScanList, *tpHalBatchScanList;
4820
4821typedef PACKED_PRE struct PACKED_POST
4822{
4823 tANI_U32 timestamp;
4824 tANI_U32 numScanLists;
4825 boolean isLastResult;
4826 /* Variable Data ptr: Number of Scan Lists*/
4827 /* following isLastResult is data of type tHalBatchScanList
4828 * of sizeof(tHalBatchScanList) * numScanLists*/
4829 tANI_U8 scanResults[1];
4830} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4831
4832typedef PACKED_PRE struct PACKED_POST
4833{
4834 tHalMsgHeader header;
4835 tHalBatchScanResultIndParam resultIndMsgParam;
4836} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4837
4838#endif
4839
Jeff Johnson295189b2012-06-20 16:38:30 -07004840/*---------------------------------------------------------------------------
4841 * WLAN_HAL_KEEP_ALIVE_REQ
4842 *--------------------------------------------------------------------------*/
4843/* Packet Types. */
4844#define HAL_KEEP_ALIVE_NULL_PKT 1
4845#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4846
4847/* Enable or disable keep alive */
4848#define HAL_KEEP_ALIVE_DISABLE 0
4849#define HAL_KEEP_ALIVE_ENABLE 1
4850
4851/* Keep Alive request. */
4852typedef PACKED_PRE struct PACKED_POST
4853{
4854 tANI_U8 packetType;
4855 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304856 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004857 tHalIpv4Addr destIpv4Addr;
4858 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004859 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004860} tHalKeepAliveReq, *tpHalKeepAliveReq;
4861
4862typedef PACKED_PRE struct PACKED_POST
4863{
4864 tHalMsgHeader header;
4865 tHalKeepAliveReq KeepAliveParams;
4866} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4867
4868/*---------------------------------------------------------------------------
4869 * WLAN_HAL_SET_RSSI_THRESH_REQ
4870 *--------------------------------------------------------------------------*/
4871typedef PACKED_PRE struct PACKED_POST
4872{
4873 tANI_S8 ucRssiThreshold1 : 8;
4874 tANI_S8 ucRssiThreshold2 : 8;
4875 tANI_S8 ucRssiThreshold3 : 8;
4876 tANI_U8 bRssiThres1PosNotify : 1;
4877 tANI_U8 bRssiThres1NegNotify : 1;
4878 tANI_U8 bRssiThres2PosNotify : 1;
4879 tANI_U8 bRssiThres2NegNotify : 1;
4880 tANI_U8 bRssiThres3PosNotify : 1;
4881 tANI_U8 bRssiThres3NegNotify : 1;
4882 tANI_U8 bReserved10 : 2;
4883} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304884
Jeff Johnson295189b2012-06-20 16:38:30 -07004885typedef PACKED_PRE struct PACKED_POST
4886{
4887 tHalMsgHeader header;
4888 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004889} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004890
4891/*---------------------------------------------------------------------------
4892 * WLAN_HAL_ENTER_UAPSD_REQ
4893 *--------------------------------------------------------------------------*/
4894typedef PACKED_PRE struct PACKED_POST
4895{
4896 tANI_U8 bkDeliveryEnabled:1;
4897 tANI_U8 beDeliveryEnabled:1;
4898 tANI_U8 viDeliveryEnabled:1;
4899 tANI_U8 voDeliveryEnabled:1;
4900 tANI_U8 bkTriggerEnabled:1;
4901 tANI_U8 beTriggerEnabled:1;
4902 tANI_U8 viTriggerEnabled:1;
4903 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004904 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004905} tUapsdReqParams, *tpUapsdReqParams;
4906
4907typedef PACKED_PRE struct PACKED_POST
4908{
4909 tHalMsgHeader header;
4910 tUapsdReqParams enterUapsdParams;
4911} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4912
4913/*---------------------------------------------------------------------------
4914 * WLAN_HAL_EXIT_UAPSD_REQ
4915 *--------------------------------------------------------------------------*/
4916typedef PACKED_PRE struct PACKED_POST
4917{
4918 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004919 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004920} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4921
Kumar Anandea78e792013-10-10 23:47:01 -07004922#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4923#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004924/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004925 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4926 *--------------------------------------------------------------------------*/
4927typedef PACKED_PRE struct PACKED_POST
4928{
4929 tANI_U32 selfStaIdx:8;
4930 tANI_U32 ucPtrnId:8; // Pattern ID
4931 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4932 tANI_U32 uPtrnIntervalMs; // In msec
4933 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4934} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4935
4936typedef PACKED_PRE struct PACKED_POST
4937{
4938 tHalMsgHeader header;
4939 tHalAddPeriodicTxPtrn ptrnParams;
4940} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4941
4942/*---------------------------------------------------------------------------
4943 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4944 *--------------------------------------------------------------------------*/
4945typedef PACKED_PRE struct PACKED_POST
4946{
4947 tANI_U32 selfStaIdx:8;
4948 tANI_U32 rsvd:24;
4949 /* Bitmap of pattern IDs that needs to be deleted */
4950 tANI_U32 uPatternIdBitmap;
4951} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4952
4953typedef PACKED_PRE struct PACKED_POST
4954{
4955 tHalMsgHeader header;
4956 tHalDelPeriodicTxPtrn ptrnParams;
4957} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4958
4959/*---------------------------------------------------------------------------
4960 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4961 *--------------------------------------------------------------------------*/
4962typedef PACKED_PRE struct PACKED_POST
4963{
4964 /* Type of Failure indication */
4965 tANI_U32 bssIdx:8;
4966 tANI_U32 selfStaIdx:8;
4967 tANI_U32 rsvd:16;
4968 tANI_U32 status;
4969 tANI_U32 patternIdBitmap;
4970} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4971
4972typedef PACKED_PRE struct PACKED_POST
4973{
4974 tHalMsgHeader header;
4975 tHalPeriodicTxPtrnFwInd fwIndParams;
4976} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4977
4978/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004979 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4980 *--------------------------------------------------------------------------*/
4981#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4982#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4983
4984typedef PACKED_PRE struct PACKED_POST
4985{
4986 tANI_U8 ucPatternId; // Pattern ID
4987 // Pattern byte offset from beginning of the 802.11 packet to start of the
4988 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304989 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004990 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4991 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4992 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4993 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4994 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4995 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004996 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004997} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4998
4999typedef PACKED_PRE struct PACKED_POST
5000{
5001 tHalMsgHeader header;
5002 tHalWowlAddBcastPtrn ptrnParams;
5003} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05305004
Jeff Johnsone7245742012-09-05 17:12:55 -07005005
5006
Jeff Johnson295189b2012-06-20 16:38:30 -07005007/*---------------------------------------------------------------------------
5008 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
5009 *--------------------------------------------------------------------------*/
5010typedef PACKED_PRE struct PACKED_POST
5011{
5012 /* Pattern ID of the wakeup pattern to be deleted */
5013 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005014 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005015} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
5016
5017typedef PACKED_PRE struct PACKED_POST
5018{
5019 tHalMsgHeader header;
5020 tHalWowlDelBcastPtrn ptrnParams;
5021} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
5022
5023/*---------------------------------------------------------------------------
5024 * WLAN_HAL_ENTER_WOWL_REQ
5025 *--------------------------------------------------------------------------*/
5026typedef PACKED_PRE struct PACKED_POST
5027{
5028 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05305029 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005030
5031 /* Magic pattern */
5032 tSirMacAddr magicPtrn;
5033
Dino Mycle8afbac12014-07-04 22:06:17 +05305034 /* Enables/disables packet pattern filtering in firmware.
5035 Enabling this flag enables broadcast pattern matching
5036 in Firmware. If unicast pattern matching is also desired,
5037 ucUcastPatternFilteringEnable flag must be set tot true
5038 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07005039 */
5040 tANI_U8 ucPatternFilteringEnable;
5041
Dino Mycle8afbac12014-07-04 22:06:17 +05305042 /* Enables/disables unicast packet pattern filtering.
5043 This flag specifies whether we want to do pattern match
5044 on unicast packets as well and not just broadcast packets.
5045 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07005046 (main controlling flag) is set to false
5047 */
Dino Mycle8afbac12014-07-04 22:06:17 +05305048 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005049
Dino Mycle8afbac12014-07-04 22:06:17 +05305050 /* This configuration is valid only when magicPktEnable=1.
5051 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07005052 * Channel Switch Action Frame.
5053 */
5054 tANI_U8 ucWowChnlSwitchRcv;
5055
Dino Mycle8afbac12014-07-04 22:06:17 +05305056 /* This configuration is valid only when magicPktEnable=1.
5057 * It requests hardware to wake up when it receives the
5058 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005059 */
5060 tANI_U8 ucWowDeauthRcv;
5061
Dino Mycle8afbac12014-07-04 22:06:17 +05305062 /* This configuration is valid only when magicPktEnable=1.
5063 * It requests hardware to wake up when it receives the
5064 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005065 */
5066 tANI_U8 ucWowDisassocRcv;
5067
Dino Mycle8afbac12014-07-04 22:06:17 +05305068 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005069 * It requests hardware to wake up when it has missed
5070 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05305071 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07005072 */
5073 tANI_U8 ucWowMaxMissedBeacons;
5074
Dino Mycle8afbac12014-07-04 22:06:17 +05305075 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005076 * This is a timeout value in units of microsec. It requests
5077 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05305078 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07005079 */
5080 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05305081
Jeff Johnson295189b2012-06-20 16:38:30 -07005082 /* This configuration directs the WoW packet filtering to look for EAP-ID
5083 * requests embedded in EAPOL frames and use this as a wake source.
5084 */
5085 tANI_U8 ucWoWEAPIDRequestEnable;
5086
5087 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
5088 * requests and use this as a wake source.
5089 */
5090 tANI_U8 ucWoWEAPOL4WayEnable;
5091
5092 /* This configuration allows a host wakeup on an network scan offload match.
5093 */
5094 tANI_U8 ucWowNetScanOffloadMatch;
5095
5096 /* This configuration allows a host wakeup on any GTK rekeying error.
5097 */
5098 tANI_U8 ucWowGTKRekeyError;
5099
5100 /* This configuration allows a host wakeup on BSS connection loss.
5101 */
5102 tANI_U8 ucWoWBSSConnLoss;
5103
Jeff Johnsone7245742012-09-05 17:12:55 -07005104 tANI_U8 bssIdx;
5105
Jeff Johnson295189b2012-06-20 16:38:30 -07005106} tHalWowlEnterParams, *tpHalWowlEnterParams;
5107
5108typedef PACKED_PRE struct PACKED_POST
5109{
5110 tHalMsgHeader header;
5111 tHalWowlEnterParams enterWowlParams;
5112} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5113
5114/*---------------------------------------------------------------------------
5115 * WLAN_HAL_EXIT_WOWL_REQ
5116 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005117
Jeff Johnson295189b2012-06-20 16:38:30 -07005118typedef PACKED_PRE struct PACKED_POST
5119{
Jeff Johnsone7245742012-09-05 17:12:55 -07005120 tANI_U8 bssIdx;
5121
5122} tHalWowlExitParams, *tpHalWowlExitParams;
5123
5124typedef PACKED_PRE struct PACKED_POST
5125{
5126 tHalMsgHeader header;
5127 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005128} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5129
5130/*---------------------------------------------------------------------------
5131 * WLAN_HAL_GET_RSSI_REQ
5132 *--------------------------------------------------------------------------*/
5133typedef PACKED_PRE struct PACKED_POST
5134{
5135 tHalMsgHeader header;
5136} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5137
Anand Kumar012623a2013-01-11 17:00:00 -08005138typedef PACKED_PRE struct PACKED_POST
5139{
5140 /* Valid STA Idx for per STA stats request */
5141 tANI_U32 staId;
5142
5143}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5144
5145
5146/*---------------------------------------------------------------------------
5147 * WLAN_HAL_GET_ROAM_RSSI_REQ
5148 *--------------------------------------------------------------------------*/
5149typedef PACKED_PRE struct PACKED_POST
5150{
5151 tHalMsgHeader header;
5152 tHalRoamRssiReqParams roamRssiReqParams;
5153} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5154
5155
Jeff Johnson295189b2012-06-20 16:38:30 -07005156/*---------------------------------------------------------------------------
5157 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5158 *--------------------------------------------------------------------------*/
5159typedef PACKED_PRE struct PACKED_POST {
5160 tANI_U8 staidx; // STA index
5161 tANI_U8 ac; // Access Category
5162 tANI_U8 up; // User Priority
5163 tANI_U32 srvInterval; // Service Interval
5164 tANI_U32 susInterval; // Suspend Interval
5165 tANI_U32 delayInterval; // Delay Interval
5166} tUapsdInfo, tpUapsdInfo;
5167
5168typedef PACKED_PRE struct PACKED_POST
5169{
5170 tHalMsgHeader header;
5171 tUapsdInfo enableUapsdAcParams;
5172} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5173
5174/*---------------------------------------------------------------------------
5175 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5176 *--------------------------------------------------------------------------*/
5177typedef PACKED_PRE struct PACKED_POST {
5178 tANI_U8 setMcstBcstFilterSetting;
5179 tANI_U8 setMcstBcstFilter;
5180} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5181
5182typedef PACKED_PRE struct PACKED_POST
5183{
5184 tHalMsgHeader header;
5185 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5186} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5187
5188/*---------------------------------------------------------------------------
5189 * WLAN_HAL_ENTER_IMPS_RSP
5190 *--------------------------------------------------------------------------*/
5191typedef PACKED_PRE struct PACKED_POST
5192{
5193 /* success or failure */
5194 tANI_U32 status;
5195} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5196
5197typedef PACKED_PRE struct PACKED_POST
5198{
5199 tHalMsgHeader header;
5200 tHalEnterImpsRspParams enterImpsRspParams;
5201} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5202
5203/*---------------------------------------------------------------------------
5204 * WLAN_HAL_EXIT_IMPS_RSP
5205 *--------------------------------------------------------------------------*/
5206typedef PACKED_PRE struct PACKED_POST
5207{
5208 /* success or failure */
5209 tANI_U32 status;
5210} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5211
5212typedef PACKED_PRE struct PACKED_POST
5213{
5214 tHalMsgHeader header;
5215 tHalExitImpsRspParams exitImpsRspParams;
5216} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5217
5218/*---------------------------------------------------------------------------
5219 * WLAN_HAL_ENTER_BMPS_RSP
5220 *--------------------------------------------------------------------------*/
5221typedef PACKED_PRE struct PACKED_POST
5222{
5223 /* success or failure */
5224 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005225 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005226} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5227
5228typedef PACKED_PRE struct PACKED_POST
5229{
5230 tHalMsgHeader header;
5231 tHalEnterBmpsRspParams enterBmpsRspParams;
5232} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5233
5234/*---------------------------------------------------------------------------
5235 * WLAN_HAL_EXIT_BMPS_RSP
5236 *--------------------------------------------------------------------------*/
5237typedef PACKED_PRE struct PACKED_POST
5238{
5239 /* success or failure */
5240 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005241 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005242} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5243
5244typedef PACKED_PRE struct PACKED_POST
5245{
5246 tHalMsgHeader header;
5247 tHalExitBmpsRspParams exitBmpsRspParams;
5248} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5249
5250/*---------------------------------------------------------------------------
5251 * WLAN_HAL_ENTER_UAPSD_RSP
5252 *--------------------------------------------------------------------------*/
5253typedef PACKED_PRE struct PACKED_POST
5254{
5255 /* success or failure */
5256 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005257 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005258}tUapsdRspParams, *tpUapsdRspParams;
5259
5260typedef PACKED_PRE struct PACKED_POST
5261{
5262 tHalMsgHeader header;
5263 tUapsdRspParams enterUapsdRspParams;
5264} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5265
5266/*---------------------------------------------------------------------------
5267 * WLAN_HAL_EXIT_UAPSD_RSP
5268 *--------------------------------------------------------------------------*/
5269typedef PACKED_PRE struct PACKED_POST
5270{
5271 /* success or failure */
5272 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005273 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005274} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5275
5276typedef PACKED_PRE struct PACKED_POST
5277{
5278 tHalMsgHeader header;
5279 tHalExitUapsdRspParams exitUapsdRspParams;
5280} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5281
5282/*---------------------------------------------------------------------------
5283 * WLAN_HAL_RSSI_NOTIFICATION_IND
5284 *--------------------------------------------------------------------------*/
5285typedef PACKED_PRE struct PACKED_POST
5286{
5287 tANI_U32 bRssiThres1PosCross : 1;
5288 tANI_U32 bRssiThres1NegCross : 1;
5289 tANI_U32 bRssiThres2PosCross : 1;
5290 tANI_U32 bRssiThres2NegCross : 1;
5291 tANI_U32 bRssiThres3PosCross : 1;
5292 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005293 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005294 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005295 tANI_U32 isBTCoexCompromise : 1;
5296 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005297 tANI_S8 refRssiThreshold1;
5298 tANI_S8 refRssiThreshold2;
5299 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005300} tHalRSSINotification, *tpHalRSSINotification;
5301
5302typedef PACKED_PRE struct PACKED_POST
5303{
5304 tHalMsgHeader header;
5305 tHalRSSINotification rssiNotificationParams;
5306} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5307
5308/*---------------------------------------------------------------------------
5309 * WLAN_HAL_GET_RSSI_RSP
5310 *--------------------------------------------------------------------------*/
5311typedef PACKED_PRE struct PACKED_POST
5312{
5313 /* success or failure */
5314 tANI_U32 status;
5315 tANI_S8 rssi;
5316} tHalGetRssiParams, *tpHalGetRspParams;
5317
5318typedef PACKED_PRE struct PACKED_POST
5319{
5320 tHalMsgHeader header;
5321 tHalGetRssiParams rssiRspParams;
5322} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5323
5324/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005325 * WLAN_HAL_GET_ROAM_RSSI_RSP
5326 *--------------------------------------------------------------------------*/
5327typedef PACKED_PRE struct PACKED_POST
5328{
5329 /* success or failure */
5330 tANI_U32 status;
5331
5332 tANI_U8 staId;
5333 tANI_S8 rssi;
5334} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5335
5336typedef PACKED_PRE struct PACKED_POST
5337{
5338 tHalMsgHeader header;
5339 tHalGetRoamRssiParams roamRssiRspParams;
5340} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5341
5342/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005343 * WLAN_HAL_ENTER_WOWL_RSP
5344 *--------------------------------------------------------------------------*/
5345typedef PACKED_PRE struct PACKED_POST
5346{
5347 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005348 tANI_U32 status;
5349 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005350} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5351
5352typedef PACKED_PRE struct PACKED_POST
5353{
5354 tHalMsgHeader header;
5355 tHalEnterWowlRspParams enterWowlRspParams;
5356} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5357
5358/*---------------------------------------------------------------------------
5359 * WLAN_HAL_EXIT_WOWL_RSP
5360 *--------------------------------------------------------------------------*/
5361typedef PACKED_PRE struct PACKED_POST
5362{
5363 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005364 tANI_U32 status;
5365 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005366} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5367
5368typedef PACKED_PRE struct PACKED_POST
5369{
5370 tHalMsgHeader header;
5371 tHalExitWowlRspParams exitWowlRspParams;
5372} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5373
5374/*---------------------------------------------------------------------------
5375 * WLAN_HAL_ADD_BCN_FILTER_RSP
5376 *--------------------------------------------------------------------------*/
5377typedef PACKED_PRE struct PACKED_POST
5378{
5379 /* success or failure */
5380 tANI_U32 status;
5381} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5382
5383typedef PACKED_PRE struct PACKED_POST
5384{
5385 tHalMsgHeader header;
5386 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5387} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5388
5389/*---------------------------------------------------------------------------
5390 * WLAN_HAL_REM_BCN_FILTER_RSP
5391 *--------------------------------------------------------------------------*/
5392typedef PACKED_PRE struct PACKED_POST
5393{
5394 /* success or failure */
5395 tANI_U32 status;
5396} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5397
5398typedef PACKED_PRE struct PACKED_POST
5399{
5400 tHalMsgHeader header;
5401 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5402} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5403
5404/*---------------------------------------------------------------------------
5405 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5406 *--------------------------------------------------------------------------*/
5407typedef PACKED_PRE struct PACKED_POST
5408{
5409 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005410 tANI_U32 status;
5411 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005412} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5413
5414typedef PACKED_PRE struct PACKED_POST
5415{
5416 tHalMsgHeader header;
5417 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5418} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5419
5420/*---------------------------------------------------------------------------
5421 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5422 *--------------------------------------------------------------------------*/
5423typedef PACKED_PRE struct PACKED_POST
5424{
5425 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005426 tANI_U32 status;
5427 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005428} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5429
5430typedef PACKED_PRE struct PACKED_POST
5431{
5432 tHalMsgHeader header;
5433 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5434} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5435
5436/*---------------------------------------------------------------------------
5437 * WLAN_HAL_HOST_OFFLOAD_RSP
5438 *--------------------------------------------------------------------------*/
5439typedef PACKED_PRE struct PACKED_POST
5440{
5441 /* success or failure */
5442 tANI_U32 status;
5443} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5444
5445typedef PACKED_PRE struct PACKED_POST
5446{
5447 tHalMsgHeader header;
5448 tHalHostOffloadRspParams hostOffloadRspParams;
5449} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5450
5451/*---------------------------------------------------------------------------
5452 * WLAN_HAL_KEEP_ALIVE_RSP
5453 *--------------------------------------------------------------------------*/
5454typedef PACKED_PRE struct PACKED_POST
5455{
5456 /* success or failure */
5457 tANI_U32 status;
5458} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5459
5460typedef PACKED_PRE struct PACKED_POST
5461{
5462 tHalMsgHeader header;
5463 tHalKeepAliveRspParams keepAliveRspParams;
5464} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5465
5466/*---------------------------------------------------------------------------
5467 * WLAN_HAL_SET_RSSI_THRESH_RSP
5468 *--------------------------------------------------------------------------*/
5469typedef PACKED_PRE struct PACKED_POST
5470{
5471 /* success or failure */
5472 tANI_U32 status;
5473} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5474
5475typedef PACKED_PRE struct PACKED_POST
5476{
5477 tHalMsgHeader header;
5478 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5479} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5480
5481/*---------------------------------------------------------------------------
5482 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5483 *--------------------------------------------------------------------------*/
5484typedef PACKED_PRE struct PACKED_POST
5485{
5486 /* success or failure */
5487 tANI_U32 status;
5488} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5489
5490typedef PACKED_PRE struct PACKED_POST
5491{
5492 tHalMsgHeader header;
5493 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5494} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5495
5496/*---------------------------------------------------------------------------
5497 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5498 *--------------------------------------------------------------------------*/
5499typedef PACKED_PRE struct PACKED_POST
5500{
5501 /* success or failure */
5502 tANI_U32 status;
5503} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5504
5505typedef PACKED_PRE struct PACKED_POST
5506{
5507 tHalMsgHeader header;
5508 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5509} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5510
5511/*---------------------------------------------------------------------------
5512 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5513 *--------------------------------------------------------------------------*/
5514
5515typedef PACKED_PRE struct PACKED_POST
5516{
5517 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5518 //the request has power constraints, this should be applied only to that session
5519 tSirMacAddr selfStaMacAddr;
5520 //In request,
5521 //power == MaxTx power to be used.
5522 tPowerdBm power;
5523
5524}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5525
5526
5527typedef PACKED_PRE struct PACKED_POST
5528{
5529 tHalMsgHeader header;
5530 tSetMaxTxPwrParams setMaxTxPwrParams;
5531}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5532
5533/*---------------------------------------------------------------------------
5534*WLAN_HAL_SET_MAX_TX_POWER_RSP
5535*--------------------------------------------------------------------------*/
5536
5537typedef PACKED_PRE struct PACKED_POST
5538{
5539 //power == tx power used for management frames.
5540 tPowerdBm power;
5541
5542 /* success or failure */
5543 tANI_U32 status;
5544}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5545
5546typedef PACKED_PRE struct PACKED_POST
5547{
5548 tHalMsgHeader header;
5549 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5550}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5551
Kumar Anandea78e792013-10-10 23:47:01 -07005552
Jeff Johnson295189b2012-06-20 16:38:30 -07005553/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005554 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5555 *--------------------------------------------------------------------------*/
5556
5557/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5558typedef enum
5559{
5560 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5561 // For 2.4GHz or 5GHz bands
5562 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5563 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5564 // End of valid enums
5565 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5566}tHalSetMaxTxPwrBandInfo;
5567
5568typedef PACKED_PRE struct PACKED_POST
5569{
5570 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005571 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005572}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5573
Kumar Anandea78e792013-10-10 23:47:01 -07005574
Arif Hussain36fda162013-08-30 14:46:57 -07005575typedef PACKED_PRE struct PACKED_POST
5576{
5577 tHalMsgHeader header;
5578 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5579}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5580
5581/*---------------------------------------------------------------------------
5582*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5583*--------------------------------------------------------------------------*/
5584
5585typedef PACKED_PRE struct PACKED_POST
5586{
5587 //power == tx power used for management frames.
5588 tPowerdBm power;
5589
5590 /* success or failure */
5591 tANI_U32 status;
5592}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5593
5594typedef PACKED_PRE struct PACKED_POST
5595{
5596 tHalMsgHeader header;
5597 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5598}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5599
5600/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005601 *WLAN_HAL_SET_TX_POWER_REQ
5602 *--------------------------------------------------------------------------*/
5603
5604typedef PACKED_PRE struct PACKED_POST
5605{
5606 /* TX Power in milli watts */
5607 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005608 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005609}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5610
5611
5612typedef PACKED_PRE struct PACKED_POST
5613{
5614 tHalMsgHeader header;
5615 tSetTxPwrReqParams setTxPwrReqParams;
5616}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5617
5618/*---------------------------------------------------------------------------
5619*WLAN_HAL_SET_TX_POWER_RSP
5620*--------------------------------------------------------------------------*/
5621
5622typedef PACKED_PRE struct PACKED_POST
5623{
5624 /* success or failure */
5625 tANI_U32 status;
5626}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5627
5628typedef PACKED_PRE struct PACKED_POST
5629{
5630 tHalMsgHeader header;
5631 tSetTxPwrRspParams setTxPwrRspParams;
5632}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5633
5634/*---------------------------------------------------------------------------
5635 *WLAN_HAL_GET_TX_POWER_REQ
5636 *--------------------------------------------------------------------------*/
5637
5638typedef PACKED_PRE struct PACKED_POST
5639{
5640 tANI_U8 staId;
5641}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5642
5643typedef PACKED_PRE struct PACKED_POST
5644{
5645 tHalMsgHeader header;
5646 tGetTxPwrReqParams getTxPwrReqParams;
5647}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5648
5649/*---------------------------------------------------------------------------
5650*WLAN_HAL_GET_TX_POWER_RSP
5651*--------------------------------------------------------------------------*/
5652
5653typedef PACKED_PRE struct PACKED_POST
5654{
5655 /* success or failure */
5656 tANI_U32 status;
5657
5658 /* TX Power in milli watts */
5659 tANI_U32 txPower;
5660}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5661
5662typedef PACKED_PRE struct PACKED_POST
5663{
5664 tHalMsgHeader header;
5665 tGetTxPwrRspParams getTxPwrRspParams;
5666}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5667
5668#ifdef WLAN_FEATURE_P2P
5669/*---------------------------------------------------------------------------
5670 *WLAN_HAL_SET_P2P_GONOA_REQ
5671 *--------------------------------------------------------------------------*/
5672
5673typedef PACKED_PRE struct PACKED_POST
5674{
5675 tANI_U8 opp_ps;
5676 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305677 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005678 tANI_U32 duration;
5679 tANI_U32 interval;
5680 tANI_U32 single_noa_duration;
5681 tANI_U8 psSelection;
5682}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5683
5684
5685typedef PACKED_PRE struct PACKED_POST
5686{
5687 tHalMsgHeader header;
5688 tSetP2PGONOAParams setP2PGONOAParams;
5689}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5690
5691/*---------------------------------------------------------------------------
5692*WLAN_HAL_SET_P2P_GONOA_RSP
5693*--------------------------------------------------------------------------*/
5694
5695typedef PACKED_PRE struct PACKED_POST
5696{
5697 /* success or failure */
5698 tANI_U32 status;
5699}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5700
5701typedef PACKED_PRE struct PACKED_POST
5702{
5703 tHalMsgHeader header;
5704 tSetP2PGONOARspParams setP2PGONOARspParams;
5705}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5706#endif
5707
5708/*---------------------------------------------------------------------------
5709 *WLAN_HAL_ADD_SELF_STA_REQ
5710 *--------------------------------------------------------------------------*/
5711
5712typedef PACKED_PRE struct PACKED_POST
5713{
5714 tSirMacAddr selfMacAddr;
5715 tANI_U32 status;
5716}tAddStaSelfParams, *tpAddStaSelfParams;
5717
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005718typedef PACKED_PRE struct PACKED_POST
5719{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005720 tHalMsgHeader header;
5721 tAddStaSelfParams addStaSelfParams;
5722}tAddStaSelfReq, *tpAddStaSelfReq;
5723
5724/* This V1 structure carries additionally the IFACE PERSONA
5725 of the interface as compared to the legacy control
5726 message */
5727typedef PACKED_PRE struct PACKED_POST
5728{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005729 tSirMacAddr selfMacAddr;
5730 tANI_U32 status;
5731 tHalIfacePersona iface_persona;
5732}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005733
5734typedef PACKED_PRE struct PACKED_POST
5735{
5736 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005737 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005738}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005739
5740/*---------------------------------------------------------------------------
5741*WLAN_HAL_ADD_SELF_STA_RSP
5742*--------------------------------------------------------------------------*/
5743
5744typedef PACKED_PRE struct PACKED_POST
5745{
5746 /* success or failure */
5747 tANI_U32 status;
5748
5749 /*Self STA Index */
5750 tANI_U8 selfStaIdx;
5751
5752 /* DPU Index (IGTK, PTK, GTK all same) */
5753 tANI_U8 dpuIdx;
5754
5755 /* DPU Signature */
5756 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305757
Jeff Johnson295189b2012-06-20 16:38:30 -07005758}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5759
5760typedef PACKED_PRE struct PACKED_POST
5761{
5762 tHalMsgHeader header;
5763 tAddStaSelfRspParams addStaSelfRspParams;
5764}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5765
5766
5767/*---------------------------------------------------------------------------
5768 WLAN_HAL_DEL_STA_SELF_REQ
5769---------------------------------------------------------------------------*/
5770
5771typedef PACKED_PRE struct PACKED_POST
5772{
5773 tSirMacAddr selfMacAddr;
5774
5775}tDelStaSelfParams, *tpDelStaSelfParams;
5776
5777typedef PACKED_PRE struct PACKED_POST
5778{
5779 tHalMsgHeader header;
5780 tDelStaSelfParams delStaSelfParams;
5781} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5782
5783
5784/*---------------------------------------------------------------------------
5785 WLAN_HAL_DEL_STA_SELF_RSP
5786---------------------------------------------------------------------------*/
5787
5788typedef PACKED_PRE struct PACKED_POST
5789{
5790 /*success or failure */
5791 tANI_U32 status;
5792
5793 tSirMacAddr selfMacAddr;
5794}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5795
5796typedef PACKED_PRE struct PACKED_POST
5797{
5798 tHalMsgHeader header;
5799 tDelStaSelfRspParams delStaSelfRspParams;
5800} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5801
5802
5803#ifdef WLAN_FEATURE_VOWIFI_11R
5804
5805/*---------------------------------------------------------------------------
5806 *WLAN_HAL_AGGR_ADD_TS_REQ
5807 *--------------------------------------------------------------------------*/
5808
5809typedef PACKED_PRE struct PACKED_POST
5810{
5811 /* Station Index */
5812 tANI_U16 staIdx;
5813
5814 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5815 /* This will carry the bitmap with the bit positions representing different AC.s*/
5816 tANI_U16 tspecIdx;
5817
5818 /* Tspec info per AC To program TPE with required parameters */
5819 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5820
5821 /* U-APSD Flags: 1b per AC. Encoded as follows:
5822 b7 b6 b5 b4 b3 b2 b1 b0 =
5823 X X X X BE BK VI VO */
5824 tANI_U8 uAPSD;
5825
5826 /* These parameters are for all the access categories */
5827 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5828 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5829 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5830
5831}tAggrAddTsParams, *tpAggrAddTsParams;
5832
5833
5834typedef PACKED_PRE struct PACKED_POST
5835{
5836 tHalMsgHeader header;
5837 tAggrAddTsParams aggrAddTsParam;
5838}tAggrAddTsReq, *tpAggrAddTsReq;
5839
5840/*---------------------------------------------------------------------------
5841*WLAN_HAL_AGGR_ADD_TS_RSP
5842*--------------------------------------------------------------------------*/
5843
5844typedef PACKED_PRE struct PACKED_POST
5845{
5846 /* success or failure */
5847 tANI_U32 status0;
5848 /* FIXME PRIMA for future use for 11R */
5849 tANI_U32 status1;
5850}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5851
5852typedef PACKED_PRE struct PACKED_POST
5853{
5854 tHalMsgHeader header;
5855 tAggrAddTsRspParams aggrAddTsRspParam;
5856}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5857
5858#endif
5859
5860/*---------------------------------------------------------------------------
5861 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5862 *--------------------------------------------------------------------------*/
5863typedef PACKED_PRE struct PACKED_POST
5864{
5865 tANI_U8 isAppsCpuAwake;
5866} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5867
5868typedef PACKED_PRE struct PACKED_POST
5869{
5870 tHalMsgHeader header;
5871 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5872} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5873
5874/*---------------------------------------------------------------------------
5875 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5876 *--------------------------------------------------------------------------*/
5877typedef PACKED_PRE struct PACKED_POST
5878{
5879 /* success or failure */
5880 tANI_U32 status;
5881} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5882
5883typedef PACKED_PRE struct PACKED_POST
5884{
5885 tHalMsgHeader header;
5886 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5887} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5888/*---------------------------------------------------------------------------
5889 * WLAN_HAL_DUMP_COMMAND_REQ
5890 *--------------------------------------------------------------------------*/
5891
5892typedef PACKED_PRE struct PACKED_POST
5893{
5894 tANI_U32 argument1;
5895 tANI_U32 argument2;
5896 tANI_U32 argument3;
5897 tANI_U32 argument4;
5898 tANI_U32 argument5;
5899
5900}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5901
5902typedef PACKED_PRE struct PACKED_POST
5903{
5904 tHalMsgHeader header;
5905 tHalDumpCmdReqParams dumpCmdReqParams;
5906} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5907
5908/*---------------------------------------------------------------------------
5909 * WLAN_HAL_DUMP_COMMAND_RSP
5910 *--------------------------------------------------------------------------*/
5911
5912typedef PACKED_PRE struct PACKED_POST
5913{
5914 /* success or failure */
5915 tANI_U32 status;
5916 /*Length of the responce message*/
5917 tANI_U32 rspLength;
5918 /*FiXME: Currently considering the the responce will be less than 100bytes */
5919 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305920
Jeff Johnson295189b2012-06-20 16:38:30 -07005921} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5922
5923typedef PACKED_PRE struct PACKED_POST
5924{
5925 tHalMsgHeader header;
5926 tHalDumpCmdRspParams dumpCmdRspParams;
5927} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5928
5929/*---------------------------------------------------------------------------
5930 *WLAN_HAL_COEX_IND
5931 *-------------------------------------------------------------------------*/
5932#define WLAN_COEX_IND_DATA_SIZE (4)
5933#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5934#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005935#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5936#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005937#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5938#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305939#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5940#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305941#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Abhishek Singh1bb2bc22017-01-02 10:38:38 +05305942#define WLAN_COEX_IND_TYPE_HID_CONNECTED_WLAN_CONNECTED_IN_2p4 (9)
5943#define WLAN_COEX_IND_TYPE_HID_DISCONNECTED_WLAN_CONNECTED_IN_2p4 (10)
Jeff Johnson295189b2012-06-20 16:38:30 -07005944
5945typedef PACKED_PRE struct PACKED_POST
5946{
5947 /*Coex Indication Type*/
5948 tANI_U32 coexIndType;
5949
5950 /*Coex Indication Data*/
5951 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5952}tCoexIndParams,*tpCoexIndParams;
5953
5954typedef PACKED_PRE struct PACKED_POST
5955{
5956 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305957 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005958}tCoexIndMsg, *tpCoexIndMsg;
5959
5960/*---------------------------------------------------------------------------
5961 *WLAN_HAL_OTA_TX_COMPL_IND
5962 *-------------------------------------------------------------------------*/
5963
5964typedef PACKED_PRE struct PACKED_POST
5965{
5966 /*Tx Complete Indication Success or Failure*/
5967 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305968 /* Dialog token */
5969 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005970}tTxComplParams,*tpTxComplParams;
5971
5972typedef PACKED_PRE struct PACKED_POST
5973{
5974 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305975 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005976}tTxComplIndMsg, *tpTxComplIndMsg;
5977
5978/*---------------------------------------------------------------------------
5979 * WLAN_HAL_HOST_SUSPEND_IND
5980 *-------------------------------------------------------------------------*/
5981
5982typedef PACKED_PRE struct PACKED_POST
5983{
5984 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305985 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005986}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5987
5988typedef PACKED_PRE struct PACKED_POST
5989{
5990 tHalMsgHeader header;
5991 tHalWlanHostSuspendIndParam suspendIndParams;
5992}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5993
5994/*---------------------------------------------------------------------------
5995 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5996 *-------------------------------------------------------------------------*/
5997
5998typedef PACKED_PRE struct PACKED_POST
5999{
6000 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05306001 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07006002}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
6003
6004typedef PACKED_PRE struct PACKED_POST
6005{
6006 tHalMsgHeader header;
6007 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
6008}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
6009
6010#ifdef WLAN_FEATURE_P2P
6011/*---------------------------------------------------------------------------
6012 *WLAN_HAL_NOA_ATTR_IND
6013 *-------------------------------------------------------------------------*/
6014
6015typedef PACKED_PRE struct PACKED_POST
6016{
6017 tANI_U8 index ;
6018 tANI_U8 oppPsFlag ;
6019 tANI_U16 ctWin ;
6020
6021 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08006022 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006023 tANI_U32 uNoa1Duration;
6024 tANI_U32 uNoa1Interval;
6025 tANI_U32 uNoa1StartTime;
6026
6027 tANI_U16 uNoa2IntervalCnt;
6028 tANI_U16 rsvd2;
6029 tANI_U32 uNoa2Duration;
6030 tANI_U32 uNoa2Interval;
6031 tANI_U32 uNoa2StartTime;
6032
6033 tANI_U32 status;
6034}tNoaAttrIndParams, *tpNoaAttrIndParams;
6035
6036typedef PACKED_PRE struct PACKED_POST
6037{
6038 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05306039 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006040}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08006041
6042/*---------------------------------------------------------------------------
6043 *WLAN_HAL_NOA_START_IND
6044 *-------------------------------------------------------------------------*/
6045
6046typedef PACKED_PRE struct PACKED_POST
6047{
6048 tANI_U32 status;
6049 tANI_U32 bssIdx;
6050}tNoaStartIndParams, *tpNoaStartIndParams;
6051
6052typedef PACKED_PRE struct PACKED_POST
6053{
6054 tHalMsgHeader header;
6055 tNoaStartIndParams noaStartIndParams;
6056}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07006057#endif
6058
6059/*---------------------------------------------------------------------------
6060 * WLAN_HAL_HOST_RESUME_REQ
6061 *-------------------------------------------------------------------------*/
6062
6063typedef PACKED_PRE struct PACKED_POST
6064{
6065 tANI_U8 configuredMcstBcstFilterSetting;
6066}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
6067
6068typedef PACKED_PRE struct PACKED_POST
6069{
6070 tHalMsgHeader header;
6071 tHalWlanHostResumeReqParam resumeReqParams;
6072}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
6073
6074/*---------------------------------------------------------------------------
6075 * WLAN_HAL_HOST_RESUME_RSP
6076 *--------------------------------------------------------------------------*/
6077typedef PACKED_PRE struct PACKED_POST
6078{
6079 /* success or failure */
6080 tANI_U32 status;
6081} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
6082
6083typedef PACKED_PRE struct PACKED_POST
6084{
6085 tHalMsgHeader header;
6086 tHalHostResumeRspParams hostResumeRspParams;
6087} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
6088
Anand Kumar012623a2013-01-11 17:00:00 -08006089typedef PACKED_PRE struct PACKED_POST
6090{
6091 tANI_U16 staIdx;
6092 // Peer MAC Address, whose BA session has timed out
6093 tSirMacAddr peerMacAddr;
6094 // TID for which a BA session timeout is being triggered
6095 tANI_U8 baTID;
6096 // DELBA direction
6097 // 1 - Originator
6098 // 0 - Recipient
6099 tANI_U8 baDirection;
6100 tANI_U32 reasonCode;
6101 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6102} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6103
6104typedef PACKED_PRE struct PACKED_POST
6105{
6106 tHalMsgHeader header;
6107 tHalWlanDelBaIndMsg hostdelBaParam;
6108} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6109
Jeff Johnson295189b2012-06-20 16:38:30 -07006110/*---------------------------------------------------------------------------
6111 *PNO Messages
6112 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006113/* Max number of channels that a network can be found on*/
6114/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6115 * be changed at same time
6116 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006117#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006118
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306119/*Max number of channels that a network can be found on*/
6120#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6121
Jeff Johnson295189b2012-06-20 16:38:30 -07006122/*Maximum numbers of networks supported by PNO*/
6123#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6124
6125/*The number of scan time intervals that can be programmed into PNO*/
6126#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6127
6128/*Maximum size of the probe template*/
6129#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6130
Dino Mycle8afbac12014-07-04 22:06:17 +05306131/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006132 Immediate - scanning will start immediately and PNO procedure will
6133 be repeated based on timer
6134 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006135 Resume - scanning will start on system resume
6136 Delay - start the scan timer to trigger PNO scan
6137 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006138typedef enum
6139{
6140 ePNO_MODE_IMMEDIATE,
6141 ePNO_MODE_ON_SUSPEND,
6142 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306143 ePNO_MODE_DELAY,
6144 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006145 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6146} ePNOMode;
6147
6148/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306149typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006150{
Dino Mycle8afbac12014-07-04 22:06:17 +05306151 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006152 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306153
Jeff Johnson295189b2012-06-20 16:38:30 -07006154 // Upper layer authentication types
6155 eAUTH_TYPE_WPA = 2,
6156 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306157
Jeff Johnson295189b2012-06-20 16:38:30 -07006158 eAUTH_TYPE_RSN = 4,
6159 eAUTH_TYPE_RSN_PSK = 5,
6160 eAUTH_TYPE_FT_RSN = 6,
6161 eAUTH_TYPE_FT_RSN_PSK = 7,
6162 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6163 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006164 eAUTH_TYPE_CCKM_WPA = 10,
6165 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306166 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6167 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306168
Jeff Johnson295189b2012-06-20 16:38:30 -07006169 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6170
6171}tAuthType;
6172
6173/* Encryption type */
6174typedef enum eEdType
6175{
6176 eED_ANY = 0,
6177 eED_NONE = 1,
6178 eED_WEP = 2,
6179 eED_TKIP = 3,
6180 eED_CCMP = 4,
6181 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306182
Jeff Johnson295189b2012-06-20 16:38:30 -07006183 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6184} tEdType;
6185
6186/* SSID broadcast type */
6187typedef enum eSSIDBcastType
6188{
6189 eBCAST_UNKNOWN = 0,
6190 eBCAST_NORMAL = 1,
6191 eBCAST_HIDDEN = 2,
6192
6193 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6194} tSSIDBcastType;
6195
Dino Mycle8afbac12014-07-04 22:06:17 +05306196/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006197 The network description for which PNO will have to look for
6198*/
6199typedef PACKED_PRE struct PACKED_POST
6200{
6201 /*SSID of the BSS*/
6202 tSirMacSSid ssId;
6203
6204 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306205 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006206
6207 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306208 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006209
Dino Mycle8afbac12014-07-04 22:06:17 +05306210 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006211 0 - if all channels */
6212 tANI_U8 ucChannelCount;
6213 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6214
6215 /*Indicates the RSSI threshold for the network to be considered*/
6216 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306217}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006218
6219typedef PACKED_PRE struct PACKED_POST
6220{
6221 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306222 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006223
Dino Mycle8afbac12014-07-04 22:06:17 +05306224 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006225 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306226 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006227
Dino Mycle8afbac12014-07-04 22:06:17 +05306228 /*e.g: 2 3
6229 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006230 - it will wait 2s between consecutive scans for 3 times
6231 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306232}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006233
Dino Mycle8afbac12014-07-04 22:06:17 +05306234/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006235 The network parameters to be sent to the PNO algorithm
6236*/
6237typedef PACKED_PRE struct PACKED_POST
6238{
6239 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306240 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006241
Dino Mycle8afbac12014-07-04 22:06:17 +05306242 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006243 two consecutive scan procedures
6244 If the desired is for a uniform timer that fires always at the exact same
6245 interval - one single value is to be set
6246 If there is a desire for a more complex - telescopic like timer multiple
6247 values can be set - once PNO reaches the end of the array it will
6248 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306249 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006250
6251}tScanTimersType;
6252
6253typedef PACKED_PRE struct PACKED_POST {
6254
6255 /*Enable PNO*/
6256 tANI_U32 enable;
6257
6258 /*Immediate, On Suspend, On Resume*/
6259 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306260
Jeff Johnson295189b2012-06-20 16:38:30 -07006261 /*Number of networks sent for PNO*/
6262 tANI_U32 ucNetworksCount;
6263
6264 /*The networks that PNO needs to look for*/
6265 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6266
6267 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306268 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006269
6270 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306271 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006272 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6273
6274 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306275 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006276 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6277
6278} tPrefNetwListParams, * tpPrefNetwListParams;
6279
6280/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306281 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006282*/
6283typedef PACKED_PRE struct PACKED_POST
6284{
6285 tHalMsgHeader header;
6286 tPrefNetwListParams prefNetwListParams;
6287} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6288
6289
Dino Mycle8afbac12014-07-04 22:06:17 +05306290/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006291 The network description for which PNO will have to look for
6292*/
6293typedef PACKED_PRE struct PACKED_POST
6294{
6295 /*SSID of the BSS*/
6296 tSirMacSSid ssId;
6297
6298 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306299 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006300
6301 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306302 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006303
6304 /*SSID broadcast type, normal, hidden or unknown*/
6305 tSSIDBcastType bcastNetworkType;
6306
Dino Mycle8afbac12014-07-04 22:06:17 +05306307 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006308 0 - if all channels */
6309 tANI_U8 ucChannelCount;
6310 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6311
6312 /*Indicates the RSSI threshold for the network to be considered*/
6313 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306314}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006315
6316typedef PACKED_PRE struct PACKED_POST {
6317
6318 /*Enable PNO*/
6319 tANI_U32 enable;
6320
6321 /*Immediate, On Suspend, On Resume*/
6322 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306323
Jeff Johnson295189b2012-06-20 16:38:30 -07006324 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306325 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006326
6327 /*The networks that PNO needs to look for*/
6328 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6329
6330 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306331 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006332
6333 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306334 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006335 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6336
6337 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306338 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006339 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6340
6341} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6342
6343/*
6344 Preferred network list request new
6345*/
6346typedef PACKED_PRE struct PACKED_POST
6347{
6348 tHalMsgHeader header;
6349 tPrefNetwListParamsNew prefNetwListParams;
6350} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6351
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006352#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6353typedef PACKED_PRE struct PACKED_POST
6354{
6355 tSirMacSSid ssId;
6356 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6357 tANI_U32 authentication;
6358 tEdType encryption;
6359 tEdType mcencryption;
6360 tANI_U8 ChannelCount;
6361 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6362}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006363
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006364typedef PACKED_PRE struct PACKED_POST
6365{
6366 tANI_U8 mdiePresent;
6367 tANI_U16 mobilityDomain;
6368}tMobilityDomainInfo;
6369
6370typedef PACKED_PRE struct PACKED_POST {
6371 eAniBoolean RoamScanOffloadEnabled;
6372 tANI_S8 LookupThreshold;
6373 tANI_U8 RoamRssiDiff;
6374 tANI_U8 ChannelCacheType;
6375 tANI_U8 Command;
6376 tANI_U8 StartScanReason;
6377 tANI_U16 NeighborScanTimerPeriod;
6378 tANI_U16 NeighborRoamScanRefreshPeriod;
6379 tANI_U16 NeighborScanChannelMinTime;
6380 tANI_U16 NeighborScanChannelMaxTime;
6381 tANI_U16 EmptyRefreshScanPeriod;
6382 tANI_U8 ValidChannelCount;
6383 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006384 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006385
6386 tANI_U16 us24GProbeSize;
6387 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6388 tANI_U16 us5GProbeSize;
6389 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6390 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006391 tANI_U8 nProbes;
6392 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006393 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006394 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006395 tANI_U8 RoamOffloadEnabled;
6396 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6397 tANI_U8 Prefer5GHz;
6398 tANI_U8 RoamRssiCatGap;
6399 tANI_U8 Select5GHzMargin;
Sreelakshmi Konamki24ebdca2017-05-29 15:48:36 +05306400 tANI_U8 WeakZoneRssiThresholdForRoam;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006401 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6402 tRoamNetworkType ConnectedNetwork;
6403 tMobilityDomainInfo MDID;
6404} tRoamCandidateListParams, * tpRoamCandidateListParams;
6405
6406typedef PACKED_PRE struct PACKED_POST
6407{
Kumar Anandea78e792013-10-10 23:47:01 -07006408 tHalMsgHeader header;
6409 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006410} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6411
6412typedef PACKED_PRE struct PACKED_POST
6413{
Kumar Anandea78e792013-10-10 23:47:01 -07006414 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006415
Kumar Anandea78e792013-10-10 23:47:01 -07006416 /* status of the request - just to indicate that PNO has acknowledged
6417 * the request and will start scanning */
6418 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006419} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6420#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006421
6422/*
6423 Preferred network list response
6424*/
6425typedef PACKED_PRE struct PACKED_POST
6426{
6427 tHalMsgHeader header;
6428
6429 /* status of the request - just to indicate that PNO has acknowledged
6430 * the request and will start scanning*/
6431 tANI_U32 status;
6432} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6433
6434/*
6435 Preferred network indication parameters
6436*/
6437typedef PACKED_PRE struct PACKED_POST {
6438
6439 /*Network that was found with the highest RSSI*/
6440 tSirMacSSid ssId;
6441
6442 /*Indicates the RSSI */
6443 tANI_U8 rssi;
6444
6445 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6446 tANI_U16 frameLength;
6447
6448} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6449
6450/*
6451 Preferred network found indication
6452*/
6453typedef PACKED_PRE struct PACKED_POST {
6454
6455 tHalMsgHeader header;
6456 tPrefNetwFoundParams prefNetwFoundParams;
6457} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6458
6459
6460typedef PACKED_PRE struct PACKED_POST {
6461
6462 /*RSSI Threshold*/
6463 tANI_U8 ucRssiThreshold;
6464
6465} tRssiFilterParams, * tpRssiFilterParams;
6466
Jeff Johnson295189b2012-06-20 16:38:30 -07006467/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306468 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006469*/
6470typedef PACKED_PRE struct PACKED_POST
6471{
6472 tHalMsgHeader header;
6473 tRssiFilterParams prefRSSIFilterParams;
6474} tSetRssiFilterReq, *tpSetRssiFilterReq;
6475
6476/*
6477 Set RSSI filter resp
6478*/
6479typedef PACKED_PRE struct PACKED_POST{
6480 tHalMsgHeader header;
6481 /*status of the request */
6482 tANI_U32 status;
6483} tSetRssiFilterResp, *tpSetRssiFilterResp;
6484/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306485 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006486*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306487typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006488{
6489
6490 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306491 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006492
6493 /*Lets PNO know that host has determined the regulatory domain*/
6494 tANI_U8 b11dResolved;
6495
6496 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306497 tANI_U8 ucChannelCount;
6498 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006499
6500 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306501 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006502
6503 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306504 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006505
6506 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306507 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006508
6509 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306510 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006511
6512 /*Cb State*/
6513 ePhyChanBondState cbState;
6514
6515} tUpdateScanParams, * tpUpdateScanParams;
6516
6517/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306518 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306519*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306520typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306521{
6522
6523 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306524 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306525
6526 /*Lets PNO know that host has determined the regulatory domain*/
6527 tANI_U8 b11dResolved;
6528
6529 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306530 tANI_U8 ucChannelCount;
6531 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306532
6533 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306534 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306535
6536 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306537 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306538
6539 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306540 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306541
6542 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306543 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306544
6545 /*Cb State*/
6546 ePhyChanBondState cbState;
6547
6548} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6549
6550/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006551 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306552 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006553*/
6554typedef PACKED_PRE struct PACKED_POST{
6555
6556 tHalMsgHeader header;
6557 tUpdateScanParams scanParams;
6558} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6559
6560/*
6561 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306562 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006563*/
6564typedef PACKED_PRE struct PACKED_POST{
6565
6566 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306567 tUpdateScanParamsEx scanParams;
6568} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6569
6570/*
6571 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306572 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306573*/
6574typedef PACKED_PRE struct PACKED_POST{
6575
6576 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006577
6578 /*status of the request */
6579 tANI_U32 status;
6580
6581} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6582
6583/*---------------------------------------------------------------------------
6584 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6585 *--------------------------------------------------------------------------*/
6586typedef PACKED_PRE struct PACKED_POST
6587{
6588 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6589 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6590 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6591 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6592} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6593
6594typedef PACKED_PRE struct PACKED_POST
6595{
6596 tHalMsgHeader header;
6597 tHalTxPerTrackingReqParam txPerTrackingParams;
6598} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6599
6600/*---------------------------------------------------------------------------
6601 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6602 *--------------------------------------------------------------------------*/
6603typedef PACKED_PRE struct PACKED_POST
6604{
6605 /* success or failure */
6606 tANI_U32 status;
6607} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6608
6609typedef PACKED_PRE struct PACKED_POST
6610{
6611 tHalMsgHeader header;
6612 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6613} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6614
6615/*---------------------------------------------------------------------------
6616 * WLAN_HAL_TX_PER_HIT_IND
6617 *--------------------------------------------------------------------------*/
6618typedef PACKED_PRE struct PACKED_POST
6619{
6620 tHalMsgHeader header;
6621}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6622
6623/*---------------------------------------------------------------------------
6624 *******************Packet Filtering Definitions Begin*******************
6625 *--------------------------------------------------------------------------*/
6626#define HAL_PROTOCOL_DATA_LEN 8
6627#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6628#define HAL_MAX_NUM_FILTERS 20
6629#define HAL_MAX_CMP_PER_FILTER 10
6630
6631typedef enum
6632{
6633 HAL_RCV_FILTER_TYPE_INVALID,
6634 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6635 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6636 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6637}tHalReceivePacketFilterType;
6638
Dino Mycle8afbac12014-07-04 22:06:17 +05306639typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006640{
6641 HAL_FILTER_PROTO_TYPE_INVALID,
6642 HAL_FILTER_PROTO_TYPE_MAC,
6643 HAL_FILTER_PROTO_TYPE_ARP,
6644 HAL_FILTER_PROTO_TYPE_IPV4,
6645 HAL_FILTER_PROTO_TYPE_IPV6,
6646 HAL_FILTER_PROTO_TYPE_UDP,
6647 HAL_FILTER_PROTO_TYPE_MAX
6648}tHalRcvPktFltProtocolType;
6649
Dino Mycle8afbac12014-07-04 22:06:17 +05306650typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006651{
6652 HAL_FILTER_CMP_TYPE_INVALID,
6653 HAL_FILTER_CMP_TYPE_EQUAL,
6654 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6655 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6656 HAL_FILTER_CMP_TYPE_MAX
6657}tHalRcvPktFltCmpFlagType;
6658
Dino Mycle8afbac12014-07-04 22:06:17 +05306659typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006660{
6661 tANI_U8 protocolLayer;
6662 tANI_U8 cmpFlag;
6663 tANI_U16 dataLength; /* Length of the data to compare */
6664 tANI_U8 dataOffset; /* from start of the respective frame header */
6665 tANI_U8 reserved; /* Reserved field */
6666 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6667 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6668}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6669
6670typedef PACKED_PRE struct PACKED_POST
6671{
6672 tANI_U8 filterId;
6673 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306674 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006675 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006676 tHalRcvPktFilterParams paramsData[1];
6677}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6678
6679typedef PACKED_PRE struct PACKED_POST
6680{
Jeff Johnsone7245742012-09-05 17:12:55 -07006681 tANI_U8 filterId;
6682 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306683 tANI_U8 numParams;
6684 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006685 tANI_U8 bssIdx;
6686 tHalRcvPktFilterParams paramsData[1];
6687}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6688
6689typedef PACKED_PRE struct PACKED_POST
6690{
Jeff Johnson295189b2012-06-20 16:38:30 -07006691 tHalMsgHeader header;
6692 tHalRcvPktFilterCfgType pktFilterCfg;
6693} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6694
Jeff Johnsone7245742012-09-05 17:12:55 -07006695typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006696{
6697 tANI_U8 dataOffset; /* from start of the respective frame header */
6698 tANI_U32 cMulticastAddr;
6699 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006700 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006701} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6702
6703typedef PACKED_PRE struct PACKED_POST
6704{
6705 /* success or failure */
6706 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006707 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006708} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6709
6710typedef PACKED_PRE struct PACKED_POST
6711{
6712 tHalMsgHeader header;
6713 tHalSetPktFilterRspParams pktFilterRspParams;
6714} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6715
Jeff Johnsone7245742012-09-05 17:12:55 -07006716typedef PACKED_PRE struct PACKED_POST
6717{
6718 tANI_U8 bssIdx;
6719} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006720
6721typedef PACKED_PRE struct PACKED_POST
6722{
6723 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006724 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006725} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6726
Jeff Johnsone7245742012-09-05 17:12:55 -07006727
Jeff Johnson295189b2012-06-20 16:38:30 -07006728typedef PACKED_PRE struct PACKED_POST
6729{
6730 tANI_U8 filterId;
6731 tANI_U32 matchCnt;
6732} tHalRcvFltPktMatchCnt;
6733typedef PACKED_PRE struct PACKED_POST
6734{
6735 /* Success or Failure */
6736 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306737 tANI_U32 matchCnt;
6738 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006739 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006740} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6741
6742typedef PACKED_PRE struct PACKED_POST
6743{
6744 tHalMsgHeader header;
6745 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6746} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6747
6748typedef PACKED_PRE struct PACKED_POST
6749{
6750 tANI_U32 status; /* only valid for response message */
6751 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006752 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006753}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6754
6755typedef PACKED_PRE struct PACKED_POST
6756{
6757 tHalMsgHeader header;
6758 tHalRcvFltPktClearParam filterClearParam;
6759} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6760
6761typedef PACKED_PRE struct PACKED_POST
6762{
6763 tHalMsgHeader header;
6764 tHalRcvFltPktClearParam filterClearParam;
6765} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6766
6767typedef PACKED_PRE struct PACKED_POST
6768{
Dino Mycle8afbac12014-07-04 22:06:17 +05306769 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006770 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006771}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6772
6773typedef PACKED_PRE struct PACKED_POST
6774{
6775 tHalMsgHeader header;
6776 tHalRcvFltMcAddrListType mcAddrList;
6777} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6778
6779typedef PACKED_PRE struct PACKED_POST
6780{
6781 tHalMsgHeader header;
6782 tHalRcvFltPktSetMcListRspType rspParam;
6783} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6784
6785
6786/*---------------------------------------------------------------------------
6787 *******************Packet Filtering Definitions End*******************
6788 *--------------------------------------------------------------------------*/
6789
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006790/*
6791 * There are two versions of this message
6792 * Version 1 : Base version
6793 * Current version : Base version + Max LI modulated DTIM
6794 */
6795typedef PACKED_PRE struct PACKED_POST
6796{
6797 /* Ignore DTIM */
6798 tANI_U32 uIgnoreDTIM;
6799
6800 /*DTIM Period*/
6801 tANI_U32 uDTIMPeriod;
6802
6803 /* Listen Interval */
6804 tANI_U32 uListenInterval;
6805
6806 /* Broadcast Multicast Filter */
6807 tANI_U32 uBcastMcastFilter;
6808
6809 /* Beacon Early Termination */
6810 tANI_U32 uEnableBET;
6811
6812 /* Beacon Early Termination Interval */
6813 tANI_U32 uBETInterval;
6814}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6815
6816typedef PACKED_PRE struct PACKED_POST
6817{
6818 tHalMsgHeader header;
6819 tSetPowerParamsVer1Type powerParams;
6820} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6821
Jeff Johnson295189b2012-06-20 16:38:30 -07006822typedef PACKED_PRE struct PACKED_POST
6823{
6824 /* Ignore DTIM */
6825 tANI_U32 uIgnoreDTIM;
6826
6827 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306828 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006829
6830 /* Listen Interval */
6831 tANI_U32 uListenInterval;
6832
6833 /* Broadcast Multicast Filter */
6834 tANI_U32 uBcastMcastFilter;
6835
6836 /* Beacon Early Termination */
6837 tANI_U32 uEnableBET;
6838
6839 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306840 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006841
6842 /* MAX LI for modulated DTIM */
6843 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006844}tSetPowerParamsType, *tpSetPowerParamsType;
6845
6846typedef PACKED_PRE struct PACKED_POST
6847{
6848 tHalMsgHeader header;
6849 tSetPowerParamsType powerParams;
6850} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6851
6852typedef PACKED_PRE struct PACKED_POST{
6853
6854 tHalMsgHeader header;
6855
6856 /*status of the request */
6857 tANI_U32 status;
6858
6859} tSetPowerParamsResp, *tpSetPowerParamsResp;
6860
6861/*---------------------------------------------------------------------------
6862 ****************Capability bitmap exchange definitions and macros starts*************
6863 *--------------------------------------------------------------------------*/
6864
Anand Kumar012623a2013-01-11 17:00:00 -08006865typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006866 MCC = 0,
6867 P2P = 1,
6868 DOT11AC = 2,
6869 SLM_SESSIONIZATION = 3,
6870 DOT11AC_OPMODE = 4,
6871 SAP32STA = 5,
6872 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006873 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006874 WLANACTIVE_OFFLOAD = 8,
6875 BEACON_OFFLOAD = 9,
6876 SCAN_OFFLOAD = 10,
6877 ROAM_OFFLOAD = 11,
6878 BCN_MISS_OFFLOAD = 12,
6879 STA_POWERSAVE = 13,
6880 STA_ADVANCED_PWRSAVE = 14,
6881 AP_UAPSD = 15,
6882 AP_DFS = 16,
6883 BLOCKACK = 17,
6884 PHY_ERR = 18,
6885 BCN_FILTER = 19,
6886 RTT = 20,
6887 RATECTRL = 21,
6888 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006889 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006890 SPECULATIVE_PS_POLL = 24,
6891 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006892 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006893 WLAN_SCAN_OFFLOAD = 27,
6894 WLAN_PERIODIC_TX_PTRN = 28,
6895 ADVANCE_TDLS = 29,
6896 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306897 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306898 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306899 CH_SWITCH_V1 = 33,
6900 HT40_OBSS_SCAN = 34,
6901 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006902 WLAN_MCADDR_FLT = 36,
6903 WLAN_CH144 = 37,
6904 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306905 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306906 LINK_LAYER_STATS_MEAS = 40,
6907 MU_MIMO = 41,
6908 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306909 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306910 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306911 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306912 DISA = 46,
6913 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306914 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306915 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306916 TDLS_OFF_CHANNEL = 51,
Padma, Santhosh Kumarcfbcf942015-12-08 16:07:47 +05306917 RTT3 = 52,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306918 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306919 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306920 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306921 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306922 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306923 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306924 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306925 WIFI_CONFIG = 61,
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05306926 ANTENNA_DIVERSITY_SELECTION = 62,
Kapil Guptac1043632016-06-25 00:23:30 +05306927 PER_BASED_ROAMING = 63,
Agrawal Ashish1d75aac2016-12-12 12:36:59 +05306928 SAP_MODE_WOW = 64,
6929 SAP_OFFLOADS = 65,
Sravan Kumar Kairam9ba5f5b2016-12-13 13:50:46 +05306930 SAP_BUFF_ALLOC = 66,
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +05306931 MAKE_BEFORE_BREAK = 67,
Anurag Chouhance0f0822017-01-24 15:44:26 +05306932 NUD_DEBUG = 68,
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05306933 /* 69 reserved for FATAL_EVENT_LOGGING */
6934 /* 70 reserved for WIFI_DUAL_BAND_ENABLE */
6935 PROBE_RSP_TEMPLATE_VER1 = 71,
Rajeev Kumar Sirasanagandlaba4d7692017-12-19 13:32:36 +05306936 STA_MONITOR_SCC = 72,
Kumar Anandea78e792013-10-10 23:47:01 -07006937 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006938} placeHolderInCapBitmap;
6939
Jeff Johnson295189b2012-06-20 16:38:30 -07006940typedef PACKED_PRE struct PACKED_POST{
6941
6942 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006943} tWlanFeatCaps, *tpWlanFeatCaps;
6944
6945typedef PACKED_PRE struct PACKED_POST{
6946
Dino Mycle8afbac12014-07-04 22:06:17 +05306947 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006948 tWlanFeatCaps wlanFeatCaps;
6949
6950} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6951
Jeff Johnsone7245742012-09-05 17:12:55 -07006952#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6953#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006954#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006955#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006956#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006957#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006958#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006959#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306960#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306961#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306962#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306963#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306964#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006965
Jeff Johnsone7245742012-09-05 17:12:55 -07006966tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6967
Jeff Johnson295189b2012-06-20 16:38:30 -07006968#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006969 if ((b)<=127) { \
6970 arr_index = (b)/32; \
6971 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006972 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006973 (a)->featCaps[arr_index] |= (1<<bit_index); \
6974 } \
6975 }
6976#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006977 if ((b)<=127) { \
6978 arr_index = (b)/32; \
6979 bit_index = (b)%32; \
6980 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006981 } \
6982 }
6983#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006984 if ((b)<=127) { \
6985 arr_index = (b)/32; \
6986 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006987 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006988 } \
6989 }
6990
6991/*---------------------------------------------------------------------------
6992 * WLAN_HAL_WAKE_REASON_IND
6993 *--------------------------------------------------------------------------*/
6994
6995/* status codes to help debug rekey failures */
6996typedef enum
6997{
6998 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6999 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
7000 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
7001 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
7002 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
7003 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
7004 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
7005 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
7006 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
7007 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
7008
7009 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
7010} tGTKRekeyStatus;
7011
7012/* wake reason types */
7013typedef enum
7014{
7015 WLAN_HAL_WAKE_REASON_NONE = 0,
7016 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
7017 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
7018 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
7019 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
7020 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
7021 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
7022 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
7023} tWakeReasonType;
7024
7025/*
7026 Wake Packet which is saved at tWakeReasonParams.DataStart
7027 This data is sent for any wake reasons that involve a packet-based wakeup :
7028
7029 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
7030 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
7031 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
7032 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
7033 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
7034
7035 The information is provided to the host for auditing and debug purposes
7036
7037*/
7038
7039/*
7040 Wake reason indication parameters
7041*/
7042typedef PACKED_PRE struct PACKED_POST
7043{
7044 uint32 ulReason; /* see tWakeReasonType */
7045 uint32 ulReasonArg; /* argument specific to the reason type */
7046 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
7047 HAL truncates the data (i.e. data packets) this length
7048 will be less than the actual length */
7049 uint32 ulActualDataLen; /* actual length of data */
7050 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
7051 see specific wake type */
7052} tWakeReasonParams, *tpWakeReasonParams;
7053
7054/*
7055 Wake reason indication
7056*/
7057typedef PACKED_PRE struct PACKED_POST
7058{
7059 tHalMsgHeader header;
7060 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07007061 tANI_U32 uBssIdx : 8;
7062 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07007063} tHalWakeReasonInd, *tpHalWakeReasonInd;
7064
7065/*---------------------------------------------------------------------------
7066* WLAN_HAL_GTK_OFFLOAD_REQ
7067*--------------------------------------------------------------------------*/
7068
7069#define HAL_GTK_KEK_BYTES 16
7070#define HAL_GTK_KCK_BYTES 16
7071
7072#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
7073
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007074#define GTK_SET_BSS_KEY_TAG 0x1234AA55
7075
Jeff Johnson295189b2012-06-20 16:38:30 -07007076typedef PACKED_PRE struct PACKED_POST
7077{
7078 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05307079 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07007080 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
7081 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07007082 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007083} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
7084
7085typedef PACKED_PRE struct PACKED_POST
7086{
7087 tHalMsgHeader header;
7088 tHalGtkOffloadReqParams gtkOffloadReqParams;
7089} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
7090
7091/*---------------------------------------------------------------------------
7092* WLAN_HAL_GTK_OFFLOAD_RSP
7093*--------------------------------------------------------------------------*/
7094typedef PACKED_PRE struct PACKED_POST
7095{
7096 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07007097 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007098} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
7099
7100typedef PACKED_PRE struct PACKED_POST
7101{
7102 tHalMsgHeader header;
7103 tHalGtkOffloadRspParams gtkOffloadRspParams;
7104} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
7105
7106
7107/*---------------------------------------------------------------------------
7108* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
7109*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07007110typedef PACKED_PRE struct PACKED_POST
7111{
7112 tANI_U8 bssIdx;
7113
7114} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007115
7116typedef PACKED_PRE struct PACKED_POST
7117{
7118 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007119 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007120} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7121
7122/*---------------------------------------------------------------------------
7123* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7124*--------------------------------------------------------------------------*/
7125typedef PACKED_PRE struct PACKED_POST
7126{
7127 tANI_U32 ulStatus; /* success or failure */
7128 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7129 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7130 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7131 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7132 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007133 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007134} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7135
7136typedef PACKED_PRE struct PACKED_POST
7137{
7138 tHalMsgHeader header;
7139 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7140} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7141
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007142/*---------------------------------------------------------------------------
7143* WLAN_HAL_DHCP_IND
7144*--------------------------------------------------------------------------*/
7145typedef PACKED_PRE struct PACKED_POST
7146{
7147 /*Indicates the device mode which indicates about the DHCP activity */
7148 tANI_U8 device_mode;
7149 tSirMacAddr macAddr;
7150} tDHCPInfo, *tpDHCPInfo;
7151
7152typedef PACKED_PRE struct PACKED_POST
7153{
7154 tHalMsgHeader header;
7155 tANI_U32 status; /* success or failure */
7156} tDHCPIndStatus, *tpDHCPIndstatus;
7157
Jeff Johnson295189b2012-06-20 16:38:30 -07007158/*
7159 Thermal Mitigation mode of operation.
7160 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7161 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7162 reducing transmit power
7163 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7164*/
7165typedef enum
7166{
7167 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7168 HAL_THERMAL_MITIGATION_MODE_0,
7169 HAL_THERMAL_MITIGATION_MODE_1,
7170 HAL_THERMAL_MITIGATION_MODE_2,
7171 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7172}tHalThermalMitigationModeType;
7173//typedef tANI_S16 tHalThermalMitigationModeType;
7174
7175/*
7176 Thermal Mitigation level.
7177 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7178 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7179
7180 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7181 level indicates normal mode of operation
7182 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7183 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7184 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7185 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7186*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307187typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007188{
7189 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7190 HAL_THERMAL_MITIGATION_LEVEL_0,
7191 HAL_THERMAL_MITIGATION_LEVEL_1,
7192 HAL_THERMAL_MITIGATION_LEVEL_2,
7193 HAL_THERMAL_MITIGATION_LEVEL_3,
7194 HAL_THERMAL_MITIGATION_LEVEL_4,
7195 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7196}tHalThermalMitigationLevelType;
7197//typedef tANI_S16 tHalThermalMitigationLevelType;
7198
7199typedef PACKED_PRE struct PACKED_POST
7200{
7201 /* Thermal Mitigation Operation Mode */
7202 tHalThermalMitigationModeType thermalMitMode;
7203
7204 /* Thermal Mitigation Level */
7205 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307206
Jeff Johnson295189b2012-06-20 16:38:30 -07007207}tSetThermalMitgationType, *tpSetThermalMitgationType;
7208
7209/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7210typedef PACKED_PRE struct PACKED_POST
7211{
7212 tHalMsgHeader header;
7213 tSetThermalMitgationType thermalMitParams;
7214} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7215
7216typedef PACKED_PRE struct PACKED_POST{
7217
7218 tHalMsgHeader header;
7219
7220 /*status of the request */
7221 tANI_U32 status;
7222
7223} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7224
Dino Mycle8afbac12014-07-04 22:06:17 +05307225/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007226provided to FW from Host via periodic messages */
7227typedef PACKED_PRE struct PACKED_POST {
7228 /* TX stats */
7229 uint32 txBytesPushed;
7230 uint32 txPacketsPushed;
7231
7232 /* RX stats */
7233 uint32 rxBytesRcvd;
7234 uint32 rxPacketsRcvd;
7235 uint32 rxTimeTotal;
7236} tStaStatsClassB, *tpStaStatsClassB;
7237
7238typedef PACKED_PRE struct PACKED_POST {
7239
7240 /* Duration over which this stats was collected */
7241 tANI_U32 duration;
7242
7243 /* Per STA Stats */
7244 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7245} tStatsClassBIndParams, *tpStatsClassBIndParams;
7246
7247typedef PACKED_PRE struct PACKED_POST {
7248
7249 tHalMsgHeader header;
7250
7251 /* Class B Stats */
7252 tStatsClassBIndParams statsClassBIndParams;
7253} tStatsClassBInd, *tpStatsClassBInd;
7254
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307255/*Wifi Proximity paramters in AP mode*/
7256#ifdef FEATURE_WIFI_PROXIMITY
7257
7258typedef PACKED_PRE struct PACKED_POST{
7259
7260 tANI_U8 wifiProximityChannel;
7261 tANI_U32 wifiProximityDuration;
7262 tANI_U32 wifiProximityInterval;
7263 tANI_U32 wifiProximityMode;
7264 tANI_U32 wifiProximityStatus;
7265 tSirMacAddr bssId;
7266 tSirMacSSid ssId;
7267
7268} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7269
7270typedef PACKED_PRE struct PACKED_POST
7271{
7272 tHalMsgHeader header;
7273
7274 tSetWifiProximityReqParam wifiProximityReqParams;
7275
7276}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7277
7278/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7279typedef PACKED_PRE struct PACKED_POST{
7280
7281 tHalMsgHeader header;
7282
7283 /*status of the request */
7284 tANI_U32 status;
7285
7286} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7287
7288#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007289
7290#ifdef FEATURE_SPECULATIVE_PS_POLL
7291/*---------------------------------------------------------------------------
7292 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7293 *--------------------------------------------------------------------------*/
7294typedef PACKED_PRE struct PACKED_POST
7295{
7296 tANI_U8 bssIdx;
7297 tANI_U16 serviceInterval;
7298 tANI_U16 suspendInterval;
7299 tANI_U8 acMask;
7300} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7301
7302typedef PACKED_PRE struct PACKED_POST
7303{
7304 tHalMsgHeader header;
7305 tHalStartSpecPsPollReqParams specPsPollReq;
7306} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7307
7308/*---------------------------------------------------------------------------
7309 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7310 *--------------------------------------------------------------------------*/
7311typedef PACKED_PRE struct PACKED_POST
7312{
7313 /* success or failure */
7314 tANI_U32 status;
7315 tANI_U8 bssIdx;
7316} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7317
7318typedef PACKED_PRE struct PACKED_POST
7319{
7320 tHalMsgHeader header;
7321 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7322} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7323
7324/*---------------------------------------------------------------------------
7325 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7326 *--------------------------------------------------------------------------*/
7327typedef PACKED_PRE struct PACKED_POST
7328{
7329 tHalMsgHeader header;
7330 tANI_U8 bssIdx;
7331} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7332#endif
7333
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307334#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307335#define HAL_MAX_SUPP_CHANNELS 128
7336#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307337/*---------------------------------------------------------------------------
7338 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7339 *-------------------------------------------------------------------------*/
7340typedef PACKED_PRE struct PACKED_POST
7341{
7342 /*STA Index*/
7343 tANI_U16 staIdx;
7344
7345 /* if this is 1, self is initiator and peer is reponder */
7346 tANI_U8 bIsResponder;
7347
7348 /* QoS Info */
7349 tANI_U8 acVOUAPSDFlag:1;
7350 tANI_U8 acVIUAPSDFlag:1;
7351 tANI_U8 acBKUAPSDFlag:1;
7352 tANI_U8 acBEUAPSDFlag:1;
7353 tANI_U8 aAck:1;
7354 tANI_U8 maxServicePeriodLength:2;
7355 tANI_U8 moreDataAck:1;
7356
7357 /*TDLS Peer U-APSD Buffer STA Support*/
7358 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007359
7360 /*TDLS off channel related params */
7361 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307362 tANI_U8 peerCurrOperClass;
7363 tANI_U8 selfCurrOperClass;
7364 tANI_U8 validChannelsLen;
7365 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7366 tANI_U8 validOperClassesLen;
7367 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307368}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7369
7370typedef PACKED_PRE struct PACKED_POST
7371{
7372 tHalMsgHeader header;
7373 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7374} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7375
7376/*---------------------------------------------------------------------------
7377 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7378 *-------------------------------------------------------------------------*/
7379
7380typedef PACKED_PRE struct PACKED_POST
7381{
7382 tANI_U32 status;
7383
7384 /*STA Index*/
7385 tANI_U16 staIdx;
7386} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7387
7388typedef PACKED_PRE struct PACKED_POST
7389{
7390 tHalMsgHeader header;
7391 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7392} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307393/*---------------------------------------------------------------------------
7394 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7395 + *-------------------------------------------------------------------------*/
7396typedef PACKED_PRE struct PACKED_POST
7397{
7398 /*STA Index*/
7399 tANI_U16 staIdx;
7400 /* if this is 1, self is initiator otherwise responder only*/
7401 tANI_U8 isOffchannelInitiator;
7402 /*TDLS off channel related params */
7403 tANI_U8 targetOperClass;
7404 tANI_U8 targetChannel;
7405 tANI_U8 secondaryChannelOffset;
7406 tANI_U8 reserved[32];
7407}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7408
7409typedef PACKED_PRE struct PACKED_POST
7410{
7411 tHalMsgHeader header;
7412 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7413} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7414/*---------------------------------------------------------------------------
7415 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7416 *-------------------------------------------------------------------------*/
7417
7418typedef PACKED_PRE struct PACKED_POST
7419{
7420 tANI_U32 status;
7421 /*STA Index*/
7422 tANI_U16 staIdx;
7423} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7424
7425typedef PACKED_PRE struct PACKED_POST
7426{
7427 tHalMsgHeader header;
7428 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7429} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7430
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307431
7432/*---------------------------------------------------------------------------
7433 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7434 *-------------------------------------------------------------------------*/
7435typedef PACKED_PRE struct PACKED_POST
7436{
7437 /*STA Index*/
7438 tANI_U16 staIdx;
7439}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7440
7441typedef PACKED_PRE struct PACKED_POST
7442{
7443 tHalMsgHeader header;
7444 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7445} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7446
7447/*---------------------------------------------------------------------------
7448 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7449 *-------------------------------------------------------------------------*/
7450
7451typedef PACKED_PRE struct PACKED_POST
7452{
7453 tANI_U32 status;
7454
7455 /*STA Index*/
7456 tANI_U16 staIdx;
7457} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7458
7459typedef PACKED_PRE struct PACKED_POST
7460{
7461 tHalMsgHeader header;
7462 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7463} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7464
7465/*---------------------------------------------------------------------------
7466 *WLAN_HAL_TDLS_IND
7467 *--------------------------------------------------------------------------*/
7468
7469typedef PACKED_PRE struct PACKED_POST
7470{
7471 tANI_U16 assocId;
7472 tANI_U16 staIdx;
7473 tANI_U16 status;
7474 tANI_U16 reasonCode;
7475}tTdlsIndParams, *tpTdlsIndParams;
7476
7477
7478typedef PACKED_PRE struct PACKED_POST
7479{
7480 tHalMsgHeader header;
7481 tTdlsIndParams tdlsIndParams;
7482}tTdlsIndMsg, *tpTdlsIndMsg;
7483
7484#endif
7485
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007486/*---------------------------------------------------------------------------
7487 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7488 *--------------------------------------------------------------------------*/
7489
7490typedef PACKED_PRE struct PACKED_POST
7491{
7492 tANI_U8 bssIdx;
7493 tANI_U8 staIdx;
7494 tSirMacAddr staAddr;
7495}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7496
7497
7498typedef PACKED_PRE struct PACKED_POST
7499{
7500 tHalMsgHeader header;
7501 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7502}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7503
7504
Kumar Anandea78e792013-10-10 23:47:01 -07007505/*********** Scan Offload Related Structures *************/
7506#define HAL_NUM_SCAN_SSID 10
7507#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007508
Kumar Anandea78e792013-10-10 23:47:01 -07007509/*
7510 * Enumetation to indicate scan type (active/passive)
7511 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007512typedef enum
7513{
Kumar Anandea78e792013-10-10 23:47:01 -07007514 eSIR_PASSIVE_SCAN,
7515 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7516} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007517
7518typedef PACKED_PRE struct PACKED_POST
7519{
Kumar Anandea78e792013-10-10 23:47:01 -07007520 tANI_U8 numBssid;
7521 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7522 tANI_U8 numSsid;
7523 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7524 tANI_BOOLEAN hiddenSsid;
7525 tSirMacAddr selfMacAddr;
7526 tSirBssType bssType;
7527 tSirScanType scanType;
7528 tANI_U32 minChannelTime;
7529 tANI_U32 maxChannelTime;
7530 tANI_BOOLEAN p2pSearch;
7531 tANI_U8 channelCount;
7532 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7533 tANI_U16 ieFieldLen;
7534 tANI_U8 ieField[1];
7535}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007536
7537/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007538 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007539 *-------------------------------------------------------------------------*/
7540typedef PACKED_PRE struct PACKED_POST
7541{
Kumar Anandf53016f2013-09-04 15:15:53 -07007542 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007543 tScanOffloadReqType scanOffloadParams;
7544} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007545
7546/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007547 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007548 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007549typedef PACKED_PRE struct PACKED_POST
7550{
7551 tHalMsgHeader header;
7552
7553 /*status of the request - just to indicate SO has acknowledged
7554 * * the request and will start scanning*/
7555 tANI_U32 status;
7556} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7557
7558/*---------------------------------------------------------------------------
7559 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7560 *-------------------------------------------------------------------------*/
7561typedef PACKED_PRE struct PACKED_POST
7562{
7563 tHalMsgHeader header;
7564} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7565
7566/*---------------------------------------------------------------------------
7567 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7568 *-------------------------------------------------------------------------*/
7569typedef PACKED_PRE struct PACKED_POST
7570{
7571 tHalMsgHeader header;
7572
7573 /*status of the request - just to indicate SO has acknowledged
7574 the request and will start scanning*/
7575 tANI_U32 status;
7576} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7577
7578/*
7579 * Enumetation of scan events indicated by firmware to the host
7580 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007581typedef enum
7582{
Kumar Anandea78e792013-10-10 23:47:01 -07007583 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7584 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7585 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7586 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7587 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7588 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7589 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7590 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7591 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7592} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007593
7594typedef PACKED_PRE struct PACKED_POST
7595{
Kumar Anandea78e792013-10-10 23:47:01 -07007596 tScanEventType event;
7597 tANI_U32 channel;
7598 tANI_U32 scanId;
7599} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007600
Kumar Anandea78e792013-10-10 23:47:01 -07007601/*---------------------------------------------------------------------------
7602 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7603 *-------------------------------------------------------------------------*/
7604typedef PACKED_PRE struct PACKED_POST
7605{
7606 tHalMsgHeader header;
7607 tScanOffloadEventInfo scanOffloadInd;
7608} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007609
Kumar Anandea78e792013-10-10 23:47:01 -07007610typedef PACKED_PRE struct PACKED_POST {
7611 /** primary 20 MHz channel frequency in mhz */
7612 tANI_U32 mhz;
7613 /** Center frequency 1 in MHz*/
7614 tANI_U32 band_center_freq1;
7615 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7616 tANI_U32 band_center_freq2;
7617 /* The first 26 bits are a bit mask to indicate any channel flags,
7618 (see WLAN_HAL_CHAN_FLAG*)
7619 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7620 tANI_U32 channel_info;
7621 /** contains min power, max power, reg power and reg class id. */
7622 tANI_U32 reg_info_1;
7623 /** contains antennamax */
7624 tANI_U32 reg_info_2;
7625} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007626
Kumar Anandf53016f2013-09-04 15:15:53 -07007627
Kumar Anandea78e792013-10-10 23:47:01 -07007628typedef enum {
7629 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7630 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7631 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7632 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7633 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7634 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7635 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7636 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7637 WLAN_HAL_MODE_11AC_VHT20 = 8,
7638 WLAN_HAL_MODE_11AC_VHT40 = 9,
7639 WLAN_HAL_MODE_11AC_VHT80 = 10,
7640 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7641 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7642 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7643 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007644
Kumar Anandea78e792013-10-10 23:47:01 -07007645} tChannelPhyModeType;
7646
7647#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7648#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7649#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7650#define WLAN_HAL_CHAN_AP_DISABLED 9
7651#define WLAN_HAL_CHAN_FLAG_DFS 10
7652#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7653#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007654#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7655
7656#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007657 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007658 } while(0)
7659
7660#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007661 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007662
7663#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7664 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7665 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7666 } while(0)
7667#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7668
7669#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7670 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7671 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7672 } while(0)
7673#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7674
7675#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7676 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7677 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7678 } while(0)
7679#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7680#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7681 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7682 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7683 } while(0)
7684#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7685
7686#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7687 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7688 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7689 } while(0)
7690#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7691
7692#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7693 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7694 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7695 } while(0)
7696#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 -07007697
7698typedef PACKED_PRE struct PACKED_POST
7699{
7700 tANI_U8 numChan;
7701 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7702} tUpdateChannelReqType;
7703
7704/*---------------------------------------------------------------------------
7705 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7706 *-------------------------------------------------------------------------*/
7707typedef PACKED_PRE struct PACKED_POST
7708{
7709 tHalMsgHeader header;
7710 tUpdateChannelReqType updateChannelParams;
7711} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7712
7713/*---------------------------------------------------------------------------
7714 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7715 *-------------------------------------------------------------------------*/
7716typedef PACKED_PRE struct PACKED_POST
7717{
7718 tHalMsgHeader header;
7719
7720 /*status of the request - just to indicate SO has acknowledged
7721 * * the request and will start scanning*/
7722 tANI_U32 status;
7723} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7724
7725
7726/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307727 * WLAN_HAL_RMC_RULER_REQ
7728 *-------------------------------------------------------------------------*/
7729
7730#define HAL_MAX_RMC_SESSIONS 2
7731
7732#define HAL_NUM_MAX_RULERS 8
7733
7734typedef enum
7735{
7736 WLAN_HAL_SUGGEST_RULER,
7737 WLAN_HAL_BECOME_RULER,
7738 WLAN_HAL_RULER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7739}tRulerReqCmdType, tRulerRspCmdType;
7740
Kumar Anandea78e792013-10-10 23:47:01 -07007741typedef PACKED_PRE struct PACKED_POST
7742{
Abhishek Singh00b71972016-01-07 10:51:04 +05307743 tRulerReqCmdType cmd;
7744
7745 /* MAC address of MCAST Transmitter (source) */
7746 tSirMacAddr mcastTransmitter;
7747
7748 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7749 tSirMacAddr mcastGroup;
7750
7751 /* Optional black list for cmd = WLAN_HAL_SUGGEST_RULER */
7752 tSirMacAddr blacklist[HAL_NUM_MAX_RULERS];
7753} tHalRmcRulerReqParams, *tpHalRmcRulerReqParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007754
7755typedef PACKED_PRE struct PACKED_POST
7756{
7757 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307758 tHalRmcRulerReqParams rulerReqParams;
7759} tHalRmcRulerReqMsg, *tpHalRmcRulerReqMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007760
7761/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307762 * WLAN_HAL_RMC_RULER_RSP
7763 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007764typedef PACKED_PRE struct PACKED_POST
7765{
Abhishek Singh00b71972016-01-07 10:51:04 +05307766 /* success or failure */
7767 tANI_U32 status;
7768
7769 /* Command Type */
7770 tRulerRspCmdType cmd;
7771
7772 /* MAC address of MCAST Transmitter (source) */
7773 tSirMacAddr mcastTransmitter;
7774
7775 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7776 tSirMacAddr mcastGroup;
7777
7778 /* List of candidates for cmd = WLAN_HAL_SUGGEST_RULER*/
7779 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7780
7781} tHalRmcRulerRspParams, *tpHalRmcRulerRspParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007782
7783typedef PACKED_PRE struct PACKED_POST
7784{
7785 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307786 tHalRmcRulerRspParams rulerRspParams;
7787} tHalRmcRulerRspMsg, *tpHalRmcRulerRspMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007788
7789/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307790 * WLAN_HAL_RMC_UPDATE_IND
7791 *-------------------------------------------------------------------------*/
7792typedef enum
Kumar Anandea78e792013-10-10 23:47:01 -07007793{
Abhishek Singh00b71972016-01-07 10:51:04 +05307794 WLAN_HAL_RULER_ACCEPTED, //Host-->FW
7795 WLAN_HAL_RULER_CANCELED, //Host-->FW
7796 WLAN_HAL_RULER_PICK_NEW, //FW-->Host
7797 WLAN_HAL_RULER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
7798}tRmcUpdateIndType;
7799
7800typedef enum
7801{
7802 WLAN_HAL_RMC_RULER_ROLE,
7803 WLAN_HAL_RMC_TRANSMITTER_ROLE,
7804 WLAN_HAL_RMC_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7805}tRmcRoleType;
Kumar Anandea78e792013-10-10 23:47:01 -07007806
7807typedef PACKED_PRE struct PACKED_POST
7808{
Abhishek Singh00b71972016-01-07 10:51:04 +05307809 tRmcUpdateIndType indication;
7810
7811 /* Role of the entity generating this indication */
7812 tRmcRoleType role;
7813
7814 /* MAC address of MCAST Transmitter (source) */
7815 tSirMacAddr mcastTransmitter;
7816
7817 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7818 tSirMacAddr mcastGroup;
7819
7820 tSirMacAddr mcastRuler;
7821
7822 /* Candidate list for indication = WLAN_HAL_RULER_PICK_NEW */
7823 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7824} tHalRmcUpdateIndParams, *tpHalRmcUpdateIndParams;
Kumar Anandf53016f2013-09-04 15:15:53 -07007825
7826typedef PACKED_PRE struct PACKED_POST
7827{
7828 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307829 tHalRmcUpdateIndParams rulerIndParams;
7830} tHalRmcUpdateInd, *tpHalRmcUpdateInd;
7831
7832typedef PACKED_PRE struct PACKED_POST
7833{
7834 tANI_U8 staIdx; // Station Idx;
7835 tANI_U32 txRate; // Legacy transmit rate, in units of 500 kbit/sec,
7836 // for the most recently transmitted frame
7837 tANI_U32 mcsIndex; // mcs index for HT20 and HT40 rates
7838 tANI_U32 txRateFlags; // to differentiate between HT20 and
7839 // HT40 rates; short and long guard interval
7840 tANI_S8 rssi; // RSSI of the last received beacon
7841}tHalIbssPeerParams, *tpHalIbssPeerParams;
7842
7843typedef PACKED_PRE struct PACKED_POST
7844{
7845 tANI_U32 status; // success or failure
7846 tANI_U8 numOfPeers; // Number of Peers for
7847 // which stats are being reported
7848 tHalIbssPeerParams ibssPeerParams[1]; // Stats of peer in IBSS
7849}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
7850
7851// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
7852typedef PACKED_PRE struct PACKED_POST
7853{
7854 tHalMsgHeader header;
7855 tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
7856}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
7857
7858typedef PACKED_PRE struct PACKED_POST
7859{
7860 tANI_U8 bssIdx; // Bss Index
7861 tANI_BOOLEAN allPeerInfoReqd; // If set, all IBSS peers stats are reported
7862 tANI_U8 staIdx; // If allPeerInfoReqd is not set,
7863 // only stats of peer with
7864 // staIdx is reported
7865}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
7866
7867// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
7868typedef PACKED_PRE struct PACKED_POST
7869{
7870 tHalMsgHeader header;
7871 tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
7872}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
krunal soni2a4728d2013-09-20 21:56:50 -07007873
Kumar Anandf53016f2013-09-04 15:15:53 -07007874/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007875 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7876 *-------------------------------------------------------------------------*/
7877typedef enum
7878{
7879 /* reassociation is done, but couldn't finish security handshake */
7880 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7881
7882 /* roam has successfully completed by firmware */
7883 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7884
7885 /* UNKONW error */
7886 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7887}tHalRoamOffloadRoamAuthStatus;
7888
7889typedef enum
7890{
7891 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7892 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7893 WLAN_HAL_ROAM_TYPE_OKC,
7894 WLAN_HAL_ROAM_TYPE_CCKM,
7895 WLAN_HAL_ROAM_TYPE_FT,
7896 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7897} tHalRoamOffloadType;
7898
7899typedef PACKED_PRE struct PACKED_POST
7900{
7901 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7902 tANI_U16 beaconProbeRespOffset;
7903
7904 /* Length of beaon / probe resp. */
7905 tANI_U16 beaconProbeRespLength;
7906
7907 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7908 tANI_U16 reassocRespOffset;
7909
7910 /* Length of reassoc resp. */
7911 tANI_U16 reassocRespLength;
7912
7913 /* 0 for probe response frame, 1 for beacon frame, */
7914 tANI_U8 isBeacon;
7915
7916 /* staIdx of old AP */
7917 tANI_U8 oldStaIdx;
7918
7919 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7920 tConfigBssRspParams */
7921 /* bssIdx of new roamed AP */
7922 tANI_U8 bssIdx;
7923
7924 /* DPU descriptor index for PTK */
7925 tANI_U8 dpuDescIndx;
7926
7927 /* PTK DPU signature */
7928 tANI_U8 ucastDpuSignature;
7929
7930 /* DPU descriptor index for GTK*/
7931 tANI_U8 bcastDpuDescIndx;
7932
7933 /* GTK DPU signature */
7934 tANI_U8 bcastDpuSignature;
7935
7936 /*DPU descriptor for IGTK*/
7937 tANI_U8 mgmtDpuDescIndx;
7938
7939 /* IGTK DPU signature */
7940 tANI_U8 mgmtDpuSignature;
7941
7942 /* Station Index for BSS entry*/
7943 tANI_U8 staIdx;
7944
7945 /* Self station index for this BSS */
7946 tANI_U8 selfStaIdx;
7947
7948 /* Bcast station for buffering bcast frames in AP role */
7949 tANI_U8 bcastStaIdx;
7950
7951 /* MAC address of roamed AP */
7952 tSirMacAddr bssid;
7953
7954 /*HAL fills in the tx power used for mgmt frames in this field. */
7955 tANI_S8 txMgmtPower;
7956
7957 /* success or failure */
7958 tHalRoamOffloadRoamAuthStatus authStatus;
7959
7960 /* TODO : add more info as needed */
7961
7962 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7963 /* Beacon or probe resp from new AP. This is in 802.11
7964 frame format starting with MAC header. */
7965 /* Up to beaconProbeRespLength */
7966
7967 /* reassocRespOffset points to starting of reassoc resp frame */
7968 /* Reassoc resp from new AP. This is in 802.11
7969 frame format starting with MAC header. */
7970 /* Up to reassocRespLength */
7971
7972} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7973
7974
7975typedef PACKED_PRE struct PACKED_POST
7976{
7977 tHalMsgHeader header;
7978 tHalRoamOffloadSynchIndParams params;
7979} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7980
7981/*---------------------------------------------------------------------------
7982 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7983 *-------------------------------------------------------------------------*/
7984typedef PACKED_PRE struct PACKED_POST
7985{
7986 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7987 tSirMacAddr bssid;
7988} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7989
7990typedef PACKED_PRE struct PACKED_POST
7991{
7992 tHalMsgHeader header;
7993 tHalRoamOffloadSynchCnfParams params;
7994} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7995
7996
7997/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007998 WLAN_HAL_RATE_UPDATE_IND
7999 *-------------------------------------------------------------------------*/
Abhishek Singh00b71972016-01-07 10:51:04 +05308000 typedef PACKED_PRE struct PACKED_POST
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008001{
8002 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
8003 tANI_S32 ucastDataRate; //unit Mbpsx10
8004
8005 /* TX flag to differentiate between HT20, HT40 etc */
8006 tTxRateInfoFlags ucastDataRateTxFlag;
8007
8008 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
8009 tSirMacAddr bssid;
8010
8011 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
Abhishek Singh00b71972016-01-07 10:51:04 +05308012 tANI_S32 rmcDataRate; //unit Mbpsx10
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008013
8014 /* TX flag to differentiate between HT20, HT40 etc */
Abhishek Singh00b71972016-01-07 10:51:04 +05308015 tTxRateInfoFlags rmcDataRateTxFlag;
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008016
Abhishek Singh00b71972016-01-07 10:51:04 +05308017 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008018 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
8019
8020 /* TX flag to differentiate between HT20, HT40 etc */
8021 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
8022
Abhishek Singh00b71972016-01-07 10:51:04 +05308023 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008024 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
8025
8026 /* TX flag to differentiate between HT20, HT40 etc */
8027 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
8028
8029} tHalRateUpdateParams, *tpHalRateUpdateParams;
8030
8031typedef PACKED_PRE struct PACKED_POST
8032{
8033 tHalMsgHeader header;
8034 tHalRateUpdateParams halRateUpdateParams;
8035} tHalRateUpdateInd, * tpHalRateUpdateInd;
8036
8037/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05308038* WLAN_HAL_TX_FAIL_IND
8039*--------------------------------------------------------------------------*/
8040// Northbound indication from FW to host on weak link detection
8041typedef PACKED_PRE struct PACKED_POST
8042{
8043 // Sequence number increases by 1 whenever the device driver
8044 // sends a notification event. This is cleared as 0 when the
8045 // JOIN IBSS commamd is issued
8046 tANI_U16 seqNo;
8047 tANI_U16 staId;
8048 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
8049} tHalTXFailIndParams, *tpHalTXFailIndParams;
8050
8051typedef PACKED_PRE struct PACKED_POST
8052{
8053 tHalMsgHeader header;
8054 tHalTXFailIndParams txFailIndParams;
8055} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
8056
8057/*---------------------------------------------------------------------------
8058* WLAN_HAL_TX_FAIL_MONITOR_IND
8059*--------------------------------------------------------------------------*/
8060// Southbound message from Host to monitor the Tx failures
8061typedef PACKED_PRE struct PACKED_POST
8062{
8063 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
8064 tANI_U8 tx_fail_count;
8065} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
8066
8067typedef PACKED_PRE struct PACKED_POST
8068{
8069 tHalMsgHeader header;
8070 tTXFailMonitorInfo txFailMonitor;
8071} tTXFailMonitorInd, *tpTXFailMonitorInd;
8072
8073/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308074 * WLAN_HAL_AVOID_FREQ_RANGE_IND
8075 *-------------------------------------------------------------------------*/
8076
Abhishek Singhe0443152015-06-18 10:07:43 +05308077#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308078
8079typedef PACKED_PRE struct PACKED_POST
8080{
8081 tANI_U32 startFreq;
8082 tANI_U32 endFreq;
8083} tHalFreqRange, *tpHalFreqRange;
8084
8085typedef PACKED_PRE struct PACKED_POST
8086{
8087 tANI_U32 avoidCnt;
8088 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
8089} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
8090
8091typedef PACKED_PRE struct PACKED_POST
8092{
8093 tHalMsgHeader header;
8094 tHalAvoidFreqRangeIndParams freqRangeIndParams;
8095} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
8096
8097/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308098 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07008099 *-------------------------------------------------------------------------*/
8100
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308101typedef enum
8102{
8103 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
8104 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
8105 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
8106}tHT40OBssScanCmdType;
8107
8108typedef PACKED_PRE struct PACKED_POST
8109{
8110 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008111
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308112 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008113 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
8114 tANI_U16 OBSSScanActiveDwellTime; // In TUs
8115 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
8116 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
8117 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
8118 tANI_U16 BSSWidthChannelTransitionDelayFactor;
8119 tANI_U16 OBSSScanActivityThreshold;
8120
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308121 tANI_U8 selfStaIdx;
8122 tANI_U8 bssIdx;
8123 tANI_U8 fortyMHZIntolerent;
8124 tANI_U8 channelCount;
8125 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
8126 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008127
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308128 tANI_U16 ieFieldLen;
8129 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
8130}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
8131
8132typedef PACKED_PRE struct PACKED_POST
8133{
8134 tHalMsgHeader header;
8135 tHT40ObssScanIndType scanHT40ObssScanParams;
8136} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
8137
8138/*---------------------------------------------------------------------------
8139 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
8140 *-------------------------------------------------------------------------*/
8141typedef PACKED_PRE struct PACKED_POST
8142{
8143 tHalMsgHeader header;
8144 tANI_U8 bssIdx;
8145} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05308146
8147/*---------------------------------------------------------------------------
8148 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
8149 *-------------------------------------------------------------------------*/
8150
8151typedef PACKED_PRE struct PACKED_POST
8152{
8153 /* Valid BSS Idx for beacon miss rate */
8154 tANI_U8 bssIdx;
8155
8156}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
8157
8158typedef PACKED_PRE struct PACKED_POST
8159{
8160 tHalMsgHeader header;
8161 tHalBcnMissRateReqParams bcnMissRateReqParams;
8162} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
8163
8164/*---------------------------------------------------------------------------
8165 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
8166 *-------------------------------------------------------------------------*/
8167
8168typedef PACKED_PRE struct PACKED_POST
8169{
8170 tANI_U32 status;
8171 tANI_U32 bcnMissCnt;
8172}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
8173
8174typedef PACKED_PRE struct PACKED_POST
8175{
8176 tHalMsgHeader header;
8177 tHalBcnMissRateRspParams bcnMissRateRspParams;
8178}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
8179
Selvaraj, Sridhar6c0eb3f2016-04-06 12:42:04 +05308180/*---------------------------------------------------------------------------
8181 * WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND
8182 *-------------------------------------------------------------------------*/
8183
8184typedef PACKED_PRE struct PACKED_POST
8185{
8186 tANI_U32 actionFramesBitMask;
8187 tANI_U32 reserved;
8188}tHalAllowedActionFrames, *tpHalAllowedActionFrames;
8189
8190typedef PACKED_PRE struct PACKED_POST
8191{
8192 tHalMsgHeader header;
8193 tHalAllowedActionFrames allowedActionFrames;
8194}tHalAllowedActionFramesReqInd, *tpHalAllowedActionFramesReqInd;
8195
Sourav Mohapatra72c2c342018-03-05 19:49:05 +05308196/*----------------------------------------------------------------
8197 WLAN_HAL_VOWIFI_IND
8198-----------------------------------------------------------------*/
8199typedef PACKED_PRE struct PACKED_POST
8200{
8201 /* 0 implies VoWifi call ended, 1 implies VoWifi call started */
8202 tANI_U8 enable;
8203} tHalVoWiFiIndParams, *tpHalVoWiFiIndParams;
8204
8205typedef PACKED_PRE struct PACKED_POST
8206{
8207 tHalMsgHeader header;
8208 tHalVoWiFiIndParams voWiFiIndParams;
8209} tHalVoWiFiInd, * tpHalVoWiFiInd;
8210
Ashish Kumar Dhanotiyac4c53842018-04-10 18:24:33 +05308211/*----------------------------------------------------------------
8212 WLAN_HAL_QPOWER
8213-----------------------------------------------------------------*/
8214typedef PACKED_PRE struct PACKED_POST
8215{
8216 tANI_U8 enable;
8217} tHalQpowerParams, *tpHalQpowerParams;
8218
8219typedef PACKED_PRE struct PACKED_POST
8220{
8221 tHalMsgHeader header;
8222 tHalQpowerParams qpowerParams;
8223} tHalQpower, * tpHalQpower;
8224
Sunil Dutt8377a382014-05-26 21:18:04 +05308225/*--------------------------------------------------------------------------
8226* WLAN_HAL_LL_SET_STATS_REQ
8227*---------------------------------------------------------------------------*/
8228
8229typedef PACKED_PRE struct PACKED_POST
8230{
8231 tANI_U32 req_id;
8232 tANI_U8 sta_id;
8233 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
8234 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
8235} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
8236
8237typedef PACKED_PRE struct PACKED_POST
8238{
8239 tHalMsgHeader header;
8240 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
8241} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
8242
8243/*---------------------------------------------------------------------------
8244 WLAN_HAL_LL_SET_STATS_RSP
8245---------------------------------------------------------------------------*/
8246
8247typedef PACKED_PRE struct PACKED_POST
8248{
8249 tANI_U32 status;
8250 tANI_U32 resp_id;
8251 tANI_U8 iface_id;
8252} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
8253
8254typedef PACKED_PRE struct PACKED_POST
8255{
8256 tHalMsgHeader header;
8257 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
8258} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
8259
8260/*---------------------------------------------------------------------------
8261 WLAN_HAL_LL_GET_STATS_REQ
8262---------------------------------------------------------------------------*/
8263
8264typedef PACKED_PRE struct PACKED_POST
8265{
8266 tANI_U32 req_id;
8267 tANI_U8 sta_id;
8268 tANI_U32 param_id_mask;
8269} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
8270
8271typedef PACKED_PRE struct PACKED_POST
8272{
8273 tHalMsgHeader header;
8274 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
8275} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
8276
8277/*---------------------------------------------------------------------------
8278 WLAN_HAL_LL_GET_STATS_RSP
8279---------------------------------------------------------------------------*/
8280typedef PACKED_PRE struct PACKED_POST
8281{
8282 tANI_U32 status;
8283 tANI_U32 resp_id;
8284 tANI_U8 iface_id;
8285} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8286
8287typedef PACKED_PRE struct PACKED_POST
8288{
8289 tHalMsgHeader header;
8290 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8291} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8292
8293/*---------------------------------------------------------------------------
8294 WLAN_HAL_LL_CLEAR_STATS_REQ
8295---------------------------------------------------------------------------*/
8296typedef PACKED_PRE struct PACKED_POST
8297{
8298 tANI_U32 req_id;
8299 tANI_U8 sta_id;
8300 tANI_U32 stats_clear_req_mask;
8301 tANI_U8 stop_req;
8302} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8303
8304typedef PACKED_PRE struct PACKED_POST
8305{
8306 tHalMsgHeader header;
8307 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8308} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8309
8310/*---------------------------------------------------------------------------
8311 WLAN_HAL_LL_CLEAR_STATS_RSP
8312---------------------------------------------------------------------------*/
8313typedef PACKED_PRE struct PACKED_POST
8314{
8315 tANI_U32 status;
8316 tANI_U8 sta_id;
8317 tANI_U32 resp_id;
8318 tANI_U32 stats_clear_rsp_mask;
8319 tANI_U8 stop_req_status;
8320} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8321
8322typedef PACKED_PRE struct PACKED_POST
8323{
8324 tHalMsgHeader header;
8325 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8326} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8327
8328/*---------------------------------------------------------------------------
8329 WLAN_HAL_LL_NOTIFY_STATS
8330---------------------------------------------------------------------------*/
8331
8332typedef PACKED_PRE struct PACKED_POST
8333{
8334 tHalMsgHeader header;
8335 tANI_U32 param_id;
8336 tANI_U8 iface_id;
8337 tANI_U32 resp_id;
8338 tANI_U32 more_result_to_follow;
8339 tANI_U8 result[1];
8340} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008341
Dino Mycle108eff22014-06-10 09:36:44 +05308342/*---------------------------------------------------------------------------
8343 * WLAN_HAL_EXT_SCAN_START_REQ
8344 *-------------------------------------------------------------------------*/
8345
Dino Mycle8afbac12014-07-04 22:06:17 +05308346typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308347{
8348 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8349 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8350 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8351 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8352 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8353 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8354 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308355 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308356} tExtScanChannelBandMask;
8357
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308358#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8359#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8360
8361#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8362
8363#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8364#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8365#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8366#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8367
Dino Mycle108eff22014-06-10 09:36:44 +05308368typedef PACKED_PRE struct PACKED_POST
8369{
8370 tANI_U32 channel; // frequency
8371 tANI_U32 dwellTimeMs; // dwell time hint
8372 tANI_U8 passive; // 0 => active,
8373 // 1 => passive scan; ignored for DFS
8374}tExtScanChannelSpec, *tpExtScanChannelSpec;
8375
8376typedef PACKED_PRE struct PACKED_POST
8377 {
8378 /* bucket index, 0 based */
8379 tANI_U8 bucketId;
8380 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8381 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308382 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308383 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308384 /* This is a bit field; which defines following bits -
8385 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8386 is % full
8387 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8388 after scan
8389 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8390 (beacons/probe responses + IEs) in real time to HAL, in addition
8391 to completion events
8392 Note: To keep backward compatibility, fire completion events
8393 regardless of REPORT_EVENTS_EACH_SCAN.
8394 * REPORT_EVENTS_NO_BATCH => controls batching,
8395 0 => batching, 1 => no batching
8396 */
Dino Mycle108eff22014-06-10 09:36:44 +05308397 tANI_U8 reportEvents;
8398 /* number of channels */
8399 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308400 // new Exponential Scan params
8401 tANI_U32 max_period;
8402 tANI_U32 exponent;
8403 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308404 /* if channels to scan. In the TLV channelList[] */
8405 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8406}tExtScanBucketData, *tpExtScanBucketData;
8407
8408typedef PACKED_PRE struct PACKED_POST
8409{
8410 tANI_U32 requestId;
8411 tANI_U8 sessionId;
8412 /* Base period (milliseconds) used by scan buckets to define periodicity
8413 of the scans */
8414 tANI_U32 basePeriod;
8415 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8416 (keep the most significant, i.e. stronger RSSI) */
8417 tANI_U32 maxApPerScan;
8418 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308419 tANI_U32 reportThresholdPercent;
8420 /* in number of scans, wake up AP after these many scans */
8421 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308422 /* This will be off channel minimum time */
8423 tANI_U16 neighborScanChannelMinTime;
8424 /* This will be out off channel max time */
8425 tANI_U16 neighborScanChannelMaxTime;
8426 /* This will be the home (BSS) channel time */
8427 tANI_U16 homeAwayTime;
8428 /* number of buckets (maximum 8) */
8429 tANI_U8 numBuckets;
8430 /* Buckets data */
8431 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8432} tHalExtScanStartReq, *tpHalExtScanStartReq;
8433
8434typedef PACKED_PRE struct PACKED_POST
8435{
8436 tHalMsgHeader header;
8437 tHalExtScanStartReq extScanStartReq;
8438}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8439
8440/*---------------------------------------------------------------------------
8441 * WLAN_HAL_EXT_SCAN_START_RSP
8442 *-------------------------------------------------------------------------*/
8443
8444typedef PACKED_PRE struct PACKED_POST
8445{
8446 tANI_U32 requestId;
8447 tANI_U32 status;
8448}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8449
8450typedef PACKED_PRE struct PACKED_POST
8451{
8452 tHalMsgHeader header;
8453 tHalExtScanStartRsp extScanStartRsp;
8454}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8455
8456/*---------------------------------------------------------------------------
8457 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8458 *-------------------------------------------------------------------------*/
8459
8460typedef PACKED_PRE struct PACKED_POST
8461{
8462 tANI_U32 requestId;
8463 tANI_U8 sessionId;
8464}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8465
8466typedef PACKED_PRE struct PACKED_POST
8467{
8468 tHalMsgHeader header;
8469 tHalExtScanGetCapReq extScanGetCapReq;
8470}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8471
8472/*---------------------------------------------------------------------------
8473 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8474 *-------------------------------------------------------------------------*/
8475
8476typedef PACKED_PRE struct PACKED_POST
8477{
8478 tANI_U32 requestId;
8479 tANI_U32 status;
8480
8481 tANI_U32 scanCacheSize;
8482 tANI_U32 scanBuckets;
8483 tANI_U32 maxApPerScan;
8484 tANI_U32 maxRssiSampleSize;
8485 tANI_U32 maxScanReportingThreshold;
8486
8487 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308488 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308489
8490 tANI_U32 maxBssidHistoryEntries;
8491}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8492
8493typedef PACKED_PRE struct PACKED_POST
8494{
8495 tHalMsgHeader header;
8496 tHalExtScanGetCapRsp extScanGetCapRsp;
8497}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8498
8499/*---------------------------------------------------------------------------
8500 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8501 *-------------------------------------------------------------------------*/
8502
8503typedef PACKED_PRE struct PACKED_POST
8504{
8505 tANI_U32 requestId;
8506 tANI_U8 sessionId;
8507 /*
8508 * 1 return cached results and flush it
8509 * 0 return cached results and do not flush
8510 */
8511 tANI_BOOLEAN flush;
8512}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8513
8514typedef PACKED_PRE struct PACKED_POST
8515{
8516 tHalMsgHeader header;
8517 tHalExtScanGetScanReq getScanReq;
8518}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8519
8520/*---------------------------------------------------------------------------
8521 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8522 *-------------------------------------------------------------------------*/
8523
8524typedef PACKED_PRE struct PACKED_POST
8525{
8526 tANI_U32 requestId;
8527 tANI_U32 status;
8528}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8529
8530typedef PACKED_PRE struct PACKED_POST
8531{
8532 tHalMsgHeader header;
8533 tHalExtScanGetScanRsp getScanRsp;
8534}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8535
8536/*---------------------------------------------------------------------------
8537 * WLAN_HAL_EXT_SCAN_RESULT_IND
8538 *-------------------------------------------------------------------------*/
8539
8540typedef PACKED_PRE struct PACKED_POST
8541{
8542 tANI_U64 ts; // time of discovery
8543 tANI_U8 ssid[32+1]; // null terminated SSID
8544 tSirMacAddr bssid; // BSSID
8545 tANI_U32 channel; // channel frequency in MHz
8546 tANI_S32 rssi; // RSSI in dBm
8547 tANI_U32 rtt; // RTT in nanoseconds - not expected
8548 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308549 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308550 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308551 tANI_U16 ieLength; // size of the ie_data blob
8552 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308553} tHalExtScanResultParams, *tpHalExtScanResultParams;
8554
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308555/* Get the GSCAN cached scan results */
8556typedef struct {
8557 tANI_U16 scan_id; // a unique identifier for the scan unit
8558 tANI_U8 flags; // a bitmask with additional
8559 // information about scan
8560 tANI_U8 num_results; // number of bssids retrieved by the scan
8561 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8562 // scan results - one for each bssid
8563} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8564
Dino Mycle108eff22014-06-10 09:36:44 +05308565typedef PACKED_PRE struct PACKED_POST
8566{
8567 tHalMsgHeader header;
8568 tANI_U32 requestId;
8569 tANI_U32 scanResultSize;
8570 tANI_BOOLEAN moreData;
8571 tANI_U8 extScanResult[1];
8572}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8573
8574/*---------------------------------------------------------------------------
8575 * WLAN_HAL_EXT_SCAN_STOP_REQ
8576 *-------------------------------------------------------------------------*/
8577
8578typedef PACKED_PRE struct PACKED_POST
8579{
8580 tANI_U32 requestId;
8581 tANI_U8 sessionId;
8582}tHalExtScanStopReq, *tpHalExtScanStopReq;
8583
8584typedef PACKED_PRE struct PACKED_POST
8585{
8586 tHalMsgHeader header;
8587 tHalExtScanStopReq extScanStopReq;
8588}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8589
8590/*---------------------------------------------------------------------------
8591 * WLAN_HAL_EXT_SCAN_STOP_RSP
8592 *-------------------------------------------------------------------------*/
8593
8594typedef PACKED_PRE struct PACKED_POST
8595{
8596 tANI_U32 requestId;
8597 tANI_U32 status;
8598}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8599
8600typedef PACKED_PRE struct PACKED_POST
8601{
8602 tHalMsgHeader header;
8603 tHalExtScanStopRsp extScanStopRsp;
8604}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8605
8606/*---------------------------------------------------------------------------
8607 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8608 *-------------------------------------------------------------------------*/
8609
Dino Mycle8afbac12014-07-04 22:06:17 +05308610typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308611{
8612 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8613 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308614 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308615} tHalExtScanProgressEventType;
8616
8617typedef PACKED_PRE struct PACKED_POST
8618{
8619 tANI_U32 requestId;
8620 tANI_U32 status;
8621 tHalExtScanProgressEventType extScanEventType;
8622}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8623
8624typedef PACKED_PRE struct PACKED_POST
8625{
8626 tHalMsgHeader header;
8627 tHalExtScanProgressInd extScanProgressInd;
8628}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8629
8630/*---------------------------------------------------------------------------
8631 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8632 *-------------------------------------------------------------------------*/
8633
8634typedef PACKED_PRE struct PACKED_POST
8635{
8636 tANI_U32 requestId;
8637 tANI_U32 numOfScanResAvailable;
8638}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8639
8640typedef PACKED_PRE struct PACKED_POST
8641{
8642 tHalMsgHeader header;
8643 tHalExtScanResAvailableInd extScanResAvailableInd;
8644}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8645
Dino Mycle108eff22014-06-10 09:36:44 +05308646typedef PACKED_PRE struct PACKED_POST
8647{
8648 /* AP BSSID */
8649 tSirMacAddr bssid;
8650 /* low threshold - used in L for significant_change - not used in L for
8651 hotlist*/
8652 tANI_S32 lowRssiThreshold;
8653 /* high threshold - used in L for significant rssi - used in L for hotlist */
8654 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308655} tApThresholdParams, *tpApThresholdParams;
8656
Dino Mycle108eff22014-06-10 09:36:44 +05308657/*---------------------------------------------------------------------------
8658 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8659 *-------------------------------------------------------------------------*/
8660
8661typedef PACKED_PRE struct PACKED_POST
8662{
8663 tANI_U32 requestId;
8664 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308665 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308666 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308667 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308668 // hotlist APs
8669 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8670} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8671
8672typedef PACKED_PRE struct PACKED_POST
8673{
8674 tHalMsgHeader header;
8675 tHalBssidHotlistSetReq bssidHotlistSetReq;
8676}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8677
8678/*---------------------------------------------------------------------------
8679 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8680 *-------------------------------------------------------------------------*/
8681
8682typedef PACKED_PRE struct PACKED_POST
8683{
8684 tANI_U32 requestId;
8685 tANI_U32 status;
8686}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8687
8688typedef PACKED_PRE struct PACKED_POST
8689{
8690 tHalMsgHeader header;
8691 tHalHotlistSetRsp hotlistSetRsp;
8692}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8693
8694/*---------------------------------------------------------------------------
8695 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8696 *-------------------------------------------------------------------------*/
8697
8698typedef PACKED_PRE struct PACKED_POST
8699{
8700 tANI_U32 requestId;
8701}tHalHotlistResetReq, *tpHalHotlistResetReq;
8702
8703typedef PACKED_PRE struct PACKED_POST
8704{
8705 tHalMsgHeader header;
8706 tHalHotlistResetReq hotlistResetReq;
8707}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8708
8709/*---------------------------------------------------------------------------
8710 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8711 *-------------------------------------------------------------------------*/
8712
8713typedef PACKED_PRE struct PACKED_POST
8714{
8715 tANI_U32 requestId;
8716 tANI_U32 status;
8717}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8718
8719typedef PACKED_PRE struct PACKED_POST
8720{
8721 tHalMsgHeader header;
8722 tHalHotlistResetRsp hotlistResetRsp;
8723}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8724
8725/*---------------------------------------------------------------------------
8726 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8727 *-------------------------------------------------------------------------*/
8728
8729typedef PACKED_PRE struct PACKED_POST
8730{
8731 tHalMsgHeader header;
8732 tANI_U32 requestId;
8733 tANI_U32 numHotlistBss;
8734 tANI_BOOLEAN moreData;
8735 tANI_U8 bssHotlist[1];
8736}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8737
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308738/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308739 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8740 *-------------------------------------------------------------------------*/
8741
8742typedef PACKED_PRE struct PACKED_POST
8743{
8744 /* SSID */
8745 char ssid [32+1];
8746 /* low threshold - used in L for significant_change - not used in L for
8747 hotlist*/
8748 tANI_S32 lowRssiThreshold;
8749 /* high threshold - used in L for significant rssi - used in L for hotlist */
8750 tANI_S32 highRssiThreshold;
8751 /* band */
8752 tANI_U32 band;
8753 } tSsidThresholdParams, *tpSsidThresholdParams;
8754
8755
8756typedef PACKED_PRE struct PACKED_POST
8757{
8758 tANI_U32 requestId;
8759 tANI_U8 sessionId;
8760 tANI_U32 lostSsidSampleSize;
8761 // number of hotlist SSIDs
8762 tANI_U32 numSsid;
8763 // hotlist SSIDs
8764 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8765} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8766
8767typedef PACKED_PRE struct PACKED_POST
8768{
8769 tHalMsgHeader header;
8770 tHalSsidHotlistSetReq ssidHotlistSetReq;
8771}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8772
8773/*---------------------------------------------------------------------------
8774 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8775 *-------------------------------------------------------------------------*/
8776typedef PACKED_PRE struct PACKED_POST
8777{
8778 tANI_U32 requestId;
8779 tANI_U32 status;
8780}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8781
8782typedef PACKED_PRE struct PACKED_POST
8783{
8784 tHalMsgHeader header;
8785 tHalSsidHotlistSetRsp hotlistSetRsp;
8786}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8787
8788/*---------------------------------------------------------------------------
8789 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8790 *-------------------------------------------------------------------------*/
8791
8792typedef PACKED_PRE struct PACKED_POST
8793{
8794 tANI_U32 requestId;
8795}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8796
8797typedef PACKED_PRE struct PACKED_POST
8798{
8799 tHalMsgHeader header;
8800 tHalSsidHotlistResetReq hotlistResetReq;
8801}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8802
8803/*---------------------------------------------------------------------------
8804 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8805 *-------------------------------------------------------------------------*/
8806
8807typedef PACKED_PRE struct PACKED_POST
8808{
8809 tANI_U32 requestId;
8810 tANI_U32 status;
8811}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8812
8813typedef PACKED_PRE struct PACKED_POST
8814{
8815 tHalMsgHeader header;
8816 tHalSsidHotlistResetRsp hotlistResetRsp;
8817}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8818
8819/*---------------------------------------------------------------------------
8820 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8821 *-------------------------------------------------------------------------*/
8822
8823typedef PACKED_PRE struct PACKED_POST
8824{
8825 tHalMsgHeader header;
8826 tANI_U32 requestId;
8827 tANI_BOOLEAN ssid_found;
8828 tANI_U32 numHotlistSsid;
8829 tANI_BOOLEAN moreData;
8830 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8831}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8832
8833/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308834 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8835 *-------------------------------------------------------------------------*/
8836
8837typedef PACKED_PRE struct PACKED_POST
8838{
8839 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8840 tANI_U32 reserved; //reserved for future use
8841}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8842
8843typedef PACKED_PRE struct PACKED_POST
8844{
8845 tHalMsgHeader header;
8846 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8847}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8848
8849/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308850 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8851 *--------------------------------------------------------------------------*/
8852typedef PACKED_PRE struct PACKED_POST
8853{
8854 tANI_U8 macAddr[6];
8855 tANI_U32 reserved1;
8856 tANI_U32 reserved2;
8857}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8858
8859typedef PACKED_PRE struct PACKED_POST
8860{
8861 tHalMsgHeader header;
8862 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8863} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8864
8865/*---------------------------------------------------------------------------
8866* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8867*-------------------------------------------------------------------------*/
8868
8869typedef PACKED_PRE struct PACKED_POST
8870{
8871 tANI_U32 status;
8872 tANI_U32 reserved1;
8873} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8874
8875typedef PACKED_PRE struct PACKED_POST
8876{
8877 tHalMsgHeader header;
8878 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8879} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308880/*---------------------------------------------------------------------------
8881 *WLAN_HAL_GET_FRAME_LOG_REQ
8882 *--------------------------------------------------------------------------*/
8883typedef PACKED_PRE struct PACKED_POST
8884{
8885 tANI_U8 flags;
8886}tGetFrameLogReqType, * tpGetFrameLogReqType;
8887
8888typedef PACKED_PRE struct PACKED_POST
8889{
8890 tHalMsgHeader header;
8891 tGetFrameLogReqType tGetFrameLogReqParams;
8892} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8893
8894/*---------------------------------------------------------------------------
8895 * WLAN_HAL_GET_FRAME_LOG_RSP
8896 *-------------------------------------------------------------------------*/
8897typedef PACKED_PRE struct PACKED_POST
8898{
8899 tANI_U32 status;
8900} tGetFrameLogResp, * tpGetFrameLogResp;
8901
8902typedef PACKED_PRE struct PACKED_POST
8903{
8904 tHalMsgHeader header;
8905 tGetFrameLogResp tGetFrameLogRespParams;
8906} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8907
8908/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308909 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8910 *-------------------------------------------------------------------------*/
8911typedef PACKED_PRE struct PACKED_POST
8912{
8913 tANI_U32 reasonCode;
8914}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8915
8916typedef PACKED_PRE struct PACKED_POST
8917{
8918 tHalMsgHeader header;
8919 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8920}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8921
8922/*---------------------------------------------------------------------------
8923 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8924 *-------------------------------------------------------------------------*/
8925typedef PACKED_PRE struct PACKED_POST
8926{ tANI_U32 status;
8927}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8928
8929typedef PACKED_PRE struct PACKED_POST
8930{
8931 tHalMsgHeader header;
8932 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8933}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8934
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308935/*---------------------------------------------------------------------------
8936 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8937 *-------------------------------------------------------------------------*/
8938typedef PACKED_PRE struct PACKED_POST
8939{
8940 tANI_U8 bssIdx;
8941 tANI_U8 rssi;
8942 tSirMacAddr selfMacAddr;
8943 tANI_U32 linkFlCnt;
8944 tANI_U32 linkFlTx;
8945 tANI_U32 lastDataRate;
8946 tANI_U32 rsvd1;
8947 tANI_U32 rsvd2;
8948}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8949
8950typedef PACKED_PRE struct PACKED_POST
8951{
8952 tHalMsgHeader header;
8953 tHalLostLinkParametersIndParams lostLinkParameters;
8954}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308955
8956
8957/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308958 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308959 *--------------------------------------------------------------------------*/
8960typedef PACKED_PRE struct PACKED_POST
8961{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308962 /* BIT0 - enable frame logging
8963 * BIT1 - enableBMUHWtracing
8964 * BIT2 - enableQXDMlogging
8965 * BIT3 - enableUElogDpuTxp
8966 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308967 tANI_U8 enableFlag;
8968 tANI_U8 frameType;
8969 tANI_U8 frameSize;
8970 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308971 /* Host mem address to be used as logmailbox */
8972 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308973 /* firmware will wakeup the host to send logs always */
8974 tANI_U8 continuousFrameLogging;
8975 /* Logging mail box version */
8976 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308977 /* Max ring size in firmware to log msgs when host is suspended state */
8978 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308979 /* when firmware log reaches this threshold and
8980 * if host is awake it will push the logs.
8981 */
8982 tANI_U8 minLogBuffSize;
8983 /* Reserved for future purpose */
8984 tANI_U32 reserved0;
8985 tANI_U32 reserved1;
8986 tANI_U32 reserved2;
8987}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308988
8989typedef PACKED_PRE struct PACKED_POST
8990{
8991 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308992 tFWLoggingInitReqType tFWLoggingInitReqParams;
8993} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308994
8995/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308996 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308997 *-------------------------------------------------------------------------*/
8998typedef PACKED_PRE struct PACKED_POST
8999{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309000 tANI_U32 status;
9001 /* FW mail box address */
9002 tANI_U64 logMailBoxAddr;
9003 /* Logging mail box version */
9004 tANI_U8 logMailBoxVer;
9005 /* Qshrink is enabled */
9006 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05309007 /* fw_dump_max_size is used to tell fwr mem dump size */
9008 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309009 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309010 tANI_U32 reserved1;
9011 tANI_U32 reserved2;
9012} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309013
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05309014
9015typedef PACKED_PRE struct PACKED_POST {
9016 tANI_U32 request_id;
9017 tSirMacAddr bssId;
9018 tANI_S8 min_rssi;
9019 tANI_S8 max_rssi;
9020} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
9021
9022typedef PACKED_PRE struct PACKED_POST
9023{
9024 tHalMsgHeader header;
9025 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
9026}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
9027
9028//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
9029typedef PACKED_PRE struct PACKED_POST {
9030 tANI_U32 request_id;
9031 tANI_U32 status;
9032} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
9033
9034typedef PACKED_PRE struct PACKED_POST
9035{
9036 tHalMsgHeader header;
9037 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
9038}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
9039
9040//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
9041typedef PACKED_PRE struct PACKED_POST
9042{
9043 tANI_U32 request_id;
9044 tSirMacAddr bssId;
9045 tANI_S8 rssi;
9046} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
9047
9048typedef PACKED_PRE struct PACKED_POST
9049{
9050 tHalMsgHeader header;
9051 tHalRssiMonitorIndParams RssiMonitorIndParams;
9052}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
9053
9054
9055//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
9056typedef PACKED_PRE struct PACKED_POST {
9057 tANI_U32 request_id;
9058 tSirMacAddr bssId;
9059} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
9060
9061typedef PACKED_PRE struct PACKED_POST
9062{
9063 tHalMsgHeader header;
9064 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
9065}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
9066
9067//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
9068typedef PACKED_PRE struct PACKED_POST {
9069 tANI_U32 request_id;
9070 tANI_U32 status;
9071} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
9072
9073typedef PACKED_PRE struct PACKED_POST
9074{
9075 tHalMsgHeader header;
9076 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
9077}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
9078
9079
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309080typedef PACKED_PRE struct PACKED_POST
9081{
9082 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309083 tFWLoggingInitResp tFWLoggingInitRespParams;
9084} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
9085
9086/*---------------------------------------------------------------------------
Kapil Guptac1043632016-06-25 00:23:30 +05309087 * WLAN_HAL_SET_PER_ROAM_CONFIG_REQ
9088 *---------------------------------------------------------------------------*/
9089
9090typedef PACKED_PRE struct PACKED_POST {
9091 tANI_U32 request_id;
9092 tANI_U32 isPERRoamCCAEnabled;
9093 tANI_U32 rateUpThreshold;
9094 tANI_U32 rateDownThreshold;
9095 tANI_U32 waitPeriodForNextPERScan;
9096 tANI_U32 PERtimerThreshold;
9097 tANI_U32 PERroamTriggerPercent;
Kapil Guptaffe21522016-08-29 12:33:00 +05309098 tANI_S16 PERRoamFullScanThreshold;
9099 tANI_U16 reserved;
Kapil Guptac1043632016-06-25 00:23:30 +05309100} tPerRoamConfigParams, * tpPerRoamConfigParams;
9101
9102typedef PACKED_PRE struct PACKED_POST
9103{
9104 tHalMsgHeader header;
9105 tPerRoamConfigParams perRoamConfigParams;
9106} tSetPerRoamConfigReq, * tpSetPerRoamConfigReq;
9107
9108/*---------------------------------------------------------------------------
9109 * WLAN_HAL_SET_PER_ROAM_CONFIG_RSP
9110 *---------------------------------------------------------------------------*/
9111
9112typedef PACKED_PRE struct PACKED_POST
9113{
9114 /* Success or Failure */
9115 tANI_U32 status;
9116} tConfigPerRoamRspParams, * tpConfigPerRoamRspParams;
9117
9118typedef PACKED_PRE struct PACKED_POST
9119{
9120 tHalMsgHeader header;
9121 tConfigPerRoamRspParams configPerRoamRspParams;
9122} tSetPerRoamConfigRsp, * tpSetPerRoamConfigRsp;
9123
9124/*---------------------------------------------------------------------------
9125 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ
9126 *---------------------------------------------------------------------------*/
9127
9128typedef PACKED_PRE struct PACKED_POST {
9129 bool roamScanReq;
9130} tStartRoamScanTriggerParams, * tpStartRoamScanTriggerParams;
9131
9132typedef PACKED_PRE struct PACKED_POST {
9133
9134 tHalMsgHeader header;
9135 tStartRoamScanTriggerParams startRoamScanTriggerParams;
9136} tStartRoamScanReq, *tpStartRoamScanReq;
9137
9138/*---------------------------------------------------------------------------
9139 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP
9140 *---------------------------------------------------------------------------*/
9141
9142typedef PACKED_PRE struct PACKED_POST
9143{
9144 /* Success /Failure / Nil result */
9145 tANI_U32 status;
9146} tConfigRoamScanRspParams, * tpConfigRoamScanRspParams;
9147
9148typedef PACKED_PRE struct PACKED_POST
9149{
9150 tHalMsgHeader header;
9151 tConfigRoamScanRspParams configRoamScanRspParams;
9152} tSetRoamScanConfigRsp, * tpSetRoamScanConfigRsp;
9153
Manjeet Singh4dedb502017-01-17 11:46:35 +05309154/*---------------------------------------------------------------------------
9155* WLAN_HAL_CAPTURE_GET_TSF_TSTAMP
9156*-------------------------------------------------------------------------*/
9157typedef PACKED_PRE struct PACKED_POST
9158{
9159 uint8 uBssIdx;
9160 boolean capTSFget;
9161}tHalCapTSFget, *tptHalCapTSFget;
9162
9163typedef PACKED_PRE struct PACKED_POST
9164{
9165 tHalMsgHeader header;
9166 tHalCapTSFget capTSFget;
9167}tHalCapTSFgetReqInd, *tpHalCapTSFgetReqInd;
9168
9169/*---------------------------------------------------------------------------
9170 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP
9171---------------------------------------------------------------------------*/
9172
9173typedef PACKED_PRE struct PACKED_POST
9174{
9175 /* Success /Failure / Nil result */
9176 tANI_U32 status;
9177 tANI_U32 tsf_lo;
9178 tANI_U32 tsf_hi;
9179} tConfigcapTSFgetRspParams, * tptConfigcapTSFgetRspParams;
9180
9181typedef PACKED_PRE struct PACKED_POST
9182{
9183 tHalMsgHeader header;
9184 tConfigcapTSFgetRspParams configcapTSFgetRspParams;
9185} tcapGetTSFConfigRsp, * tpcapGetTSFConfigRsp;
9186
Kapil Guptac1043632016-06-25 00:23:30 +05309187
9188#define PER_ROAM_MAX_AP_CNT 30
9189#define PER_ROAM_MAX_CANDIDATE_CNT 15
9190
9191/* Candidate Information to be shared in the Candidate Indication,
9192 * similar to what is sent in legacy roaming with following additional info
9193 */
9194
9195typedef PACKED_PRE struct PACKED_POST {
9196 tANI_U8 channelNumber;
9197 tANI_U8 channelCCA;
9198 tANI_U8 otherApCount;
9199 tANI_S8 otherApRssi[PER_ROAM_MAX_AP_CNT];
9200} tCandidateChannelInfo, * tpCandidateChannelInfo;
9201
9202typedef PACKED_PRE struct PACKED_POST {
9203 tANI_U32 candidateCount;
9204 tCandidateChannelInfo channelInfo[PER_ROAM_MAX_CANDIDATE_CNT];
9205} tPerRoamScanResult, * tpPerRoamScanResult;
9206
9207
9208/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309209 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
9210 *-------------------------------------------------------------------------*/
9211typedef PACKED_PRE struct PACKED_POST
9212{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05309213 tANI_U16 status;
9214 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309215 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9216 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9217} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
9218
9219typedef PACKED_PRE struct PACKED_POST
9220{
9221 tHalMsgHeader header;
9222 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
9223} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
9224
9225/*---------------------------------------------------------------------------
Kapil Guptae667f952016-12-20 18:23:27 +05309226 * WLAN_HAL_APFIND_CMDID
9227 * ---------------------------------------------------------------------------*/
9228
9229#define MAX_ARRAY_SIZE 1000
9230typedef PACKED_PRE struct PACKED_POST
9231{
9232 tANI_U16 msg_version:4;
9233 tANI_U16 msg_id:12;
9234 tANI_U16 msg_len:16;
9235 tANI_U16 handle;
9236 tANI_U16 transaction_id;
9237} tApfindMsgHeader, *tpApfindMsgHeader;
9238
9239typedef PACKED_PRE struct PACKED_POST
9240{
9241 tANI_U16 type;
9242 tANI_U16 length;
9243 tANI_U8* value;
9244} tApfindTlv, *tpApfindTlv;
9245
9246typedef PACKED_PRE struct PACKED_POST
9247{
9248 tApfindMsgHeader apFindHeader;
9249 tANI_U8 ptlv[MAX_ARRAY_SIZE];
9250} tQRFPrefNetwListParams, *tpQRFPrefNetwListParams;
9251
9252typedef enum
9253{
9254 APFIND_MSG_ID_ERROR_RSP = 0,
9255 APFIND_MSG_ID_ENABLE_REQ = 1,
9256 APFIND_MSG_ID_SET_SSID = 2,
9257 APFIND_MSG_ID_SET_MAC = 3,
9258 APFIND_MSG_ID_SET_PARAMS = 4,
9259} tApfindMsgId;
9260
9261typedef PACKED_PRE struct PACKED_POST
9262{
9263 tHalMsgHeader header;
9264 tQRFPrefNetwListParams qRFprefNetwListParams;
9265} tQRFSetPrefNetwListReq, *tpQRFSetPrefNetwListReq;
9266
9267#define QRF_MAX_SUPPORTED_NETWORKS 10
9268
9269typedef PACKED_PRE struct PACKED_POST {
9270 /*Network that was found with the highest RSSI*/
9271 tSirMacSSid ssId;
9272 /*Indicates the RSSI */
9273 tANI_U8 rssi;
9274 /* The MPDU frame length of a beacon or probe rsp.
9275 * data is the start of the frame
9276 */
9277 tANI_U16 frameLength;
9278} tQrfNetwFoundParam, *tpQrfNetwFoundParam;
9279
9280typedef PACKED_PRE struct PACKED_POST {
9281 uint8 netwCount;
9282 tQrfNetwFoundParam qrfNetwParams[QRF_MAX_SUPPORTED_NETWORKS];
9283} tQrfPrefNetwFoundParams, * tpQrfPrefNetwFoundParams;
9284
9285/*
9286 * Preferred network found indication
9287 */
9288typedef PACKED_PRE struct PACKED_POST {
9289 tHalMsgHeader header;
9290 tQrfPrefNetwFoundParams qrfPrefNetwFoundParams;
9291} tQrfPrefNetwFoundInd, *tpQrfPrefNetwFoundInd;
9292
9293
9294/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309295 * Logging mail box structure
9296 *-------------------------------------------------------------------------*/
9297
9298#define MAILBOX_VERSION_V1 0x1
9299
9300typedef PACKED_PRE struct PACKED_POST
9301{
9302 /* Logging mail box version */
9303 tANI_U8 logMbVersion;
9304 /* Current logging buffer address */
9305 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9306 /* Current logging buffer length */
9307 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9308 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
9309 tANI_U16 reasonCode;
9310 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
9311 tANI_U8 logType;
9312 /* Indicate if Last segment of log is received*/
9313 tANI_BOOLEAN done;
9314}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05309315
Katya Nigamf0511f62015-05-05 16:40:57 +05309316/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05309317 *WLAN_HAL_FW_MEMORY_DUMP_REQ
9318 *--------------------------------------------------------------------------*/
9319typedef PACKED_PRE struct PACKED_POST
9320{
9321 tANI_U32 reserved;
9322}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
9323
9324typedef PACKED_PRE struct PACKED_POST
9325{
9326 tHalMsgHeader header;
9327 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
9328} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
9329
9330/*---------------------------------------------------------------------------
9331 * WLAN_HAL_FW_MEMORY_DUMP_RSP
9332 *-------------------------------------------------------------------------*/
9333typedef PACKED_PRE struct PACKED_POST
9334{
9335 tANI_U32 status;
9336} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
9337
9338typedef PACKED_PRE struct PACKED_POST
9339{
9340 tHalMsgHeader header;
9341 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
9342} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
9343
9344
9345/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05309346* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
9347*-------------------------------------------------------------------------*/
9348
9349/* only 1 filter is supported as of now */
9350#define NUM_FILTERS_SUPPORTED 1
9351
9352typedef PACKED_PRE struct PACKED_POST
9353{
9354 tSirMacAddr macAddr;
9355 tANI_U8 isA1filteringNeeded;
9356 tANI_U8 isA2filteringNeeded;
9357 tANI_U8 isA3filteringNeeded;
9358}tHalMacFilter, *tpHalMacFilter;
9359
9360typedef PACKED_PRE struct PACKED_POST
9361{
9362 tANI_U8 channelNumber;
9363 ePhyChanBondState cbState;
9364
9365 tANI_U32 maxAmpduLen;
9366 tANI_U32 maxMpduInAmpduLen;
9367
9368 tANI_U8 crcCheckEnabled;
9369
9370 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
9371 tANI_U8 numMacFilters;
9372 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
9373
9374 /* Each bit position maps to IEEE convention of typeSubtype */
9375 tANI_U64 typeSubtypeBitmap;
9376
9377 tANI_U64 reserved;
9378
9379}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
9380
9381typedef PACKED_PRE struct PACKED_POST
9382{
9383 tHalMsgHeader header;
9384 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
9385}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
9386
9387
9388/*---------------------------------------------------------------------------
9389* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
9390*-------------------------------------------------------------------------*/
9391
9392typedef PACKED_PRE struct PACKED_POST
9393{
9394 tANI_U32 status;
9395}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
9396
9397typedef PACKED_PRE struct PACKED_POST
9398{
9399 tHalMsgHeader header;
9400 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
9401}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
9402
9403/*---------------------------------------------------------------------------
9404* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
9405*-------------------------------------------------------------------------*/
9406
9407typedef PACKED_PRE struct PACKED_POST
9408{
9409 tHalMsgHeader header;
9410 tANI_U8 resetConfiguration;
9411}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
9412
9413/*---------------------------------------------------------------------------
9414* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
9415*-------------------------------------------------------------------------*/
9416
9417typedef PACKED_PRE struct PACKED_POST
9418{
9419 tANI_U32 status;
9420}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
9421
9422typedef PACKED_PRE struct PACKED_POST
9423{
9424 tHalMsgHeader header;
9425 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
9426}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
9427
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05309428typedef PACKED_PRE struct PACKED_POST
9429{
9430 tANI_U8 status;
9431}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
9432
Arun Khandavalliafc16432015-10-16 20:11:31 +05309433typedef PACKED_PRE struct PACKED_POST
9434{
9435 tANI_U8 paramType;
9436 tANI_U32 paramValue;
9437 tSirMacAddr bssid;
9438} tSetWifiConfigParams, *tpSetWifiConfigParams;
9439
9440typedef PACKED_PRE struct PACKED_POST
9441{
9442 tHalMsgHeader header;
9443 tSetWifiConfigParams wifiConfigParams;
9444} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
9445
9446typedef PACKED_PRE struct PACKED_POST {
9447 tANI_U32 status;
9448} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
9449
9450typedef PACKED_PRE struct PACKED_POST
9451{
9452 tHalMsgHeader header;
9453
9454 tHalSetWifiConfigRspParams setWifiConfigRspParams;
9455} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
9456
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05309457/*---------------------------------------------------------------------------
9458* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
9459*-------------------------------------------------------------------------*/
9460typedef PACKED_PRE struct PACKED_POST
9461{
9462 tANI_U32 reserved;
9463} tHalAntennaDiversitySelectionReqParams, *tpHalAntennaDiversitySelectionReqParams;
9464
9465typedef PACKED_PRE struct PACKED_POST
9466{
9467 tHalMsgHeader header;
9468 tHalAntennaDiversitySelectionReqParams AntDivSelReqParams;
9469}tHalAntennaDiversitySelectionReqMsg;
9470
9471/*---------------------------------------------------------------------------
9472* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP
9473*-------------------------------------------------------------------------*/
9474
9475typedef PACKED_PRE struct PACKED_POST
9476{
9477 tANI_U16 status;
9478 tANI_U32 selectedAntennaId;
9479 tANI_U32 reserved;
9480} tHalAntennaDiversitySelectionRspParams, *tpHalAntennaDiversitySelectionRspParams;
9481
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +05309482/* WDI_MODIFY_ROAM_PARAMS_IND */
9483typedef PACKED_PRE struct PACKED_POST {
9484 tANI_U8 param;
9485 tANI_U32 value;
9486} tHalModifyRoamParamsIndParams, *tpHalModifyRoamParamsIndParams;
9487
9488typedef PACKED_PRE struct PACKED_POST
9489{
9490 tHalMsgHeader header;
9491 tHalModifyRoamParamsIndParams modifyRoamParamsReqParams;
9492} tHalModifyRoamParamsInd, *tpHalModifyRoamParamsInd;
9493
Agrawal Ashishc6aa0132016-12-09 15:59:29 +05309494typedef PACKED_PRE struct PACKED_POST
9495{
9496 tSirMacAddr selfMacAddr;
9497 tANI_U32 enable;
9498 tSirMacSSid ssId;
9499 tANI_U32 rsn_authmode;
9500 tANI_U32 rsn_ucastcipherset;
9501 tANI_U32 rsn_mcastcipherset;
9502 tANI_U32 rsn_mcastmgmtcipherset;
9503 tANI_U32 channel;
9504 tANI_U32 psk_len;
9505 tANI_U8 psk[1];
9506} tSapOffloadEnableMsg, *tpSapOffloadEnableMsg;
9507
9508typedef PACKED_PRE struct PACKED_POST
9509{
9510 tHalMsgHeader header;
9511 tSapOffloadEnableMsg SapOffloadEnableMsg;
9512} tHalSapoffloadEnable, *tpHalSapoffloadEnable;
9513
Anurag Chouhan9b3383a2016-12-13 22:29:55 +05309514/*---------------------------------------------------------------------------
9515 * WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ
9516 *--------------------------------------------------------------------------*/
9517typedef PACKED_PRE struct PACKED_POST
9518{
9519 tANI_U8 bss_idx;
9520 tANI_U32 enable;
9521 tANI_U32 srv_ipv4; /* server IP */
9522 tANI_U32 start_lsb; /* starting address assigned to client */
9523 tANI_U32 num_client; /* number of clients we support */
9524} hal_dhcp_srv_offload_req_param_t, *hal_dhcp_srv_offload_req_params;
9525
9526typedef PACKED_PRE struct PACKED_POST
9527{
9528 tHalMsgHeader header;
9529 hal_dhcp_srv_offload_req_param_t dhcp_srv_offload_req_params;
9530} hal_dhcp_srv_offload_req_msg_t;
9531
9532/*---------------------------------------------------------------------------
9533 * WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP
9534 *--------------------------------------------------------------------------*/
9535typedef PACKED_PRE struct PACKED_POST
9536{
9537 tANI_U32 status;
9538} hal_dhcp_srv_offload_rsp_param_t, *hal_dhcp_srv_offload_rsp_params;
9539
9540typedef PACKED_PRE struct PACKED_POST
9541{
9542 tHalMsgHeader header;
9543 hal_dhcp_srv_offload_rsp_param_t dhcp_srv_offload_rsp_params;
9544} hal_dhcp_srv_offload_rsp_msg_t, *hal_dhcp_srv_offload_rsp_msg;
9545
Anurag Chouhan9c3ddc72016-12-16 13:12:13 +05309546/*---------------------------------------------------------------------------
9547 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ
9548 *--------------------------------------------------------------------------*/
9549typedef PACKED_PRE struct PACKED_POST
9550{
9551 tANI_U8 bss_idx;
9552 tANI_U32 enable;
9553} hal_mdns_enable_offload_req_param_t, *hal_mdns_enable_offload_req_params;
9554
9555typedef PACKED_PRE struct PACKED_POST
9556{
9557 tHalMsgHeader header;
9558 hal_mdns_enable_offload_req_param_t mdns_enable_req_params;
9559} hal_mdns_enable_offload_req_msg_t;
9560
9561/*---------------------------------------------------------------------------
9562 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP
9563 *--------------------------------------------------------------------------*/
9564typedef PACKED_PRE struct PACKED_POST
9565{
9566 tANI_U32 status;
9567} hal_mdns_enable_offload_rsp_param_t, *hal_mdns_enable_offload_rsp_params;
9568
9569typedef PACKED_PRE struct PACKED_POST
9570{
9571 tHalMsgHeader header;
9572 hal_mdns_enable_offload_rsp_param_t mdns_enable_rsp_params;
9573} hal_mdns_enable_offload_rsp_msg_t, *hal_mdns_enable_offload_rsp_msg;
9574
9575/*---------------------------------------------------------------------------
9576 * WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ
9577 *--------------------------------------------------------------------------*/
9578typedef PACKED_PRE struct PACKED_POST
9579{
9580 tANI_U8 bss_idx;
9581 tANI_U32 type;
9582 tANI_U32 fqdn_len;
9583 tANI_U8 fqdn_data[1];
9584} hal_mdns_fqdn_offload_req_param_t, *hal_mdns_fqdn_offload_req_params;
9585
9586typedef PACKED_PRE struct PACKED_POST
9587{
9588 tHalMsgHeader header;
9589 hal_mdns_fqdn_offload_req_param_t mdns_fqdn_req_params;
9590} hal_mdns_fqdn_offload_req_msg_t;
9591
9592/*---------------------------------------------------------------------------
9593 * WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP
9594 *--------------------------------------------------------------------------*/
9595typedef PACKED_PRE struct PACKED_POST
9596{
9597 tANI_U32 status;
9598} hal_mdns_fqdn_offload_rsp_param_t, *hal_mdns_fqdn_offload_rsp_params;
9599
9600typedef PACKED_PRE struct PACKED_POST
9601{
9602 tHalMsgHeader header;
9603 hal_mdns_fqdn_offload_rsp_param_t mdns_fqdn_rsp_params;
9604} hal_mdns_fqdn_offload_rsp_msg_t, *hal_mdns_fqdn_offload_rsp_msg;
9605
9606/*---------------------------------------------------------------------------
9607 * WLAN_HAL_MDNS_RESP_OFFLOAD_REQ
9608 *--------------------------------------------------------------------------*/
9609typedef PACKED_PRE struct PACKED_POST
9610{
9611 tANI_U8 bss_idx;
9612 tANI_U32 ar_count;
9613 tANI_U32 resp_len;
9614 tANI_U8 resp_data[1];
9615} hal_mdns_resp_offload_req_param_t, *hal_mdns_resp_offload_req_params;
9616
9617typedef PACKED_PRE struct PACKED_POST
9618{
9619 tHalMsgHeader header;
9620 hal_mdns_resp_offload_req_param_t mdns_resp_req_params;
9621} hal_mdns_resp_offload_req_msg_t;
9622
9623/*---------------------------------------------------------------------------
9624 * WLAN_HAL_MDNS_RESP_OFFLOAD_RSP
9625 *--------------------------------------------------------------------------*/
9626typedef PACKED_PRE struct PACKED_POST
9627{
9628 tANI_U32 status;
9629} hal_mdns_resp_offload_rsp_param_t, *hal_mdns_resp_offload_rsp_params;
9630
9631typedef PACKED_PRE struct PACKED_POST
9632{
9633 tHalMsgHeader header;
9634 hal_mdns_resp_offload_rsp_param_t mdns_rsp_params;
9635} hal_mdns_resp_offload_rsp_msg_t, *hal_mdns_resp_offload_rsp_msg;
9636
9637/*---------------------------------------------------------------------------
9638 * WLAN_HAL_MDNS_STATS_OFFLOAD_REQ
9639 *--------------------------------------------------------------------------*/
9640typedef PACKED_PRE struct PACKED_POST
9641{
9642 tANI_U8 bss_idx;
9643} hal_mdns_stats_offload_req_param_t, *hal_mdns_stats_offload_req_params;
9644
9645typedef PACKED_PRE struct PACKED_POST
9646{
9647 tHalMsgHeader header;
9648 hal_mdns_stats_offload_req_param_t mdns_stats_req_params;
9649} hal_mdns_stats_offload_req_msg_t;
9650
9651/*---------------------------------------------------------------------------
9652 * WLAN_HAL_MDNS_STATS_OFFLOAD_RSP
9653 *--------------------------------------------------------------------------*/
9654typedef PACKED_PRE struct PACKED_POST
9655{
9656 tANI_U8 bss_idx;
9657 tANI_U32 current_ts;
9658 tANI_U32 last_query_ts;
9659 tANI_U32 last_rsp_ts;
9660 tANI_U32 tot_queries;
9661 tANI_U32 tot_matches;
9662 tANI_U32 tot_rsp;
9663 tANI_U32 status;
9664} hal_mdns_stats_offload_rsp_param_t, *hal_mdns_stats_offload_rsp_params;
9665
9666typedef PACKED_PRE struct PACKED_POST
9667{
9668 tHalMsgHeader header;
9669 hal_mdns_stats_offload_rsp_param_t mdns_stats_rsp_params;
9670} hal_mdns_stats_offload_rsp_msg_t, *hal_mdns_stats_offload_rsp_msg;
9671
Anurag Chouhance0f0822017-01-24 15:44:26 +05309672/*---------------------------------------------------------------------------
9673 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ
9674 *--------------------------------------------------------------------------*/
9675typedef PACKED_PRE struct PACKED_POST
9676{
9677 tANI_U8 set_clr; /*1 set and 0 reset*/
9678 tANI_U8 pkt_type; /* Default 1: ARP */
9679 tANI_U32 ip_addr; /*GW ipv4 address */
9680} tHalStatsArpReqParams, *tpHalStatsArpReqParams;
9681
9682typedef PACKED_PRE struct PACKED_POST
9683{
9684 tHalMsgHeader header;
9685 tHalStatsArpReqParams statsArpReqParams;
9686} tHalStatsArpReqMsg, *tpHalStatsArpReqMsg;
9687
9688/*---------------------------------------------------------------------------
9689 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP
9690 *--------------------------------------------------------------------------*/
9691typedef PACKED_PRE struct PACKED_POST
9692{
9693 tANI_U32 status; //success or failure
9694} tHalStatsArpRspParams, *tpHalStatsArpRspParams;
9695
9696typedef PACKED_PRE struct PACKED_POST
9697{
9698 tHalMsgHeader header;
9699 tHalStatsArpRspParams statsArpRspParams;
9700} tHalStatsArpRspMsg, *tpHalStatsArpRspMsg;
9701
9702/*---------------------------------------------------------------------------
9703 * WLAN_HAL_FW_GET_ARP_STATS_REQ
9704 *--------------------------------------------------------------------------*/
9705typedef PACKED_PRE struct PACKED_POST
9706{
9707 tANI_U8 pkt_type; /* Furture purpose */
9708} tHalStatsGetArpReqParams, *tpHalStatsGetArpReqParams;
9709
9710typedef PACKED_PRE struct PACKED_POST
9711{
9712 tHalMsgHeader header;
9713 tHalStatsGetArpReqParams statsGetArpReqParams;
9714} tHalStatsGetArpReqMsg, *tpHalStatsGetArpReqMsg;
9715
9716/*---------------------------------------------------------------------------
9717 * WLAN_HAL_FW_GET_ARP_STATS_RSP
9718 *--------------------------------------------------------------------------*/
9719typedef PACKED_PRE struct PACKED_POST
9720{
9721 tANI_U32 status;
9722 tANI_U16 dad;
9723 tANI_U16 arpReqRcvdInFW;
9724 tANI_U16 ackedArpReqCnt;
9725 tANI_U16 arpRspCnt;
9726 tANI_U8 data[1];
9727} tdbugArpStatsgetRspParams, *tpdbugArpStatsgetRspParams;
9728
9729typedef PACKED_PRE struct PACKED_POST
9730{
9731 tHalMsgHeader header;
9732 tdbugArpStatsgetRspParams fwArpstatsRspParams;
9733} tHalARPfwStatsRspMsg, *tpHalARPfwStatsRspMsg;
9734
Sourav Mohapatra3629ecf2018-02-12 10:24:28 +05309735/*----------------------------------------------------------------
9736 * WLAN_HAL_POWER_CONTROL_MODE_CHANGE_REQ
9737 *-----------------------------------------------------------------*/
9738
9739typedef PACKED_PRE struct PACKED_POST
9740{
9741 tANI_U8 enable;
9742} tHalPowerControlModeChangeReqParams, *tpHalPowerControlModeChangeReqParams;
9743
9744typedef PACKED_PRE struct PACKED_POST
9745{
9746 tHalMsgHeader header;
9747 tHalPowerControlModeChangeReqParams pwrCtrlModeChangeReqParams;
9748} tHalPowerControlModeChangeReqMsg, *tpHalPowerControlModeChangeReqMsg;
9749
9750/*----------------------------------------------------------------
9751 * WLAN_HAL_POWER_CONTROL_MODE_CHANGE_RSP
9752 *-----------------------------------------------------------------*/
9753
9754typedef PACKED_PRE struct PACKED_POST
9755{
9756 tANI_U32 status;
9757} tHalPowerControlModeChangeRspParams, *tpHalPowerControlModeChangeRspParams;
9758
9759typedef PACKED_PRE struct PACKED_POST
9760{
9761 tHalMsgHeader header;
9762 tHalPowerControlModeChangeRspParams pwrCtrlModeChangeRspParams;
9763} tHalPowerControlModeChangeRspMsg, *tpHalPowerControlModeChangeRspMsg;
9764
Jeff Johnson295189b2012-06-20 16:38:30 -07009765#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
9766#pragma pack(pop)
9767#elif defined(__ANI_COMPILER_PRAGMA_PACK)
9768#else
9769#endif
9770
9771#endif /* _WLAN_HAL_MSG_H_ */