blob: b37e63c02db3dd8e502fbbf501be645a2e5ce71a [file] [log] [blame]
Dino Mycle8afbac12014-07-04 22:06:17 +05301
Abhishek Singh00b71972016-01-07 10:51:04 +05302/*
Abhishek Singh1bb2bc22017-01-02 10:38:38 +05303 * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
Abhishek Singh00b71972016-01-07 10:51:04 +05304 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 *
8 * Permission to use, copy, modify, and/or distribute this software for
9 * any purpose with or without fee is hereby granted, provided that the
10 * above copyright notice and this permission notice appear in all
11 * copies.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
14 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
15 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
16 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
17 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
18 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20 * PERFORMANCE OF THIS SOFTWARE.
21 */
Prakash Dhavali0573c4d2014-02-12 13:19:04 -080022
23/*
Abhishek Singh00b71972016-01-07 10:51:04 +053024 * This file was originally distributed by Qualcomm Atheros, Inc.
25 * under proprietary terms before Copyright ownership was assigned
26 * to the Linux Foundation.
27 */
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070028
Jeff Johnson295189b2012-06-20 16:38:30 -070029/*==========================================================================
30 *
31 * @file: wlan_hal_msg.h
32 *
33 * @brief: Exports and types for messages sent to HAL from WDI
34 *
35 * @author: Kumar Anand
36 *
Jeff Johnson295189b2012-06-20 16:38:30 -070037 *
38 *=========================================================================*/
39
40#ifndef _WLAN_HAL_MSG_H_
41#define _WLAN_HAL_MSG_H_
42
43#include "halLegacyPalTypes.h"
44#include "halCompiler.h"
45#include "wlan_qct_dev_defs.h"
46#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080047
Jeff Johnson295189b2012-06-20 16:38:30 -070048/*---------------------------------------------------------------------------
49 API VERSIONING INFORMATION
50
51 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
52 The MAJOR is incremented for major product/architecture changes
53 (and then MINOR/VERSION/REVISION are zeroed)
54 The MINOR is incremented for minor product/architecture changes
55 (and then VERSION/REVISION are zeroed)
56 The VERSION is incremented if a significant API change occurs
57 (and then REVISION is zeroed)
58 The REVISION is incremented if an insignificant API change occurs
59 or if a new API is added
60 All values are in the range 0..255 (ie they are 8-bit values)
61 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070062#define WLAN_HAL_VER_MAJOR 1
Kumar Anandea78e792013-10-10 23:47:01 -070063#define WLAN_HAL_VER_MINOR 5
Jeff Johnson295189b2012-06-20 16:38:30 -070064#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080065#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070066
67/*---------------------------------------------------------------------------
68 Commom Type definitons
69 ---------------------------------------------------------------------------*/
70
Srinivas Dasari42584632014-11-26 20:37:19 +053071#define DISA_MAX_PAYLOAD_SIZE 1600
72
Jeff Johnson295189b2012-06-20 16:38:30 -070073//This is to force compiler to use the maximum of an int ( 4 bytes )
74#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070075#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070076
77//Max no. of transmit categories
78#define STACFG_MAX_TC 8
79
80//The maximum value of access category
81#define WLAN_HAL_MAX_AC 4
82
83typedef tANI_U8 tSirMacAddr[6];
84typedef tANI_U8 tHalIpv4Addr[4];
85
86#define HAL_MAC_ADDR_LEN 6
87#define HAL_IPV4_ADDR_LEN 4
88
Amar Singhalb41c45b2014-03-21 14:44:14 -070089#define WLAN_HAL_STA_INVALID_IDX 0xFF
Jeff Johnson295189b2012-06-20 16:38:30 -070090#define WLAN_HAL_BSS_INVALID_IDX 0xFF
91
92//Default Beacon template size
Dino Mycle8afbac12014-07-04 22:06:17 +053093#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070094
Kumar Anandea78e792013-10-10 23:47:01 -070095
96//Max Tx Data Rate samples
97#define MAX_TX_RATE_SAMPLES 10
98//Max Beacon Rssi samples
99#define MAX_BCN_RSSI_SAMPLES 10
100
Dino Mycle8afbac12014-07-04 22:06:17 +0530101//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -0700102#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
103#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
104#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
105#define PARAM_llACOEXIST_CHANGED (1 << 3)
106#define PARAM_llBCOEXIST_CHANGED (1 << 4)
107#define PARAM_llGCOEXIST_CHANGED (1 << 5)
108#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
109#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
110#define PARAM_RIFS_MODE_CHANGED (1<<8)
111#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
112#define PARAM_OBSS_MODE_CHANGED (1<<10)
113#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
114 PARAM_llGCOEXIST_CHANGED|PARAM_HT20MHZCOEXIST_CHANGED|PARAM_NON_GF_DEVICES_PRESENT_CHANGED|PARAM_RIFS_MODE_CHANGED|PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED| PARAM_OBSS_MODE_CHANGED)
115
116/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530117#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700118
119/*Version string max length (including NUL) */
120#define WLAN_HAL_VERSION_LENGTH 64
121
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530122#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
Amar Singhalb41c45b2014-03-21 14:44:14 -0700123/* 80 is actually NUM_RF_CHANNELS_V2, but beyond V2, this number will be ignored by FW */
Varun Reddy Yeturu94d94c12014-02-06 11:12:56 -0800124#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS 80
Amar Singhalb41c45b2014-03-21 14:44:14 -0700125#define WLAN_HAL_ROAM_SACN_PMK_SIZE 32
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
Sunil Dutt8377a382014-05-26 21:18:04 +0530631 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700632}tHalHostMsgType;
633
Jeff Johnsone7245742012-09-05 17:12:55 -0700634/* Enumeration for Version */
635typedef enum
636{
637 WLAN_HAL_MSG_VERSION0 = 0,
638 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800639 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
640 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700641}tHalHostMsgVersion;
642
Jeff Johnson295189b2012-06-20 16:38:30 -0700643/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530644typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700645{
646 eANI_BOOLEAN_FALSE = 0,
647 eANI_BOOLEAN_TRUE,
648 eANI_BOOLEAN_OFF = 0,
649 eANI_BOOLEAN_ON = 1,
650 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
651} eAniBoolean;
652
653typedef enum
654{
655 eDRIVER_TYPE_PRODUCTION = 0,
656 eDRIVER_TYPE_MFG = 1,
657 eDRIVER_TYPE_DVT = 2,
658 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
659} tDriverType;
660
661typedef enum
662{
663 HAL_STOP_TYPE_SYS_RESET,
664 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
665 HAL_STOP_TYPE_RF_KILL,
666 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
667}tHalStopType;
668
669typedef enum
670{
671 eHAL_SYS_MODE_NORMAL,
672 eHAL_SYS_MODE_LEARN,
673 eHAL_SYS_MODE_SCAN,
674 eHAL_SYS_MODE_PROMISC,
675 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700676 eHAL_SYS_MODE_ROAM_SCAN,
677 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700678 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700679 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
680} eHalSysMode;
681
682typedef enum
683{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800684 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
685 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
686 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
687 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
688 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
689 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
690 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
691 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
692 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700693 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800694 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
695} eHalChanSwitchSource;
696
697typedef enum
698{
Jeff Johnson295189b2012-06-20 16:38:30 -0700699 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
700 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
701 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
702 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700703#ifdef WLAN_FEATURE_11AC
704 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
705 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
706 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
707 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
708 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
709 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
710 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
711#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700712 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
713}ePhyChanBondState;
714
715// Spatial Multiplexing(SM) Power Save mode
716typedef enum eSirMacHTMIMOPowerSaveState
717{
718 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
719 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
720 eSIR_HT_MIMO_PS_NA = 2, // reserved
721 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
722 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
723} tSirMacHTMIMOPowerSaveState;
724
725/* each station added has a rate mode which specifies the sta attributes */
726typedef enum eStaRateMode {
727 eSTA_TAURUS = 0,
728 eSTA_TITAN,
729 eSTA_POLARIS,
730 eSTA_11b,
731 eSTA_11bg,
732 eSTA_11a,
733 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700734#ifdef WLAN_FEATURE_11AC
735 eSTA_11ac,
736#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700737 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
738} tStaRateMode, *tpStaRateMode;
739
740#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
741#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
742#define SIR_NUM_POLARIS_RATES 3 //72,96,108
743
744#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
745
746
747typedef enum eSirBssType
748{
749 eSIR_INFRASTRUCTURE_MODE,
750 eSIR_INFRA_AP_MODE, //Added for softAP support
751 eSIR_IBSS_MODE,
752 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
753 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
754 eSIR_AUTO_MODE,
755 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
756} tSirBssType;
757
758typedef enum eSirNwType
759{
760 eSIR_11A_NW_TYPE,
761 eSIR_11B_NW_TYPE,
762 eSIR_11G_NW_TYPE,
763 eSIR_11N_NW_TYPE,
764 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
765} tSirNwType;
766
767typedef tANI_U16 tSirMacBeaconInterval;
768
769#define SIR_MAC_RATESET_EID_MAX 12
770
771typedef enum eSirMacHTOperatingMode
772{
773 eSIR_HT_OP_MODE_PURE, // No Protection
774 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
775 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
776 eSIR_HT_OP_MODE_MIXED, // Protection is required
777 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
778} tSirMacHTOperatingMode;
779
Jeff Johnson295189b2012-06-20 16:38:30 -0700780/// Encryption type enum used with peer
781typedef enum eAniEdType
782{
783 eSIR_ED_NONE,
784 eSIR_ED_WEP40,
785 eSIR_ED_WEP104,
786 eSIR_ED_TKIP,
787 eSIR_ED_CCMP,
788 eSIR_ED_WPI,
789 eSIR_ED_AES_128_CMAC,
790 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
791} tAniEdType;
792
793#define WLAN_MAX_KEY_RSC_LEN 16
794#define WLAN_WAPI_KEY_RSC_LEN 16
795
796/// MAX key length when ULA is used
797#define SIR_MAC_MAX_KEY_LENGTH 32
798#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
799
800/// Enum to specify whether key is used
801/// for TX only, RX only or both
802typedef enum eAniKeyDirection
803{
804 eSIR_TX_ONLY,
805 eSIR_RX_ONLY,
806 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700807 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700808 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
809} tAniKeyDirection;
810
811typedef enum eAniWepType
812{
813 eSIR_WEP_STATIC,
814 eSIR_WEP_DYNAMIC,
815 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
816} tAniWepType;
817
818typedef enum eSriLinkState {
819
820 eSIR_LINK_IDLE_STATE = 0,
821 eSIR_LINK_PREASSOC_STATE = 1,
822 eSIR_LINK_POSTASSOC_STATE = 2,
823 eSIR_LINK_AP_STATE = 3,
824 eSIR_LINK_IBSS_STATE = 4,
825
826 /* BT-AMP Case */
827 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
828 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
829 eSIR_LINK_BTAMP_AP_STATE = 7,
830 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530831
Jeff Johnson295189b2012-06-20 16:38:30 -0700832 /* Reserved for HAL Internal Use */
833 eSIR_LINK_LEARN_STATE = 9,
834 eSIR_LINK_SCAN_STATE = 10,
835 eSIR_LINK_FINISH_SCAN_STATE = 11,
836 eSIR_LINK_INIT_CAL_STATE = 12,
837 eSIR_LINK_FINISH_CAL_STATE = 13,
838#ifdef WLAN_FEATURE_P2P
839 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530840 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700841#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700842#ifdef WLAN_FEATURE_ROAM_OFFLOAD
843 eSIR_LINK_FT_PREASSOC_STATE = 16,
844#endif
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +0530845#ifdef WLAN_FEATURE_LFR_MBB
846 eSIR_LINK_PRE_AUTH_REASSOC_STATE = 17,
847#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700848 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
849} tSirLinkState;
850
851typedef enum
852{
853 HAL_SUMMARY_STATS_INFO = 0x00000001,
854 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
855 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
856 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
857 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530858 HAL_PER_STA_STATS_INFO = 0x00000020,
859 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700860}eHalStatsMask;
861
862/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530863typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700864{
865 BTAMP_EVENT_CONNECTION_START,
866 BTAMP_EVENT_CONNECTION_STOP,
867 BTAMP_EVENT_CONNECTION_TERMINATED,
868 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
869} tBtAmpEventType;
870
871//***************************************************************
872
873
874/*******************PE Statistics*************************/
875typedef enum
876{
877 PE_SUMMARY_STATS_INFO = 0x00000001,
878 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
879 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
880 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
881 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
882 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530883 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700884 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
885}ePEStatsMask;
886
Sunil Dutt8377a382014-05-26 21:18:04 +0530887
888/******************************LINK LAYER Statitics**********************/
889
890typedef int wifi_radio;
891typedef int wifi_channel;
892typedef int wifi_tx_rate;
893
894/* channel operating width */
895typedef enum {
896 WIFI_CHAN_WIDTH_20 = 0,
897 WIFI_CHAN_WIDTH_40 = 1,
898 WIFI_CHAN_WIDTH_80 = 2,
899 WIFI_CHAN_WIDTH_160 = 3,
900 WIFI_CHAN_WIDTH_80P80 = 4,
901 WIFI_CHAN_WIDTH_5 = 5,
902 WIFI_CHAN_WIDTH_10 = 6,
903} wifi_channel_width;
904
905typedef enum {
906 WIFI_DISCONNECTED = 0,
907 WIFI_AUTHENTICATING = 1,
908 WIFI_ASSOCIATING = 2,
909 WIFI_ASSOCIATED = 3,
910 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
911 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
912} wifi_connection_state;
913
914typedef enum {
915 WIFI_ROAMING_IDLE = 0,
916 WIFI_ROAMING_ACTIVE = 1,
917} wifi_roam_state;
918
919typedef enum {
920 WIFI_INTERFACE_STA = 0,
921 WIFI_INTERFACE_SOFTAP = 1,
922 WIFI_INTERFACE_IBSS = 2,
923 WIFI_INTERFACE_P2P_CLIENT = 3,
924 WIFI_INTERFACE_P2P_GO = 4,
925 WIFI_INTERFACE_NAN = 5,
926 WIFI_INTERFACE_MESH = 6,
927 } wifi_interface_mode;
928
929#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
930#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
931#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
932#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
933#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
934#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
935
936typedef PACKED_PRE struct PACKED_POST
937{
938 wifi_interface_mode mode; // interface mode
939 tANI_U8 mac_addr[6]; // interface mac address (self)
940 wifi_connection_state state; // connection state (valid for STA, CLI only)
941 wifi_roam_state roaming; // roaming state
942 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
943 tANI_U8 ssid[33]; // null terminated SSID
944 tANI_U8 bssid[6]; // bssid
945 tANI_U8 ap_country_str[3]; // country string advertised by AP
946 tANI_U8 country_str[3]; // country string for this association
947} wifi_interface_info;
948
949/* channel information */
950typedef PACKED_PRE struct PACKED_POST
951{
952 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
953 wifi_channel center_freq; // primary 20 MHz channel
954 wifi_channel center_freq0; // center frequency (MHz) first segment
955 wifi_channel center_freq1; // center frequency (MHz) second segment
956} wifi_channel_info;
957
958/* wifi rate info */
959typedef PACKED_PRE struct PACKED_POST
960{
961 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
962 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
963 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
964 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
965 // HT/VHT it would be mcs index
966 tANI_U32 reserved :16; // reserved
967 tANI_U32 bitrate; // units of 100 Kbps
968} wifi_rate;
969
970/* channel statistics */
971typedef PACKED_PRE struct PACKED_POST
972{
973 wifi_channel_info channel; // channel
974 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
975 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
976} wifi_channel_stats;
977
978/* radio statistics */
979typedef PACKED_PRE struct PACKED_POST
980{
981 wifi_radio radio; // wifi radio (if multiple radio supported)
982 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
983 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
984 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
985 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
986 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
987 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
988 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
989 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
990 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
991 tANI_U32 num_channels; // number of channels
992 wifi_channel_stats channels[1]; // channel statistics
993} wifi_radio_stat;
994
995/* per rate statistics */
996typedef PACKED_PRE struct PACKED_POST
997{
998 wifi_rate rate; // rate information *
999 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
1000 tANI_U32 rx_mpdu; // number of received data pkts
1001 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
1002 tANI_U32 retries; // total number of data pkt retries *
1003 tANI_U32 retries_short; // number of short data pkt retries
1004 tANI_U32 retries_long; // number of long data pkt retries
1005} wifi_rate_stat;
1006
1007/* access categories */
1008typedef enum {
1009 WIFI_AC_VO = 0,
1010 WIFI_AC_VI = 1,
1011 WIFI_AC_BE = 2,
1012 WIFI_AC_BK = 3,
1013 WIFI_AC_MAX = 4,
1014} wifi_traffic_ac;
1015
1016/* wifi peer type */
1017typedef enum
1018{
1019 WIFI_PEER_STA,
1020 WIFI_PEER_AP,
1021 WIFI_PEER_P2P_GO,
1022 WIFI_PEER_P2P_CLIENT,
1023 WIFI_PEER_NAN,
1024 WIFI_PEER_TDLS,
1025 WIFI_PEER_INVALID,
1026} wifi_peer_type;
1027
1028/* per peer statistics */
1029typedef PACKED_PRE struct PACKED_POST
1030{
1031 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
1032 tANI_U8 peer_mac_address[6]; // mac address
1033 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
1034 tANI_U32 num_rate; // number of rates
1035 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
1036} wifi_peer_info;
1037
1038/* per access category statistics */
1039typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301040{
1041 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
1042 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
1043 tANI_U32 rx_mpdu; // number of received unicast mpdus
1044 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1045 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1046 tANI_U32 rx_mcast; // number of received multicast data packets
1047 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1048 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1049 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1050 tANI_U32 retries; // total number of data pkt retries
1051 tANI_U32 retries_short; // number of short data pkt retries
1052 tANI_U32 retries_long; // number of long data pkt retries
1053 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1054 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1055 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1056 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1057} wifi_wmm_ac_stat;
1058
Mukul Sharma03f86492015-10-20 16:10:13 +05301059typedef PACKED_PRE struct PACKED_POST
1060{
1061 tANI_U64 average_tsf_offset;
1062 tANI_U32 leaky_ap_avg_num_frames_leaked;
1063 tANI_U32 leaky_ap_guard_time;
1064 tANI_U32 leaky_ap_detected;
1065} wifi_iface_leaky_ap_info;
1066
Sunil Dutt8377a382014-05-26 21:18:04 +05301067/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1068typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301069{
1070 wifi_interface_info info; // current state of the interface
1071 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1072 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1073 tANI_U32 mgmt_action_rx; // action frames received count
1074 tANI_U32 mgmt_action_tx; // action frames transmit count
1075 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1076 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1077 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1078 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
Mukul Sharma03f86492015-10-20 16:10:13 +05301079 wifi_iface_leaky_ap_info leakyApInfo;
Sunil Dutt8377a382014-05-26 21:18:04 +05301080} wifi_iface_stat;
1081
1082/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1083typedef PACKED_PRE struct PACKED_POST
1084{
1085 tANI_U32 num_peers; // number of peers
1086 wifi_peer_info peer_info[1]; // per peer statistics
1087} wifi_peer_stat;
1088
1089/* wifi statistics bitmap for getting statistics */
1090#define WMI_LINK_STATS_RADIO 0x00000001
1091#define WMI_LINK_STATS_IFACE 0x00000002
1092#define WMI_LINK_STATS_ALL_PEER 0x00000004
1093#define WMI_LINK_STATS_PER_PEER 0x00000008
1094
1095/* wifi statistics bitmap for clearing statistics */
1096#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1097#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1098#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1099#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1100#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1101#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1102#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1103#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1104
1105
Jeff Johnson295189b2012-06-20 16:38:30 -07001106/*---------------------------------------------------------------------------
1107 Message definitons - All the messages below need to be packed
1108 ---------------------------------------------------------------------------*/
1109
1110#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1111#pragma pack(push, 1)
1112#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1113#pragma pack(1)
1114#else
1115#endif
1116
1117/// Definition for HAL API Version.
1118typedef PACKED_PRE struct PACKED_POST
1119{
1120 tANI_U8 revision;
1121 tANI_U8 version;
1122 tANI_U8 minor;
1123 tANI_U8 major;
1124} tWcnssWlanVersion, *tpWcnssWlanVersion;
1125
1126/// Definition for Encryption Keys
1127typedef PACKED_PRE struct PACKED_POST
1128{
1129 tANI_U8 keyId;
1130 tANI_U8 unicast; // 0 for multicast
1131 tAniKeyDirection keyDirection;
1132 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1133 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1134 tANI_U16 keyLength;
1135 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1136} tSirKeys, *tpSirKeys;
1137
1138
1139//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1140typedef PACKED_PRE struct PACKED_POST
1141{
1142 /*STA Index*/
1143 tANI_U16 staIdx;
1144
1145 /*Encryption Type used with peer*/
1146 tAniEdType encType;
1147
1148 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301149 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001150
1151 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1152 tANI_U8 defWEPIdx;
1153
Jeff Johnson295189b2012-06-20 16:38:30 -07001154 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301155 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1156
Jeff Johnson295189b2012-06-20 16:38:30 -07001157 /*Control for Replay Count, 1= Single TID based replay count on Tx
1158 0 = Per TID based replay count on TX */
1159 tANI_U8 singleTidRc;
1160
1161} tSetStaKeyParams, *tpSetStaKeyParams;
1162
1163
1164
1165/* 4-byte control message header used by HAL*/
1166typedef PACKED_PRE struct PACKED_POST
1167{
Jeff Johnsone7245742012-09-05 17:12:55 -07001168 tHalHostMsgType msgType:16;
1169 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001170 tANI_U32 msgLen;
1171} tHalMsgHeader, *tpHalMsgHeader;
1172
1173/* Config format required by HAL for each CFG item*/
1174typedef PACKED_PRE struct PACKED_POST
1175{
1176 /* Cfg Id. The Id required by HAL is exported by HAL
1177 * in shared header file between UMAC and HAL.*/
1178 tANI_U16 uCfgId;
1179
Dino Mycle8afbac12014-07-04 22:06:17 +05301180 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001181 * in the TLV format.*/
1182 tANI_U16 uCfgLen;
1183
1184 /* Padding bytes for unaligned address's */
1185 tANI_U16 uCfgPadBytes;
1186
1187 /* Reserve bytes for making cfgVal to align address */
1188 tANI_U16 uCfgReserve;
1189
1190 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1191 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1192} tHalCfg, *tpHalCfg;
1193
1194/*---------------------------------------------------------------------------
1195 WLAN_HAL_START_REQ
1196---------------------------------------------------------------------------*/
1197
1198typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1199{
1200 /* Drive Type - Production or FTM etc */
1201 tDriverType driverType;
1202
1203 /*Length of the config buffer*/
1204 tANI_U32 uConfigBufferLen;
1205
Dino Mycle8afbac12014-07-04 22:06:17 +05301206 /* Following this there is a TLV formatted buffer of length
1207 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001208 * The TLV is expected to be formatted like this:
1209 * 0 15 31 31+CFG_LEN-1 length-1
1210 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1211 */
1212} tHalMacStartParameters, *tpHalMacStartParameters;
1213
1214typedef PACKED_PRE struct PACKED_POST
1215{
1216 /* Note: The length specified in tHalMacStartReqMsg messages should be
1217 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1218 tHalMsgHeader header;
1219 tHalMacStartParameters startReqParams;
1220} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1221
1222/*---------------------------------------------------------------------------
1223 WLAN_HAL_START_RSP
1224---------------------------------------------------------------------------*/
1225
1226typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1227{
1228 /*success or failure */
1229 tANI_U16 status;
1230
1231 /*Max number of STA supported by the device*/
1232 tANI_U8 ucMaxStations;
1233
1234 /*Max number of BSS supported by the device*/
1235 tANI_U8 ucMaxBssids;
1236
1237 /*API Version */
1238 tWcnssWlanVersion wcnssWlanVersion;
1239
1240 /*CRM build information */
1241 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1242
1243 /*hardware/chipset/misc version information */
1244 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1245
1246} tHalMacStartRspParams, *tpHalMacStartRspParams;
1247
1248typedef PACKED_PRE struct PACKED_POST
1249{
1250 tHalMsgHeader header;
1251 tHalMacStartRspParams startRspParams;
1252} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1253
1254/*---------------------------------------------------------------------------
1255 WLAN_HAL_STOP_REQ
1256---------------------------------------------------------------------------*/
1257
1258typedef PACKED_PRE struct PACKED_POST
1259{
1260 /*The reason for which the device is being stopped*/
1261 tHalStopType reason;
1262
1263}tHalMacStopReqParams, *tpHalMacStopReqParams;
1264
1265typedef PACKED_PRE struct PACKED_POST
1266{
1267 tHalMsgHeader header;
1268 tHalMacStopReqParams stopReqParams;
1269} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1270
1271/*---------------------------------------------------------------------------
1272 WLAN_HAL_STOP_RSP
1273---------------------------------------------------------------------------*/
1274
1275typedef PACKED_PRE struct PACKED_POST
1276{
1277 /*success or failure */
1278 tANI_U32 status;
1279
1280}tHalMacStopRspParams, *tpHalMacStopRspParams;
1281
1282typedef PACKED_PRE struct PACKED_POST
1283{
1284 tHalMsgHeader header;
1285 tHalMacStopRspParams stopRspParams;
1286} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1287
1288/*---------------------------------------------------------------------------
1289 WLAN_HAL_UPDATE_CFG_REQ
1290---------------------------------------------------------------------------*/
1291
1292typedef PACKED_PRE struct PACKED_POST
1293{
1294 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1295 tANI_U32 uConfigBufferLen;
1296
Dino Mycle8afbac12014-07-04 22:06:17 +05301297 /* Following this there is a TLV formatted buffer of length
1298 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001299 * The TLV is expected to be formatted like this:
1300 * 0 15 31 31+CFG_LEN-1 length-1
1301 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1302 */
1303} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1304
1305typedef PACKED_PRE struct PACKED_POST
1306{
1307 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1308 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1309 tHalMsgHeader header;
1310 tHalUpdateCfgReqParams updateCfgReqParams;
1311} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1312
1313/*---------------------------------------------------------------------------
1314 WLAN_HAL_UPDATE_CFG_RSP
1315---------------------------------------------------------------------------*/
1316
1317typedef PACKED_PRE struct PACKED_POST
1318{
1319 /* success or failure */
1320 tANI_U32 status;
1321
1322}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1323
1324typedef PACKED_PRE struct PACKED_POST
1325{
1326 tHalMsgHeader header;
1327 tHalUpdateCfgRspParams updateCfgRspParams;
1328} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1329
1330/*---------------------------------------------------------------------------
1331 WLAN_HAL_INIT_SCAN_REQ
1332---------------------------------------------------------------------------*/
1333
1334/// Frame control field format (2 bytes)
1335typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1336{
1337
1338#ifndef ANI_LITTLE_BIT_ENDIAN
1339
1340 tANI_U8 subType :4;
1341 tANI_U8 type :2;
1342 tANI_U8 protVer :2;
1343
1344 tANI_U8 order :1;
1345 tANI_U8 wep :1;
1346 tANI_U8 moreData :1;
1347 tANI_U8 powerMgmt :1;
1348 tANI_U8 retry :1;
1349 tANI_U8 moreFrag :1;
1350 tANI_U8 fromDS :1;
1351 tANI_U8 toDS :1;
1352
1353#else
1354
1355 tANI_U8 protVer :2;
1356 tANI_U8 type :2;
1357 tANI_U8 subType :4;
1358
1359 tANI_U8 toDS :1;
1360 tANI_U8 fromDS :1;
1361 tANI_U8 moreFrag :1;
1362 tANI_U8 retry :1;
1363 tANI_U8 powerMgmt :1;
1364 tANI_U8 moreData :1;
1365 tANI_U8 wep :1;
1366 tANI_U8 order :1;
1367
1368#endif
1369
1370} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1371
1372/// Sequence control field
1373typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1374{
1375 tANI_U8 fragNum : 4;
1376 tANI_U8 seqNumLo : 4;
1377 tANI_U8 seqNumHi : 8;
1378} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1379
1380/// Management header format
1381typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1382{
1383 tSirMacFrameCtl fc;
1384 tANI_U8 durationLo;
1385 tANI_U8 durationHi;
1386 tANI_U8 da[6];
1387 tANI_U8 sa[6];
1388 tANI_U8 bssId[6];
1389 tSirMacSeqCtl seqControl;
1390} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1391
1392/// Scan Entry to hold active BSS idx's
1393typedef __ani_attr_pre_packed struct sSirScanEntry
1394{
1395 tANI_U8 bssIdx[HAL_NUM_BSSID];
1396 tANI_U8 activeBSScnt;
1397}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1398
1399typedef PACKED_PRE struct PACKED_POST {
1400
1401 /*LEARN - AP Role
1402 SCAN - STA Role*/
1403 eHalSysMode scanMode;
1404
1405 /*BSSID of the BSS*/
1406 tSirMacAddr bssid;
1407
1408 /*Whether BSS needs to be notified*/
1409 tANI_U8 notifyBss;
1410
1411 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1412 CTS to Self). Must always be a valid frame type.*/
1413 tANI_U8 frameType;
1414
1415 /*UMAC has the option of passing the MAC frame to be used for notifying
1416 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1417 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1418 frameType.*/
1419 tANI_U8 frameLength;
1420
Dino Mycle8afbac12014-07-04 22:06:17 +05301421 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001422 is non-zero. */
1423 tSirMacMgmtHdr macMgmtHdr;
1424
1425 /*Entry to hold number of active BSS idx's*/
1426 tSirScanEntry scanEntry;
1427
1428} tInitScanParams, * tpInitScanParams;
1429
1430typedef PACKED_PRE struct PACKED_POST
1431{
1432 tHalMsgHeader header;
1433 tInitScanParams initScanParams;
1434} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1435
1436typedef PACKED_PRE struct PACKED_POST {
1437
1438 /*LEARN - AP Role
1439 SCAN - STA Role*/
1440 eHalSysMode scanMode;
1441
1442 /*BSSID of the BSS*/
1443 tSirMacAddr bssid;
1444
1445 /*Whether BSS needs to be notified*/
1446 tANI_U8 notifyBss;
1447
1448 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1449 CTS to Self). Must always be a valid frame type.*/
1450 tANI_U8 frameType;
1451
1452 /*UMAC has the option of passing the MAC frame to be used for notifying
1453 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1454 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1455 frameType.*/
1456 tANI_U8 frameLength;
1457
Dino Mycle8afbac12014-07-04 22:06:17 +05301458 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001459 is non-zero. */
1460 tSirMacMgmtHdr macMgmtHdr;
1461
1462 /*Entry to hold number of active BSS idx's*/
1463 tSirScanEntry scanEntry;
1464
1465 /* Single NoA usage in Scanning */
1466 tANI_U8 useNoA;
1467
1468 /* Indicates the scan duration (in ms) */
1469 tANI_U16 scanDuration;
1470
1471} tInitScanConParams, * tpInitScanConParams;
1472
1473typedef PACKED_PRE struct PACKED_POST
1474{
1475 tHalMsgHeader header;
1476 tInitScanConParams initScanParams;
1477} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1478
1479
1480/*---------------------------------------------------------------------------
1481 WLAN_HAL_INIT_SCAN_RSP
1482---------------------------------------------------------------------------*/
1483
1484typedef PACKED_PRE struct PACKED_POST
1485{
1486 /*success or failure */
1487 tANI_U32 status;
1488
1489}tHalInitScanRspParams, *tpHalInitScanRspParams;
1490
1491typedef PACKED_PRE struct PACKED_POST
1492{
1493 tHalMsgHeader header;
1494 tHalInitScanRspParams initScanRspParams;
1495} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1496
1497/*---------------------------------------------------------------------------
1498 WLAN_HAL_START_SCAN_REQ
1499---------------------------------------------------------------------------*/
1500
Dino Mycle8afbac12014-07-04 22:06:17 +05301501typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001502{
1503 /*Indicates the channel to scan*/
1504 tANI_U8 scanChannel;
1505
1506 } tStartScanParams, * tpStartScanParams;
1507
1508typedef PACKED_PRE struct PACKED_POST
1509{
1510 tHalMsgHeader header;
1511 tStartScanParams startScanParams;
1512} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1513
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001514typedef PACKED_PRE struct PACKED_POST
1515{
1516 tHalMsgHeader header;
1517} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1518
Jeff Johnson295189b2012-06-20 16:38:30 -07001519/*---------------------------------------------------------------------------
1520 WLAN_HAL_START_SCAN_RSP
1521---------------------------------------------------------------------------*/
1522
1523typedef PACKED_PRE struct PACKED_POST
1524{
1525 /*success or failure */
1526 tANI_U32 status;
1527
1528 tANI_U32 startTSF[2];
1529 tPowerdBm txMgmtPower;
1530
1531}tHalStartScanRspParams, *tpHalStartScanRspParams;
1532
1533typedef PACKED_PRE struct PACKED_POST
1534{
1535 tHalMsgHeader header;
1536 tHalStartScanRspParams startScanRspParams;
1537} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1538
1539/*---------------------------------------------------------------------------
1540 WLAN_HAL_END_SCAN_REQ
1541---------------------------------------------------------------------------*/
1542
1543typedef PACKED_PRE struct PACKED_POST
1544{
1545 /*Indicates the channel to stop scanning. Not used really. But retained
1546 for symmetry with "start Scan" message. It can also help in error
1547 check if needed.*/
1548 tANI_U8 scanChannel;
1549
1550} tEndScanParams, *tpEndScanParams;
1551
1552typedef PACKED_PRE struct PACKED_POST
1553{
1554 tHalMsgHeader header;
1555 tEndScanParams endScanParams;
1556} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1557
1558/*---------------------------------------------------------------------------
1559 WLAN_HAL_END_SCAN_RSP
1560---------------------------------------------------------------------------*/
1561
1562typedef PACKED_PRE struct PACKED_POST
1563{
1564 /*success or failure */
1565 tANI_U32 status;
1566
1567}tHalEndScanRspParams, *tpHalEndScanRspParams;
1568
1569typedef PACKED_PRE struct PACKED_POST
1570{
1571 tHalMsgHeader header;
1572 tHalEndScanRspParams endScanRspParams;
1573} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1574
1575/*---------------------------------------------------------------------------
1576 WLAN_HAL_FINISH_SCAN_REQ
1577---------------------------------------------------------------------------*/
1578
1579typedef PACKED_PRE struct PACKED_POST
1580{
1581 /* Identifies the operational state of the AP/STA
1582 * LEARN - AP Role SCAN - STA Role */
1583 eHalSysMode scanMode;
1584
1585 /*Operating channel to tune to.*/
1586 tANI_U8 currentOperChannel;
1587
1588 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1589 40 MHz extension channel in combination with the control channel*/
1590 ePhyChanBondState cbState;
1591
1592 /*BSSID of the BSS*/
1593 tSirMacAddr bssid;
1594
1595 /*Whether BSS needs to be notified*/
1596 tANI_U8 notifyBss;
1597
1598 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1599 CTS to Self). Must always be a valid frame type.*/
1600 tANI_U8 frameType;
1601
1602 /*UMAC has the option of passing the MAC frame to be used for notifying
1603 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1604 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1605 frameType.*/
1606 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301607
1608 /*Following the framelength there is a MAC frame buffer if frameLength
1609 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001610 tSirMacMgmtHdr macMgmtHdr;
1611
1612 /*Entry to hold number of active BSS idx's*/
1613 tSirScanEntry scanEntry;
1614
1615} tFinishScanParams, *tpFinishScanParams;
1616
1617typedef PACKED_PRE struct PACKED_POST
1618{
1619 tHalMsgHeader header;
1620 tFinishScanParams finishScanParams;
1621} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1622
1623/*---------------------------------------------------------------------------
1624 WLAN_HAL_FINISH_SCAN_RSP
1625---------------------------------------------------------------------------*/
1626
1627typedef PACKED_PRE struct PACKED_POST
1628{
1629 /*success or failure */
1630 tANI_U32 status;
1631
1632}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1633
1634typedef PACKED_PRE struct PACKED_POST
1635{
1636 tHalMsgHeader header;
1637 tHalFinishScanRspParams finishScanRspParams;
1638} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1639
Srinivas Dasari42584632014-11-26 20:37:19 +05301640typedef PACKED_PRE struct PACKED_POST
1641{
1642 tSetStaKeyParams keyParams;
1643 uint8 pn[6];
1644} tHalEncConfigParams;
1645
1646typedef PACKED_PRE struct PACKED_POST
1647{
1648 uint16 length;
1649 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1650} tHalDisaPayload;
1651
1652typedef PACKED_PRE struct PACKED_POST
1653{
1654#ifdef BYTE_ORDER_BIG_ENDIAN
1655 uint8 reserved1 : 1;
1656 uint8 ackpolicy : 2;
1657 uint8 eosp : 1;
1658 uint8 tid : 4;
1659
1660 uint8 appsbufferstate : 8;
1661#else
1662 uint8 appsbufferstate : 8;
1663
1664 uint8 tid : 4;
1665 uint8 eosp : 1;
1666 uint8 ackpolicy : 2;
1667 uint8 reserved1 : 1;
1668#endif
1669} tHalQosCtrlFieldType;
1670
1671typedef PACKED_PRE struct PACKED_POST
1672 {
1673#ifdef BYTE_ORDER_BIG_ENDIAN
1674 uint16 subtype : 4;
1675 uint16 type : 2;
1676 uint16 protocol : 2;
1677
1678 uint16 order : 1;
1679 uint16 wep : 1;
1680 uint16 moredata : 1;
1681 uint16 pm : 1;
1682 uint16 retry : 1;
1683 uint16 morefrag : 1;
1684 uint16 fromds : 1;
1685 uint16 tods : 1;
1686#else
1687
1688 uint16 tods : 1;
1689 uint16 fromds : 1;
1690 uint16 morefrag : 1;
1691 uint16 retry : 1;
1692 uint16 pm : 1;
1693 uint16 moredata : 1;
1694 uint16 wep : 1;
1695 uint16 order : 1;
1696
1697 uint16 protocol : 2;
1698 uint16 type : 2;
1699 uint16 subtype : 4;
1700#endif
1701} tHalFrmCtrlType;
1702
1703typedef PACKED_PRE struct PACKED_POST
1704{
1705 /* Frame control field */
1706 tHalFrmCtrlType fc;
1707 /* Duration ID */
1708 uint16 usDurationId;
1709 /* Address 1 field */
1710 uint8 vA1[HAL_MAC_ADDR_LEN];
1711 /* Address 2 field */
1712 uint8 vA2[HAL_MAC_ADDR_LEN];
1713 /* Address 3 field */
1714 uint8 vA3[HAL_MAC_ADDR_LEN];
1715 /* Sequence control field */
1716 uint16 seqNum;
1717 /* Optional A4 address */
1718 uint8 optvA4[HAL_MAC_ADDR_LEN];
1719 /* Optional QOS control field */
1720 tHalQosCtrlFieldType usQosCtrl;
1721} tHal80211Header;
1722
1723typedef PACKED_PRE struct PACKED_POST
1724{
1725 tHal80211Header macHeader;
1726 tHalEncConfigParams encParams;
1727 tHalDisaPayload data;
1728} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1729
1730typedef PACKED_PRE struct PACKED_POST
1731{
1732 tHalMsgHeader header;
1733 tSetEncryptedDataParams encryptedDataParams;
1734} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1735
1736typedef PACKED_PRE struct PACKED_POST
1737{
1738 tANI_U32 status;
1739 tHalDisaPayload encryptedPayload;
1740} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1741
1742typedef PACKED_PRE struct PACKED_POST
1743{
1744 tHalMsgHeader header;
1745 tSetEncryptedDataRspParams encryptedDataRspParams;
1746} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1747
Jeff Johnson295189b2012-06-20 16:38:30 -07001748/*---------------------------------------------------------------------------
1749 WLAN_HAL_CONFIG_STA_REQ
1750---------------------------------------------------------------------------*/
1751
1752typedef PACKED_PRE struct PACKED_POST {
1753 /*
1754 * For Self STA Entry: this represents Self Mode.
1755 * For Peer Stations, this represents the mode of the peer.
1756 * On Station:
1757 * --this mode is updated when PE adds the Self Entry.
1758 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1759 * ON AP:
1760 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1761 * to indicate the self mode of the AP.
1762 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1763 */
1764
1765 tStaRateMode opRateMode;
1766 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1767 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1768 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1769 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1770 tANI_U16 reserved;
1771
1772 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1773 //First 26 bits are reserved for those Titan rates and
1774 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1775 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1776
1777 /*
1778 * 0-76 bits used, remaining reserved
1779 * bits 0-15 and 32 should be set.
1780 */
1781 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1782
1783 /*
1784 * RX Highest Supported Data Rate defines the highest data
1785 * rate that the STA is able to receive, in unites of 1Mbps.
1786 * This value is derived from "Supported MCS Set field" inside
1787 * the HT capability element.
1788 */
1789 tANI_U16 rxHighestDataRate;
1790
1791} tSirSupportedRates, *tpSirSupportedRates;
1792
1793typedef PACKED_PRE struct PACKED_POST
1794{
1795 /*BSSID of STA*/
1796 tSirMacAddr bssId;
1797
1798 /*ASSOC ID, as assigned by UMAC*/
1799 tANI_U16 assocId;
1800
1801 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1802 tANI_U8 staType;
1803
1804 /*Short Preamble Supported.*/
1805 tANI_U8 shortPreambleSupported;
1806
1807 /*MAC Address of STA*/
1808 tSirMacAddr staMac;
1809
1810 /*Listen interval of the STA*/
1811 tANI_U16 listenInterval;
1812
1813 /*Support for 11e/WMM*/
1814 tANI_U8 wmmEnabled;
1815
1816 /*11n HT capable STA*/
1817 tANI_U8 htCapable;
1818
1819 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1820 tANI_U8 txChannelWidthSet;
1821
1822 /*RIFS mode 0 - NA, 1 - Allowed */
1823 tANI_U8 rifsMode;
1824
Dino Mycle8afbac12014-07-04 22:06:17 +05301825 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001826 0 - No Support, 1 - Supported
1827 SG - there is global field */
1828 tANI_U8 lsigTxopProtection;
1829
1830 /*Max Ampdu Size supported by STA. TPE programming.
1831 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1832 tANI_U8 maxAmpduSize;
1833
1834 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1835 tANI_U8 maxAmpduDensity;
1836
1837 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1838 tANI_U8 maxAmsduSize;
1839
1840 /*Short GI support for 40Mhz packets*/
1841 tANI_U8 fShortGI40Mhz;
1842
1843 /*Short GI support for 20Mhz packets*/
1844 tANI_U8 fShortGI20Mhz;
1845
Jeff Johnson295189b2012-06-20 16:38:30 -07001846 /*Robust Management Frame (RMF) enabled/disabled*/
1847 tANI_U8 rmfEnabled;
1848
1849 /* The unicast encryption type in the association */
1850 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001851
1852 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001853 will set this flag in case of RE-ASSOC, where we want to reuse the old
1854 STA ID. 0 = Add, 1 = Update*/
1855 tANI_U8 action;
1856
1857 /*U-APSD Flags: 1b per AC. Encoded as follows:
1858 b7 b6 b5 b4 b3 b2 b1 b0 =
1859 X X X X BE BK VI VO */
1860 tANI_U8 uAPSD;
1861
1862 /*Max SP Length*/
1863 tANI_U8 maxSPLen;
1864
1865 /*11n Green Field preamble support
1866 0 - Not supported, 1 - Supported */
1867 tANI_U8 greenFieldCapable;
1868
1869 /*MIMO Power Save mode*/
1870 tSirMacHTMIMOPowerSaveState mimoPS;
1871
1872 /*Delayed BA Support*/
1873 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001874
Jeff Johnson295189b2012-06-20 16:38:30 -07001875 /*Max AMPDU duration in 32us*/
1876 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001877
Jeff Johnson295189b2012-06-20 16:38:30 -07001878 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1879 it to 0 if AP does not support it. This indication is sent to HAL and
1880 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1881 tANI_U8 fDsssCckMode40Mhz;
1882
1883 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1884 Retained for backward compalibity with existing HAL code*/
1885 tANI_U8 staIdx;
1886
1887 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1888 Retained for backward compalibity with existing HAL code*/
1889 tANI_U8 bssIdx;
1890
1891 tANI_U8 p2pCapableSta;
1892
Jeff Johnsone7245742012-09-05 17:12:55 -07001893 /*Reserved to align next field on a dword boundary*/
1894 tANI_U8 reserved;
1895
1896 /*These rates are the intersection of peer and self capabilities.*/
1897 tSirSupportedRates supportedRates;
1898
Jeff Johnson295189b2012-06-20 16:38:30 -07001899} tConfigStaParams, *tpConfigStaParams;
1900
Jeff Johnsone7245742012-09-05 17:12:55 -07001901/*------------------------------------------------------------------------
1902 * WLAN_HAL_CONFIG_STA_REQ
1903 * ----------------------------------------------------------------------*/
1904
1905typedef PACKED_PRE struct PACKED_POST {
1906 /*
1907 * For Self STA Entry: this represents Self Mode.
1908 * For Peer Stations, this represents the mode of the peer.
1909 * On Station:
1910 * --this mode is updated when PE adds the Self Entry.
1911 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1912 * ON AP:
1913 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1914 * to indicate the self mode of the AP.
1915 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1916 */
1917
1918 tStaRateMode opRateMode;
1919 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1920 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1921 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1922 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1923 tANI_U16 reserved;
1924
1925 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1926 //First 26 bits are reserved for those Titan rates and
1927 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1928 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1929
1930 /*
1931 * 0-76 bits used, remaining reserved
1932 * bits 0-15 and 32 should be set.
1933 */
1934 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1935
1936 /*
1937 * RX Highest Supported Data Rate defines the highest data
1938 * rate that the STA is able to receive, in unites of 1Mbps.
1939 * This value is derived from "Supported MCS Set field" inside
1940 * the HT capability element.
1941 */
1942 tANI_U16 rxHighestDataRate;
1943
1944 /* Indicates the Maximum MCS that can be received for each number
1945 * of spacial streams */
1946 tANI_U16 vhtRxMCSMap;
1947
1948 /*Indicate the highest VHT data rate that the STA is able to receive*/
1949 tANI_U16 vhtRxHighestDataRate;
1950
1951 /* Indicates the Maximum MCS that can be transmitted for each number
1952 * of spacial streams */
1953 tANI_U16 vhtTxMCSMap;
1954
1955 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1956 tANI_U16 vhtTxHighestDataRate;
1957
1958} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1959
1960typedef PACKED_PRE struct PACKED_POST
1961{
1962 /*BSSID of STA*/
1963 tSirMacAddr bssId;
1964
1965 /*ASSOC ID, as assigned by UMAC*/
1966 tANI_U16 assocId;
1967
1968 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1969 tANI_U8 staType;
1970
1971 /*Short Preamble Supported.*/
1972 tANI_U8 shortPreambleSupported;
1973
1974 /*MAC Address of STA*/
1975 tSirMacAddr staMac;
1976
1977 /*Listen interval of the STA*/
1978 tANI_U16 listenInterval;
1979
1980 /*Support for 11e/WMM*/
1981 tANI_U8 wmmEnabled;
1982
1983 /*11n HT capable STA*/
1984 tANI_U8 htCapable;
1985
1986 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1987 tANI_U8 txChannelWidthSet;
1988
1989 /*RIFS mode 0 - NA, 1 - Allowed */
1990 tANI_U8 rifsMode;
1991
1992 /*L-SIG TXOP Protection mechanism
1993 0 - No Support, 1 - Supported
1994 SG - there is global field */
1995 tANI_U8 lsigTxopProtection;
1996
1997 /*Max Ampdu Size supported by STA. TPE programming.
1998 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1999 tANI_U8 maxAmpduSize;
2000
2001 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
2002 tANI_U8 maxAmpduDensity;
2003
2004 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
2005 tANI_U8 maxAmsduSize;
2006
2007 /*Short GI support for 40Mhz packets*/
2008 tANI_U8 fShortGI40Mhz;
2009
2010 /*Short GI support for 20Mhz packets*/
2011 tANI_U8 fShortGI20Mhz;
2012
2013 /*Robust Management Frame (RMF) enabled/disabled*/
2014 tANI_U8 rmfEnabled;
2015
2016 /* The unicast encryption type in the association */
2017 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05302018
2019 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07002020 will set this flag in case of RE-ASSOC, where we want to reuse the old
2021 STA ID. 0 = Add, 1 = Update*/
2022 tANI_U8 action;
2023
2024 /*U-APSD Flags: 1b per AC. Encoded as follows:
2025 b7 b6 b5 b4 b3 b2 b1 b0 =
2026 X X X X BE BK VI VO */
2027 tANI_U8 uAPSD;
2028
2029 /*Max SP Length*/
2030 tANI_U8 maxSPLen;
2031
2032 /*11n Green Field preamble support
2033 0 - Not supported, 1 - Supported */
2034 tANI_U8 greenFieldCapable;
2035
2036 /*MIMO Power Save mode*/
2037 tSirMacHTMIMOPowerSaveState mimoPS;
2038
2039 /*Delayed BA Support*/
2040 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05302041
Jeff Johnsone7245742012-09-05 17:12:55 -07002042 /*Max AMPDU duration in 32us*/
2043 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05302044
Jeff Johnsone7245742012-09-05 17:12:55 -07002045 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
2046 it to 0 if AP does not support it. This indication is sent to HAL and
2047 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
2048 tANI_U8 fDsssCckMode40Mhz;
2049
2050 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
2051 Retained for backward compalibity with existing HAL code*/
2052 tANI_U8 staIdx;
2053
2054 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2055 Retained for backward compalibity with existing HAL code*/
2056 tANI_U8 bssIdx;
2057
2058 tANI_U8 p2pCapableSta;
2059
2060 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002061 tANI_U8 htLdpcEnabled:1;
2062 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002063 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302064 tANI_U8 vhtTxMUBformeeCapable:1;
2065 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002066
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002067 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002068 tSirSupportedRates_V1 supportedRates;
2069
2070 tANI_U8 vhtCapable;
2071 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002072
Jeff Johnsone7245742012-09-05 17:12:55 -07002073} tConfigStaParams_V1, *tpConfigStaParams_V1;
2074
Jeff Johnson295189b2012-06-20 16:38:30 -07002075typedef PACKED_PRE struct PACKED_POST
2076{
2077 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002078 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002079 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002080 tConfigStaParams_V1 configStaParams_V1;
2081 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002082} tConfigStaReqMsg, *tpConfigStaReqMsg;
2083
2084/*---------------------------------------------------------------------------
2085 WLAN_HAL_CONFIG_STA_RSP
2086---------------------------------------------------------------------------*/
2087
2088typedef PACKED_PRE struct PACKED_POST
2089{
2090 /*success or failure */
2091 tANI_U32 status;
2092
2093 /* Station index; valid only when 'status' field value SUCCESS */
2094 tANI_U8 staIdx;
2095
2096 /* BSSID Index of BSS to which the station is associated */
2097 tANI_U8 bssIdx;
2098
2099 /* DPU Index for PTK */
2100 tANI_U8 dpuIndex;
2101
Dino Mycle8afbac12014-07-04 22:06:17 +05302102 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002103 tANI_U8 bcastDpuIndex;
2104
2105 /*DPU Index for IGTK */
2106 tANI_U8 bcastMgmtDpuIdx;
2107
2108 /*PTK DPU signature*/
2109 tANI_U8 ucUcastSig;
2110
2111 /*GTK DPU isignature*/
2112 tANI_U8 ucBcastSig;
2113
2114 /* IGTK DPU signature*/
2115 tANI_U8 ucMgmtSig;
2116
2117 tANI_U8 p2pCapableSta;
2118
2119}tConfigStaRspParams, *tpConfigStaRspParams;
2120
2121typedef PACKED_PRE struct PACKED_POST
2122{
2123 tHalMsgHeader header;
2124 tConfigStaRspParams configStaRspParams;
2125}tConfigStaRspMsg, *tpConfigStaRspMsg;
2126
2127/*---------------------------------------------------------------------------
2128 WLAN_HAL_DELETE_STA_REQ
2129---------------------------------------------------------------------------*/
2130
2131/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302132typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002133{
2134 /* Index of STA to delete */
2135 tANI_U8 staIdx;
2136} tDeleteStaParams, *tpDeleteStaParams;
2137
2138/* Delete STA Request message*/
2139typedef PACKED_PRE struct PACKED_POST
2140{
2141 tHalMsgHeader header;
2142 tDeleteStaParams delStaParams;
2143} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2144
2145/*---------------------------------------------------------------------------
2146 WLAN_HAL_DELETE_STA_RSP
2147---------------------------------------------------------------------------*/
2148
2149/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302150typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002151{
2152 /*success or failure */
2153 tANI_U32 status;
2154
2155 /* Index of STA deleted */
2156 tANI_U8 staId;
2157} tDeleteStaRspParams, *tpDeleteStaRspParams;
2158
2159/* Delete STA Response message*/
2160typedef PACKED_PRE struct PACKED_POST
2161{
2162 tHalMsgHeader header;
2163 tDeleteStaRspParams delStaRspParams;
2164} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2165
2166/*---------------------------------------------------------------------------
2167 WLAN_HAL_CONFIG_BSS_REQ
2168---------------------------------------------------------------------------*/
2169
2170//12 Bytes long because this structure can be used to represent rate
2171//and extended rate set IEs. The parser assume this to be at least 12
2172typedef __ani_attr_pre_packed struct sSirMacRateSet
2173{
2174 tANI_U8 numRates;
2175 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2176} __ani_attr_packed tSirMacRateSet;
2177
2178// access category record
2179typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2180{
2181#ifndef ANI_LITTLE_BIT_ENDIAN
2182 tANI_U8 rsvd : 1;
2183 tANI_U8 aci : 2;
2184 tANI_U8 acm : 1;
2185 tANI_U8 aifsn : 4;
2186#else
2187 tANI_U8 aifsn : 4;
2188 tANI_U8 acm : 1;
2189 tANI_U8 aci : 2;
2190 tANI_U8 rsvd : 1;
2191#endif
2192} __ani_attr_packed tSirMacAciAifsn;
2193
2194// contention window size
2195typedef __ani_attr_pre_packed struct sSirMacCW
2196{
2197#ifndef ANI_LITTLE_BIT_ENDIAN
2198 tANI_U8 max : 4;
2199 tANI_U8 min : 4;
2200#else
2201 tANI_U8 min : 4;
2202 tANI_U8 max : 4;
2203#endif
2204} __ani_attr_packed tSirMacCW;
2205
2206typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2207{
2208 tSirMacAciAifsn aci;
2209 tSirMacCW cw;
2210 tANI_U16 txoplimit;
2211} __ani_attr_packed tSirMacEdcaParamRecord;
2212
2213typedef __ani_attr_pre_packed struct sSirMacSSid
2214{
2215 tANI_U8 length;
2216 tANI_U8 ssId[32];
2217} __ani_attr_packed tSirMacSSid;
2218
2219// Concurrency role. These are generic IDs that identify the various roles
2220// in the software system.
2221typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302222 HAL_STA_MODE=0,
2223 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002224 HAL_P2P_CLIENT_MODE,
2225 HAL_P2P_GO_MODE,
2226 HAL_MONITOR_MODE,
2227} tHalConMode;
2228
2229//This is a bit pattern to be set for each mode
2230//bit 0 - sta mode
2231//bit 1 - ap mode
2232//bit 2 - p2p client mode
2233//bit 3 - p2p go mode
2234typedef enum
2235{
Dino Mycle8afbac12014-07-04 22:06:17 +05302236 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002237 HAL_SAP=2,
2238 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2239 HAL_P2P_CLIENT=4,
2240 HAL_P2P_GO=8,
2241 HAL_MAX_CONCURRENCY_PERSONA=4
2242} tHalConcurrencyMode;
2243
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002244// IFACE PERSONA for different Operating modes
2245typedef enum
2246{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002247 HAL_IFACE_UNKNOWN=0,
2248 HAL_IFACE_STA_MODE=1,
2249 HAL_IFACE_P2P_MODE=2,
2250 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002251} tHalIfacePersona;
2252
Jeff Johnson295189b2012-06-20 16:38:30 -07002253typedef PACKED_PRE struct PACKED_POST
2254{
2255 /* BSSID */
2256 tSirMacAddr bssId;
2257
Jeff Johnson295189b2012-06-20 16:38:30 -07002258 /* Self Mac Address */
2259 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002260
2261 /* BSS type */
2262 tSirBssType bssType;
2263
2264 /*Operational Mode: AP =0, STA = 1*/
2265 tANI_U8 operMode;
2266
2267 /*Network Type*/
2268 tSirNwType nwType;
2269
2270 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2271 tANI_U8 shortSlotTimeSupported;
2272
2273 /*Co-exist with 11a STA*/
2274 tANI_U8 llaCoexist;
2275
2276 /*Co-exist with 11b STA*/
2277 tANI_U8 llbCoexist;
2278
2279 /*Co-exist with 11g STA*/
2280 tANI_U8 llgCoexist;
2281
2282 /*Coexistence with 11n STA*/
2283 tANI_U8 ht20Coexist;
2284
2285 /*Non GF coexist flag*/
2286 tANI_U8 llnNonGFCoexist;
2287
2288 /*TXOP protection support*/
2289 tANI_U8 fLsigTXOPProtectionFullSupport;
2290
2291 /*RIFS mode*/
2292 tANI_U8 fRIFSMode;
2293
2294 /*Beacon Interval in TU*/
2295 tSirMacBeaconInterval beaconInterval;
2296
2297 /*DTIM period*/
2298 tANI_U8 dtimPeriod;
2299
2300 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2301 tANI_U8 txChannelWidthSet;
2302
2303 /*Operating channel*/
2304 tANI_U8 currentOperChannel;
2305
2306 /*Extension channel for channel bonding*/
2307 tANI_U8 currentExtChannel;
2308
2309 /*Reserved to align next field on a dword boundary*/
2310 tANI_U8 reserved;
2311
Jeff Johnsone7245742012-09-05 17:12:55 -07002312 /*SSID of the BSS*/
2313 tSirMacSSid ssId;
2314
2315 /*HAL should update the existing BSS entry, if this flag is set.
2316 UMAC will set this flag in case of reassoc, where we want to resue the
2317 the old BSSID and still return success 0 = Add, 1 = Update*/
2318 tANI_U8 action;
2319
2320 /* MAC Rate Set */
2321 tSirMacRateSet rateSet;
2322
2323 /*Enable/Disable HT capabilities of the BSS*/
2324 tANI_U8 htCapable;
2325
2326 // Enable/Disable OBSS protection
2327 tANI_U8 obssProtEnabled;
2328
2329 /*RMF enabled/disabled*/
2330 tANI_U8 rmfEnabled;
2331
2332 /*HT Operating Mode operating mode of the 802.11n STA*/
2333 tSirMacHTOperatingMode htOperMode;
2334
2335 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2336 tANI_U8 dualCTSProtection;
2337
2338 /* Probe Response Max retries */
2339 tANI_U8 ucMaxProbeRespRetryLimit;
2340
2341 /* To Enable Hidden ssid */
2342 tANI_U8 bHiddenSSIDEn;
2343
2344 /* To Enable Disable FW Proxy Probe Resp */
2345 tANI_U8 bProxyProbeRespEn;
2346
2347 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2348 EDCA params or might not desire to apply EDCA params during config BSS.
2349 0 implies Not Valid ; Non-Zero implies valid*/
2350 tANI_U8 edcaParamsValid;
2351
2352 /*EDCA Parameters for Best Effort Access Category*/
2353 tSirMacEdcaParamRecord acbe;
2354
2355 /*EDCA Parameters forBackground Access Category*/
2356 tSirMacEdcaParamRecord acbk;
2357
2358 /*EDCA Parameters for Video Access Category*/
2359 tSirMacEdcaParamRecord acvi;
2360
2361 /*EDCA Parameters for Voice Access Category*/
2362 tSirMacEdcaParamRecord acvo;
2363
2364#ifdef WLAN_FEATURE_VOWIFI_11R
2365 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2366 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2367#endif
2368
2369 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2370 tANI_U8 halPersona;
2371
2372 tANI_U8 bSpectrumMgtEnable;
2373
2374 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2375 tANI_S8 txMgmtPower;
2376 /*maxTxPower has max power to be used after applying the power constraint if any */
2377 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002378 /*Context of the station being added in HW
2379 Add a STA entry for "itself" -
2380 On AP - Add the AP itself in an "STA context"
2381 On STA - Add the AP to which this STA is joining in an "STA context" */
2382 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002383} tConfigBssParams, * tpConfigBssParams;
2384
2385
2386/*--------------------------------------------------------------------------
2387 * WLAN_HAL_CONFIG_BSS_REQ
2388 *--------------------------------------------------------------------------*/
2389typedef PACKED_PRE struct PACKED_POST
2390{
2391 /* BSSID */
2392 tSirMacAddr bssId;
2393
Jeff Johnsone7245742012-09-05 17:12:55 -07002394 /* Self Mac Address */
2395 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002396
2397 /* BSS type */
2398 tSirBssType bssType;
2399
2400 /*Operational Mode: AP =0, STA = 1*/
2401 tANI_U8 operMode;
2402
2403 /*Network Type*/
2404 tSirNwType nwType;
2405
2406 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2407 tANI_U8 shortSlotTimeSupported;
2408
2409 /*Co-exist with 11a STA*/
2410 tANI_U8 llaCoexist;
2411
2412 /*Co-exist with 11b STA*/
2413 tANI_U8 llbCoexist;
2414
2415 /*Co-exist with 11g STA*/
2416 tANI_U8 llgCoexist;
2417
2418 /*Coexistence with 11n STA*/
2419 tANI_U8 ht20Coexist;
2420
2421 /*Non GF coexist flag*/
2422 tANI_U8 llnNonGFCoexist;
2423
2424 /*TXOP protection support*/
2425 tANI_U8 fLsigTXOPProtectionFullSupport;
2426 /*RIFS mode*/
2427 tANI_U8 fRIFSMode;
2428
2429 /*Beacon Interval in TU*/
2430 tSirMacBeaconInterval beaconInterval;
2431
2432 /*DTIM period*/
2433 tANI_U8 dtimPeriod;
2434
2435 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2436 tANI_U8 txChannelWidthSet;
2437
2438 /*Operating channel*/
2439 tANI_U8 currentOperChannel;
2440
2441 /*Extension channel for channel bonding*/
2442 tANI_U8 currentExtChannel;
2443
2444 /*Reserved to align next field on a dword boundary*/
2445 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002446
2447 /*SSID of the BSS*/
2448 tSirMacSSid ssId;
2449
2450 /*HAL should update the existing BSS entry, if this flag is set.
2451 UMAC will set this flag in case of reassoc, where we want to resue the
2452 the old BSSID and still return success 0 = Add, 1 = Update*/
2453 tANI_U8 action;
2454
2455 /* MAC Rate Set */
2456 tSirMacRateSet rateSet;
2457
2458 /*Enable/Disable HT capabilities of the BSS*/
2459 tANI_U8 htCapable;
2460
2461 // Enable/Disable OBSS protection
2462 tANI_U8 obssProtEnabled;
2463
2464 /*RMF enabled/disabled*/
2465 tANI_U8 rmfEnabled;
2466
2467 /*HT Operating Mode operating mode of the 802.11n STA*/
2468 tSirMacHTOperatingMode htOperMode;
2469
2470 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2471 tANI_U8 dualCTSProtection;
2472
2473 /* Probe Response Max retries */
2474 tANI_U8 ucMaxProbeRespRetryLimit;
2475
2476 /* To Enable Hidden ssid */
2477 tANI_U8 bHiddenSSIDEn;
2478
2479 /* To Enable Disable FW Proxy Probe Resp */
2480 tANI_U8 bProxyProbeRespEn;
2481
Dino Mycle8afbac12014-07-04 22:06:17 +05302482 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2483 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002484 0 implies Not Valid ; Non-Zero implies valid*/
2485 tANI_U8 edcaParamsValid;
2486
2487 /*EDCA Parameters for Best Effort Access Category*/
2488 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302489
Jeff Johnson295189b2012-06-20 16:38:30 -07002490 /*EDCA Parameters forBackground Access Category*/
2491 tSirMacEdcaParamRecord acbk;
2492
2493 /*EDCA Parameters for Video Access Category*/
2494 tSirMacEdcaParamRecord acvi;
2495
2496 /*EDCA Parameters for Voice Access Category*/
2497 tSirMacEdcaParamRecord acvo;
2498
2499#ifdef WLAN_FEATURE_VOWIFI_11R
2500 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2501 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2502#endif
2503
Dino Mycle8afbac12014-07-04 22:06:17 +05302504 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002505 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302506
Jeff Johnson295189b2012-06-20 16:38:30 -07002507 tANI_U8 bSpectrumMgtEnable;
2508
2509 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2510 tANI_S8 txMgmtPower;
2511 /*maxTxPower has max power to be used after applying the power constraint if any */
2512 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002513 /*Context of the station being added in HW
2514 Add a STA entry for "itself" -
2515 On AP - Add the AP itself in an "STA context"
2516 On STA - Add the AP to which this STA is joining in an "STA context" */
2517 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302518
Jeff Johnsone7245742012-09-05 17:12:55 -07002519 tANI_U8 vhtCapable;
2520 tANI_U8 vhtTxChannelWidthSet;
2521} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002522
2523typedef PACKED_PRE struct PACKED_POST
2524{
2525 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002526 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002527 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002528 tConfigBssParams_V1 configBssParams_V1;
2529 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002530} tConfigBssReqMsg, *tpConfigBssReqMsg;
2531
2532/*---------------------------------------------------------------------------
2533 WLAN_HAL_CONFIG_BSS_RSP
2534---------------------------------------------------------------------------*/
2535
2536typedef PACKED_PRE struct PACKED_POST
2537{
2538 /* Success or Failure */
2539 tANI_U32 status;
2540
2541 /* BSS index allocated by HAL */
2542 tANI_U8 bssIdx;
2543
2544 /* DPU descriptor index for PTK */
2545 tANI_U8 dpuDescIndx;
2546
2547 /* PTK DPU signature */
2548 tANI_U8 ucastDpuSignature;
2549
2550 /* DPU descriptor index for GTK*/
2551 tANI_U8 bcastDpuDescIndx;
2552
2553 /* GTK DPU signature */
2554 tANI_U8 bcastDpuSignature;
2555
2556 /*DPU descriptor for IGTK*/
2557 tANI_U8 mgmtDpuDescIndx;
2558
2559 /* IGTK DPU signature */
2560 tANI_U8 mgmtDpuSignature;
2561
2562 /* Station Index for BSS entry*/
2563 tANI_U8 bssStaIdx;
2564
2565 /* Self station index for this BSS */
2566 tANI_U8 bssSelfStaIdx;
2567
2568 /* Bcast station for buffering bcast frames in AP role */
2569 tANI_U8 bssBcastStaIdx;
2570
2571 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2572 tSirMacAddr staMac;
2573
2574 /*HAL fills in the tx power used for mgmt frames in this field. */
2575 tANI_S8 txMgmtPower;
2576
2577} tConfigBssRspParams, * tpConfigBssRspParams;
2578
2579typedef PACKED_PRE struct PACKED_POST
2580{
2581 tHalMsgHeader header;
2582 tConfigBssRspParams configBssRspParams;
2583} tConfigBssRspMsg, *tpConfigBssRspMsg;
2584
2585/*---------------------------------------------------------------------------
2586 WLAN_HAL_DELETE_BSS_REQ
2587---------------------------------------------------------------------------*/
2588
2589typedef PACKED_PRE struct PACKED_POST
2590{
2591 /* BSS index to be deleted */
2592 tANI_U8 bssIdx;
2593
2594} tDeleteBssParams, *tpDeleteBssParams;
2595
2596typedef PACKED_PRE struct PACKED_POST
2597{
2598 tHalMsgHeader header;
2599 tDeleteBssParams deleteBssParams;
2600} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2601
2602/*---------------------------------------------------------------------------
2603 WLAN_HAL_DELETE_BSS_RSP
2604---------------------------------------------------------------------------*/
2605
2606typedef PACKED_PRE struct PACKED_POST
2607{
2608 /* Success or Failure */
2609 tANI_U32 status;
2610
2611 /* BSS index that has been deleted */
2612 tANI_U8 bssIdx;
2613
2614} tDeleteBssRspParams, *tpDeleteBssRspParams;
2615
2616typedef PACKED_PRE struct PACKED_POST
2617{
2618 tHalMsgHeader header;
2619 tDeleteBssRspParams deleteBssRspParams;
2620} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2621
2622/*---------------------------------------------------------------------------
2623 WLAN_HAL_JOIN_REQ
2624---------------------------------------------------------------------------*/
2625
2626typedef PACKED_PRE struct PACKED_POST
2627{
2628 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302629 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002630
2631 /*Indicates the channel to switch to.*/
2632 tANI_U8 ucChannel;
2633
2634 /* Self STA MAC */
2635 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302636
Jeff Johnson295189b2012-06-20 16:38:30 -07002637 /*Local power constraint*/
2638 tANI_U8 ucLocalPowerConstraint;
2639
2640 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002641 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002642
2643 /*link State*/
2644 tSirLinkState linkState;
2645
2646 /* Max TX power */
2647 tANI_S8 maxTxPower;
2648
2649} tHalJoinReqParams, *tpHalJoinReqParams;
2650
2651typedef PACKED_PRE struct PACKED_POST
2652{
2653 tHalMsgHeader header;
2654 tHalJoinReqParams joinReqParams;
2655} tHalJoinReqMsg, *tpHalJoinReqMsg;
2656
2657/*---------------------------------------------------------------------------
2658 WLAN_HAL_JOIN_RSP
2659---------------------------------------------------------------------------*/
2660
2661typedef PACKED_PRE struct PACKED_POST
2662{
2663 /*success or failure */
2664 tANI_U32 status;
2665
2666 /* HAL fills in the tx power used for mgmt frames in this field */
2667 tPowerdBm txMgmtPower;
2668
2669}tHalJoinRspParams, *tpHalJoinRspParams;
2670
2671typedef PACKED_PRE struct PACKED_POST
2672{
2673 tHalMsgHeader header;
2674 tHalJoinRspParams joinRspParams;
2675}tHalJoinRspMsg, *tpHalJoinRspMsg;
2676
2677/*---------------------------------------------------------------------------
2678 WLAN_HAL_POST_ASSOC_REQ
2679---------------------------------------------------------------------------*/
2680
2681typedef PACKED_PRE struct PACKED_POST
2682{
2683 tConfigStaParams configStaParams;
2684 tConfigBssParams configBssParams;
2685} tPostAssocReqParams, *tpPostAssocReqParams;
2686
2687typedef PACKED_PRE struct PACKED_POST
2688{
2689 tHalMsgHeader header;
2690 tPostAssocReqParams postAssocReqParams;
2691} tPostAssocReqMsg, *tpPostAssocReqMsg;
2692
2693/*---------------------------------------------------------------------------
2694 WLAN_HAL_POST_ASSOC_RSP
2695---------------------------------------------------------------------------*/
2696
2697typedef PACKED_PRE struct PACKED_POST
2698{
2699 tConfigStaRspParams configStaRspParams;
2700 tConfigBssRspParams configBssRspParams;
2701} tPostAssocRspParams, *tpPostAssocRspParams;
2702
2703typedef PACKED_PRE struct PACKED_POST
2704{
2705 tHalMsgHeader header;
2706 tPostAssocRspParams postAssocRspParams;
2707} tPostAssocRspMsg, *tpPostAssocRspMsg;
2708
2709/*---------------------------------------------------------------------------
2710 WLAN_HAL_SET_BSSKEY_REQ
2711---------------------------------------------------------------------------*/
2712
2713/*
2714 * This is used by PE to create a set of WEP keys for a given BSS.
2715 */
2716typedef PACKED_PRE struct PACKED_POST
2717{
2718 /*BSS Index of the BSS*/
2719 tANI_U8 bssIdx;
2720
2721 /*Encryption Type used with peer*/
2722 tAniEdType encType;
2723
2724 /*Number of keys*/
2725 tANI_U8 numKeys;
2726
2727 /*Array of keys.*/
2728 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302729
Jeff Johnson295189b2012-06-20 16:38:30 -07002730 /*Control for Replay Count, 1= Single TID based replay count on Tx
2731 0 = Per TID based replay count on TX */
2732 tANI_U8 singleTidRc;
2733} tSetBssKeyParams, *tpSetBssKeyParams;
2734
2735typedef PACKED_PRE struct PACKED_POST
2736{
2737 tHalMsgHeader header;
2738 tSetBssKeyParams setBssKeyParams;
2739} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2740
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002741/* tagged version of set bss key */
2742typedef PACKED_PRE struct PACKED_POST
2743{
2744 tSetBssKeyReqMsg Msg;
2745 uint32 Tag;
2746} tSetBssKeyReqMsgTagged;
2747
Jeff Johnson295189b2012-06-20 16:38:30 -07002748/*---------------------------------------------------------------------------
2749 WLAN_HAL_SET_BSSKEY_RSP
2750---------------------------------------------------------------------------*/
2751typedef PACKED_PRE struct PACKED_POST
2752{
2753 /*success or failure */
2754 tANI_U32 status;
2755
2756} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2757
2758typedef PACKED_PRE struct PACKED_POST
2759{
2760 tHalMsgHeader header;
2761 tSetBssKeyRspParams setBssKeyRspParams;
2762} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2763
2764/*---------------------------------------------------------------------------
2765 WLAN_HAL_SET_STAKEY_REQ,
2766---------------------------------------------------------------------------*/
2767
2768/*
2769 * This is used by PE to configure the key information on a given station.
2770 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2771 * a preconfigured key from a BSS the station assoicated with; otherwise
2772 * a new key descriptor is created based on the key field.
2773 */
2774
2775typedef PACKED_PRE struct PACKED_POST
2776{
2777 tHalMsgHeader header;
2778 tSetStaKeyParams setStaKeyParams;
2779} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2780
2781/*---------------------------------------------------------------------------
2782 WLAN_HAL_SET_STAKEY_RSP,
2783---------------------------------------------------------------------------*/
2784typedef PACKED_PRE struct PACKED_POST
2785{
2786 /*success or failure */
2787 tANI_U32 status;
2788
2789} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2790
2791typedef PACKED_PRE struct PACKED_POST
2792{
2793 tHalMsgHeader header;
2794 tSetStaKeyRspParams setStaKeyRspParams;
2795} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2796
2797/*---------------------------------------------------------------------------
2798 WLAN_HAL_RMV_BSSKEY_REQ,
2799---------------------------------------------------------------------------*/
2800/*
2801 * This is used by PE to remove keys for a given BSS.
2802 */
2803typedef PACKED_PRE struct PACKED_POST
2804
2805{
2806 /*BSS Index of the BSS*/
2807 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302808
Jeff Johnson295189b2012-06-20 16:38:30 -07002809 /*Encryption Type used with peer*/
2810 tAniEdType encType;
2811
2812 /*Key Id*/
2813 tANI_U8 keyId;
2814
2815 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2816 tAniWepType wepType;
2817
2818} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2819
2820typedef PACKED_PRE struct PACKED_POST
2821{
2822 tHalMsgHeader header;
2823 tRemoveBssKeyParams removeBssKeyParams;
2824} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2825
2826/*---------------------------------------------------------------------------
2827 WLAN_HAL_RMV_BSSKEY_RSP,
2828---------------------------------------------------------------------------*/
2829typedef PACKED_PRE struct PACKED_POST
2830{
2831 /*success or failure */
2832 tANI_U32 status;
2833
2834} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2835
2836typedef PACKED_PRE struct PACKED_POST
2837{
2838 tHalMsgHeader header;
2839 tRemoveBssKeyRspParams removeBssKeyRspParams;
2840} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2841
2842/*---------------------------------------------------------------------------
2843 WLAN_HAL_RMV_STAKEY_REQ,
2844---------------------------------------------------------------------------*/
2845/*
2846 * This is used by PE to Remove the key information on a given station.
2847 */
2848typedef PACKED_PRE struct PACKED_POST
2849{
2850 /*STA Index*/
2851 tANI_U16 staIdx;
2852
2853 /*Encryption Type used with peer*/
2854 tAniEdType encType;
2855
2856 /*Key Id*/
2857 tANI_U8 keyId;
2858
2859 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2860 the same key is used for both broadcast and unicast.*/
2861 tANI_BOOLEAN unicast;
2862
2863} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2864
2865typedef PACKED_PRE struct PACKED_POST
2866{
2867 tHalMsgHeader header;
2868 tRemoveStaKeyParams removeStaKeyParams;
2869} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2870
2871/*---------------------------------------------------------------------------
2872 WLAN_HAL_RMV_STAKEY_RSP,
2873---------------------------------------------------------------------------*/
2874typedef PACKED_PRE struct PACKED_POST
2875{
2876 /*success or failure */
2877 tANI_U32 status;
2878} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2879
2880typedef PACKED_PRE struct PACKED_POST
2881{
2882 tHalMsgHeader header;
2883 tRemoveStaKeyRspParams removeStaKeyRspParams;
2884} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2885
Jeff Johnsone7245742012-09-05 17:12:55 -07002886#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002887
Jeff Johnsone7245742012-09-05 17:12:55 -07002888#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002889#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002890#endif
2891
2892#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002893#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002894#endif
2895
2896/*-------------------------------------------------------------------------
2897WLAN_HAL_START_OEM_DATA_REQ
2898--------------------------------------------------------------------------*/
2899typedef PACKED_PRE struct PACKED_POST
2900{
2901 tANI_U32 status;
2902 tSirMacAddr selfMacAddr;
2903 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2904} tStartOemDataReqParams, *tpStartOemDataReqParams;
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 tHalMsgHeader header;
2909 tStartOemDataReqParams startOemDataReqParams;
2910} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2911
2912/*-------------------------------------------------------------------------
2913WLAN_HAL_START_OEM_DATA_RSP
2914--------------------------------------------------------------------------*/
2915
2916typedef PACKED_PRE struct PACKED_POST
2917{
2918 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2919} tStartOemDataRspParams, *tpStartOemDataRspParams;
2920
2921typedef PACKED_PRE struct PACKED_POST
2922{
2923 tHalMsgHeader header;
2924 tStartOemDataRspParams startOemDataRspParams;
2925} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2926
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302927#ifndef NEW_OEM_DATA_REQ_SIZE
2928#define NEW_OEM_DATA_REQ_SIZE 292
2929#endif
2930
2931#ifndef NEW_OEM_DATA_RSP_SIZE
2932#define NEW_OEM_DATA_RSP_SIZE 2100
2933#endif
2934
2935/*-------------------------------------------------------------------------
2936WLAN_HAL_START_OEM_DATA_REQ_IND_NEW------------------------------------
2937--------------------------------------------------------------------------*/
2938typedef PACKED_PRE struct PACKED_POST
2939{
Padma, Santhosh Kumarb7f449f2016-01-11 18:55:44 +05302940 tSirMacAddr selfMacAddr;
2941 tANI_U8 reserved[2];
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302942 tANI_U8 oemDataReq[NEW_OEM_DATA_REQ_SIZE];
2943} tStartOemDataReqParamsNew, *tpStartOemDataReqParamsNew;
2944
2945typedef PACKED_PRE struct PACKED_POST
2946{
2947 tHalMsgHeader header;
2948 tStartOemDataReqParamsNew startOemDataReqParams;
2949} tStartOemDataReqMsgNew, *tpStartOemDataReqMsgNew;
2950
2951/*-------------------------------------------------------------------------
2952WLAN_HAL_START_OEM_DATA_RSP_IND_NEW------------------------------------
2953--------------------------------------------------------------------------*/
2954typedef PACKED_PRE struct PACKED_POST
2955{
2956 tANI_U8 oemDataRsp[NEW_OEM_DATA_RSP_SIZE];
2957} tStartOemDataRspParamsNew, *tpStartOemDataRspParamsNew;
2958
2959typedef PACKED_PRE struct PACKED_POST
2960{
2961 tHalMsgHeader header;
2962 tStartOemDataRspParamsNew startOemDataReqParams;
2963} tStartOemDataRspMsgNew, *tpStartOemDataRspMsgNew;
2964
Jeff Johnsone7245742012-09-05 17:12:55 -07002965#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002966
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002967/*---------------------------------------------------------------------------
2968WLAN_HAL_CH_SWITCH_V1_REQ
2969---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002970
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002971typedef PACKED_PRE struct PACKED_POST
2972{
2973 /* Channel number */
2974 tANI_U8 channelNumber;
2975
2976 /* Local power constraint */
2977 tANI_U8 localPowerConstraint;
2978
2979 /*Secondary channel offset */
2980 ePhyChanBondState secondaryChannelOffset;
2981
2982 //HAL fills in the tx power used for mgmt frames in this field.
2983 tPowerdBm txMgmtPower;
2984
2985 /* Max TX power */
2986 tPowerdBm maxTxPower;
2987
2988 /* Self STA MAC */
2989 tSirMacAddr selfStaMacAddr;
2990
2991 /*VO WIFI comment: BSSID needed to identify session. As the request has
2992 * power constraints, this should be applied only to that session
2993 * Since MTU timing and EDCA are sessionized, this struct needs to be
2994 * sessionized and bssid needs to be out of the VOWifi feature flag
2995 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002996 * mantain backward compatbility
2997 * by way of ignoring if using new host/old FW or old host/new FW since
2998 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002999 */
3000 tSirMacAddr bssId;
3001
3002 /* Source of Channel Switch */
3003 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07003004
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003005} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
3006
3007typedef PACKED_PRE struct PACKED_POST
3008{
3009 tHalMsgHeader header;
3010 tSwitchChannelParams_V1 switchChannelParams_V1;
3011} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
3012
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003013/*---------------------------------------------------------------------------
3014WLAN_HAL_CH_SWITCH_V1_RSP
3015---------------------------------------------------------------------------*/
3016
3017typedef PACKED_PRE struct PACKED_POST
3018{
3019 /* Status */
3020 tANI_U32 status;
3021
3022 /* Channel number - same as in request*/
3023 tANI_U8 channelNumber;
3024
3025 /* HAL fills in the tx power used for mgmt frames in this field */
3026 tPowerdBm txMgmtPower;
3027
3028 /* BSSID needed to identify session - same as in request*/
3029 tSirMacAddr bssId;
3030
3031 /* Source of Channel Switch */
3032 eHalChanSwitchSource channelSwitchSrc;
3033
3034} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
3035
3036typedef PACKED_PRE struct PACKED_POST
3037{
3038 tHalMsgHeader header;
3039 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
3040} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07003041
3042/*---------------------------------------------------------------------------
3043WLAN_HAL_CH_SWITCH_REQ
3044---------------------------------------------------------------------------*/
3045
3046typedef PACKED_PRE struct PACKED_POST
3047{
3048 /* Channel number */
3049 tANI_U8 channelNumber;
3050
3051 /* Local power constraint */
3052 tANI_U8 localPowerConstraint;
3053
3054 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07003055 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003056
3057 //HAL fills in the tx power used for mgmt frames in this field.
3058 tPowerdBm txMgmtPower;
3059
3060 /* Max TX power */
3061 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05303062
Jeff Johnson295189b2012-06-20 16:38:30 -07003063 /* Self STA MAC */
3064 tSirMacAddr selfStaMacAddr;
3065
3066 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
3067 this should be applied only to that session*/
3068 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
3069 * bssid needs to be out of the VOWifi feature flag */
3070 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
3071 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
3072 */
3073 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303074
Jeff Johnson295189b2012-06-20 16:38:30 -07003075}tSwitchChannelParams, *tpSwitchChannelParams;
3076
3077typedef PACKED_PRE struct PACKED_POST
3078{
3079 tHalMsgHeader header;
3080 tSwitchChannelParams switchChannelParams;
3081} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
3082
3083/*---------------------------------------------------------------------------
3084WLAN_HAL_CH_SWITCH_RSP
3085---------------------------------------------------------------------------*/
3086
3087typedef PACKED_PRE struct PACKED_POST
3088{
3089 /* Status */
3090 tANI_U32 status;
3091
3092 /* Channel number - same as in request*/
3093 tANI_U8 channelNumber;
3094
3095 /* HAL fills in the tx power used for mgmt frames in this field */
3096 tPowerdBm txMgmtPower;
3097
3098 /* BSSID needed to identify session - same as in request*/
3099 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303100
Jeff Johnson295189b2012-06-20 16:38:30 -07003101}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3102
3103typedef PACKED_PRE struct PACKED_POST
3104{
3105 tHalMsgHeader header;
3106 tSwitchChannelRspParams switchChannelRspParams;
3107} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3108
3109/*---------------------------------------------------------------------------
3110WLAN_HAL_UPD_EDCA_PARAMS_REQ
3111---------------------------------------------------------------------------*/
3112
3113typedef PACKED_PRE struct PACKED_POST
3114{
3115 /*BSS Index*/
3116 tANI_U16 bssIdx;
3117
3118 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303119 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003120
3121 /* Background */
3122 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303123
Jeff Johnson295189b2012-06-20 16:38:30 -07003124 /* Video */
3125 tSirMacEdcaParamRecord acvi;
3126
3127 /* Voice */
3128 tSirMacEdcaParamRecord acvo;
3129
3130} tEdcaParams, *tpEdcaParams;
3131
3132typedef PACKED_PRE struct PACKED_POST
3133{
3134 tHalMsgHeader header;
3135 tEdcaParams edcaParams;
3136} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3137
3138/*---------------------------------------------------------------------------
3139WLAN_HAL_UPD_EDCA_PARAMS_RSP
3140---------------------------------------------------------------------------*/
3141typedef PACKED_PRE struct PACKED_POST
3142{
3143 /*success or failure */
3144 tANI_U32 status;
3145} tEdcaRspParams, *tpEdcaRspParams;
3146
3147typedef PACKED_PRE struct PACKED_POST
3148{
3149 tHalMsgHeader header;
3150 tEdcaRspParams edcaRspParams;
3151} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3152
3153
3154
3155/*---------------------------------------------------------------------------
3156 * WLAN_HAL_GET_STATS_REQ
3157 *--------------------------------------------------------------------------*/
3158typedef PACKED_PRE struct PACKED_POST
3159
3160{
3161 /* Index of STA to which the statistics */
3162 tANI_U16 staIdx;
3163
3164 /* Encryption mode */
3165 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303166
Jeff Johnson295189b2012-06-20 16:38:30 -07003167 /* status */
3168 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303169
Jeff Johnson295189b2012-06-20 16:38:30 -07003170 /* Statistics */
3171 tANI_U32 sendBlocks;
3172 tANI_U32 recvBlocks;
3173 tANI_U32 replays;
3174 tANI_U8 micErrorCnt;
3175 tANI_U32 protExclCnt;
3176 tANI_U16 formatErrCnt;
3177 tANI_U16 unDecryptableCnt;
3178 tANI_U32 decryptErrCnt;
3179 tANI_U32 decryptOkCnt;
3180} tDpuStatsParams, * tpDpuStatsParams;
3181
3182typedef PACKED_PRE struct PACKED_POST
3183{
3184 /* Valid STA Idx for per STA stats request */
3185 tANI_U32 staId;
3186
3187 /* Categories of stats requested as specified in eHalStatsMask*/
3188 tANI_U32 statsMask;
3189}tHalStatsReqParams, *tpHalStatsReqParams;
3190
3191typedef PACKED_PRE struct PACKED_POST
3192{
3193 tHalMsgHeader header;
3194 tHalStatsReqParams statsReqParams;
3195} tHalStatsReqMsg, *tpHalStatsReqMsg;
3196
3197/*---------------------------------------------------------------------------
3198 * WLAN_HAL_GET_STATS_RSP
3199 *--------------------------------------------------------------------------*/
3200
3201typedef PACKED_PRE struct PACKED_POST
3202{
3203 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3204 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3205 // station successfully transmitted after more than one retransmission attempt
3206
Dino Mycle8afbac12014-07-04 22:06:17 +05303207 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3208 //(with and without retries, including multi-cast, broadcast)
3209 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3210 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003211 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3212 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3213 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3214 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 +05303215 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3216 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 -07003217 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3218 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 +05303219 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3220 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003221 //to provide this.
3222}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3223
3224
3225// defines tx_rate_flags
3226typedef enum eTxRateInfo
3227{
3228 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3229 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3230 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3231 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003232 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3233 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3234 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3235 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3236 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3237 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3238} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003239
3240
3241typedef PACKED_PRE struct PACKED_POST
3242{
Dino Mycle8afbac12014-07-04 22:06:17 +05303243 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 -07003244 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303245 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 -07003246 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303247 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3248 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003249 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303250 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3251 //for eg: if it is 10.5dBm, the value would be 105
3252 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3253 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003254
Dino Mycle8afbac12014-07-04 22:06:17 +05303255 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3256 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003257 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303258 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3259 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003260}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3261
3262typedef PACKED_PRE struct PACKED_POST
3263{
Dino Mycle8afbac12014-07-04 22:06:17 +05303264 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3265 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003266 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303267 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 -07003268 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303269 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 -07003270 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303271 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 -07003272 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303273 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 -07003274 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303275 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 -07003276 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303277 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 -07003278 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303279 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 -07003280 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303281 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 -07003282 //decrypted
3283 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3284
3285}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303286
Jeff Johnson295189b2012-06-20 16:38:30 -07003287typedef PACKED_PRE struct PACKED_POST
3288{
3289 tAniGlobalSecurityStats ucStats;
3290 tAniGlobalSecurityStats mcbcStats;
3291}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3292
3293typedef PACKED_PRE struct PACKED_POST
3294{
Dino Mycle8afbac12014-07-04 22:06:17 +05303295 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3296 //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 -07003297 //address 1 field
3298 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 +05303299 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 -07003300 //primary channel
3301 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 +05303302 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 -07003303 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303304 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3305 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003306 //decoded correctly
3307}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3308
3309typedef PACKED_PRE struct PACKED_POST
3310{
Dino Mycle8afbac12014-07-04 22:06:17 +05303311 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 -07003312 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303313 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3314 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 -07003315 //is transmitted
3316}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3317
Sushant Kaushik33200572015-08-05 16:46:20 +05303318// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3319typedef PACKED_PRE struct PACKED_POST
3320{
3321 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303322 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303323 tANI_U32 reserved;
3324 tANI_U32 reserved1;
3325}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3326
Jeff Johnson295189b2012-06-20 16:38:30 -07003327typedef PACKED_PRE struct PACKED_POST
3328{
3329 /* Success or Failure */
3330 tANI_U32 status;
3331
3332 /* STA Idx */
3333 tANI_U32 staId;
3334
3335 /* Categories of STATS being returned as per eHalStatsMask*/
3336 tANI_U32 statsMask;
3337
3338 /* message type is same as the request type */
3339 tANI_U16 msgType;
3340
3341 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303342 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003343
3344} tHalStatsRspParams, *tpHalStatsRspParams;
3345
3346
3347
3348typedef PACKED_PRE struct PACKED_POST
3349{
3350 tHalMsgHeader header;
3351 tHalStatsRspParams statsRspParams;
3352} tHalStatsRspMsg, *tpHalStatsRspMsg;
3353
Abhishek Singhbc310882015-05-22 15:17:02 +05303354 /*---------------------------------------------------------------------------
3355 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3356 *---------------------------------------------------------------------------*/
3357typedef PACKED_PRE struct PACKED_POST
3358{
3359 tANI_U32 rtsCtsValue;
3360}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3361
3362typedef PACKED_PRE struct PACKED_POST
3363{
3364 tHalMsgHeader header;
3365 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3366} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3367
Jeff Johnson295189b2012-06-20 16:38:30 -07003368/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303369 * WLAN_HAL_FW_STATS_REQ
3370 *---------------------------------------------------------------------------*/
3371 typedef PACKED_PRE struct PACKED_POST
3372{
3373 tANI_U32 type;
3374}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3375
3376typedef PACKED_PRE struct PACKED_POST
3377{
3378 tHalMsgHeader header;
3379 tHalfwStatsReqParams fwstatsReqParams;
3380} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3381
3382/*---------------------------------------------------------------------------
3383 * WLAN_HAL_FW_STATS_RSP
3384 *---------------------------------------------------------------------------*/
3385 typedef PACKED_PRE struct PACKED_POST
3386{
3387 tANI_U32 type;
3388 tANI_U32 length;
3389 tANI_U8 data[1];
3390
3391}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3392
3393typedef PACKED_PRE struct PACKED_POST
3394{
3395 tHalMsgHeader header;
3396 tHalfwStatsRspParams fwstatsRspParams;
3397} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3398
3399typedef enum
3400{
3401 FW_UBSP_STATS = 1,
3402} fwstatstype;
3403
3404
3405/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003406 * WLAN_HAL_SET_LINK_ST_REQ
3407 *--------------------------------------------------------------------------*/
3408typedef PACKED_PRE struct PACKED_POST
3409{
3410 tSirMacAddr bssid;
3411 tSirLinkState state;
3412 tSirMacAddr selfMacAddr;
3413} tLinkStateParams, *tpLinkStateParams;
3414
3415typedef PACKED_PRE struct PACKED_POST
3416{
3417 tHalMsgHeader header;
3418 tLinkStateParams linkStateParams;
3419} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3420
3421/*---------------------------------------------------------------------------
3422 * WLAN_HAL_SET_LINK_ST_RSP
3423 *--------------------------------------------------------------------------*/
3424
3425typedef PACKED_PRE struct PACKED_POST
3426{
3427 /*success or failure */
3428 tANI_U32 status;
3429} tLinkStateRspParams, *tpLinkStateRspParams;
3430
3431typedef PACKED_PRE struct PACKED_POST
3432{
3433 tHalMsgHeader header;
3434 tLinkStateRspParams linkStateRspParams;
3435} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3436
3437/*---------------------------------------------------------------------------
3438 * WLAN_HAL_ADD_TS_REQ
3439 *--------------------------------------------------------------------------*/
3440
3441/* TSPEC Params */
3442typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3443{
Jeff Johnson295189b2012-06-20 16:38:30 -07003444 tANI_U16 trafficType : 1;
3445 tANI_U16 tsid : 4;
3446 tANI_U16 direction : 2;
3447 tANI_U16 accessPolicy : 2;
3448 tANI_U16 aggregation : 1;
3449 tANI_U16 psb : 1;
3450 tANI_U16 userPrio : 3;
3451 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003452} __ani_attr_packed tSirMacTSInfoTfc;
3453
3454/* Flag to schedule the traffic type */
3455typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3456{
Jeff Johnson295189b2012-06-20 16:38:30 -07003457 tANI_U8 schedule : 1;
3458 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003459} __ani_attr_packed tSirMacTSInfoSch;
3460
3461/* Traffic and scheduling info */
3462typedef __ani_attr_pre_packed struct sSirMacTSInfo
3463{
3464 tSirMacTSInfoTfc traffic;
3465 tSirMacTSInfoSch schedule;
3466} __ani_attr_packed tSirMacTSInfo;
3467
3468/* Information elements */
3469typedef __ani_attr_pre_packed struct sSirMacTspecIE
3470{
3471 tANI_U8 type;
3472 tANI_U8 length;
3473 tSirMacTSInfo tsinfo;
3474 tANI_U16 nomMsduSz;
3475 tANI_U16 maxMsduSz;
3476 tANI_U32 minSvcInterval;
3477 tANI_U32 maxSvcInterval;
3478 tANI_U32 inactInterval;
3479 tANI_U32 suspendInterval;
3480 tANI_U32 svcStartTime;
3481 tANI_U32 minDataRate;
3482 tANI_U32 meanDataRate;
3483 tANI_U32 peakDataRate;
3484 tANI_U32 maxBurstSz;
3485 tANI_U32 delayBound;
3486 tANI_U32 minPhyRate;
3487 tANI_U16 surplusBw;
3488 tANI_U16 mediumTime;
3489}__ani_attr_packed tSirMacTspecIE;
3490
3491typedef PACKED_PRE struct PACKED_POST
3492{
3493 /* Station Index */
3494 tANI_U16 staIdx;
3495
3496 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3497 tANI_U16 tspecIdx;
3498
3499 /* To program TPE with required parameters */
3500 tSirMacTspecIE tspec;
3501
3502 /* U-APSD Flags: 1b per AC. Encoded as follows:
3503 b7 b6 b5 b4 b3 b2 b1 b0 =
3504 X X X X BE BK VI VO */
3505 tANI_U8 uAPSD;
3506
3507 /* These parameters are for all the access categories */
3508 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3509 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3510 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303511
Jeff Johnson295189b2012-06-20 16:38:30 -07003512} tAddTsParams, *tpAddTsParams;
3513
3514typedef PACKED_PRE struct PACKED_POST
3515{
3516 tHalMsgHeader header;
3517 tAddTsParams addTsParams;
3518} tAddTsReqMsg, *tpAddTsReqMsg;
3519
3520/*---------------------------------------------------------------------------
3521 * WLAN_HAL_ADD_TS_RSP
3522 *--------------------------------------------------------------------------*/
3523
3524typedef PACKED_PRE struct PACKED_POST
3525{
3526 /*success or failure */
3527 tANI_U32 status;
3528} tAddTsRspParams, *tpAddTsRspParams;
3529
3530typedef PACKED_PRE struct PACKED_POST
3531{
3532 tHalMsgHeader header;
3533 tAddTsRspParams addTsRspParams;
3534} tAddTsRspMsg, *tpAddTsRspMsg;
3535
3536
3537/*---------------------------------------------------------------------------
3538 * WLAN_HAL_DEL_TS_REQ
3539 *--------------------------------------------------------------------------*/
3540
3541typedef PACKED_PRE struct PACKED_POST
3542{
3543 /* Station Index */
3544 tANI_U16 staIdx;
3545
3546 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3547 tANI_U16 tspecIdx;
3548
3549 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303550 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003551
3552} tDelTsParams, *tpDelTsParams;
3553
3554typedef PACKED_PRE struct PACKED_POST
3555{
3556 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303557 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003558} tDelTsReqMsg, *tpDelTsReqMsg;
3559
3560/*---------------------------------------------------------------------------
3561 * WLAN_HAL_DEL_TS_RSP
3562 *--------------------------------------------------------------------------*/
3563
3564typedef PACKED_PRE struct PACKED_POST
3565{
3566 /*success or failure */
3567 tANI_U32 status;
3568} tDelTsRspParams, *tpDelTsRspParams;
3569
3570typedef PACKED_PRE struct PACKED_POST
3571{
3572 tHalMsgHeader header;
3573 tDelTsRspParams delTsRspParams;
3574} tDelTsRspMsg, *tpDelTsRspMsg;
3575
3576/* End of TSpec Parameters */
3577
3578/* Start of BLOCK ACK related Parameters */
3579
3580/*---------------------------------------------------------------------------
3581 * WLAN_HAL_ADD_BA_SESSION_REQ
3582 *--------------------------------------------------------------------------*/
3583
3584typedef PACKED_PRE struct PACKED_POST
3585{
3586 /* Station Index */
3587 tANI_U16 staIdx;
3588
3589 /* Peer MAC Address */
3590 tSirMacAddr peerMacAddr;
3591
3592 /* ADDBA Action Frame dialog token
3593 HAL will not interpret this object */
3594 tANI_U8 baDialogToken;
3595
3596 /* TID for which the BA is being setup
3597 This identifies the TC or TS of interest */
3598 tANI_U8 baTID;
3599
3600 /* 0 - Delayed BA (Not supported)
3601 1 - Immediate BA */
3602 tANI_U8 baPolicy;
3603
3604 /* Indicates the number of buffers for this TID (baTID)
3605 NOTE - This is the requested buffer size. When this
3606 is processed by HAL and subsequently by HDD, it is
3607 possible that HDD may change this buffer size. Any
3608 change in the buffer size should be noted by PE and
3609 advertized appropriately in the ADDBA response */
3610 tANI_U16 baBufferSize;
3611
3612 /* BA timeout in TU's 0 means no timeout will occur */
3613 tANI_U16 baTimeout;
3614
3615 /* b0..b3 - Fragment Number - Always set to 0
3616 b4..b15 - Starting Sequence Number of first MSDU
3617 for which this BA is setup */
3618 tANI_U16 baSSN;
3619
3620 /* ADDBA direction
3621 1 - Originator
3622 0 - Recipient */
3623 tANI_U8 baDirection;
3624} tAddBASessionParams, *tpAddBASessionParams;
3625
3626typedef PACKED_PRE struct PACKED_POST
3627{
3628 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303629 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003630}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3631
3632/*---------------------------------------------------------------------------
3633 * WLAN_HAL_ADD_BA_SESSION_RSP
3634 *--------------------------------------------------------------------------*/
3635
3636typedef PACKED_PRE struct PACKED_POST
3637{
3638 /*success or failure */
3639 tANI_U32 status;
3640
3641 /* Dialog token */
3642 tANI_U8 baDialogToken;
3643
3644 /* TID for which the BA session has been setup */
3645 tANI_U8 baTID;
3646
3647 /* BA Buffer Size allocated for the current BA session */
3648 tANI_U8 baBufferSize;
3649
3650 tANI_U8 baSessionID;
3651
3652 /* Reordering Window buffer */
3653 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303654
Jeff Johnson295189b2012-06-20 16:38:30 -07003655 /*Station Index to id the sta */
3656 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303657
Jeff Johnson295189b2012-06-20 16:38:30 -07003658 /* Starting Sequence Number */
3659 tANI_U16 SSN;
3660} tAddBASessionRspParams, *tpAddBASessionRspParams;
3661
3662typedef PACKED_PRE struct PACKED_POST
3663{
3664 tHalMsgHeader header;
3665 tAddBASessionRspParams addBASessionRspParams;
3666} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3667
3668/*---------------------------------------------------------------------------
3669 * WLAN_HAL_ADD_BA_REQ
3670 *--------------------------------------------------------------------------*/
3671
3672typedef PACKED_PRE struct PACKED_POST
3673{
3674 /* Session Id */
3675 tANI_U8 baSessionID;
3676
3677 /* Reorder Window Size */
3678 tANI_U8 winSize;
3679
3680#ifdef FEATURE_ON_CHIP_REORDERING
3681 tANI_BOOLEAN isReorderingDoneOnChip;
3682#endif
3683} tAddBAParams, *tpAddBAParams;
3684
3685typedef PACKED_PRE struct PACKED_POST
3686{
3687 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303688 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003689} tAddBAReqMsg, *tpAddBAReqMsg;
3690
3691
3692/*---------------------------------------------------------------------------
3693 * WLAN_HAL_ADD_BA_RSP
3694 *--------------------------------------------------------------------------*/
3695
3696typedef PACKED_PRE struct PACKED_POST
3697{
3698 /*success or failure */
3699 tANI_U32 status;
3700
3701 /* Dialog token */
3702 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303703
Jeff Johnson295189b2012-06-20 16:38:30 -07003704} tAddBARspParams, *tpAddBARspParams;
3705
3706typedef PACKED_PRE struct PACKED_POST
3707{
3708 tHalMsgHeader header;
3709 tAddBARspParams addBARspParams;
3710} tAddBARspMsg, *tpAddBARspMsg;
3711
3712
3713/*---------------------------------------------------------------------------
3714 * WLAN_HAL_TRIGGER_BA_REQ
3715 *--------------------------------------------------------------------------*/
3716
3717
3718typedef struct sAddBaInfo
3719{
3720 tANI_U16 fBaEnable : 1;
3721 tANI_U16 startingSeqNum: 12;
3722 tANI_U16 reserved : 3;
3723}tAddBaInfo, *tpAddBaInfo;
3724
3725typedef struct sTriggerBaRspCandidate
3726{
3727 tSirMacAddr staAddr;
3728 tAddBaInfo baInfo[STACFG_MAX_TC];
3729}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3730
3731typedef struct sTriggerBaCandidate
3732{
3733 tANI_U8 staIdx;
3734 tANI_U8 tidBitmap;
3735}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3736
3737typedef PACKED_PRE struct PACKED_POST
3738{
3739 /* Session Id */
3740 tANI_U8 baSessionID;
3741
Dino Mycle8afbac12014-07-04 22:06:17 +05303742 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003743 * Candidate List(tTriggerBaCandidate)
3744 */
3745 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303746
Jeff Johnson295189b2012-06-20 16:38:30 -07003747} tTriggerBAParams, *tpTriggerBAParams;
3748
3749typedef PACKED_PRE struct PACKED_POST
3750{
3751 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303752 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003753} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3754
3755
3756/*---------------------------------------------------------------------------
3757 * WLAN_HAL_TRIGGER_BA_RSP
3758 *--------------------------------------------------------------------------*/
3759
3760typedef PACKED_PRE struct PACKED_POST
3761{
Dino Mycle8afbac12014-07-04 22:06:17 +05303762
Jeff Johnson295189b2012-06-20 16:38:30 -07003763 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303764 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003765
3766 /* success or failure */
3767 tANI_U32 status;
3768
Dino Mycle8afbac12014-07-04 22:06:17 +05303769 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003770 * Rsp Candidate List(tTriggerRspBaCandidate)
3771 */
3772 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303773
Jeff Johnson295189b2012-06-20 16:38:30 -07003774
3775} tTriggerBARspParams, *tpTriggerBARspParams;
3776
3777typedef PACKED_PRE struct PACKED_POST
3778{
3779 tHalMsgHeader header;
3780 tTriggerBARspParams triggerBARspParams;
3781} tTriggerBARspMsg, *tpTriggerBARspMsg;
3782
3783/*---------------------------------------------------------------------------
3784 * WLAN_HAL_DEL_BA_REQ
3785 *--------------------------------------------------------------------------*/
3786
3787typedef PACKED_PRE struct PACKED_POST
3788{
3789 /* Station Index */
3790 tANI_U16 staIdx;
3791
3792 /* TID for which the BA session is being deleted */
3793 tANI_U8 baTID;
3794
3795 /* DELBA direction
3796 1 - Originator
3797 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303798 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003799} tDelBAParams, *tpDelBAParams;
3800
3801typedef PACKED_PRE struct PACKED_POST
3802{
3803 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303804 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003805} tDelBAReqMsg, *tpDelBAReqMsg;
3806
3807/*---------------------------------------------------------------------------
3808 * WLAN_HAL_DEL_BA_RSP
3809 *--------------------------------------------------------------------------*/
3810
3811typedef PACKED_PRE struct PACKED_POST
3812{
3813 /* success or failure */
3814 tANI_U32 status;
3815} tDelBARspParams, *tpDelBARspParams;
3816
3817typedef PACKED_PRE struct PACKED_POST
3818{
3819 tHalMsgHeader header;
3820 tDelBARspParams delBARspParams;
3821} tDelBARspMsg, *tpDelBARspMsg;
3822
3823
Jeff Johnson295189b2012-06-20 16:38:30 -07003824/*---------------------------------------------------------------------------
3825 * WLAN_HAL_TSM_STATS_REQ
3826 *--------------------------------------------------------------------------*/
3827typedef PACKED_PRE struct PACKED_POST
3828{
3829 /* Traffic Id */
3830 tANI_U8 tsmTID;
3831
3832 tSirMacAddr bssId;
3833} tTsmStatsParams, *tpTsmStatsParams;
3834
3835typedef PACKED_PRE struct PACKED_POST
3836{
3837 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303838 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003839} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3840
3841
3842/*---------------------------------------------------------------------------
3843 * WLAN_HAL_TSM_STATS_RSP
3844 *--------------------------------------------------------------------------*/
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 /*success or failure */
3848 tANI_U32 status;
3849
Dino Mycle8afbac12014-07-04 22:06:17 +05303850 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003851 tANI_U16 UplinkPktQueueDly;
3852
Dino Mycle8afbac12014-07-04 22:06:17 +05303853 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003854 tANI_U16 UplinkPktQueueDlyHist[4];
3855
Dino Mycle8afbac12014-07-04 22:06:17 +05303856 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003857 tANI_U32 UplinkPktTxDly;
3858
Dino Mycle8afbac12014-07-04 22:06:17 +05303859 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003860 tANI_U16 UplinkPktLoss;
3861
Dino Mycle8afbac12014-07-04 22:06:17 +05303862 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003863 tANI_U16 UplinkPktCount;
3864
Dino Mycle8afbac12014-07-04 22:06:17 +05303865 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003866 tANI_U8 RoamingCount;
3867
Dino Mycle8afbac12014-07-04 22:06:17 +05303868 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003869 tANI_U16 RoamingDly;
3870} tTsmStatsRspParams, *tpTsmStatsRspParams;
3871
3872typedef PACKED_PRE struct PACKED_POST
3873{
3874 tHalMsgHeader header;
3875 tTsmStatsRspParams tsmStatsRspParams;
3876} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3877
3878
Jeff Johnson295189b2012-06-20 16:38:30 -07003879/*---------------------------------------------------------------------------
3880 * WLAN_HAL_SET_KEYDONE_MSG
3881 *--------------------------------------------------------------------------*/
3882
3883typedef PACKED_PRE struct PACKED_POST
3884{
3885 /*bssid of the keys */
3886 tANI_U8 bssidx;
3887 tANI_U8 encType;
3888} tSetKeyDoneParams, *tpSetKeyDoneParams;
3889
3890typedef PACKED_PRE struct PACKED_POST
3891{
3892 tHalMsgHeader header;
3893 tSetKeyDoneParams setKeyDoneParams;
3894} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3895
3896/*---------------------------------------------------------------------------
3897 * WLAN_HAL_DOWNLOAD_NV_REQ
3898 *--------------------------------------------------------------------------*/
3899typedef PACKED_PRE struct PACKED_POST
3900{
3901 /* Fragment sequence number of the NV Image. Note that NV Image might not
3902 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303903 * can hence choose to chop the NV blob into multiple fragments starting with
3904 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003905 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3906 * concatenated together by HAL without any padding bytes in between.*/
3907 tANI_U16 fragNumber;
3908
3909 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303910 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003911 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3912 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3913 tANI_U16 isLastFragment;
3914
3915 /* NV Image size (number of bytes) */
3916 tANI_U32 nvImgBufferSize;
3917
3918 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3919 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3920} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3921
3922typedef PACKED_PRE struct PACKED_POST
3923{
3924 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3925 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3926 tHalMsgHeader header;
3927 tHalNvImgDownloadReqParams nvImageReqParams;
3928} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3929
3930/*---------------------------------------------------------------------------
3931 * WLAN_HAL_DOWNLOAD_NV_RSP
3932 *--------------------------------------------------------------------------*/
3933typedef PACKED_PRE struct PACKED_POST
3934{
3935 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3936 * after each fragment */
3937 tANI_U32 status;
3938} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3939
3940typedef PACKED_PRE struct PACKED_POST
3941{
3942 tHalMsgHeader header;
3943 tHalNvImgDownloadRspParams nvImageRspParams;
3944} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3945
3946/*---------------------------------------------------------------------------
3947 * WLAN_HAL_STORE_NV_IND
3948 *--------------------------------------------------------------------------*/
3949typedef PACKED_PRE struct PACKED_POST
3950{
3951 /* NV Item */
3952 eNvTable tableID;
3953
3954 /* Size of NV Blob */
3955 tANI_U32 nvBlobSize;
3956
Dino Mycle8afbac12014-07-04 22:06:17 +05303957 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003958 * NV blob i.e. uint8[nvBlobSize] */
3959} tHalNvStoreParams, *tpHalNvStoreParams;
3960
3961typedef PACKED_PRE struct PACKED_POST
3962{
3963 /* Note: The length specified in tHalNvStoreInd messages should be
3964 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3965 tHalMsgHeader header;
3966 tHalNvStoreParams nvStoreParams;
3967} tHalNvStoreInd, *tpHalNvStoreInd;
3968
3969/* End of Block Ack Related Parameters */
3970
3971/*---------------------------------------------------------------------------
3972 * WLAN_HAL_MIC_FAILURE_IND
3973 *--------------------------------------------------------------------------*/
3974
3975#define SIR_CIPHER_SEQ_CTR_SIZE 6
3976
3977typedef PACKED_PRE struct PACKED_POST
3978{
Dino Mycle8afbac12014-07-04 22:06:17 +05303979 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003980 tSirMacAddr taMacAddr; //transmitter address
3981 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303982 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003983 tANI_U8 IV1; // first byte of IV
3984 tANI_U8 keyId; // second byte of IV
3985 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3986 tSirMacAddr rxMacAddr; // receive address
3987} tSirMicFailureInfo, *tpSirMicFailureInfo;
3988
3989/* Definition for MIC failure indication
3990 MAC reports this each time a MIC failure occures on Rx TKIP packet
3991 */
3992typedef PACKED_PRE struct PACKED_POST
3993{
3994 tSirMacAddr bssId; // BSSID
3995 tSirMicFailureInfo info;
3996} tSirMicFailureInd, *tpSirMicFailureInd;
3997
3998typedef PACKED_PRE struct PACKED_POST
3999{
4000 tHalMsgHeader header;
4001 tSirMicFailureInd micFailureInd;
4002} tMicFailureIndMsg, *tpMicFailureIndMsg;
4003
Mohit Khanna4a70d262012-09-11 16:30:12 -07004004typedef PACKED_PRE struct PACKED_POST
4005{
4006 tANI_U16 opMode;
4007 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05304008}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07004009
4010typedef PACKED_PRE struct PACKED_POST
4011{
4012 tHalMsgHeader header;
4013 tUpdateVHTOpMode updateVhtOpMode;
4014} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
4015
4016typedef PACKED_PRE struct PACKED_POST
4017{
4018 tANI_U32 status;
4019} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
4020
4021typedef PACKED_PRE struct PACKED_POST
4022{
4023 tHalMsgHeader header;
4024 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
4025} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
4026
Jeff Johnson295189b2012-06-20 16:38:30 -07004027/*---------------------------------------------------------------------------
4028 * WLAN_HAL_UPDATE_BEACON_REQ
4029 *--------------------------------------------------------------------------*/
4030typedef PACKED_PRE struct PACKED_POST
4031{
4032
4033 tANI_U8 bssIdx;
4034
4035 //shortPreamble mode. HAL should update all the STA rates when it
4036 //receives this message
4037 tANI_U8 fShortPreamble;
4038 //short Slot time.
4039 tANI_U8 fShortSlotTime;
4040 //Beacon Interval
4041 tANI_U16 beaconInterval;
4042 //Protection related
4043 tANI_U8 llaCoexist;
4044 tANI_U8 llbCoexist;
4045 tANI_U8 llgCoexist;
4046 tANI_U8 ht20MhzCoexist;
4047 tANI_U8 llnNonGFCoexist;
4048 tANI_U8 fLsigTXOPProtectionFullSupport;
4049 tANI_U8 fRIFSMode;
4050
4051 tANI_U16 paramChangeBitmap;
4052}tUpdateBeaconParams, *tpUpdateBeaconParams;
4053
4054
4055typedef PACKED_PRE struct PACKED_POST
4056{
4057 tHalMsgHeader header;
4058 tUpdateBeaconParams updateBeaconParam;
4059} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
4060
4061/*---------------------------------------------------------------------------
4062 * WLAN_HAL_UPDATE_BEACON_RSP
4063 *--------------------------------------------------------------------------*/
4064typedef PACKED_PRE struct PACKED_POST
4065{
4066 tANI_U32 status;
4067} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
4068
4069typedef PACKED_PRE struct PACKED_POST
4070{
4071 tHalMsgHeader header;
4072 tUpdateBeaconRspParams updateBeaconRspParam;
4073} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
4074
4075/*---------------------------------------------------------------------------
4076 * WLAN_HAL_SEND_BEACON_REQ
4077 *--------------------------------------------------------------------------*/
4078typedef PACKED_PRE struct PACKED_POST
4079{
4080 tANI_U32 beaconLength; //length of the template.
4081 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
4082 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004083 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07004084 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
4085}tSendBeaconParams, *tpSendBeaconParams;
4086
4087
4088typedef PACKED_PRE struct PACKED_POST
4089{
4090 tHalMsgHeader header;
4091 tSendBeaconParams sendBeaconParam;
4092}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4093
4094/*---------------------------------------------------------------------------
4095 * WLAN_HAL_SEND_BEACON_RSP
4096 *--------------------------------------------------------------------------*/
4097typedef PACKED_PRE struct PACKED_POST
4098{
4099 tANI_U32 status;
4100} tSendBeaconRspParams, *tpSendBeaconRspParams;
4101
4102typedef PACKED_PRE struct PACKED_POST
4103{
4104 tHalMsgHeader header;
4105 tSendBeaconRspParams sendBeaconRspParam;
4106} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4107
4108#ifdef FEATURE_5GHZ_BAND
4109
4110/*---------------------------------------------------------------------------
4111 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4112 *--------------------------------------------------------------------------*/
4113typedef PACKED_PRE struct PACKED_POST
4114{
4115 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304116 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004117}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4118
4119
4120typedef PACKED_PRE struct PACKED_POST
4121{
4122 /* Link Parameters */
4123 tSirEnableRadarInfoType EnableRadarInfo;
4124}tEnableRadarReqParams, *tpEnableRadarReqParams;
4125
4126typedef PACKED_PRE struct PACKED_POST
4127{
4128 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304129 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004130}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4131
4132/*---------------------------------------------------------------------------
4133 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4134 *--------------------------------------------------------------------------*/
4135
4136typedef PACKED_PRE struct PACKED_POST
4137{
4138 /* Link Parameters */
4139 tSirMacAddr BSSID;
4140 /* success or failure */
4141 tANI_U32 status;
4142}tEnableRadarRspParams, *tpEnableRadarRspParams;
4143
4144typedef PACKED_PRE struct PACKED_POST
4145{
4146 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304147 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004148}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4149
4150/*---------------------------------------------------------------------------
4151 *WLAN_HAL_RADAR_DETECT_INTR_IND
4152 *--------------------------------------------------------------------------*/
4153
4154typedef PACKED_PRE struct PACKED_POST
4155{
4156 tANI_U8 radarDetChannel;
4157}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4158
4159typedef PACKED_PRE struct PACKED_POST
4160{
4161 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304162 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004163}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4164
4165/*---------------------------------------------------------------------------
4166 *WLAN_HAL_RADAR_DETECT_IND
4167 *-------------------------------------------------------------------------*/
4168typedef PACKED_PRE struct PACKED_POST
4169{
4170 /*channel number in which the RADAR detected*/
4171 tANI_U8 channelNumber;
4172
4173 /*RADAR pulse width*/
4174 tANI_U16 radarPulseWidth; // in usecond
4175
4176 /*Number of RADAR pulses */
4177 tANI_U16 numRadarPulse;
4178}tRadarDetectIndParams,*tpRadarDetectIndParams;
4179
4180typedef PACKED_PRE struct PACKED_POST
4181{
4182 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304183 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004184}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4185
4186
4187/*---------------------------------------------------------------------------
4188 *WLAN_HAL_GET_TPC_REPORT_REQ
4189 *-------------------------------------------------------------------------*/
4190typedef PACKED_PRE struct PACKED_POST
4191{
4192 tSirMacAddr sta;
4193 tANI_U8 dialogToken;
4194 tANI_U8 txpower;
4195}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4196
4197
4198typedef PACKED_PRE struct PACKED_POST
4199{
4200 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304201 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004202}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4203
4204/*---------------------------------------------------------------------------
4205 * WLAN_HAL_GET_TPC_REPORT_RSP
4206 *--------------------------------------------------------------------------*/
4207
4208typedef PACKED_PRE struct PACKED_POST
4209{
4210 /* success or failure */
4211 tANI_U32 status;
4212}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4213
4214typedef PACKED_PRE struct PACKED_POST
4215{
4216 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304217 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004218}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4219
4220#endif
4221
Jeff Johnson295189b2012-06-20 16:38:30 -07004222/*---------------------------------------------------------------------------
4223 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4224 *-------------------------------------------------------------------------*/
4225typedef PACKED_PRE struct PACKED_POST
4226{
4227 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4228 tANI_U32 probeRespTemplateLen;
4229 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4230 tSirMacAddr bssId;
4231
4232}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4233
4234typedef PACKED_PRE struct PACKED_POST
4235{
4236 tHalMsgHeader header;
4237 tSendProbeRespReqParams sendProbeRespReqParams ;
4238}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4239
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05304240typedef PACKED_PRE struct PACKED_POST
4241{
4242 tSirMacAddr bssId;
4243 tANI_U32 probeRespTemplateLen;
4244 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4245 tANI_U8 pProbeRespTemplate[1]; //Variable length array
4246}tSendProbeRespReqParams_V1, *tpSendProbeRespReqParams_V1;
4247
4248typedef PACKED_PRE struct PACKED_POST
4249{
4250 tHalMsgHeader header;
4251 tSendProbeRespReqParams_V1 sendProbeRespReqParams_v1;
4252}tSendProbeRespReqMsg_V1, *tpSendProbeRespReqMsg_V1;
4253
Jeff Johnson295189b2012-06-20 16:38:30 -07004254/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304255 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004256 *--------------------------------------------------------------------------*/
4257
4258typedef PACKED_PRE struct PACKED_POST
4259{
4260 /* success or failure */
4261 tANI_U32 status;
4262}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4263
4264typedef PACKED_PRE struct PACKED_POST
4265{
4266 tHalMsgHeader header;
4267 tSendProbeRespRspParams sendProbeRespRspParams;
4268}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4269
4270
4271/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304272 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004273 *--------------------------------------------------------------------------*/
4274
4275typedef PACKED_PRE struct PACKED_POST
4276{
4277 /* success or failure */
4278 tANI_U32 status;
4279}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4280
4281typedef PACKED_PRE struct PACKED_POST
4282{
4283 tHalMsgHeader header;
4284 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4285}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4286
4287/*---------------------------------------------------------------------------
4288 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4289 *--------------------------------------------------------------------------*/
4290
4291typedef PACKED_PRE struct PACKED_POST
4292{
4293 tANI_U16 assocId;
4294 tANI_U16 staId;
4295 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4296 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004297 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304298 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004299
4300}tDeleteStaContextParams, *tpDeleteStaContextParams;
4301
4302
4303typedef PACKED_PRE struct PACKED_POST
4304{
4305 tHalMsgHeader header;
4306 tDeleteStaContextParams deleteStaContextParams;
4307}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4308
Anand Kumar012623a2013-01-11 17:00:00 -08004309typedef PACKED_PRE struct PACKED_POST
4310{
4311 tHalMsgHeader header;
4312 tANI_U8 assocId;
4313 tANI_U8 staIdx;
4314 tANI_U8 bssIdx;
4315 tANI_U8 uReasonCode;
4316 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004317#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4318 tANI_U8 staAddr[6];
4319 tANI_U8 bssId[6];
4320#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004321} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004322
4323/*---------------------------------------------------------------------------
4324 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4325 *--------------------------------------------------------------------------*/
4326
4327typedef PACKED_PRE struct PACKED_POST
4328{
4329 tBtAmpEventType btAmpEventType;
4330
4331}tBtAmpEventParams, *tpBtAmpEventParams;
4332
4333
4334
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 tHalMsgHeader header;
4338 tBtAmpEventParams btAmpEventParams;
4339}tBtAmpEventMsg, *tpBtAmpEventMsg;
4340
4341/*---------------------------------------------------------------------------
4342*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4343*--------------------------------------------------------------------------*/
4344
4345typedef PACKED_PRE struct PACKED_POST
4346{
4347 /* success or failure */
4348 tANI_U32 status;
4349}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4350
4351typedef PACKED_PRE struct PACKED_POST
4352{
4353 tHalMsgHeader header;
4354 tBtAmpEventRspParams btAmpEventRspParams;
4355}tBtAmpEventRsp, *tpBtAmpEventRsp;
4356
4357
4358/*---------------------------------------------------------------------------
4359 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4360 *--------------------------------------------------------------------------*/
4361
4362typedef PACKED_PRE struct PACKED_POST
4363{
4364 // Station Index. originates from HAL
4365 tANI_U8 ucSTAId;
4366
4367 // TID for which the transmit queue is being flushed
4368 tANI_U8 ucTid;
4369
4370}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4371
4372
4373typedef PACKED_PRE struct PACKED_POST
4374{
4375 tHalMsgHeader header;
4376 tTlHalFlushAcParams tlHalFlushAcParam;
4377}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4378
4379/*---------------------------------------------------------------------------
4380*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4381*--------------------------------------------------------------------------*/
4382
4383typedef PACKED_PRE struct PACKED_POST
4384{
4385 // Station Index. originates from HAL
4386 tANI_U8 ucSTAId;
4387
4388 // TID for which the transmit queue is being flushed
4389 tANI_U8 ucTid;
4390
4391 /* success or failure */
4392 tANI_U32 status;
4393}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4394
4395typedef PACKED_PRE struct PACKED_POST
4396{
4397 tHalMsgHeader header;
4398 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4399}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4400
4401/*---------------------------------------------------------------------------
4402 * WLAN_HAL_ENTER_IMPS_REQ
4403 *--------------------------------------------------------------------------*/
4404typedef PACKED_PRE struct PACKED_POST
4405{
4406 tHalMsgHeader header;
4407} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4408
4409/*---------------------------------------------------------------------------
4410 * WLAN_HAL_EXIT_IMPS_REQ
4411 *--------------------------------------------------------------------------*/
4412typedef PACKED_PRE struct PACKED_POST
4413{
4414 tHalMsgHeader header;
4415} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4416
4417/*---------------------------------------------------------------------------
4418 * WLAN_HAL_ENTER_BMPS_REQ
4419 *--------------------------------------------------------------------------*/
4420
4421typedef PACKED_PRE struct PACKED_POST
4422{
4423 tANI_U8 bssIdx;
4424 //TBTT value derived from the last beacon
4425#ifndef BUILD_QWPTTSTATIC
4426 tANI_U64 tbtt;
4427#endif
4428 tANI_U8 dtimCount;
4429 //DTIM period given to HAL during association may not be valid,
4430 //if association is based on ProbeRsp instead of beacon.
4431 tANI_U8 dtimPeriod;
4432
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004433 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004434 tANI_U32 rssiFilterPeriod;
4435 tANI_U32 numBeaconPerRssiAverage;
4436 tANI_U8 bRssiFilterEnable;
4437
4438} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4439
4440
4441typedef PACKED_PRE struct PACKED_POST
4442{
4443 tHalMsgHeader header;
4444 tHalEnterBmpsReqParams enterBmpsReq;
4445} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4446
4447/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304448 * WLAN_HAL_PRINT_REG_INFO_IND
4449 *--------------------------------------------------------------------------*/
4450typedef PACKED_PRE struct PACKED_POST
4451{
4452 uint32 regAddr;
4453 uint32 regValue;
4454} tHalRegDebugInfo, *tpRegDebugInfo;
4455
4456typedef PACKED_PRE struct PACKED_POST
4457{
4458 uint32 regCount;
4459 uint32 scenario;
4460 uint32 reasonCode;
4461} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4462
4463typedef PACKED_PRE struct PACKED_POST
4464{
4465 tHalMsgHeader header;
4466 tHalRegDebugInfoParams regParams;
4467} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4468
4469/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004470 * WLAN_HAL_EXIT_BMPS_REQ
4471 *--------------------------------------------------------------------------*/
4472typedef PACKED_PRE struct PACKED_POST
4473{
4474 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004475 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004476} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4477
4478typedef PACKED_PRE struct PACKED_POST
4479{
4480 tHalMsgHeader header;
4481 tHalExitBmpsReqParams exitBmpsReqParams;
4482} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4483
4484/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004485 * WLAN_HAL_MISSED_BEACON_IND
4486 *--------------------------------------------------------------------------*/
4487typedef PACKED_PRE struct PACKED_POST
4488{
4489 tANI_U8 bssIdx;
4490} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4491
4492typedef PACKED_PRE struct PACKED_POST
4493{
4494 tHalMsgHeader header;
4495 tHalMissedBeaconIndParams missedBeaconIndParams;
4496} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4497
4498/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004499 * WLAN_HAL_ADD_BCN_FILTER_REQ
4500 *--------------------------------------------------------------------------*/
4501/* Beacon Filtering data structures */
4502typedef PACKED_PRE struct PACKED_POST
4503{
4504 tANI_U8 offset;
4505 tANI_U8 value;
4506 tANI_U8 bitMask;
4507 tANI_U8 ref;
4508} tEidByteInfo, *tpEidByteInfo;
4509
Dino Mycle8afbac12014-07-04 22:06:17 +05304510typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004511{
4512 tANI_U16 capabilityInfo;
4513 tANI_U16 capabilityMask;
4514 tANI_U16 beaconInterval;
4515 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004516 tANI_U8 bssIdx;
4517 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004518} tBeaconFilterMsg, *tpBeaconFilterMsg;
4519
4520/* The above structure would be followed by multiple of below mentioned structure */
4521typedef PACKED_PRE struct PACKED_POST
4522{
4523 tANI_U8 elementId;
4524 tANI_U8 checkIePresence;
4525 tEidByteInfo byte;
4526} tBeaconFilterIe, *tpBeaconFilterIe;
4527
4528typedef PACKED_PRE struct PACKED_POST
4529{
4530 tHalMsgHeader header;
4531 tBeaconFilterMsg addBcnFilterParams;
4532} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4533
4534/*---------------------------------------------------------------------------
4535 * WLAN_HAL_REM_BCN_FILTER_REQ
4536 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304537typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004538{
4539 tANI_U8 ucIeCount;
4540 tANI_U8 ucRemIeId[1];
4541} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4542
4543typedef PACKED_PRE struct PACKED_POST
4544{
4545 tHalMsgHeader header;
4546 tRemBeaconFilterMsg remBcnFilterParams;
4547} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4548
4549/*---------------------------------------------------------------------------
4550 * WLAN_HAL_HOST_OFFLOAD_REQ
4551 *--------------------------------------------------------------------------*/
4552#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4553#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4554#define HAL_IPV6_NS_OFFLOAD 2
4555#define HAL_IPV6_ADDR_LEN 16
4556#define HAL_MAC_ADDR_LEN 6
4557#define HAL_OFFLOAD_DISABLE 0
4558#define HAL_OFFLOAD_ENABLE 1
4559#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004560#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004561#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004562#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004563
4564typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4565{
4566 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4567 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4568 //Only support 2 possible Network Advertisement IPv6 address
4569 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4570 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4571 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4572 tANI_U8 srcIPv6AddrValid : 1;
4573 tANI_U8 targetIPv6Addr1Valid : 1;
4574 tANI_U8 targetIPv6Addr2Valid : 1;
4575 tANI_U8 reserved1 : 5;
4576 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004577 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004578 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004579} tHalNSOffloadParams;
4580
4581typedef PACKED_PRE struct PACKED_POST
4582{
4583 tANI_U8 offloadType;
4584 tANI_U8 enableOrDisable;
4585 PACKED_PRE union PACKED_POST
4586 {
4587 tANI_U8 hostIpv4Addr [4];
4588 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4589 } params;
4590} tHalHostOffloadReq, *tpHalHostOffloadReq;
4591
4592typedef PACKED_PRE struct PACKED_POST
4593{
4594 tHalMsgHeader header;
4595 tHalHostOffloadReq hostOffloadParams;
4596 tHalNSOffloadParams nsOffloadParams;
4597} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4598
Leo Chang397deb72013-08-22 11:33:16 -07004599
4600#ifdef FEATURE_WLAN_LPHB
4601typedef enum
4602{
4603 WIFI_HB_SET_ENABLE = 0x0001,
4604 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4605 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4606 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4607 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4608 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4609}tLowPowerHeartBeatCmdType ;
4610
4611#define MAX_FLITER_SIZE 64
4612/*---------------------------------------------------------------------------
4613 *FEATURE_WLAN_LPHB REQ
4614 *--------------------------------------------------------------------------*/
4615typedef PACKED_PRE struct PACKED_POST
4616{
4617 uint32 hostIpv4Addr;
4618 uint32 destIpv4Addr;
4619 uint16 hostPort;
4620 uint16 destPort;
4621 uint16 timeOutSec; // in seconds
4622 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004623 uint16 timePeriodSec; // in seconds
4624 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004625} tlowPowerHeartBeatParamsTcpStruct;
4626
4627typedef PACKED_PRE struct PACKED_POST
4628{
4629 uint32 hostIpv4Addr;
4630 uint32 destIpv4Addr;
4631 uint16 hostPort;
4632 uint16 destPort;
4633 uint16 timePeriodSec;// in seconds
4634 uint16 timeOutSec; // in seconds
4635 tSirMacAddr gatewayMacAddr;
4636} tlowPowerHeartBeatParamsUdpStruct;
4637
4638typedef PACKED_PRE struct PACKED_POST
4639{
4640 uint32 offset;
4641 uint32 filterLength;
4642 uint8 filter[MAX_FLITER_SIZE];
4643} tlowPowerHeartBeatFilterStruct;
4644
4645typedef PACKED_PRE struct PACKED_POST
4646{
4647 uint8 heartBeatEnable;
4648 uint8 heartBeatType; //TCP or UDP
4649} tlowPowerHeartBeatEnableStruct;
4650
4651typedef PACKED_PRE struct PACKED_POST
4652{
4653 uint8 dummy;
4654} tlowPowerHeartBeatNetworkInfoStruct;
4655
4656
4657typedef PACKED_PRE struct PACKED_POST
4658{
4659 uint8 sessionIdx;
4660 uint16 lowPowerHeartBeatCmdType;
4661 PACKED_PRE union PACKED_PRO
4662 {
4663 tlowPowerHeartBeatEnableStruct control;
4664 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4665 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4666 tlowPowerHeartBeatParamsUdpStruct udpParams;
4667 tlowPowerHeartBeatNetworkInfoStruct info;
4668 }options;
4669} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4670
4671
4672typedef PACKED_PRE struct PACKED_POST
4673{
4674 tHalMsgHeader header;
4675 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4676} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4677
4678/*---------------------------------------------------------------------------
4679 * FEATURE_WLAN_LPHB RSP
4680 *--------------------------------------------------------------------------*/
4681
4682typedef PACKED_PRE struct PACKED_POST
4683{
4684 /* success or failure */
4685 uint8 sessionIdx;
4686 uint32 status;
4687 uint16 lowPowerHeartBeatCmdType;
4688}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4689
4690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tHalMsgHeader header;
4693 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4694}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4695
4696
4697/*---------------------------------------------------------------------------
4698 * FEATURE_WLAN_LPHB IND
4699 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004700#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4701#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4702
4703#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4704#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004705#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004706
Kumar Anandea78e792013-10-10 23:47:01 -07004707
4708#define WIFI_LPHB_PROTO_UDP 0x01
4709#define WIFI_LPHB_PROTO_TCP 0x02
4710
Leo Chang397deb72013-08-22 11:33:16 -07004711typedef PACKED_PRE struct PACKED_POST
4712{
4713 uint8 bssIdx;
4714 uint8 sessionIdx;
4715 uint8 protocolType; /*TCP or UDP*/
4716 uint8 eventReason;
4717
4718}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4719
4720typedef PACKED_PRE struct PACKED_POST
4721{
4722 tHalMsgHeader header;
4723 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4724}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4725
4726#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004727
4728#ifdef FEATURE_WLAN_BATCH_SCAN
4729
4730/*---------------------------------------------------------------------------
4731 * WLAN_HAL_BATCHSCAN_SET_REQ
4732 *--------------------------------------------------------------------------*/
4733typedef PACKED_PRE struct PACKED_POST
4734{
4735 /* Scan Frerquency - default to 30Sec*/
4736 tANI_U32 scanInterval;
4737 tANI_U32 numScan2Batch;
4738 tANI_U32 bestNetworks;
4739 tANI_U8 rfBand;
4740 tANI_U8 rtt;
4741} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4742
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 tHalMsgHeader header;
4746 tHalBatchScanSetParams batchScanParams;
4747} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4748
4749/*---------------------------------------------------------------------------
4750 * WLAN_HAL_BATCHSCAN_SET_RSP
4751 *--------------------------------------------------------------------------*/
4752typedef PACKED_PRE struct PACKED_POST
4753{
4754 tANI_U32 supportedMscan;
4755} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4756
4757typedef PACKED_PRE struct PACKED_POST
4758{
4759 tHalMsgHeader header;
4760 tHalBatchScanSetRspParam setBatchScanRspParam;
4761} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4762
4763/*---------------------------------------------------------------------------
4764* WLAN_HAL_BATCHSCAN_STOP_IND
4765*--------------------------------------------------------------------------*/
4766typedef PACKED_PRE struct PACKED_POST
4767{
4768 tANI_U32 param;
4769} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4770
4771typedef PACKED_PRE struct PACKED_POST
4772{
4773 tHalMsgHeader header;
4774 tHalBatchScanStopIndParam param;
4775} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4776
4777/*---------------------------------------------------------------------------
4778* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4779*--------------------------------------------------------------------------*/
4780typedef PACKED_PRE struct PACKED_POST
4781{
4782 tANI_U32 param;
4783} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4784
4785typedef PACKED_PRE struct PACKED_POST
4786{
4787 tHalMsgHeader header;
4788 tHalBatchScanTriggerResultParam param;
4789} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4790
4791/*---------------------------------------------------------------------------
4792 * WLAN_HAL_BATCHSCAN_GET_RSP
4793 *--------------------------------------------------------------------------*/
4794typedef PACKED_PRE struct PACKED_POST
4795{
4796 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004797 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004798 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304799 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004800 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4801 tANI_U32 timestamp;
4802} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4803
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 tANI_U32 scanId; /* Scan List ID. */
4807 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4808 tANI_U32 numNetworksInScanList;
4809 /* Variable data ptr: Number of AP in Scan List */
4810 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4811 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4812 tANI_U8 scanList[1];
4813} tHalBatchScanList, *tpHalBatchScanList;
4814
4815typedef PACKED_PRE struct PACKED_POST
4816{
4817 tANI_U32 timestamp;
4818 tANI_U32 numScanLists;
4819 boolean isLastResult;
4820 /* Variable Data ptr: Number of Scan Lists*/
4821 /* following isLastResult is data of type tHalBatchScanList
4822 * of sizeof(tHalBatchScanList) * numScanLists*/
4823 tANI_U8 scanResults[1];
4824} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4825
4826typedef PACKED_PRE struct PACKED_POST
4827{
4828 tHalMsgHeader header;
4829 tHalBatchScanResultIndParam resultIndMsgParam;
4830} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4831
4832#endif
4833
Jeff Johnson295189b2012-06-20 16:38:30 -07004834/*---------------------------------------------------------------------------
4835 * WLAN_HAL_KEEP_ALIVE_REQ
4836 *--------------------------------------------------------------------------*/
4837/* Packet Types. */
4838#define HAL_KEEP_ALIVE_NULL_PKT 1
4839#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4840
4841/* Enable or disable keep alive */
4842#define HAL_KEEP_ALIVE_DISABLE 0
4843#define HAL_KEEP_ALIVE_ENABLE 1
4844
4845/* Keep Alive request. */
4846typedef PACKED_PRE struct PACKED_POST
4847{
4848 tANI_U8 packetType;
4849 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304850 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004851 tHalIpv4Addr destIpv4Addr;
4852 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004853 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004854} tHalKeepAliveReq, *tpHalKeepAliveReq;
4855
4856typedef PACKED_PRE struct PACKED_POST
4857{
4858 tHalMsgHeader header;
4859 tHalKeepAliveReq KeepAliveParams;
4860} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4861
4862/*---------------------------------------------------------------------------
4863 * WLAN_HAL_SET_RSSI_THRESH_REQ
4864 *--------------------------------------------------------------------------*/
4865typedef PACKED_PRE struct PACKED_POST
4866{
4867 tANI_S8 ucRssiThreshold1 : 8;
4868 tANI_S8 ucRssiThreshold2 : 8;
4869 tANI_S8 ucRssiThreshold3 : 8;
4870 tANI_U8 bRssiThres1PosNotify : 1;
4871 tANI_U8 bRssiThres1NegNotify : 1;
4872 tANI_U8 bRssiThres2PosNotify : 1;
4873 tANI_U8 bRssiThres2NegNotify : 1;
4874 tANI_U8 bRssiThres3PosNotify : 1;
4875 tANI_U8 bRssiThres3NegNotify : 1;
4876 tANI_U8 bReserved10 : 2;
4877} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304878
Jeff Johnson295189b2012-06-20 16:38:30 -07004879typedef PACKED_PRE struct PACKED_POST
4880{
4881 tHalMsgHeader header;
4882 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004883} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004884
4885/*---------------------------------------------------------------------------
4886 * WLAN_HAL_ENTER_UAPSD_REQ
4887 *--------------------------------------------------------------------------*/
4888typedef PACKED_PRE struct PACKED_POST
4889{
4890 tANI_U8 bkDeliveryEnabled:1;
4891 tANI_U8 beDeliveryEnabled:1;
4892 tANI_U8 viDeliveryEnabled:1;
4893 tANI_U8 voDeliveryEnabled:1;
4894 tANI_U8 bkTriggerEnabled:1;
4895 tANI_U8 beTriggerEnabled:1;
4896 tANI_U8 viTriggerEnabled:1;
4897 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004898 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004899} tUapsdReqParams, *tpUapsdReqParams;
4900
4901typedef PACKED_PRE struct PACKED_POST
4902{
4903 tHalMsgHeader header;
4904 tUapsdReqParams enterUapsdParams;
4905} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4906
4907/*---------------------------------------------------------------------------
4908 * WLAN_HAL_EXIT_UAPSD_REQ
4909 *--------------------------------------------------------------------------*/
4910typedef PACKED_PRE struct PACKED_POST
4911{
4912 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004913 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004914} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4915
Kumar Anandea78e792013-10-10 23:47:01 -07004916#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4917#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004918/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004919 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4920 *--------------------------------------------------------------------------*/
4921typedef PACKED_PRE struct PACKED_POST
4922{
4923 tANI_U32 selfStaIdx:8;
4924 tANI_U32 ucPtrnId:8; // Pattern ID
4925 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4926 tANI_U32 uPtrnIntervalMs; // In msec
4927 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4928} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4929
4930typedef PACKED_PRE struct PACKED_POST
4931{
4932 tHalMsgHeader header;
4933 tHalAddPeriodicTxPtrn ptrnParams;
4934} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4935
4936/*---------------------------------------------------------------------------
4937 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4938 *--------------------------------------------------------------------------*/
4939typedef PACKED_PRE struct PACKED_POST
4940{
4941 tANI_U32 selfStaIdx:8;
4942 tANI_U32 rsvd:24;
4943 /* Bitmap of pattern IDs that needs to be deleted */
4944 tANI_U32 uPatternIdBitmap;
4945} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4946
4947typedef PACKED_PRE struct PACKED_POST
4948{
4949 tHalMsgHeader header;
4950 tHalDelPeriodicTxPtrn ptrnParams;
4951} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4952
4953/*---------------------------------------------------------------------------
4954 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4955 *--------------------------------------------------------------------------*/
4956typedef PACKED_PRE struct PACKED_POST
4957{
4958 /* Type of Failure indication */
4959 tANI_U32 bssIdx:8;
4960 tANI_U32 selfStaIdx:8;
4961 tANI_U32 rsvd:16;
4962 tANI_U32 status;
4963 tANI_U32 patternIdBitmap;
4964} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4965
4966typedef PACKED_PRE struct PACKED_POST
4967{
4968 tHalMsgHeader header;
4969 tHalPeriodicTxPtrnFwInd fwIndParams;
4970} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4971
4972/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004973 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4974 *--------------------------------------------------------------------------*/
4975#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4976#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4977
4978typedef PACKED_PRE struct PACKED_POST
4979{
4980 tANI_U8 ucPatternId; // Pattern ID
4981 // Pattern byte offset from beginning of the 802.11 packet to start of the
4982 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304983 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004984 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4985 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4986 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4987 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4988 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4989 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004990 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004991} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4992
4993typedef PACKED_PRE struct PACKED_POST
4994{
4995 tHalMsgHeader header;
4996 tHalWowlAddBcastPtrn ptrnParams;
4997} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304998
Jeff Johnsone7245742012-09-05 17:12:55 -07004999
5000
Jeff Johnson295189b2012-06-20 16:38:30 -07005001/*---------------------------------------------------------------------------
5002 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
5003 *--------------------------------------------------------------------------*/
5004typedef PACKED_PRE struct PACKED_POST
5005{
5006 /* Pattern ID of the wakeup pattern to be deleted */
5007 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005008 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005009} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
5010
5011typedef PACKED_PRE struct PACKED_POST
5012{
5013 tHalMsgHeader header;
5014 tHalWowlDelBcastPtrn ptrnParams;
5015} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
5016
5017/*---------------------------------------------------------------------------
5018 * WLAN_HAL_ENTER_WOWL_REQ
5019 *--------------------------------------------------------------------------*/
5020typedef PACKED_PRE struct PACKED_POST
5021{
5022 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05305023 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005024
5025 /* Magic pattern */
5026 tSirMacAddr magicPtrn;
5027
Dino Mycle8afbac12014-07-04 22:06:17 +05305028 /* Enables/disables packet pattern filtering in firmware.
5029 Enabling this flag enables broadcast pattern matching
5030 in Firmware. If unicast pattern matching is also desired,
5031 ucUcastPatternFilteringEnable flag must be set tot true
5032 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07005033 */
5034 tANI_U8 ucPatternFilteringEnable;
5035
Dino Mycle8afbac12014-07-04 22:06:17 +05305036 /* Enables/disables unicast packet pattern filtering.
5037 This flag specifies whether we want to do pattern match
5038 on unicast packets as well and not just broadcast packets.
5039 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07005040 (main controlling flag) is set to false
5041 */
Dino Mycle8afbac12014-07-04 22:06:17 +05305042 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005043
Dino Mycle8afbac12014-07-04 22:06:17 +05305044 /* This configuration is valid only when magicPktEnable=1.
5045 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07005046 * Channel Switch Action Frame.
5047 */
5048 tANI_U8 ucWowChnlSwitchRcv;
5049
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
5052 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005053 */
5054 tANI_U8 ucWowDeauthRcv;
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 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005059 */
5060 tANI_U8 ucWowDisassocRcv;
5061
Dino Mycle8afbac12014-07-04 22:06:17 +05305062 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005063 * It requests hardware to wake up when it has missed
5064 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05305065 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07005066 */
5067 tANI_U8 ucWowMaxMissedBeacons;
5068
Dino Mycle8afbac12014-07-04 22:06:17 +05305069 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005070 * This is a timeout value in units of microsec. It requests
5071 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05305072 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07005073 */
5074 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05305075
Jeff Johnson295189b2012-06-20 16:38:30 -07005076 /* This configuration directs the WoW packet filtering to look for EAP-ID
5077 * requests embedded in EAPOL frames and use this as a wake source.
5078 */
5079 tANI_U8 ucWoWEAPIDRequestEnable;
5080
5081 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
5082 * requests and use this as a wake source.
5083 */
5084 tANI_U8 ucWoWEAPOL4WayEnable;
5085
5086 /* This configuration allows a host wakeup on an network scan offload match.
5087 */
5088 tANI_U8 ucWowNetScanOffloadMatch;
5089
5090 /* This configuration allows a host wakeup on any GTK rekeying error.
5091 */
5092 tANI_U8 ucWowGTKRekeyError;
5093
5094 /* This configuration allows a host wakeup on BSS connection loss.
5095 */
5096 tANI_U8 ucWoWBSSConnLoss;
5097
Jeff Johnsone7245742012-09-05 17:12:55 -07005098 tANI_U8 bssIdx;
5099
Jeff Johnson295189b2012-06-20 16:38:30 -07005100} tHalWowlEnterParams, *tpHalWowlEnterParams;
5101
5102typedef PACKED_PRE struct PACKED_POST
5103{
5104 tHalMsgHeader header;
5105 tHalWowlEnterParams enterWowlParams;
5106} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5107
5108/*---------------------------------------------------------------------------
5109 * WLAN_HAL_EXIT_WOWL_REQ
5110 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005111
Jeff Johnson295189b2012-06-20 16:38:30 -07005112typedef PACKED_PRE struct PACKED_POST
5113{
Jeff Johnsone7245742012-09-05 17:12:55 -07005114 tANI_U8 bssIdx;
5115
5116} tHalWowlExitParams, *tpHalWowlExitParams;
5117
5118typedef PACKED_PRE struct PACKED_POST
5119{
5120 tHalMsgHeader header;
5121 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005122} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5123
5124/*---------------------------------------------------------------------------
5125 * WLAN_HAL_GET_RSSI_REQ
5126 *--------------------------------------------------------------------------*/
5127typedef PACKED_PRE struct PACKED_POST
5128{
5129 tHalMsgHeader header;
5130} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5131
Anand Kumar012623a2013-01-11 17:00:00 -08005132typedef PACKED_PRE struct PACKED_POST
5133{
5134 /* Valid STA Idx for per STA stats request */
5135 tANI_U32 staId;
5136
5137}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5138
5139
5140/*---------------------------------------------------------------------------
5141 * WLAN_HAL_GET_ROAM_RSSI_REQ
5142 *--------------------------------------------------------------------------*/
5143typedef PACKED_PRE struct PACKED_POST
5144{
5145 tHalMsgHeader header;
5146 tHalRoamRssiReqParams roamRssiReqParams;
5147} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5148
5149
Jeff Johnson295189b2012-06-20 16:38:30 -07005150/*---------------------------------------------------------------------------
5151 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5152 *--------------------------------------------------------------------------*/
5153typedef PACKED_PRE struct PACKED_POST {
5154 tANI_U8 staidx; // STA index
5155 tANI_U8 ac; // Access Category
5156 tANI_U8 up; // User Priority
5157 tANI_U32 srvInterval; // Service Interval
5158 tANI_U32 susInterval; // Suspend Interval
5159 tANI_U32 delayInterval; // Delay Interval
5160} tUapsdInfo, tpUapsdInfo;
5161
5162typedef PACKED_PRE struct PACKED_POST
5163{
5164 tHalMsgHeader header;
5165 tUapsdInfo enableUapsdAcParams;
5166} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5167
5168/*---------------------------------------------------------------------------
5169 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5170 *--------------------------------------------------------------------------*/
5171typedef PACKED_PRE struct PACKED_POST {
5172 tANI_U8 setMcstBcstFilterSetting;
5173 tANI_U8 setMcstBcstFilter;
5174} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5175
5176typedef PACKED_PRE struct PACKED_POST
5177{
5178 tHalMsgHeader header;
5179 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5180} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5181
5182/*---------------------------------------------------------------------------
5183 * WLAN_HAL_ENTER_IMPS_RSP
5184 *--------------------------------------------------------------------------*/
5185typedef PACKED_PRE struct PACKED_POST
5186{
5187 /* success or failure */
5188 tANI_U32 status;
5189} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5190
5191typedef PACKED_PRE struct PACKED_POST
5192{
5193 tHalMsgHeader header;
5194 tHalEnterImpsRspParams enterImpsRspParams;
5195} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5196
5197/*---------------------------------------------------------------------------
5198 * WLAN_HAL_EXIT_IMPS_RSP
5199 *--------------------------------------------------------------------------*/
5200typedef PACKED_PRE struct PACKED_POST
5201{
5202 /* success or failure */
5203 tANI_U32 status;
5204} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5205
5206typedef PACKED_PRE struct PACKED_POST
5207{
5208 tHalMsgHeader header;
5209 tHalExitImpsRspParams exitImpsRspParams;
5210} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5211
5212/*---------------------------------------------------------------------------
5213 * WLAN_HAL_ENTER_BMPS_RSP
5214 *--------------------------------------------------------------------------*/
5215typedef PACKED_PRE struct PACKED_POST
5216{
5217 /* success or failure */
5218 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005219 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005220} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5221
5222typedef PACKED_PRE struct PACKED_POST
5223{
5224 tHalMsgHeader header;
5225 tHalEnterBmpsRspParams enterBmpsRspParams;
5226} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5227
5228/*---------------------------------------------------------------------------
5229 * WLAN_HAL_EXIT_BMPS_RSP
5230 *--------------------------------------------------------------------------*/
5231typedef PACKED_PRE struct PACKED_POST
5232{
5233 /* success or failure */
5234 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005235 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005236} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5237
5238typedef PACKED_PRE struct PACKED_POST
5239{
5240 tHalMsgHeader header;
5241 tHalExitBmpsRspParams exitBmpsRspParams;
5242} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5243
5244/*---------------------------------------------------------------------------
5245 * WLAN_HAL_ENTER_UAPSD_RSP
5246 *--------------------------------------------------------------------------*/
5247typedef PACKED_PRE struct PACKED_POST
5248{
5249 /* success or failure */
5250 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005251 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005252}tUapsdRspParams, *tpUapsdRspParams;
5253
5254typedef PACKED_PRE struct PACKED_POST
5255{
5256 tHalMsgHeader header;
5257 tUapsdRspParams enterUapsdRspParams;
5258} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5259
5260/*---------------------------------------------------------------------------
5261 * WLAN_HAL_EXIT_UAPSD_RSP
5262 *--------------------------------------------------------------------------*/
5263typedef PACKED_PRE struct PACKED_POST
5264{
5265 /* success or failure */
5266 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005267 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005268} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5269
5270typedef PACKED_PRE struct PACKED_POST
5271{
5272 tHalMsgHeader header;
5273 tHalExitUapsdRspParams exitUapsdRspParams;
5274} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5275
5276/*---------------------------------------------------------------------------
5277 * WLAN_HAL_RSSI_NOTIFICATION_IND
5278 *--------------------------------------------------------------------------*/
5279typedef PACKED_PRE struct PACKED_POST
5280{
5281 tANI_U32 bRssiThres1PosCross : 1;
5282 tANI_U32 bRssiThres1NegCross : 1;
5283 tANI_U32 bRssiThres2PosCross : 1;
5284 tANI_U32 bRssiThres2NegCross : 1;
5285 tANI_U32 bRssiThres3PosCross : 1;
5286 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005287 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005288 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005289 tANI_U32 isBTCoexCompromise : 1;
5290 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005291 tANI_S8 refRssiThreshold1;
5292 tANI_S8 refRssiThreshold2;
5293 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005294} tHalRSSINotification, *tpHalRSSINotification;
5295
5296typedef PACKED_PRE struct PACKED_POST
5297{
5298 tHalMsgHeader header;
5299 tHalRSSINotification rssiNotificationParams;
5300} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5301
5302/*---------------------------------------------------------------------------
5303 * WLAN_HAL_GET_RSSI_RSP
5304 *--------------------------------------------------------------------------*/
5305typedef PACKED_PRE struct PACKED_POST
5306{
5307 /* success or failure */
5308 tANI_U32 status;
5309 tANI_S8 rssi;
5310} tHalGetRssiParams, *tpHalGetRspParams;
5311
5312typedef PACKED_PRE struct PACKED_POST
5313{
5314 tHalMsgHeader header;
5315 tHalGetRssiParams rssiRspParams;
5316} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5317
5318/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005319 * WLAN_HAL_GET_ROAM_RSSI_RSP
5320 *--------------------------------------------------------------------------*/
5321typedef PACKED_PRE struct PACKED_POST
5322{
5323 /* success or failure */
5324 tANI_U32 status;
5325
5326 tANI_U8 staId;
5327 tANI_S8 rssi;
5328} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5329
5330typedef PACKED_PRE struct PACKED_POST
5331{
5332 tHalMsgHeader header;
5333 tHalGetRoamRssiParams roamRssiRspParams;
5334} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5335
5336/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005337 * WLAN_HAL_ENTER_WOWL_RSP
5338 *--------------------------------------------------------------------------*/
5339typedef PACKED_PRE struct PACKED_POST
5340{
5341 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005342 tANI_U32 status;
5343 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005344} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5345
5346typedef PACKED_PRE struct PACKED_POST
5347{
5348 tHalMsgHeader header;
5349 tHalEnterWowlRspParams enterWowlRspParams;
5350} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5351
5352/*---------------------------------------------------------------------------
5353 * WLAN_HAL_EXIT_WOWL_RSP
5354 *--------------------------------------------------------------------------*/
5355typedef PACKED_PRE struct PACKED_POST
5356{
5357 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005358 tANI_U32 status;
5359 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005360} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5361
5362typedef PACKED_PRE struct PACKED_POST
5363{
5364 tHalMsgHeader header;
5365 tHalExitWowlRspParams exitWowlRspParams;
5366} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5367
5368/*---------------------------------------------------------------------------
5369 * WLAN_HAL_ADD_BCN_FILTER_RSP
5370 *--------------------------------------------------------------------------*/
5371typedef PACKED_PRE struct PACKED_POST
5372{
5373 /* success or failure */
5374 tANI_U32 status;
5375} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5376
5377typedef PACKED_PRE struct PACKED_POST
5378{
5379 tHalMsgHeader header;
5380 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5381} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5382
5383/*---------------------------------------------------------------------------
5384 * WLAN_HAL_REM_BCN_FILTER_RSP
5385 *--------------------------------------------------------------------------*/
5386typedef PACKED_PRE struct PACKED_POST
5387{
5388 /* success or failure */
5389 tANI_U32 status;
5390} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5391
5392typedef PACKED_PRE struct PACKED_POST
5393{
5394 tHalMsgHeader header;
5395 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5396} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5397
5398/*---------------------------------------------------------------------------
5399 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5400 *--------------------------------------------------------------------------*/
5401typedef PACKED_PRE struct PACKED_POST
5402{
5403 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005404 tANI_U32 status;
5405 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005406} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5407
5408typedef PACKED_PRE struct PACKED_POST
5409{
5410 tHalMsgHeader header;
5411 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5412} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5413
5414/*---------------------------------------------------------------------------
5415 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5416 *--------------------------------------------------------------------------*/
5417typedef PACKED_PRE struct PACKED_POST
5418{
5419 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005420 tANI_U32 status;
5421 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005422} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5423
5424typedef PACKED_PRE struct PACKED_POST
5425{
5426 tHalMsgHeader header;
5427 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5428} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5429
5430/*---------------------------------------------------------------------------
5431 * WLAN_HAL_HOST_OFFLOAD_RSP
5432 *--------------------------------------------------------------------------*/
5433typedef PACKED_PRE struct PACKED_POST
5434{
5435 /* success or failure */
5436 tANI_U32 status;
5437} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5438
5439typedef PACKED_PRE struct PACKED_POST
5440{
5441 tHalMsgHeader header;
5442 tHalHostOffloadRspParams hostOffloadRspParams;
5443} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5444
5445/*---------------------------------------------------------------------------
5446 * WLAN_HAL_KEEP_ALIVE_RSP
5447 *--------------------------------------------------------------------------*/
5448typedef PACKED_PRE struct PACKED_POST
5449{
5450 /* success or failure */
5451 tANI_U32 status;
5452} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5453
5454typedef PACKED_PRE struct PACKED_POST
5455{
5456 tHalMsgHeader header;
5457 tHalKeepAliveRspParams keepAliveRspParams;
5458} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5459
5460/*---------------------------------------------------------------------------
5461 * WLAN_HAL_SET_RSSI_THRESH_RSP
5462 *--------------------------------------------------------------------------*/
5463typedef PACKED_PRE struct PACKED_POST
5464{
5465 /* success or failure */
5466 tANI_U32 status;
5467} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5468
5469typedef PACKED_PRE struct PACKED_POST
5470{
5471 tHalMsgHeader header;
5472 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5473} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5474
5475/*---------------------------------------------------------------------------
5476 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5477 *--------------------------------------------------------------------------*/
5478typedef PACKED_PRE struct PACKED_POST
5479{
5480 /* success or failure */
5481 tANI_U32 status;
5482} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5483
5484typedef PACKED_PRE struct PACKED_POST
5485{
5486 tHalMsgHeader header;
5487 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5488} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5489
5490/*---------------------------------------------------------------------------
5491 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5492 *--------------------------------------------------------------------------*/
5493typedef PACKED_PRE struct PACKED_POST
5494{
5495 /* success or failure */
5496 tANI_U32 status;
5497} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5498
5499typedef PACKED_PRE struct PACKED_POST
5500{
5501 tHalMsgHeader header;
5502 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5503} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5504
5505/*---------------------------------------------------------------------------
5506 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5507 *--------------------------------------------------------------------------*/
5508
5509typedef PACKED_PRE struct PACKED_POST
5510{
5511 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5512 //the request has power constraints, this should be applied only to that session
5513 tSirMacAddr selfStaMacAddr;
5514 //In request,
5515 //power == MaxTx power to be used.
5516 tPowerdBm power;
5517
5518}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5519
5520
5521typedef PACKED_PRE struct PACKED_POST
5522{
5523 tHalMsgHeader header;
5524 tSetMaxTxPwrParams setMaxTxPwrParams;
5525}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5526
5527/*---------------------------------------------------------------------------
5528*WLAN_HAL_SET_MAX_TX_POWER_RSP
5529*--------------------------------------------------------------------------*/
5530
5531typedef PACKED_PRE struct PACKED_POST
5532{
5533 //power == tx power used for management frames.
5534 tPowerdBm power;
5535
5536 /* success or failure */
5537 tANI_U32 status;
5538}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5539
5540typedef PACKED_PRE struct PACKED_POST
5541{
5542 tHalMsgHeader header;
5543 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5544}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5545
Kumar Anandea78e792013-10-10 23:47:01 -07005546
Jeff Johnson295189b2012-06-20 16:38:30 -07005547/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005548 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5549 *--------------------------------------------------------------------------*/
5550
5551/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5552typedef enum
5553{
5554 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5555 // For 2.4GHz or 5GHz bands
5556 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5557 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5558 // End of valid enums
5559 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5560}tHalSetMaxTxPwrBandInfo;
5561
5562typedef PACKED_PRE struct PACKED_POST
5563{
5564 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005565 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005566}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5567
Kumar Anandea78e792013-10-10 23:47:01 -07005568
Arif Hussain36fda162013-08-30 14:46:57 -07005569typedef PACKED_PRE struct PACKED_POST
5570{
5571 tHalMsgHeader header;
5572 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5573}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5574
5575/*---------------------------------------------------------------------------
5576*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5577*--------------------------------------------------------------------------*/
5578
5579typedef PACKED_PRE struct PACKED_POST
5580{
5581 //power == tx power used for management frames.
5582 tPowerdBm power;
5583
5584 /* success or failure */
5585 tANI_U32 status;
5586}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5587
5588typedef PACKED_PRE struct PACKED_POST
5589{
5590 tHalMsgHeader header;
5591 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5592}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5593
5594/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005595 *WLAN_HAL_SET_TX_POWER_REQ
5596 *--------------------------------------------------------------------------*/
5597
5598typedef PACKED_PRE struct PACKED_POST
5599{
5600 /* TX Power in milli watts */
5601 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005602 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005603}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5604
5605
5606typedef PACKED_PRE struct PACKED_POST
5607{
5608 tHalMsgHeader header;
5609 tSetTxPwrReqParams setTxPwrReqParams;
5610}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5611
5612/*---------------------------------------------------------------------------
5613*WLAN_HAL_SET_TX_POWER_RSP
5614*--------------------------------------------------------------------------*/
5615
5616typedef PACKED_PRE struct PACKED_POST
5617{
5618 /* success or failure */
5619 tANI_U32 status;
5620}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5621
5622typedef PACKED_PRE struct PACKED_POST
5623{
5624 tHalMsgHeader header;
5625 tSetTxPwrRspParams setTxPwrRspParams;
5626}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5627
5628/*---------------------------------------------------------------------------
5629 *WLAN_HAL_GET_TX_POWER_REQ
5630 *--------------------------------------------------------------------------*/
5631
5632typedef PACKED_PRE struct PACKED_POST
5633{
5634 tANI_U8 staId;
5635}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5636
5637typedef PACKED_PRE struct PACKED_POST
5638{
5639 tHalMsgHeader header;
5640 tGetTxPwrReqParams getTxPwrReqParams;
5641}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5642
5643/*---------------------------------------------------------------------------
5644*WLAN_HAL_GET_TX_POWER_RSP
5645*--------------------------------------------------------------------------*/
5646
5647typedef PACKED_PRE struct PACKED_POST
5648{
5649 /* success or failure */
5650 tANI_U32 status;
5651
5652 /* TX Power in milli watts */
5653 tANI_U32 txPower;
5654}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5655
5656typedef PACKED_PRE struct PACKED_POST
5657{
5658 tHalMsgHeader header;
5659 tGetTxPwrRspParams getTxPwrRspParams;
5660}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5661
5662#ifdef WLAN_FEATURE_P2P
5663/*---------------------------------------------------------------------------
5664 *WLAN_HAL_SET_P2P_GONOA_REQ
5665 *--------------------------------------------------------------------------*/
5666
5667typedef PACKED_PRE struct PACKED_POST
5668{
5669 tANI_U8 opp_ps;
5670 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305671 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005672 tANI_U32 duration;
5673 tANI_U32 interval;
5674 tANI_U32 single_noa_duration;
5675 tANI_U8 psSelection;
5676}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5677
5678
5679typedef PACKED_PRE struct PACKED_POST
5680{
5681 tHalMsgHeader header;
5682 tSetP2PGONOAParams setP2PGONOAParams;
5683}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5684
5685/*---------------------------------------------------------------------------
5686*WLAN_HAL_SET_P2P_GONOA_RSP
5687*--------------------------------------------------------------------------*/
5688
5689typedef PACKED_PRE struct PACKED_POST
5690{
5691 /* success or failure */
5692 tANI_U32 status;
5693}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5694
5695typedef PACKED_PRE struct PACKED_POST
5696{
5697 tHalMsgHeader header;
5698 tSetP2PGONOARspParams setP2PGONOARspParams;
5699}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5700#endif
5701
5702/*---------------------------------------------------------------------------
5703 *WLAN_HAL_ADD_SELF_STA_REQ
5704 *--------------------------------------------------------------------------*/
5705
5706typedef PACKED_PRE struct PACKED_POST
5707{
5708 tSirMacAddr selfMacAddr;
5709 tANI_U32 status;
5710}tAddStaSelfParams, *tpAddStaSelfParams;
5711
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005712typedef PACKED_PRE struct PACKED_POST
5713{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005714 tHalMsgHeader header;
5715 tAddStaSelfParams addStaSelfParams;
5716}tAddStaSelfReq, *tpAddStaSelfReq;
5717
5718/* This V1 structure carries additionally the IFACE PERSONA
5719 of the interface as compared to the legacy control
5720 message */
5721typedef PACKED_PRE struct PACKED_POST
5722{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005723 tSirMacAddr selfMacAddr;
5724 tANI_U32 status;
5725 tHalIfacePersona iface_persona;
5726}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005727
5728typedef PACKED_PRE struct PACKED_POST
5729{
5730 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005731 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005732}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005733
5734/*---------------------------------------------------------------------------
5735*WLAN_HAL_ADD_SELF_STA_RSP
5736*--------------------------------------------------------------------------*/
5737
5738typedef PACKED_PRE struct PACKED_POST
5739{
5740 /* success or failure */
5741 tANI_U32 status;
5742
5743 /*Self STA Index */
5744 tANI_U8 selfStaIdx;
5745
5746 /* DPU Index (IGTK, PTK, GTK all same) */
5747 tANI_U8 dpuIdx;
5748
5749 /* DPU Signature */
5750 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305751
Jeff Johnson295189b2012-06-20 16:38:30 -07005752}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5753
5754typedef PACKED_PRE struct PACKED_POST
5755{
5756 tHalMsgHeader header;
5757 tAddStaSelfRspParams addStaSelfRspParams;
5758}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5759
5760
5761/*---------------------------------------------------------------------------
5762 WLAN_HAL_DEL_STA_SELF_REQ
5763---------------------------------------------------------------------------*/
5764
5765typedef PACKED_PRE struct PACKED_POST
5766{
5767 tSirMacAddr selfMacAddr;
5768
5769}tDelStaSelfParams, *tpDelStaSelfParams;
5770
5771typedef PACKED_PRE struct PACKED_POST
5772{
5773 tHalMsgHeader header;
5774 tDelStaSelfParams delStaSelfParams;
5775} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5776
5777
5778/*---------------------------------------------------------------------------
5779 WLAN_HAL_DEL_STA_SELF_RSP
5780---------------------------------------------------------------------------*/
5781
5782typedef PACKED_PRE struct PACKED_POST
5783{
5784 /*success or failure */
5785 tANI_U32 status;
5786
5787 tSirMacAddr selfMacAddr;
5788}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5789
5790typedef PACKED_PRE struct PACKED_POST
5791{
5792 tHalMsgHeader header;
5793 tDelStaSelfRspParams delStaSelfRspParams;
5794} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5795
5796
5797#ifdef WLAN_FEATURE_VOWIFI_11R
5798
5799/*---------------------------------------------------------------------------
5800 *WLAN_HAL_AGGR_ADD_TS_REQ
5801 *--------------------------------------------------------------------------*/
5802
5803typedef PACKED_PRE struct PACKED_POST
5804{
5805 /* Station Index */
5806 tANI_U16 staIdx;
5807
5808 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5809 /* This will carry the bitmap with the bit positions representing different AC.s*/
5810 tANI_U16 tspecIdx;
5811
5812 /* Tspec info per AC To program TPE with required parameters */
5813 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5814
5815 /* U-APSD Flags: 1b per AC. Encoded as follows:
5816 b7 b6 b5 b4 b3 b2 b1 b0 =
5817 X X X X BE BK VI VO */
5818 tANI_U8 uAPSD;
5819
5820 /* These parameters are for all the access categories */
5821 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5822 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5823 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5824
5825}tAggrAddTsParams, *tpAggrAddTsParams;
5826
5827
5828typedef PACKED_PRE struct PACKED_POST
5829{
5830 tHalMsgHeader header;
5831 tAggrAddTsParams aggrAddTsParam;
5832}tAggrAddTsReq, *tpAggrAddTsReq;
5833
5834/*---------------------------------------------------------------------------
5835*WLAN_HAL_AGGR_ADD_TS_RSP
5836*--------------------------------------------------------------------------*/
5837
5838typedef PACKED_PRE struct PACKED_POST
5839{
5840 /* success or failure */
5841 tANI_U32 status0;
5842 /* FIXME PRIMA for future use for 11R */
5843 tANI_U32 status1;
5844}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5845
5846typedef PACKED_PRE struct PACKED_POST
5847{
5848 tHalMsgHeader header;
5849 tAggrAddTsRspParams aggrAddTsRspParam;
5850}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5851
5852#endif
5853
5854/*---------------------------------------------------------------------------
5855 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5856 *--------------------------------------------------------------------------*/
5857typedef PACKED_PRE struct PACKED_POST
5858{
5859 tANI_U8 isAppsCpuAwake;
5860} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5861
5862typedef PACKED_PRE struct PACKED_POST
5863{
5864 tHalMsgHeader header;
5865 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5866} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5867
5868/*---------------------------------------------------------------------------
5869 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5870 *--------------------------------------------------------------------------*/
5871typedef PACKED_PRE struct PACKED_POST
5872{
5873 /* success or failure */
5874 tANI_U32 status;
5875} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5876
5877typedef PACKED_PRE struct PACKED_POST
5878{
5879 tHalMsgHeader header;
5880 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5881} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5882/*---------------------------------------------------------------------------
5883 * WLAN_HAL_DUMP_COMMAND_REQ
5884 *--------------------------------------------------------------------------*/
5885
5886typedef PACKED_PRE struct PACKED_POST
5887{
5888 tANI_U32 argument1;
5889 tANI_U32 argument2;
5890 tANI_U32 argument3;
5891 tANI_U32 argument4;
5892 tANI_U32 argument5;
5893
5894}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5895
5896typedef PACKED_PRE struct PACKED_POST
5897{
5898 tHalMsgHeader header;
5899 tHalDumpCmdReqParams dumpCmdReqParams;
5900} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5901
5902/*---------------------------------------------------------------------------
5903 * WLAN_HAL_DUMP_COMMAND_RSP
5904 *--------------------------------------------------------------------------*/
5905
5906typedef PACKED_PRE struct PACKED_POST
5907{
5908 /* success or failure */
5909 tANI_U32 status;
5910 /*Length of the responce message*/
5911 tANI_U32 rspLength;
5912 /*FiXME: Currently considering the the responce will be less than 100bytes */
5913 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305914
Jeff Johnson295189b2012-06-20 16:38:30 -07005915} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5916
5917typedef PACKED_PRE struct PACKED_POST
5918{
5919 tHalMsgHeader header;
5920 tHalDumpCmdRspParams dumpCmdRspParams;
5921} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5922
5923/*---------------------------------------------------------------------------
5924 *WLAN_HAL_COEX_IND
5925 *-------------------------------------------------------------------------*/
5926#define WLAN_COEX_IND_DATA_SIZE (4)
5927#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5928#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005929#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5930#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005931#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5932#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305933#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5934#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305935#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Abhishek Singh1bb2bc22017-01-02 10:38:38 +05305936#define WLAN_COEX_IND_TYPE_HID_CONNECTED_WLAN_CONNECTED_IN_2p4 (9)
5937#define WLAN_COEX_IND_TYPE_HID_DISCONNECTED_WLAN_CONNECTED_IN_2p4 (10)
Jeff Johnson295189b2012-06-20 16:38:30 -07005938
5939typedef PACKED_PRE struct PACKED_POST
5940{
5941 /*Coex Indication Type*/
5942 tANI_U32 coexIndType;
5943
5944 /*Coex Indication Data*/
5945 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5946}tCoexIndParams,*tpCoexIndParams;
5947
5948typedef PACKED_PRE struct PACKED_POST
5949{
5950 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305951 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005952}tCoexIndMsg, *tpCoexIndMsg;
5953
5954/*---------------------------------------------------------------------------
5955 *WLAN_HAL_OTA_TX_COMPL_IND
5956 *-------------------------------------------------------------------------*/
5957
5958typedef PACKED_PRE struct PACKED_POST
5959{
5960 /*Tx Complete Indication Success or Failure*/
5961 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305962 /* Dialog token */
5963 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005964}tTxComplParams,*tpTxComplParams;
5965
5966typedef PACKED_PRE struct PACKED_POST
5967{
5968 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305969 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005970}tTxComplIndMsg, *tpTxComplIndMsg;
5971
5972/*---------------------------------------------------------------------------
5973 * WLAN_HAL_HOST_SUSPEND_IND
5974 *-------------------------------------------------------------------------*/
5975
5976typedef PACKED_PRE struct PACKED_POST
5977{
5978 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305979 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005980}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5981
5982typedef PACKED_PRE struct PACKED_POST
5983{
5984 tHalMsgHeader header;
5985 tHalWlanHostSuspendIndParam suspendIndParams;
5986}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5987
5988/*---------------------------------------------------------------------------
5989 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5990 *-------------------------------------------------------------------------*/
5991
5992typedef PACKED_PRE struct PACKED_POST
5993{
5994 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305995 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005996}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5997
5998typedef PACKED_PRE struct PACKED_POST
5999{
6000 tHalMsgHeader header;
6001 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
6002}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
6003
6004#ifdef WLAN_FEATURE_P2P
6005/*---------------------------------------------------------------------------
6006 *WLAN_HAL_NOA_ATTR_IND
6007 *-------------------------------------------------------------------------*/
6008
6009typedef PACKED_PRE struct PACKED_POST
6010{
6011 tANI_U8 index ;
6012 tANI_U8 oppPsFlag ;
6013 tANI_U16 ctWin ;
6014
6015 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08006016 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006017 tANI_U32 uNoa1Duration;
6018 tANI_U32 uNoa1Interval;
6019 tANI_U32 uNoa1StartTime;
6020
6021 tANI_U16 uNoa2IntervalCnt;
6022 tANI_U16 rsvd2;
6023 tANI_U32 uNoa2Duration;
6024 tANI_U32 uNoa2Interval;
6025 tANI_U32 uNoa2StartTime;
6026
6027 tANI_U32 status;
6028}tNoaAttrIndParams, *tpNoaAttrIndParams;
6029
6030typedef PACKED_PRE struct PACKED_POST
6031{
6032 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05306033 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006034}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08006035
6036/*---------------------------------------------------------------------------
6037 *WLAN_HAL_NOA_START_IND
6038 *-------------------------------------------------------------------------*/
6039
6040typedef PACKED_PRE struct PACKED_POST
6041{
6042 tANI_U32 status;
6043 tANI_U32 bssIdx;
6044}tNoaStartIndParams, *tpNoaStartIndParams;
6045
6046typedef PACKED_PRE struct PACKED_POST
6047{
6048 tHalMsgHeader header;
6049 tNoaStartIndParams noaStartIndParams;
6050}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07006051#endif
6052
6053/*---------------------------------------------------------------------------
6054 * WLAN_HAL_HOST_RESUME_REQ
6055 *-------------------------------------------------------------------------*/
6056
6057typedef PACKED_PRE struct PACKED_POST
6058{
6059 tANI_U8 configuredMcstBcstFilterSetting;
6060}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
6061
6062typedef PACKED_PRE struct PACKED_POST
6063{
6064 tHalMsgHeader header;
6065 tHalWlanHostResumeReqParam resumeReqParams;
6066}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
6067
6068/*---------------------------------------------------------------------------
6069 * WLAN_HAL_HOST_RESUME_RSP
6070 *--------------------------------------------------------------------------*/
6071typedef PACKED_PRE struct PACKED_POST
6072{
6073 /* success or failure */
6074 tANI_U32 status;
6075} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
6076
6077typedef PACKED_PRE struct PACKED_POST
6078{
6079 tHalMsgHeader header;
6080 tHalHostResumeRspParams hostResumeRspParams;
6081} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
6082
Anand Kumar012623a2013-01-11 17:00:00 -08006083typedef PACKED_PRE struct PACKED_POST
6084{
6085 tANI_U16 staIdx;
6086 // Peer MAC Address, whose BA session has timed out
6087 tSirMacAddr peerMacAddr;
6088 // TID for which a BA session timeout is being triggered
6089 tANI_U8 baTID;
6090 // DELBA direction
6091 // 1 - Originator
6092 // 0 - Recipient
6093 tANI_U8 baDirection;
6094 tANI_U32 reasonCode;
6095 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6096} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6097
6098typedef PACKED_PRE struct PACKED_POST
6099{
6100 tHalMsgHeader header;
6101 tHalWlanDelBaIndMsg hostdelBaParam;
6102} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6103
Jeff Johnson295189b2012-06-20 16:38:30 -07006104/*---------------------------------------------------------------------------
6105 *PNO Messages
6106 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006107/* Max number of channels that a network can be found on*/
6108/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6109 * be changed at same time
6110 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006111#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006112
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306113/*Max number of channels that a network can be found on*/
6114#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6115
Jeff Johnson295189b2012-06-20 16:38:30 -07006116/*Maximum numbers of networks supported by PNO*/
6117#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6118
6119/*The number of scan time intervals that can be programmed into PNO*/
6120#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6121
6122/*Maximum size of the probe template*/
6123#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6124
Dino Mycle8afbac12014-07-04 22:06:17 +05306125/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006126 Immediate - scanning will start immediately and PNO procedure will
6127 be repeated based on timer
6128 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006129 Resume - scanning will start on system resume
6130 Delay - start the scan timer to trigger PNO scan
6131 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006132typedef enum
6133{
6134 ePNO_MODE_IMMEDIATE,
6135 ePNO_MODE_ON_SUSPEND,
6136 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306137 ePNO_MODE_DELAY,
6138 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006139 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6140} ePNOMode;
6141
6142/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306143typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006144{
Dino Mycle8afbac12014-07-04 22:06:17 +05306145 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006146 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306147
Jeff Johnson295189b2012-06-20 16:38:30 -07006148 // Upper layer authentication types
6149 eAUTH_TYPE_WPA = 2,
6150 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306151
Jeff Johnson295189b2012-06-20 16:38:30 -07006152 eAUTH_TYPE_RSN = 4,
6153 eAUTH_TYPE_RSN_PSK = 5,
6154 eAUTH_TYPE_FT_RSN = 6,
6155 eAUTH_TYPE_FT_RSN_PSK = 7,
6156 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6157 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006158 eAUTH_TYPE_CCKM_WPA = 10,
6159 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306160 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6161 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306162
Jeff Johnson295189b2012-06-20 16:38:30 -07006163 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6164
6165}tAuthType;
6166
6167/* Encryption type */
6168typedef enum eEdType
6169{
6170 eED_ANY = 0,
6171 eED_NONE = 1,
6172 eED_WEP = 2,
6173 eED_TKIP = 3,
6174 eED_CCMP = 4,
6175 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306176
Jeff Johnson295189b2012-06-20 16:38:30 -07006177 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6178} tEdType;
6179
6180/* SSID broadcast type */
6181typedef enum eSSIDBcastType
6182{
6183 eBCAST_UNKNOWN = 0,
6184 eBCAST_NORMAL = 1,
6185 eBCAST_HIDDEN = 2,
6186
6187 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6188} tSSIDBcastType;
6189
Dino Mycle8afbac12014-07-04 22:06:17 +05306190/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006191 The network description for which PNO will have to look for
6192*/
6193typedef PACKED_PRE struct PACKED_POST
6194{
6195 /*SSID of the BSS*/
6196 tSirMacSSid ssId;
6197
6198 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306199 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006200
6201 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306202 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006203
Dino Mycle8afbac12014-07-04 22:06:17 +05306204 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006205 0 - if all channels */
6206 tANI_U8 ucChannelCount;
6207 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6208
6209 /*Indicates the RSSI threshold for the network to be considered*/
6210 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306211}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006212
6213typedef PACKED_PRE struct PACKED_POST
6214{
6215 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306216 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006217
Dino Mycle8afbac12014-07-04 22:06:17 +05306218 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006219 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306220 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006221
Dino Mycle8afbac12014-07-04 22:06:17 +05306222 /*e.g: 2 3
6223 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006224 - it will wait 2s between consecutive scans for 3 times
6225 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306226}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006227
Dino Mycle8afbac12014-07-04 22:06:17 +05306228/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006229 The network parameters to be sent to the PNO algorithm
6230*/
6231typedef PACKED_PRE struct PACKED_POST
6232{
6233 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306234 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006235
Dino Mycle8afbac12014-07-04 22:06:17 +05306236 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006237 two consecutive scan procedures
6238 If the desired is for a uniform timer that fires always at the exact same
6239 interval - one single value is to be set
6240 If there is a desire for a more complex - telescopic like timer multiple
6241 values can be set - once PNO reaches the end of the array it will
6242 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306243 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006244
6245}tScanTimersType;
6246
6247typedef PACKED_PRE struct PACKED_POST {
6248
6249 /*Enable PNO*/
6250 tANI_U32 enable;
6251
6252 /*Immediate, On Suspend, On Resume*/
6253 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306254
Jeff Johnson295189b2012-06-20 16:38:30 -07006255 /*Number of networks sent for PNO*/
6256 tANI_U32 ucNetworksCount;
6257
6258 /*The networks that PNO needs to look for*/
6259 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6260
6261 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306262 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006263
6264 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306265 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006266 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6267
6268 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306269 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006270 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6271
6272} tPrefNetwListParams, * tpPrefNetwListParams;
6273
6274/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306275 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006276*/
6277typedef PACKED_PRE struct PACKED_POST
6278{
6279 tHalMsgHeader header;
6280 tPrefNetwListParams prefNetwListParams;
6281} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6282
6283
Dino Mycle8afbac12014-07-04 22:06:17 +05306284/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006285 The network description for which PNO will have to look for
6286*/
6287typedef PACKED_PRE struct PACKED_POST
6288{
6289 /*SSID of the BSS*/
6290 tSirMacSSid ssId;
6291
6292 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306293 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006294
6295 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306296 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006297
6298 /*SSID broadcast type, normal, hidden or unknown*/
6299 tSSIDBcastType bcastNetworkType;
6300
Dino Mycle8afbac12014-07-04 22:06:17 +05306301 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006302 0 - if all channels */
6303 tANI_U8 ucChannelCount;
6304 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6305
6306 /*Indicates the RSSI threshold for the network to be considered*/
6307 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306308}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006309
6310typedef PACKED_PRE struct PACKED_POST {
6311
6312 /*Enable PNO*/
6313 tANI_U32 enable;
6314
6315 /*Immediate, On Suspend, On Resume*/
6316 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306317
Jeff Johnson295189b2012-06-20 16:38:30 -07006318 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306319 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006320
6321 /*The networks that PNO needs to look for*/
6322 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6323
6324 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306325 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006326
6327 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306328 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006329 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6330
6331 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306332 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006333 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6334
6335} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6336
6337/*
6338 Preferred network list request new
6339*/
6340typedef PACKED_PRE struct PACKED_POST
6341{
6342 tHalMsgHeader header;
6343 tPrefNetwListParamsNew prefNetwListParams;
6344} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6345
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006346#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6347typedef PACKED_PRE struct PACKED_POST
6348{
6349 tSirMacSSid ssId;
6350 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6351 tANI_U32 authentication;
6352 tEdType encryption;
6353 tEdType mcencryption;
6354 tANI_U8 ChannelCount;
6355 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6356}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006357
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006358typedef PACKED_PRE struct PACKED_POST
6359{
6360 tANI_U8 mdiePresent;
6361 tANI_U16 mobilityDomain;
6362}tMobilityDomainInfo;
6363
6364typedef PACKED_PRE struct PACKED_POST {
6365 eAniBoolean RoamScanOffloadEnabled;
6366 tANI_S8 LookupThreshold;
6367 tANI_U8 RoamRssiDiff;
6368 tANI_U8 ChannelCacheType;
6369 tANI_U8 Command;
6370 tANI_U8 StartScanReason;
6371 tANI_U16 NeighborScanTimerPeriod;
6372 tANI_U16 NeighborRoamScanRefreshPeriod;
6373 tANI_U16 NeighborScanChannelMinTime;
6374 tANI_U16 NeighborScanChannelMaxTime;
6375 tANI_U16 EmptyRefreshScanPeriod;
6376 tANI_U8 ValidChannelCount;
6377 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006378 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006379
6380 tANI_U16 us24GProbeSize;
6381 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6382 tANI_U16 us5GProbeSize;
6383 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6384 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006385 tANI_U8 nProbes;
6386 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006387 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006388 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006389 tANI_U8 RoamOffloadEnabled;
6390 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6391 tANI_U8 Prefer5GHz;
6392 tANI_U8 RoamRssiCatGap;
6393 tANI_U8 Select5GHzMargin;
Sreelakshmi Konamki24ebdca2017-05-29 15:48:36 +05306394 tANI_U8 WeakZoneRssiThresholdForRoam;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006395 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6396 tRoamNetworkType ConnectedNetwork;
6397 tMobilityDomainInfo MDID;
6398} tRoamCandidateListParams, * tpRoamCandidateListParams;
6399
6400typedef PACKED_PRE struct PACKED_POST
6401{
Kumar Anandea78e792013-10-10 23:47:01 -07006402 tHalMsgHeader header;
6403 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006404} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6405
6406typedef PACKED_PRE struct PACKED_POST
6407{
Kumar Anandea78e792013-10-10 23:47:01 -07006408 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006409
Kumar Anandea78e792013-10-10 23:47:01 -07006410 /* status of the request - just to indicate that PNO has acknowledged
6411 * the request and will start scanning */
6412 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006413} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6414#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006415
6416/*
6417 Preferred network list response
6418*/
6419typedef PACKED_PRE struct PACKED_POST
6420{
6421 tHalMsgHeader header;
6422
6423 /* status of the request - just to indicate that PNO has acknowledged
6424 * the request and will start scanning*/
6425 tANI_U32 status;
6426} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6427
6428/*
6429 Preferred network indication parameters
6430*/
6431typedef PACKED_PRE struct PACKED_POST {
6432
6433 /*Network that was found with the highest RSSI*/
6434 tSirMacSSid ssId;
6435
6436 /*Indicates the RSSI */
6437 tANI_U8 rssi;
6438
6439 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6440 tANI_U16 frameLength;
6441
6442} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6443
6444/*
6445 Preferred network found indication
6446*/
6447typedef PACKED_PRE struct PACKED_POST {
6448
6449 tHalMsgHeader header;
6450 tPrefNetwFoundParams prefNetwFoundParams;
6451} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6452
6453
6454typedef PACKED_PRE struct PACKED_POST {
6455
6456 /*RSSI Threshold*/
6457 tANI_U8 ucRssiThreshold;
6458
6459} tRssiFilterParams, * tpRssiFilterParams;
6460
Jeff Johnson295189b2012-06-20 16:38:30 -07006461/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306462 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006463*/
6464typedef PACKED_PRE struct PACKED_POST
6465{
6466 tHalMsgHeader header;
6467 tRssiFilterParams prefRSSIFilterParams;
6468} tSetRssiFilterReq, *tpSetRssiFilterReq;
6469
6470/*
6471 Set RSSI filter resp
6472*/
6473typedef PACKED_PRE struct PACKED_POST{
6474 tHalMsgHeader header;
6475 /*status of the request */
6476 tANI_U32 status;
6477} tSetRssiFilterResp, *tpSetRssiFilterResp;
6478/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306479 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006480*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306481typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006482{
6483
6484 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306485 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006486
6487 /*Lets PNO know that host has determined the regulatory domain*/
6488 tANI_U8 b11dResolved;
6489
6490 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306491 tANI_U8 ucChannelCount;
6492 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006493
6494 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306495 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006496
6497 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306498 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006499
6500 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306501 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006502
6503 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306504 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006505
6506 /*Cb State*/
6507 ePhyChanBondState cbState;
6508
6509} tUpdateScanParams, * tpUpdateScanParams;
6510
6511/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306512 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306513*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306514typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306515{
6516
6517 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306518 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306519
6520 /*Lets PNO know that host has determined the regulatory domain*/
6521 tANI_U8 b11dResolved;
6522
6523 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306524 tANI_U8 ucChannelCount;
6525 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306526
6527 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306528 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306529
6530 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306531 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306532
6533 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306534 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306535
6536 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306537 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306538
6539 /*Cb State*/
6540 ePhyChanBondState cbState;
6541
6542} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6543
6544/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006545 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306546 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006547*/
6548typedef PACKED_PRE struct PACKED_POST{
6549
6550 tHalMsgHeader header;
6551 tUpdateScanParams scanParams;
6552} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6553
6554/*
6555 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306556 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006557*/
6558typedef PACKED_PRE struct PACKED_POST{
6559
6560 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306561 tUpdateScanParamsEx scanParams;
6562} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6563
6564/*
6565 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306566 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306567*/
6568typedef PACKED_PRE struct PACKED_POST{
6569
6570 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006571
6572 /*status of the request */
6573 tANI_U32 status;
6574
6575} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6576
6577/*---------------------------------------------------------------------------
6578 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6579 *--------------------------------------------------------------------------*/
6580typedef PACKED_PRE struct PACKED_POST
6581{
6582 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6583 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6584 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6585 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6586} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6587
6588typedef PACKED_PRE struct PACKED_POST
6589{
6590 tHalMsgHeader header;
6591 tHalTxPerTrackingReqParam txPerTrackingParams;
6592} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6593
6594/*---------------------------------------------------------------------------
6595 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6596 *--------------------------------------------------------------------------*/
6597typedef PACKED_PRE struct PACKED_POST
6598{
6599 /* success or failure */
6600 tANI_U32 status;
6601} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6602
6603typedef PACKED_PRE struct PACKED_POST
6604{
6605 tHalMsgHeader header;
6606 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6607} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6608
6609/*---------------------------------------------------------------------------
6610 * WLAN_HAL_TX_PER_HIT_IND
6611 *--------------------------------------------------------------------------*/
6612typedef PACKED_PRE struct PACKED_POST
6613{
6614 tHalMsgHeader header;
6615}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6616
6617/*---------------------------------------------------------------------------
6618 *******************Packet Filtering Definitions Begin*******************
6619 *--------------------------------------------------------------------------*/
6620#define HAL_PROTOCOL_DATA_LEN 8
6621#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6622#define HAL_MAX_NUM_FILTERS 20
6623#define HAL_MAX_CMP_PER_FILTER 10
6624
6625typedef enum
6626{
6627 HAL_RCV_FILTER_TYPE_INVALID,
6628 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6629 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6630 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6631}tHalReceivePacketFilterType;
6632
Dino Mycle8afbac12014-07-04 22:06:17 +05306633typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006634{
6635 HAL_FILTER_PROTO_TYPE_INVALID,
6636 HAL_FILTER_PROTO_TYPE_MAC,
6637 HAL_FILTER_PROTO_TYPE_ARP,
6638 HAL_FILTER_PROTO_TYPE_IPV4,
6639 HAL_FILTER_PROTO_TYPE_IPV6,
6640 HAL_FILTER_PROTO_TYPE_UDP,
6641 HAL_FILTER_PROTO_TYPE_MAX
6642}tHalRcvPktFltProtocolType;
6643
Dino Mycle8afbac12014-07-04 22:06:17 +05306644typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006645{
6646 HAL_FILTER_CMP_TYPE_INVALID,
6647 HAL_FILTER_CMP_TYPE_EQUAL,
6648 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6649 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6650 HAL_FILTER_CMP_TYPE_MAX
6651}tHalRcvPktFltCmpFlagType;
6652
Dino Mycle8afbac12014-07-04 22:06:17 +05306653typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006654{
6655 tANI_U8 protocolLayer;
6656 tANI_U8 cmpFlag;
6657 tANI_U16 dataLength; /* Length of the data to compare */
6658 tANI_U8 dataOffset; /* from start of the respective frame header */
6659 tANI_U8 reserved; /* Reserved field */
6660 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6661 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6662}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6663
6664typedef PACKED_PRE struct PACKED_POST
6665{
6666 tANI_U8 filterId;
6667 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306668 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006669 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006670 tHalRcvPktFilterParams paramsData[1];
6671}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6672
6673typedef PACKED_PRE struct PACKED_POST
6674{
Jeff Johnsone7245742012-09-05 17:12:55 -07006675 tANI_U8 filterId;
6676 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306677 tANI_U8 numParams;
6678 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006679 tANI_U8 bssIdx;
6680 tHalRcvPktFilterParams paramsData[1];
6681}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6682
6683typedef PACKED_PRE struct PACKED_POST
6684{
Jeff Johnson295189b2012-06-20 16:38:30 -07006685 tHalMsgHeader header;
6686 tHalRcvPktFilterCfgType pktFilterCfg;
6687} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6688
Jeff Johnsone7245742012-09-05 17:12:55 -07006689typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006690{
6691 tANI_U8 dataOffset; /* from start of the respective frame header */
6692 tANI_U32 cMulticastAddr;
6693 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006694 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006695} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6696
6697typedef PACKED_PRE struct PACKED_POST
6698{
6699 /* success or failure */
6700 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006701 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006702} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6703
6704typedef PACKED_PRE struct PACKED_POST
6705{
6706 tHalMsgHeader header;
6707 tHalSetPktFilterRspParams pktFilterRspParams;
6708} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6709
Jeff Johnsone7245742012-09-05 17:12:55 -07006710typedef PACKED_PRE struct PACKED_POST
6711{
6712 tANI_U8 bssIdx;
6713} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006714
6715typedef PACKED_PRE struct PACKED_POST
6716{
6717 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006718 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006719} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6720
Jeff Johnsone7245742012-09-05 17:12:55 -07006721
Jeff Johnson295189b2012-06-20 16:38:30 -07006722typedef PACKED_PRE struct PACKED_POST
6723{
6724 tANI_U8 filterId;
6725 tANI_U32 matchCnt;
6726} tHalRcvFltPktMatchCnt;
6727typedef PACKED_PRE struct PACKED_POST
6728{
6729 /* Success or Failure */
6730 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306731 tANI_U32 matchCnt;
6732 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006733 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006734} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6735
6736typedef PACKED_PRE struct PACKED_POST
6737{
6738 tHalMsgHeader header;
6739 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6740} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6741
6742typedef PACKED_PRE struct PACKED_POST
6743{
6744 tANI_U32 status; /* only valid for response message */
6745 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006746 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006747}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6748
6749typedef PACKED_PRE struct PACKED_POST
6750{
6751 tHalMsgHeader header;
6752 tHalRcvFltPktClearParam filterClearParam;
6753} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6754
6755typedef PACKED_PRE struct PACKED_POST
6756{
6757 tHalMsgHeader header;
6758 tHalRcvFltPktClearParam filterClearParam;
6759} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6760
6761typedef PACKED_PRE struct PACKED_POST
6762{
Dino Mycle8afbac12014-07-04 22:06:17 +05306763 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006764 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006765}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6766
6767typedef PACKED_PRE struct PACKED_POST
6768{
6769 tHalMsgHeader header;
6770 tHalRcvFltMcAddrListType mcAddrList;
6771} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6772
6773typedef PACKED_PRE struct PACKED_POST
6774{
6775 tHalMsgHeader header;
6776 tHalRcvFltPktSetMcListRspType rspParam;
6777} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6778
6779
6780/*---------------------------------------------------------------------------
6781 *******************Packet Filtering Definitions End*******************
6782 *--------------------------------------------------------------------------*/
6783
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006784/*
6785 * There are two versions of this message
6786 * Version 1 : Base version
6787 * Current version : Base version + Max LI modulated DTIM
6788 */
6789typedef PACKED_PRE struct PACKED_POST
6790{
6791 /* Ignore DTIM */
6792 tANI_U32 uIgnoreDTIM;
6793
6794 /*DTIM Period*/
6795 tANI_U32 uDTIMPeriod;
6796
6797 /* Listen Interval */
6798 tANI_U32 uListenInterval;
6799
6800 /* Broadcast Multicast Filter */
6801 tANI_U32 uBcastMcastFilter;
6802
6803 /* Beacon Early Termination */
6804 tANI_U32 uEnableBET;
6805
6806 /* Beacon Early Termination Interval */
6807 tANI_U32 uBETInterval;
6808}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6809
6810typedef PACKED_PRE struct PACKED_POST
6811{
6812 tHalMsgHeader header;
6813 tSetPowerParamsVer1Type powerParams;
6814} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6815
Jeff Johnson295189b2012-06-20 16:38:30 -07006816typedef PACKED_PRE struct PACKED_POST
6817{
6818 /* Ignore DTIM */
6819 tANI_U32 uIgnoreDTIM;
6820
6821 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306822 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006823
6824 /* Listen Interval */
6825 tANI_U32 uListenInterval;
6826
6827 /* Broadcast Multicast Filter */
6828 tANI_U32 uBcastMcastFilter;
6829
6830 /* Beacon Early Termination */
6831 tANI_U32 uEnableBET;
6832
6833 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306834 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006835
6836 /* MAX LI for modulated DTIM */
6837 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006838}tSetPowerParamsType, *tpSetPowerParamsType;
6839
6840typedef PACKED_PRE struct PACKED_POST
6841{
6842 tHalMsgHeader header;
6843 tSetPowerParamsType powerParams;
6844} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6845
6846typedef PACKED_PRE struct PACKED_POST{
6847
6848 tHalMsgHeader header;
6849
6850 /*status of the request */
6851 tANI_U32 status;
6852
6853} tSetPowerParamsResp, *tpSetPowerParamsResp;
6854
6855/*---------------------------------------------------------------------------
6856 ****************Capability bitmap exchange definitions and macros starts*************
6857 *--------------------------------------------------------------------------*/
6858
Anand Kumar012623a2013-01-11 17:00:00 -08006859typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006860 MCC = 0,
6861 P2P = 1,
6862 DOT11AC = 2,
6863 SLM_SESSIONIZATION = 3,
6864 DOT11AC_OPMODE = 4,
6865 SAP32STA = 5,
6866 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006867 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006868 WLANACTIVE_OFFLOAD = 8,
6869 BEACON_OFFLOAD = 9,
6870 SCAN_OFFLOAD = 10,
6871 ROAM_OFFLOAD = 11,
6872 BCN_MISS_OFFLOAD = 12,
6873 STA_POWERSAVE = 13,
6874 STA_ADVANCED_PWRSAVE = 14,
6875 AP_UAPSD = 15,
6876 AP_DFS = 16,
6877 BLOCKACK = 17,
6878 PHY_ERR = 18,
6879 BCN_FILTER = 19,
6880 RTT = 20,
6881 RATECTRL = 21,
6882 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006883 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006884 SPECULATIVE_PS_POLL = 24,
6885 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006886 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006887 WLAN_SCAN_OFFLOAD = 27,
6888 WLAN_PERIODIC_TX_PTRN = 28,
6889 ADVANCE_TDLS = 29,
6890 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306891 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306892 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306893 CH_SWITCH_V1 = 33,
6894 HT40_OBSS_SCAN = 34,
6895 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006896 WLAN_MCADDR_FLT = 36,
6897 WLAN_CH144 = 37,
6898 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306899 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306900 LINK_LAYER_STATS_MEAS = 40,
6901 MU_MIMO = 41,
6902 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306903 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306904 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306905 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306906 DISA = 46,
6907 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306908 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306909 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306910 TDLS_OFF_CHANNEL = 51,
Padma, Santhosh Kumarcfbcf942015-12-08 16:07:47 +05306911 RTT3 = 52,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306912 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306913 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306914 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306915 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306916 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306917 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306918 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306919 WIFI_CONFIG = 61,
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05306920 ANTENNA_DIVERSITY_SELECTION = 62,
Kapil Guptac1043632016-06-25 00:23:30 +05306921 PER_BASED_ROAMING = 63,
Agrawal Ashish1d75aac2016-12-12 12:36:59 +05306922 SAP_MODE_WOW = 64,
6923 SAP_OFFLOADS = 65,
Sravan Kumar Kairam9ba5f5b2016-12-13 13:50:46 +05306924 SAP_BUFF_ALLOC = 66,
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +05306925 MAKE_BEFORE_BREAK = 67,
Anurag Chouhance0f0822017-01-24 15:44:26 +05306926 NUD_DEBUG = 68,
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05306927 /* 69 reserved for FATAL_EVENT_LOGGING */
6928 /* 70 reserved for WIFI_DUAL_BAND_ENABLE */
6929 PROBE_RSP_TEMPLATE_VER1 = 71,
Rajeev Kumar Sirasanagandlaba4d7692017-12-19 13:32:36 +05306930 STA_MONITOR_SCC = 72,
Kumar Anandea78e792013-10-10 23:47:01 -07006931 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006932} placeHolderInCapBitmap;
6933
Jeff Johnson295189b2012-06-20 16:38:30 -07006934typedef PACKED_PRE struct PACKED_POST{
6935
6936 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006937} tWlanFeatCaps, *tpWlanFeatCaps;
6938
6939typedef PACKED_PRE struct PACKED_POST{
6940
Dino Mycle8afbac12014-07-04 22:06:17 +05306941 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006942 tWlanFeatCaps wlanFeatCaps;
6943
6944} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6945
Jeff Johnsone7245742012-09-05 17:12:55 -07006946#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6947#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006948#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006949#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006950#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006951#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006952#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006953#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306954#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306955#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306956#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306957#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306958#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006959
Jeff Johnsone7245742012-09-05 17:12:55 -07006960tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6961
Jeff Johnson295189b2012-06-20 16:38:30 -07006962#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006963 if ((b)<=127) { \
6964 arr_index = (b)/32; \
6965 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006966 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006967 (a)->featCaps[arr_index] |= (1<<bit_index); \
6968 } \
6969 }
6970#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006971 if ((b)<=127) { \
6972 arr_index = (b)/32; \
6973 bit_index = (b)%32; \
6974 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006975 } \
6976 }
6977#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006978 if ((b)<=127) { \
6979 arr_index = (b)/32; \
6980 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006981 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006982 } \
6983 }
6984
6985/*---------------------------------------------------------------------------
6986 * WLAN_HAL_WAKE_REASON_IND
6987 *--------------------------------------------------------------------------*/
6988
6989/* status codes to help debug rekey failures */
6990typedef enum
6991{
6992 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6993 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6994 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6995 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6996 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6997 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6998 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6999 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
7000 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
7001 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
7002
7003 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
7004} tGTKRekeyStatus;
7005
7006/* wake reason types */
7007typedef enum
7008{
7009 WLAN_HAL_WAKE_REASON_NONE = 0,
7010 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
7011 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
7012 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
7013 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
7014 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
7015 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
7016 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
7017} tWakeReasonType;
7018
7019/*
7020 Wake Packet which is saved at tWakeReasonParams.DataStart
7021 This data is sent for any wake reasons that involve a packet-based wakeup :
7022
7023 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
7024 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
7025 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
7026 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
7027 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
7028
7029 The information is provided to the host for auditing and debug purposes
7030
7031*/
7032
7033/*
7034 Wake reason indication parameters
7035*/
7036typedef PACKED_PRE struct PACKED_POST
7037{
7038 uint32 ulReason; /* see tWakeReasonType */
7039 uint32 ulReasonArg; /* argument specific to the reason type */
7040 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
7041 HAL truncates the data (i.e. data packets) this length
7042 will be less than the actual length */
7043 uint32 ulActualDataLen; /* actual length of data */
7044 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
7045 see specific wake type */
7046} tWakeReasonParams, *tpWakeReasonParams;
7047
7048/*
7049 Wake reason indication
7050*/
7051typedef PACKED_PRE struct PACKED_POST
7052{
7053 tHalMsgHeader header;
7054 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07007055 tANI_U32 uBssIdx : 8;
7056 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07007057} tHalWakeReasonInd, *tpHalWakeReasonInd;
7058
7059/*---------------------------------------------------------------------------
7060* WLAN_HAL_GTK_OFFLOAD_REQ
7061*--------------------------------------------------------------------------*/
7062
7063#define HAL_GTK_KEK_BYTES 16
7064#define HAL_GTK_KCK_BYTES 16
7065
7066#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
7067
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007068#define GTK_SET_BSS_KEY_TAG 0x1234AA55
7069
Jeff Johnson295189b2012-06-20 16:38:30 -07007070typedef PACKED_PRE struct PACKED_POST
7071{
7072 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05307073 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07007074 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
7075 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07007076 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007077} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
7078
7079typedef PACKED_PRE struct PACKED_POST
7080{
7081 tHalMsgHeader header;
7082 tHalGtkOffloadReqParams gtkOffloadReqParams;
7083} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
7084
7085/*---------------------------------------------------------------------------
7086* WLAN_HAL_GTK_OFFLOAD_RSP
7087*--------------------------------------------------------------------------*/
7088typedef PACKED_PRE struct PACKED_POST
7089{
7090 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07007091 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007092} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
7093
7094typedef PACKED_PRE struct PACKED_POST
7095{
7096 tHalMsgHeader header;
7097 tHalGtkOffloadRspParams gtkOffloadRspParams;
7098} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
7099
7100
7101/*---------------------------------------------------------------------------
7102* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
7103*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07007104typedef PACKED_PRE struct PACKED_POST
7105{
7106 tANI_U8 bssIdx;
7107
7108} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007109
7110typedef PACKED_PRE struct PACKED_POST
7111{
7112 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007113 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007114} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7115
7116/*---------------------------------------------------------------------------
7117* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7118*--------------------------------------------------------------------------*/
7119typedef PACKED_PRE struct PACKED_POST
7120{
7121 tANI_U32 ulStatus; /* success or failure */
7122 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7123 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7124 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7125 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7126 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007127 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007128} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7129
7130typedef PACKED_PRE struct PACKED_POST
7131{
7132 tHalMsgHeader header;
7133 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7134} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7135
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007136/*---------------------------------------------------------------------------
7137* WLAN_HAL_DHCP_IND
7138*--------------------------------------------------------------------------*/
7139typedef PACKED_PRE struct PACKED_POST
7140{
7141 /*Indicates the device mode which indicates about the DHCP activity */
7142 tANI_U8 device_mode;
7143 tSirMacAddr macAddr;
7144} tDHCPInfo, *tpDHCPInfo;
7145
7146typedef PACKED_PRE struct PACKED_POST
7147{
7148 tHalMsgHeader header;
7149 tANI_U32 status; /* success or failure */
7150} tDHCPIndStatus, *tpDHCPIndstatus;
7151
Jeff Johnson295189b2012-06-20 16:38:30 -07007152/*
7153 Thermal Mitigation mode of operation.
7154 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7155 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7156 reducing transmit power
7157 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7158*/
7159typedef enum
7160{
7161 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7162 HAL_THERMAL_MITIGATION_MODE_0,
7163 HAL_THERMAL_MITIGATION_MODE_1,
7164 HAL_THERMAL_MITIGATION_MODE_2,
7165 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7166}tHalThermalMitigationModeType;
7167//typedef tANI_S16 tHalThermalMitigationModeType;
7168
7169/*
7170 Thermal Mitigation level.
7171 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7172 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7173
7174 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7175 level indicates normal mode of operation
7176 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7177 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7178 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7179 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7180*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307181typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007182{
7183 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7184 HAL_THERMAL_MITIGATION_LEVEL_0,
7185 HAL_THERMAL_MITIGATION_LEVEL_1,
7186 HAL_THERMAL_MITIGATION_LEVEL_2,
7187 HAL_THERMAL_MITIGATION_LEVEL_3,
7188 HAL_THERMAL_MITIGATION_LEVEL_4,
7189 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7190}tHalThermalMitigationLevelType;
7191//typedef tANI_S16 tHalThermalMitigationLevelType;
7192
7193typedef PACKED_PRE struct PACKED_POST
7194{
7195 /* Thermal Mitigation Operation Mode */
7196 tHalThermalMitigationModeType thermalMitMode;
7197
7198 /* Thermal Mitigation Level */
7199 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307200
Jeff Johnson295189b2012-06-20 16:38:30 -07007201}tSetThermalMitgationType, *tpSetThermalMitgationType;
7202
7203/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7204typedef PACKED_PRE struct PACKED_POST
7205{
7206 tHalMsgHeader header;
7207 tSetThermalMitgationType thermalMitParams;
7208} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7209
7210typedef PACKED_PRE struct PACKED_POST{
7211
7212 tHalMsgHeader header;
7213
7214 /*status of the request */
7215 tANI_U32 status;
7216
7217} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7218
Dino Mycle8afbac12014-07-04 22:06:17 +05307219/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007220provided to FW from Host via periodic messages */
7221typedef PACKED_PRE struct PACKED_POST {
7222 /* TX stats */
7223 uint32 txBytesPushed;
7224 uint32 txPacketsPushed;
7225
7226 /* RX stats */
7227 uint32 rxBytesRcvd;
7228 uint32 rxPacketsRcvd;
7229 uint32 rxTimeTotal;
7230} tStaStatsClassB, *tpStaStatsClassB;
7231
7232typedef PACKED_PRE struct PACKED_POST {
7233
7234 /* Duration over which this stats was collected */
7235 tANI_U32 duration;
7236
7237 /* Per STA Stats */
7238 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7239} tStatsClassBIndParams, *tpStatsClassBIndParams;
7240
7241typedef PACKED_PRE struct PACKED_POST {
7242
7243 tHalMsgHeader header;
7244
7245 /* Class B Stats */
7246 tStatsClassBIndParams statsClassBIndParams;
7247} tStatsClassBInd, *tpStatsClassBInd;
7248
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307249/*Wifi Proximity paramters in AP mode*/
7250#ifdef FEATURE_WIFI_PROXIMITY
7251
7252typedef PACKED_PRE struct PACKED_POST{
7253
7254 tANI_U8 wifiProximityChannel;
7255 tANI_U32 wifiProximityDuration;
7256 tANI_U32 wifiProximityInterval;
7257 tANI_U32 wifiProximityMode;
7258 tANI_U32 wifiProximityStatus;
7259 tSirMacAddr bssId;
7260 tSirMacSSid ssId;
7261
7262} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7263
7264typedef PACKED_PRE struct PACKED_POST
7265{
7266 tHalMsgHeader header;
7267
7268 tSetWifiProximityReqParam wifiProximityReqParams;
7269
7270}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7271
7272/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7273typedef PACKED_PRE struct PACKED_POST{
7274
7275 tHalMsgHeader header;
7276
7277 /*status of the request */
7278 tANI_U32 status;
7279
7280} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7281
7282#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007283
7284#ifdef FEATURE_SPECULATIVE_PS_POLL
7285/*---------------------------------------------------------------------------
7286 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7287 *--------------------------------------------------------------------------*/
7288typedef PACKED_PRE struct PACKED_POST
7289{
7290 tANI_U8 bssIdx;
7291 tANI_U16 serviceInterval;
7292 tANI_U16 suspendInterval;
7293 tANI_U8 acMask;
7294} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7295
7296typedef PACKED_PRE struct PACKED_POST
7297{
7298 tHalMsgHeader header;
7299 tHalStartSpecPsPollReqParams specPsPollReq;
7300} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7301
7302/*---------------------------------------------------------------------------
7303 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7304 *--------------------------------------------------------------------------*/
7305typedef PACKED_PRE struct PACKED_POST
7306{
7307 /* success or failure */
7308 tANI_U32 status;
7309 tANI_U8 bssIdx;
7310} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7311
7312typedef PACKED_PRE struct PACKED_POST
7313{
7314 tHalMsgHeader header;
7315 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7316} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7317
7318/*---------------------------------------------------------------------------
7319 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7320 *--------------------------------------------------------------------------*/
7321typedef PACKED_PRE struct PACKED_POST
7322{
7323 tHalMsgHeader header;
7324 tANI_U8 bssIdx;
7325} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7326#endif
7327
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307328#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307329#define HAL_MAX_SUPP_CHANNELS 128
7330#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307331/*---------------------------------------------------------------------------
7332 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7333 *-------------------------------------------------------------------------*/
7334typedef PACKED_PRE struct PACKED_POST
7335{
7336 /*STA Index*/
7337 tANI_U16 staIdx;
7338
7339 /* if this is 1, self is initiator and peer is reponder */
7340 tANI_U8 bIsResponder;
7341
7342 /* QoS Info */
7343 tANI_U8 acVOUAPSDFlag:1;
7344 tANI_U8 acVIUAPSDFlag:1;
7345 tANI_U8 acBKUAPSDFlag:1;
7346 tANI_U8 acBEUAPSDFlag:1;
7347 tANI_U8 aAck:1;
7348 tANI_U8 maxServicePeriodLength:2;
7349 tANI_U8 moreDataAck:1;
7350
7351 /*TDLS Peer U-APSD Buffer STA Support*/
7352 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007353
7354 /*TDLS off channel related params */
7355 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307356 tANI_U8 peerCurrOperClass;
7357 tANI_U8 selfCurrOperClass;
7358 tANI_U8 validChannelsLen;
7359 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7360 tANI_U8 validOperClassesLen;
7361 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307362}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7363
7364typedef PACKED_PRE struct PACKED_POST
7365{
7366 tHalMsgHeader header;
7367 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7368} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7369
7370/*---------------------------------------------------------------------------
7371 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7372 *-------------------------------------------------------------------------*/
7373
7374typedef PACKED_PRE struct PACKED_POST
7375{
7376 tANI_U32 status;
7377
7378 /*STA Index*/
7379 tANI_U16 staIdx;
7380} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7381
7382typedef PACKED_PRE struct PACKED_POST
7383{
7384 tHalMsgHeader header;
7385 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7386} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307387/*---------------------------------------------------------------------------
7388 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7389 + *-------------------------------------------------------------------------*/
7390typedef PACKED_PRE struct PACKED_POST
7391{
7392 /*STA Index*/
7393 tANI_U16 staIdx;
7394 /* if this is 1, self is initiator otherwise responder only*/
7395 tANI_U8 isOffchannelInitiator;
7396 /*TDLS off channel related params */
7397 tANI_U8 targetOperClass;
7398 tANI_U8 targetChannel;
7399 tANI_U8 secondaryChannelOffset;
7400 tANI_U8 reserved[32];
7401}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7402
7403typedef PACKED_PRE struct PACKED_POST
7404{
7405 tHalMsgHeader header;
7406 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7407} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7408/*---------------------------------------------------------------------------
7409 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7410 *-------------------------------------------------------------------------*/
7411
7412typedef PACKED_PRE struct PACKED_POST
7413{
7414 tANI_U32 status;
7415 /*STA Index*/
7416 tANI_U16 staIdx;
7417} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7418
7419typedef PACKED_PRE struct PACKED_POST
7420{
7421 tHalMsgHeader header;
7422 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7423} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7424
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307425
7426/*---------------------------------------------------------------------------
7427 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7428 *-------------------------------------------------------------------------*/
7429typedef PACKED_PRE struct PACKED_POST
7430{
7431 /*STA Index*/
7432 tANI_U16 staIdx;
7433}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7434
7435typedef PACKED_PRE struct PACKED_POST
7436{
7437 tHalMsgHeader header;
7438 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7439} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7440
7441/*---------------------------------------------------------------------------
7442 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7443 *-------------------------------------------------------------------------*/
7444
7445typedef PACKED_PRE struct PACKED_POST
7446{
7447 tANI_U32 status;
7448
7449 /*STA Index*/
7450 tANI_U16 staIdx;
7451} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7452
7453typedef PACKED_PRE struct PACKED_POST
7454{
7455 tHalMsgHeader header;
7456 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7457} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7458
7459/*---------------------------------------------------------------------------
7460 *WLAN_HAL_TDLS_IND
7461 *--------------------------------------------------------------------------*/
7462
7463typedef PACKED_PRE struct PACKED_POST
7464{
7465 tANI_U16 assocId;
7466 tANI_U16 staIdx;
7467 tANI_U16 status;
7468 tANI_U16 reasonCode;
7469}tTdlsIndParams, *tpTdlsIndParams;
7470
7471
7472typedef PACKED_PRE struct PACKED_POST
7473{
7474 tHalMsgHeader header;
7475 tTdlsIndParams tdlsIndParams;
7476}tTdlsIndMsg, *tpTdlsIndMsg;
7477
7478#endif
7479
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007480/*---------------------------------------------------------------------------
7481 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7482 *--------------------------------------------------------------------------*/
7483
7484typedef PACKED_PRE struct PACKED_POST
7485{
7486 tANI_U8 bssIdx;
7487 tANI_U8 staIdx;
7488 tSirMacAddr staAddr;
7489}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7490
7491
7492typedef PACKED_PRE struct PACKED_POST
7493{
7494 tHalMsgHeader header;
7495 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7496}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7497
7498
Kumar Anandea78e792013-10-10 23:47:01 -07007499/*********** Scan Offload Related Structures *************/
7500#define HAL_NUM_SCAN_SSID 10
7501#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007502
Kumar Anandea78e792013-10-10 23:47:01 -07007503/*
7504 * Enumetation to indicate scan type (active/passive)
7505 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007506typedef enum
7507{
Kumar Anandea78e792013-10-10 23:47:01 -07007508 eSIR_PASSIVE_SCAN,
7509 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7510} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007511
7512typedef PACKED_PRE struct PACKED_POST
7513{
Kumar Anandea78e792013-10-10 23:47:01 -07007514 tANI_U8 numBssid;
7515 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7516 tANI_U8 numSsid;
7517 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7518 tANI_BOOLEAN hiddenSsid;
7519 tSirMacAddr selfMacAddr;
7520 tSirBssType bssType;
7521 tSirScanType scanType;
7522 tANI_U32 minChannelTime;
7523 tANI_U32 maxChannelTime;
7524 tANI_BOOLEAN p2pSearch;
7525 tANI_U8 channelCount;
7526 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7527 tANI_U16 ieFieldLen;
7528 tANI_U8 ieField[1];
7529}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007530
7531/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007532 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007533 *-------------------------------------------------------------------------*/
7534typedef PACKED_PRE struct PACKED_POST
7535{
Kumar Anandf53016f2013-09-04 15:15:53 -07007536 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007537 tScanOffloadReqType scanOffloadParams;
7538} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007539
7540/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007541 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007542 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007543typedef PACKED_PRE struct PACKED_POST
7544{
7545 tHalMsgHeader header;
7546
7547 /*status of the request - just to indicate SO has acknowledged
7548 * * the request and will start scanning*/
7549 tANI_U32 status;
7550} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7551
7552/*---------------------------------------------------------------------------
7553 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7554 *-------------------------------------------------------------------------*/
7555typedef PACKED_PRE struct PACKED_POST
7556{
7557 tHalMsgHeader header;
7558} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7559
7560/*---------------------------------------------------------------------------
7561 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7562 *-------------------------------------------------------------------------*/
7563typedef PACKED_PRE struct PACKED_POST
7564{
7565 tHalMsgHeader header;
7566
7567 /*status of the request - just to indicate SO has acknowledged
7568 the request and will start scanning*/
7569 tANI_U32 status;
7570} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7571
7572/*
7573 * Enumetation of scan events indicated by firmware to the host
7574 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007575typedef enum
7576{
Kumar Anandea78e792013-10-10 23:47:01 -07007577 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7578 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7579 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7580 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7581 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7582 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7583 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7584 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7585 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7586} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007587
7588typedef PACKED_PRE struct PACKED_POST
7589{
Kumar Anandea78e792013-10-10 23:47:01 -07007590 tScanEventType event;
7591 tANI_U32 channel;
7592 tANI_U32 scanId;
7593} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007594
Kumar Anandea78e792013-10-10 23:47:01 -07007595/*---------------------------------------------------------------------------
7596 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7597 *-------------------------------------------------------------------------*/
7598typedef PACKED_PRE struct PACKED_POST
7599{
7600 tHalMsgHeader header;
7601 tScanOffloadEventInfo scanOffloadInd;
7602} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007603
Kumar Anandea78e792013-10-10 23:47:01 -07007604typedef PACKED_PRE struct PACKED_POST {
7605 /** primary 20 MHz channel frequency in mhz */
7606 tANI_U32 mhz;
7607 /** Center frequency 1 in MHz*/
7608 tANI_U32 band_center_freq1;
7609 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7610 tANI_U32 band_center_freq2;
7611 /* The first 26 bits are a bit mask to indicate any channel flags,
7612 (see WLAN_HAL_CHAN_FLAG*)
7613 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7614 tANI_U32 channel_info;
7615 /** contains min power, max power, reg power and reg class id. */
7616 tANI_U32 reg_info_1;
7617 /** contains antennamax */
7618 tANI_U32 reg_info_2;
7619} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007620
Kumar Anandf53016f2013-09-04 15:15:53 -07007621
Kumar Anandea78e792013-10-10 23:47:01 -07007622typedef enum {
7623 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7624 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7625 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7626 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7627 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7628 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7629 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7630 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7631 WLAN_HAL_MODE_11AC_VHT20 = 8,
7632 WLAN_HAL_MODE_11AC_VHT40 = 9,
7633 WLAN_HAL_MODE_11AC_VHT80 = 10,
7634 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7635 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7636 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7637 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007638
Kumar Anandea78e792013-10-10 23:47:01 -07007639} tChannelPhyModeType;
7640
7641#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7642#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7643#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7644#define WLAN_HAL_CHAN_AP_DISABLED 9
7645#define WLAN_HAL_CHAN_FLAG_DFS 10
7646#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7647#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007648#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7649
7650#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007651 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007652 } while(0)
7653
7654#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007655 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007656
7657#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7658 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7659 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7660 } while(0)
7661#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7662
7663#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7664 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7665 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7666 } while(0)
7667#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7668
7669#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7670 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7671 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7672 } while(0)
7673#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7674#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7675 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7676 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7677 } while(0)
7678#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7679
7680#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7681 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7682 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7683 } while(0)
7684#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7685
7686#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7687 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7688 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7689 } while(0)
7690#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 -07007691
7692typedef PACKED_PRE struct PACKED_POST
7693{
7694 tANI_U8 numChan;
7695 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7696} tUpdateChannelReqType;
7697
7698/*---------------------------------------------------------------------------
7699 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7700 *-------------------------------------------------------------------------*/
7701typedef PACKED_PRE struct PACKED_POST
7702{
7703 tHalMsgHeader header;
7704 tUpdateChannelReqType updateChannelParams;
7705} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7706
7707/*---------------------------------------------------------------------------
7708 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7709 *-------------------------------------------------------------------------*/
7710typedef PACKED_PRE struct PACKED_POST
7711{
7712 tHalMsgHeader header;
7713
7714 /*status of the request - just to indicate SO has acknowledged
7715 * * the request and will start scanning*/
7716 tANI_U32 status;
7717} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7718
7719
7720/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307721 * WLAN_HAL_RMC_RULER_REQ
7722 *-------------------------------------------------------------------------*/
7723
7724#define HAL_MAX_RMC_SESSIONS 2
7725
7726#define HAL_NUM_MAX_RULERS 8
7727
7728typedef enum
7729{
7730 WLAN_HAL_SUGGEST_RULER,
7731 WLAN_HAL_BECOME_RULER,
7732 WLAN_HAL_RULER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7733}tRulerReqCmdType, tRulerRspCmdType;
7734
Kumar Anandea78e792013-10-10 23:47:01 -07007735typedef PACKED_PRE struct PACKED_POST
7736{
Abhishek Singh00b71972016-01-07 10:51:04 +05307737 tRulerReqCmdType cmd;
7738
7739 /* MAC address of MCAST Transmitter (source) */
7740 tSirMacAddr mcastTransmitter;
7741
7742 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7743 tSirMacAddr mcastGroup;
7744
7745 /* Optional black list for cmd = WLAN_HAL_SUGGEST_RULER */
7746 tSirMacAddr blacklist[HAL_NUM_MAX_RULERS];
7747} tHalRmcRulerReqParams, *tpHalRmcRulerReqParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007748
7749typedef PACKED_PRE struct PACKED_POST
7750{
7751 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307752 tHalRmcRulerReqParams rulerReqParams;
7753} tHalRmcRulerReqMsg, *tpHalRmcRulerReqMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007754
7755/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307756 * WLAN_HAL_RMC_RULER_RSP
7757 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007758typedef PACKED_PRE struct PACKED_POST
7759{
Abhishek Singh00b71972016-01-07 10:51:04 +05307760 /* success or failure */
7761 tANI_U32 status;
7762
7763 /* Command Type */
7764 tRulerRspCmdType cmd;
7765
7766 /* MAC address of MCAST Transmitter (source) */
7767 tSirMacAddr mcastTransmitter;
7768
7769 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7770 tSirMacAddr mcastGroup;
7771
7772 /* List of candidates for cmd = WLAN_HAL_SUGGEST_RULER*/
7773 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7774
7775} tHalRmcRulerRspParams, *tpHalRmcRulerRspParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007776
7777typedef PACKED_PRE struct PACKED_POST
7778{
7779 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307780 tHalRmcRulerRspParams rulerRspParams;
7781} tHalRmcRulerRspMsg, *tpHalRmcRulerRspMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007782
7783/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307784 * WLAN_HAL_RMC_UPDATE_IND
7785 *-------------------------------------------------------------------------*/
7786typedef enum
Kumar Anandea78e792013-10-10 23:47:01 -07007787{
Abhishek Singh00b71972016-01-07 10:51:04 +05307788 WLAN_HAL_RULER_ACCEPTED, //Host-->FW
7789 WLAN_HAL_RULER_CANCELED, //Host-->FW
7790 WLAN_HAL_RULER_PICK_NEW, //FW-->Host
7791 WLAN_HAL_RULER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
7792}tRmcUpdateIndType;
7793
7794typedef enum
7795{
7796 WLAN_HAL_RMC_RULER_ROLE,
7797 WLAN_HAL_RMC_TRANSMITTER_ROLE,
7798 WLAN_HAL_RMC_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7799}tRmcRoleType;
Kumar Anandea78e792013-10-10 23:47:01 -07007800
7801typedef PACKED_PRE struct PACKED_POST
7802{
Abhishek Singh00b71972016-01-07 10:51:04 +05307803 tRmcUpdateIndType indication;
7804
7805 /* Role of the entity generating this indication */
7806 tRmcRoleType role;
7807
7808 /* MAC address of MCAST Transmitter (source) */
7809 tSirMacAddr mcastTransmitter;
7810
7811 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7812 tSirMacAddr mcastGroup;
7813
7814 tSirMacAddr mcastRuler;
7815
7816 /* Candidate list for indication = WLAN_HAL_RULER_PICK_NEW */
7817 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7818} tHalRmcUpdateIndParams, *tpHalRmcUpdateIndParams;
Kumar Anandf53016f2013-09-04 15:15:53 -07007819
7820typedef PACKED_PRE struct PACKED_POST
7821{
7822 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307823 tHalRmcUpdateIndParams rulerIndParams;
7824} tHalRmcUpdateInd, *tpHalRmcUpdateInd;
7825
7826typedef PACKED_PRE struct PACKED_POST
7827{
7828 tANI_U8 staIdx; // Station Idx;
7829 tANI_U32 txRate; // Legacy transmit rate, in units of 500 kbit/sec,
7830 // for the most recently transmitted frame
7831 tANI_U32 mcsIndex; // mcs index for HT20 and HT40 rates
7832 tANI_U32 txRateFlags; // to differentiate between HT20 and
7833 // HT40 rates; short and long guard interval
7834 tANI_S8 rssi; // RSSI of the last received beacon
7835}tHalIbssPeerParams, *tpHalIbssPeerParams;
7836
7837typedef PACKED_PRE struct PACKED_POST
7838{
7839 tANI_U32 status; // success or failure
7840 tANI_U8 numOfPeers; // Number of Peers for
7841 // which stats are being reported
7842 tHalIbssPeerParams ibssPeerParams[1]; // Stats of peer in IBSS
7843}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
7844
7845// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
7846typedef PACKED_PRE struct PACKED_POST
7847{
7848 tHalMsgHeader header;
7849 tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
7850}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
7851
7852typedef PACKED_PRE struct PACKED_POST
7853{
7854 tANI_U8 bssIdx; // Bss Index
7855 tANI_BOOLEAN allPeerInfoReqd; // If set, all IBSS peers stats are reported
7856 tANI_U8 staIdx; // If allPeerInfoReqd is not set,
7857 // only stats of peer with
7858 // staIdx is reported
7859}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
7860
7861// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
7862typedef PACKED_PRE struct PACKED_POST
7863{
7864 tHalMsgHeader header;
7865 tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
7866}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
krunal soni2a4728d2013-09-20 21:56:50 -07007867
Kumar Anandf53016f2013-09-04 15:15:53 -07007868/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007869 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7870 *-------------------------------------------------------------------------*/
7871typedef enum
7872{
7873 /* reassociation is done, but couldn't finish security handshake */
7874 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7875
7876 /* roam has successfully completed by firmware */
7877 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7878
7879 /* UNKONW error */
7880 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7881}tHalRoamOffloadRoamAuthStatus;
7882
7883typedef enum
7884{
7885 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7886 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7887 WLAN_HAL_ROAM_TYPE_OKC,
7888 WLAN_HAL_ROAM_TYPE_CCKM,
7889 WLAN_HAL_ROAM_TYPE_FT,
7890 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7891} tHalRoamOffloadType;
7892
7893typedef PACKED_PRE struct PACKED_POST
7894{
7895 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7896 tANI_U16 beaconProbeRespOffset;
7897
7898 /* Length of beaon / probe resp. */
7899 tANI_U16 beaconProbeRespLength;
7900
7901 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7902 tANI_U16 reassocRespOffset;
7903
7904 /* Length of reassoc resp. */
7905 tANI_U16 reassocRespLength;
7906
7907 /* 0 for probe response frame, 1 for beacon frame, */
7908 tANI_U8 isBeacon;
7909
7910 /* staIdx of old AP */
7911 tANI_U8 oldStaIdx;
7912
7913 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7914 tConfigBssRspParams */
7915 /* bssIdx of new roamed AP */
7916 tANI_U8 bssIdx;
7917
7918 /* DPU descriptor index for PTK */
7919 tANI_U8 dpuDescIndx;
7920
7921 /* PTK DPU signature */
7922 tANI_U8 ucastDpuSignature;
7923
7924 /* DPU descriptor index for GTK*/
7925 tANI_U8 bcastDpuDescIndx;
7926
7927 /* GTK DPU signature */
7928 tANI_U8 bcastDpuSignature;
7929
7930 /*DPU descriptor for IGTK*/
7931 tANI_U8 mgmtDpuDescIndx;
7932
7933 /* IGTK DPU signature */
7934 tANI_U8 mgmtDpuSignature;
7935
7936 /* Station Index for BSS entry*/
7937 tANI_U8 staIdx;
7938
7939 /* Self station index for this BSS */
7940 tANI_U8 selfStaIdx;
7941
7942 /* Bcast station for buffering bcast frames in AP role */
7943 tANI_U8 bcastStaIdx;
7944
7945 /* MAC address of roamed AP */
7946 tSirMacAddr bssid;
7947
7948 /*HAL fills in the tx power used for mgmt frames in this field. */
7949 tANI_S8 txMgmtPower;
7950
7951 /* success or failure */
7952 tHalRoamOffloadRoamAuthStatus authStatus;
7953
7954 /* TODO : add more info as needed */
7955
7956 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7957 /* Beacon or probe resp from new AP. This is in 802.11
7958 frame format starting with MAC header. */
7959 /* Up to beaconProbeRespLength */
7960
7961 /* reassocRespOffset points to starting of reassoc resp frame */
7962 /* Reassoc resp from new AP. This is in 802.11
7963 frame format starting with MAC header. */
7964 /* Up to reassocRespLength */
7965
7966} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7967
7968
7969typedef PACKED_PRE struct PACKED_POST
7970{
7971 tHalMsgHeader header;
7972 tHalRoamOffloadSynchIndParams params;
7973} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7974
7975/*---------------------------------------------------------------------------
7976 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7977 *-------------------------------------------------------------------------*/
7978typedef PACKED_PRE struct PACKED_POST
7979{
7980 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7981 tSirMacAddr bssid;
7982} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7983
7984typedef PACKED_PRE struct PACKED_POST
7985{
7986 tHalMsgHeader header;
7987 tHalRoamOffloadSynchCnfParams params;
7988} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7989
7990
7991/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007992 WLAN_HAL_RATE_UPDATE_IND
7993 *-------------------------------------------------------------------------*/
Abhishek Singh00b71972016-01-07 10:51:04 +05307994 typedef PACKED_PRE struct PACKED_POST
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007995{
7996 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7997 tANI_S32 ucastDataRate; //unit Mbpsx10
7998
7999 /* TX flag to differentiate between HT20, HT40 etc */
8000 tTxRateInfoFlags ucastDataRateTxFlag;
8001
8002 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
8003 tSirMacAddr bssid;
8004
8005 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
Abhishek Singh00b71972016-01-07 10:51:04 +05308006 tANI_S32 rmcDataRate; //unit Mbpsx10
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008007
8008 /* TX flag to differentiate between HT20, HT40 etc */
Abhishek Singh00b71972016-01-07 10:51:04 +05308009 tTxRateInfoFlags rmcDataRateTxFlag;
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008010
Abhishek Singh00b71972016-01-07 10:51:04 +05308011 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008012 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
8013
8014 /* TX flag to differentiate between HT20, HT40 etc */
8015 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
8016
Abhishek Singh00b71972016-01-07 10:51:04 +05308017 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008018 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
8019
8020 /* TX flag to differentiate between HT20, HT40 etc */
8021 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
8022
8023} tHalRateUpdateParams, *tpHalRateUpdateParams;
8024
8025typedef PACKED_PRE struct PACKED_POST
8026{
8027 tHalMsgHeader header;
8028 tHalRateUpdateParams halRateUpdateParams;
8029} tHalRateUpdateInd, * tpHalRateUpdateInd;
8030
8031/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05308032* WLAN_HAL_TX_FAIL_IND
8033*--------------------------------------------------------------------------*/
8034// Northbound indication from FW to host on weak link detection
8035typedef PACKED_PRE struct PACKED_POST
8036{
8037 // Sequence number increases by 1 whenever the device driver
8038 // sends a notification event. This is cleared as 0 when the
8039 // JOIN IBSS commamd is issued
8040 tANI_U16 seqNo;
8041 tANI_U16 staId;
8042 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
8043} tHalTXFailIndParams, *tpHalTXFailIndParams;
8044
8045typedef PACKED_PRE struct PACKED_POST
8046{
8047 tHalMsgHeader header;
8048 tHalTXFailIndParams txFailIndParams;
8049} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
8050
8051/*---------------------------------------------------------------------------
8052* WLAN_HAL_TX_FAIL_MONITOR_IND
8053*--------------------------------------------------------------------------*/
8054// Southbound message from Host to monitor the Tx failures
8055typedef PACKED_PRE struct PACKED_POST
8056{
8057 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
8058 tANI_U8 tx_fail_count;
8059} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
8060
8061typedef PACKED_PRE struct PACKED_POST
8062{
8063 tHalMsgHeader header;
8064 tTXFailMonitorInfo txFailMonitor;
8065} tTXFailMonitorInd, *tpTXFailMonitorInd;
8066
8067/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308068 * WLAN_HAL_AVOID_FREQ_RANGE_IND
8069 *-------------------------------------------------------------------------*/
8070
Abhishek Singhe0443152015-06-18 10:07:43 +05308071#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308072
8073typedef PACKED_PRE struct PACKED_POST
8074{
8075 tANI_U32 startFreq;
8076 tANI_U32 endFreq;
8077} tHalFreqRange, *tpHalFreqRange;
8078
8079typedef PACKED_PRE struct PACKED_POST
8080{
8081 tANI_U32 avoidCnt;
8082 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
8083} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
8084
8085typedef PACKED_PRE struct PACKED_POST
8086{
8087 tHalMsgHeader header;
8088 tHalAvoidFreqRangeIndParams freqRangeIndParams;
8089} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
8090
8091/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308092 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07008093 *-------------------------------------------------------------------------*/
8094
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308095typedef enum
8096{
8097 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
8098 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
8099 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
8100}tHT40OBssScanCmdType;
8101
8102typedef PACKED_PRE struct PACKED_POST
8103{
8104 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008105
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308106 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008107 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
8108 tANI_U16 OBSSScanActiveDwellTime; // In TUs
8109 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
8110 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
8111 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
8112 tANI_U16 BSSWidthChannelTransitionDelayFactor;
8113 tANI_U16 OBSSScanActivityThreshold;
8114
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308115 tANI_U8 selfStaIdx;
8116 tANI_U8 bssIdx;
8117 tANI_U8 fortyMHZIntolerent;
8118 tANI_U8 channelCount;
8119 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
8120 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008121
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308122 tANI_U16 ieFieldLen;
8123 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
8124}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
8125
8126typedef PACKED_PRE struct PACKED_POST
8127{
8128 tHalMsgHeader header;
8129 tHT40ObssScanIndType scanHT40ObssScanParams;
8130} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
8131
8132/*---------------------------------------------------------------------------
8133 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
8134 *-------------------------------------------------------------------------*/
8135typedef PACKED_PRE struct PACKED_POST
8136{
8137 tHalMsgHeader header;
8138 tANI_U8 bssIdx;
8139} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05308140
8141/*---------------------------------------------------------------------------
8142 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
8143 *-------------------------------------------------------------------------*/
8144
8145typedef PACKED_PRE struct PACKED_POST
8146{
8147 /* Valid BSS Idx for beacon miss rate */
8148 tANI_U8 bssIdx;
8149
8150}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
8151
8152typedef PACKED_PRE struct PACKED_POST
8153{
8154 tHalMsgHeader header;
8155 tHalBcnMissRateReqParams bcnMissRateReqParams;
8156} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
8157
8158/*---------------------------------------------------------------------------
8159 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
8160 *-------------------------------------------------------------------------*/
8161
8162typedef PACKED_PRE struct PACKED_POST
8163{
8164 tANI_U32 status;
8165 tANI_U32 bcnMissCnt;
8166}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
8167
8168typedef PACKED_PRE struct PACKED_POST
8169{
8170 tHalMsgHeader header;
8171 tHalBcnMissRateRspParams bcnMissRateRspParams;
8172}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
8173
Selvaraj, Sridhar6c0eb3f2016-04-06 12:42:04 +05308174/*---------------------------------------------------------------------------
8175 * WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND
8176 *-------------------------------------------------------------------------*/
8177
8178typedef PACKED_PRE struct PACKED_POST
8179{
8180 tANI_U32 actionFramesBitMask;
8181 tANI_U32 reserved;
8182}tHalAllowedActionFrames, *tpHalAllowedActionFrames;
8183
8184typedef PACKED_PRE struct PACKED_POST
8185{
8186 tHalMsgHeader header;
8187 tHalAllowedActionFrames allowedActionFrames;
8188}tHalAllowedActionFramesReqInd, *tpHalAllowedActionFramesReqInd;
8189
Sunil Dutt8377a382014-05-26 21:18:04 +05308190/*--------------------------------------------------------------------------
8191* WLAN_HAL_LL_SET_STATS_REQ
8192*---------------------------------------------------------------------------*/
8193
8194typedef PACKED_PRE struct PACKED_POST
8195{
8196 tANI_U32 req_id;
8197 tANI_U8 sta_id;
8198 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
8199 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
8200} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
8201
8202typedef PACKED_PRE struct PACKED_POST
8203{
8204 tHalMsgHeader header;
8205 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
8206} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
8207
8208/*---------------------------------------------------------------------------
8209 WLAN_HAL_LL_SET_STATS_RSP
8210---------------------------------------------------------------------------*/
8211
8212typedef PACKED_PRE struct PACKED_POST
8213{
8214 tANI_U32 status;
8215 tANI_U32 resp_id;
8216 tANI_U8 iface_id;
8217} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
8218
8219typedef PACKED_PRE struct PACKED_POST
8220{
8221 tHalMsgHeader header;
8222 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
8223} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
8224
8225/*---------------------------------------------------------------------------
8226 WLAN_HAL_LL_GET_STATS_REQ
8227---------------------------------------------------------------------------*/
8228
8229typedef PACKED_PRE struct PACKED_POST
8230{
8231 tANI_U32 req_id;
8232 tANI_U8 sta_id;
8233 tANI_U32 param_id_mask;
8234} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
8235
8236typedef PACKED_PRE struct PACKED_POST
8237{
8238 tHalMsgHeader header;
8239 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
8240} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
8241
8242/*---------------------------------------------------------------------------
8243 WLAN_HAL_LL_GET_STATS_RSP
8244---------------------------------------------------------------------------*/
8245typedef PACKED_PRE struct PACKED_POST
8246{
8247 tANI_U32 status;
8248 tANI_U32 resp_id;
8249 tANI_U8 iface_id;
8250} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8251
8252typedef PACKED_PRE struct PACKED_POST
8253{
8254 tHalMsgHeader header;
8255 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8256} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8257
8258/*---------------------------------------------------------------------------
8259 WLAN_HAL_LL_CLEAR_STATS_REQ
8260---------------------------------------------------------------------------*/
8261typedef PACKED_PRE struct PACKED_POST
8262{
8263 tANI_U32 req_id;
8264 tANI_U8 sta_id;
8265 tANI_U32 stats_clear_req_mask;
8266 tANI_U8 stop_req;
8267} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8268
8269typedef PACKED_PRE struct PACKED_POST
8270{
8271 tHalMsgHeader header;
8272 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8273} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8274
8275/*---------------------------------------------------------------------------
8276 WLAN_HAL_LL_CLEAR_STATS_RSP
8277---------------------------------------------------------------------------*/
8278typedef PACKED_PRE struct PACKED_POST
8279{
8280 tANI_U32 status;
8281 tANI_U8 sta_id;
8282 tANI_U32 resp_id;
8283 tANI_U32 stats_clear_rsp_mask;
8284 tANI_U8 stop_req_status;
8285} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8286
8287typedef PACKED_PRE struct PACKED_POST
8288{
8289 tHalMsgHeader header;
8290 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8291} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8292
8293/*---------------------------------------------------------------------------
8294 WLAN_HAL_LL_NOTIFY_STATS
8295---------------------------------------------------------------------------*/
8296
8297typedef PACKED_PRE struct PACKED_POST
8298{
8299 tHalMsgHeader header;
8300 tANI_U32 param_id;
8301 tANI_U8 iface_id;
8302 tANI_U32 resp_id;
8303 tANI_U32 more_result_to_follow;
8304 tANI_U8 result[1];
8305} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008306
Dino Mycle108eff22014-06-10 09:36:44 +05308307/*---------------------------------------------------------------------------
8308 * WLAN_HAL_EXT_SCAN_START_REQ
8309 *-------------------------------------------------------------------------*/
8310
Dino Mycle8afbac12014-07-04 22:06:17 +05308311typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308312{
8313 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8314 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8315 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8316 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8317 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8318 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8319 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308320 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308321} tExtScanChannelBandMask;
8322
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308323#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8324#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8325
8326#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8327
8328#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8329#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8330#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8331#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8332
Dino Mycle108eff22014-06-10 09:36:44 +05308333typedef PACKED_PRE struct PACKED_POST
8334{
8335 tANI_U32 channel; // frequency
8336 tANI_U32 dwellTimeMs; // dwell time hint
8337 tANI_U8 passive; // 0 => active,
8338 // 1 => passive scan; ignored for DFS
8339}tExtScanChannelSpec, *tpExtScanChannelSpec;
8340
8341typedef PACKED_PRE struct PACKED_POST
8342 {
8343 /* bucket index, 0 based */
8344 tANI_U8 bucketId;
8345 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8346 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308347 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308348 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308349 /* This is a bit field; which defines following bits -
8350 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8351 is % full
8352 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8353 after scan
8354 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8355 (beacons/probe responses + IEs) in real time to HAL, in addition
8356 to completion events
8357 Note: To keep backward compatibility, fire completion events
8358 regardless of REPORT_EVENTS_EACH_SCAN.
8359 * REPORT_EVENTS_NO_BATCH => controls batching,
8360 0 => batching, 1 => no batching
8361 */
Dino Mycle108eff22014-06-10 09:36:44 +05308362 tANI_U8 reportEvents;
8363 /* number of channels */
8364 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308365 // new Exponential Scan params
8366 tANI_U32 max_period;
8367 tANI_U32 exponent;
8368 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308369 /* if channels to scan. In the TLV channelList[] */
8370 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8371}tExtScanBucketData, *tpExtScanBucketData;
8372
8373typedef PACKED_PRE struct PACKED_POST
8374{
8375 tANI_U32 requestId;
8376 tANI_U8 sessionId;
8377 /* Base period (milliseconds) used by scan buckets to define periodicity
8378 of the scans */
8379 tANI_U32 basePeriod;
8380 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8381 (keep the most significant, i.e. stronger RSSI) */
8382 tANI_U32 maxApPerScan;
8383 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308384 tANI_U32 reportThresholdPercent;
8385 /* in number of scans, wake up AP after these many scans */
8386 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308387 /* This will be off channel minimum time */
8388 tANI_U16 neighborScanChannelMinTime;
8389 /* This will be out off channel max time */
8390 tANI_U16 neighborScanChannelMaxTime;
8391 /* This will be the home (BSS) channel time */
8392 tANI_U16 homeAwayTime;
8393 /* number of buckets (maximum 8) */
8394 tANI_U8 numBuckets;
8395 /* Buckets data */
8396 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8397} tHalExtScanStartReq, *tpHalExtScanStartReq;
8398
8399typedef PACKED_PRE struct PACKED_POST
8400{
8401 tHalMsgHeader header;
8402 tHalExtScanStartReq extScanStartReq;
8403}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8404
8405/*---------------------------------------------------------------------------
8406 * WLAN_HAL_EXT_SCAN_START_RSP
8407 *-------------------------------------------------------------------------*/
8408
8409typedef PACKED_PRE struct PACKED_POST
8410{
8411 tANI_U32 requestId;
8412 tANI_U32 status;
8413}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8414
8415typedef PACKED_PRE struct PACKED_POST
8416{
8417 tHalMsgHeader header;
8418 tHalExtScanStartRsp extScanStartRsp;
8419}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8420
8421/*---------------------------------------------------------------------------
8422 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8423 *-------------------------------------------------------------------------*/
8424
8425typedef PACKED_PRE struct PACKED_POST
8426{
8427 tANI_U32 requestId;
8428 tANI_U8 sessionId;
8429}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8430
8431typedef PACKED_PRE struct PACKED_POST
8432{
8433 tHalMsgHeader header;
8434 tHalExtScanGetCapReq extScanGetCapReq;
8435}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8436
8437/*---------------------------------------------------------------------------
8438 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8439 *-------------------------------------------------------------------------*/
8440
8441typedef PACKED_PRE struct PACKED_POST
8442{
8443 tANI_U32 requestId;
8444 tANI_U32 status;
8445
8446 tANI_U32 scanCacheSize;
8447 tANI_U32 scanBuckets;
8448 tANI_U32 maxApPerScan;
8449 tANI_U32 maxRssiSampleSize;
8450 tANI_U32 maxScanReportingThreshold;
8451
8452 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308453 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308454
8455 tANI_U32 maxBssidHistoryEntries;
8456}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8457
8458typedef PACKED_PRE struct PACKED_POST
8459{
8460 tHalMsgHeader header;
8461 tHalExtScanGetCapRsp extScanGetCapRsp;
8462}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8463
8464/*---------------------------------------------------------------------------
8465 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8466 *-------------------------------------------------------------------------*/
8467
8468typedef PACKED_PRE struct PACKED_POST
8469{
8470 tANI_U32 requestId;
8471 tANI_U8 sessionId;
8472 /*
8473 * 1 return cached results and flush it
8474 * 0 return cached results and do not flush
8475 */
8476 tANI_BOOLEAN flush;
8477}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8478
8479typedef PACKED_PRE struct PACKED_POST
8480{
8481 tHalMsgHeader header;
8482 tHalExtScanGetScanReq getScanReq;
8483}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8484
8485/*---------------------------------------------------------------------------
8486 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8487 *-------------------------------------------------------------------------*/
8488
8489typedef PACKED_PRE struct PACKED_POST
8490{
8491 tANI_U32 requestId;
8492 tANI_U32 status;
8493}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8494
8495typedef PACKED_PRE struct PACKED_POST
8496{
8497 tHalMsgHeader header;
8498 tHalExtScanGetScanRsp getScanRsp;
8499}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8500
8501/*---------------------------------------------------------------------------
8502 * WLAN_HAL_EXT_SCAN_RESULT_IND
8503 *-------------------------------------------------------------------------*/
8504
8505typedef PACKED_PRE struct PACKED_POST
8506{
8507 tANI_U64 ts; // time of discovery
8508 tANI_U8 ssid[32+1]; // null terminated SSID
8509 tSirMacAddr bssid; // BSSID
8510 tANI_U32 channel; // channel frequency in MHz
8511 tANI_S32 rssi; // RSSI in dBm
8512 tANI_U32 rtt; // RTT in nanoseconds - not expected
8513 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308514 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308515 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308516 tANI_U16 ieLength; // size of the ie_data blob
8517 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308518} tHalExtScanResultParams, *tpHalExtScanResultParams;
8519
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308520/* Get the GSCAN cached scan results */
8521typedef struct {
8522 tANI_U16 scan_id; // a unique identifier for the scan unit
8523 tANI_U8 flags; // a bitmask with additional
8524 // information about scan
8525 tANI_U8 num_results; // number of bssids retrieved by the scan
8526 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8527 // scan results - one for each bssid
8528} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8529
Dino Mycle108eff22014-06-10 09:36:44 +05308530typedef PACKED_PRE struct PACKED_POST
8531{
8532 tHalMsgHeader header;
8533 tANI_U32 requestId;
8534 tANI_U32 scanResultSize;
8535 tANI_BOOLEAN moreData;
8536 tANI_U8 extScanResult[1];
8537}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8538
8539/*---------------------------------------------------------------------------
8540 * WLAN_HAL_EXT_SCAN_STOP_REQ
8541 *-------------------------------------------------------------------------*/
8542
8543typedef PACKED_PRE struct PACKED_POST
8544{
8545 tANI_U32 requestId;
8546 tANI_U8 sessionId;
8547}tHalExtScanStopReq, *tpHalExtScanStopReq;
8548
8549typedef PACKED_PRE struct PACKED_POST
8550{
8551 tHalMsgHeader header;
8552 tHalExtScanStopReq extScanStopReq;
8553}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8554
8555/*---------------------------------------------------------------------------
8556 * WLAN_HAL_EXT_SCAN_STOP_RSP
8557 *-------------------------------------------------------------------------*/
8558
8559typedef PACKED_PRE struct PACKED_POST
8560{
8561 tANI_U32 requestId;
8562 tANI_U32 status;
8563}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8564
8565typedef PACKED_PRE struct PACKED_POST
8566{
8567 tHalMsgHeader header;
8568 tHalExtScanStopRsp extScanStopRsp;
8569}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8570
8571/*---------------------------------------------------------------------------
8572 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8573 *-------------------------------------------------------------------------*/
8574
Dino Mycle8afbac12014-07-04 22:06:17 +05308575typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308576{
8577 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8578 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308579 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308580} tHalExtScanProgressEventType;
8581
8582typedef PACKED_PRE struct PACKED_POST
8583{
8584 tANI_U32 requestId;
8585 tANI_U32 status;
8586 tHalExtScanProgressEventType extScanEventType;
8587}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8588
8589typedef PACKED_PRE struct PACKED_POST
8590{
8591 tHalMsgHeader header;
8592 tHalExtScanProgressInd extScanProgressInd;
8593}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8594
8595/*---------------------------------------------------------------------------
8596 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8597 *-------------------------------------------------------------------------*/
8598
8599typedef PACKED_PRE struct PACKED_POST
8600{
8601 tANI_U32 requestId;
8602 tANI_U32 numOfScanResAvailable;
8603}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8604
8605typedef PACKED_PRE struct PACKED_POST
8606{
8607 tHalMsgHeader header;
8608 tHalExtScanResAvailableInd extScanResAvailableInd;
8609}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8610
Dino Mycle108eff22014-06-10 09:36:44 +05308611typedef PACKED_PRE struct PACKED_POST
8612{
8613 /* AP BSSID */
8614 tSirMacAddr bssid;
8615 /* low threshold - used in L for significant_change - not used in L for
8616 hotlist*/
8617 tANI_S32 lowRssiThreshold;
8618 /* high threshold - used in L for significant rssi - used in L for hotlist */
8619 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308620} tApThresholdParams, *tpApThresholdParams;
8621
Dino Mycle108eff22014-06-10 09:36:44 +05308622/*---------------------------------------------------------------------------
8623 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8624 *-------------------------------------------------------------------------*/
8625
8626typedef PACKED_PRE struct PACKED_POST
8627{
8628 tANI_U32 requestId;
8629 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308630 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308631 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308632 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308633 // hotlist APs
8634 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8635} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8636
8637typedef PACKED_PRE struct PACKED_POST
8638{
8639 tHalMsgHeader header;
8640 tHalBssidHotlistSetReq bssidHotlistSetReq;
8641}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8642
8643/*---------------------------------------------------------------------------
8644 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8645 *-------------------------------------------------------------------------*/
8646
8647typedef PACKED_PRE struct PACKED_POST
8648{
8649 tANI_U32 requestId;
8650 tANI_U32 status;
8651}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8652
8653typedef PACKED_PRE struct PACKED_POST
8654{
8655 tHalMsgHeader header;
8656 tHalHotlistSetRsp hotlistSetRsp;
8657}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8658
8659/*---------------------------------------------------------------------------
8660 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8661 *-------------------------------------------------------------------------*/
8662
8663typedef PACKED_PRE struct PACKED_POST
8664{
8665 tANI_U32 requestId;
8666}tHalHotlistResetReq, *tpHalHotlistResetReq;
8667
8668typedef PACKED_PRE struct PACKED_POST
8669{
8670 tHalMsgHeader header;
8671 tHalHotlistResetReq hotlistResetReq;
8672}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8673
8674/*---------------------------------------------------------------------------
8675 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8676 *-------------------------------------------------------------------------*/
8677
8678typedef PACKED_PRE struct PACKED_POST
8679{
8680 tANI_U32 requestId;
8681 tANI_U32 status;
8682}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8683
8684typedef PACKED_PRE struct PACKED_POST
8685{
8686 tHalMsgHeader header;
8687 tHalHotlistResetRsp hotlistResetRsp;
8688}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8689
8690/*---------------------------------------------------------------------------
8691 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8692 *-------------------------------------------------------------------------*/
8693
8694typedef PACKED_PRE struct PACKED_POST
8695{
8696 tHalMsgHeader header;
8697 tANI_U32 requestId;
8698 tANI_U32 numHotlistBss;
8699 tANI_BOOLEAN moreData;
8700 tANI_U8 bssHotlist[1];
8701}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8702
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308703/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308704 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8705 *-------------------------------------------------------------------------*/
8706
8707typedef PACKED_PRE struct PACKED_POST
8708{
8709 /* SSID */
8710 char ssid [32+1];
8711 /* low threshold - used in L for significant_change - not used in L for
8712 hotlist*/
8713 tANI_S32 lowRssiThreshold;
8714 /* high threshold - used in L for significant rssi - used in L for hotlist */
8715 tANI_S32 highRssiThreshold;
8716 /* band */
8717 tANI_U32 band;
8718 } tSsidThresholdParams, *tpSsidThresholdParams;
8719
8720
8721typedef PACKED_PRE struct PACKED_POST
8722{
8723 tANI_U32 requestId;
8724 tANI_U8 sessionId;
8725 tANI_U32 lostSsidSampleSize;
8726 // number of hotlist SSIDs
8727 tANI_U32 numSsid;
8728 // hotlist SSIDs
8729 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8730} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8731
8732typedef PACKED_PRE struct PACKED_POST
8733{
8734 tHalMsgHeader header;
8735 tHalSsidHotlistSetReq ssidHotlistSetReq;
8736}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8737
8738/*---------------------------------------------------------------------------
8739 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8740 *-------------------------------------------------------------------------*/
8741typedef PACKED_PRE struct PACKED_POST
8742{
8743 tANI_U32 requestId;
8744 tANI_U32 status;
8745}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8746
8747typedef PACKED_PRE struct PACKED_POST
8748{
8749 tHalMsgHeader header;
8750 tHalSsidHotlistSetRsp hotlistSetRsp;
8751}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8752
8753/*---------------------------------------------------------------------------
8754 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8755 *-------------------------------------------------------------------------*/
8756
8757typedef PACKED_PRE struct PACKED_POST
8758{
8759 tANI_U32 requestId;
8760}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8761
8762typedef PACKED_PRE struct PACKED_POST
8763{
8764 tHalMsgHeader header;
8765 tHalSsidHotlistResetReq hotlistResetReq;
8766}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8767
8768/*---------------------------------------------------------------------------
8769 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8770 *-------------------------------------------------------------------------*/
8771
8772typedef PACKED_PRE struct PACKED_POST
8773{
8774 tANI_U32 requestId;
8775 tANI_U32 status;
8776}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8777
8778typedef PACKED_PRE struct PACKED_POST
8779{
8780 tHalMsgHeader header;
8781 tHalSsidHotlistResetRsp hotlistResetRsp;
8782}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8783
8784/*---------------------------------------------------------------------------
8785 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8786 *-------------------------------------------------------------------------*/
8787
8788typedef PACKED_PRE struct PACKED_POST
8789{
8790 tHalMsgHeader header;
8791 tANI_U32 requestId;
8792 tANI_BOOLEAN ssid_found;
8793 tANI_U32 numHotlistSsid;
8794 tANI_BOOLEAN moreData;
8795 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8796}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8797
8798/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308799 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8800 *-------------------------------------------------------------------------*/
8801
8802typedef PACKED_PRE struct PACKED_POST
8803{
8804 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8805 tANI_U32 reserved; //reserved for future use
8806}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8807
8808typedef PACKED_PRE struct PACKED_POST
8809{
8810 tHalMsgHeader header;
8811 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8812}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8813
8814/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308815 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8816 *--------------------------------------------------------------------------*/
8817typedef PACKED_PRE struct PACKED_POST
8818{
8819 tANI_U8 macAddr[6];
8820 tANI_U32 reserved1;
8821 tANI_U32 reserved2;
8822}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8823
8824typedef PACKED_PRE struct PACKED_POST
8825{
8826 tHalMsgHeader header;
8827 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8828} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8829
8830/*---------------------------------------------------------------------------
8831* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8832*-------------------------------------------------------------------------*/
8833
8834typedef PACKED_PRE struct PACKED_POST
8835{
8836 tANI_U32 status;
8837 tANI_U32 reserved1;
8838} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8839
8840typedef PACKED_PRE struct PACKED_POST
8841{
8842 tHalMsgHeader header;
8843 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8844} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308845/*---------------------------------------------------------------------------
8846 *WLAN_HAL_GET_FRAME_LOG_REQ
8847 *--------------------------------------------------------------------------*/
8848typedef PACKED_PRE struct PACKED_POST
8849{
8850 tANI_U8 flags;
8851}tGetFrameLogReqType, * tpGetFrameLogReqType;
8852
8853typedef PACKED_PRE struct PACKED_POST
8854{
8855 tHalMsgHeader header;
8856 tGetFrameLogReqType tGetFrameLogReqParams;
8857} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8858
8859/*---------------------------------------------------------------------------
8860 * WLAN_HAL_GET_FRAME_LOG_RSP
8861 *-------------------------------------------------------------------------*/
8862typedef PACKED_PRE struct PACKED_POST
8863{
8864 tANI_U32 status;
8865} tGetFrameLogResp, * tpGetFrameLogResp;
8866
8867typedef PACKED_PRE struct PACKED_POST
8868{
8869 tHalMsgHeader header;
8870 tGetFrameLogResp tGetFrameLogRespParams;
8871} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8872
8873/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308874 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8875 *-------------------------------------------------------------------------*/
8876typedef PACKED_PRE struct PACKED_POST
8877{
8878 tANI_U32 reasonCode;
8879}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8880
8881typedef PACKED_PRE struct PACKED_POST
8882{
8883 tHalMsgHeader header;
8884 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8885}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8886
8887/*---------------------------------------------------------------------------
8888 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8889 *-------------------------------------------------------------------------*/
8890typedef PACKED_PRE struct PACKED_POST
8891{ tANI_U32 status;
8892}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8893
8894typedef PACKED_PRE struct PACKED_POST
8895{
8896 tHalMsgHeader header;
8897 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8898}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8899
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308900/*---------------------------------------------------------------------------
8901 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8902 *-------------------------------------------------------------------------*/
8903typedef PACKED_PRE struct PACKED_POST
8904{
8905 tANI_U8 bssIdx;
8906 tANI_U8 rssi;
8907 tSirMacAddr selfMacAddr;
8908 tANI_U32 linkFlCnt;
8909 tANI_U32 linkFlTx;
8910 tANI_U32 lastDataRate;
8911 tANI_U32 rsvd1;
8912 tANI_U32 rsvd2;
8913}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8914
8915typedef PACKED_PRE struct PACKED_POST
8916{
8917 tHalMsgHeader header;
8918 tHalLostLinkParametersIndParams lostLinkParameters;
8919}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308920
8921
8922/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308923 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308924 *--------------------------------------------------------------------------*/
8925typedef PACKED_PRE struct PACKED_POST
8926{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308927 /* BIT0 - enable frame logging
8928 * BIT1 - enableBMUHWtracing
8929 * BIT2 - enableQXDMlogging
8930 * BIT3 - enableUElogDpuTxp
8931 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308932 tANI_U8 enableFlag;
8933 tANI_U8 frameType;
8934 tANI_U8 frameSize;
8935 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308936 /* Host mem address to be used as logmailbox */
8937 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308938 /* firmware will wakeup the host to send logs always */
8939 tANI_U8 continuousFrameLogging;
8940 /* Logging mail box version */
8941 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308942 /* Max ring size in firmware to log msgs when host is suspended state */
8943 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308944 /* when firmware log reaches this threshold and
8945 * if host is awake it will push the logs.
8946 */
8947 tANI_U8 minLogBuffSize;
8948 /* Reserved for future purpose */
8949 tANI_U32 reserved0;
8950 tANI_U32 reserved1;
8951 tANI_U32 reserved2;
8952}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308953
8954typedef PACKED_PRE struct PACKED_POST
8955{
8956 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308957 tFWLoggingInitReqType tFWLoggingInitReqParams;
8958} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308959
8960/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308961 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308962 *-------------------------------------------------------------------------*/
8963typedef PACKED_PRE struct PACKED_POST
8964{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308965 tANI_U32 status;
8966 /* FW mail box address */
8967 tANI_U64 logMailBoxAddr;
8968 /* Logging mail box version */
8969 tANI_U8 logMailBoxVer;
8970 /* Qshrink is enabled */
8971 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308972 /* fw_dump_max_size is used to tell fwr mem dump size */
8973 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308974 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308975 tANI_U32 reserved1;
8976 tANI_U32 reserved2;
8977} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308978
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05308979
8980typedef PACKED_PRE struct PACKED_POST {
8981 tANI_U32 request_id;
8982 tSirMacAddr bssId;
8983 tANI_S8 min_rssi;
8984 tANI_S8 max_rssi;
8985} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
8986
8987typedef PACKED_PRE struct PACKED_POST
8988{
8989 tHalMsgHeader header;
8990 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
8991}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
8992
8993//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
8994typedef PACKED_PRE struct PACKED_POST {
8995 tANI_U32 request_id;
8996 tANI_U32 status;
8997} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
8998
8999typedef PACKED_PRE struct PACKED_POST
9000{
9001 tHalMsgHeader header;
9002 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
9003}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
9004
9005//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
9006typedef PACKED_PRE struct PACKED_POST
9007{
9008 tANI_U32 request_id;
9009 tSirMacAddr bssId;
9010 tANI_S8 rssi;
9011} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
9012
9013typedef PACKED_PRE struct PACKED_POST
9014{
9015 tHalMsgHeader header;
9016 tHalRssiMonitorIndParams RssiMonitorIndParams;
9017}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
9018
9019
9020//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
9021typedef PACKED_PRE struct PACKED_POST {
9022 tANI_U32 request_id;
9023 tSirMacAddr bssId;
9024} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
9025
9026typedef PACKED_PRE struct PACKED_POST
9027{
9028 tHalMsgHeader header;
9029 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
9030}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
9031
9032//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
9033typedef PACKED_PRE struct PACKED_POST {
9034 tANI_U32 request_id;
9035 tANI_U32 status;
9036} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
9037
9038typedef PACKED_PRE struct PACKED_POST
9039{
9040 tHalMsgHeader header;
9041 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
9042}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
9043
9044
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309045typedef PACKED_PRE struct PACKED_POST
9046{
9047 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309048 tFWLoggingInitResp tFWLoggingInitRespParams;
9049} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
9050
9051/*---------------------------------------------------------------------------
Kapil Guptac1043632016-06-25 00:23:30 +05309052 * WLAN_HAL_SET_PER_ROAM_CONFIG_REQ
9053 *---------------------------------------------------------------------------*/
9054
9055typedef PACKED_PRE struct PACKED_POST {
9056 tANI_U32 request_id;
9057 tANI_U32 isPERRoamCCAEnabled;
9058 tANI_U32 rateUpThreshold;
9059 tANI_U32 rateDownThreshold;
9060 tANI_U32 waitPeriodForNextPERScan;
9061 tANI_U32 PERtimerThreshold;
9062 tANI_U32 PERroamTriggerPercent;
Kapil Guptaffe21522016-08-29 12:33:00 +05309063 tANI_S16 PERRoamFullScanThreshold;
9064 tANI_U16 reserved;
Kapil Guptac1043632016-06-25 00:23:30 +05309065} tPerRoamConfigParams, * tpPerRoamConfigParams;
9066
9067typedef PACKED_PRE struct PACKED_POST
9068{
9069 tHalMsgHeader header;
9070 tPerRoamConfigParams perRoamConfigParams;
9071} tSetPerRoamConfigReq, * tpSetPerRoamConfigReq;
9072
9073/*---------------------------------------------------------------------------
9074 * WLAN_HAL_SET_PER_ROAM_CONFIG_RSP
9075 *---------------------------------------------------------------------------*/
9076
9077typedef PACKED_PRE struct PACKED_POST
9078{
9079 /* Success or Failure */
9080 tANI_U32 status;
9081} tConfigPerRoamRspParams, * tpConfigPerRoamRspParams;
9082
9083typedef PACKED_PRE struct PACKED_POST
9084{
9085 tHalMsgHeader header;
9086 tConfigPerRoamRspParams configPerRoamRspParams;
9087} tSetPerRoamConfigRsp, * tpSetPerRoamConfigRsp;
9088
9089/*---------------------------------------------------------------------------
9090 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ
9091 *---------------------------------------------------------------------------*/
9092
9093typedef PACKED_PRE struct PACKED_POST {
9094 bool roamScanReq;
9095} tStartRoamScanTriggerParams, * tpStartRoamScanTriggerParams;
9096
9097typedef PACKED_PRE struct PACKED_POST {
9098
9099 tHalMsgHeader header;
9100 tStartRoamScanTriggerParams startRoamScanTriggerParams;
9101} tStartRoamScanReq, *tpStartRoamScanReq;
9102
9103/*---------------------------------------------------------------------------
9104 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP
9105 *---------------------------------------------------------------------------*/
9106
9107typedef PACKED_PRE struct PACKED_POST
9108{
9109 /* Success /Failure / Nil result */
9110 tANI_U32 status;
9111} tConfigRoamScanRspParams, * tpConfigRoamScanRspParams;
9112
9113typedef PACKED_PRE struct PACKED_POST
9114{
9115 tHalMsgHeader header;
9116 tConfigRoamScanRspParams configRoamScanRspParams;
9117} tSetRoamScanConfigRsp, * tpSetRoamScanConfigRsp;
9118
Manjeet Singh4dedb502017-01-17 11:46:35 +05309119/*---------------------------------------------------------------------------
9120* WLAN_HAL_CAPTURE_GET_TSF_TSTAMP
9121*-------------------------------------------------------------------------*/
9122typedef PACKED_PRE struct PACKED_POST
9123{
9124 uint8 uBssIdx;
9125 boolean capTSFget;
9126}tHalCapTSFget, *tptHalCapTSFget;
9127
9128typedef PACKED_PRE struct PACKED_POST
9129{
9130 tHalMsgHeader header;
9131 tHalCapTSFget capTSFget;
9132}tHalCapTSFgetReqInd, *tpHalCapTSFgetReqInd;
9133
9134/*---------------------------------------------------------------------------
9135 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP
9136---------------------------------------------------------------------------*/
9137
9138typedef PACKED_PRE struct PACKED_POST
9139{
9140 /* Success /Failure / Nil result */
9141 tANI_U32 status;
9142 tANI_U32 tsf_lo;
9143 tANI_U32 tsf_hi;
9144} tConfigcapTSFgetRspParams, * tptConfigcapTSFgetRspParams;
9145
9146typedef PACKED_PRE struct PACKED_POST
9147{
9148 tHalMsgHeader header;
9149 tConfigcapTSFgetRspParams configcapTSFgetRspParams;
9150} tcapGetTSFConfigRsp, * tpcapGetTSFConfigRsp;
9151
Kapil Guptac1043632016-06-25 00:23:30 +05309152
9153#define PER_ROAM_MAX_AP_CNT 30
9154#define PER_ROAM_MAX_CANDIDATE_CNT 15
9155
9156/* Candidate Information to be shared in the Candidate Indication,
9157 * similar to what is sent in legacy roaming with following additional info
9158 */
9159
9160typedef PACKED_PRE struct PACKED_POST {
9161 tANI_U8 channelNumber;
9162 tANI_U8 channelCCA;
9163 tANI_U8 otherApCount;
9164 tANI_S8 otherApRssi[PER_ROAM_MAX_AP_CNT];
9165} tCandidateChannelInfo, * tpCandidateChannelInfo;
9166
9167typedef PACKED_PRE struct PACKED_POST {
9168 tANI_U32 candidateCount;
9169 tCandidateChannelInfo channelInfo[PER_ROAM_MAX_CANDIDATE_CNT];
9170} tPerRoamScanResult, * tpPerRoamScanResult;
9171
9172
9173/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309174 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
9175 *-------------------------------------------------------------------------*/
9176typedef PACKED_PRE struct PACKED_POST
9177{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05309178 tANI_U16 status;
9179 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309180 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9181 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9182} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
9183
9184typedef PACKED_PRE struct PACKED_POST
9185{
9186 tHalMsgHeader header;
9187 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
9188} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
9189
9190/*---------------------------------------------------------------------------
Kapil Guptae667f952016-12-20 18:23:27 +05309191 * WLAN_HAL_APFIND_CMDID
9192 * ---------------------------------------------------------------------------*/
9193
9194#define MAX_ARRAY_SIZE 1000
9195typedef PACKED_PRE struct PACKED_POST
9196{
9197 tANI_U16 msg_version:4;
9198 tANI_U16 msg_id:12;
9199 tANI_U16 msg_len:16;
9200 tANI_U16 handle;
9201 tANI_U16 transaction_id;
9202} tApfindMsgHeader, *tpApfindMsgHeader;
9203
9204typedef PACKED_PRE struct PACKED_POST
9205{
9206 tANI_U16 type;
9207 tANI_U16 length;
9208 tANI_U8* value;
9209} tApfindTlv, *tpApfindTlv;
9210
9211typedef PACKED_PRE struct PACKED_POST
9212{
9213 tApfindMsgHeader apFindHeader;
9214 tANI_U8 ptlv[MAX_ARRAY_SIZE];
9215} tQRFPrefNetwListParams, *tpQRFPrefNetwListParams;
9216
9217typedef enum
9218{
9219 APFIND_MSG_ID_ERROR_RSP = 0,
9220 APFIND_MSG_ID_ENABLE_REQ = 1,
9221 APFIND_MSG_ID_SET_SSID = 2,
9222 APFIND_MSG_ID_SET_MAC = 3,
9223 APFIND_MSG_ID_SET_PARAMS = 4,
9224} tApfindMsgId;
9225
9226typedef PACKED_PRE struct PACKED_POST
9227{
9228 tHalMsgHeader header;
9229 tQRFPrefNetwListParams qRFprefNetwListParams;
9230} tQRFSetPrefNetwListReq, *tpQRFSetPrefNetwListReq;
9231
9232#define QRF_MAX_SUPPORTED_NETWORKS 10
9233
9234typedef PACKED_PRE struct PACKED_POST {
9235 /*Network that was found with the highest RSSI*/
9236 tSirMacSSid ssId;
9237 /*Indicates the RSSI */
9238 tANI_U8 rssi;
9239 /* The MPDU frame length of a beacon or probe rsp.
9240 * data is the start of the frame
9241 */
9242 tANI_U16 frameLength;
9243} tQrfNetwFoundParam, *tpQrfNetwFoundParam;
9244
9245typedef PACKED_PRE struct PACKED_POST {
9246 uint8 netwCount;
9247 tQrfNetwFoundParam qrfNetwParams[QRF_MAX_SUPPORTED_NETWORKS];
9248} tQrfPrefNetwFoundParams, * tpQrfPrefNetwFoundParams;
9249
9250/*
9251 * Preferred network found indication
9252 */
9253typedef PACKED_PRE struct PACKED_POST {
9254 tHalMsgHeader header;
9255 tQrfPrefNetwFoundParams qrfPrefNetwFoundParams;
9256} tQrfPrefNetwFoundInd, *tpQrfPrefNetwFoundInd;
9257
9258
9259/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309260 * Logging mail box structure
9261 *-------------------------------------------------------------------------*/
9262
9263#define MAILBOX_VERSION_V1 0x1
9264
9265typedef PACKED_PRE struct PACKED_POST
9266{
9267 /* Logging mail box version */
9268 tANI_U8 logMbVersion;
9269 /* Current logging buffer address */
9270 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9271 /* Current logging buffer length */
9272 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9273 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
9274 tANI_U16 reasonCode;
9275 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
9276 tANI_U8 logType;
9277 /* Indicate if Last segment of log is received*/
9278 tANI_BOOLEAN done;
9279}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05309280
Katya Nigamf0511f62015-05-05 16:40:57 +05309281/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05309282 *WLAN_HAL_FW_MEMORY_DUMP_REQ
9283 *--------------------------------------------------------------------------*/
9284typedef PACKED_PRE struct PACKED_POST
9285{
9286 tANI_U32 reserved;
9287}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
9288
9289typedef PACKED_PRE struct PACKED_POST
9290{
9291 tHalMsgHeader header;
9292 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
9293} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
9294
9295/*---------------------------------------------------------------------------
9296 * WLAN_HAL_FW_MEMORY_DUMP_RSP
9297 *-------------------------------------------------------------------------*/
9298typedef PACKED_PRE struct PACKED_POST
9299{
9300 tANI_U32 status;
9301} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
9302
9303typedef PACKED_PRE struct PACKED_POST
9304{
9305 tHalMsgHeader header;
9306 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
9307} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
9308
9309
9310/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05309311* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
9312*-------------------------------------------------------------------------*/
9313
9314/* only 1 filter is supported as of now */
9315#define NUM_FILTERS_SUPPORTED 1
9316
9317typedef PACKED_PRE struct PACKED_POST
9318{
9319 tSirMacAddr macAddr;
9320 tANI_U8 isA1filteringNeeded;
9321 tANI_U8 isA2filteringNeeded;
9322 tANI_U8 isA3filteringNeeded;
9323}tHalMacFilter, *tpHalMacFilter;
9324
9325typedef PACKED_PRE struct PACKED_POST
9326{
9327 tANI_U8 channelNumber;
9328 ePhyChanBondState cbState;
9329
9330 tANI_U32 maxAmpduLen;
9331 tANI_U32 maxMpduInAmpduLen;
9332
9333 tANI_U8 crcCheckEnabled;
9334
9335 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
9336 tANI_U8 numMacFilters;
9337 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
9338
9339 /* Each bit position maps to IEEE convention of typeSubtype */
9340 tANI_U64 typeSubtypeBitmap;
9341
9342 tANI_U64 reserved;
9343
9344}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
9345
9346typedef PACKED_PRE struct PACKED_POST
9347{
9348 tHalMsgHeader header;
9349 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
9350}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
9351
9352
9353/*---------------------------------------------------------------------------
9354* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
9355*-------------------------------------------------------------------------*/
9356
9357typedef PACKED_PRE struct PACKED_POST
9358{
9359 tANI_U32 status;
9360}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
9361
9362typedef PACKED_PRE struct PACKED_POST
9363{
9364 tHalMsgHeader header;
9365 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
9366}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
9367
9368/*---------------------------------------------------------------------------
9369* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
9370*-------------------------------------------------------------------------*/
9371
9372typedef PACKED_PRE struct PACKED_POST
9373{
9374 tHalMsgHeader header;
9375 tANI_U8 resetConfiguration;
9376}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
9377
9378/*---------------------------------------------------------------------------
9379* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
9380*-------------------------------------------------------------------------*/
9381
9382typedef PACKED_PRE struct PACKED_POST
9383{
9384 tANI_U32 status;
9385}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
9386
9387typedef PACKED_PRE struct PACKED_POST
9388{
9389 tHalMsgHeader header;
9390 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
9391}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
9392
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05309393typedef PACKED_PRE struct PACKED_POST
9394{
9395 tANI_U8 status;
9396}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
9397
Arun Khandavalliafc16432015-10-16 20:11:31 +05309398typedef PACKED_PRE struct PACKED_POST
9399{
9400 tANI_U8 paramType;
9401 tANI_U32 paramValue;
9402 tSirMacAddr bssid;
9403} tSetWifiConfigParams, *tpSetWifiConfigParams;
9404
9405typedef PACKED_PRE struct PACKED_POST
9406{
9407 tHalMsgHeader header;
9408 tSetWifiConfigParams wifiConfigParams;
9409} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
9410
9411typedef PACKED_PRE struct PACKED_POST {
9412 tANI_U32 status;
9413} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
9414
9415typedef PACKED_PRE struct PACKED_POST
9416{
9417 tHalMsgHeader header;
9418
9419 tHalSetWifiConfigRspParams setWifiConfigRspParams;
9420} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
9421
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05309422/*---------------------------------------------------------------------------
9423* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
9424*-------------------------------------------------------------------------*/
9425typedef PACKED_PRE struct PACKED_POST
9426{
9427 tANI_U32 reserved;
9428} tHalAntennaDiversitySelectionReqParams, *tpHalAntennaDiversitySelectionReqParams;
9429
9430typedef PACKED_PRE struct PACKED_POST
9431{
9432 tHalMsgHeader header;
9433 tHalAntennaDiversitySelectionReqParams AntDivSelReqParams;
9434}tHalAntennaDiversitySelectionReqMsg;
9435
9436/*---------------------------------------------------------------------------
9437* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP
9438*-------------------------------------------------------------------------*/
9439
9440typedef PACKED_PRE struct PACKED_POST
9441{
9442 tANI_U16 status;
9443 tANI_U32 selectedAntennaId;
9444 tANI_U32 reserved;
9445} tHalAntennaDiversitySelectionRspParams, *tpHalAntennaDiversitySelectionRspParams;
9446
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +05309447/* WDI_MODIFY_ROAM_PARAMS_IND */
9448typedef PACKED_PRE struct PACKED_POST {
9449 tANI_U8 param;
9450 tANI_U32 value;
9451} tHalModifyRoamParamsIndParams, *tpHalModifyRoamParamsIndParams;
9452
9453typedef PACKED_PRE struct PACKED_POST
9454{
9455 tHalMsgHeader header;
9456 tHalModifyRoamParamsIndParams modifyRoamParamsReqParams;
9457} tHalModifyRoamParamsInd, *tpHalModifyRoamParamsInd;
9458
Agrawal Ashishc6aa0132016-12-09 15:59:29 +05309459typedef PACKED_PRE struct PACKED_POST
9460{
9461 tSirMacAddr selfMacAddr;
9462 tANI_U32 enable;
9463 tSirMacSSid ssId;
9464 tANI_U32 rsn_authmode;
9465 tANI_U32 rsn_ucastcipherset;
9466 tANI_U32 rsn_mcastcipherset;
9467 tANI_U32 rsn_mcastmgmtcipherset;
9468 tANI_U32 channel;
9469 tANI_U32 psk_len;
9470 tANI_U8 psk[1];
9471} tSapOffloadEnableMsg, *tpSapOffloadEnableMsg;
9472
9473typedef PACKED_PRE struct PACKED_POST
9474{
9475 tHalMsgHeader header;
9476 tSapOffloadEnableMsg SapOffloadEnableMsg;
9477} tHalSapoffloadEnable, *tpHalSapoffloadEnable;
9478
Anurag Chouhan9b3383a2016-12-13 22:29:55 +05309479/*---------------------------------------------------------------------------
9480 * WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ
9481 *--------------------------------------------------------------------------*/
9482typedef PACKED_PRE struct PACKED_POST
9483{
9484 tANI_U8 bss_idx;
9485 tANI_U32 enable;
9486 tANI_U32 srv_ipv4; /* server IP */
9487 tANI_U32 start_lsb; /* starting address assigned to client */
9488 tANI_U32 num_client; /* number of clients we support */
9489} hal_dhcp_srv_offload_req_param_t, *hal_dhcp_srv_offload_req_params;
9490
9491typedef PACKED_PRE struct PACKED_POST
9492{
9493 tHalMsgHeader header;
9494 hal_dhcp_srv_offload_req_param_t dhcp_srv_offload_req_params;
9495} hal_dhcp_srv_offload_req_msg_t;
9496
9497/*---------------------------------------------------------------------------
9498 * WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP
9499 *--------------------------------------------------------------------------*/
9500typedef PACKED_PRE struct PACKED_POST
9501{
9502 tANI_U32 status;
9503} hal_dhcp_srv_offload_rsp_param_t, *hal_dhcp_srv_offload_rsp_params;
9504
9505typedef PACKED_PRE struct PACKED_POST
9506{
9507 tHalMsgHeader header;
9508 hal_dhcp_srv_offload_rsp_param_t dhcp_srv_offload_rsp_params;
9509} hal_dhcp_srv_offload_rsp_msg_t, *hal_dhcp_srv_offload_rsp_msg;
9510
Anurag Chouhan9c3ddc72016-12-16 13:12:13 +05309511/*---------------------------------------------------------------------------
9512 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ
9513 *--------------------------------------------------------------------------*/
9514typedef PACKED_PRE struct PACKED_POST
9515{
9516 tANI_U8 bss_idx;
9517 tANI_U32 enable;
9518} hal_mdns_enable_offload_req_param_t, *hal_mdns_enable_offload_req_params;
9519
9520typedef PACKED_PRE struct PACKED_POST
9521{
9522 tHalMsgHeader header;
9523 hal_mdns_enable_offload_req_param_t mdns_enable_req_params;
9524} hal_mdns_enable_offload_req_msg_t;
9525
9526/*---------------------------------------------------------------------------
9527 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP
9528 *--------------------------------------------------------------------------*/
9529typedef PACKED_PRE struct PACKED_POST
9530{
9531 tANI_U32 status;
9532} hal_mdns_enable_offload_rsp_param_t, *hal_mdns_enable_offload_rsp_params;
9533
9534typedef PACKED_PRE struct PACKED_POST
9535{
9536 tHalMsgHeader header;
9537 hal_mdns_enable_offload_rsp_param_t mdns_enable_rsp_params;
9538} hal_mdns_enable_offload_rsp_msg_t, *hal_mdns_enable_offload_rsp_msg;
9539
9540/*---------------------------------------------------------------------------
9541 * WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ
9542 *--------------------------------------------------------------------------*/
9543typedef PACKED_PRE struct PACKED_POST
9544{
9545 tANI_U8 bss_idx;
9546 tANI_U32 type;
9547 tANI_U32 fqdn_len;
9548 tANI_U8 fqdn_data[1];
9549} hal_mdns_fqdn_offload_req_param_t, *hal_mdns_fqdn_offload_req_params;
9550
9551typedef PACKED_PRE struct PACKED_POST
9552{
9553 tHalMsgHeader header;
9554 hal_mdns_fqdn_offload_req_param_t mdns_fqdn_req_params;
9555} hal_mdns_fqdn_offload_req_msg_t;
9556
9557/*---------------------------------------------------------------------------
9558 * WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP
9559 *--------------------------------------------------------------------------*/
9560typedef PACKED_PRE struct PACKED_POST
9561{
9562 tANI_U32 status;
9563} hal_mdns_fqdn_offload_rsp_param_t, *hal_mdns_fqdn_offload_rsp_params;
9564
9565typedef PACKED_PRE struct PACKED_POST
9566{
9567 tHalMsgHeader header;
9568 hal_mdns_fqdn_offload_rsp_param_t mdns_fqdn_rsp_params;
9569} hal_mdns_fqdn_offload_rsp_msg_t, *hal_mdns_fqdn_offload_rsp_msg;
9570
9571/*---------------------------------------------------------------------------
9572 * WLAN_HAL_MDNS_RESP_OFFLOAD_REQ
9573 *--------------------------------------------------------------------------*/
9574typedef PACKED_PRE struct PACKED_POST
9575{
9576 tANI_U8 bss_idx;
9577 tANI_U32 ar_count;
9578 tANI_U32 resp_len;
9579 tANI_U8 resp_data[1];
9580} hal_mdns_resp_offload_req_param_t, *hal_mdns_resp_offload_req_params;
9581
9582typedef PACKED_PRE struct PACKED_POST
9583{
9584 tHalMsgHeader header;
9585 hal_mdns_resp_offload_req_param_t mdns_resp_req_params;
9586} hal_mdns_resp_offload_req_msg_t;
9587
9588/*---------------------------------------------------------------------------
9589 * WLAN_HAL_MDNS_RESP_OFFLOAD_RSP
9590 *--------------------------------------------------------------------------*/
9591typedef PACKED_PRE struct PACKED_POST
9592{
9593 tANI_U32 status;
9594} hal_mdns_resp_offload_rsp_param_t, *hal_mdns_resp_offload_rsp_params;
9595
9596typedef PACKED_PRE struct PACKED_POST
9597{
9598 tHalMsgHeader header;
9599 hal_mdns_resp_offload_rsp_param_t mdns_rsp_params;
9600} hal_mdns_resp_offload_rsp_msg_t, *hal_mdns_resp_offload_rsp_msg;
9601
9602/*---------------------------------------------------------------------------
9603 * WLAN_HAL_MDNS_STATS_OFFLOAD_REQ
9604 *--------------------------------------------------------------------------*/
9605typedef PACKED_PRE struct PACKED_POST
9606{
9607 tANI_U8 bss_idx;
9608} hal_mdns_stats_offload_req_param_t, *hal_mdns_stats_offload_req_params;
9609
9610typedef PACKED_PRE struct PACKED_POST
9611{
9612 tHalMsgHeader header;
9613 hal_mdns_stats_offload_req_param_t mdns_stats_req_params;
9614} hal_mdns_stats_offload_req_msg_t;
9615
9616/*---------------------------------------------------------------------------
9617 * WLAN_HAL_MDNS_STATS_OFFLOAD_RSP
9618 *--------------------------------------------------------------------------*/
9619typedef PACKED_PRE struct PACKED_POST
9620{
9621 tANI_U8 bss_idx;
9622 tANI_U32 current_ts;
9623 tANI_U32 last_query_ts;
9624 tANI_U32 last_rsp_ts;
9625 tANI_U32 tot_queries;
9626 tANI_U32 tot_matches;
9627 tANI_U32 tot_rsp;
9628 tANI_U32 status;
9629} hal_mdns_stats_offload_rsp_param_t, *hal_mdns_stats_offload_rsp_params;
9630
9631typedef PACKED_PRE struct PACKED_POST
9632{
9633 tHalMsgHeader header;
9634 hal_mdns_stats_offload_rsp_param_t mdns_stats_rsp_params;
9635} hal_mdns_stats_offload_rsp_msg_t, *hal_mdns_stats_offload_rsp_msg;
9636
Anurag Chouhance0f0822017-01-24 15:44:26 +05309637/*---------------------------------------------------------------------------
9638 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ
9639 *--------------------------------------------------------------------------*/
9640typedef PACKED_PRE struct PACKED_POST
9641{
9642 tANI_U8 set_clr; /*1 set and 0 reset*/
9643 tANI_U8 pkt_type; /* Default 1: ARP */
9644 tANI_U32 ip_addr; /*GW ipv4 address */
9645} tHalStatsArpReqParams, *tpHalStatsArpReqParams;
9646
9647typedef PACKED_PRE struct PACKED_POST
9648{
9649 tHalMsgHeader header;
9650 tHalStatsArpReqParams statsArpReqParams;
9651} tHalStatsArpReqMsg, *tpHalStatsArpReqMsg;
9652
9653/*---------------------------------------------------------------------------
9654 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP
9655 *--------------------------------------------------------------------------*/
9656typedef PACKED_PRE struct PACKED_POST
9657{
9658 tANI_U32 status; //success or failure
9659} tHalStatsArpRspParams, *tpHalStatsArpRspParams;
9660
9661typedef PACKED_PRE struct PACKED_POST
9662{
9663 tHalMsgHeader header;
9664 tHalStatsArpRspParams statsArpRspParams;
9665} tHalStatsArpRspMsg, *tpHalStatsArpRspMsg;
9666
9667/*---------------------------------------------------------------------------
9668 * WLAN_HAL_FW_GET_ARP_STATS_REQ
9669 *--------------------------------------------------------------------------*/
9670typedef PACKED_PRE struct PACKED_POST
9671{
9672 tANI_U8 pkt_type; /* Furture purpose */
9673} tHalStatsGetArpReqParams, *tpHalStatsGetArpReqParams;
9674
9675typedef PACKED_PRE struct PACKED_POST
9676{
9677 tHalMsgHeader header;
9678 tHalStatsGetArpReqParams statsGetArpReqParams;
9679} tHalStatsGetArpReqMsg, *tpHalStatsGetArpReqMsg;
9680
9681/*---------------------------------------------------------------------------
9682 * WLAN_HAL_FW_GET_ARP_STATS_RSP
9683 *--------------------------------------------------------------------------*/
9684typedef PACKED_PRE struct PACKED_POST
9685{
9686 tANI_U32 status;
9687 tANI_U16 dad;
9688 tANI_U16 arpReqRcvdInFW;
9689 tANI_U16 ackedArpReqCnt;
9690 tANI_U16 arpRspCnt;
9691 tANI_U8 data[1];
9692} tdbugArpStatsgetRspParams, *tpdbugArpStatsgetRspParams;
9693
9694typedef PACKED_PRE struct PACKED_POST
9695{
9696 tHalMsgHeader header;
9697 tdbugArpStatsgetRspParams fwArpstatsRspParams;
9698} tHalARPfwStatsRspMsg, *tpHalARPfwStatsRspMsg;
9699
Jeff Johnson295189b2012-06-20 16:38:30 -07009700#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
9701#pragma pack(pop)
9702#elif defined(__ANI_COMPILER_PRAGMA_PACK)
9703#else
9704#endif
9705
9706#endif /* _WLAN_HAL_MSG_H_ */