blob: d0a83fb358caacd6613bed1334d439b277ddc982 [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
Sourav Mohapatra72c2c342018-03-05 19:49:05 +0530631 WLAN_HAL_VOWIFI_IND = 360,
Ashish Kumar Dhanotiyac4c53842018-04-10 18:24:33 +0530632 WLAN_HAL_QPOWER_ENABLE_BY_HOST_IND = 361,
Sourav Mohapatra72c2c342018-03-05 19:49:05 +0530633
Sunil Dutt8377a382014-05-26 21:18:04 +0530634 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700635}tHalHostMsgType;
636
Jeff Johnsone7245742012-09-05 17:12:55 -0700637/* Enumeration for Version */
638typedef enum
639{
640 WLAN_HAL_MSG_VERSION0 = 0,
641 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800642 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
643 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700644}tHalHostMsgVersion;
645
Jeff Johnson295189b2012-06-20 16:38:30 -0700646/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530647typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700648{
649 eANI_BOOLEAN_FALSE = 0,
650 eANI_BOOLEAN_TRUE,
651 eANI_BOOLEAN_OFF = 0,
652 eANI_BOOLEAN_ON = 1,
653 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
654} eAniBoolean;
655
656typedef enum
657{
658 eDRIVER_TYPE_PRODUCTION = 0,
659 eDRIVER_TYPE_MFG = 1,
660 eDRIVER_TYPE_DVT = 2,
661 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
662} tDriverType;
663
664typedef enum
665{
666 HAL_STOP_TYPE_SYS_RESET,
667 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
668 HAL_STOP_TYPE_RF_KILL,
669 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
670}tHalStopType;
671
672typedef enum
673{
674 eHAL_SYS_MODE_NORMAL,
675 eHAL_SYS_MODE_LEARN,
676 eHAL_SYS_MODE_SCAN,
677 eHAL_SYS_MODE_PROMISC,
678 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700679 eHAL_SYS_MODE_ROAM_SCAN,
680 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700681 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700682 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
683} eHalSysMode;
684
685typedef enum
686{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800687 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
688 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
689 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
690 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
691 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
692 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
693 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
694 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
695 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700696 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800697 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
698} eHalChanSwitchSource;
699
700typedef enum
701{
Jeff Johnson295189b2012-06-20 16:38:30 -0700702 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
703 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
704 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
705 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700706#ifdef WLAN_FEATURE_11AC
707 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
708 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
709 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
710 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
711 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
712 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
713 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
714#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700715 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
716}ePhyChanBondState;
717
718// Spatial Multiplexing(SM) Power Save mode
719typedef enum eSirMacHTMIMOPowerSaveState
720{
721 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
722 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
723 eSIR_HT_MIMO_PS_NA = 2, // reserved
724 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
725 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
726} tSirMacHTMIMOPowerSaveState;
727
728/* each station added has a rate mode which specifies the sta attributes */
729typedef enum eStaRateMode {
730 eSTA_TAURUS = 0,
731 eSTA_TITAN,
732 eSTA_POLARIS,
733 eSTA_11b,
734 eSTA_11bg,
735 eSTA_11a,
736 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700737#ifdef WLAN_FEATURE_11AC
738 eSTA_11ac,
739#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700740 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
741} tStaRateMode, *tpStaRateMode;
742
743#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
744#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
745#define SIR_NUM_POLARIS_RATES 3 //72,96,108
746
747#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
748
749
750typedef enum eSirBssType
751{
752 eSIR_INFRASTRUCTURE_MODE,
753 eSIR_INFRA_AP_MODE, //Added for softAP support
754 eSIR_IBSS_MODE,
755 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
756 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
757 eSIR_AUTO_MODE,
758 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
759} tSirBssType;
760
761typedef enum eSirNwType
762{
763 eSIR_11A_NW_TYPE,
764 eSIR_11B_NW_TYPE,
765 eSIR_11G_NW_TYPE,
766 eSIR_11N_NW_TYPE,
767 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
768} tSirNwType;
769
770typedef tANI_U16 tSirMacBeaconInterval;
771
772#define SIR_MAC_RATESET_EID_MAX 12
773
774typedef enum eSirMacHTOperatingMode
775{
776 eSIR_HT_OP_MODE_PURE, // No Protection
777 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
778 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
779 eSIR_HT_OP_MODE_MIXED, // Protection is required
780 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
781} tSirMacHTOperatingMode;
782
Jeff Johnson295189b2012-06-20 16:38:30 -0700783/// Encryption type enum used with peer
784typedef enum eAniEdType
785{
786 eSIR_ED_NONE,
787 eSIR_ED_WEP40,
788 eSIR_ED_WEP104,
789 eSIR_ED_TKIP,
790 eSIR_ED_CCMP,
791 eSIR_ED_WPI,
792 eSIR_ED_AES_128_CMAC,
793 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
794} tAniEdType;
795
796#define WLAN_MAX_KEY_RSC_LEN 16
797#define WLAN_WAPI_KEY_RSC_LEN 16
798
799/// MAX key length when ULA is used
800#define SIR_MAC_MAX_KEY_LENGTH 32
801#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
802
803/// Enum to specify whether key is used
804/// for TX only, RX only or both
805typedef enum eAniKeyDirection
806{
807 eSIR_TX_ONLY,
808 eSIR_RX_ONLY,
809 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700810 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700811 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
812} tAniKeyDirection;
813
814typedef enum eAniWepType
815{
816 eSIR_WEP_STATIC,
817 eSIR_WEP_DYNAMIC,
818 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
819} tAniWepType;
820
821typedef enum eSriLinkState {
822
823 eSIR_LINK_IDLE_STATE = 0,
824 eSIR_LINK_PREASSOC_STATE = 1,
825 eSIR_LINK_POSTASSOC_STATE = 2,
826 eSIR_LINK_AP_STATE = 3,
827 eSIR_LINK_IBSS_STATE = 4,
828
829 /* BT-AMP Case */
830 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
831 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
832 eSIR_LINK_BTAMP_AP_STATE = 7,
833 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530834
Jeff Johnson295189b2012-06-20 16:38:30 -0700835 /* Reserved for HAL Internal Use */
836 eSIR_LINK_LEARN_STATE = 9,
837 eSIR_LINK_SCAN_STATE = 10,
838 eSIR_LINK_FINISH_SCAN_STATE = 11,
839 eSIR_LINK_INIT_CAL_STATE = 12,
840 eSIR_LINK_FINISH_CAL_STATE = 13,
841#ifdef WLAN_FEATURE_P2P
842 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530843 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700844#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700845#ifdef WLAN_FEATURE_ROAM_OFFLOAD
846 eSIR_LINK_FT_PREASSOC_STATE = 16,
847#endif
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +0530848#ifdef WLAN_FEATURE_LFR_MBB
849 eSIR_LINK_PRE_AUTH_REASSOC_STATE = 17,
850#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700851 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
852} tSirLinkState;
853
854typedef enum
855{
856 HAL_SUMMARY_STATS_INFO = 0x00000001,
857 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
858 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
859 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
860 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530861 HAL_PER_STA_STATS_INFO = 0x00000020,
862 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700863}eHalStatsMask;
864
865/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530866typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700867{
868 BTAMP_EVENT_CONNECTION_START,
869 BTAMP_EVENT_CONNECTION_STOP,
870 BTAMP_EVENT_CONNECTION_TERMINATED,
871 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
872} tBtAmpEventType;
873
874//***************************************************************
875
876
877/*******************PE Statistics*************************/
878typedef enum
879{
880 PE_SUMMARY_STATS_INFO = 0x00000001,
881 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
882 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
883 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
884 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
885 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530886 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700887 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
888}ePEStatsMask;
889
Sunil Dutt8377a382014-05-26 21:18:04 +0530890
891/******************************LINK LAYER Statitics**********************/
892
893typedef int wifi_radio;
894typedef int wifi_channel;
895typedef int wifi_tx_rate;
896
897/* channel operating width */
898typedef enum {
899 WIFI_CHAN_WIDTH_20 = 0,
900 WIFI_CHAN_WIDTH_40 = 1,
901 WIFI_CHAN_WIDTH_80 = 2,
902 WIFI_CHAN_WIDTH_160 = 3,
903 WIFI_CHAN_WIDTH_80P80 = 4,
904 WIFI_CHAN_WIDTH_5 = 5,
905 WIFI_CHAN_WIDTH_10 = 6,
906} wifi_channel_width;
907
908typedef enum {
909 WIFI_DISCONNECTED = 0,
910 WIFI_AUTHENTICATING = 1,
911 WIFI_ASSOCIATING = 2,
912 WIFI_ASSOCIATED = 3,
913 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
914 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
915} wifi_connection_state;
916
917typedef enum {
918 WIFI_ROAMING_IDLE = 0,
919 WIFI_ROAMING_ACTIVE = 1,
920} wifi_roam_state;
921
922typedef enum {
923 WIFI_INTERFACE_STA = 0,
924 WIFI_INTERFACE_SOFTAP = 1,
925 WIFI_INTERFACE_IBSS = 2,
926 WIFI_INTERFACE_P2P_CLIENT = 3,
927 WIFI_INTERFACE_P2P_GO = 4,
928 WIFI_INTERFACE_NAN = 5,
929 WIFI_INTERFACE_MESH = 6,
930 } wifi_interface_mode;
931
932#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
933#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
934#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
935#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
936#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
937#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
938
939typedef PACKED_PRE struct PACKED_POST
940{
941 wifi_interface_mode mode; // interface mode
942 tANI_U8 mac_addr[6]; // interface mac address (self)
943 wifi_connection_state state; // connection state (valid for STA, CLI only)
944 wifi_roam_state roaming; // roaming state
945 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
946 tANI_U8 ssid[33]; // null terminated SSID
947 tANI_U8 bssid[6]; // bssid
948 tANI_U8 ap_country_str[3]; // country string advertised by AP
949 tANI_U8 country_str[3]; // country string for this association
950} wifi_interface_info;
951
952/* channel information */
953typedef PACKED_PRE struct PACKED_POST
954{
955 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
956 wifi_channel center_freq; // primary 20 MHz channel
957 wifi_channel center_freq0; // center frequency (MHz) first segment
958 wifi_channel center_freq1; // center frequency (MHz) second segment
959} wifi_channel_info;
960
961/* wifi rate info */
962typedef PACKED_PRE struct PACKED_POST
963{
964 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
965 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
966 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
967 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
968 // HT/VHT it would be mcs index
969 tANI_U32 reserved :16; // reserved
970 tANI_U32 bitrate; // units of 100 Kbps
971} wifi_rate;
972
973/* channel statistics */
974typedef PACKED_PRE struct PACKED_POST
975{
976 wifi_channel_info channel; // channel
977 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
978 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
979} wifi_channel_stats;
980
981/* radio statistics */
982typedef PACKED_PRE struct PACKED_POST
983{
984 wifi_radio radio; // wifi radio (if multiple radio supported)
985 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
986 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
987 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
988 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
989 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
990 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
991 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
992 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
993 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
994 tANI_U32 num_channels; // number of channels
995 wifi_channel_stats channels[1]; // channel statistics
996} wifi_radio_stat;
997
998/* per rate statistics */
999typedef PACKED_PRE struct PACKED_POST
1000{
1001 wifi_rate rate; // rate information *
1002 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
1003 tANI_U32 rx_mpdu; // number of received data pkts
1004 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
1005 tANI_U32 retries; // total number of data pkt retries *
1006 tANI_U32 retries_short; // number of short data pkt retries
1007 tANI_U32 retries_long; // number of long data pkt retries
1008} wifi_rate_stat;
1009
1010/* access categories */
1011typedef enum {
1012 WIFI_AC_VO = 0,
1013 WIFI_AC_VI = 1,
1014 WIFI_AC_BE = 2,
1015 WIFI_AC_BK = 3,
1016 WIFI_AC_MAX = 4,
1017} wifi_traffic_ac;
1018
1019/* wifi peer type */
1020typedef enum
1021{
1022 WIFI_PEER_STA,
1023 WIFI_PEER_AP,
1024 WIFI_PEER_P2P_GO,
1025 WIFI_PEER_P2P_CLIENT,
1026 WIFI_PEER_NAN,
1027 WIFI_PEER_TDLS,
1028 WIFI_PEER_INVALID,
1029} wifi_peer_type;
1030
1031/* per peer statistics */
1032typedef PACKED_PRE struct PACKED_POST
1033{
1034 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
1035 tANI_U8 peer_mac_address[6]; // mac address
1036 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
1037 tANI_U32 num_rate; // number of rates
1038 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
1039} wifi_peer_info;
1040
1041/* per access category statistics */
1042typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301043{
1044 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
1045 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
1046 tANI_U32 rx_mpdu; // number of received unicast mpdus
1047 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1048 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1049 tANI_U32 rx_mcast; // number of received multicast data packets
1050 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1051 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1052 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1053 tANI_U32 retries; // total number of data pkt retries
1054 tANI_U32 retries_short; // number of short data pkt retries
1055 tANI_U32 retries_long; // number of long data pkt retries
1056 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1057 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1058 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1059 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1060} wifi_wmm_ac_stat;
1061
Mukul Sharma03f86492015-10-20 16:10:13 +05301062typedef PACKED_PRE struct PACKED_POST
1063{
1064 tANI_U64 average_tsf_offset;
1065 tANI_U32 leaky_ap_avg_num_frames_leaked;
1066 tANI_U32 leaky_ap_guard_time;
1067 tANI_U32 leaky_ap_detected;
1068} wifi_iface_leaky_ap_info;
1069
Sunil Dutt8377a382014-05-26 21:18:04 +05301070/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1071typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301072{
1073 wifi_interface_info info; // current state of the interface
1074 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1075 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1076 tANI_U32 mgmt_action_rx; // action frames received count
1077 tANI_U32 mgmt_action_tx; // action frames transmit count
1078 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1079 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1080 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1081 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
Mukul Sharma03f86492015-10-20 16:10:13 +05301082 wifi_iface_leaky_ap_info leakyApInfo;
Sunil Dutt8377a382014-05-26 21:18:04 +05301083} wifi_iface_stat;
1084
1085/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1086typedef PACKED_PRE struct PACKED_POST
1087{
1088 tANI_U32 num_peers; // number of peers
1089 wifi_peer_info peer_info[1]; // per peer statistics
1090} wifi_peer_stat;
1091
1092/* wifi statistics bitmap for getting statistics */
1093#define WMI_LINK_STATS_RADIO 0x00000001
1094#define WMI_LINK_STATS_IFACE 0x00000002
1095#define WMI_LINK_STATS_ALL_PEER 0x00000004
1096#define WMI_LINK_STATS_PER_PEER 0x00000008
1097
1098/* wifi statistics bitmap for clearing statistics */
1099#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1100#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1101#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1102#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1103#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1104#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1105#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1106#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1107
1108
Jeff Johnson295189b2012-06-20 16:38:30 -07001109/*---------------------------------------------------------------------------
1110 Message definitons - All the messages below need to be packed
1111 ---------------------------------------------------------------------------*/
1112
1113#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1114#pragma pack(push, 1)
1115#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1116#pragma pack(1)
1117#else
1118#endif
1119
1120/// Definition for HAL API Version.
1121typedef PACKED_PRE struct PACKED_POST
1122{
1123 tANI_U8 revision;
1124 tANI_U8 version;
1125 tANI_U8 minor;
1126 tANI_U8 major;
1127} tWcnssWlanVersion, *tpWcnssWlanVersion;
1128
1129/// Definition for Encryption Keys
1130typedef PACKED_PRE struct PACKED_POST
1131{
1132 tANI_U8 keyId;
1133 tANI_U8 unicast; // 0 for multicast
1134 tAniKeyDirection keyDirection;
1135 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1136 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1137 tANI_U16 keyLength;
1138 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1139} tSirKeys, *tpSirKeys;
1140
1141
1142//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1143typedef PACKED_PRE struct PACKED_POST
1144{
1145 /*STA Index*/
1146 tANI_U16 staIdx;
1147
1148 /*Encryption Type used with peer*/
1149 tAniEdType encType;
1150
1151 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301152 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001153
1154 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1155 tANI_U8 defWEPIdx;
1156
Jeff Johnson295189b2012-06-20 16:38:30 -07001157 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301158 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1159
Jeff Johnson295189b2012-06-20 16:38:30 -07001160 /*Control for Replay Count, 1= Single TID based replay count on Tx
1161 0 = Per TID based replay count on TX */
1162 tANI_U8 singleTidRc;
1163
1164} tSetStaKeyParams, *tpSetStaKeyParams;
1165
1166
1167
1168/* 4-byte control message header used by HAL*/
1169typedef PACKED_PRE struct PACKED_POST
1170{
Jeff Johnsone7245742012-09-05 17:12:55 -07001171 tHalHostMsgType msgType:16;
1172 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001173 tANI_U32 msgLen;
1174} tHalMsgHeader, *tpHalMsgHeader;
1175
1176/* Config format required by HAL for each CFG item*/
1177typedef PACKED_PRE struct PACKED_POST
1178{
1179 /* Cfg Id. The Id required by HAL is exported by HAL
1180 * in shared header file between UMAC and HAL.*/
1181 tANI_U16 uCfgId;
1182
Dino Mycle8afbac12014-07-04 22:06:17 +05301183 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001184 * in the TLV format.*/
1185 tANI_U16 uCfgLen;
1186
1187 /* Padding bytes for unaligned address's */
1188 tANI_U16 uCfgPadBytes;
1189
1190 /* Reserve bytes for making cfgVal to align address */
1191 tANI_U16 uCfgReserve;
1192
1193 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1194 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1195} tHalCfg, *tpHalCfg;
1196
1197/*---------------------------------------------------------------------------
1198 WLAN_HAL_START_REQ
1199---------------------------------------------------------------------------*/
1200
1201typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1202{
1203 /* Drive Type - Production or FTM etc */
1204 tDriverType driverType;
1205
1206 /*Length of the config buffer*/
1207 tANI_U32 uConfigBufferLen;
1208
Dino Mycle8afbac12014-07-04 22:06:17 +05301209 /* Following this there is a TLV formatted buffer of length
1210 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001211 * The TLV is expected to be formatted like this:
1212 * 0 15 31 31+CFG_LEN-1 length-1
1213 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1214 */
1215} tHalMacStartParameters, *tpHalMacStartParameters;
1216
1217typedef PACKED_PRE struct PACKED_POST
1218{
1219 /* Note: The length specified in tHalMacStartReqMsg messages should be
1220 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1221 tHalMsgHeader header;
1222 tHalMacStartParameters startReqParams;
1223} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1224
1225/*---------------------------------------------------------------------------
1226 WLAN_HAL_START_RSP
1227---------------------------------------------------------------------------*/
1228
1229typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1230{
1231 /*success or failure */
1232 tANI_U16 status;
1233
1234 /*Max number of STA supported by the device*/
1235 tANI_U8 ucMaxStations;
1236
1237 /*Max number of BSS supported by the device*/
1238 tANI_U8 ucMaxBssids;
1239
1240 /*API Version */
1241 tWcnssWlanVersion wcnssWlanVersion;
1242
1243 /*CRM build information */
1244 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1245
1246 /*hardware/chipset/misc version information */
1247 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1248
1249} tHalMacStartRspParams, *tpHalMacStartRspParams;
1250
1251typedef PACKED_PRE struct PACKED_POST
1252{
1253 tHalMsgHeader header;
1254 tHalMacStartRspParams startRspParams;
1255} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1256
1257/*---------------------------------------------------------------------------
1258 WLAN_HAL_STOP_REQ
1259---------------------------------------------------------------------------*/
1260
1261typedef PACKED_PRE struct PACKED_POST
1262{
1263 /*The reason for which the device is being stopped*/
1264 tHalStopType reason;
1265
1266}tHalMacStopReqParams, *tpHalMacStopReqParams;
1267
1268typedef PACKED_PRE struct PACKED_POST
1269{
1270 tHalMsgHeader header;
1271 tHalMacStopReqParams stopReqParams;
1272} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1273
1274/*---------------------------------------------------------------------------
1275 WLAN_HAL_STOP_RSP
1276---------------------------------------------------------------------------*/
1277
1278typedef PACKED_PRE struct PACKED_POST
1279{
1280 /*success or failure */
1281 tANI_U32 status;
1282
1283}tHalMacStopRspParams, *tpHalMacStopRspParams;
1284
1285typedef PACKED_PRE struct PACKED_POST
1286{
1287 tHalMsgHeader header;
1288 tHalMacStopRspParams stopRspParams;
1289} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1290
1291/*---------------------------------------------------------------------------
1292 WLAN_HAL_UPDATE_CFG_REQ
1293---------------------------------------------------------------------------*/
1294
1295typedef PACKED_PRE struct PACKED_POST
1296{
1297 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1298 tANI_U32 uConfigBufferLen;
1299
Dino Mycle8afbac12014-07-04 22:06:17 +05301300 /* Following this there is a TLV formatted buffer of length
1301 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001302 * The TLV is expected to be formatted like this:
1303 * 0 15 31 31+CFG_LEN-1 length-1
1304 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1305 */
1306} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1307
1308typedef PACKED_PRE struct PACKED_POST
1309{
1310 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1311 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1312 tHalMsgHeader header;
1313 tHalUpdateCfgReqParams updateCfgReqParams;
1314} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1315
1316/*---------------------------------------------------------------------------
1317 WLAN_HAL_UPDATE_CFG_RSP
1318---------------------------------------------------------------------------*/
1319
1320typedef PACKED_PRE struct PACKED_POST
1321{
1322 /* success or failure */
1323 tANI_U32 status;
1324
1325}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1326
1327typedef PACKED_PRE struct PACKED_POST
1328{
1329 tHalMsgHeader header;
1330 tHalUpdateCfgRspParams updateCfgRspParams;
1331} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1332
1333/*---------------------------------------------------------------------------
1334 WLAN_HAL_INIT_SCAN_REQ
1335---------------------------------------------------------------------------*/
1336
1337/// Frame control field format (2 bytes)
1338typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1339{
1340
1341#ifndef ANI_LITTLE_BIT_ENDIAN
1342
1343 tANI_U8 subType :4;
1344 tANI_U8 type :2;
1345 tANI_U8 protVer :2;
1346
1347 tANI_U8 order :1;
1348 tANI_U8 wep :1;
1349 tANI_U8 moreData :1;
1350 tANI_U8 powerMgmt :1;
1351 tANI_U8 retry :1;
1352 tANI_U8 moreFrag :1;
1353 tANI_U8 fromDS :1;
1354 tANI_U8 toDS :1;
1355
1356#else
1357
1358 tANI_U8 protVer :2;
1359 tANI_U8 type :2;
1360 tANI_U8 subType :4;
1361
1362 tANI_U8 toDS :1;
1363 tANI_U8 fromDS :1;
1364 tANI_U8 moreFrag :1;
1365 tANI_U8 retry :1;
1366 tANI_U8 powerMgmt :1;
1367 tANI_U8 moreData :1;
1368 tANI_U8 wep :1;
1369 tANI_U8 order :1;
1370
1371#endif
1372
1373} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1374
1375/// Sequence control field
1376typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1377{
1378 tANI_U8 fragNum : 4;
1379 tANI_U8 seqNumLo : 4;
1380 tANI_U8 seqNumHi : 8;
1381} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1382
1383/// Management header format
1384typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1385{
1386 tSirMacFrameCtl fc;
1387 tANI_U8 durationLo;
1388 tANI_U8 durationHi;
1389 tANI_U8 da[6];
1390 tANI_U8 sa[6];
1391 tANI_U8 bssId[6];
1392 tSirMacSeqCtl seqControl;
1393} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1394
1395/// Scan Entry to hold active BSS idx's
1396typedef __ani_attr_pre_packed struct sSirScanEntry
1397{
1398 tANI_U8 bssIdx[HAL_NUM_BSSID];
1399 tANI_U8 activeBSScnt;
1400}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1401
1402typedef PACKED_PRE struct PACKED_POST {
1403
1404 /*LEARN - AP Role
1405 SCAN - STA Role*/
1406 eHalSysMode scanMode;
1407
1408 /*BSSID of the BSS*/
1409 tSirMacAddr bssid;
1410
1411 /*Whether BSS needs to be notified*/
1412 tANI_U8 notifyBss;
1413
1414 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1415 CTS to Self). Must always be a valid frame type.*/
1416 tANI_U8 frameType;
1417
1418 /*UMAC has the option of passing the MAC frame to be used for notifying
1419 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1420 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1421 frameType.*/
1422 tANI_U8 frameLength;
1423
Dino Mycle8afbac12014-07-04 22:06:17 +05301424 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001425 is non-zero. */
1426 tSirMacMgmtHdr macMgmtHdr;
1427
1428 /*Entry to hold number of active BSS idx's*/
1429 tSirScanEntry scanEntry;
1430
1431} tInitScanParams, * tpInitScanParams;
1432
1433typedef PACKED_PRE struct PACKED_POST
1434{
1435 tHalMsgHeader header;
1436 tInitScanParams initScanParams;
1437} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1438
1439typedef PACKED_PRE struct PACKED_POST {
1440
1441 /*LEARN - AP Role
1442 SCAN - STA Role*/
1443 eHalSysMode scanMode;
1444
1445 /*BSSID of the BSS*/
1446 tSirMacAddr bssid;
1447
1448 /*Whether BSS needs to be notified*/
1449 tANI_U8 notifyBss;
1450
1451 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1452 CTS to Self). Must always be a valid frame type.*/
1453 tANI_U8 frameType;
1454
1455 /*UMAC has the option of passing the MAC frame to be used for notifying
1456 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1457 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1458 frameType.*/
1459 tANI_U8 frameLength;
1460
Dino Mycle8afbac12014-07-04 22:06:17 +05301461 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001462 is non-zero. */
1463 tSirMacMgmtHdr macMgmtHdr;
1464
1465 /*Entry to hold number of active BSS idx's*/
1466 tSirScanEntry scanEntry;
1467
1468 /* Single NoA usage in Scanning */
1469 tANI_U8 useNoA;
1470
1471 /* Indicates the scan duration (in ms) */
1472 tANI_U16 scanDuration;
1473
1474} tInitScanConParams, * tpInitScanConParams;
1475
1476typedef PACKED_PRE struct PACKED_POST
1477{
1478 tHalMsgHeader header;
1479 tInitScanConParams initScanParams;
1480} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1481
1482
1483/*---------------------------------------------------------------------------
1484 WLAN_HAL_INIT_SCAN_RSP
1485---------------------------------------------------------------------------*/
1486
1487typedef PACKED_PRE struct PACKED_POST
1488{
1489 /*success or failure */
1490 tANI_U32 status;
1491
1492}tHalInitScanRspParams, *tpHalInitScanRspParams;
1493
1494typedef PACKED_PRE struct PACKED_POST
1495{
1496 tHalMsgHeader header;
1497 tHalInitScanRspParams initScanRspParams;
1498} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1499
1500/*---------------------------------------------------------------------------
1501 WLAN_HAL_START_SCAN_REQ
1502---------------------------------------------------------------------------*/
1503
Dino Mycle8afbac12014-07-04 22:06:17 +05301504typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001505{
1506 /*Indicates the channel to scan*/
1507 tANI_U8 scanChannel;
1508
1509 } tStartScanParams, * tpStartScanParams;
1510
1511typedef PACKED_PRE struct PACKED_POST
1512{
1513 tHalMsgHeader header;
1514 tStartScanParams startScanParams;
1515} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1516
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001517typedef PACKED_PRE struct PACKED_POST
1518{
1519 tHalMsgHeader header;
1520} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1521
Jeff Johnson295189b2012-06-20 16:38:30 -07001522/*---------------------------------------------------------------------------
1523 WLAN_HAL_START_SCAN_RSP
1524---------------------------------------------------------------------------*/
1525
1526typedef PACKED_PRE struct PACKED_POST
1527{
1528 /*success or failure */
1529 tANI_U32 status;
1530
1531 tANI_U32 startTSF[2];
1532 tPowerdBm txMgmtPower;
1533
1534}tHalStartScanRspParams, *tpHalStartScanRspParams;
1535
1536typedef PACKED_PRE struct PACKED_POST
1537{
1538 tHalMsgHeader header;
1539 tHalStartScanRspParams startScanRspParams;
1540} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1541
1542/*---------------------------------------------------------------------------
1543 WLAN_HAL_END_SCAN_REQ
1544---------------------------------------------------------------------------*/
1545
1546typedef PACKED_PRE struct PACKED_POST
1547{
1548 /*Indicates the channel to stop scanning. Not used really. But retained
1549 for symmetry with "start Scan" message. It can also help in error
1550 check if needed.*/
1551 tANI_U8 scanChannel;
1552
1553} tEndScanParams, *tpEndScanParams;
1554
1555typedef PACKED_PRE struct PACKED_POST
1556{
1557 tHalMsgHeader header;
1558 tEndScanParams endScanParams;
1559} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1560
1561/*---------------------------------------------------------------------------
1562 WLAN_HAL_END_SCAN_RSP
1563---------------------------------------------------------------------------*/
1564
1565typedef PACKED_PRE struct PACKED_POST
1566{
1567 /*success or failure */
1568 tANI_U32 status;
1569
1570}tHalEndScanRspParams, *tpHalEndScanRspParams;
1571
1572typedef PACKED_PRE struct PACKED_POST
1573{
1574 tHalMsgHeader header;
1575 tHalEndScanRspParams endScanRspParams;
1576} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1577
1578/*---------------------------------------------------------------------------
1579 WLAN_HAL_FINISH_SCAN_REQ
1580---------------------------------------------------------------------------*/
1581
1582typedef PACKED_PRE struct PACKED_POST
1583{
1584 /* Identifies the operational state of the AP/STA
1585 * LEARN - AP Role SCAN - STA Role */
1586 eHalSysMode scanMode;
1587
1588 /*Operating channel to tune to.*/
1589 tANI_U8 currentOperChannel;
1590
1591 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1592 40 MHz extension channel in combination with the control channel*/
1593 ePhyChanBondState cbState;
1594
1595 /*BSSID of the BSS*/
1596 tSirMacAddr bssid;
1597
1598 /*Whether BSS needs to be notified*/
1599 tANI_U8 notifyBss;
1600
1601 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1602 CTS to Self). Must always be a valid frame type.*/
1603 tANI_U8 frameType;
1604
1605 /*UMAC has the option of passing the MAC frame to be used for notifying
1606 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1607 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1608 frameType.*/
1609 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301610
1611 /*Following the framelength there is a MAC frame buffer if frameLength
1612 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001613 tSirMacMgmtHdr macMgmtHdr;
1614
1615 /*Entry to hold number of active BSS idx's*/
1616 tSirScanEntry scanEntry;
1617
1618} tFinishScanParams, *tpFinishScanParams;
1619
1620typedef PACKED_PRE struct PACKED_POST
1621{
1622 tHalMsgHeader header;
1623 tFinishScanParams finishScanParams;
1624} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1625
1626/*---------------------------------------------------------------------------
1627 WLAN_HAL_FINISH_SCAN_RSP
1628---------------------------------------------------------------------------*/
1629
1630typedef PACKED_PRE struct PACKED_POST
1631{
1632 /*success or failure */
1633 tANI_U32 status;
1634
1635}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1636
1637typedef PACKED_PRE struct PACKED_POST
1638{
1639 tHalMsgHeader header;
1640 tHalFinishScanRspParams finishScanRspParams;
1641} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1642
Srinivas Dasari42584632014-11-26 20:37:19 +05301643typedef PACKED_PRE struct PACKED_POST
1644{
1645 tSetStaKeyParams keyParams;
1646 uint8 pn[6];
1647} tHalEncConfigParams;
1648
1649typedef PACKED_PRE struct PACKED_POST
1650{
1651 uint16 length;
1652 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1653} tHalDisaPayload;
1654
1655typedef PACKED_PRE struct PACKED_POST
1656{
1657#ifdef BYTE_ORDER_BIG_ENDIAN
1658 uint8 reserved1 : 1;
1659 uint8 ackpolicy : 2;
1660 uint8 eosp : 1;
1661 uint8 tid : 4;
1662
1663 uint8 appsbufferstate : 8;
1664#else
1665 uint8 appsbufferstate : 8;
1666
1667 uint8 tid : 4;
1668 uint8 eosp : 1;
1669 uint8 ackpolicy : 2;
1670 uint8 reserved1 : 1;
1671#endif
1672} tHalQosCtrlFieldType;
1673
1674typedef PACKED_PRE struct PACKED_POST
1675 {
1676#ifdef BYTE_ORDER_BIG_ENDIAN
1677 uint16 subtype : 4;
1678 uint16 type : 2;
1679 uint16 protocol : 2;
1680
1681 uint16 order : 1;
1682 uint16 wep : 1;
1683 uint16 moredata : 1;
1684 uint16 pm : 1;
1685 uint16 retry : 1;
1686 uint16 morefrag : 1;
1687 uint16 fromds : 1;
1688 uint16 tods : 1;
1689#else
1690
1691 uint16 tods : 1;
1692 uint16 fromds : 1;
1693 uint16 morefrag : 1;
1694 uint16 retry : 1;
1695 uint16 pm : 1;
1696 uint16 moredata : 1;
1697 uint16 wep : 1;
1698 uint16 order : 1;
1699
1700 uint16 protocol : 2;
1701 uint16 type : 2;
1702 uint16 subtype : 4;
1703#endif
1704} tHalFrmCtrlType;
1705
1706typedef PACKED_PRE struct PACKED_POST
1707{
1708 /* Frame control field */
1709 tHalFrmCtrlType fc;
1710 /* Duration ID */
1711 uint16 usDurationId;
1712 /* Address 1 field */
1713 uint8 vA1[HAL_MAC_ADDR_LEN];
1714 /* Address 2 field */
1715 uint8 vA2[HAL_MAC_ADDR_LEN];
1716 /* Address 3 field */
1717 uint8 vA3[HAL_MAC_ADDR_LEN];
1718 /* Sequence control field */
1719 uint16 seqNum;
1720 /* Optional A4 address */
1721 uint8 optvA4[HAL_MAC_ADDR_LEN];
1722 /* Optional QOS control field */
1723 tHalQosCtrlFieldType usQosCtrl;
1724} tHal80211Header;
1725
1726typedef PACKED_PRE struct PACKED_POST
1727{
1728 tHal80211Header macHeader;
1729 tHalEncConfigParams encParams;
1730 tHalDisaPayload data;
1731} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1732
1733typedef PACKED_PRE struct PACKED_POST
1734{
1735 tHalMsgHeader header;
1736 tSetEncryptedDataParams encryptedDataParams;
1737} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1738
1739typedef PACKED_PRE struct PACKED_POST
1740{
1741 tANI_U32 status;
1742 tHalDisaPayload encryptedPayload;
1743} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1744
1745typedef PACKED_PRE struct PACKED_POST
1746{
1747 tHalMsgHeader header;
1748 tSetEncryptedDataRspParams encryptedDataRspParams;
1749} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1750
Jeff Johnson295189b2012-06-20 16:38:30 -07001751/*---------------------------------------------------------------------------
1752 WLAN_HAL_CONFIG_STA_REQ
1753---------------------------------------------------------------------------*/
1754
1755typedef PACKED_PRE struct PACKED_POST {
1756 /*
1757 * For Self STA Entry: this represents Self Mode.
1758 * For Peer Stations, this represents the mode of the peer.
1759 * On Station:
1760 * --this mode is updated when PE adds the Self Entry.
1761 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1762 * ON AP:
1763 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1764 * to indicate the self mode of the AP.
1765 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1766 */
1767
1768 tStaRateMode opRateMode;
1769 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1770 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1771 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1772 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1773 tANI_U16 reserved;
1774
1775 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1776 //First 26 bits are reserved for those Titan rates and
1777 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1778 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1779
1780 /*
1781 * 0-76 bits used, remaining reserved
1782 * bits 0-15 and 32 should be set.
1783 */
1784 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1785
1786 /*
1787 * RX Highest Supported Data Rate defines the highest data
1788 * rate that the STA is able to receive, in unites of 1Mbps.
1789 * This value is derived from "Supported MCS Set field" inside
1790 * the HT capability element.
1791 */
1792 tANI_U16 rxHighestDataRate;
1793
1794} tSirSupportedRates, *tpSirSupportedRates;
1795
1796typedef PACKED_PRE struct PACKED_POST
1797{
1798 /*BSSID of STA*/
1799 tSirMacAddr bssId;
1800
1801 /*ASSOC ID, as assigned by UMAC*/
1802 tANI_U16 assocId;
1803
1804 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1805 tANI_U8 staType;
1806
1807 /*Short Preamble Supported.*/
1808 tANI_U8 shortPreambleSupported;
1809
1810 /*MAC Address of STA*/
1811 tSirMacAddr staMac;
1812
1813 /*Listen interval of the STA*/
1814 tANI_U16 listenInterval;
1815
1816 /*Support for 11e/WMM*/
1817 tANI_U8 wmmEnabled;
1818
1819 /*11n HT capable STA*/
1820 tANI_U8 htCapable;
1821
1822 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1823 tANI_U8 txChannelWidthSet;
1824
1825 /*RIFS mode 0 - NA, 1 - Allowed */
1826 tANI_U8 rifsMode;
1827
Dino Mycle8afbac12014-07-04 22:06:17 +05301828 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001829 0 - No Support, 1 - Supported
1830 SG - there is global field */
1831 tANI_U8 lsigTxopProtection;
1832
1833 /*Max Ampdu Size supported by STA. TPE programming.
1834 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1835 tANI_U8 maxAmpduSize;
1836
1837 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1838 tANI_U8 maxAmpduDensity;
1839
1840 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1841 tANI_U8 maxAmsduSize;
1842
1843 /*Short GI support for 40Mhz packets*/
1844 tANI_U8 fShortGI40Mhz;
1845
1846 /*Short GI support for 20Mhz packets*/
1847 tANI_U8 fShortGI20Mhz;
1848
Jeff Johnson295189b2012-06-20 16:38:30 -07001849 /*Robust Management Frame (RMF) enabled/disabled*/
1850 tANI_U8 rmfEnabled;
1851
1852 /* The unicast encryption type in the association */
1853 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001854
1855 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001856 will set this flag in case of RE-ASSOC, where we want to reuse the old
1857 STA ID. 0 = Add, 1 = Update*/
1858 tANI_U8 action;
1859
1860 /*U-APSD Flags: 1b per AC. Encoded as follows:
1861 b7 b6 b5 b4 b3 b2 b1 b0 =
1862 X X X X BE BK VI VO */
1863 tANI_U8 uAPSD;
1864
1865 /*Max SP Length*/
1866 tANI_U8 maxSPLen;
1867
1868 /*11n Green Field preamble support
1869 0 - Not supported, 1 - Supported */
1870 tANI_U8 greenFieldCapable;
1871
1872 /*MIMO Power Save mode*/
1873 tSirMacHTMIMOPowerSaveState mimoPS;
1874
1875 /*Delayed BA Support*/
1876 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001877
Jeff Johnson295189b2012-06-20 16:38:30 -07001878 /*Max AMPDU duration in 32us*/
1879 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001880
Jeff Johnson295189b2012-06-20 16:38:30 -07001881 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1882 it to 0 if AP does not support it. This indication is sent to HAL and
1883 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1884 tANI_U8 fDsssCckMode40Mhz;
1885
1886 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1887 Retained for backward compalibity with existing HAL code*/
1888 tANI_U8 staIdx;
1889
1890 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1891 Retained for backward compalibity with existing HAL code*/
1892 tANI_U8 bssIdx;
1893
1894 tANI_U8 p2pCapableSta;
1895
Jeff Johnsone7245742012-09-05 17:12:55 -07001896 /*Reserved to align next field on a dword boundary*/
1897 tANI_U8 reserved;
1898
1899 /*These rates are the intersection of peer and self capabilities.*/
1900 tSirSupportedRates supportedRates;
1901
Jeff Johnson295189b2012-06-20 16:38:30 -07001902} tConfigStaParams, *tpConfigStaParams;
1903
Jeff Johnsone7245742012-09-05 17:12:55 -07001904/*------------------------------------------------------------------------
1905 * WLAN_HAL_CONFIG_STA_REQ
1906 * ----------------------------------------------------------------------*/
1907
1908typedef PACKED_PRE struct PACKED_POST {
1909 /*
1910 * For Self STA Entry: this represents Self Mode.
1911 * For Peer Stations, this represents the mode of the peer.
1912 * On Station:
1913 * --this mode is updated when PE adds the Self Entry.
1914 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1915 * ON AP:
1916 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1917 * to indicate the self mode of the AP.
1918 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1919 */
1920
1921 tStaRateMode opRateMode;
1922 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1923 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1924 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1925 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1926 tANI_U16 reserved;
1927
1928 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1929 //First 26 bits are reserved for those Titan rates and
1930 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1931 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1932
1933 /*
1934 * 0-76 bits used, remaining reserved
1935 * bits 0-15 and 32 should be set.
1936 */
1937 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1938
1939 /*
1940 * RX Highest Supported Data Rate defines the highest data
1941 * rate that the STA is able to receive, in unites of 1Mbps.
1942 * This value is derived from "Supported MCS Set field" inside
1943 * the HT capability element.
1944 */
1945 tANI_U16 rxHighestDataRate;
1946
1947 /* Indicates the Maximum MCS that can be received for each number
1948 * of spacial streams */
1949 tANI_U16 vhtRxMCSMap;
1950
1951 /*Indicate the highest VHT data rate that the STA is able to receive*/
1952 tANI_U16 vhtRxHighestDataRate;
1953
1954 /* Indicates the Maximum MCS that can be transmitted for each number
1955 * of spacial streams */
1956 tANI_U16 vhtTxMCSMap;
1957
1958 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1959 tANI_U16 vhtTxHighestDataRate;
1960
1961} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1962
1963typedef PACKED_PRE struct PACKED_POST
1964{
1965 /*BSSID of STA*/
1966 tSirMacAddr bssId;
1967
1968 /*ASSOC ID, as assigned by UMAC*/
1969 tANI_U16 assocId;
1970
1971 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1972 tANI_U8 staType;
1973
1974 /*Short Preamble Supported.*/
1975 tANI_U8 shortPreambleSupported;
1976
1977 /*MAC Address of STA*/
1978 tSirMacAddr staMac;
1979
1980 /*Listen interval of the STA*/
1981 tANI_U16 listenInterval;
1982
1983 /*Support for 11e/WMM*/
1984 tANI_U8 wmmEnabled;
1985
1986 /*11n HT capable STA*/
1987 tANI_U8 htCapable;
1988
1989 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1990 tANI_U8 txChannelWidthSet;
1991
1992 /*RIFS mode 0 - NA, 1 - Allowed */
1993 tANI_U8 rifsMode;
1994
1995 /*L-SIG TXOP Protection mechanism
1996 0 - No Support, 1 - Supported
1997 SG - there is global field */
1998 tANI_U8 lsigTxopProtection;
1999
2000 /*Max Ampdu Size supported by STA. TPE programming.
2001 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
2002 tANI_U8 maxAmpduSize;
2003
2004 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
2005 tANI_U8 maxAmpduDensity;
2006
2007 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
2008 tANI_U8 maxAmsduSize;
2009
2010 /*Short GI support for 40Mhz packets*/
2011 tANI_U8 fShortGI40Mhz;
2012
2013 /*Short GI support for 20Mhz packets*/
2014 tANI_U8 fShortGI20Mhz;
2015
2016 /*Robust Management Frame (RMF) enabled/disabled*/
2017 tANI_U8 rmfEnabled;
2018
2019 /* The unicast encryption type in the association */
2020 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05302021
2022 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07002023 will set this flag in case of RE-ASSOC, where we want to reuse the old
2024 STA ID. 0 = Add, 1 = Update*/
2025 tANI_U8 action;
2026
2027 /*U-APSD Flags: 1b per AC. Encoded as follows:
2028 b7 b6 b5 b4 b3 b2 b1 b0 =
2029 X X X X BE BK VI VO */
2030 tANI_U8 uAPSD;
2031
2032 /*Max SP Length*/
2033 tANI_U8 maxSPLen;
2034
2035 /*11n Green Field preamble support
2036 0 - Not supported, 1 - Supported */
2037 tANI_U8 greenFieldCapable;
2038
2039 /*MIMO Power Save mode*/
2040 tSirMacHTMIMOPowerSaveState mimoPS;
2041
2042 /*Delayed BA Support*/
2043 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05302044
Jeff Johnsone7245742012-09-05 17:12:55 -07002045 /*Max AMPDU duration in 32us*/
2046 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05302047
Jeff Johnsone7245742012-09-05 17:12:55 -07002048 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
2049 it to 0 if AP does not support it. This indication is sent to HAL and
2050 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
2051 tANI_U8 fDsssCckMode40Mhz;
2052
2053 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
2054 Retained for backward compalibity with existing HAL code*/
2055 tANI_U8 staIdx;
2056
2057 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2058 Retained for backward compalibity with existing HAL code*/
2059 tANI_U8 bssIdx;
2060
2061 tANI_U8 p2pCapableSta;
2062
2063 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002064 tANI_U8 htLdpcEnabled:1;
2065 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002066 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302067 tANI_U8 vhtTxMUBformeeCapable:1;
2068 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002069
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002070 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002071 tSirSupportedRates_V1 supportedRates;
2072
2073 tANI_U8 vhtCapable;
2074 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002075
Jeff Johnsone7245742012-09-05 17:12:55 -07002076} tConfigStaParams_V1, *tpConfigStaParams_V1;
2077
Jeff Johnson295189b2012-06-20 16:38:30 -07002078typedef PACKED_PRE struct PACKED_POST
2079{
2080 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002081 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002082 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002083 tConfigStaParams_V1 configStaParams_V1;
2084 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002085} tConfigStaReqMsg, *tpConfigStaReqMsg;
2086
2087/*---------------------------------------------------------------------------
2088 WLAN_HAL_CONFIG_STA_RSP
2089---------------------------------------------------------------------------*/
2090
2091typedef PACKED_PRE struct PACKED_POST
2092{
2093 /*success or failure */
2094 tANI_U32 status;
2095
2096 /* Station index; valid only when 'status' field value SUCCESS */
2097 tANI_U8 staIdx;
2098
2099 /* BSSID Index of BSS to which the station is associated */
2100 tANI_U8 bssIdx;
2101
2102 /* DPU Index for PTK */
2103 tANI_U8 dpuIndex;
2104
Dino Mycle8afbac12014-07-04 22:06:17 +05302105 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002106 tANI_U8 bcastDpuIndex;
2107
2108 /*DPU Index for IGTK */
2109 tANI_U8 bcastMgmtDpuIdx;
2110
2111 /*PTK DPU signature*/
2112 tANI_U8 ucUcastSig;
2113
2114 /*GTK DPU isignature*/
2115 tANI_U8 ucBcastSig;
2116
2117 /* IGTK DPU signature*/
2118 tANI_U8 ucMgmtSig;
2119
2120 tANI_U8 p2pCapableSta;
2121
2122}tConfigStaRspParams, *tpConfigStaRspParams;
2123
2124typedef PACKED_PRE struct PACKED_POST
2125{
2126 tHalMsgHeader header;
2127 tConfigStaRspParams configStaRspParams;
2128}tConfigStaRspMsg, *tpConfigStaRspMsg;
2129
2130/*---------------------------------------------------------------------------
2131 WLAN_HAL_DELETE_STA_REQ
2132---------------------------------------------------------------------------*/
2133
2134/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302135typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002136{
2137 /* Index of STA to delete */
2138 tANI_U8 staIdx;
2139} tDeleteStaParams, *tpDeleteStaParams;
2140
2141/* Delete STA Request message*/
2142typedef PACKED_PRE struct PACKED_POST
2143{
2144 tHalMsgHeader header;
2145 tDeleteStaParams delStaParams;
2146} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2147
2148/*---------------------------------------------------------------------------
2149 WLAN_HAL_DELETE_STA_RSP
2150---------------------------------------------------------------------------*/
2151
2152/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302153typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002154{
2155 /*success or failure */
2156 tANI_U32 status;
2157
2158 /* Index of STA deleted */
2159 tANI_U8 staId;
2160} tDeleteStaRspParams, *tpDeleteStaRspParams;
2161
2162/* Delete STA Response message*/
2163typedef PACKED_PRE struct PACKED_POST
2164{
2165 tHalMsgHeader header;
2166 tDeleteStaRspParams delStaRspParams;
2167} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2168
2169/*---------------------------------------------------------------------------
2170 WLAN_HAL_CONFIG_BSS_REQ
2171---------------------------------------------------------------------------*/
2172
2173//12 Bytes long because this structure can be used to represent rate
2174//and extended rate set IEs. The parser assume this to be at least 12
2175typedef __ani_attr_pre_packed struct sSirMacRateSet
2176{
2177 tANI_U8 numRates;
2178 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2179} __ani_attr_packed tSirMacRateSet;
2180
2181// access category record
2182typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2183{
2184#ifndef ANI_LITTLE_BIT_ENDIAN
2185 tANI_U8 rsvd : 1;
2186 tANI_U8 aci : 2;
2187 tANI_U8 acm : 1;
2188 tANI_U8 aifsn : 4;
2189#else
2190 tANI_U8 aifsn : 4;
2191 tANI_U8 acm : 1;
2192 tANI_U8 aci : 2;
2193 tANI_U8 rsvd : 1;
2194#endif
2195} __ani_attr_packed tSirMacAciAifsn;
2196
2197// contention window size
2198typedef __ani_attr_pre_packed struct sSirMacCW
2199{
2200#ifndef ANI_LITTLE_BIT_ENDIAN
2201 tANI_U8 max : 4;
2202 tANI_U8 min : 4;
2203#else
2204 tANI_U8 min : 4;
2205 tANI_U8 max : 4;
2206#endif
2207} __ani_attr_packed tSirMacCW;
2208
2209typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2210{
2211 tSirMacAciAifsn aci;
2212 tSirMacCW cw;
2213 tANI_U16 txoplimit;
2214} __ani_attr_packed tSirMacEdcaParamRecord;
2215
2216typedef __ani_attr_pre_packed struct sSirMacSSid
2217{
2218 tANI_U8 length;
2219 tANI_U8 ssId[32];
2220} __ani_attr_packed tSirMacSSid;
2221
2222// Concurrency role. These are generic IDs that identify the various roles
2223// in the software system.
2224typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302225 HAL_STA_MODE=0,
2226 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002227 HAL_P2P_CLIENT_MODE,
2228 HAL_P2P_GO_MODE,
2229 HAL_MONITOR_MODE,
2230} tHalConMode;
2231
2232//This is a bit pattern to be set for each mode
2233//bit 0 - sta mode
2234//bit 1 - ap mode
2235//bit 2 - p2p client mode
2236//bit 3 - p2p go mode
2237typedef enum
2238{
Dino Mycle8afbac12014-07-04 22:06:17 +05302239 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002240 HAL_SAP=2,
2241 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2242 HAL_P2P_CLIENT=4,
2243 HAL_P2P_GO=8,
2244 HAL_MAX_CONCURRENCY_PERSONA=4
2245} tHalConcurrencyMode;
2246
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002247// IFACE PERSONA for different Operating modes
2248typedef enum
2249{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002250 HAL_IFACE_UNKNOWN=0,
2251 HAL_IFACE_STA_MODE=1,
2252 HAL_IFACE_P2P_MODE=2,
2253 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002254} tHalIfacePersona;
2255
Jeff Johnson295189b2012-06-20 16:38:30 -07002256typedef PACKED_PRE struct PACKED_POST
2257{
2258 /* BSSID */
2259 tSirMacAddr bssId;
2260
Jeff Johnson295189b2012-06-20 16:38:30 -07002261 /* Self Mac Address */
2262 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002263
2264 /* BSS type */
2265 tSirBssType bssType;
2266
2267 /*Operational Mode: AP =0, STA = 1*/
2268 tANI_U8 operMode;
2269
2270 /*Network Type*/
2271 tSirNwType nwType;
2272
2273 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2274 tANI_U8 shortSlotTimeSupported;
2275
2276 /*Co-exist with 11a STA*/
2277 tANI_U8 llaCoexist;
2278
2279 /*Co-exist with 11b STA*/
2280 tANI_U8 llbCoexist;
2281
2282 /*Co-exist with 11g STA*/
2283 tANI_U8 llgCoexist;
2284
2285 /*Coexistence with 11n STA*/
2286 tANI_U8 ht20Coexist;
2287
2288 /*Non GF coexist flag*/
2289 tANI_U8 llnNonGFCoexist;
2290
2291 /*TXOP protection support*/
2292 tANI_U8 fLsigTXOPProtectionFullSupport;
2293
2294 /*RIFS mode*/
2295 tANI_U8 fRIFSMode;
2296
2297 /*Beacon Interval in TU*/
2298 tSirMacBeaconInterval beaconInterval;
2299
2300 /*DTIM period*/
2301 tANI_U8 dtimPeriod;
2302
2303 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2304 tANI_U8 txChannelWidthSet;
2305
2306 /*Operating channel*/
2307 tANI_U8 currentOperChannel;
2308
2309 /*Extension channel for channel bonding*/
2310 tANI_U8 currentExtChannel;
2311
2312 /*Reserved to align next field on a dword boundary*/
2313 tANI_U8 reserved;
2314
Jeff Johnsone7245742012-09-05 17:12:55 -07002315 /*SSID of the BSS*/
2316 tSirMacSSid ssId;
2317
2318 /*HAL should update the existing BSS entry, if this flag is set.
2319 UMAC will set this flag in case of reassoc, where we want to resue the
2320 the old BSSID and still return success 0 = Add, 1 = Update*/
2321 tANI_U8 action;
2322
2323 /* MAC Rate Set */
2324 tSirMacRateSet rateSet;
2325
2326 /*Enable/Disable HT capabilities of the BSS*/
2327 tANI_U8 htCapable;
2328
2329 // Enable/Disable OBSS protection
2330 tANI_U8 obssProtEnabled;
2331
2332 /*RMF enabled/disabled*/
2333 tANI_U8 rmfEnabled;
2334
2335 /*HT Operating Mode operating mode of the 802.11n STA*/
2336 tSirMacHTOperatingMode htOperMode;
2337
2338 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2339 tANI_U8 dualCTSProtection;
2340
2341 /* Probe Response Max retries */
2342 tANI_U8 ucMaxProbeRespRetryLimit;
2343
2344 /* To Enable Hidden ssid */
2345 tANI_U8 bHiddenSSIDEn;
2346
2347 /* To Enable Disable FW Proxy Probe Resp */
2348 tANI_U8 bProxyProbeRespEn;
2349
2350 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2351 EDCA params or might not desire to apply EDCA params during config BSS.
2352 0 implies Not Valid ; Non-Zero implies valid*/
2353 tANI_U8 edcaParamsValid;
2354
2355 /*EDCA Parameters for Best Effort Access Category*/
2356 tSirMacEdcaParamRecord acbe;
2357
2358 /*EDCA Parameters forBackground Access Category*/
2359 tSirMacEdcaParamRecord acbk;
2360
2361 /*EDCA Parameters for Video Access Category*/
2362 tSirMacEdcaParamRecord acvi;
2363
2364 /*EDCA Parameters for Voice Access Category*/
2365 tSirMacEdcaParamRecord acvo;
2366
2367#ifdef WLAN_FEATURE_VOWIFI_11R
2368 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2369 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2370#endif
2371
2372 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2373 tANI_U8 halPersona;
2374
2375 tANI_U8 bSpectrumMgtEnable;
2376
2377 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2378 tANI_S8 txMgmtPower;
2379 /*maxTxPower has max power to be used after applying the power constraint if any */
2380 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002381 /*Context of the station being added in HW
2382 Add a STA entry for "itself" -
2383 On AP - Add the AP itself in an "STA context"
2384 On STA - Add the AP to which this STA is joining in an "STA context" */
2385 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002386} tConfigBssParams, * tpConfigBssParams;
2387
2388
2389/*--------------------------------------------------------------------------
2390 * WLAN_HAL_CONFIG_BSS_REQ
2391 *--------------------------------------------------------------------------*/
2392typedef PACKED_PRE struct PACKED_POST
2393{
2394 /* BSSID */
2395 tSirMacAddr bssId;
2396
Jeff Johnsone7245742012-09-05 17:12:55 -07002397 /* Self Mac Address */
2398 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002399
2400 /* BSS type */
2401 tSirBssType bssType;
2402
2403 /*Operational Mode: AP =0, STA = 1*/
2404 tANI_U8 operMode;
2405
2406 /*Network Type*/
2407 tSirNwType nwType;
2408
2409 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2410 tANI_U8 shortSlotTimeSupported;
2411
2412 /*Co-exist with 11a STA*/
2413 tANI_U8 llaCoexist;
2414
2415 /*Co-exist with 11b STA*/
2416 tANI_U8 llbCoexist;
2417
2418 /*Co-exist with 11g STA*/
2419 tANI_U8 llgCoexist;
2420
2421 /*Coexistence with 11n STA*/
2422 tANI_U8 ht20Coexist;
2423
2424 /*Non GF coexist flag*/
2425 tANI_U8 llnNonGFCoexist;
2426
2427 /*TXOP protection support*/
2428 tANI_U8 fLsigTXOPProtectionFullSupport;
2429 /*RIFS mode*/
2430 tANI_U8 fRIFSMode;
2431
2432 /*Beacon Interval in TU*/
2433 tSirMacBeaconInterval beaconInterval;
2434
2435 /*DTIM period*/
2436 tANI_U8 dtimPeriod;
2437
2438 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2439 tANI_U8 txChannelWidthSet;
2440
2441 /*Operating channel*/
2442 tANI_U8 currentOperChannel;
2443
2444 /*Extension channel for channel bonding*/
2445 tANI_U8 currentExtChannel;
2446
2447 /*Reserved to align next field on a dword boundary*/
2448 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002449
2450 /*SSID of the BSS*/
2451 tSirMacSSid ssId;
2452
2453 /*HAL should update the existing BSS entry, if this flag is set.
2454 UMAC will set this flag in case of reassoc, where we want to resue the
2455 the old BSSID and still return success 0 = Add, 1 = Update*/
2456 tANI_U8 action;
2457
2458 /* MAC Rate Set */
2459 tSirMacRateSet rateSet;
2460
2461 /*Enable/Disable HT capabilities of the BSS*/
2462 tANI_U8 htCapable;
2463
2464 // Enable/Disable OBSS protection
2465 tANI_U8 obssProtEnabled;
2466
2467 /*RMF enabled/disabled*/
2468 tANI_U8 rmfEnabled;
2469
2470 /*HT Operating Mode operating mode of the 802.11n STA*/
2471 tSirMacHTOperatingMode htOperMode;
2472
2473 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2474 tANI_U8 dualCTSProtection;
2475
2476 /* Probe Response Max retries */
2477 tANI_U8 ucMaxProbeRespRetryLimit;
2478
2479 /* To Enable Hidden ssid */
2480 tANI_U8 bHiddenSSIDEn;
2481
2482 /* To Enable Disable FW Proxy Probe Resp */
2483 tANI_U8 bProxyProbeRespEn;
2484
Dino Mycle8afbac12014-07-04 22:06:17 +05302485 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2486 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002487 0 implies Not Valid ; Non-Zero implies valid*/
2488 tANI_U8 edcaParamsValid;
2489
2490 /*EDCA Parameters for Best Effort Access Category*/
2491 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302492
Jeff Johnson295189b2012-06-20 16:38:30 -07002493 /*EDCA Parameters forBackground Access Category*/
2494 tSirMacEdcaParamRecord acbk;
2495
2496 /*EDCA Parameters for Video Access Category*/
2497 tSirMacEdcaParamRecord acvi;
2498
2499 /*EDCA Parameters for Voice Access Category*/
2500 tSirMacEdcaParamRecord acvo;
2501
2502#ifdef WLAN_FEATURE_VOWIFI_11R
2503 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2504 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2505#endif
2506
Dino Mycle8afbac12014-07-04 22:06:17 +05302507 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002508 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302509
Jeff Johnson295189b2012-06-20 16:38:30 -07002510 tANI_U8 bSpectrumMgtEnable;
2511
2512 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2513 tANI_S8 txMgmtPower;
2514 /*maxTxPower has max power to be used after applying the power constraint if any */
2515 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002516 /*Context of the station being added in HW
2517 Add a STA entry for "itself" -
2518 On AP - Add the AP itself in an "STA context"
2519 On STA - Add the AP to which this STA is joining in an "STA context" */
2520 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302521
Jeff Johnsone7245742012-09-05 17:12:55 -07002522 tANI_U8 vhtCapable;
2523 tANI_U8 vhtTxChannelWidthSet;
2524} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002525
2526typedef PACKED_PRE struct PACKED_POST
2527{
2528 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002529 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002530 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002531 tConfigBssParams_V1 configBssParams_V1;
2532 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002533} tConfigBssReqMsg, *tpConfigBssReqMsg;
2534
2535/*---------------------------------------------------------------------------
2536 WLAN_HAL_CONFIG_BSS_RSP
2537---------------------------------------------------------------------------*/
2538
2539typedef PACKED_PRE struct PACKED_POST
2540{
2541 /* Success or Failure */
2542 tANI_U32 status;
2543
2544 /* BSS index allocated by HAL */
2545 tANI_U8 bssIdx;
2546
2547 /* DPU descriptor index for PTK */
2548 tANI_U8 dpuDescIndx;
2549
2550 /* PTK DPU signature */
2551 tANI_U8 ucastDpuSignature;
2552
2553 /* DPU descriptor index for GTK*/
2554 tANI_U8 bcastDpuDescIndx;
2555
2556 /* GTK DPU signature */
2557 tANI_U8 bcastDpuSignature;
2558
2559 /*DPU descriptor for IGTK*/
2560 tANI_U8 mgmtDpuDescIndx;
2561
2562 /* IGTK DPU signature */
2563 tANI_U8 mgmtDpuSignature;
2564
2565 /* Station Index for BSS entry*/
2566 tANI_U8 bssStaIdx;
2567
2568 /* Self station index for this BSS */
2569 tANI_U8 bssSelfStaIdx;
2570
2571 /* Bcast station for buffering bcast frames in AP role */
2572 tANI_U8 bssBcastStaIdx;
2573
2574 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2575 tSirMacAddr staMac;
2576
2577 /*HAL fills in the tx power used for mgmt frames in this field. */
2578 tANI_S8 txMgmtPower;
2579
2580} tConfigBssRspParams, * tpConfigBssRspParams;
2581
2582typedef PACKED_PRE struct PACKED_POST
2583{
2584 tHalMsgHeader header;
2585 tConfigBssRspParams configBssRspParams;
2586} tConfigBssRspMsg, *tpConfigBssRspMsg;
2587
2588/*---------------------------------------------------------------------------
2589 WLAN_HAL_DELETE_BSS_REQ
2590---------------------------------------------------------------------------*/
2591
2592typedef PACKED_PRE struct PACKED_POST
2593{
2594 /* BSS index to be deleted */
2595 tANI_U8 bssIdx;
2596
2597} tDeleteBssParams, *tpDeleteBssParams;
2598
2599typedef PACKED_PRE struct PACKED_POST
2600{
2601 tHalMsgHeader header;
2602 tDeleteBssParams deleteBssParams;
2603} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2604
2605/*---------------------------------------------------------------------------
2606 WLAN_HAL_DELETE_BSS_RSP
2607---------------------------------------------------------------------------*/
2608
2609typedef PACKED_PRE struct PACKED_POST
2610{
2611 /* Success or Failure */
2612 tANI_U32 status;
2613
2614 /* BSS index that has been deleted */
2615 tANI_U8 bssIdx;
2616
2617} tDeleteBssRspParams, *tpDeleteBssRspParams;
2618
2619typedef PACKED_PRE struct PACKED_POST
2620{
2621 tHalMsgHeader header;
2622 tDeleteBssRspParams deleteBssRspParams;
2623} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2624
2625/*---------------------------------------------------------------------------
2626 WLAN_HAL_JOIN_REQ
2627---------------------------------------------------------------------------*/
2628
2629typedef PACKED_PRE struct PACKED_POST
2630{
2631 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302632 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002633
2634 /*Indicates the channel to switch to.*/
2635 tANI_U8 ucChannel;
2636
2637 /* Self STA MAC */
2638 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302639
Jeff Johnson295189b2012-06-20 16:38:30 -07002640 /*Local power constraint*/
2641 tANI_U8 ucLocalPowerConstraint;
2642
2643 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002644 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002645
2646 /*link State*/
2647 tSirLinkState linkState;
2648
2649 /* Max TX power */
2650 tANI_S8 maxTxPower;
2651
2652} tHalJoinReqParams, *tpHalJoinReqParams;
2653
2654typedef PACKED_PRE struct PACKED_POST
2655{
2656 tHalMsgHeader header;
2657 tHalJoinReqParams joinReqParams;
2658} tHalJoinReqMsg, *tpHalJoinReqMsg;
2659
2660/*---------------------------------------------------------------------------
2661 WLAN_HAL_JOIN_RSP
2662---------------------------------------------------------------------------*/
2663
2664typedef PACKED_PRE struct PACKED_POST
2665{
2666 /*success or failure */
2667 tANI_U32 status;
2668
2669 /* HAL fills in the tx power used for mgmt frames in this field */
2670 tPowerdBm txMgmtPower;
2671
2672}tHalJoinRspParams, *tpHalJoinRspParams;
2673
2674typedef PACKED_PRE struct PACKED_POST
2675{
2676 tHalMsgHeader header;
2677 tHalJoinRspParams joinRspParams;
2678}tHalJoinRspMsg, *tpHalJoinRspMsg;
2679
2680/*---------------------------------------------------------------------------
2681 WLAN_HAL_POST_ASSOC_REQ
2682---------------------------------------------------------------------------*/
2683
2684typedef PACKED_PRE struct PACKED_POST
2685{
2686 tConfigStaParams configStaParams;
2687 tConfigBssParams configBssParams;
2688} tPostAssocReqParams, *tpPostAssocReqParams;
2689
2690typedef PACKED_PRE struct PACKED_POST
2691{
2692 tHalMsgHeader header;
2693 tPostAssocReqParams postAssocReqParams;
2694} tPostAssocReqMsg, *tpPostAssocReqMsg;
2695
2696/*---------------------------------------------------------------------------
2697 WLAN_HAL_POST_ASSOC_RSP
2698---------------------------------------------------------------------------*/
2699
2700typedef PACKED_PRE struct PACKED_POST
2701{
2702 tConfigStaRspParams configStaRspParams;
2703 tConfigBssRspParams configBssRspParams;
2704} tPostAssocRspParams, *tpPostAssocRspParams;
2705
2706typedef PACKED_PRE struct PACKED_POST
2707{
2708 tHalMsgHeader header;
2709 tPostAssocRspParams postAssocRspParams;
2710} tPostAssocRspMsg, *tpPostAssocRspMsg;
2711
2712/*---------------------------------------------------------------------------
2713 WLAN_HAL_SET_BSSKEY_REQ
2714---------------------------------------------------------------------------*/
2715
2716/*
2717 * This is used by PE to create a set of WEP keys for a given BSS.
2718 */
2719typedef PACKED_PRE struct PACKED_POST
2720{
2721 /*BSS Index of the BSS*/
2722 tANI_U8 bssIdx;
2723
2724 /*Encryption Type used with peer*/
2725 tAniEdType encType;
2726
2727 /*Number of keys*/
2728 tANI_U8 numKeys;
2729
2730 /*Array of keys.*/
2731 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302732
Jeff Johnson295189b2012-06-20 16:38:30 -07002733 /*Control for Replay Count, 1= Single TID based replay count on Tx
2734 0 = Per TID based replay count on TX */
2735 tANI_U8 singleTidRc;
2736} tSetBssKeyParams, *tpSetBssKeyParams;
2737
2738typedef PACKED_PRE struct PACKED_POST
2739{
2740 tHalMsgHeader header;
2741 tSetBssKeyParams setBssKeyParams;
2742} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2743
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002744/* tagged version of set bss key */
2745typedef PACKED_PRE struct PACKED_POST
2746{
2747 tSetBssKeyReqMsg Msg;
2748 uint32 Tag;
2749} tSetBssKeyReqMsgTagged;
2750
Jeff Johnson295189b2012-06-20 16:38:30 -07002751/*---------------------------------------------------------------------------
2752 WLAN_HAL_SET_BSSKEY_RSP
2753---------------------------------------------------------------------------*/
2754typedef PACKED_PRE struct PACKED_POST
2755{
2756 /*success or failure */
2757 tANI_U32 status;
2758
2759} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2760
2761typedef PACKED_PRE struct PACKED_POST
2762{
2763 tHalMsgHeader header;
2764 tSetBssKeyRspParams setBssKeyRspParams;
2765} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2766
2767/*---------------------------------------------------------------------------
2768 WLAN_HAL_SET_STAKEY_REQ,
2769---------------------------------------------------------------------------*/
2770
2771/*
2772 * This is used by PE to configure the key information on a given station.
2773 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2774 * a preconfigured key from a BSS the station assoicated with; otherwise
2775 * a new key descriptor is created based on the key field.
2776 */
2777
2778typedef PACKED_PRE struct PACKED_POST
2779{
2780 tHalMsgHeader header;
2781 tSetStaKeyParams setStaKeyParams;
2782} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2783
2784/*---------------------------------------------------------------------------
2785 WLAN_HAL_SET_STAKEY_RSP,
2786---------------------------------------------------------------------------*/
2787typedef PACKED_PRE struct PACKED_POST
2788{
2789 /*success or failure */
2790 tANI_U32 status;
2791
2792} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2793
2794typedef PACKED_PRE struct PACKED_POST
2795{
2796 tHalMsgHeader header;
2797 tSetStaKeyRspParams setStaKeyRspParams;
2798} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2799
2800/*---------------------------------------------------------------------------
2801 WLAN_HAL_RMV_BSSKEY_REQ,
2802---------------------------------------------------------------------------*/
2803/*
2804 * This is used by PE to remove keys for a given BSS.
2805 */
2806typedef PACKED_PRE struct PACKED_POST
2807
2808{
2809 /*BSS Index of the BSS*/
2810 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302811
Jeff Johnson295189b2012-06-20 16:38:30 -07002812 /*Encryption Type used with peer*/
2813 tAniEdType encType;
2814
2815 /*Key Id*/
2816 tANI_U8 keyId;
2817
2818 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2819 tAniWepType wepType;
2820
2821} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2822
2823typedef PACKED_PRE struct PACKED_POST
2824{
2825 tHalMsgHeader header;
2826 tRemoveBssKeyParams removeBssKeyParams;
2827} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2828
2829/*---------------------------------------------------------------------------
2830 WLAN_HAL_RMV_BSSKEY_RSP,
2831---------------------------------------------------------------------------*/
2832typedef PACKED_PRE struct PACKED_POST
2833{
2834 /*success or failure */
2835 tANI_U32 status;
2836
2837} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2838
2839typedef PACKED_PRE struct PACKED_POST
2840{
2841 tHalMsgHeader header;
2842 tRemoveBssKeyRspParams removeBssKeyRspParams;
2843} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2844
2845/*---------------------------------------------------------------------------
2846 WLAN_HAL_RMV_STAKEY_REQ,
2847---------------------------------------------------------------------------*/
2848/*
2849 * This is used by PE to Remove the key information on a given station.
2850 */
2851typedef PACKED_PRE struct PACKED_POST
2852{
2853 /*STA Index*/
2854 tANI_U16 staIdx;
2855
2856 /*Encryption Type used with peer*/
2857 tAniEdType encType;
2858
2859 /*Key Id*/
2860 tANI_U8 keyId;
2861
2862 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2863 the same key is used for both broadcast and unicast.*/
2864 tANI_BOOLEAN unicast;
2865
2866} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2867
2868typedef PACKED_PRE struct PACKED_POST
2869{
2870 tHalMsgHeader header;
2871 tRemoveStaKeyParams removeStaKeyParams;
2872} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2873
2874/*---------------------------------------------------------------------------
2875 WLAN_HAL_RMV_STAKEY_RSP,
2876---------------------------------------------------------------------------*/
2877typedef PACKED_PRE struct PACKED_POST
2878{
2879 /*success or failure */
2880 tANI_U32 status;
2881} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2882
2883typedef PACKED_PRE struct PACKED_POST
2884{
2885 tHalMsgHeader header;
2886 tRemoveStaKeyRspParams removeStaKeyRspParams;
2887} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2888
Jeff Johnsone7245742012-09-05 17:12:55 -07002889#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002890
Jeff Johnsone7245742012-09-05 17:12:55 -07002891#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002892#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002893#endif
2894
2895#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002896#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002897#endif
2898
2899/*-------------------------------------------------------------------------
2900WLAN_HAL_START_OEM_DATA_REQ
2901--------------------------------------------------------------------------*/
2902typedef PACKED_PRE struct PACKED_POST
2903{
2904 tANI_U32 status;
2905 tSirMacAddr selfMacAddr;
2906 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2907} tStartOemDataReqParams, *tpStartOemDataReqParams;
2908
2909typedef PACKED_PRE struct PACKED_POST
2910{
2911 tHalMsgHeader header;
2912 tStartOemDataReqParams startOemDataReqParams;
2913} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2914
2915/*-------------------------------------------------------------------------
2916WLAN_HAL_START_OEM_DATA_RSP
2917--------------------------------------------------------------------------*/
2918
2919typedef PACKED_PRE struct PACKED_POST
2920{
2921 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2922} tStartOemDataRspParams, *tpStartOemDataRspParams;
2923
2924typedef PACKED_PRE struct PACKED_POST
2925{
2926 tHalMsgHeader header;
2927 tStartOemDataRspParams startOemDataRspParams;
2928} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2929
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302930#ifndef NEW_OEM_DATA_REQ_SIZE
2931#define NEW_OEM_DATA_REQ_SIZE 292
2932#endif
2933
2934#ifndef NEW_OEM_DATA_RSP_SIZE
2935#define NEW_OEM_DATA_RSP_SIZE 2100
2936#endif
2937
2938/*-------------------------------------------------------------------------
2939WLAN_HAL_START_OEM_DATA_REQ_IND_NEW------------------------------------
2940--------------------------------------------------------------------------*/
2941typedef PACKED_PRE struct PACKED_POST
2942{
Padma, Santhosh Kumarb7f449f2016-01-11 18:55:44 +05302943 tSirMacAddr selfMacAddr;
2944 tANI_U8 reserved[2];
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302945 tANI_U8 oemDataReq[NEW_OEM_DATA_REQ_SIZE];
2946} tStartOemDataReqParamsNew, *tpStartOemDataReqParamsNew;
2947
2948typedef PACKED_PRE struct PACKED_POST
2949{
2950 tHalMsgHeader header;
2951 tStartOemDataReqParamsNew startOemDataReqParams;
2952} tStartOemDataReqMsgNew, *tpStartOemDataReqMsgNew;
2953
2954/*-------------------------------------------------------------------------
2955WLAN_HAL_START_OEM_DATA_RSP_IND_NEW------------------------------------
2956--------------------------------------------------------------------------*/
2957typedef PACKED_PRE struct PACKED_POST
2958{
2959 tANI_U8 oemDataRsp[NEW_OEM_DATA_RSP_SIZE];
2960} tStartOemDataRspParamsNew, *tpStartOemDataRspParamsNew;
2961
2962typedef PACKED_PRE struct PACKED_POST
2963{
2964 tHalMsgHeader header;
2965 tStartOemDataRspParamsNew startOemDataReqParams;
2966} tStartOemDataRspMsgNew, *tpStartOemDataRspMsgNew;
2967
Jeff Johnsone7245742012-09-05 17:12:55 -07002968#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002969
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002970/*---------------------------------------------------------------------------
2971WLAN_HAL_CH_SWITCH_V1_REQ
2972---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002973
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002974typedef PACKED_PRE struct PACKED_POST
2975{
2976 /* Channel number */
2977 tANI_U8 channelNumber;
2978
2979 /* Local power constraint */
2980 tANI_U8 localPowerConstraint;
2981
2982 /*Secondary channel offset */
2983 ePhyChanBondState secondaryChannelOffset;
2984
2985 //HAL fills in the tx power used for mgmt frames in this field.
2986 tPowerdBm txMgmtPower;
2987
2988 /* Max TX power */
2989 tPowerdBm maxTxPower;
2990
2991 /* Self STA MAC */
2992 tSirMacAddr selfStaMacAddr;
2993
2994 /*VO WIFI comment: BSSID needed to identify session. As the request has
2995 * power constraints, this should be applied only to that session
2996 * Since MTU timing and EDCA are sessionized, this struct needs to be
2997 * sessionized and bssid needs to be out of the VOWifi feature flag
2998 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002999 * mantain backward compatbility
3000 * by way of ignoring if using new host/old FW or old host/new FW since
3001 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003002 */
3003 tSirMacAddr bssId;
3004
3005 /* Source of Channel Switch */
3006 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07003007
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003008} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
3009
3010typedef PACKED_PRE struct PACKED_POST
3011{
3012 tHalMsgHeader header;
3013 tSwitchChannelParams_V1 switchChannelParams_V1;
3014} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
3015
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003016/*---------------------------------------------------------------------------
3017WLAN_HAL_CH_SWITCH_V1_RSP
3018---------------------------------------------------------------------------*/
3019
3020typedef PACKED_PRE struct PACKED_POST
3021{
3022 /* Status */
3023 tANI_U32 status;
3024
3025 /* Channel number - same as in request*/
3026 tANI_U8 channelNumber;
3027
3028 /* HAL fills in the tx power used for mgmt frames in this field */
3029 tPowerdBm txMgmtPower;
3030
3031 /* BSSID needed to identify session - same as in request*/
3032 tSirMacAddr bssId;
3033
3034 /* Source of Channel Switch */
3035 eHalChanSwitchSource channelSwitchSrc;
3036
3037} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
3038
3039typedef PACKED_PRE struct PACKED_POST
3040{
3041 tHalMsgHeader header;
3042 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
3043} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07003044
3045/*---------------------------------------------------------------------------
3046WLAN_HAL_CH_SWITCH_REQ
3047---------------------------------------------------------------------------*/
3048
3049typedef PACKED_PRE struct PACKED_POST
3050{
3051 /* Channel number */
3052 tANI_U8 channelNumber;
3053
3054 /* Local power constraint */
3055 tANI_U8 localPowerConstraint;
3056
3057 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07003058 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003059
3060 //HAL fills in the tx power used for mgmt frames in this field.
3061 tPowerdBm txMgmtPower;
3062
3063 /* Max TX power */
3064 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05303065
Jeff Johnson295189b2012-06-20 16:38:30 -07003066 /* Self STA MAC */
3067 tSirMacAddr selfStaMacAddr;
3068
3069 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
3070 this should be applied only to that session*/
3071 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
3072 * bssid needs to be out of the VOWifi feature flag */
3073 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
3074 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
3075 */
3076 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303077
Jeff Johnson295189b2012-06-20 16:38:30 -07003078}tSwitchChannelParams, *tpSwitchChannelParams;
3079
3080typedef PACKED_PRE struct PACKED_POST
3081{
3082 tHalMsgHeader header;
3083 tSwitchChannelParams switchChannelParams;
3084} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
3085
3086/*---------------------------------------------------------------------------
3087WLAN_HAL_CH_SWITCH_RSP
3088---------------------------------------------------------------------------*/
3089
3090typedef PACKED_PRE struct PACKED_POST
3091{
3092 /* Status */
3093 tANI_U32 status;
3094
3095 /* Channel number - same as in request*/
3096 tANI_U8 channelNumber;
3097
3098 /* HAL fills in the tx power used for mgmt frames in this field */
3099 tPowerdBm txMgmtPower;
3100
3101 /* BSSID needed to identify session - same as in request*/
3102 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303103
Jeff Johnson295189b2012-06-20 16:38:30 -07003104}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3105
3106typedef PACKED_PRE struct PACKED_POST
3107{
3108 tHalMsgHeader header;
3109 tSwitchChannelRspParams switchChannelRspParams;
3110} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3111
3112/*---------------------------------------------------------------------------
3113WLAN_HAL_UPD_EDCA_PARAMS_REQ
3114---------------------------------------------------------------------------*/
3115
3116typedef PACKED_PRE struct PACKED_POST
3117{
3118 /*BSS Index*/
3119 tANI_U16 bssIdx;
3120
3121 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303122 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003123
3124 /* Background */
3125 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303126
Jeff Johnson295189b2012-06-20 16:38:30 -07003127 /* Video */
3128 tSirMacEdcaParamRecord acvi;
3129
3130 /* Voice */
3131 tSirMacEdcaParamRecord acvo;
3132
3133} tEdcaParams, *tpEdcaParams;
3134
3135typedef PACKED_PRE struct PACKED_POST
3136{
3137 tHalMsgHeader header;
3138 tEdcaParams edcaParams;
3139} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3140
3141/*---------------------------------------------------------------------------
3142WLAN_HAL_UPD_EDCA_PARAMS_RSP
3143---------------------------------------------------------------------------*/
3144typedef PACKED_PRE struct PACKED_POST
3145{
3146 /*success or failure */
3147 tANI_U32 status;
3148} tEdcaRspParams, *tpEdcaRspParams;
3149
3150typedef PACKED_PRE struct PACKED_POST
3151{
3152 tHalMsgHeader header;
3153 tEdcaRspParams edcaRspParams;
3154} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3155
3156
3157
3158/*---------------------------------------------------------------------------
3159 * WLAN_HAL_GET_STATS_REQ
3160 *--------------------------------------------------------------------------*/
3161typedef PACKED_PRE struct PACKED_POST
3162
3163{
3164 /* Index of STA to which the statistics */
3165 tANI_U16 staIdx;
3166
3167 /* Encryption mode */
3168 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303169
Jeff Johnson295189b2012-06-20 16:38:30 -07003170 /* status */
3171 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303172
Jeff Johnson295189b2012-06-20 16:38:30 -07003173 /* Statistics */
3174 tANI_U32 sendBlocks;
3175 tANI_U32 recvBlocks;
3176 tANI_U32 replays;
3177 tANI_U8 micErrorCnt;
3178 tANI_U32 protExclCnt;
3179 tANI_U16 formatErrCnt;
3180 tANI_U16 unDecryptableCnt;
3181 tANI_U32 decryptErrCnt;
3182 tANI_U32 decryptOkCnt;
3183} tDpuStatsParams, * tpDpuStatsParams;
3184
3185typedef PACKED_PRE struct PACKED_POST
3186{
3187 /* Valid STA Idx for per STA stats request */
3188 tANI_U32 staId;
3189
3190 /* Categories of stats requested as specified in eHalStatsMask*/
3191 tANI_U32 statsMask;
3192}tHalStatsReqParams, *tpHalStatsReqParams;
3193
3194typedef PACKED_PRE struct PACKED_POST
3195{
3196 tHalMsgHeader header;
3197 tHalStatsReqParams statsReqParams;
3198} tHalStatsReqMsg, *tpHalStatsReqMsg;
3199
3200/*---------------------------------------------------------------------------
3201 * WLAN_HAL_GET_STATS_RSP
3202 *--------------------------------------------------------------------------*/
3203
3204typedef PACKED_PRE struct PACKED_POST
3205{
3206 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3207 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3208 // station successfully transmitted after more than one retransmission attempt
3209
Dino Mycle8afbac12014-07-04 22:06:17 +05303210 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3211 //(with and without retries, including multi-cast, broadcast)
3212 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3213 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003214 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3215 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3216 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3217 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 +05303218 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3219 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 -07003220 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3221 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 +05303222 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3223 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003224 //to provide this.
3225}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3226
3227
3228// defines tx_rate_flags
3229typedef enum eTxRateInfo
3230{
3231 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3232 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3233 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3234 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003235 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3236 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3237 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3238 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3239 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3240 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3241} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003242
3243
3244typedef PACKED_PRE struct PACKED_POST
3245{
Dino Mycle8afbac12014-07-04 22:06:17 +05303246 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 -07003247 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303248 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 -07003249 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303250 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3251 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003252 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303253 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3254 //for eg: if it is 10.5dBm, the value would be 105
3255 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3256 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003257
Dino Mycle8afbac12014-07-04 22:06:17 +05303258 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3259 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003260 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303261 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3262 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003263}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3264
3265typedef PACKED_PRE struct PACKED_POST
3266{
Dino Mycle8afbac12014-07-04 22:06:17 +05303267 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3268 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003269 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303270 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 -07003271 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303272 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 -07003273 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303274 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 -07003275 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303276 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 -07003277 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303278 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 -07003279 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303280 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 -07003281 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303282 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 -07003283 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303284 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 -07003285 //decrypted
3286 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3287
3288}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303289
Jeff Johnson295189b2012-06-20 16:38:30 -07003290typedef PACKED_PRE struct PACKED_POST
3291{
3292 tAniGlobalSecurityStats ucStats;
3293 tAniGlobalSecurityStats mcbcStats;
3294}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3295
3296typedef PACKED_PRE struct PACKED_POST
3297{
Dino Mycle8afbac12014-07-04 22:06:17 +05303298 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3299 //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 -07003300 //address 1 field
3301 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 +05303302 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 -07003303 //primary channel
3304 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 +05303305 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 -07003306 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303307 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3308 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003309 //decoded correctly
3310}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3311
3312typedef PACKED_PRE struct PACKED_POST
3313{
Dino Mycle8afbac12014-07-04 22:06:17 +05303314 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 -07003315 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303316 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3317 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 -07003318 //is transmitted
3319}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3320
Sushant Kaushik33200572015-08-05 16:46:20 +05303321// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3322typedef PACKED_PRE struct PACKED_POST
3323{
3324 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303325 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303326 tANI_U32 reserved;
3327 tANI_U32 reserved1;
3328}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3329
Jeff Johnson295189b2012-06-20 16:38:30 -07003330typedef PACKED_PRE struct PACKED_POST
3331{
3332 /* Success or Failure */
3333 tANI_U32 status;
3334
3335 /* STA Idx */
3336 tANI_U32 staId;
3337
3338 /* Categories of STATS being returned as per eHalStatsMask*/
3339 tANI_U32 statsMask;
3340
3341 /* message type is same as the request type */
3342 tANI_U16 msgType;
3343
3344 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303345 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003346
3347} tHalStatsRspParams, *tpHalStatsRspParams;
3348
3349
3350
3351typedef PACKED_PRE struct PACKED_POST
3352{
3353 tHalMsgHeader header;
3354 tHalStatsRspParams statsRspParams;
3355} tHalStatsRspMsg, *tpHalStatsRspMsg;
3356
Abhishek Singhbc310882015-05-22 15:17:02 +05303357 /*---------------------------------------------------------------------------
3358 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3359 *---------------------------------------------------------------------------*/
3360typedef PACKED_PRE struct PACKED_POST
3361{
3362 tANI_U32 rtsCtsValue;
3363}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3364
3365typedef PACKED_PRE struct PACKED_POST
3366{
3367 tHalMsgHeader header;
3368 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3369} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3370
Jeff Johnson295189b2012-06-20 16:38:30 -07003371/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303372 * WLAN_HAL_FW_STATS_REQ
3373 *---------------------------------------------------------------------------*/
3374 typedef PACKED_PRE struct PACKED_POST
3375{
3376 tANI_U32 type;
3377}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3378
3379typedef PACKED_PRE struct PACKED_POST
3380{
3381 tHalMsgHeader header;
3382 tHalfwStatsReqParams fwstatsReqParams;
3383} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3384
3385/*---------------------------------------------------------------------------
3386 * WLAN_HAL_FW_STATS_RSP
3387 *---------------------------------------------------------------------------*/
3388 typedef PACKED_PRE struct PACKED_POST
3389{
3390 tANI_U32 type;
3391 tANI_U32 length;
3392 tANI_U8 data[1];
3393
3394}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3395
3396typedef PACKED_PRE struct PACKED_POST
3397{
3398 tHalMsgHeader header;
3399 tHalfwStatsRspParams fwstatsRspParams;
3400} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3401
3402typedef enum
3403{
3404 FW_UBSP_STATS = 1,
3405} fwstatstype;
3406
3407
3408/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003409 * WLAN_HAL_SET_LINK_ST_REQ
3410 *--------------------------------------------------------------------------*/
3411typedef PACKED_PRE struct PACKED_POST
3412{
3413 tSirMacAddr bssid;
3414 tSirLinkState state;
3415 tSirMacAddr selfMacAddr;
3416} tLinkStateParams, *tpLinkStateParams;
3417
3418typedef PACKED_PRE struct PACKED_POST
3419{
3420 tHalMsgHeader header;
3421 tLinkStateParams linkStateParams;
3422} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3423
3424/*---------------------------------------------------------------------------
3425 * WLAN_HAL_SET_LINK_ST_RSP
3426 *--------------------------------------------------------------------------*/
3427
3428typedef PACKED_PRE struct PACKED_POST
3429{
3430 /*success or failure */
3431 tANI_U32 status;
3432} tLinkStateRspParams, *tpLinkStateRspParams;
3433
3434typedef PACKED_PRE struct PACKED_POST
3435{
3436 tHalMsgHeader header;
3437 tLinkStateRspParams linkStateRspParams;
3438} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3439
3440/*---------------------------------------------------------------------------
3441 * WLAN_HAL_ADD_TS_REQ
3442 *--------------------------------------------------------------------------*/
3443
3444/* TSPEC Params */
3445typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3446{
Jeff Johnson295189b2012-06-20 16:38:30 -07003447 tANI_U16 trafficType : 1;
3448 tANI_U16 tsid : 4;
3449 tANI_U16 direction : 2;
3450 tANI_U16 accessPolicy : 2;
3451 tANI_U16 aggregation : 1;
3452 tANI_U16 psb : 1;
3453 tANI_U16 userPrio : 3;
3454 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003455} __ani_attr_packed tSirMacTSInfoTfc;
3456
3457/* Flag to schedule the traffic type */
3458typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3459{
Jeff Johnson295189b2012-06-20 16:38:30 -07003460 tANI_U8 schedule : 1;
3461 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003462} __ani_attr_packed tSirMacTSInfoSch;
3463
3464/* Traffic and scheduling info */
3465typedef __ani_attr_pre_packed struct sSirMacTSInfo
3466{
3467 tSirMacTSInfoTfc traffic;
3468 tSirMacTSInfoSch schedule;
3469} __ani_attr_packed tSirMacTSInfo;
3470
3471/* Information elements */
3472typedef __ani_attr_pre_packed struct sSirMacTspecIE
3473{
3474 tANI_U8 type;
3475 tANI_U8 length;
3476 tSirMacTSInfo tsinfo;
3477 tANI_U16 nomMsduSz;
3478 tANI_U16 maxMsduSz;
3479 tANI_U32 minSvcInterval;
3480 tANI_U32 maxSvcInterval;
3481 tANI_U32 inactInterval;
3482 tANI_U32 suspendInterval;
3483 tANI_U32 svcStartTime;
3484 tANI_U32 minDataRate;
3485 tANI_U32 meanDataRate;
3486 tANI_U32 peakDataRate;
3487 tANI_U32 maxBurstSz;
3488 tANI_U32 delayBound;
3489 tANI_U32 minPhyRate;
3490 tANI_U16 surplusBw;
3491 tANI_U16 mediumTime;
3492}__ani_attr_packed tSirMacTspecIE;
3493
3494typedef PACKED_PRE struct PACKED_POST
3495{
3496 /* Station Index */
3497 tANI_U16 staIdx;
3498
3499 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3500 tANI_U16 tspecIdx;
3501
3502 /* To program TPE with required parameters */
3503 tSirMacTspecIE tspec;
3504
3505 /* U-APSD Flags: 1b per AC. Encoded as follows:
3506 b7 b6 b5 b4 b3 b2 b1 b0 =
3507 X X X X BE BK VI VO */
3508 tANI_U8 uAPSD;
3509
3510 /* These parameters are for all the access categories */
3511 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3512 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3513 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303514
Jeff Johnson295189b2012-06-20 16:38:30 -07003515} tAddTsParams, *tpAddTsParams;
3516
3517typedef PACKED_PRE struct PACKED_POST
3518{
3519 tHalMsgHeader header;
3520 tAddTsParams addTsParams;
3521} tAddTsReqMsg, *tpAddTsReqMsg;
3522
3523/*---------------------------------------------------------------------------
3524 * WLAN_HAL_ADD_TS_RSP
3525 *--------------------------------------------------------------------------*/
3526
3527typedef PACKED_PRE struct PACKED_POST
3528{
3529 /*success or failure */
3530 tANI_U32 status;
3531} tAddTsRspParams, *tpAddTsRspParams;
3532
3533typedef PACKED_PRE struct PACKED_POST
3534{
3535 tHalMsgHeader header;
3536 tAddTsRspParams addTsRspParams;
3537} tAddTsRspMsg, *tpAddTsRspMsg;
3538
3539
3540/*---------------------------------------------------------------------------
3541 * WLAN_HAL_DEL_TS_REQ
3542 *--------------------------------------------------------------------------*/
3543
3544typedef PACKED_PRE struct PACKED_POST
3545{
3546 /* Station Index */
3547 tANI_U16 staIdx;
3548
3549 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3550 tANI_U16 tspecIdx;
3551
3552 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303553 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003554
3555} tDelTsParams, *tpDelTsParams;
3556
3557typedef PACKED_PRE struct PACKED_POST
3558{
3559 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303560 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003561} tDelTsReqMsg, *tpDelTsReqMsg;
3562
3563/*---------------------------------------------------------------------------
3564 * WLAN_HAL_DEL_TS_RSP
3565 *--------------------------------------------------------------------------*/
3566
3567typedef PACKED_PRE struct PACKED_POST
3568{
3569 /*success or failure */
3570 tANI_U32 status;
3571} tDelTsRspParams, *tpDelTsRspParams;
3572
3573typedef PACKED_PRE struct PACKED_POST
3574{
3575 tHalMsgHeader header;
3576 tDelTsRspParams delTsRspParams;
3577} tDelTsRspMsg, *tpDelTsRspMsg;
3578
3579/* End of TSpec Parameters */
3580
3581/* Start of BLOCK ACK related Parameters */
3582
3583/*---------------------------------------------------------------------------
3584 * WLAN_HAL_ADD_BA_SESSION_REQ
3585 *--------------------------------------------------------------------------*/
3586
3587typedef PACKED_PRE struct PACKED_POST
3588{
3589 /* Station Index */
3590 tANI_U16 staIdx;
3591
3592 /* Peer MAC Address */
3593 tSirMacAddr peerMacAddr;
3594
3595 /* ADDBA Action Frame dialog token
3596 HAL will not interpret this object */
3597 tANI_U8 baDialogToken;
3598
3599 /* TID for which the BA is being setup
3600 This identifies the TC or TS of interest */
3601 tANI_U8 baTID;
3602
3603 /* 0 - Delayed BA (Not supported)
3604 1 - Immediate BA */
3605 tANI_U8 baPolicy;
3606
3607 /* Indicates the number of buffers for this TID (baTID)
3608 NOTE - This is the requested buffer size. When this
3609 is processed by HAL and subsequently by HDD, it is
3610 possible that HDD may change this buffer size. Any
3611 change in the buffer size should be noted by PE and
3612 advertized appropriately in the ADDBA response */
3613 tANI_U16 baBufferSize;
3614
3615 /* BA timeout in TU's 0 means no timeout will occur */
3616 tANI_U16 baTimeout;
3617
3618 /* b0..b3 - Fragment Number - Always set to 0
3619 b4..b15 - Starting Sequence Number of first MSDU
3620 for which this BA is setup */
3621 tANI_U16 baSSN;
3622
3623 /* ADDBA direction
3624 1 - Originator
3625 0 - Recipient */
3626 tANI_U8 baDirection;
3627} tAddBASessionParams, *tpAddBASessionParams;
3628
3629typedef PACKED_PRE struct PACKED_POST
3630{
3631 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303632 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003633}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3634
3635/*---------------------------------------------------------------------------
3636 * WLAN_HAL_ADD_BA_SESSION_RSP
3637 *--------------------------------------------------------------------------*/
3638
3639typedef PACKED_PRE struct PACKED_POST
3640{
3641 /*success or failure */
3642 tANI_U32 status;
3643
3644 /* Dialog token */
3645 tANI_U8 baDialogToken;
3646
3647 /* TID for which the BA session has been setup */
3648 tANI_U8 baTID;
3649
3650 /* BA Buffer Size allocated for the current BA session */
3651 tANI_U8 baBufferSize;
3652
3653 tANI_U8 baSessionID;
3654
3655 /* Reordering Window buffer */
3656 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303657
Jeff Johnson295189b2012-06-20 16:38:30 -07003658 /*Station Index to id the sta */
3659 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303660
Jeff Johnson295189b2012-06-20 16:38:30 -07003661 /* Starting Sequence Number */
3662 tANI_U16 SSN;
3663} tAddBASessionRspParams, *tpAddBASessionRspParams;
3664
3665typedef PACKED_PRE struct PACKED_POST
3666{
3667 tHalMsgHeader header;
3668 tAddBASessionRspParams addBASessionRspParams;
3669} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3670
3671/*---------------------------------------------------------------------------
3672 * WLAN_HAL_ADD_BA_REQ
3673 *--------------------------------------------------------------------------*/
3674
3675typedef PACKED_PRE struct PACKED_POST
3676{
3677 /* Session Id */
3678 tANI_U8 baSessionID;
3679
3680 /* Reorder Window Size */
3681 tANI_U8 winSize;
3682
3683#ifdef FEATURE_ON_CHIP_REORDERING
3684 tANI_BOOLEAN isReorderingDoneOnChip;
3685#endif
3686} tAddBAParams, *tpAddBAParams;
3687
3688typedef PACKED_PRE struct PACKED_POST
3689{
3690 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303691 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003692} tAddBAReqMsg, *tpAddBAReqMsg;
3693
3694
3695/*---------------------------------------------------------------------------
3696 * WLAN_HAL_ADD_BA_RSP
3697 *--------------------------------------------------------------------------*/
3698
3699typedef PACKED_PRE struct PACKED_POST
3700{
3701 /*success or failure */
3702 tANI_U32 status;
3703
3704 /* Dialog token */
3705 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303706
Jeff Johnson295189b2012-06-20 16:38:30 -07003707} tAddBARspParams, *tpAddBARspParams;
3708
3709typedef PACKED_PRE struct PACKED_POST
3710{
3711 tHalMsgHeader header;
3712 tAddBARspParams addBARspParams;
3713} tAddBARspMsg, *tpAddBARspMsg;
3714
3715
3716/*---------------------------------------------------------------------------
3717 * WLAN_HAL_TRIGGER_BA_REQ
3718 *--------------------------------------------------------------------------*/
3719
3720
3721typedef struct sAddBaInfo
3722{
3723 tANI_U16 fBaEnable : 1;
3724 tANI_U16 startingSeqNum: 12;
3725 tANI_U16 reserved : 3;
3726}tAddBaInfo, *tpAddBaInfo;
3727
3728typedef struct sTriggerBaRspCandidate
3729{
3730 tSirMacAddr staAddr;
3731 tAddBaInfo baInfo[STACFG_MAX_TC];
3732}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3733
3734typedef struct sTriggerBaCandidate
3735{
3736 tANI_U8 staIdx;
3737 tANI_U8 tidBitmap;
3738}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3739
3740typedef PACKED_PRE struct PACKED_POST
3741{
3742 /* Session Id */
3743 tANI_U8 baSessionID;
3744
Dino Mycle8afbac12014-07-04 22:06:17 +05303745 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003746 * Candidate List(tTriggerBaCandidate)
3747 */
3748 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303749
Jeff Johnson295189b2012-06-20 16:38:30 -07003750} tTriggerBAParams, *tpTriggerBAParams;
3751
3752typedef PACKED_PRE struct PACKED_POST
3753{
3754 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303755 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003756} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3757
3758
3759/*---------------------------------------------------------------------------
3760 * WLAN_HAL_TRIGGER_BA_RSP
3761 *--------------------------------------------------------------------------*/
3762
3763typedef PACKED_PRE struct PACKED_POST
3764{
Dino Mycle8afbac12014-07-04 22:06:17 +05303765
Jeff Johnson295189b2012-06-20 16:38:30 -07003766 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303767 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003768
3769 /* success or failure */
3770 tANI_U32 status;
3771
Dino Mycle8afbac12014-07-04 22:06:17 +05303772 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003773 * Rsp Candidate List(tTriggerRspBaCandidate)
3774 */
3775 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303776
Jeff Johnson295189b2012-06-20 16:38:30 -07003777
3778} tTriggerBARspParams, *tpTriggerBARspParams;
3779
3780typedef PACKED_PRE struct PACKED_POST
3781{
3782 tHalMsgHeader header;
3783 tTriggerBARspParams triggerBARspParams;
3784} tTriggerBARspMsg, *tpTriggerBARspMsg;
3785
3786/*---------------------------------------------------------------------------
3787 * WLAN_HAL_DEL_BA_REQ
3788 *--------------------------------------------------------------------------*/
3789
3790typedef PACKED_PRE struct PACKED_POST
3791{
3792 /* Station Index */
3793 tANI_U16 staIdx;
3794
3795 /* TID for which the BA session is being deleted */
3796 tANI_U8 baTID;
3797
3798 /* DELBA direction
3799 1 - Originator
3800 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303801 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003802} tDelBAParams, *tpDelBAParams;
3803
3804typedef PACKED_PRE struct PACKED_POST
3805{
3806 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303807 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003808} tDelBAReqMsg, *tpDelBAReqMsg;
3809
3810/*---------------------------------------------------------------------------
3811 * WLAN_HAL_DEL_BA_RSP
3812 *--------------------------------------------------------------------------*/
3813
3814typedef PACKED_PRE struct PACKED_POST
3815{
3816 /* success or failure */
3817 tANI_U32 status;
3818} tDelBARspParams, *tpDelBARspParams;
3819
3820typedef PACKED_PRE struct PACKED_POST
3821{
3822 tHalMsgHeader header;
3823 tDelBARspParams delBARspParams;
3824} tDelBARspMsg, *tpDelBARspMsg;
3825
3826
Jeff Johnson295189b2012-06-20 16:38:30 -07003827/*---------------------------------------------------------------------------
3828 * WLAN_HAL_TSM_STATS_REQ
3829 *--------------------------------------------------------------------------*/
3830typedef PACKED_PRE struct PACKED_POST
3831{
3832 /* Traffic Id */
3833 tANI_U8 tsmTID;
3834
3835 tSirMacAddr bssId;
3836} tTsmStatsParams, *tpTsmStatsParams;
3837
3838typedef PACKED_PRE struct PACKED_POST
3839{
3840 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303841 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003842} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3843
3844
3845/*---------------------------------------------------------------------------
3846 * WLAN_HAL_TSM_STATS_RSP
3847 *--------------------------------------------------------------------------*/
3848typedef PACKED_PRE struct PACKED_POST
3849{
3850 /*success or failure */
3851 tANI_U32 status;
3852
Dino Mycle8afbac12014-07-04 22:06:17 +05303853 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003854 tANI_U16 UplinkPktQueueDly;
3855
Dino Mycle8afbac12014-07-04 22:06:17 +05303856 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003857 tANI_U16 UplinkPktQueueDlyHist[4];
3858
Dino Mycle8afbac12014-07-04 22:06:17 +05303859 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003860 tANI_U32 UplinkPktTxDly;
3861
Dino Mycle8afbac12014-07-04 22:06:17 +05303862 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003863 tANI_U16 UplinkPktLoss;
3864
Dino Mycle8afbac12014-07-04 22:06:17 +05303865 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003866 tANI_U16 UplinkPktCount;
3867
Dino Mycle8afbac12014-07-04 22:06:17 +05303868 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003869 tANI_U8 RoamingCount;
3870
Dino Mycle8afbac12014-07-04 22:06:17 +05303871 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003872 tANI_U16 RoamingDly;
3873} tTsmStatsRspParams, *tpTsmStatsRspParams;
3874
3875typedef PACKED_PRE struct PACKED_POST
3876{
3877 tHalMsgHeader header;
3878 tTsmStatsRspParams tsmStatsRspParams;
3879} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3880
3881
Jeff Johnson295189b2012-06-20 16:38:30 -07003882/*---------------------------------------------------------------------------
3883 * WLAN_HAL_SET_KEYDONE_MSG
3884 *--------------------------------------------------------------------------*/
3885
3886typedef PACKED_PRE struct PACKED_POST
3887{
3888 /*bssid of the keys */
3889 tANI_U8 bssidx;
3890 tANI_U8 encType;
3891} tSetKeyDoneParams, *tpSetKeyDoneParams;
3892
3893typedef PACKED_PRE struct PACKED_POST
3894{
3895 tHalMsgHeader header;
3896 tSetKeyDoneParams setKeyDoneParams;
3897} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3898
3899/*---------------------------------------------------------------------------
3900 * WLAN_HAL_DOWNLOAD_NV_REQ
3901 *--------------------------------------------------------------------------*/
3902typedef PACKED_PRE struct PACKED_POST
3903{
3904 /* Fragment sequence number of the NV Image. Note that NV Image might not
3905 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303906 * can hence choose to chop the NV blob into multiple fragments starting with
3907 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003908 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3909 * concatenated together by HAL without any padding bytes in between.*/
3910 tANI_U16 fragNumber;
3911
3912 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303913 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003914 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3915 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3916 tANI_U16 isLastFragment;
3917
3918 /* NV Image size (number of bytes) */
3919 tANI_U32 nvImgBufferSize;
3920
3921 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3922 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3923} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3924
3925typedef PACKED_PRE struct PACKED_POST
3926{
3927 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3928 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3929 tHalMsgHeader header;
3930 tHalNvImgDownloadReqParams nvImageReqParams;
3931} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3932
3933/*---------------------------------------------------------------------------
3934 * WLAN_HAL_DOWNLOAD_NV_RSP
3935 *--------------------------------------------------------------------------*/
3936typedef PACKED_PRE struct PACKED_POST
3937{
3938 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3939 * after each fragment */
3940 tANI_U32 status;
3941} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3942
3943typedef PACKED_PRE struct PACKED_POST
3944{
3945 tHalMsgHeader header;
3946 tHalNvImgDownloadRspParams nvImageRspParams;
3947} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3948
3949/*---------------------------------------------------------------------------
3950 * WLAN_HAL_STORE_NV_IND
3951 *--------------------------------------------------------------------------*/
3952typedef PACKED_PRE struct PACKED_POST
3953{
3954 /* NV Item */
3955 eNvTable tableID;
3956
3957 /* Size of NV Blob */
3958 tANI_U32 nvBlobSize;
3959
Dino Mycle8afbac12014-07-04 22:06:17 +05303960 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003961 * NV blob i.e. uint8[nvBlobSize] */
3962} tHalNvStoreParams, *tpHalNvStoreParams;
3963
3964typedef PACKED_PRE struct PACKED_POST
3965{
3966 /* Note: The length specified in tHalNvStoreInd messages should be
3967 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3968 tHalMsgHeader header;
3969 tHalNvStoreParams nvStoreParams;
3970} tHalNvStoreInd, *tpHalNvStoreInd;
3971
3972/* End of Block Ack Related Parameters */
3973
3974/*---------------------------------------------------------------------------
3975 * WLAN_HAL_MIC_FAILURE_IND
3976 *--------------------------------------------------------------------------*/
3977
3978#define SIR_CIPHER_SEQ_CTR_SIZE 6
3979
3980typedef PACKED_PRE struct PACKED_POST
3981{
Dino Mycle8afbac12014-07-04 22:06:17 +05303982 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003983 tSirMacAddr taMacAddr; //transmitter address
3984 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303985 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003986 tANI_U8 IV1; // first byte of IV
3987 tANI_U8 keyId; // second byte of IV
3988 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3989 tSirMacAddr rxMacAddr; // receive address
3990} tSirMicFailureInfo, *tpSirMicFailureInfo;
3991
3992/* Definition for MIC failure indication
3993 MAC reports this each time a MIC failure occures on Rx TKIP packet
3994 */
3995typedef PACKED_PRE struct PACKED_POST
3996{
3997 tSirMacAddr bssId; // BSSID
3998 tSirMicFailureInfo info;
3999} tSirMicFailureInd, *tpSirMicFailureInd;
4000
4001typedef PACKED_PRE struct PACKED_POST
4002{
4003 tHalMsgHeader header;
4004 tSirMicFailureInd micFailureInd;
4005} tMicFailureIndMsg, *tpMicFailureIndMsg;
4006
Mohit Khanna4a70d262012-09-11 16:30:12 -07004007typedef PACKED_PRE struct PACKED_POST
4008{
4009 tANI_U16 opMode;
4010 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05304011}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07004012
4013typedef PACKED_PRE struct PACKED_POST
4014{
4015 tHalMsgHeader header;
4016 tUpdateVHTOpMode updateVhtOpMode;
4017} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
4018
4019typedef PACKED_PRE struct PACKED_POST
4020{
4021 tANI_U32 status;
4022} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
4023
4024typedef PACKED_PRE struct PACKED_POST
4025{
4026 tHalMsgHeader header;
4027 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
4028} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
4029
Jeff Johnson295189b2012-06-20 16:38:30 -07004030/*---------------------------------------------------------------------------
4031 * WLAN_HAL_UPDATE_BEACON_REQ
4032 *--------------------------------------------------------------------------*/
4033typedef PACKED_PRE struct PACKED_POST
4034{
4035
4036 tANI_U8 bssIdx;
4037
4038 //shortPreamble mode. HAL should update all the STA rates when it
4039 //receives this message
4040 tANI_U8 fShortPreamble;
4041 //short Slot time.
4042 tANI_U8 fShortSlotTime;
4043 //Beacon Interval
4044 tANI_U16 beaconInterval;
4045 //Protection related
4046 tANI_U8 llaCoexist;
4047 tANI_U8 llbCoexist;
4048 tANI_U8 llgCoexist;
4049 tANI_U8 ht20MhzCoexist;
4050 tANI_U8 llnNonGFCoexist;
4051 tANI_U8 fLsigTXOPProtectionFullSupport;
4052 tANI_U8 fRIFSMode;
4053
4054 tANI_U16 paramChangeBitmap;
4055}tUpdateBeaconParams, *tpUpdateBeaconParams;
4056
4057
4058typedef PACKED_PRE struct PACKED_POST
4059{
4060 tHalMsgHeader header;
4061 tUpdateBeaconParams updateBeaconParam;
4062} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
4063
4064/*---------------------------------------------------------------------------
4065 * WLAN_HAL_UPDATE_BEACON_RSP
4066 *--------------------------------------------------------------------------*/
4067typedef PACKED_PRE struct PACKED_POST
4068{
4069 tANI_U32 status;
4070} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
4071
4072typedef PACKED_PRE struct PACKED_POST
4073{
4074 tHalMsgHeader header;
4075 tUpdateBeaconRspParams updateBeaconRspParam;
4076} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
4077
4078/*---------------------------------------------------------------------------
4079 * WLAN_HAL_SEND_BEACON_REQ
4080 *--------------------------------------------------------------------------*/
4081typedef PACKED_PRE struct PACKED_POST
4082{
4083 tANI_U32 beaconLength; //length of the template.
4084 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
4085 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004086 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07004087 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
4088}tSendBeaconParams, *tpSendBeaconParams;
4089
4090
4091typedef PACKED_PRE struct PACKED_POST
4092{
4093 tHalMsgHeader header;
4094 tSendBeaconParams sendBeaconParam;
4095}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4096
4097/*---------------------------------------------------------------------------
4098 * WLAN_HAL_SEND_BEACON_RSP
4099 *--------------------------------------------------------------------------*/
4100typedef PACKED_PRE struct PACKED_POST
4101{
4102 tANI_U32 status;
4103} tSendBeaconRspParams, *tpSendBeaconRspParams;
4104
4105typedef PACKED_PRE struct PACKED_POST
4106{
4107 tHalMsgHeader header;
4108 tSendBeaconRspParams sendBeaconRspParam;
4109} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4110
4111#ifdef FEATURE_5GHZ_BAND
4112
4113/*---------------------------------------------------------------------------
4114 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4115 *--------------------------------------------------------------------------*/
4116typedef PACKED_PRE struct PACKED_POST
4117{
4118 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304119 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004120}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4121
4122
4123typedef PACKED_PRE struct PACKED_POST
4124{
4125 /* Link Parameters */
4126 tSirEnableRadarInfoType EnableRadarInfo;
4127}tEnableRadarReqParams, *tpEnableRadarReqParams;
4128
4129typedef PACKED_PRE struct PACKED_POST
4130{
4131 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304132 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004133}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4134
4135/*---------------------------------------------------------------------------
4136 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4137 *--------------------------------------------------------------------------*/
4138
4139typedef PACKED_PRE struct PACKED_POST
4140{
4141 /* Link Parameters */
4142 tSirMacAddr BSSID;
4143 /* success or failure */
4144 tANI_U32 status;
4145}tEnableRadarRspParams, *tpEnableRadarRspParams;
4146
4147typedef PACKED_PRE struct PACKED_POST
4148{
4149 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304150 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004151}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4152
4153/*---------------------------------------------------------------------------
4154 *WLAN_HAL_RADAR_DETECT_INTR_IND
4155 *--------------------------------------------------------------------------*/
4156
4157typedef PACKED_PRE struct PACKED_POST
4158{
4159 tANI_U8 radarDetChannel;
4160}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4161
4162typedef PACKED_PRE struct PACKED_POST
4163{
4164 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304165 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004166}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4167
4168/*---------------------------------------------------------------------------
4169 *WLAN_HAL_RADAR_DETECT_IND
4170 *-------------------------------------------------------------------------*/
4171typedef PACKED_PRE struct PACKED_POST
4172{
4173 /*channel number in which the RADAR detected*/
4174 tANI_U8 channelNumber;
4175
4176 /*RADAR pulse width*/
4177 tANI_U16 radarPulseWidth; // in usecond
4178
4179 /*Number of RADAR pulses */
4180 tANI_U16 numRadarPulse;
4181}tRadarDetectIndParams,*tpRadarDetectIndParams;
4182
4183typedef PACKED_PRE struct PACKED_POST
4184{
4185 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304186 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004187}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4188
4189
4190/*---------------------------------------------------------------------------
4191 *WLAN_HAL_GET_TPC_REPORT_REQ
4192 *-------------------------------------------------------------------------*/
4193typedef PACKED_PRE struct PACKED_POST
4194{
4195 tSirMacAddr sta;
4196 tANI_U8 dialogToken;
4197 tANI_U8 txpower;
4198}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4199
4200
4201typedef PACKED_PRE struct PACKED_POST
4202{
4203 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304204 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004205}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4206
4207/*---------------------------------------------------------------------------
4208 * WLAN_HAL_GET_TPC_REPORT_RSP
4209 *--------------------------------------------------------------------------*/
4210
4211typedef PACKED_PRE struct PACKED_POST
4212{
4213 /* success or failure */
4214 tANI_U32 status;
4215}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4216
4217typedef PACKED_PRE struct PACKED_POST
4218{
4219 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304220 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004221}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4222
4223#endif
4224
Jeff Johnson295189b2012-06-20 16:38:30 -07004225/*---------------------------------------------------------------------------
4226 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4227 *-------------------------------------------------------------------------*/
4228typedef PACKED_PRE struct PACKED_POST
4229{
4230 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4231 tANI_U32 probeRespTemplateLen;
4232 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4233 tSirMacAddr bssId;
4234
4235}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4236
4237typedef PACKED_PRE struct PACKED_POST
4238{
4239 tHalMsgHeader header;
4240 tSendProbeRespReqParams sendProbeRespReqParams ;
4241}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4242
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05304243typedef PACKED_PRE struct PACKED_POST
4244{
4245 tSirMacAddr bssId;
4246 tANI_U32 probeRespTemplateLen;
4247 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4248 tANI_U8 pProbeRespTemplate[1]; //Variable length array
4249}tSendProbeRespReqParams_V1, *tpSendProbeRespReqParams_V1;
4250
4251typedef PACKED_PRE struct PACKED_POST
4252{
4253 tHalMsgHeader header;
4254 tSendProbeRespReqParams_V1 sendProbeRespReqParams_v1;
4255}tSendProbeRespReqMsg_V1, *tpSendProbeRespReqMsg_V1;
4256
Jeff Johnson295189b2012-06-20 16:38:30 -07004257/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304258 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004259 *--------------------------------------------------------------------------*/
4260
4261typedef PACKED_PRE struct PACKED_POST
4262{
4263 /* success or failure */
4264 tANI_U32 status;
4265}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4266
4267typedef PACKED_PRE struct PACKED_POST
4268{
4269 tHalMsgHeader header;
4270 tSendProbeRespRspParams sendProbeRespRspParams;
4271}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4272
4273
4274/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304275 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004276 *--------------------------------------------------------------------------*/
4277
4278typedef PACKED_PRE struct PACKED_POST
4279{
4280 /* success or failure */
4281 tANI_U32 status;
4282}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4283
4284typedef PACKED_PRE struct PACKED_POST
4285{
4286 tHalMsgHeader header;
4287 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4288}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4289
4290/*---------------------------------------------------------------------------
4291 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4292 *--------------------------------------------------------------------------*/
4293
4294typedef PACKED_PRE struct PACKED_POST
4295{
4296 tANI_U16 assocId;
4297 tANI_U16 staId;
4298 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4299 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004300 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304301 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004302
4303}tDeleteStaContextParams, *tpDeleteStaContextParams;
4304
4305
4306typedef PACKED_PRE struct PACKED_POST
4307{
4308 tHalMsgHeader header;
4309 tDeleteStaContextParams deleteStaContextParams;
4310}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4311
Anand Kumar012623a2013-01-11 17:00:00 -08004312typedef PACKED_PRE struct PACKED_POST
4313{
4314 tHalMsgHeader header;
4315 tANI_U8 assocId;
4316 tANI_U8 staIdx;
4317 tANI_U8 bssIdx;
4318 tANI_U8 uReasonCode;
4319 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004320#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4321 tANI_U8 staAddr[6];
4322 tANI_U8 bssId[6];
4323#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004324} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004325
4326/*---------------------------------------------------------------------------
4327 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4328 *--------------------------------------------------------------------------*/
4329
4330typedef PACKED_PRE struct PACKED_POST
4331{
4332 tBtAmpEventType btAmpEventType;
4333
4334}tBtAmpEventParams, *tpBtAmpEventParams;
4335
4336
4337
4338typedef PACKED_PRE struct PACKED_POST
4339{
4340 tHalMsgHeader header;
4341 tBtAmpEventParams btAmpEventParams;
4342}tBtAmpEventMsg, *tpBtAmpEventMsg;
4343
4344/*---------------------------------------------------------------------------
4345*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4346*--------------------------------------------------------------------------*/
4347
4348typedef PACKED_PRE struct PACKED_POST
4349{
4350 /* success or failure */
4351 tANI_U32 status;
4352}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4353
4354typedef PACKED_PRE struct PACKED_POST
4355{
4356 tHalMsgHeader header;
4357 tBtAmpEventRspParams btAmpEventRspParams;
4358}tBtAmpEventRsp, *tpBtAmpEventRsp;
4359
4360
4361/*---------------------------------------------------------------------------
4362 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4363 *--------------------------------------------------------------------------*/
4364
4365typedef PACKED_PRE struct PACKED_POST
4366{
4367 // Station Index. originates from HAL
4368 tANI_U8 ucSTAId;
4369
4370 // TID for which the transmit queue is being flushed
4371 tANI_U8 ucTid;
4372
4373}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4374
4375
4376typedef PACKED_PRE struct PACKED_POST
4377{
4378 tHalMsgHeader header;
4379 tTlHalFlushAcParams tlHalFlushAcParam;
4380}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4381
4382/*---------------------------------------------------------------------------
4383*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4384*--------------------------------------------------------------------------*/
4385
4386typedef PACKED_PRE struct PACKED_POST
4387{
4388 // Station Index. originates from HAL
4389 tANI_U8 ucSTAId;
4390
4391 // TID for which the transmit queue is being flushed
4392 tANI_U8 ucTid;
4393
4394 /* success or failure */
4395 tANI_U32 status;
4396}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4397
4398typedef PACKED_PRE struct PACKED_POST
4399{
4400 tHalMsgHeader header;
4401 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4402}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4403
4404/*---------------------------------------------------------------------------
4405 * WLAN_HAL_ENTER_IMPS_REQ
4406 *--------------------------------------------------------------------------*/
4407typedef PACKED_PRE struct PACKED_POST
4408{
4409 tHalMsgHeader header;
4410} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4411
4412/*---------------------------------------------------------------------------
4413 * WLAN_HAL_EXIT_IMPS_REQ
4414 *--------------------------------------------------------------------------*/
4415typedef PACKED_PRE struct PACKED_POST
4416{
4417 tHalMsgHeader header;
4418} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4419
4420/*---------------------------------------------------------------------------
4421 * WLAN_HAL_ENTER_BMPS_REQ
4422 *--------------------------------------------------------------------------*/
4423
4424typedef PACKED_PRE struct PACKED_POST
4425{
4426 tANI_U8 bssIdx;
4427 //TBTT value derived from the last beacon
4428#ifndef BUILD_QWPTTSTATIC
4429 tANI_U64 tbtt;
4430#endif
4431 tANI_U8 dtimCount;
4432 //DTIM period given to HAL during association may not be valid,
4433 //if association is based on ProbeRsp instead of beacon.
4434 tANI_U8 dtimPeriod;
4435
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004436 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004437 tANI_U32 rssiFilterPeriod;
4438 tANI_U32 numBeaconPerRssiAverage;
4439 tANI_U8 bRssiFilterEnable;
4440
4441} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4442
4443
4444typedef PACKED_PRE struct PACKED_POST
4445{
4446 tHalMsgHeader header;
4447 tHalEnterBmpsReqParams enterBmpsReq;
4448} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4449
4450/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304451 * WLAN_HAL_PRINT_REG_INFO_IND
4452 *--------------------------------------------------------------------------*/
4453typedef PACKED_PRE struct PACKED_POST
4454{
4455 uint32 regAddr;
4456 uint32 regValue;
4457} tHalRegDebugInfo, *tpRegDebugInfo;
4458
4459typedef PACKED_PRE struct PACKED_POST
4460{
4461 uint32 regCount;
4462 uint32 scenario;
4463 uint32 reasonCode;
4464} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4465
4466typedef PACKED_PRE struct PACKED_POST
4467{
4468 tHalMsgHeader header;
4469 tHalRegDebugInfoParams regParams;
4470} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4471
4472/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004473 * WLAN_HAL_EXIT_BMPS_REQ
4474 *--------------------------------------------------------------------------*/
4475typedef PACKED_PRE struct PACKED_POST
4476{
4477 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004478 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004479} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4480
4481typedef PACKED_PRE struct PACKED_POST
4482{
4483 tHalMsgHeader header;
4484 tHalExitBmpsReqParams exitBmpsReqParams;
4485} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4486
4487/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004488 * WLAN_HAL_MISSED_BEACON_IND
4489 *--------------------------------------------------------------------------*/
4490typedef PACKED_PRE struct PACKED_POST
4491{
4492 tANI_U8 bssIdx;
4493} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4494
4495typedef PACKED_PRE struct PACKED_POST
4496{
4497 tHalMsgHeader header;
4498 tHalMissedBeaconIndParams missedBeaconIndParams;
4499} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4500
4501/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004502 * WLAN_HAL_ADD_BCN_FILTER_REQ
4503 *--------------------------------------------------------------------------*/
4504/* Beacon Filtering data structures */
4505typedef PACKED_PRE struct PACKED_POST
4506{
4507 tANI_U8 offset;
4508 tANI_U8 value;
4509 tANI_U8 bitMask;
4510 tANI_U8 ref;
4511} tEidByteInfo, *tpEidByteInfo;
4512
Dino Mycle8afbac12014-07-04 22:06:17 +05304513typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004514{
4515 tANI_U16 capabilityInfo;
4516 tANI_U16 capabilityMask;
4517 tANI_U16 beaconInterval;
4518 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004519 tANI_U8 bssIdx;
4520 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004521} tBeaconFilterMsg, *tpBeaconFilterMsg;
4522
4523/* The above structure would be followed by multiple of below mentioned structure */
4524typedef PACKED_PRE struct PACKED_POST
4525{
4526 tANI_U8 elementId;
4527 tANI_U8 checkIePresence;
4528 tEidByteInfo byte;
4529} tBeaconFilterIe, *tpBeaconFilterIe;
4530
4531typedef PACKED_PRE struct PACKED_POST
4532{
4533 tHalMsgHeader header;
4534 tBeaconFilterMsg addBcnFilterParams;
4535} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4536
4537/*---------------------------------------------------------------------------
4538 * WLAN_HAL_REM_BCN_FILTER_REQ
4539 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304540typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004541{
4542 tANI_U8 ucIeCount;
4543 tANI_U8 ucRemIeId[1];
4544} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4545
4546typedef PACKED_PRE struct PACKED_POST
4547{
4548 tHalMsgHeader header;
4549 tRemBeaconFilterMsg remBcnFilterParams;
4550} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4551
4552/*---------------------------------------------------------------------------
4553 * WLAN_HAL_HOST_OFFLOAD_REQ
4554 *--------------------------------------------------------------------------*/
4555#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4556#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4557#define HAL_IPV6_NS_OFFLOAD 2
4558#define HAL_IPV6_ADDR_LEN 16
4559#define HAL_MAC_ADDR_LEN 6
4560#define HAL_OFFLOAD_DISABLE 0
4561#define HAL_OFFLOAD_ENABLE 1
4562#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004563#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004564#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004565#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004566
4567typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4568{
4569 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4570 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4571 //Only support 2 possible Network Advertisement IPv6 address
4572 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4573 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4574 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4575 tANI_U8 srcIPv6AddrValid : 1;
4576 tANI_U8 targetIPv6Addr1Valid : 1;
4577 tANI_U8 targetIPv6Addr2Valid : 1;
4578 tANI_U8 reserved1 : 5;
4579 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004580 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004581 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004582} tHalNSOffloadParams;
4583
4584typedef PACKED_PRE struct PACKED_POST
4585{
4586 tANI_U8 offloadType;
4587 tANI_U8 enableOrDisable;
4588 PACKED_PRE union PACKED_POST
4589 {
4590 tANI_U8 hostIpv4Addr [4];
4591 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4592 } params;
4593} tHalHostOffloadReq, *tpHalHostOffloadReq;
4594
4595typedef PACKED_PRE struct PACKED_POST
4596{
4597 tHalMsgHeader header;
4598 tHalHostOffloadReq hostOffloadParams;
4599 tHalNSOffloadParams nsOffloadParams;
4600} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4601
Leo Chang397deb72013-08-22 11:33:16 -07004602
4603#ifdef FEATURE_WLAN_LPHB
4604typedef enum
4605{
4606 WIFI_HB_SET_ENABLE = 0x0001,
4607 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4608 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4609 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4610 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4611 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4612}tLowPowerHeartBeatCmdType ;
4613
4614#define MAX_FLITER_SIZE 64
4615/*---------------------------------------------------------------------------
4616 *FEATURE_WLAN_LPHB REQ
4617 *--------------------------------------------------------------------------*/
4618typedef PACKED_PRE struct PACKED_POST
4619{
4620 uint32 hostIpv4Addr;
4621 uint32 destIpv4Addr;
4622 uint16 hostPort;
4623 uint16 destPort;
4624 uint16 timeOutSec; // in seconds
4625 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004626 uint16 timePeriodSec; // in seconds
4627 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004628} tlowPowerHeartBeatParamsTcpStruct;
4629
4630typedef PACKED_PRE struct PACKED_POST
4631{
4632 uint32 hostIpv4Addr;
4633 uint32 destIpv4Addr;
4634 uint16 hostPort;
4635 uint16 destPort;
4636 uint16 timePeriodSec;// in seconds
4637 uint16 timeOutSec; // in seconds
4638 tSirMacAddr gatewayMacAddr;
4639} tlowPowerHeartBeatParamsUdpStruct;
4640
4641typedef PACKED_PRE struct PACKED_POST
4642{
4643 uint32 offset;
4644 uint32 filterLength;
4645 uint8 filter[MAX_FLITER_SIZE];
4646} tlowPowerHeartBeatFilterStruct;
4647
4648typedef PACKED_PRE struct PACKED_POST
4649{
4650 uint8 heartBeatEnable;
4651 uint8 heartBeatType; //TCP or UDP
4652} tlowPowerHeartBeatEnableStruct;
4653
4654typedef PACKED_PRE struct PACKED_POST
4655{
4656 uint8 dummy;
4657} tlowPowerHeartBeatNetworkInfoStruct;
4658
4659
4660typedef PACKED_PRE struct PACKED_POST
4661{
4662 uint8 sessionIdx;
4663 uint16 lowPowerHeartBeatCmdType;
4664 PACKED_PRE union PACKED_PRO
4665 {
4666 tlowPowerHeartBeatEnableStruct control;
4667 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4668 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4669 tlowPowerHeartBeatParamsUdpStruct udpParams;
4670 tlowPowerHeartBeatNetworkInfoStruct info;
4671 }options;
4672} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4673
4674
4675typedef PACKED_PRE struct PACKED_POST
4676{
4677 tHalMsgHeader header;
4678 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4679} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4680
4681/*---------------------------------------------------------------------------
4682 * FEATURE_WLAN_LPHB RSP
4683 *--------------------------------------------------------------------------*/
4684
4685typedef PACKED_PRE struct PACKED_POST
4686{
4687 /* success or failure */
4688 uint8 sessionIdx;
4689 uint32 status;
4690 uint16 lowPowerHeartBeatCmdType;
4691}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4692
4693typedef PACKED_PRE struct PACKED_POST
4694{
4695 tHalMsgHeader header;
4696 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4697}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4698
4699
4700/*---------------------------------------------------------------------------
4701 * FEATURE_WLAN_LPHB IND
4702 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004703#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4704#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4705
4706#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4707#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004708#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004709
Kumar Anandea78e792013-10-10 23:47:01 -07004710
4711#define WIFI_LPHB_PROTO_UDP 0x01
4712#define WIFI_LPHB_PROTO_TCP 0x02
4713
Leo Chang397deb72013-08-22 11:33:16 -07004714typedef PACKED_PRE struct PACKED_POST
4715{
4716 uint8 bssIdx;
4717 uint8 sessionIdx;
4718 uint8 protocolType; /*TCP or UDP*/
4719 uint8 eventReason;
4720
4721}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4722
4723typedef PACKED_PRE struct PACKED_POST
4724{
4725 tHalMsgHeader header;
4726 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4727}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4728
4729#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004730
4731#ifdef FEATURE_WLAN_BATCH_SCAN
4732
4733/*---------------------------------------------------------------------------
4734 * WLAN_HAL_BATCHSCAN_SET_REQ
4735 *--------------------------------------------------------------------------*/
4736typedef PACKED_PRE struct PACKED_POST
4737{
4738 /* Scan Frerquency - default to 30Sec*/
4739 tANI_U32 scanInterval;
4740 tANI_U32 numScan2Batch;
4741 tANI_U32 bestNetworks;
4742 tANI_U8 rfBand;
4743 tANI_U8 rtt;
4744} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4745
4746typedef PACKED_PRE struct PACKED_POST
4747{
4748 tHalMsgHeader header;
4749 tHalBatchScanSetParams batchScanParams;
4750} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4751
4752/*---------------------------------------------------------------------------
4753 * WLAN_HAL_BATCHSCAN_SET_RSP
4754 *--------------------------------------------------------------------------*/
4755typedef PACKED_PRE struct PACKED_POST
4756{
4757 tANI_U32 supportedMscan;
4758} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4759
4760typedef PACKED_PRE struct PACKED_POST
4761{
4762 tHalMsgHeader header;
4763 tHalBatchScanSetRspParam setBatchScanRspParam;
4764} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4765
4766/*---------------------------------------------------------------------------
4767* WLAN_HAL_BATCHSCAN_STOP_IND
4768*--------------------------------------------------------------------------*/
4769typedef PACKED_PRE struct PACKED_POST
4770{
4771 tANI_U32 param;
4772} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4773
4774typedef PACKED_PRE struct PACKED_POST
4775{
4776 tHalMsgHeader header;
4777 tHalBatchScanStopIndParam param;
4778} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4779
4780/*---------------------------------------------------------------------------
4781* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4782*--------------------------------------------------------------------------*/
4783typedef PACKED_PRE struct PACKED_POST
4784{
4785 tANI_U32 param;
4786} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4787
4788typedef PACKED_PRE struct PACKED_POST
4789{
4790 tHalMsgHeader header;
4791 tHalBatchScanTriggerResultParam param;
4792} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4793
4794/*---------------------------------------------------------------------------
4795 * WLAN_HAL_BATCHSCAN_GET_RSP
4796 *--------------------------------------------------------------------------*/
4797typedef PACKED_PRE struct PACKED_POST
4798{
4799 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004800 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004801 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304802 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004803 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4804 tANI_U32 timestamp;
4805} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4806
4807typedef PACKED_PRE struct PACKED_POST
4808{
4809 tANI_U32 scanId; /* Scan List ID. */
4810 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4811 tANI_U32 numNetworksInScanList;
4812 /* Variable data ptr: Number of AP in Scan List */
4813 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4814 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4815 tANI_U8 scanList[1];
4816} tHalBatchScanList, *tpHalBatchScanList;
4817
4818typedef PACKED_PRE struct PACKED_POST
4819{
4820 tANI_U32 timestamp;
4821 tANI_U32 numScanLists;
4822 boolean isLastResult;
4823 /* Variable Data ptr: Number of Scan Lists*/
4824 /* following isLastResult is data of type tHalBatchScanList
4825 * of sizeof(tHalBatchScanList) * numScanLists*/
4826 tANI_U8 scanResults[1];
4827} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4828
4829typedef PACKED_PRE struct PACKED_POST
4830{
4831 tHalMsgHeader header;
4832 tHalBatchScanResultIndParam resultIndMsgParam;
4833} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4834
4835#endif
4836
Jeff Johnson295189b2012-06-20 16:38:30 -07004837/*---------------------------------------------------------------------------
4838 * WLAN_HAL_KEEP_ALIVE_REQ
4839 *--------------------------------------------------------------------------*/
4840/* Packet Types. */
4841#define HAL_KEEP_ALIVE_NULL_PKT 1
4842#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4843
4844/* Enable or disable keep alive */
4845#define HAL_KEEP_ALIVE_DISABLE 0
4846#define HAL_KEEP_ALIVE_ENABLE 1
4847
4848/* Keep Alive request. */
4849typedef PACKED_PRE struct PACKED_POST
4850{
4851 tANI_U8 packetType;
4852 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304853 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004854 tHalIpv4Addr destIpv4Addr;
4855 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004856 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004857} tHalKeepAliveReq, *tpHalKeepAliveReq;
4858
4859typedef PACKED_PRE struct PACKED_POST
4860{
4861 tHalMsgHeader header;
4862 tHalKeepAliveReq KeepAliveParams;
4863} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4864
4865/*---------------------------------------------------------------------------
4866 * WLAN_HAL_SET_RSSI_THRESH_REQ
4867 *--------------------------------------------------------------------------*/
4868typedef PACKED_PRE struct PACKED_POST
4869{
4870 tANI_S8 ucRssiThreshold1 : 8;
4871 tANI_S8 ucRssiThreshold2 : 8;
4872 tANI_S8 ucRssiThreshold3 : 8;
4873 tANI_U8 bRssiThres1PosNotify : 1;
4874 tANI_U8 bRssiThres1NegNotify : 1;
4875 tANI_U8 bRssiThres2PosNotify : 1;
4876 tANI_U8 bRssiThres2NegNotify : 1;
4877 tANI_U8 bRssiThres3PosNotify : 1;
4878 tANI_U8 bRssiThres3NegNotify : 1;
4879 tANI_U8 bReserved10 : 2;
4880} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304881
Jeff Johnson295189b2012-06-20 16:38:30 -07004882typedef PACKED_PRE struct PACKED_POST
4883{
4884 tHalMsgHeader header;
4885 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004886} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004887
4888/*---------------------------------------------------------------------------
4889 * WLAN_HAL_ENTER_UAPSD_REQ
4890 *--------------------------------------------------------------------------*/
4891typedef PACKED_PRE struct PACKED_POST
4892{
4893 tANI_U8 bkDeliveryEnabled:1;
4894 tANI_U8 beDeliveryEnabled:1;
4895 tANI_U8 viDeliveryEnabled:1;
4896 tANI_U8 voDeliveryEnabled:1;
4897 tANI_U8 bkTriggerEnabled:1;
4898 tANI_U8 beTriggerEnabled:1;
4899 tANI_U8 viTriggerEnabled:1;
4900 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004901 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004902} tUapsdReqParams, *tpUapsdReqParams;
4903
4904typedef PACKED_PRE struct PACKED_POST
4905{
4906 tHalMsgHeader header;
4907 tUapsdReqParams enterUapsdParams;
4908} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4909
4910/*---------------------------------------------------------------------------
4911 * WLAN_HAL_EXIT_UAPSD_REQ
4912 *--------------------------------------------------------------------------*/
4913typedef PACKED_PRE struct PACKED_POST
4914{
4915 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004916 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004917} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4918
Kumar Anandea78e792013-10-10 23:47:01 -07004919#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4920#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004921/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004922 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4923 *--------------------------------------------------------------------------*/
4924typedef PACKED_PRE struct PACKED_POST
4925{
4926 tANI_U32 selfStaIdx:8;
4927 tANI_U32 ucPtrnId:8; // Pattern ID
4928 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4929 tANI_U32 uPtrnIntervalMs; // In msec
4930 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4931} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4932
4933typedef PACKED_PRE struct PACKED_POST
4934{
4935 tHalMsgHeader header;
4936 tHalAddPeriodicTxPtrn ptrnParams;
4937} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4938
4939/*---------------------------------------------------------------------------
4940 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4941 *--------------------------------------------------------------------------*/
4942typedef PACKED_PRE struct PACKED_POST
4943{
4944 tANI_U32 selfStaIdx:8;
4945 tANI_U32 rsvd:24;
4946 /* Bitmap of pattern IDs that needs to be deleted */
4947 tANI_U32 uPatternIdBitmap;
4948} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4949
4950typedef PACKED_PRE struct PACKED_POST
4951{
4952 tHalMsgHeader header;
4953 tHalDelPeriodicTxPtrn ptrnParams;
4954} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4955
4956/*---------------------------------------------------------------------------
4957 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4958 *--------------------------------------------------------------------------*/
4959typedef PACKED_PRE struct PACKED_POST
4960{
4961 /* Type of Failure indication */
4962 tANI_U32 bssIdx:8;
4963 tANI_U32 selfStaIdx:8;
4964 tANI_U32 rsvd:16;
4965 tANI_U32 status;
4966 tANI_U32 patternIdBitmap;
4967} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4968
4969typedef PACKED_PRE struct PACKED_POST
4970{
4971 tHalMsgHeader header;
4972 tHalPeriodicTxPtrnFwInd fwIndParams;
4973} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4974
4975/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004976 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4977 *--------------------------------------------------------------------------*/
4978#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4979#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4980
4981typedef PACKED_PRE struct PACKED_POST
4982{
4983 tANI_U8 ucPatternId; // Pattern ID
4984 // Pattern byte offset from beginning of the 802.11 packet to start of the
4985 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304986 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004987 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4988 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4989 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4990 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4991 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4992 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004993 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004994} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4995
4996typedef PACKED_PRE struct PACKED_POST
4997{
4998 tHalMsgHeader header;
4999 tHalWowlAddBcastPtrn ptrnParams;
5000} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05305001
Jeff Johnsone7245742012-09-05 17:12:55 -07005002
5003
Jeff Johnson295189b2012-06-20 16:38:30 -07005004/*---------------------------------------------------------------------------
5005 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
5006 *--------------------------------------------------------------------------*/
5007typedef PACKED_PRE struct PACKED_POST
5008{
5009 /* Pattern ID of the wakeup pattern to be deleted */
5010 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005011 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005012} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
5013
5014typedef PACKED_PRE struct PACKED_POST
5015{
5016 tHalMsgHeader header;
5017 tHalWowlDelBcastPtrn ptrnParams;
5018} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
5019
5020/*---------------------------------------------------------------------------
5021 * WLAN_HAL_ENTER_WOWL_REQ
5022 *--------------------------------------------------------------------------*/
5023typedef PACKED_PRE struct PACKED_POST
5024{
5025 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05305026 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005027
5028 /* Magic pattern */
5029 tSirMacAddr magicPtrn;
5030
Dino Mycle8afbac12014-07-04 22:06:17 +05305031 /* Enables/disables packet pattern filtering in firmware.
5032 Enabling this flag enables broadcast pattern matching
5033 in Firmware. If unicast pattern matching is also desired,
5034 ucUcastPatternFilteringEnable flag must be set tot true
5035 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07005036 */
5037 tANI_U8 ucPatternFilteringEnable;
5038
Dino Mycle8afbac12014-07-04 22:06:17 +05305039 /* Enables/disables unicast packet pattern filtering.
5040 This flag specifies whether we want to do pattern match
5041 on unicast packets as well and not just broadcast packets.
5042 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07005043 (main controlling flag) is set to false
5044 */
Dino Mycle8afbac12014-07-04 22:06:17 +05305045 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005046
Dino Mycle8afbac12014-07-04 22:06:17 +05305047 /* This configuration is valid only when magicPktEnable=1.
5048 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07005049 * Channel Switch Action Frame.
5050 */
5051 tANI_U8 ucWowChnlSwitchRcv;
5052
Dino Mycle8afbac12014-07-04 22:06:17 +05305053 /* This configuration is valid only when magicPktEnable=1.
5054 * It requests hardware to wake up when it receives the
5055 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005056 */
5057 tANI_U8 ucWowDeauthRcv;
5058
Dino Mycle8afbac12014-07-04 22:06:17 +05305059 /* This configuration is valid only when magicPktEnable=1.
5060 * It requests hardware to wake up when it receives the
5061 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005062 */
5063 tANI_U8 ucWowDisassocRcv;
5064
Dino Mycle8afbac12014-07-04 22:06:17 +05305065 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005066 * It requests hardware to wake up when it has missed
5067 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05305068 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07005069 */
5070 tANI_U8 ucWowMaxMissedBeacons;
5071
Dino Mycle8afbac12014-07-04 22:06:17 +05305072 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005073 * This is a timeout value in units of microsec. It requests
5074 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05305075 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07005076 */
5077 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05305078
Jeff Johnson295189b2012-06-20 16:38:30 -07005079 /* This configuration directs the WoW packet filtering to look for EAP-ID
5080 * requests embedded in EAPOL frames and use this as a wake source.
5081 */
5082 tANI_U8 ucWoWEAPIDRequestEnable;
5083
5084 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
5085 * requests and use this as a wake source.
5086 */
5087 tANI_U8 ucWoWEAPOL4WayEnable;
5088
5089 /* This configuration allows a host wakeup on an network scan offload match.
5090 */
5091 tANI_U8 ucWowNetScanOffloadMatch;
5092
5093 /* This configuration allows a host wakeup on any GTK rekeying error.
5094 */
5095 tANI_U8 ucWowGTKRekeyError;
5096
5097 /* This configuration allows a host wakeup on BSS connection loss.
5098 */
5099 tANI_U8 ucWoWBSSConnLoss;
5100
Jeff Johnsone7245742012-09-05 17:12:55 -07005101 tANI_U8 bssIdx;
5102
Jeff Johnson295189b2012-06-20 16:38:30 -07005103} tHalWowlEnterParams, *tpHalWowlEnterParams;
5104
5105typedef PACKED_PRE struct PACKED_POST
5106{
5107 tHalMsgHeader header;
5108 tHalWowlEnterParams enterWowlParams;
5109} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5110
5111/*---------------------------------------------------------------------------
5112 * WLAN_HAL_EXIT_WOWL_REQ
5113 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005114
Jeff Johnson295189b2012-06-20 16:38:30 -07005115typedef PACKED_PRE struct PACKED_POST
5116{
Jeff Johnsone7245742012-09-05 17:12:55 -07005117 tANI_U8 bssIdx;
5118
5119} tHalWowlExitParams, *tpHalWowlExitParams;
5120
5121typedef PACKED_PRE struct PACKED_POST
5122{
5123 tHalMsgHeader header;
5124 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005125} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5126
5127/*---------------------------------------------------------------------------
5128 * WLAN_HAL_GET_RSSI_REQ
5129 *--------------------------------------------------------------------------*/
5130typedef PACKED_PRE struct PACKED_POST
5131{
5132 tHalMsgHeader header;
5133} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5134
Anand Kumar012623a2013-01-11 17:00:00 -08005135typedef PACKED_PRE struct PACKED_POST
5136{
5137 /* Valid STA Idx for per STA stats request */
5138 tANI_U32 staId;
5139
5140}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5141
5142
5143/*---------------------------------------------------------------------------
5144 * WLAN_HAL_GET_ROAM_RSSI_REQ
5145 *--------------------------------------------------------------------------*/
5146typedef PACKED_PRE struct PACKED_POST
5147{
5148 tHalMsgHeader header;
5149 tHalRoamRssiReqParams roamRssiReqParams;
5150} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5151
5152
Jeff Johnson295189b2012-06-20 16:38:30 -07005153/*---------------------------------------------------------------------------
5154 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5155 *--------------------------------------------------------------------------*/
5156typedef PACKED_PRE struct PACKED_POST {
5157 tANI_U8 staidx; // STA index
5158 tANI_U8 ac; // Access Category
5159 tANI_U8 up; // User Priority
5160 tANI_U32 srvInterval; // Service Interval
5161 tANI_U32 susInterval; // Suspend Interval
5162 tANI_U32 delayInterval; // Delay Interval
5163} tUapsdInfo, tpUapsdInfo;
5164
5165typedef PACKED_PRE struct PACKED_POST
5166{
5167 tHalMsgHeader header;
5168 tUapsdInfo enableUapsdAcParams;
5169} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5170
5171/*---------------------------------------------------------------------------
5172 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5173 *--------------------------------------------------------------------------*/
5174typedef PACKED_PRE struct PACKED_POST {
5175 tANI_U8 setMcstBcstFilterSetting;
5176 tANI_U8 setMcstBcstFilter;
5177} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5178
5179typedef PACKED_PRE struct PACKED_POST
5180{
5181 tHalMsgHeader header;
5182 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5183} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5184
5185/*---------------------------------------------------------------------------
5186 * WLAN_HAL_ENTER_IMPS_RSP
5187 *--------------------------------------------------------------------------*/
5188typedef PACKED_PRE struct PACKED_POST
5189{
5190 /* success or failure */
5191 tANI_U32 status;
5192} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5193
5194typedef PACKED_PRE struct PACKED_POST
5195{
5196 tHalMsgHeader header;
5197 tHalEnterImpsRspParams enterImpsRspParams;
5198} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5199
5200/*---------------------------------------------------------------------------
5201 * WLAN_HAL_EXIT_IMPS_RSP
5202 *--------------------------------------------------------------------------*/
5203typedef PACKED_PRE struct PACKED_POST
5204{
5205 /* success or failure */
5206 tANI_U32 status;
5207} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5208
5209typedef PACKED_PRE struct PACKED_POST
5210{
5211 tHalMsgHeader header;
5212 tHalExitImpsRspParams exitImpsRspParams;
5213} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5214
5215/*---------------------------------------------------------------------------
5216 * WLAN_HAL_ENTER_BMPS_RSP
5217 *--------------------------------------------------------------------------*/
5218typedef PACKED_PRE struct PACKED_POST
5219{
5220 /* success or failure */
5221 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005222 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005223} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5224
5225typedef PACKED_PRE struct PACKED_POST
5226{
5227 tHalMsgHeader header;
5228 tHalEnterBmpsRspParams enterBmpsRspParams;
5229} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5230
5231/*---------------------------------------------------------------------------
5232 * WLAN_HAL_EXIT_BMPS_RSP
5233 *--------------------------------------------------------------------------*/
5234typedef PACKED_PRE struct PACKED_POST
5235{
5236 /* success or failure */
5237 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005238 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005239} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5240
5241typedef PACKED_PRE struct PACKED_POST
5242{
5243 tHalMsgHeader header;
5244 tHalExitBmpsRspParams exitBmpsRspParams;
5245} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5246
5247/*---------------------------------------------------------------------------
5248 * WLAN_HAL_ENTER_UAPSD_RSP
5249 *--------------------------------------------------------------------------*/
5250typedef PACKED_PRE struct PACKED_POST
5251{
5252 /* success or failure */
5253 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005254 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005255}tUapsdRspParams, *tpUapsdRspParams;
5256
5257typedef PACKED_PRE struct PACKED_POST
5258{
5259 tHalMsgHeader header;
5260 tUapsdRspParams enterUapsdRspParams;
5261} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5262
5263/*---------------------------------------------------------------------------
5264 * WLAN_HAL_EXIT_UAPSD_RSP
5265 *--------------------------------------------------------------------------*/
5266typedef PACKED_PRE struct PACKED_POST
5267{
5268 /* success or failure */
5269 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005270 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005271} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5272
5273typedef PACKED_PRE struct PACKED_POST
5274{
5275 tHalMsgHeader header;
5276 tHalExitUapsdRspParams exitUapsdRspParams;
5277} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5278
5279/*---------------------------------------------------------------------------
5280 * WLAN_HAL_RSSI_NOTIFICATION_IND
5281 *--------------------------------------------------------------------------*/
5282typedef PACKED_PRE struct PACKED_POST
5283{
5284 tANI_U32 bRssiThres1PosCross : 1;
5285 tANI_U32 bRssiThres1NegCross : 1;
5286 tANI_U32 bRssiThres2PosCross : 1;
5287 tANI_U32 bRssiThres2NegCross : 1;
5288 tANI_U32 bRssiThres3PosCross : 1;
5289 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005290 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005291 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005292 tANI_U32 isBTCoexCompromise : 1;
5293 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005294 tANI_S8 refRssiThreshold1;
5295 tANI_S8 refRssiThreshold2;
5296 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005297} tHalRSSINotification, *tpHalRSSINotification;
5298
5299typedef PACKED_PRE struct PACKED_POST
5300{
5301 tHalMsgHeader header;
5302 tHalRSSINotification rssiNotificationParams;
5303} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5304
5305/*---------------------------------------------------------------------------
5306 * WLAN_HAL_GET_RSSI_RSP
5307 *--------------------------------------------------------------------------*/
5308typedef PACKED_PRE struct PACKED_POST
5309{
5310 /* success or failure */
5311 tANI_U32 status;
5312 tANI_S8 rssi;
5313} tHalGetRssiParams, *tpHalGetRspParams;
5314
5315typedef PACKED_PRE struct PACKED_POST
5316{
5317 tHalMsgHeader header;
5318 tHalGetRssiParams rssiRspParams;
5319} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5320
5321/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005322 * WLAN_HAL_GET_ROAM_RSSI_RSP
5323 *--------------------------------------------------------------------------*/
5324typedef PACKED_PRE struct PACKED_POST
5325{
5326 /* success or failure */
5327 tANI_U32 status;
5328
5329 tANI_U8 staId;
5330 tANI_S8 rssi;
5331} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5332
5333typedef PACKED_PRE struct PACKED_POST
5334{
5335 tHalMsgHeader header;
5336 tHalGetRoamRssiParams roamRssiRspParams;
5337} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5338
5339/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005340 * WLAN_HAL_ENTER_WOWL_RSP
5341 *--------------------------------------------------------------------------*/
5342typedef PACKED_PRE struct PACKED_POST
5343{
5344 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005345 tANI_U32 status;
5346 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005347} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5348
5349typedef PACKED_PRE struct PACKED_POST
5350{
5351 tHalMsgHeader header;
5352 tHalEnterWowlRspParams enterWowlRspParams;
5353} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5354
5355/*---------------------------------------------------------------------------
5356 * WLAN_HAL_EXIT_WOWL_RSP
5357 *--------------------------------------------------------------------------*/
5358typedef PACKED_PRE struct PACKED_POST
5359{
5360 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005361 tANI_U32 status;
5362 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005363} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5364
5365typedef PACKED_PRE struct PACKED_POST
5366{
5367 tHalMsgHeader header;
5368 tHalExitWowlRspParams exitWowlRspParams;
5369} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5370
5371/*---------------------------------------------------------------------------
5372 * WLAN_HAL_ADD_BCN_FILTER_RSP
5373 *--------------------------------------------------------------------------*/
5374typedef PACKED_PRE struct PACKED_POST
5375{
5376 /* success or failure */
5377 tANI_U32 status;
5378} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5379
5380typedef PACKED_PRE struct PACKED_POST
5381{
5382 tHalMsgHeader header;
5383 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5384} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5385
5386/*---------------------------------------------------------------------------
5387 * WLAN_HAL_REM_BCN_FILTER_RSP
5388 *--------------------------------------------------------------------------*/
5389typedef PACKED_PRE struct PACKED_POST
5390{
5391 /* success or failure */
5392 tANI_U32 status;
5393} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5394
5395typedef PACKED_PRE struct PACKED_POST
5396{
5397 tHalMsgHeader header;
5398 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5399} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5400
5401/*---------------------------------------------------------------------------
5402 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5403 *--------------------------------------------------------------------------*/
5404typedef PACKED_PRE struct PACKED_POST
5405{
5406 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005407 tANI_U32 status;
5408 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005409} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5410
5411typedef PACKED_PRE struct PACKED_POST
5412{
5413 tHalMsgHeader header;
5414 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5415} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5416
5417/*---------------------------------------------------------------------------
5418 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5419 *--------------------------------------------------------------------------*/
5420typedef PACKED_PRE struct PACKED_POST
5421{
5422 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005423 tANI_U32 status;
5424 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005425} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5426
5427typedef PACKED_PRE struct PACKED_POST
5428{
5429 tHalMsgHeader header;
5430 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5431} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5432
5433/*---------------------------------------------------------------------------
5434 * WLAN_HAL_HOST_OFFLOAD_RSP
5435 *--------------------------------------------------------------------------*/
5436typedef PACKED_PRE struct PACKED_POST
5437{
5438 /* success or failure */
5439 tANI_U32 status;
5440} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5441
5442typedef PACKED_PRE struct PACKED_POST
5443{
5444 tHalMsgHeader header;
5445 tHalHostOffloadRspParams hostOffloadRspParams;
5446} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5447
5448/*---------------------------------------------------------------------------
5449 * WLAN_HAL_KEEP_ALIVE_RSP
5450 *--------------------------------------------------------------------------*/
5451typedef PACKED_PRE struct PACKED_POST
5452{
5453 /* success or failure */
5454 tANI_U32 status;
5455} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5456
5457typedef PACKED_PRE struct PACKED_POST
5458{
5459 tHalMsgHeader header;
5460 tHalKeepAliveRspParams keepAliveRspParams;
5461} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5462
5463/*---------------------------------------------------------------------------
5464 * WLAN_HAL_SET_RSSI_THRESH_RSP
5465 *--------------------------------------------------------------------------*/
5466typedef PACKED_PRE struct PACKED_POST
5467{
5468 /* success or failure */
5469 tANI_U32 status;
5470} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5471
5472typedef PACKED_PRE struct PACKED_POST
5473{
5474 tHalMsgHeader header;
5475 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5476} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5477
5478/*---------------------------------------------------------------------------
5479 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5480 *--------------------------------------------------------------------------*/
5481typedef PACKED_PRE struct PACKED_POST
5482{
5483 /* success or failure */
5484 tANI_U32 status;
5485} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5486
5487typedef PACKED_PRE struct PACKED_POST
5488{
5489 tHalMsgHeader header;
5490 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5491} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5492
5493/*---------------------------------------------------------------------------
5494 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5495 *--------------------------------------------------------------------------*/
5496typedef PACKED_PRE struct PACKED_POST
5497{
5498 /* success or failure */
5499 tANI_U32 status;
5500} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5501
5502typedef PACKED_PRE struct PACKED_POST
5503{
5504 tHalMsgHeader header;
5505 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5506} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5507
5508/*---------------------------------------------------------------------------
5509 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5510 *--------------------------------------------------------------------------*/
5511
5512typedef PACKED_PRE struct PACKED_POST
5513{
5514 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5515 //the request has power constraints, this should be applied only to that session
5516 tSirMacAddr selfStaMacAddr;
5517 //In request,
5518 //power == MaxTx power to be used.
5519 tPowerdBm power;
5520
5521}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5522
5523
5524typedef PACKED_PRE struct PACKED_POST
5525{
5526 tHalMsgHeader header;
5527 tSetMaxTxPwrParams setMaxTxPwrParams;
5528}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5529
5530/*---------------------------------------------------------------------------
5531*WLAN_HAL_SET_MAX_TX_POWER_RSP
5532*--------------------------------------------------------------------------*/
5533
5534typedef PACKED_PRE struct PACKED_POST
5535{
5536 //power == tx power used for management frames.
5537 tPowerdBm power;
5538
5539 /* success or failure */
5540 tANI_U32 status;
5541}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5542
5543typedef PACKED_PRE struct PACKED_POST
5544{
5545 tHalMsgHeader header;
5546 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5547}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5548
Kumar Anandea78e792013-10-10 23:47:01 -07005549
Jeff Johnson295189b2012-06-20 16:38:30 -07005550/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005551 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5552 *--------------------------------------------------------------------------*/
5553
5554/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5555typedef enum
5556{
5557 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5558 // For 2.4GHz or 5GHz bands
5559 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5560 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5561 // End of valid enums
5562 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5563}tHalSetMaxTxPwrBandInfo;
5564
5565typedef PACKED_PRE struct PACKED_POST
5566{
5567 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005568 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005569}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5570
Kumar Anandea78e792013-10-10 23:47:01 -07005571
Arif Hussain36fda162013-08-30 14:46:57 -07005572typedef PACKED_PRE struct PACKED_POST
5573{
5574 tHalMsgHeader header;
5575 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5576}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5577
5578/*---------------------------------------------------------------------------
5579*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5580*--------------------------------------------------------------------------*/
5581
5582typedef PACKED_PRE struct PACKED_POST
5583{
5584 //power == tx power used for management frames.
5585 tPowerdBm power;
5586
5587 /* success or failure */
5588 tANI_U32 status;
5589}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5590
5591typedef PACKED_PRE struct PACKED_POST
5592{
5593 tHalMsgHeader header;
5594 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5595}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5596
5597/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005598 *WLAN_HAL_SET_TX_POWER_REQ
5599 *--------------------------------------------------------------------------*/
5600
5601typedef PACKED_PRE struct PACKED_POST
5602{
5603 /* TX Power in milli watts */
5604 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005605 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005606}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5607
5608
5609typedef PACKED_PRE struct PACKED_POST
5610{
5611 tHalMsgHeader header;
5612 tSetTxPwrReqParams setTxPwrReqParams;
5613}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5614
5615/*---------------------------------------------------------------------------
5616*WLAN_HAL_SET_TX_POWER_RSP
5617*--------------------------------------------------------------------------*/
5618
5619typedef PACKED_PRE struct PACKED_POST
5620{
5621 /* success or failure */
5622 tANI_U32 status;
5623}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5624
5625typedef PACKED_PRE struct PACKED_POST
5626{
5627 tHalMsgHeader header;
5628 tSetTxPwrRspParams setTxPwrRspParams;
5629}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5630
5631/*---------------------------------------------------------------------------
5632 *WLAN_HAL_GET_TX_POWER_REQ
5633 *--------------------------------------------------------------------------*/
5634
5635typedef PACKED_PRE struct PACKED_POST
5636{
5637 tANI_U8 staId;
5638}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5639
5640typedef PACKED_PRE struct PACKED_POST
5641{
5642 tHalMsgHeader header;
5643 tGetTxPwrReqParams getTxPwrReqParams;
5644}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5645
5646/*---------------------------------------------------------------------------
5647*WLAN_HAL_GET_TX_POWER_RSP
5648*--------------------------------------------------------------------------*/
5649
5650typedef PACKED_PRE struct PACKED_POST
5651{
5652 /* success or failure */
5653 tANI_U32 status;
5654
5655 /* TX Power in milli watts */
5656 tANI_U32 txPower;
5657}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5658
5659typedef PACKED_PRE struct PACKED_POST
5660{
5661 tHalMsgHeader header;
5662 tGetTxPwrRspParams getTxPwrRspParams;
5663}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5664
5665#ifdef WLAN_FEATURE_P2P
5666/*---------------------------------------------------------------------------
5667 *WLAN_HAL_SET_P2P_GONOA_REQ
5668 *--------------------------------------------------------------------------*/
5669
5670typedef PACKED_PRE struct PACKED_POST
5671{
5672 tANI_U8 opp_ps;
5673 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305674 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005675 tANI_U32 duration;
5676 tANI_U32 interval;
5677 tANI_U32 single_noa_duration;
5678 tANI_U8 psSelection;
5679}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5680
5681
5682typedef PACKED_PRE struct PACKED_POST
5683{
5684 tHalMsgHeader header;
5685 tSetP2PGONOAParams setP2PGONOAParams;
5686}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5687
5688/*---------------------------------------------------------------------------
5689*WLAN_HAL_SET_P2P_GONOA_RSP
5690*--------------------------------------------------------------------------*/
5691
5692typedef PACKED_PRE struct PACKED_POST
5693{
5694 /* success or failure */
5695 tANI_U32 status;
5696}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5697
5698typedef PACKED_PRE struct PACKED_POST
5699{
5700 tHalMsgHeader header;
5701 tSetP2PGONOARspParams setP2PGONOARspParams;
5702}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5703#endif
5704
5705/*---------------------------------------------------------------------------
5706 *WLAN_HAL_ADD_SELF_STA_REQ
5707 *--------------------------------------------------------------------------*/
5708
5709typedef PACKED_PRE struct PACKED_POST
5710{
5711 tSirMacAddr selfMacAddr;
5712 tANI_U32 status;
5713}tAddStaSelfParams, *tpAddStaSelfParams;
5714
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005715typedef PACKED_PRE struct PACKED_POST
5716{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005717 tHalMsgHeader header;
5718 tAddStaSelfParams addStaSelfParams;
5719}tAddStaSelfReq, *tpAddStaSelfReq;
5720
5721/* This V1 structure carries additionally the IFACE PERSONA
5722 of the interface as compared to the legacy control
5723 message */
5724typedef PACKED_PRE struct PACKED_POST
5725{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005726 tSirMacAddr selfMacAddr;
5727 tANI_U32 status;
5728 tHalIfacePersona iface_persona;
5729}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005730
5731typedef PACKED_PRE struct PACKED_POST
5732{
5733 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005734 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005735}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005736
5737/*---------------------------------------------------------------------------
5738*WLAN_HAL_ADD_SELF_STA_RSP
5739*--------------------------------------------------------------------------*/
5740
5741typedef PACKED_PRE struct PACKED_POST
5742{
5743 /* success or failure */
5744 tANI_U32 status;
5745
5746 /*Self STA Index */
5747 tANI_U8 selfStaIdx;
5748
5749 /* DPU Index (IGTK, PTK, GTK all same) */
5750 tANI_U8 dpuIdx;
5751
5752 /* DPU Signature */
5753 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305754
Jeff Johnson295189b2012-06-20 16:38:30 -07005755}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5756
5757typedef PACKED_PRE struct PACKED_POST
5758{
5759 tHalMsgHeader header;
5760 tAddStaSelfRspParams addStaSelfRspParams;
5761}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5762
5763
5764/*---------------------------------------------------------------------------
5765 WLAN_HAL_DEL_STA_SELF_REQ
5766---------------------------------------------------------------------------*/
5767
5768typedef PACKED_PRE struct PACKED_POST
5769{
5770 tSirMacAddr selfMacAddr;
5771
5772}tDelStaSelfParams, *tpDelStaSelfParams;
5773
5774typedef PACKED_PRE struct PACKED_POST
5775{
5776 tHalMsgHeader header;
5777 tDelStaSelfParams delStaSelfParams;
5778} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5779
5780
5781/*---------------------------------------------------------------------------
5782 WLAN_HAL_DEL_STA_SELF_RSP
5783---------------------------------------------------------------------------*/
5784
5785typedef PACKED_PRE struct PACKED_POST
5786{
5787 /*success or failure */
5788 tANI_U32 status;
5789
5790 tSirMacAddr selfMacAddr;
5791}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5792
5793typedef PACKED_PRE struct PACKED_POST
5794{
5795 tHalMsgHeader header;
5796 tDelStaSelfRspParams delStaSelfRspParams;
5797} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5798
5799
5800#ifdef WLAN_FEATURE_VOWIFI_11R
5801
5802/*---------------------------------------------------------------------------
5803 *WLAN_HAL_AGGR_ADD_TS_REQ
5804 *--------------------------------------------------------------------------*/
5805
5806typedef PACKED_PRE struct PACKED_POST
5807{
5808 /* Station Index */
5809 tANI_U16 staIdx;
5810
5811 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5812 /* This will carry the bitmap with the bit positions representing different AC.s*/
5813 tANI_U16 tspecIdx;
5814
5815 /* Tspec info per AC To program TPE with required parameters */
5816 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5817
5818 /* U-APSD Flags: 1b per AC. Encoded as follows:
5819 b7 b6 b5 b4 b3 b2 b1 b0 =
5820 X X X X BE BK VI VO */
5821 tANI_U8 uAPSD;
5822
5823 /* These parameters are for all the access categories */
5824 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5825 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5826 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5827
5828}tAggrAddTsParams, *tpAggrAddTsParams;
5829
5830
5831typedef PACKED_PRE struct PACKED_POST
5832{
5833 tHalMsgHeader header;
5834 tAggrAddTsParams aggrAddTsParam;
5835}tAggrAddTsReq, *tpAggrAddTsReq;
5836
5837/*---------------------------------------------------------------------------
5838*WLAN_HAL_AGGR_ADD_TS_RSP
5839*--------------------------------------------------------------------------*/
5840
5841typedef PACKED_PRE struct PACKED_POST
5842{
5843 /* success or failure */
5844 tANI_U32 status0;
5845 /* FIXME PRIMA for future use for 11R */
5846 tANI_U32 status1;
5847}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5848
5849typedef PACKED_PRE struct PACKED_POST
5850{
5851 tHalMsgHeader header;
5852 tAggrAddTsRspParams aggrAddTsRspParam;
5853}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5854
5855#endif
5856
5857/*---------------------------------------------------------------------------
5858 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5859 *--------------------------------------------------------------------------*/
5860typedef PACKED_PRE struct PACKED_POST
5861{
5862 tANI_U8 isAppsCpuAwake;
5863} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5864
5865typedef PACKED_PRE struct PACKED_POST
5866{
5867 tHalMsgHeader header;
5868 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5869} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5870
5871/*---------------------------------------------------------------------------
5872 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5873 *--------------------------------------------------------------------------*/
5874typedef PACKED_PRE struct PACKED_POST
5875{
5876 /* success or failure */
5877 tANI_U32 status;
5878} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5879
5880typedef PACKED_PRE struct PACKED_POST
5881{
5882 tHalMsgHeader header;
5883 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5884} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5885/*---------------------------------------------------------------------------
5886 * WLAN_HAL_DUMP_COMMAND_REQ
5887 *--------------------------------------------------------------------------*/
5888
5889typedef PACKED_PRE struct PACKED_POST
5890{
5891 tANI_U32 argument1;
5892 tANI_U32 argument2;
5893 tANI_U32 argument3;
5894 tANI_U32 argument4;
5895 tANI_U32 argument5;
5896
5897}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5898
5899typedef PACKED_PRE struct PACKED_POST
5900{
5901 tHalMsgHeader header;
5902 tHalDumpCmdReqParams dumpCmdReqParams;
5903} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5904
5905/*---------------------------------------------------------------------------
5906 * WLAN_HAL_DUMP_COMMAND_RSP
5907 *--------------------------------------------------------------------------*/
5908
5909typedef PACKED_PRE struct PACKED_POST
5910{
5911 /* success or failure */
5912 tANI_U32 status;
5913 /*Length of the responce message*/
5914 tANI_U32 rspLength;
5915 /*FiXME: Currently considering the the responce will be less than 100bytes */
5916 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305917
Jeff Johnson295189b2012-06-20 16:38:30 -07005918} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5919
5920typedef PACKED_PRE struct PACKED_POST
5921{
5922 tHalMsgHeader header;
5923 tHalDumpCmdRspParams dumpCmdRspParams;
5924} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5925
5926/*---------------------------------------------------------------------------
5927 *WLAN_HAL_COEX_IND
5928 *-------------------------------------------------------------------------*/
5929#define WLAN_COEX_IND_DATA_SIZE (4)
5930#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5931#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005932#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5933#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005934#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5935#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305936#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5937#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305938#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Abhishek Singh1bb2bc22017-01-02 10:38:38 +05305939#define WLAN_COEX_IND_TYPE_HID_CONNECTED_WLAN_CONNECTED_IN_2p4 (9)
5940#define WLAN_COEX_IND_TYPE_HID_DISCONNECTED_WLAN_CONNECTED_IN_2p4 (10)
Jeff Johnson295189b2012-06-20 16:38:30 -07005941
5942typedef PACKED_PRE struct PACKED_POST
5943{
5944 /*Coex Indication Type*/
5945 tANI_U32 coexIndType;
5946
5947 /*Coex Indication Data*/
5948 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5949}tCoexIndParams,*tpCoexIndParams;
5950
5951typedef PACKED_PRE struct PACKED_POST
5952{
5953 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305954 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005955}tCoexIndMsg, *tpCoexIndMsg;
5956
5957/*---------------------------------------------------------------------------
5958 *WLAN_HAL_OTA_TX_COMPL_IND
5959 *-------------------------------------------------------------------------*/
5960
5961typedef PACKED_PRE struct PACKED_POST
5962{
5963 /*Tx Complete Indication Success or Failure*/
5964 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305965 /* Dialog token */
5966 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005967}tTxComplParams,*tpTxComplParams;
5968
5969typedef PACKED_PRE struct PACKED_POST
5970{
5971 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305972 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005973}tTxComplIndMsg, *tpTxComplIndMsg;
5974
5975/*---------------------------------------------------------------------------
5976 * WLAN_HAL_HOST_SUSPEND_IND
5977 *-------------------------------------------------------------------------*/
5978
5979typedef PACKED_PRE struct PACKED_POST
5980{
5981 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305982 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005983}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5984
5985typedef PACKED_PRE struct PACKED_POST
5986{
5987 tHalMsgHeader header;
5988 tHalWlanHostSuspendIndParam suspendIndParams;
5989}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5990
5991/*---------------------------------------------------------------------------
5992 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5993 *-------------------------------------------------------------------------*/
5994
5995typedef PACKED_PRE struct PACKED_POST
5996{
5997 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305998 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005999}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
6000
6001typedef PACKED_PRE struct PACKED_POST
6002{
6003 tHalMsgHeader header;
6004 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
6005}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
6006
6007#ifdef WLAN_FEATURE_P2P
6008/*---------------------------------------------------------------------------
6009 *WLAN_HAL_NOA_ATTR_IND
6010 *-------------------------------------------------------------------------*/
6011
6012typedef PACKED_PRE struct PACKED_POST
6013{
6014 tANI_U8 index ;
6015 tANI_U8 oppPsFlag ;
6016 tANI_U16 ctWin ;
6017
6018 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08006019 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006020 tANI_U32 uNoa1Duration;
6021 tANI_U32 uNoa1Interval;
6022 tANI_U32 uNoa1StartTime;
6023
6024 tANI_U16 uNoa2IntervalCnt;
6025 tANI_U16 rsvd2;
6026 tANI_U32 uNoa2Duration;
6027 tANI_U32 uNoa2Interval;
6028 tANI_U32 uNoa2StartTime;
6029
6030 tANI_U32 status;
6031}tNoaAttrIndParams, *tpNoaAttrIndParams;
6032
6033typedef PACKED_PRE struct PACKED_POST
6034{
6035 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05306036 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006037}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08006038
6039/*---------------------------------------------------------------------------
6040 *WLAN_HAL_NOA_START_IND
6041 *-------------------------------------------------------------------------*/
6042
6043typedef PACKED_PRE struct PACKED_POST
6044{
6045 tANI_U32 status;
6046 tANI_U32 bssIdx;
6047}tNoaStartIndParams, *tpNoaStartIndParams;
6048
6049typedef PACKED_PRE struct PACKED_POST
6050{
6051 tHalMsgHeader header;
6052 tNoaStartIndParams noaStartIndParams;
6053}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07006054#endif
6055
6056/*---------------------------------------------------------------------------
6057 * WLAN_HAL_HOST_RESUME_REQ
6058 *-------------------------------------------------------------------------*/
6059
6060typedef PACKED_PRE struct PACKED_POST
6061{
6062 tANI_U8 configuredMcstBcstFilterSetting;
6063}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
6064
6065typedef PACKED_PRE struct PACKED_POST
6066{
6067 tHalMsgHeader header;
6068 tHalWlanHostResumeReqParam resumeReqParams;
6069}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
6070
6071/*---------------------------------------------------------------------------
6072 * WLAN_HAL_HOST_RESUME_RSP
6073 *--------------------------------------------------------------------------*/
6074typedef PACKED_PRE struct PACKED_POST
6075{
6076 /* success or failure */
6077 tANI_U32 status;
6078} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
6079
6080typedef PACKED_PRE struct PACKED_POST
6081{
6082 tHalMsgHeader header;
6083 tHalHostResumeRspParams hostResumeRspParams;
6084} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
6085
Anand Kumar012623a2013-01-11 17:00:00 -08006086typedef PACKED_PRE struct PACKED_POST
6087{
6088 tANI_U16 staIdx;
6089 // Peer MAC Address, whose BA session has timed out
6090 tSirMacAddr peerMacAddr;
6091 // TID for which a BA session timeout is being triggered
6092 tANI_U8 baTID;
6093 // DELBA direction
6094 // 1 - Originator
6095 // 0 - Recipient
6096 tANI_U8 baDirection;
6097 tANI_U32 reasonCode;
6098 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6099} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6100
6101typedef PACKED_PRE struct PACKED_POST
6102{
6103 tHalMsgHeader header;
6104 tHalWlanDelBaIndMsg hostdelBaParam;
6105} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6106
Jeff Johnson295189b2012-06-20 16:38:30 -07006107/*---------------------------------------------------------------------------
6108 *PNO Messages
6109 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006110/* Max number of channels that a network can be found on*/
6111/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6112 * be changed at same time
6113 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006114#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006115
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306116/*Max number of channels that a network can be found on*/
6117#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6118
Jeff Johnson295189b2012-06-20 16:38:30 -07006119/*Maximum numbers of networks supported by PNO*/
6120#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6121
6122/*The number of scan time intervals that can be programmed into PNO*/
6123#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6124
6125/*Maximum size of the probe template*/
6126#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6127
Dino Mycle8afbac12014-07-04 22:06:17 +05306128/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006129 Immediate - scanning will start immediately and PNO procedure will
6130 be repeated based on timer
6131 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006132 Resume - scanning will start on system resume
6133 Delay - start the scan timer to trigger PNO scan
6134 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006135typedef enum
6136{
6137 ePNO_MODE_IMMEDIATE,
6138 ePNO_MODE_ON_SUSPEND,
6139 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306140 ePNO_MODE_DELAY,
6141 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006142 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6143} ePNOMode;
6144
6145/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306146typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006147{
Dino Mycle8afbac12014-07-04 22:06:17 +05306148 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006149 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306150
Jeff Johnson295189b2012-06-20 16:38:30 -07006151 // Upper layer authentication types
6152 eAUTH_TYPE_WPA = 2,
6153 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306154
Jeff Johnson295189b2012-06-20 16:38:30 -07006155 eAUTH_TYPE_RSN = 4,
6156 eAUTH_TYPE_RSN_PSK = 5,
6157 eAUTH_TYPE_FT_RSN = 6,
6158 eAUTH_TYPE_FT_RSN_PSK = 7,
6159 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6160 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006161 eAUTH_TYPE_CCKM_WPA = 10,
6162 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306163 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6164 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306165
Jeff Johnson295189b2012-06-20 16:38:30 -07006166 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6167
6168}tAuthType;
6169
6170/* Encryption type */
6171typedef enum eEdType
6172{
6173 eED_ANY = 0,
6174 eED_NONE = 1,
6175 eED_WEP = 2,
6176 eED_TKIP = 3,
6177 eED_CCMP = 4,
6178 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306179
Jeff Johnson295189b2012-06-20 16:38:30 -07006180 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6181} tEdType;
6182
6183/* SSID broadcast type */
6184typedef enum eSSIDBcastType
6185{
6186 eBCAST_UNKNOWN = 0,
6187 eBCAST_NORMAL = 1,
6188 eBCAST_HIDDEN = 2,
6189
6190 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6191} tSSIDBcastType;
6192
Dino Mycle8afbac12014-07-04 22:06:17 +05306193/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006194 The network description for which PNO will have to look for
6195*/
6196typedef PACKED_PRE struct PACKED_POST
6197{
6198 /*SSID of the BSS*/
6199 tSirMacSSid ssId;
6200
6201 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306202 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006203
6204 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306205 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006206
Dino Mycle8afbac12014-07-04 22:06:17 +05306207 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006208 0 - if all channels */
6209 tANI_U8 ucChannelCount;
6210 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6211
6212 /*Indicates the RSSI threshold for the network to be considered*/
6213 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306214}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006215
6216typedef PACKED_PRE struct PACKED_POST
6217{
6218 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306219 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006220
Dino Mycle8afbac12014-07-04 22:06:17 +05306221 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006222 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306223 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006224
Dino Mycle8afbac12014-07-04 22:06:17 +05306225 /*e.g: 2 3
6226 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006227 - it will wait 2s between consecutive scans for 3 times
6228 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306229}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006230
Dino Mycle8afbac12014-07-04 22:06:17 +05306231/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006232 The network parameters to be sent to the PNO algorithm
6233*/
6234typedef PACKED_PRE struct PACKED_POST
6235{
6236 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306237 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006238
Dino Mycle8afbac12014-07-04 22:06:17 +05306239 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006240 two consecutive scan procedures
6241 If the desired is for a uniform timer that fires always at the exact same
6242 interval - one single value is to be set
6243 If there is a desire for a more complex - telescopic like timer multiple
6244 values can be set - once PNO reaches the end of the array it will
6245 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306246 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006247
6248}tScanTimersType;
6249
6250typedef PACKED_PRE struct PACKED_POST {
6251
6252 /*Enable PNO*/
6253 tANI_U32 enable;
6254
6255 /*Immediate, On Suspend, On Resume*/
6256 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306257
Jeff Johnson295189b2012-06-20 16:38:30 -07006258 /*Number of networks sent for PNO*/
6259 tANI_U32 ucNetworksCount;
6260
6261 /*The networks that PNO needs to look for*/
6262 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6263
6264 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306265 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006266
6267 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306268 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006269 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6270
6271 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306272 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006273 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6274
6275} tPrefNetwListParams, * tpPrefNetwListParams;
6276
6277/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306278 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006279*/
6280typedef PACKED_PRE struct PACKED_POST
6281{
6282 tHalMsgHeader header;
6283 tPrefNetwListParams prefNetwListParams;
6284} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6285
6286
Dino Mycle8afbac12014-07-04 22:06:17 +05306287/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006288 The network description for which PNO will have to look for
6289*/
6290typedef PACKED_PRE struct PACKED_POST
6291{
6292 /*SSID of the BSS*/
6293 tSirMacSSid ssId;
6294
6295 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306296 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006297
6298 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306299 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006300
6301 /*SSID broadcast type, normal, hidden or unknown*/
6302 tSSIDBcastType bcastNetworkType;
6303
Dino Mycle8afbac12014-07-04 22:06:17 +05306304 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006305 0 - if all channels */
6306 tANI_U8 ucChannelCount;
6307 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6308
6309 /*Indicates the RSSI threshold for the network to be considered*/
6310 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306311}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006312
6313typedef PACKED_PRE struct PACKED_POST {
6314
6315 /*Enable PNO*/
6316 tANI_U32 enable;
6317
6318 /*Immediate, On Suspend, On Resume*/
6319 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306320
Jeff Johnson295189b2012-06-20 16:38:30 -07006321 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306322 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006323
6324 /*The networks that PNO needs to look for*/
6325 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6326
6327 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306328 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006329
6330 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306331 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006332 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6333
6334 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306335 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006336 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6337
6338} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6339
6340/*
6341 Preferred network list request new
6342*/
6343typedef PACKED_PRE struct PACKED_POST
6344{
6345 tHalMsgHeader header;
6346 tPrefNetwListParamsNew prefNetwListParams;
6347} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6348
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006349#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6350typedef PACKED_PRE struct PACKED_POST
6351{
6352 tSirMacSSid ssId;
6353 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6354 tANI_U32 authentication;
6355 tEdType encryption;
6356 tEdType mcencryption;
6357 tANI_U8 ChannelCount;
6358 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6359}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006360
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006361typedef PACKED_PRE struct PACKED_POST
6362{
6363 tANI_U8 mdiePresent;
6364 tANI_U16 mobilityDomain;
6365}tMobilityDomainInfo;
6366
6367typedef PACKED_PRE struct PACKED_POST {
6368 eAniBoolean RoamScanOffloadEnabled;
6369 tANI_S8 LookupThreshold;
6370 tANI_U8 RoamRssiDiff;
6371 tANI_U8 ChannelCacheType;
6372 tANI_U8 Command;
6373 tANI_U8 StartScanReason;
6374 tANI_U16 NeighborScanTimerPeriod;
6375 tANI_U16 NeighborRoamScanRefreshPeriod;
6376 tANI_U16 NeighborScanChannelMinTime;
6377 tANI_U16 NeighborScanChannelMaxTime;
6378 tANI_U16 EmptyRefreshScanPeriod;
6379 tANI_U8 ValidChannelCount;
6380 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006381 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006382
6383 tANI_U16 us24GProbeSize;
6384 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6385 tANI_U16 us5GProbeSize;
6386 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6387 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006388 tANI_U8 nProbes;
6389 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006390 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006391 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006392 tANI_U8 RoamOffloadEnabled;
6393 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6394 tANI_U8 Prefer5GHz;
6395 tANI_U8 RoamRssiCatGap;
6396 tANI_U8 Select5GHzMargin;
Sreelakshmi Konamki24ebdca2017-05-29 15:48:36 +05306397 tANI_U8 WeakZoneRssiThresholdForRoam;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006398 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6399 tRoamNetworkType ConnectedNetwork;
6400 tMobilityDomainInfo MDID;
6401} tRoamCandidateListParams, * tpRoamCandidateListParams;
6402
6403typedef PACKED_PRE struct PACKED_POST
6404{
Kumar Anandea78e792013-10-10 23:47:01 -07006405 tHalMsgHeader header;
6406 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006407} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6408
6409typedef PACKED_PRE struct PACKED_POST
6410{
Kumar Anandea78e792013-10-10 23:47:01 -07006411 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006412
Kumar Anandea78e792013-10-10 23:47:01 -07006413 /* status of the request - just to indicate that PNO has acknowledged
6414 * the request and will start scanning */
6415 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006416} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6417#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006418
6419/*
6420 Preferred network list response
6421*/
6422typedef PACKED_PRE struct PACKED_POST
6423{
6424 tHalMsgHeader header;
6425
6426 /* status of the request - just to indicate that PNO has acknowledged
6427 * the request and will start scanning*/
6428 tANI_U32 status;
6429} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6430
6431/*
6432 Preferred network indication parameters
6433*/
6434typedef PACKED_PRE struct PACKED_POST {
6435
6436 /*Network that was found with the highest RSSI*/
6437 tSirMacSSid ssId;
6438
6439 /*Indicates the RSSI */
6440 tANI_U8 rssi;
6441
6442 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6443 tANI_U16 frameLength;
6444
6445} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6446
6447/*
6448 Preferred network found indication
6449*/
6450typedef PACKED_PRE struct PACKED_POST {
6451
6452 tHalMsgHeader header;
6453 tPrefNetwFoundParams prefNetwFoundParams;
6454} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6455
6456
6457typedef PACKED_PRE struct PACKED_POST {
6458
6459 /*RSSI Threshold*/
6460 tANI_U8 ucRssiThreshold;
6461
6462} tRssiFilterParams, * tpRssiFilterParams;
6463
Jeff Johnson295189b2012-06-20 16:38:30 -07006464/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306465 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006466*/
6467typedef PACKED_PRE struct PACKED_POST
6468{
6469 tHalMsgHeader header;
6470 tRssiFilterParams prefRSSIFilterParams;
6471} tSetRssiFilterReq, *tpSetRssiFilterReq;
6472
6473/*
6474 Set RSSI filter resp
6475*/
6476typedef PACKED_PRE struct PACKED_POST{
6477 tHalMsgHeader header;
6478 /*status of the request */
6479 tANI_U32 status;
6480} tSetRssiFilterResp, *tpSetRssiFilterResp;
6481/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306482 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006483*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306484typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006485{
6486
6487 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306488 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006489
6490 /*Lets PNO know that host has determined the regulatory domain*/
6491 tANI_U8 b11dResolved;
6492
6493 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306494 tANI_U8 ucChannelCount;
6495 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006496
6497 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306498 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006499
6500 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306501 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006502
6503 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306504 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006505
6506 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306507 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006508
6509 /*Cb State*/
6510 ePhyChanBondState cbState;
6511
6512} tUpdateScanParams, * tpUpdateScanParams;
6513
6514/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306515 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306516*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306517typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306518{
6519
6520 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306521 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306522
6523 /*Lets PNO know that host has determined the regulatory domain*/
6524 tANI_U8 b11dResolved;
6525
6526 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306527 tANI_U8 ucChannelCount;
6528 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306529
6530 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306531 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306532
6533 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306534 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306535
6536 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306537 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306538
6539 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306540 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306541
6542 /*Cb State*/
6543 ePhyChanBondState cbState;
6544
6545} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6546
6547/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006548 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306549 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006550*/
6551typedef PACKED_PRE struct PACKED_POST{
6552
6553 tHalMsgHeader header;
6554 tUpdateScanParams scanParams;
6555} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6556
6557/*
6558 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306559 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006560*/
6561typedef PACKED_PRE struct PACKED_POST{
6562
6563 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306564 tUpdateScanParamsEx scanParams;
6565} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6566
6567/*
6568 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306569 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306570*/
6571typedef PACKED_PRE struct PACKED_POST{
6572
6573 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006574
6575 /*status of the request */
6576 tANI_U32 status;
6577
6578} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6579
6580/*---------------------------------------------------------------------------
6581 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6582 *--------------------------------------------------------------------------*/
6583typedef PACKED_PRE struct PACKED_POST
6584{
6585 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6586 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6587 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6588 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6589} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6590
6591typedef PACKED_PRE struct PACKED_POST
6592{
6593 tHalMsgHeader header;
6594 tHalTxPerTrackingReqParam txPerTrackingParams;
6595} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6596
6597/*---------------------------------------------------------------------------
6598 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6599 *--------------------------------------------------------------------------*/
6600typedef PACKED_PRE struct PACKED_POST
6601{
6602 /* success or failure */
6603 tANI_U32 status;
6604} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6605
6606typedef PACKED_PRE struct PACKED_POST
6607{
6608 tHalMsgHeader header;
6609 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6610} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6611
6612/*---------------------------------------------------------------------------
6613 * WLAN_HAL_TX_PER_HIT_IND
6614 *--------------------------------------------------------------------------*/
6615typedef PACKED_PRE struct PACKED_POST
6616{
6617 tHalMsgHeader header;
6618}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6619
6620/*---------------------------------------------------------------------------
6621 *******************Packet Filtering Definitions Begin*******************
6622 *--------------------------------------------------------------------------*/
6623#define HAL_PROTOCOL_DATA_LEN 8
6624#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6625#define HAL_MAX_NUM_FILTERS 20
6626#define HAL_MAX_CMP_PER_FILTER 10
6627
6628typedef enum
6629{
6630 HAL_RCV_FILTER_TYPE_INVALID,
6631 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6632 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6633 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6634}tHalReceivePacketFilterType;
6635
Dino Mycle8afbac12014-07-04 22:06:17 +05306636typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006637{
6638 HAL_FILTER_PROTO_TYPE_INVALID,
6639 HAL_FILTER_PROTO_TYPE_MAC,
6640 HAL_FILTER_PROTO_TYPE_ARP,
6641 HAL_FILTER_PROTO_TYPE_IPV4,
6642 HAL_FILTER_PROTO_TYPE_IPV6,
6643 HAL_FILTER_PROTO_TYPE_UDP,
6644 HAL_FILTER_PROTO_TYPE_MAX
6645}tHalRcvPktFltProtocolType;
6646
Dino Mycle8afbac12014-07-04 22:06:17 +05306647typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006648{
6649 HAL_FILTER_CMP_TYPE_INVALID,
6650 HAL_FILTER_CMP_TYPE_EQUAL,
6651 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6652 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6653 HAL_FILTER_CMP_TYPE_MAX
6654}tHalRcvPktFltCmpFlagType;
6655
Dino Mycle8afbac12014-07-04 22:06:17 +05306656typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006657{
6658 tANI_U8 protocolLayer;
6659 tANI_U8 cmpFlag;
6660 tANI_U16 dataLength; /* Length of the data to compare */
6661 tANI_U8 dataOffset; /* from start of the respective frame header */
6662 tANI_U8 reserved; /* Reserved field */
6663 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6664 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6665}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6666
6667typedef PACKED_PRE struct PACKED_POST
6668{
6669 tANI_U8 filterId;
6670 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306671 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006672 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006673 tHalRcvPktFilterParams paramsData[1];
6674}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6675
6676typedef PACKED_PRE struct PACKED_POST
6677{
Jeff Johnsone7245742012-09-05 17:12:55 -07006678 tANI_U8 filterId;
6679 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306680 tANI_U8 numParams;
6681 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006682 tANI_U8 bssIdx;
6683 tHalRcvPktFilterParams paramsData[1];
6684}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6685
6686typedef PACKED_PRE struct PACKED_POST
6687{
Jeff Johnson295189b2012-06-20 16:38:30 -07006688 tHalMsgHeader header;
6689 tHalRcvPktFilterCfgType pktFilterCfg;
6690} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6691
Jeff Johnsone7245742012-09-05 17:12:55 -07006692typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006693{
6694 tANI_U8 dataOffset; /* from start of the respective frame header */
6695 tANI_U32 cMulticastAddr;
6696 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006697 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006698} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6699
6700typedef PACKED_PRE struct PACKED_POST
6701{
6702 /* success or failure */
6703 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006704 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006705} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6706
6707typedef PACKED_PRE struct PACKED_POST
6708{
6709 tHalMsgHeader header;
6710 tHalSetPktFilterRspParams pktFilterRspParams;
6711} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6712
Jeff Johnsone7245742012-09-05 17:12:55 -07006713typedef PACKED_PRE struct PACKED_POST
6714{
6715 tANI_U8 bssIdx;
6716} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006717
6718typedef PACKED_PRE struct PACKED_POST
6719{
6720 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006721 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006722} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6723
Jeff Johnsone7245742012-09-05 17:12:55 -07006724
Jeff Johnson295189b2012-06-20 16:38:30 -07006725typedef PACKED_PRE struct PACKED_POST
6726{
6727 tANI_U8 filterId;
6728 tANI_U32 matchCnt;
6729} tHalRcvFltPktMatchCnt;
6730typedef PACKED_PRE struct PACKED_POST
6731{
6732 /* Success or Failure */
6733 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306734 tANI_U32 matchCnt;
6735 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006736 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006737} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6738
6739typedef PACKED_PRE struct PACKED_POST
6740{
6741 tHalMsgHeader header;
6742 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6743} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6744
6745typedef PACKED_PRE struct PACKED_POST
6746{
6747 tANI_U32 status; /* only valid for response message */
6748 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006749 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006750}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6751
6752typedef PACKED_PRE struct PACKED_POST
6753{
6754 tHalMsgHeader header;
6755 tHalRcvFltPktClearParam filterClearParam;
6756} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6757
6758typedef PACKED_PRE struct PACKED_POST
6759{
6760 tHalMsgHeader header;
6761 tHalRcvFltPktClearParam filterClearParam;
6762} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6763
6764typedef PACKED_PRE struct PACKED_POST
6765{
Dino Mycle8afbac12014-07-04 22:06:17 +05306766 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006767 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006768}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6769
6770typedef PACKED_PRE struct PACKED_POST
6771{
6772 tHalMsgHeader header;
6773 tHalRcvFltMcAddrListType mcAddrList;
6774} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6775
6776typedef PACKED_PRE struct PACKED_POST
6777{
6778 tHalMsgHeader header;
6779 tHalRcvFltPktSetMcListRspType rspParam;
6780} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6781
6782
6783/*---------------------------------------------------------------------------
6784 *******************Packet Filtering Definitions End*******************
6785 *--------------------------------------------------------------------------*/
6786
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006787/*
6788 * There are two versions of this message
6789 * Version 1 : Base version
6790 * Current version : Base version + Max LI modulated DTIM
6791 */
6792typedef PACKED_PRE struct PACKED_POST
6793{
6794 /* Ignore DTIM */
6795 tANI_U32 uIgnoreDTIM;
6796
6797 /*DTIM Period*/
6798 tANI_U32 uDTIMPeriod;
6799
6800 /* Listen Interval */
6801 tANI_U32 uListenInterval;
6802
6803 /* Broadcast Multicast Filter */
6804 tANI_U32 uBcastMcastFilter;
6805
6806 /* Beacon Early Termination */
6807 tANI_U32 uEnableBET;
6808
6809 /* Beacon Early Termination Interval */
6810 tANI_U32 uBETInterval;
6811}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6812
6813typedef PACKED_PRE struct PACKED_POST
6814{
6815 tHalMsgHeader header;
6816 tSetPowerParamsVer1Type powerParams;
6817} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6818
Jeff Johnson295189b2012-06-20 16:38:30 -07006819typedef PACKED_PRE struct PACKED_POST
6820{
6821 /* Ignore DTIM */
6822 tANI_U32 uIgnoreDTIM;
6823
6824 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306825 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006826
6827 /* Listen Interval */
6828 tANI_U32 uListenInterval;
6829
6830 /* Broadcast Multicast Filter */
6831 tANI_U32 uBcastMcastFilter;
6832
6833 /* Beacon Early Termination */
6834 tANI_U32 uEnableBET;
6835
6836 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306837 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006838
6839 /* MAX LI for modulated DTIM */
6840 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006841}tSetPowerParamsType, *tpSetPowerParamsType;
6842
6843typedef PACKED_PRE struct PACKED_POST
6844{
6845 tHalMsgHeader header;
6846 tSetPowerParamsType powerParams;
6847} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6848
6849typedef PACKED_PRE struct PACKED_POST{
6850
6851 tHalMsgHeader header;
6852
6853 /*status of the request */
6854 tANI_U32 status;
6855
6856} tSetPowerParamsResp, *tpSetPowerParamsResp;
6857
6858/*---------------------------------------------------------------------------
6859 ****************Capability bitmap exchange definitions and macros starts*************
6860 *--------------------------------------------------------------------------*/
6861
Anand Kumar012623a2013-01-11 17:00:00 -08006862typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006863 MCC = 0,
6864 P2P = 1,
6865 DOT11AC = 2,
6866 SLM_SESSIONIZATION = 3,
6867 DOT11AC_OPMODE = 4,
6868 SAP32STA = 5,
6869 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006870 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006871 WLANACTIVE_OFFLOAD = 8,
6872 BEACON_OFFLOAD = 9,
6873 SCAN_OFFLOAD = 10,
6874 ROAM_OFFLOAD = 11,
6875 BCN_MISS_OFFLOAD = 12,
6876 STA_POWERSAVE = 13,
6877 STA_ADVANCED_PWRSAVE = 14,
6878 AP_UAPSD = 15,
6879 AP_DFS = 16,
6880 BLOCKACK = 17,
6881 PHY_ERR = 18,
6882 BCN_FILTER = 19,
6883 RTT = 20,
6884 RATECTRL = 21,
6885 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006886 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006887 SPECULATIVE_PS_POLL = 24,
6888 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006889 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006890 WLAN_SCAN_OFFLOAD = 27,
6891 WLAN_PERIODIC_TX_PTRN = 28,
6892 ADVANCE_TDLS = 29,
6893 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306894 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306895 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306896 CH_SWITCH_V1 = 33,
6897 HT40_OBSS_SCAN = 34,
6898 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006899 WLAN_MCADDR_FLT = 36,
6900 WLAN_CH144 = 37,
6901 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306902 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306903 LINK_LAYER_STATS_MEAS = 40,
6904 MU_MIMO = 41,
6905 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306906 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306907 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306908 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306909 DISA = 46,
6910 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306911 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306912 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306913 TDLS_OFF_CHANNEL = 51,
Padma, Santhosh Kumarcfbcf942015-12-08 16:07:47 +05306914 RTT3 = 52,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306915 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306916 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306917 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306918 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306919 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306920 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306921 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306922 WIFI_CONFIG = 61,
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05306923 ANTENNA_DIVERSITY_SELECTION = 62,
Kapil Guptac1043632016-06-25 00:23:30 +05306924 PER_BASED_ROAMING = 63,
Agrawal Ashish1d75aac2016-12-12 12:36:59 +05306925 SAP_MODE_WOW = 64,
6926 SAP_OFFLOADS = 65,
Sravan Kumar Kairam9ba5f5b2016-12-13 13:50:46 +05306927 SAP_BUFF_ALLOC = 66,
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +05306928 MAKE_BEFORE_BREAK = 67,
Anurag Chouhance0f0822017-01-24 15:44:26 +05306929 NUD_DEBUG = 68,
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05306930 /* 69 reserved for FATAL_EVENT_LOGGING */
6931 /* 70 reserved for WIFI_DUAL_BAND_ENABLE */
6932 PROBE_RSP_TEMPLATE_VER1 = 71,
Rajeev Kumar Sirasanagandlaba4d7692017-12-19 13:32:36 +05306933 STA_MONITOR_SCC = 72,
Kumar Anandea78e792013-10-10 23:47:01 -07006934 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006935} placeHolderInCapBitmap;
6936
Jeff Johnson295189b2012-06-20 16:38:30 -07006937typedef PACKED_PRE struct PACKED_POST{
6938
6939 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006940} tWlanFeatCaps, *tpWlanFeatCaps;
6941
6942typedef PACKED_PRE struct PACKED_POST{
6943
Dino Mycle8afbac12014-07-04 22:06:17 +05306944 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006945 tWlanFeatCaps wlanFeatCaps;
6946
6947} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6948
Jeff Johnsone7245742012-09-05 17:12:55 -07006949#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6950#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006951#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006952#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006953#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006954#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006955#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006956#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306957#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306958#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306959#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306960#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306961#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006962
Jeff Johnsone7245742012-09-05 17:12:55 -07006963tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6964
Jeff Johnson295189b2012-06-20 16:38:30 -07006965#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006966 if ((b)<=127) { \
6967 arr_index = (b)/32; \
6968 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006969 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006970 (a)->featCaps[arr_index] |= (1<<bit_index); \
6971 } \
6972 }
6973#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006974 if ((b)<=127) { \
6975 arr_index = (b)/32; \
6976 bit_index = (b)%32; \
6977 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006978 } \
6979 }
6980#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006981 if ((b)<=127) { \
6982 arr_index = (b)/32; \
6983 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006984 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006985 } \
6986 }
6987
6988/*---------------------------------------------------------------------------
6989 * WLAN_HAL_WAKE_REASON_IND
6990 *--------------------------------------------------------------------------*/
6991
6992/* status codes to help debug rekey failures */
6993typedef enum
6994{
6995 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6996 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6997 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6998 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6999 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
7000 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
7001 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
7002 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
7003 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
7004 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
7005
7006 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
7007} tGTKRekeyStatus;
7008
7009/* wake reason types */
7010typedef enum
7011{
7012 WLAN_HAL_WAKE_REASON_NONE = 0,
7013 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
7014 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
7015 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
7016 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
7017 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
7018 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
7019 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
7020} tWakeReasonType;
7021
7022/*
7023 Wake Packet which is saved at tWakeReasonParams.DataStart
7024 This data is sent for any wake reasons that involve a packet-based wakeup :
7025
7026 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
7027 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
7028 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
7029 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
7030 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
7031
7032 The information is provided to the host for auditing and debug purposes
7033
7034*/
7035
7036/*
7037 Wake reason indication parameters
7038*/
7039typedef PACKED_PRE struct PACKED_POST
7040{
7041 uint32 ulReason; /* see tWakeReasonType */
7042 uint32 ulReasonArg; /* argument specific to the reason type */
7043 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
7044 HAL truncates the data (i.e. data packets) this length
7045 will be less than the actual length */
7046 uint32 ulActualDataLen; /* actual length of data */
7047 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
7048 see specific wake type */
7049} tWakeReasonParams, *tpWakeReasonParams;
7050
7051/*
7052 Wake reason indication
7053*/
7054typedef PACKED_PRE struct PACKED_POST
7055{
7056 tHalMsgHeader header;
7057 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07007058 tANI_U32 uBssIdx : 8;
7059 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07007060} tHalWakeReasonInd, *tpHalWakeReasonInd;
7061
7062/*---------------------------------------------------------------------------
7063* WLAN_HAL_GTK_OFFLOAD_REQ
7064*--------------------------------------------------------------------------*/
7065
7066#define HAL_GTK_KEK_BYTES 16
7067#define HAL_GTK_KCK_BYTES 16
7068
7069#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
7070
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007071#define GTK_SET_BSS_KEY_TAG 0x1234AA55
7072
Jeff Johnson295189b2012-06-20 16:38:30 -07007073typedef PACKED_PRE struct PACKED_POST
7074{
7075 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05307076 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07007077 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
7078 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07007079 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007080} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
7081
7082typedef PACKED_PRE struct PACKED_POST
7083{
7084 tHalMsgHeader header;
7085 tHalGtkOffloadReqParams gtkOffloadReqParams;
7086} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
7087
7088/*---------------------------------------------------------------------------
7089* WLAN_HAL_GTK_OFFLOAD_RSP
7090*--------------------------------------------------------------------------*/
7091typedef PACKED_PRE struct PACKED_POST
7092{
7093 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07007094 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007095} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
7096
7097typedef PACKED_PRE struct PACKED_POST
7098{
7099 tHalMsgHeader header;
7100 tHalGtkOffloadRspParams gtkOffloadRspParams;
7101} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
7102
7103
7104/*---------------------------------------------------------------------------
7105* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
7106*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07007107typedef PACKED_PRE struct PACKED_POST
7108{
7109 tANI_U8 bssIdx;
7110
7111} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007112
7113typedef PACKED_PRE struct PACKED_POST
7114{
7115 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007116 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007117} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7118
7119/*---------------------------------------------------------------------------
7120* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7121*--------------------------------------------------------------------------*/
7122typedef PACKED_PRE struct PACKED_POST
7123{
7124 tANI_U32 ulStatus; /* success or failure */
7125 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7126 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7127 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7128 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7129 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007130 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007131} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7132
7133typedef PACKED_PRE struct PACKED_POST
7134{
7135 tHalMsgHeader header;
7136 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7137} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7138
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007139/*---------------------------------------------------------------------------
7140* WLAN_HAL_DHCP_IND
7141*--------------------------------------------------------------------------*/
7142typedef PACKED_PRE struct PACKED_POST
7143{
7144 /*Indicates the device mode which indicates about the DHCP activity */
7145 tANI_U8 device_mode;
7146 tSirMacAddr macAddr;
7147} tDHCPInfo, *tpDHCPInfo;
7148
7149typedef PACKED_PRE struct PACKED_POST
7150{
7151 tHalMsgHeader header;
7152 tANI_U32 status; /* success or failure */
7153} tDHCPIndStatus, *tpDHCPIndstatus;
7154
Jeff Johnson295189b2012-06-20 16:38:30 -07007155/*
7156 Thermal Mitigation mode of operation.
7157 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7158 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7159 reducing transmit power
7160 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7161*/
7162typedef enum
7163{
7164 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7165 HAL_THERMAL_MITIGATION_MODE_0,
7166 HAL_THERMAL_MITIGATION_MODE_1,
7167 HAL_THERMAL_MITIGATION_MODE_2,
7168 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7169}tHalThermalMitigationModeType;
7170//typedef tANI_S16 tHalThermalMitigationModeType;
7171
7172/*
7173 Thermal Mitigation level.
7174 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7175 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7176
7177 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7178 level indicates normal mode of operation
7179 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7180 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7181 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7182 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7183*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307184typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007185{
7186 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7187 HAL_THERMAL_MITIGATION_LEVEL_0,
7188 HAL_THERMAL_MITIGATION_LEVEL_1,
7189 HAL_THERMAL_MITIGATION_LEVEL_2,
7190 HAL_THERMAL_MITIGATION_LEVEL_3,
7191 HAL_THERMAL_MITIGATION_LEVEL_4,
7192 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7193}tHalThermalMitigationLevelType;
7194//typedef tANI_S16 tHalThermalMitigationLevelType;
7195
7196typedef PACKED_PRE struct PACKED_POST
7197{
7198 /* Thermal Mitigation Operation Mode */
7199 tHalThermalMitigationModeType thermalMitMode;
7200
7201 /* Thermal Mitigation Level */
7202 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307203
Jeff Johnson295189b2012-06-20 16:38:30 -07007204}tSetThermalMitgationType, *tpSetThermalMitgationType;
7205
7206/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7207typedef PACKED_PRE struct PACKED_POST
7208{
7209 tHalMsgHeader header;
7210 tSetThermalMitgationType thermalMitParams;
7211} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7212
7213typedef PACKED_PRE struct PACKED_POST{
7214
7215 tHalMsgHeader header;
7216
7217 /*status of the request */
7218 tANI_U32 status;
7219
7220} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7221
Dino Mycle8afbac12014-07-04 22:06:17 +05307222/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007223provided to FW from Host via periodic messages */
7224typedef PACKED_PRE struct PACKED_POST {
7225 /* TX stats */
7226 uint32 txBytesPushed;
7227 uint32 txPacketsPushed;
7228
7229 /* RX stats */
7230 uint32 rxBytesRcvd;
7231 uint32 rxPacketsRcvd;
7232 uint32 rxTimeTotal;
7233} tStaStatsClassB, *tpStaStatsClassB;
7234
7235typedef PACKED_PRE struct PACKED_POST {
7236
7237 /* Duration over which this stats was collected */
7238 tANI_U32 duration;
7239
7240 /* Per STA Stats */
7241 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7242} tStatsClassBIndParams, *tpStatsClassBIndParams;
7243
7244typedef PACKED_PRE struct PACKED_POST {
7245
7246 tHalMsgHeader header;
7247
7248 /* Class B Stats */
7249 tStatsClassBIndParams statsClassBIndParams;
7250} tStatsClassBInd, *tpStatsClassBInd;
7251
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307252/*Wifi Proximity paramters in AP mode*/
7253#ifdef FEATURE_WIFI_PROXIMITY
7254
7255typedef PACKED_PRE struct PACKED_POST{
7256
7257 tANI_U8 wifiProximityChannel;
7258 tANI_U32 wifiProximityDuration;
7259 tANI_U32 wifiProximityInterval;
7260 tANI_U32 wifiProximityMode;
7261 tANI_U32 wifiProximityStatus;
7262 tSirMacAddr bssId;
7263 tSirMacSSid ssId;
7264
7265} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7266
7267typedef PACKED_PRE struct PACKED_POST
7268{
7269 tHalMsgHeader header;
7270
7271 tSetWifiProximityReqParam wifiProximityReqParams;
7272
7273}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7274
7275/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7276typedef PACKED_PRE struct PACKED_POST{
7277
7278 tHalMsgHeader header;
7279
7280 /*status of the request */
7281 tANI_U32 status;
7282
7283} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7284
7285#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007286
7287#ifdef FEATURE_SPECULATIVE_PS_POLL
7288/*---------------------------------------------------------------------------
7289 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7290 *--------------------------------------------------------------------------*/
7291typedef PACKED_PRE struct PACKED_POST
7292{
7293 tANI_U8 bssIdx;
7294 tANI_U16 serviceInterval;
7295 tANI_U16 suspendInterval;
7296 tANI_U8 acMask;
7297} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7298
7299typedef PACKED_PRE struct PACKED_POST
7300{
7301 tHalMsgHeader header;
7302 tHalStartSpecPsPollReqParams specPsPollReq;
7303} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7304
7305/*---------------------------------------------------------------------------
7306 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7307 *--------------------------------------------------------------------------*/
7308typedef PACKED_PRE struct PACKED_POST
7309{
7310 /* success or failure */
7311 tANI_U32 status;
7312 tANI_U8 bssIdx;
7313} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7314
7315typedef PACKED_PRE struct PACKED_POST
7316{
7317 tHalMsgHeader header;
7318 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7319} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7320
7321/*---------------------------------------------------------------------------
7322 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7323 *--------------------------------------------------------------------------*/
7324typedef PACKED_PRE struct PACKED_POST
7325{
7326 tHalMsgHeader header;
7327 tANI_U8 bssIdx;
7328} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7329#endif
7330
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307331#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307332#define HAL_MAX_SUPP_CHANNELS 128
7333#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307334/*---------------------------------------------------------------------------
7335 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7336 *-------------------------------------------------------------------------*/
7337typedef PACKED_PRE struct PACKED_POST
7338{
7339 /*STA Index*/
7340 tANI_U16 staIdx;
7341
7342 /* if this is 1, self is initiator and peer is reponder */
7343 tANI_U8 bIsResponder;
7344
7345 /* QoS Info */
7346 tANI_U8 acVOUAPSDFlag:1;
7347 tANI_U8 acVIUAPSDFlag:1;
7348 tANI_U8 acBKUAPSDFlag:1;
7349 tANI_U8 acBEUAPSDFlag:1;
7350 tANI_U8 aAck:1;
7351 tANI_U8 maxServicePeriodLength:2;
7352 tANI_U8 moreDataAck:1;
7353
7354 /*TDLS Peer U-APSD Buffer STA Support*/
7355 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007356
7357 /*TDLS off channel related params */
7358 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307359 tANI_U8 peerCurrOperClass;
7360 tANI_U8 selfCurrOperClass;
7361 tANI_U8 validChannelsLen;
7362 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7363 tANI_U8 validOperClassesLen;
7364 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307365}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7366
7367typedef PACKED_PRE struct PACKED_POST
7368{
7369 tHalMsgHeader header;
7370 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7371} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7372
7373/*---------------------------------------------------------------------------
7374 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7375 *-------------------------------------------------------------------------*/
7376
7377typedef PACKED_PRE struct PACKED_POST
7378{
7379 tANI_U32 status;
7380
7381 /*STA Index*/
7382 tANI_U16 staIdx;
7383} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7384
7385typedef PACKED_PRE struct PACKED_POST
7386{
7387 tHalMsgHeader header;
7388 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7389} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307390/*---------------------------------------------------------------------------
7391 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7392 + *-------------------------------------------------------------------------*/
7393typedef PACKED_PRE struct PACKED_POST
7394{
7395 /*STA Index*/
7396 tANI_U16 staIdx;
7397 /* if this is 1, self is initiator otherwise responder only*/
7398 tANI_U8 isOffchannelInitiator;
7399 /*TDLS off channel related params */
7400 tANI_U8 targetOperClass;
7401 tANI_U8 targetChannel;
7402 tANI_U8 secondaryChannelOffset;
7403 tANI_U8 reserved[32];
7404}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7405
7406typedef PACKED_PRE struct PACKED_POST
7407{
7408 tHalMsgHeader header;
7409 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7410} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7411/*---------------------------------------------------------------------------
7412 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7413 *-------------------------------------------------------------------------*/
7414
7415typedef PACKED_PRE struct PACKED_POST
7416{
7417 tANI_U32 status;
7418 /*STA Index*/
7419 tANI_U16 staIdx;
7420} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7421
7422typedef PACKED_PRE struct PACKED_POST
7423{
7424 tHalMsgHeader header;
7425 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7426} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7427
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307428
7429/*---------------------------------------------------------------------------
7430 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7431 *-------------------------------------------------------------------------*/
7432typedef PACKED_PRE struct PACKED_POST
7433{
7434 /*STA Index*/
7435 tANI_U16 staIdx;
7436}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7437
7438typedef PACKED_PRE struct PACKED_POST
7439{
7440 tHalMsgHeader header;
7441 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7442} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7443
7444/*---------------------------------------------------------------------------
7445 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7446 *-------------------------------------------------------------------------*/
7447
7448typedef PACKED_PRE struct PACKED_POST
7449{
7450 tANI_U32 status;
7451
7452 /*STA Index*/
7453 tANI_U16 staIdx;
7454} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7455
7456typedef PACKED_PRE struct PACKED_POST
7457{
7458 tHalMsgHeader header;
7459 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7460} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7461
7462/*---------------------------------------------------------------------------
7463 *WLAN_HAL_TDLS_IND
7464 *--------------------------------------------------------------------------*/
7465
7466typedef PACKED_PRE struct PACKED_POST
7467{
7468 tANI_U16 assocId;
7469 tANI_U16 staIdx;
7470 tANI_U16 status;
7471 tANI_U16 reasonCode;
7472}tTdlsIndParams, *tpTdlsIndParams;
7473
7474
7475typedef PACKED_PRE struct PACKED_POST
7476{
7477 tHalMsgHeader header;
7478 tTdlsIndParams tdlsIndParams;
7479}tTdlsIndMsg, *tpTdlsIndMsg;
7480
7481#endif
7482
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007483/*---------------------------------------------------------------------------
7484 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7485 *--------------------------------------------------------------------------*/
7486
7487typedef PACKED_PRE struct PACKED_POST
7488{
7489 tANI_U8 bssIdx;
7490 tANI_U8 staIdx;
7491 tSirMacAddr staAddr;
7492}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7493
7494
7495typedef PACKED_PRE struct PACKED_POST
7496{
7497 tHalMsgHeader header;
7498 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7499}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7500
7501
Kumar Anandea78e792013-10-10 23:47:01 -07007502/*********** Scan Offload Related Structures *************/
7503#define HAL_NUM_SCAN_SSID 10
7504#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007505
Kumar Anandea78e792013-10-10 23:47:01 -07007506/*
7507 * Enumetation to indicate scan type (active/passive)
7508 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007509typedef enum
7510{
Kumar Anandea78e792013-10-10 23:47:01 -07007511 eSIR_PASSIVE_SCAN,
7512 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7513} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007514
7515typedef PACKED_PRE struct PACKED_POST
7516{
Kumar Anandea78e792013-10-10 23:47:01 -07007517 tANI_U8 numBssid;
7518 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7519 tANI_U8 numSsid;
7520 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7521 tANI_BOOLEAN hiddenSsid;
7522 tSirMacAddr selfMacAddr;
7523 tSirBssType bssType;
7524 tSirScanType scanType;
7525 tANI_U32 minChannelTime;
7526 tANI_U32 maxChannelTime;
7527 tANI_BOOLEAN p2pSearch;
7528 tANI_U8 channelCount;
7529 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7530 tANI_U16 ieFieldLen;
7531 tANI_U8 ieField[1];
7532}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007533
7534/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007535 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007536 *-------------------------------------------------------------------------*/
7537typedef PACKED_PRE struct PACKED_POST
7538{
Kumar Anandf53016f2013-09-04 15:15:53 -07007539 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007540 tScanOffloadReqType scanOffloadParams;
7541} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007542
7543/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007544 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007545 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007546typedef PACKED_PRE struct PACKED_POST
7547{
7548 tHalMsgHeader header;
7549
7550 /*status of the request - just to indicate SO has acknowledged
7551 * * the request and will start scanning*/
7552 tANI_U32 status;
7553} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7554
7555/*---------------------------------------------------------------------------
7556 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7557 *-------------------------------------------------------------------------*/
7558typedef PACKED_PRE struct PACKED_POST
7559{
7560 tHalMsgHeader header;
7561} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7562
7563/*---------------------------------------------------------------------------
7564 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7565 *-------------------------------------------------------------------------*/
7566typedef PACKED_PRE struct PACKED_POST
7567{
7568 tHalMsgHeader header;
7569
7570 /*status of the request - just to indicate SO has acknowledged
7571 the request and will start scanning*/
7572 tANI_U32 status;
7573} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7574
7575/*
7576 * Enumetation of scan events indicated by firmware to the host
7577 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007578typedef enum
7579{
Kumar Anandea78e792013-10-10 23:47:01 -07007580 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7581 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7582 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7583 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7584 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7585 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7586 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7587 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7588 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7589} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007590
7591typedef PACKED_PRE struct PACKED_POST
7592{
Kumar Anandea78e792013-10-10 23:47:01 -07007593 tScanEventType event;
7594 tANI_U32 channel;
7595 tANI_U32 scanId;
7596} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007597
Kumar Anandea78e792013-10-10 23:47:01 -07007598/*---------------------------------------------------------------------------
7599 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7600 *-------------------------------------------------------------------------*/
7601typedef PACKED_PRE struct PACKED_POST
7602{
7603 tHalMsgHeader header;
7604 tScanOffloadEventInfo scanOffloadInd;
7605} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007606
Kumar Anandea78e792013-10-10 23:47:01 -07007607typedef PACKED_PRE struct PACKED_POST {
7608 /** primary 20 MHz channel frequency in mhz */
7609 tANI_U32 mhz;
7610 /** Center frequency 1 in MHz*/
7611 tANI_U32 band_center_freq1;
7612 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7613 tANI_U32 band_center_freq2;
7614 /* The first 26 bits are a bit mask to indicate any channel flags,
7615 (see WLAN_HAL_CHAN_FLAG*)
7616 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7617 tANI_U32 channel_info;
7618 /** contains min power, max power, reg power and reg class id. */
7619 tANI_U32 reg_info_1;
7620 /** contains antennamax */
7621 tANI_U32 reg_info_2;
7622} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007623
Kumar Anandf53016f2013-09-04 15:15:53 -07007624
Kumar Anandea78e792013-10-10 23:47:01 -07007625typedef enum {
7626 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7627 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7628 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7629 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7630 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7631 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7632 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7633 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7634 WLAN_HAL_MODE_11AC_VHT20 = 8,
7635 WLAN_HAL_MODE_11AC_VHT40 = 9,
7636 WLAN_HAL_MODE_11AC_VHT80 = 10,
7637 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7638 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7639 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7640 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007641
Kumar Anandea78e792013-10-10 23:47:01 -07007642} tChannelPhyModeType;
7643
7644#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7645#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7646#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7647#define WLAN_HAL_CHAN_AP_DISABLED 9
7648#define WLAN_HAL_CHAN_FLAG_DFS 10
7649#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7650#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007651#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7652
7653#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007654 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007655 } while(0)
7656
7657#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007658 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007659
7660#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7661 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7662 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7663 } while(0)
7664#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7665
7666#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7667 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7668 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7669 } while(0)
7670#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7671
7672#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7673 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7674 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7675 } while(0)
7676#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7677#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7678 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7679 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7680 } while(0)
7681#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7682
7683#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7684 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7685 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7686 } while(0)
7687#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7688
7689#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7690 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7691 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7692 } while(0)
7693#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 -07007694
7695typedef PACKED_PRE struct PACKED_POST
7696{
7697 tANI_U8 numChan;
7698 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7699} tUpdateChannelReqType;
7700
7701/*---------------------------------------------------------------------------
7702 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7703 *-------------------------------------------------------------------------*/
7704typedef PACKED_PRE struct PACKED_POST
7705{
7706 tHalMsgHeader header;
7707 tUpdateChannelReqType updateChannelParams;
7708} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7709
7710/*---------------------------------------------------------------------------
7711 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7712 *-------------------------------------------------------------------------*/
7713typedef PACKED_PRE struct PACKED_POST
7714{
7715 tHalMsgHeader header;
7716
7717 /*status of the request - just to indicate SO has acknowledged
7718 * * the request and will start scanning*/
7719 tANI_U32 status;
7720} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7721
7722
7723/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307724 * WLAN_HAL_RMC_RULER_REQ
7725 *-------------------------------------------------------------------------*/
7726
7727#define HAL_MAX_RMC_SESSIONS 2
7728
7729#define HAL_NUM_MAX_RULERS 8
7730
7731typedef enum
7732{
7733 WLAN_HAL_SUGGEST_RULER,
7734 WLAN_HAL_BECOME_RULER,
7735 WLAN_HAL_RULER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7736}tRulerReqCmdType, tRulerRspCmdType;
7737
Kumar Anandea78e792013-10-10 23:47:01 -07007738typedef PACKED_PRE struct PACKED_POST
7739{
Abhishek Singh00b71972016-01-07 10:51:04 +05307740 tRulerReqCmdType cmd;
7741
7742 /* MAC address of MCAST Transmitter (source) */
7743 tSirMacAddr mcastTransmitter;
7744
7745 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7746 tSirMacAddr mcastGroup;
7747
7748 /* Optional black list for cmd = WLAN_HAL_SUGGEST_RULER */
7749 tSirMacAddr blacklist[HAL_NUM_MAX_RULERS];
7750} tHalRmcRulerReqParams, *tpHalRmcRulerReqParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007751
7752typedef PACKED_PRE struct PACKED_POST
7753{
7754 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307755 tHalRmcRulerReqParams rulerReqParams;
7756} tHalRmcRulerReqMsg, *tpHalRmcRulerReqMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007757
7758/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307759 * WLAN_HAL_RMC_RULER_RSP
7760 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007761typedef PACKED_PRE struct PACKED_POST
7762{
Abhishek Singh00b71972016-01-07 10:51:04 +05307763 /* success or failure */
7764 tANI_U32 status;
7765
7766 /* Command Type */
7767 tRulerRspCmdType cmd;
7768
7769 /* MAC address of MCAST Transmitter (source) */
7770 tSirMacAddr mcastTransmitter;
7771
7772 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7773 tSirMacAddr mcastGroup;
7774
7775 /* List of candidates for cmd = WLAN_HAL_SUGGEST_RULER*/
7776 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7777
7778} tHalRmcRulerRspParams, *tpHalRmcRulerRspParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007779
7780typedef PACKED_PRE struct PACKED_POST
7781{
7782 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307783 tHalRmcRulerRspParams rulerRspParams;
7784} tHalRmcRulerRspMsg, *tpHalRmcRulerRspMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007785
7786/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307787 * WLAN_HAL_RMC_UPDATE_IND
7788 *-------------------------------------------------------------------------*/
7789typedef enum
Kumar Anandea78e792013-10-10 23:47:01 -07007790{
Abhishek Singh00b71972016-01-07 10:51:04 +05307791 WLAN_HAL_RULER_ACCEPTED, //Host-->FW
7792 WLAN_HAL_RULER_CANCELED, //Host-->FW
7793 WLAN_HAL_RULER_PICK_NEW, //FW-->Host
7794 WLAN_HAL_RULER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
7795}tRmcUpdateIndType;
7796
7797typedef enum
7798{
7799 WLAN_HAL_RMC_RULER_ROLE,
7800 WLAN_HAL_RMC_TRANSMITTER_ROLE,
7801 WLAN_HAL_RMC_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7802}tRmcRoleType;
Kumar Anandea78e792013-10-10 23:47:01 -07007803
7804typedef PACKED_PRE struct PACKED_POST
7805{
Abhishek Singh00b71972016-01-07 10:51:04 +05307806 tRmcUpdateIndType indication;
7807
7808 /* Role of the entity generating this indication */
7809 tRmcRoleType role;
7810
7811 /* MAC address of MCAST Transmitter (source) */
7812 tSirMacAddr mcastTransmitter;
7813
7814 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7815 tSirMacAddr mcastGroup;
7816
7817 tSirMacAddr mcastRuler;
7818
7819 /* Candidate list for indication = WLAN_HAL_RULER_PICK_NEW */
7820 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7821} tHalRmcUpdateIndParams, *tpHalRmcUpdateIndParams;
Kumar Anandf53016f2013-09-04 15:15:53 -07007822
7823typedef PACKED_PRE struct PACKED_POST
7824{
7825 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307826 tHalRmcUpdateIndParams rulerIndParams;
7827} tHalRmcUpdateInd, *tpHalRmcUpdateInd;
7828
7829typedef PACKED_PRE struct PACKED_POST
7830{
7831 tANI_U8 staIdx; // Station Idx;
7832 tANI_U32 txRate; // Legacy transmit rate, in units of 500 kbit/sec,
7833 // for the most recently transmitted frame
7834 tANI_U32 mcsIndex; // mcs index for HT20 and HT40 rates
7835 tANI_U32 txRateFlags; // to differentiate between HT20 and
7836 // HT40 rates; short and long guard interval
7837 tANI_S8 rssi; // RSSI of the last received beacon
7838}tHalIbssPeerParams, *tpHalIbssPeerParams;
7839
7840typedef PACKED_PRE struct PACKED_POST
7841{
7842 tANI_U32 status; // success or failure
7843 tANI_U8 numOfPeers; // Number of Peers for
7844 // which stats are being reported
7845 tHalIbssPeerParams ibssPeerParams[1]; // Stats of peer in IBSS
7846}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
7847
7848// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
7849typedef PACKED_PRE struct PACKED_POST
7850{
7851 tHalMsgHeader header;
7852 tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
7853}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
7854
7855typedef PACKED_PRE struct PACKED_POST
7856{
7857 tANI_U8 bssIdx; // Bss Index
7858 tANI_BOOLEAN allPeerInfoReqd; // If set, all IBSS peers stats are reported
7859 tANI_U8 staIdx; // If allPeerInfoReqd is not set,
7860 // only stats of peer with
7861 // staIdx is reported
7862}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
7863
7864// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
7865typedef PACKED_PRE struct PACKED_POST
7866{
7867 tHalMsgHeader header;
7868 tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
7869}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
krunal soni2a4728d2013-09-20 21:56:50 -07007870
Kumar Anandf53016f2013-09-04 15:15:53 -07007871/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007872 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7873 *-------------------------------------------------------------------------*/
7874typedef enum
7875{
7876 /* reassociation is done, but couldn't finish security handshake */
7877 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7878
7879 /* roam has successfully completed by firmware */
7880 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7881
7882 /* UNKONW error */
7883 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7884}tHalRoamOffloadRoamAuthStatus;
7885
7886typedef enum
7887{
7888 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7889 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7890 WLAN_HAL_ROAM_TYPE_OKC,
7891 WLAN_HAL_ROAM_TYPE_CCKM,
7892 WLAN_HAL_ROAM_TYPE_FT,
7893 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7894} tHalRoamOffloadType;
7895
7896typedef PACKED_PRE struct PACKED_POST
7897{
7898 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7899 tANI_U16 beaconProbeRespOffset;
7900
7901 /* Length of beaon / probe resp. */
7902 tANI_U16 beaconProbeRespLength;
7903
7904 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7905 tANI_U16 reassocRespOffset;
7906
7907 /* Length of reassoc resp. */
7908 tANI_U16 reassocRespLength;
7909
7910 /* 0 for probe response frame, 1 for beacon frame, */
7911 tANI_U8 isBeacon;
7912
7913 /* staIdx of old AP */
7914 tANI_U8 oldStaIdx;
7915
7916 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7917 tConfigBssRspParams */
7918 /* bssIdx of new roamed AP */
7919 tANI_U8 bssIdx;
7920
7921 /* DPU descriptor index for PTK */
7922 tANI_U8 dpuDescIndx;
7923
7924 /* PTK DPU signature */
7925 tANI_U8 ucastDpuSignature;
7926
7927 /* DPU descriptor index for GTK*/
7928 tANI_U8 bcastDpuDescIndx;
7929
7930 /* GTK DPU signature */
7931 tANI_U8 bcastDpuSignature;
7932
7933 /*DPU descriptor for IGTK*/
7934 tANI_U8 mgmtDpuDescIndx;
7935
7936 /* IGTK DPU signature */
7937 tANI_U8 mgmtDpuSignature;
7938
7939 /* Station Index for BSS entry*/
7940 tANI_U8 staIdx;
7941
7942 /* Self station index for this BSS */
7943 tANI_U8 selfStaIdx;
7944
7945 /* Bcast station for buffering bcast frames in AP role */
7946 tANI_U8 bcastStaIdx;
7947
7948 /* MAC address of roamed AP */
7949 tSirMacAddr bssid;
7950
7951 /*HAL fills in the tx power used for mgmt frames in this field. */
7952 tANI_S8 txMgmtPower;
7953
7954 /* success or failure */
7955 tHalRoamOffloadRoamAuthStatus authStatus;
7956
7957 /* TODO : add more info as needed */
7958
7959 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7960 /* Beacon or probe resp from new AP. This is in 802.11
7961 frame format starting with MAC header. */
7962 /* Up to beaconProbeRespLength */
7963
7964 /* reassocRespOffset points to starting of reassoc resp frame */
7965 /* Reassoc resp from new AP. This is in 802.11
7966 frame format starting with MAC header. */
7967 /* Up to reassocRespLength */
7968
7969} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7970
7971
7972typedef PACKED_PRE struct PACKED_POST
7973{
7974 tHalMsgHeader header;
7975 tHalRoamOffloadSynchIndParams params;
7976} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7977
7978/*---------------------------------------------------------------------------
7979 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7980 *-------------------------------------------------------------------------*/
7981typedef PACKED_PRE struct PACKED_POST
7982{
7983 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7984 tSirMacAddr bssid;
7985} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7986
7987typedef PACKED_PRE struct PACKED_POST
7988{
7989 tHalMsgHeader header;
7990 tHalRoamOffloadSynchCnfParams params;
7991} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7992
7993
7994/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007995 WLAN_HAL_RATE_UPDATE_IND
7996 *-------------------------------------------------------------------------*/
Abhishek Singh00b71972016-01-07 10:51:04 +05307997 typedef PACKED_PRE struct PACKED_POST
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007998{
7999 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
8000 tANI_S32 ucastDataRate; //unit Mbpsx10
8001
8002 /* TX flag to differentiate between HT20, HT40 etc */
8003 tTxRateInfoFlags ucastDataRateTxFlag;
8004
8005 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
8006 tSirMacAddr bssid;
8007
8008 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
Abhishek Singh00b71972016-01-07 10:51:04 +05308009 tANI_S32 rmcDataRate; //unit Mbpsx10
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008010
8011 /* TX flag to differentiate between HT20, HT40 etc */
Abhishek Singh00b71972016-01-07 10:51:04 +05308012 tTxRateInfoFlags rmcDataRateTxFlag;
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008013
Abhishek Singh00b71972016-01-07 10:51:04 +05308014 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008015 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
8016
8017 /* TX flag to differentiate between HT20, HT40 etc */
8018 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
8019
Abhishek Singh00b71972016-01-07 10:51:04 +05308020 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008021 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
8022
8023 /* TX flag to differentiate between HT20, HT40 etc */
8024 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
8025
8026} tHalRateUpdateParams, *tpHalRateUpdateParams;
8027
8028typedef PACKED_PRE struct PACKED_POST
8029{
8030 tHalMsgHeader header;
8031 tHalRateUpdateParams halRateUpdateParams;
8032} tHalRateUpdateInd, * tpHalRateUpdateInd;
8033
8034/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05308035* WLAN_HAL_TX_FAIL_IND
8036*--------------------------------------------------------------------------*/
8037// Northbound indication from FW to host on weak link detection
8038typedef PACKED_PRE struct PACKED_POST
8039{
8040 // Sequence number increases by 1 whenever the device driver
8041 // sends a notification event. This is cleared as 0 when the
8042 // JOIN IBSS commamd is issued
8043 tANI_U16 seqNo;
8044 tANI_U16 staId;
8045 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
8046} tHalTXFailIndParams, *tpHalTXFailIndParams;
8047
8048typedef PACKED_PRE struct PACKED_POST
8049{
8050 tHalMsgHeader header;
8051 tHalTXFailIndParams txFailIndParams;
8052} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
8053
8054/*---------------------------------------------------------------------------
8055* WLAN_HAL_TX_FAIL_MONITOR_IND
8056*--------------------------------------------------------------------------*/
8057// Southbound message from Host to monitor the Tx failures
8058typedef PACKED_PRE struct PACKED_POST
8059{
8060 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
8061 tANI_U8 tx_fail_count;
8062} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
8063
8064typedef PACKED_PRE struct PACKED_POST
8065{
8066 tHalMsgHeader header;
8067 tTXFailMonitorInfo txFailMonitor;
8068} tTXFailMonitorInd, *tpTXFailMonitorInd;
8069
8070/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308071 * WLAN_HAL_AVOID_FREQ_RANGE_IND
8072 *-------------------------------------------------------------------------*/
8073
Abhishek Singhe0443152015-06-18 10:07:43 +05308074#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308075
8076typedef PACKED_PRE struct PACKED_POST
8077{
8078 tANI_U32 startFreq;
8079 tANI_U32 endFreq;
8080} tHalFreqRange, *tpHalFreqRange;
8081
8082typedef PACKED_PRE struct PACKED_POST
8083{
8084 tANI_U32 avoidCnt;
8085 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
8086} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
8087
8088typedef PACKED_PRE struct PACKED_POST
8089{
8090 tHalMsgHeader header;
8091 tHalAvoidFreqRangeIndParams freqRangeIndParams;
8092} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
8093
8094/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308095 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07008096 *-------------------------------------------------------------------------*/
8097
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308098typedef enum
8099{
8100 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
8101 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
8102 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
8103}tHT40OBssScanCmdType;
8104
8105typedef PACKED_PRE struct PACKED_POST
8106{
8107 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008108
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308109 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008110 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
8111 tANI_U16 OBSSScanActiveDwellTime; // In TUs
8112 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
8113 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
8114 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
8115 tANI_U16 BSSWidthChannelTransitionDelayFactor;
8116 tANI_U16 OBSSScanActivityThreshold;
8117
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308118 tANI_U8 selfStaIdx;
8119 tANI_U8 bssIdx;
8120 tANI_U8 fortyMHZIntolerent;
8121 tANI_U8 channelCount;
8122 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
8123 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008124
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308125 tANI_U16 ieFieldLen;
8126 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
8127}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
8128
8129typedef PACKED_PRE struct PACKED_POST
8130{
8131 tHalMsgHeader header;
8132 tHT40ObssScanIndType scanHT40ObssScanParams;
8133} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
8134
8135/*---------------------------------------------------------------------------
8136 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
8137 *-------------------------------------------------------------------------*/
8138typedef PACKED_PRE struct PACKED_POST
8139{
8140 tHalMsgHeader header;
8141 tANI_U8 bssIdx;
8142} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05308143
8144/*---------------------------------------------------------------------------
8145 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
8146 *-------------------------------------------------------------------------*/
8147
8148typedef PACKED_PRE struct PACKED_POST
8149{
8150 /* Valid BSS Idx for beacon miss rate */
8151 tANI_U8 bssIdx;
8152
8153}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
8154
8155typedef PACKED_PRE struct PACKED_POST
8156{
8157 tHalMsgHeader header;
8158 tHalBcnMissRateReqParams bcnMissRateReqParams;
8159} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
8160
8161/*---------------------------------------------------------------------------
8162 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
8163 *-------------------------------------------------------------------------*/
8164
8165typedef PACKED_PRE struct PACKED_POST
8166{
8167 tANI_U32 status;
8168 tANI_U32 bcnMissCnt;
8169}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
8170
8171typedef PACKED_PRE struct PACKED_POST
8172{
8173 tHalMsgHeader header;
8174 tHalBcnMissRateRspParams bcnMissRateRspParams;
8175}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
8176
Selvaraj, Sridhar6c0eb3f2016-04-06 12:42:04 +05308177/*---------------------------------------------------------------------------
8178 * WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND
8179 *-------------------------------------------------------------------------*/
8180
8181typedef PACKED_PRE struct PACKED_POST
8182{
8183 tANI_U32 actionFramesBitMask;
8184 tANI_U32 reserved;
8185}tHalAllowedActionFrames, *tpHalAllowedActionFrames;
8186
8187typedef PACKED_PRE struct PACKED_POST
8188{
8189 tHalMsgHeader header;
8190 tHalAllowedActionFrames allowedActionFrames;
8191}tHalAllowedActionFramesReqInd, *tpHalAllowedActionFramesReqInd;
8192
Sourav Mohapatra72c2c342018-03-05 19:49:05 +05308193/*----------------------------------------------------------------
8194 WLAN_HAL_VOWIFI_IND
8195-----------------------------------------------------------------*/
8196typedef PACKED_PRE struct PACKED_POST
8197{
8198 /* 0 implies VoWifi call ended, 1 implies VoWifi call started */
8199 tANI_U8 enable;
8200} tHalVoWiFiIndParams, *tpHalVoWiFiIndParams;
8201
8202typedef PACKED_PRE struct PACKED_POST
8203{
8204 tHalMsgHeader header;
8205 tHalVoWiFiIndParams voWiFiIndParams;
8206} tHalVoWiFiInd, * tpHalVoWiFiInd;
8207
Ashish Kumar Dhanotiyac4c53842018-04-10 18:24:33 +05308208/*----------------------------------------------------------------
8209 WLAN_HAL_QPOWER
8210-----------------------------------------------------------------*/
8211typedef PACKED_PRE struct PACKED_POST
8212{
8213 tANI_U8 enable;
8214} tHalQpowerParams, *tpHalQpowerParams;
8215
8216typedef PACKED_PRE struct PACKED_POST
8217{
8218 tHalMsgHeader header;
8219 tHalQpowerParams qpowerParams;
8220} tHalQpower, * tpHalQpower;
8221
Sunil Dutt8377a382014-05-26 21:18:04 +05308222/*--------------------------------------------------------------------------
8223* WLAN_HAL_LL_SET_STATS_REQ
8224*---------------------------------------------------------------------------*/
8225
8226typedef PACKED_PRE struct PACKED_POST
8227{
8228 tANI_U32 req_id;
8229 tANI_U8 sta_id;
8230 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
8231 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
8232} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
8233
8234typedef PACKED_PRE struct PACKED_POST
8235{
8236 tHalMsgHeader header;
8237 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
8238} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
8239
8240/*---------------------------------------------------------------------------
8241 WLAN_HAL_LL_SET_STATS_RSP
8242---------------------------------------------------------------------------*/
8243
8244typedef PACKED_PRE struct PACKED_POST
8245{
8246 tANI_U32 status;
8247 tANI_U32 resp_id;
8248 tANI_U8 iface_id;
8249} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
8250
8251typedef PACKED_PRE struct PACKED_POST
8252{
8253 tHalMsgHeader header;
8254 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
8255} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
8256
8257/*---------------------------------------------------------------------------
8258 WLAN_HAL_LL_GET_STATS_REQ
8259---------------------------------------------------------------------------*/
8260
8261typedef PACKED_PRE struct PACKED_POST
8262{
8263 tANI_U32 req_id;
8264 tANI_U8 sta_id;
8265 tANI_U32 param_id_mask;
8266} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
8267
8268typedef PACKED_PRE struct PACKED_POST
8269{
8270 tHalMsgHeader header;
8271 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
8272} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
8273
8274/*---------------------------------------------------------------------------
8275 WLAN_HAL_LL_GET_STATS_RSP
8276---------------------------------------------------------------------------*/
8277typedef PACKED_PRE struct PACKED_POST
8278{
8279 tANI_U32 status;
8280 tANI_U32 resp_id;
8281 tANI_U8 iface_id;
8282} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8283
8284typedef PACKED_PRE struct PACKED_POST
8285{
8286 tHalMsgHeader header;
8287 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8288} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8289
8290/*---------------------------------------------------------------------------
8291 WLAN_HAL_LL_CLEAR_STATS_REQ
8292---------------------------------------------------------------------------*/
8293typedef PACKED_PRE struct PACKED_POST
8294{
8295 tANI_U32 req_id;
8296 tANI_U8 sta_id;
8297 tANI_U32 stats_clear_req_mask;
8298 tANI_U8 stop_req;
8299} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8300
8301typedef PACKED_PRE struct PACKED_POST
8302{
8303 tHalMsgHeader header;
8304 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8305} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8306
8307/*---------------------------------------------------------------------------
8308 WLAN_HAL_LL_CLEAR_STATS_RSP
8309---------------------------------------------------------------------------*/
8310typedef PACKED_PRE struct PACKED_POST
8311{
8312 tANI_U32 status;
8313 tANI_U8 sta_id;
8314 tANI_U32 resp_id;
8315 tANI_U32 stats_clear_rsp_mask;
8316 tANI_U8 stop_req_status;
8317} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8318
8319typedef PACKED_PRE struct PACKED_POST
8320{
8321 tHalMsgHeader header;
8322 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8323} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8324
8325/*---------------------------------------------------------------------------
8326 WLAN_HAL_LL_NOTIFY_STATS
8327---------------------------------------------------------------------------*/
8328
8329typedef PACKED_PRE struct PACKED_POST
8330{
8331 tHalMsgHeader header;
8332 tANI_U32 param_id;
8333 tANI_U8 iface_id;
8334 tANI_U32 resp_id;
8335 tANI_U32 more_result_to_follow;
8336 tANI_U8 result[1];
8337} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008338
Dino Mycle108eff22014-06-10 09:36:44 +05308339/*---------------------------------------------------------------------------
8340 * WLAN_HAL_EXT_SCAN_START_REQ
8341 *-------------------------------------------------------------------------*/
8342
Dino Mycle8afbac12014-07-04 22:06:17 +05308343typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308344{
8345 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8346 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8347 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8348 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8349 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8350 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8351 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308352 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308353} tExtScanChannelBandMask;
8354
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308355#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8356#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8357
8358#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8359
8360#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8361#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8362#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8363#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8364
Dino Mycle108eff22014-06-10 09:36:44 +05308365typedef PACKED_PRE struct PACKED_POST
8366{
8367 tANI_U32 channel; // frequency
8368 tANI_U32 dwellTimeMs; // dwell time hint
8369 tANI_U8 passive; // 0 => active,
8370 // 1 => passive scan; ignored for DFS
8371}tExtScanChannelSpec, *tpExtScanChannelSpec;
8372
8373typedef PACKED_PRE struct PACKED_POST
8374 {
8375 /* bucket index, 0 based */
8376 tANI_U8 bucketId;
8377 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8378 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308379 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308380 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308381 /* This is a bit field; which defines following bits -
8382 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8383 is % full
8384 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8385 after scan
8386 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8387 (beacons/probe responses + IEs) in real time to HAL, in addition
8388 to completion events
8389 Note: To keep backward compatibility, fire completion events
8390 regardless of REPORT_EVENTS_EACH_SCAN.
8391 * REPORT_EVENTS_NO_BATCH => controls batching,
8392 0 => batching, 1 => no batching
8393 */
Dino Mycle108eff22014-06-10 09:36:44 +05308394 tANI_U8 reportEvents;
8395 /* number of channels */
8396 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308397 // new Exponential Scan params
8398 tANI_U32 max_period;
8399 tANI_U32 exponent;
8400 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308401 /* if channels to scan. In the TLV channelList[] */
8402 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8403}tExtScanBucketData, *tpExtScanBucketData;
8404
8405typedef PACKED_PRE struct PACKED_POST
8406{
8407 tANI_U32 requestId;
8408 tANI_U8 sessionId;
8409 /* Base period (milliseconds) used by scan buckets to define periodicity
8410 of the scans */
8411 tANI_U32 basePeriod;
8412 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8413 (keep the most significant, i.e. stronger RSSI) */
8414 tANI_U32 maxApPerScan;
8415 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308416 tANI_U32 reportThresholdPercent;
8417 /* in number of scans, wake up AP after these many scans */
8418 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308419 /* This will be off channel minimum time */
8420 tANI_U16 neighborScanChannelMinTime;
8421 /* This will be out off channel max time */
8422 tANI_U16 neighborScanChannelMaxTime;
8423 /* This will be the home (BSS) channel time */
8424 tANI_U16 homeAwayTime;
8425 /* number of buckets (maximum 8) */
8426 tANI_U8 numBuckets;
8427 /* Buckets data */
8428 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8429} tHalExtScanStartReq, *tpHalExtScanStartReq;
8430
8431typedef PACKED_PRE struct PACKED_POST
8432{
8433 tHalMsgHeader header;
8434 tHalExtScanStartReq extScanStartReq;
8435}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8436
8437/*---------------------------------------------------------------------------
8438 * WLAN_HAL_EXT_SCAN_START_RSP
8439 *-------------------------------------------------------------------------*/
8440
8441typedef PACKED_PRE struct PACKED_POST
8442{
8443 tANI_U32 requestId;
8444 tANI_U32 status;
8445}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8446
8447typedef PACKED_PRE struct PACKED_POST
8448{
8449 tHalMsgHeader header;
8450 tHalExtScanStartRsp extScanStartRsp;
8451}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8452
8453/*---------------------------------------------------------------------------
8454 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8455 *-------------------------------------------------------------------------*/
8456
8457typedef PACKED_PRE struct PACKED_POST
8458{
8459 tANI_U32 requestId;
8460 tANI_U8 sessionId;
8461}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8462
8463typedef PACKED_PRE struct PACKED_POST
8464{
8465 tHalMsgHeader header;
8466 tHalExtScanGetCapReq extScanGetCapReq;
8467}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8468
8469/*---------------------------------------------------------------------------
8470 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8471 *-------------------------------------------------------------------------*/
8472
8473typedef PACKED_PRE struct PACKED_POST
8474{
8475 tANI_U32 requestId;
8476 tANI_U32 status;
8477
8478 tANI_U32 scanCacheSize;
8479 tANI_U32 scanBuckets;
8480 tANI_U32 maxApPerScan;
8481 tANI_U32 maxRssiSampleSize;
8482 tANI_U32 maxScanReportingThreshold;
8483
8484 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308485 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308486
8487 tANI_U32 maxBssidHistoryEntries;
8488}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8489
8490typedef PACKED_PRE struct PACKED_POST
8491{
8492 tHalMsgHeader header;
8493 tHalExtScanGetCapRsp extScanGetCapRsp;
8494}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8495
8496/*---------------------------------------------------------------------------
8497 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8498 *-------------------------------------------------------------------------*/
8499
8500typedef PACKED_PRE struct PACKED_POST
8501{
8502 tANI_U32 requestId;
8503 tANI_U8 sessionId;
8504 /*
8505 * 1 return cached results and flush it
8506 * 0 return cached results and do not flush
8507 */
8508 tANI_BOOLEAN flush;
8509}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8510
8511typedef PACKED_PRE struct PACKED_POST
8512{
8513 tHalMsgHeader header;
8514 tHalExtScanGetScanReq getScanReq;
8515}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8516
8517/*---------------------------------------------------------------------------
8518 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8519 *-------------------------------------------------------------------------*/
8520
8521typedef PACKED_PRE struct PACKED_POST
8522{
8523 tANI_U32 requestId;
8524 tANI_U32 status;
8525}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8526
8527typedef PACKED_PRE struct PACKED_POST
8528{
8529 tHalMsgHeader header;
8530 tHalExtScanGetScanRsp getScanRsp;
8531}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8532
8533/*---------------------------------------------------------------------------
8534 * WLAN_HAL_EXT_SCAN_RESULT_IND
8535 *-------------------------------------------------------------------------*/
8536
8537typedef PACKED_PRE struct PACKED_POST
8538{
8539 tANI_U64 ts; // time of discovery
8540 tANI_U8 ssid[32+1]; // null terminated SSID
8541 tSirMacAddr bssid; // BSSID
8542 tANI_U32 channel; // channel frequency in MHz
8543 tANI_S32 rssi; // RSSI in dBm
8544 tANI_U32 rtt; // RTT in nanoseconds - not expected
8545 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308546 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308547 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308548 tANI_U16 ieLength; // size of the ie_data blob
8549 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308550} tHalExtScanResultParams, *tpHalExtScanResultParams;
8551
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308552/* Get the GSCAN cached scan results */
8553typedef struct {
8554 tANI_U16 scan_id; // a unique identifier for the scan unit
8555 tANI_U8 flags; // a bitmask with additional
8556 // information about scan
8557 tANI_U8 num_results; // number of bssids retrieved by the scan
8558 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8559 // scan results - one for each bssid
8560} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8561
Dino Mycle108eff22014-06-10 09:36:44 +05308562typedef PACKED_PRE struct PACKED_POST
8563{
8564 tHalMsgHeader header;
8565 tANI_U32 requestId;
8566 tANI_U32 scanResultSize;
8567 tANI_BOOLEAN moreData;
8568 tANI_U8 extScanResult[1];
8569}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8570
8571/*---------------------------------------------------------------------------
8572 * WLAN_HAL_EXT_SCAN_STOP_REQ
8573 *-------------------------------------------------------------------------*/
8574
8575typedef PACKED_PRE struct PACKED_POST
8576{
8577 tANI_U32 requestId;
8578 tANI_U8 sessionId;
8579}tHalExtScanStopReq, *tpHalExtScanStopReq;
8580
8581typedef PACKED_PRE struct PACKED_POST
8582{
8583 tHalMsgHeader header;
8584 tHalExtScanStopReq extScanStopReq;
8585}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8586
8587/*---------------------------------------------------------------------------
8588 * WLAN_HAL_EXT_SCAN_STOP_RSP
8589 *-------------------------------------------------------------------------*/
8590
8591typedef PACKED_PRE struct PACKED_POST
8592{
8593 tANI_U32 requestId;
8594 tANI_U32 status;
8595}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8596
8597typedef PACKED_PRE struct PACKED_POST
8598{
8599 tHalMsgHeader header;
8600 tHalExtScanStopRsp extScanStopRsp;
8601}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8602
8603/*---------------------------------------------------------------------------
8604 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8605 *-------------------------------------------------------------------------*/
8606
Dino Mycle8afbac12014-07-04 22:06:17 +05308607typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308608{
8609 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8610 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308611 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308612} tHalExtScanProgressEventType;
8613
8614typedef PACKED_PRE struct PACKED_POST
8615{
8616 tANI_U32 requestId;
8617 tANI_U32 status;
8618 tHalExtScanProgressEventType extScanEventType;
8619}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8620
8621typedef PACKED_PRE struct PACKED_POST
8622{
8623 tHalMsgHeader header;
8624 tHalExtScanProgressInd extScanProgressInd;
8625}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8626
8627/*---------------------------------------------------------------------------
8628 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8629 *-------------------------------------------------------------------------*/
8630
8631typedef PACKED_PRE struct PACKED_POST
8632{
8633 tANI_U32 requestId;
8634 tANI_U32 numOfScanResAvailable;
8635}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8636
8637typedef PACKED_PRE struct PACKED_POST
8638{
8639 tHalMsgHeader header;
8640 tHalExtScanResAvailableInd extScanResAvailableInd;
8641}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8642
Dino Mycle108eff22014-06-10 09:36:44 +05308643typedef PACKED_PRE struct PACKED_POST
8644{
8645 /* AP BSSID */
8646 tSirMacAddr bssid;
8647 /* low threshold - used in L for significant_change - not used in L for
8648 hotlist*/
8649 tANI_S32 lowRssiThreshold;
8650 /* high threshold - used in L for significant rssi - used in L for hotlist */
8651 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308652} tApThresholdParams, *tpApThresholdParams;
8653
Dino Mycle108eff22014-06-10 09:36:44 +05308654/*---------------------------------------------------------------------------
8655 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8656 *-------------------------------------------------------------------------*/
8657
8658typedef PACKED_PRE struct PACKED_POST
8659{
8660 tANI_U32 requestId;
8661 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308662 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308663 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308664 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308665 // hotlist APs
8666 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8667} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8668
8669typedef PACKED_PRE struct PACKED_POST
8670{
8671 tHalMsgHeader header;
8672 tHalBssidHotlistSetReq bssidHotlistSetReq;
8673}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8674
8675/*---------------------------------------------------------------------------
8676 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8677 *-------------------------------------------------------------------------*/
8678
8679typedef PACKED_PRE struct PACKED_POST
8680{
8681 tANI_U32 requestId;
8682 tANI_U32 status;
8683}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8684
8685typedef PACKED_PRE struct PACKED_POST
8686{
8687 tHalMsgHeader header;
8688 tHalHotlistSetRsp hotlistSetRsp;
8689}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8690
8691/*---------------------------------------------------------------------------
8692 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8693 *-------------------------------------------------------------------------*/
8694
8695typedef PACKED_PRE struct PACKED_POST
8696{
8697 tANI_U32 requestId;
8698}tHalHotlistResetReq, *tpHalHotlistResetReq;
8699
8700typedef PACKED_PRE struct PACKED_POST
8701{
8702 tHalMsgHeader header;
8703 tHalHotlistResetReq hotlistResetReq;
8704}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8705
8706/*---------------------------------------------------------------------------
8707 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8708 *-------------------------------------------------------------------------*/
8709
8710typedef PACKED_PRE struct PACKED_POST
8711{
8712 tANI_U32 requestId;
8713 tANI_U32 status;
8714}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8715
8716typedef PACKED_PRE struct PACKED_POST
8717{
8718 tHalMsgHeader header;
8719 tHalHotlistResetRsp hotlistResetRsp;
8720}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8721
8722/*---------------------------------------------------------------------------
8723 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8724 *-------------------------------------------------------------------------*/
8725
8726typedef PACKED_PRE struct PACKED_POST
8727{
8728 tHalMsgHeader header;
8729 tANI_U32 requestId;
8730 tANI_U32 numHotlistBss;
8731 tANI_BOOLEAN moreData;
8732 tANI_U8 bssHotlist[1];
8733}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8734
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308735/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308736 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8737 *-------------------------------------------------------------------------*/
8738
8739typedef PACKED_PRE struct PACKED_POST
8740{
8741 /* SSID */
8742 char ssid [32+1];
8743 /* low threshold - used in L for significant_change - not used in L for
8744 hotlist*/
8745 tANI_S32 lowRssiThreshold;
8746 /* high threshold - used in L for significant rssi - used in L for hotlist */
8747 tANI_S32 highRssiThreshold;
8748 /* band */
8749 tANI_U32 band;
8750 } tSsidThresholdParams, *tpSsidThresholdParams;
8751
8752
8753typedef PACKED_PRE struct PACKED_POST
8754{
8755 tANI_U32 requestId;
8756 tANI_U8 sessionId;
8757 tANI_U32 lostSsidSampleSize;
8758 // number of hotlist SSIDs
8759 tANI_U32 numSsid;
8760 // hotlist SSIDs
8761 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8762} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8763
8764typedef PACKED_PRE struct PACKED_POST
8765{
8766 tHalMsgHeader header;
8767 tHalSsidHotlistSetReq ssidHotlistSetReq;
8768}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8769
8770/*---------------------------------------------------------------------------
8771 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8772 *-------------------------------------------------------------------------*/
8773typedef PACKED_PRE struct PACKED_POST
8774{
8775 tANI_U32 requestId;
8776 tANI_U32 status;
8777}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8778
8779typedef PACKED_PRE struct PACKED_POST
8780{
8781 tHalMsgHeader header;
8782 tHalSsidHotlistSetRsp hotlistSetRsp;
8783}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8784
8785/*---------------------------------------------------------------------------
8786 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8787 *-------------------------------------------------------------------------*/
8788
8789typedef PACKED_PRE struct PACKED_POST
8790{
8791 tANI_U32 requestId;
8792}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8793
8794typedef PACKED_PRE struct PACKED_POST
8795{
8796 tHalMsgHeader header;
8797 tHalSsidHotlistResetReq hotlistResetReq;
8798}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8799
8800/*---------------------------------------------------------------------------
8801 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8802 *-------------------------------------------------------------------------*/
8803
8804typedef PACKED_PRE struct PACKED_POST
8805{
8806 tANI_U32 requestId;
8807 tANI_U32 status;
8808}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8809
8810typedef PACKED_PRE struct PACKED_POST
8811{
8812 tHalMsgHeader header;
8813 tHalSsidHotlistResetRsp hotlistResetRsp;
8814}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8815
8816/*---------------------------------------------------------------------------
8817 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8818 *-------------------------------------------------------------------------*/
8819
8820typedef PACKED_PRE struct PACKED_POST
8821{
8822 tHalMsgHeader header;
8823 tANI_U32 requestId;
8824 tANI_BOOLEAN ssid_found;
8825 tANI_U32 numHotlistSsid;
8826 tANI_BOOLEAN moreData;
8827 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8828}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8829
8830/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308831 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8832 *-------------------------------------------------------------------------*/
8833
8834typedef PACKED_PRE struct PACKED_POST
8835{
8836 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8837 tANI_U32 reserved; //reserved for future use
8838}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8839
8840typedef PACKED_PRE struct PACKED_POST
8841{
8842 tHalMsgHeader header;
8843 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8844}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8845
8846/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308847 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8848 *--------------------------------------------------------------------------*/
8849typedef PACKED_PRE struct PACKED_POST
8850{
8851 tANI_U8 macAddr[6];
8852 tANI_U32 reserved1;
8853 tANI_U32 reserved2;
8854}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8855
8856typedef PACKED_PRE struct PACKED_POST
8857{
8858 tHalMsgHeader header;
8859 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8860} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8861
8862/*---------------------------------------------------------------------------
8863* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8864*-------------------------------------------------------------------------*/
8865
8866typedef PACKED_PRE struct PACKED_POST
8867{
8868 tANI_U32 status;
8869 tANI_U32 reserved1;
8870} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8871
8872typedef PACKED_PRE struct PACKED_POST
8873{
8874 tHalMsgHeader header;
8875 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8876} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308877/*---------------------------------------------------------------------------
8878 *WLAN_HAL_GET_FRAME_LOG_REQ
8879 *--------------------------------------------------------------------------*/
8880typedef PACKED_PRE struct PACKED_POST
8881{
8882 tANI_U8 flags;
8883}tGetFrameLogReqType, * tpGetFrameLogReqType;
8884
8885typedef PACKED_PRE struct PACKED_POST
8886{
8887 tHalMsgHeader header;
8888 tGetFrameLogReqType tGetFrameLogReqParams;
8889} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8890
8891/*---------------------------------------------------------------------------
8892 * WLAN_HAL_GET_FRAME_LOG_RSP
8893 *-------------------------------------------------------------------------*/
8894typedef PACKED_PRE struct PACKED_POST
8895{
8896 tANI_U32 status;
8897} tGetFrameLogResp, * tpGetFrameLogResp;
8898
8899typedef PACKED_PRE struct PACKED_POST
8900{
8901 tHalMsgHeader header;
8902 tGetFrameLogResp tGetFrameLogRespParams;
8903} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8904
8905/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308906 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8907 *-------------------------------------------------------------------------*/
8908typedef PACKED_PRE struct PACKED_POST
8909{
8910 tANI_U32 reasonCode;
8911}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8912
8913typedef PACKED_PRE struct PACKED_POST
8914{
8915 tHalMsgHeader header;
8916 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8917}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8918
8919/*---------------------------------------------------------------------------
8920 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8921 *-------------------------------------------------------------------------*/
8922typedef PACKED_PRE struct PACKED_POST
8923{ tANI_U32 status;
8924}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8925
8926typedef PACKED_PRE struct PACKED_POST
8927{
8928 tHalMsgHeader header;
8929 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8930}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8931
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308932/*---------------------------------------------------------------------------
8933 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8934 *-------------------------------------------------------------------------*/
8935typedef PACKED_PRE struct PACKED_POST
8936{
8937 tANI_U8 bssIdx;
8938 tANI_U8 rssi;
8939 tSirMacAddr selfMacAddr;
8940 tANI_U32 linkFlCnt;
8941 tANI_U32 linkFlTx;
8942 tANI_U32 lastDataRate;
8943 tANI_U32 rsvd1;
8944 tANI_U32 rsvd2;
8945}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8946
8947typedef PACKED_PRE struct PACKED_POST
8948{
8949 tHalMsgHeader header;
8950 tHalLostLinkParametersIndParams lostLinkParameters;
8951}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308952
8953
8954/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308955 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308956 *--------------------------------------------------------------------------*/
8957typedef PACKED_PRE struct PACKED_POST
8958{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308959 /* BIT0 - enable frame logging
8960 * BIT1 - enableBMUHWtracing
8961 * BIT2 - enableQXDMlogging
8962 * BIT3 - enableUElogDpuTxp
8963 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308964 tANI_U8 enableFlag;
8965 tANI_U8 frameType;
8966 tANI_U8 frameSize;
8967 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308968 /* Host mem address to be used as logmailbox */
8969 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308970 /* firmware will wakeup the host to send logs always */
8971 tANI_U8 continuousFrameLogging;
8972 /* Logging mail box version */
8973 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308974 /* Max ring size in firmware to log msgs when host is suspended state */
8975 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308976 /* when firmware log reaches this threshold and
8977 * if host is awake it will push the logs.
8978 */
8979 tANI_U8 minLogBuffSize;
8980 /* Reserved for future purpose */
8981 tANI_U32 reserved0;
8982 tANI_U32 reserved1;
8983 tANI_U32 reserved2;
8984}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308985
8986typedef PACKED_PRE struct PACKED_POST
8987{
8988 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308989 tFWLoggingInitReqType tFWLoggingInitReqParams;
8990} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308991
8992/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308993 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308994 *-------------------------------------------------------------------------*/
8995typedef PACKED_PRE struct PACKED_POST
8996{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308997 tANI_U32 status;
8998 /* FW mail box address */
8999 tANI_U64 logMailBoxAddr;
9000 /* Logging mail box version */
9001 tANI_U8 logMailBoxVer;
9002 /* Qshrink is enabled */
9003 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05309004 /* fw_dump_max_size is used to tell fwr mem dump size */
9005 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309006 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309007 tANI_U32 reserved1;
9008 tANI_U32 reserved2;
9009} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309010
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05309011
9012typedef PACKED_PRE struct PACKED_POST {
9013 tANI_U32 request_id;
9014 tSirMacAddr bssId;
9015 tANI_S8 min_rssi;
9016 tANI_S8 max_rssi;
9017} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
9018
9019typedef PACKED_PRE struct PACKED_POST
9020{
9021 tHalMsgHeader header;
9022 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
9023}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
9024
9025//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
9026typedef PACKED_PRE struct PACKED_POST {
9027 tANI_U32 request_id;
9028 tANI_U32 status;
9029} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
9030
9031typedef PACKED_PRE struct PACKED_POST
9032{
9033 tHalMsgHeader header;
9034 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
9035}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
9036
9037//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
9038typedef PACKED_PRE struct PACKED_POST
9039{
9040 tANI_U32 request_id;
9041 tSirMacAddr bssId;
9042 tANI_S8 rssi;
9043} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
9044
9045typedef PACKED_PRE struct PACKED_POST
9046{
9047 tHalMsgHeader header;
9048 tHalRssiMonitorIndParams RssiMonitorIndParams;
9049}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
9050
9051
9052//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
9053typedef PACKED_PRE struct PACKED_POST {
9054 tANI_U32 request_id;
9055 tSirMacAddr bssId;
9056} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
9057
9058typedef PACKED_PRE struct PACKED_POST
9059{
9060 tHalMsgHeader header;
9061 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
9062}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
9063
9064//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
9065typedef PACKED_PRE struct PACKED_POST {
9066 tANI_U32 request_id;
9067 tANI_U32 status;
9068} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
9069
9070typedef PACKED_PRE struct PACKED_POST
9071{
9072 tHalMsgHeader header;
9073 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
9074}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
9075
9076
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309077typedef PACKED_PRE struct PACKED_POST
9078{
9079 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309080 tFWLoggingInitResp tFWLoggingInitRespParams;
9081} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
9082
9083/*---------------------------------------------------------------------------
Kapil Guptac1043632016-06-25 00:23:30 +05309084 * WLAN_HAL_SET_PER_ROAM_CONFIG_REQ
9085 *---------------------------------------------------------------------------*/
9086
9087typedef PACKED_PRE struct PACKED_POST {
9088 tANI_U32 request_id;
9089 tANI_U32 isPERRoamCCAEnabled;
9090 tANI_U32 rateUpThreshold;
9091 tANI_U32 rateDownThreshold;
9092 tANI_U32 waitPeriodForNextPERScan;
9093 tANI_U32 PERtimerThreshold;
9094 tANI_U32 PERroamTriggerPercent;
Kapil Guptaffe21522016-08-29 12:33:00 +05309095 tANI_S16 PERRoamFullScanThreshold;
9096 tANI_U16 reserved;
Kapil Guptac1043632016-06-25 00:23:30 +05309097} tPerRoamConfigParams, * tpPerRoamConfigParams;
9098
9099typedef PACKED_PRE struct PACKED_POST
9100{
9101 tHalMsgHeader header;
9102 tPerRoamConfigParams perRoamConfigParams;
9103} tSetPerRoamConfigReq, * tpSetPerRoamConfigReq;
9104
9105/*---------------------------------------------------------------------------
9106 * WLAN_HAL_SET_PER_ROAM_CONFIG_RSP
9107 *---------------------------------------------------------------------------*/
9108
9109typedef PACKED_PRE struct PACKED_POST
9110{
9111 /* Success or Failure */
9112 tANI_U32 status;
9113} tConfigPerRoamRspParams, * tpConfigPerRoamRspParams;
9114
9115typedef PACKED_PRE struct PACKED_POST
9116{
9117 tHalMsgHeader header;
9118 tConfigPerRoamRspParams configPerRoamRspParams;
9119} tSetPerRoamConfigRsp, * tpSetPerRoamConfigRsp;
9120
9121/*---------------------------------------------------------------------------
9122 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ
9123 *---------------------------------------------------------------------------*/
9124
9125typedef PACKED_PRE struct PACKED_POST {
9126 bool roamScanReq;
9127} tStartRoamScanTriggerParams, * tpStartRoamScanTriggerParams;
9128
9129typedef PACKED_PRE struct PACKED_POST {
9130
9131 tHalMsgHeader header;
9132 tStartRoamScanTriggerParams startRoamScanTriggerParams;
9133} tStartRoamScanReq, *tpStartRoamScanReq;
9134
9135/*---------------------------------------------------------------------------
9136 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP
9137 *---------------------------------------------------------------------------*/
9138
9139typedef PACKED_PRE struct PACKED_POST
9140{
9141 /* Success /Failure / Nil result */
9142 tANI_U32 status;
9143} tConfigRoamScanRspParams, * tpConfigRoamScanRspParams;
9144
9145typedef PACKED_PRE struct PACKED_POST
9146{
9147 tHalMsgHeader header;
9148 tConfigRoamScanRspParams configRoamScanRspParams;
9149} tSetRoamScanConfigRsp, * tpSetRoamScanConfigRsp;
9150
Manjeet Singh4dedb502017-01-17 11:46:35 +05309151/*---------------------------------------------------------------------------
9152* WLAN_HAL_CAPTURE_GET_TSF_TSTAMP
9153*-------------------------------------------------------------------------*/
9154typedef PACKED_PRE struct PACKED_POST
9155{
9156 uint8 uBssIdx;
9157 boolean capTSFget;
9158}tHalCapTSFget, *tptHalCapTSFget;
9159
9160typedef PACKED_PRE struct PACKED_POST
9161{
9162 tHalMsgHeader header;
9163 tHalCapTSFget capTSFget;
9164}tHalCapTSFgetReqInd, *tpHalCapTSFgetReqInd;
9165
9166/*---------------------------------------------------------------------------
9167 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP
9168---------------------------------------------------------------------------*/
9169
9170typedef PACKED_PRE struct PACKED_POST
9171{
9172 /* Success /Failure / Nil result */
9173 tANI_U32 status;
9174 tANI_U32 tsf_lo;
9175 tANI_U32 tsf_hi;
9176} tConfigcapTSFgetRspParams, * tptConfigcapTSFgetRspParams;
9177
9178typedef PACKED_PRE struct PACKED_POST
9179{
9180 tHalMsgHeader header;
9181 tConfigcapTSFgetRspParams configcapTSFgetRspParams;
9182} tcapGetTSFConfigRsp, * tpcapGetTSFConfigRsp;
9183
Kapil Guptac1043632016-06-25 00:23:30 +05309184
9185#define PER_ROAM_MAX_AP_CNT 30
9186#define PER_ROAM_MAX_CANDIDATE_CNT 15
9187
9188/* Candidate Information to be shared in the Candidate Indication,
9189 * similar to what is sent in legacy roaming with following additional info
9190 */
9191
9192typedef PACKED_PRE struct PACKED_POST {
9193 tANI_U8 channelNumber;
9194 tANI_U8 channelCCA;
9195 tANI_U8 otherApCount;
9196 tANI_S8 otherApRssi[PER_ROAM_MAX_AP_CNT];
9197} tCandidateChannelInfo, * tpCandidateChannelInfo;
9198
9199typedef PACKED_PRE struct PACKED_POST {
9200 tANI_U32 candidateCount;
9201 tCandidateChannelInfo channelInfo[PER_ROAM_MAX_CANDIDATE_CNT];
9202} tPerRoamScanResult, * tpPerRoamScanResult;
9203
9204
9205/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309206 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
9207 *-------------------------------------------------------------------------*/
9208typedef PACKED_PRE struct PACKED_POST
9209{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05309210 tANI_U16 status;
9211 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309212 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9213 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9214} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
9215
9216typedef PACKED_PRE struct PACKED_POST
9217{
9218 tHalMsgHeader header;
9219 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
9220} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
9221
9222/*---------------------------------------------------------------------------
Kapil Guptae667f952016-12-20 18:23:27 +05309223 * WLAN_HAL_APFIND_CMDID
9224 * ---------------------------------------------------------------------------*/
9225
9226#define MAX_ARRAY_SIZE 1000
9227typedef PACKED_PRE struct PACKED_POST
9228{
9229 tANI_U16 msg_version:4;
9230 tANI_U16 msg_id:12;
9231 tANI_U16 msg_len:16;
9232 tANI_U16 handle;
9233 tANI_U16 transaction_id;
9234} tApfindMsgHeader, *tpApfindMsgHeader;
9235
9236typedef PACKED_PRE struct PACKED_POST
9237{
9238 tANI_U16 type;
9239 tANI_U16 length;
9240 tANI_U8* value;
9241} tApfindTlv, *tpApfindTlv;
9242
9243typedef PACKED_PRE struct PACKED_POST
9244{
9245 tApfindMsgHeader apFindHeader;
9246 tANI_U8 ptlv[MAX_ARRAY_SIZE];
9247} tQRFPrefNetwListParams, *tpQRFPrefNetwListParams;
9248
9249typedef enum
9250{
9251 APFIND_MSG_ID_ERROR_RSP = 0,
9252 APFIND_MSG_ID_ENABLE_REQ = 1,
9253 APFIND_MSG_ID_SET_SSID = 2,
9254 APFIND_MSG_ID_SET_MAC = 3,
9255 APFIND_MSG_ID_SET_PARAMS = 4,
9256} tApfindMsgId;
9257
9258typedef PACKED_PRE struct PACKED_POST
9259{
9260 tHalMsgHeader header;
9261 tQRFPrefNetwListParams qRFprefNetwListParams;
9262} tQRFSetPrefNetwListReq, *tpQRFSetPrefNetwListReq;
9263
9264#define QRF_MAX_SUPPORTED_NETWORKS 10
9265
9266typedef PACKED_PRE struct PACKED_POST {
9267 /*Network that was found with the highest RSSI*/
9268 tSirMacSSid ssId;
9269 /*Indicates the RSSI */
9270 tANI_U8 rssi;
9271 /* The MPDU frame length of a beacon or probe rsp.
9272 * data is the start of the frame
9273 */
9274 tANI_U16 frameLength;
9275} tQrfNetwFoundParam, *tpQrfNetwFoundParam;
9276
9277typedef PACKED_PRE struct PACKED_POST {
9278 uint8 netwCount;
9279 tQrfNetwFoundParam qrfNetwParams[QRF_MAX_SUPPORTED_NETWORKS];
9280} tQrfPrefNetwFoundParams, * tpQrfPrefNetwFoundParams;
9281
9282/*
9283 * Preferred network found indication
9284 */
9285typedef PACKED_PRE struct PACKED_POST {
9286 tHalMsgHeader header;
9287 tQrfPrefNetwFoundParams qrfPrefNetwFoundParams;
9288} tQrfPrefNetwFoundInd, *tpQrfPrefNetwFoundInd;
9289
9290
9291/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309292 * Logging mail box structure
9293 *-------------------------------------------------------------------------*/
9294
9295#define MAILBOX_VERSION_V1 0x1
9296
9297typedef PACKED_PRE struct PACKED_POST
9298{
9299 /* Logging mail box version */
9300 tANI_U8 logMbVersion;
9301 /* Current logging buffer address */
9302 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9303 /* Current logging buffer length */
9304 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9305 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
9306 tANI_U16 reasonCode;
9307 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
9308 tANI_U8 logType;
9309 /* Indicate if Last segment of log is received*/
9310 tANI_BOOLEAN done;
9311}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05309312
Katya Nigamf0511f62015-05-05 16:40:57 +05309313/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05309314 *WLAN_HAL_FW_MEMORY_DUMP_REQ
9315 *--------------------------------------------------------------------------*/
9316typedef PACKED_PRE struct PACKED_POST
9317{
9318 tANI_U32 reserved;
9319}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
9320
9321typedef PACKED_PRE struct PACKED_POST
9322{
9323 tHalMsgHeader header;
9324 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
9325} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
9326
9327/*---------------------------------------------------------------------------
9328 * WLAN_HAL_FW_MEMORY_DUMP_RSP
9329 *-------------------------------------------------------------------------*/
9330typedef PACKED_PRE struct PACKED_POST
9331{
9332 tANI_U32 status;
9333} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
9334
9335typedef PACKED_PRE struct PACKED_POST
9336{
9337 tHalMsgHeader header;
9338 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
9339} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
9340
9341
9342/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05309343* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
9344*-------------------------------------------------------------------------*/
9345
9346/* only 1 filter is supported as of now */
9347#define NUM_FILTERS_SUPPORTED 1
9348
9349typedef PACKED_PRE struct PACKED_POST
9350{
9351 tSirMacAddr macAddr;
9352 tANI_U8 isA1filteringNeeded;
9353 tANI_U8 isA2filteringNeeded;
9354 tANI_U8 isA3filteringNeeded;
9355}tHalMacFilter, *tpHalMacFilter;
9356
9357typedef PACKED_PRE struct PACKED_POST
9358{
9359 tANI_U8 channelNumber;
9360 ePhyChanBondState cbState;
9361
9362 tANI_U32 maxAmpduLen;
9363 tANI_U32 maxMpduInAmpduLen;
9364
9365 tANI_U8 crcCheckEnabled;
9366
9367 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
9368 tANI_U8 numMacFilters;
9369 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
9370
9371 /* Each bit position maps to IEEE convention of typeSubtype */
9372 tANI_U64 typeSubtypeBitmap;
9373
9374 tANI_U64 reserved;
9375
9376}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
9377
9378typedef PACKED_PRE struct PACKED_POST
9379{
9380 tHalMsgHeader header;
9381 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
9382}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
9383
9384
9385/*---------------------------------------------------------------------------
9386* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
9387*-------------------------------------------------------------------------*/
9388
9389typedef PACKED_PRE struct PACKED_POST
9390{
9391 tANI_U32 status;
9392}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
9393
9394typedef PACKED_PRE struct PACKED_POST
9395{
9396 tHalMsgHeader header;
9397 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
9398}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
9399
9400/*---------------------------------------------------------------------------
9401* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
9402*-------------------------------------------------------------------------*/
9403
9404typedef PACKED_PRE struct PACKED_POST
9405{
9406 tHalMsgHeader header;
9407 tANI_U8 resetConfiguration;
9408}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
9409
9410/*---------------------------------------------------------------------------
9411* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
9412*-------------------------------------------------------------------------*/
9413
9414typedef PACKED_PRE struct PACKED_POST
9415{
9416 tANI_U32 status;
9417}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
9418
9419typedef PACKED_PRE struct PACKED_POST
9420{
9421 tHalMsgHeader header;
9422 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
9423}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
9424
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05309425typedef PACKED_PRE struct PACKED_POST
9426{
9427 tANI_U8 status;
9428}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
9429
Arun Khandavalliafc16432015-10-16 20:11:31 +05309430typedef PACKED_PRE struct PACKED_POST
9431{
9432 tANI_U8 paramType;
9433 tANI_U32 paramValue;
9434 tSirMacAddr bssid;
9435} tSetWifiConfigParams, *tpSetWifiConfigParams;
9436
9437typedef PACKED_PRE struct PACKED_POST
9438{
9439 tHalMsgHeader header;
9440 tSetWifiConfigParams wifiConfigParams;
9441} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
9442
9443typedef PACKED_PRE struct PACKED_POST {
9444 tANI_U32 status;
9445} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
9446
9447typedef PACKED_PRE struct PACKED_POST
9448{
9449 tHalMsgHeader header;
9450
9451 tHalSetWifiConfigRspParams setWifiConfigRspParams;
9452} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
9453
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05309454/*---------------------------------------------------------------------------
9455* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
9456*-------------------------------------------------------------------------*/
9457typedef PACKED_PRE struct PACKED_POST
9458{
9459 tANI_U32 reserved;
9460} tHalAntennaDiversitySelectionReqParams, *tpHalAntennaDiversitySelectionReqParams;
9461
9462typedef PACKED_PRE struct PACKED_POST
9463{
9464 tHalMsgHeader header;
9465 tHalAntennaDiversitySelectionReqParams AntDivSelReqParams;
9466}tHalAntennaDiversitySelectionReqMsg;
9467
9468/*---------------------------------------------------------------------------
9469* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP
9470*-------------------------------------------------------------------------*/
9471
9472typedef PACKED_PRE struct PACKED_POST
9473{
9474 tANI_U16 status;
9475 tANI_U32 selectedAntennaId;
9476 tANI_U32 reserved;
9477} tHalAntennaDiversitySelectionRspParams, *tpHalAntennaDiversitySelectionRspParams;
9478
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +05309479/* WDI_MODIFY_ROAM_PARAMS_IND */
9480typedef PACKED_PRE struct PACKED_POST {
9481 tANI_U8 param;
9482 tANI_U32 value;
9483} tHalModifyRoamParamsIndParams, *tpHalModifyRoamParamsIndParams;
9484
9485typedef PACKED_PRE struct PACKED_POST
9486{
9487 tHalMsgHeader header;
9488 tHalModifyRoamParamsIndParams modifyRoamParamsReqParams;
9489} tHalModifyRoamParamsInd, *tpHalModifyRoamParamsInd;
9490
Agrawal Ashishc6aa0132016-12-09 15:59:29 +05309491typedef PACKED_PRE struct PACKED_POST
9492{
9493 tSirMacAddr selfMacAddr;
9494 tANI_U32 enable;
9495 tSirMacSSid ssId;
9496 tANI_U32 rsn_authmode;
9497 tANI_U32 rsn_ucastcipherset;
9498 tANI_U32 rsn_mcastcipherset;
9499 tANI_U32 rsn_mcastmgmtcipherset;
9500 tANI_U32 channel;
9501 tANI_U32 psk_len;
9502 tANI_U8 psk[1];
9503} tSapOffloadEnableMsg, *tpSapOffloadEnableMsg;
9504
9505typedef PACKED_PRE struct PACKED_POST
9506{
9507 tHalMsgHeader header;
9508 tSapOffloadEnableMsg SapOffloadEnableMsg;
9509} tHalSapoffloadEnable, *tpHalSapoffloadEnable;
9510
Anurag Chouhan9b3383a2016-12-13 22:29:55 +05309511/*---------------------------------------------------------------------------
9512 * WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ
9513 *--------------------------------------------------------------------------*/
9514typedef PACKED_PRE struct PACKED_POST
9515{
9516 tANI_U8 bss_idx;
9517 tANI_U32 enable;
9518 tANI_U32 srv_ipv4; /* server IP */
9519 tANI_U32 start_lsb; /* starting address assigned to client */
9520 tANI_U32 num_client; /* number of clients we support */
9521} hal_dhcp_srv_offload_req_param_t, *hal_dhcp_srv_offload_req_params;
9522
9523typedef PACKED_PRE struct PACKED_POST
9524{
9525 tHalMsgHeader header;
9526 hal_dhcp_srv_offload_req_param_t dhcp_srv_offload_req_params;
9527} hal_dhcp_srv_offload_req_msg_t;
9528
9529/*---------------------------------------------------------------------------
9530 * WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP
9531 *--------------------------------------------------------------------------*/
9532typedef PACKED_PRE struct PACKED_POST
9533{
9534 tANI_U32 status;
9535} hal_dhcp_srv_offload_rsp_param_t, *hal_dhcp_srv_offload_rsp_params;
9536
9537typedef PACKED_PRE struct PACKED_POST
9538{
9539 tHalMsgHeader header;
9540 hal_dhcp_srv_offload_rsp_param_t dhcp_srv_offload_rsp_params;
9541} hal_dhcp_srv_offload_rsp_msg_t, *hal_dhcp_srv_offload_rsp_msg;
9542
Anurag Chouhan9c3ddc72016-12-16 13:12:13 +05309543/*---------------------------------------------------------------------------
9544 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ
9545 *--------------------------------------------------------------------------*/
9546typedef PACKED_PRE struct PACKED_POST
9547{
9548 tANI_U8 bss_idx;
9549 tANI_U32 enable;
9550} hal_mdns_enable_offload_req_param_t, *hal_mdns_enable_offload_req_params;
9551
9552typedef PACKED_PRE struct PACKED_POST
9553{
9554 tHalMsgHeader header;
9555 hal_mdns_enable_offload_req_param_t mdns_enable_req_params;
9556} hal_mdns_enable_offload_req_msg_t;
9557
9558/*---------------------------------------------------------------------------
9559 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP
9560 *--------------------------------------------------------------------------*/
9561typedef PACKED_PRE struct PACKED_POST
9562{
9563 tANI_U32 status;
9564} hal_mdns_enable_offload_rsp_param_t, *hal_mdns_enable_offload_rsp_params;
9565
9566typedef PACKED_PRE struct PACKED_POST
9567{
9568 tHalMsgHeader header;
9569 hal_mdns_enable_offload_rsp_param_t mdns_enable_rsp_params;
9570} hal_mdns_enable_offload_rsp_msg_t, *hal_mdns_enable_offload_rsp_msg;
9571
9572/*---------------------------------------------------------------------------
9573 * WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ
9574 *--------------------------------------------------------------------------*/
9575typedef PACKED_PRE struct PACKED_POST
9576{
9577 tANI_U8 bss_idx;
9578 tANI_U32 type;
9579 tANI_U32 fqdn_len;
9580 tANI_U8 fqdn_data[1];
9581} hal_mdns_fqdn_offload_req_param_t, *hal_mdns_fqdn_offload_req_params;
9582
9583typedef PACKED_PRE struct PACKED_POST
9584{
9585 tHalMsgHeader header;
9586 hal_mdns_fqdn_offload_req_param_t mdns_fqdn_req_params;
9587} hal_mdns_fqdn_offload_req_msg_t;
9588
9589/*---------------------------------------------------------------------------
9590 * WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP
9591 *--------------------------------------------------------------------------*/
9592typedef PACKED_PRE struct PACKED_POST
9593{
9594 tANI_U32 status;
9595} hal_mdns_fqdn_offload_rsp_param_t, *hal_mdns_fqdn_offload_rsp_params;
9596
9597typedef PACKED_PRE struct PACKED_POST
9598{
9599 tHalMsgHeader header;
9600 hal_mdns_fqdn_offload_rsp_param_t mdns_fqdn_rsp_params;
9601} hal_mdns_fqdn_offload_rsp_msg_t, *hal_mdns_fqdn_offload_rsp_msg;
9602
9603/*---------------------------------------------------------------------------
9604 * WLAN_HAL_MDNS_RESP_OFFLOAD_REQ
9605 *--------------------------------------------------------------------------*/
9606typedef PACKED_PRE struct PACKED_POST
9607{
9608 tANI_U8 bss_idx;
9609 tANI_U32 ar_count;
9610 tANI_U32 resp_len;
9611 tANI_U8 resp_data[1];
9612} hal_mdns_resp_offload_req_param_t, *hal_mdns_resp_offload_req_params;
9613
9614typedef PACKED_PRE struct PACKED_POST
9615{
9616 tHalMsgHeader header;
9617 hal_mdns_resp_offload_req_param_t mdns_resp_req_params;
9618} hal_mdns_resp_offload_req_msg_t;
9619
9620/*---------------------------------------------------------------------------
9621 * WLAN_HAL_MDNS_RESP_OFFLOAD_RSP
9622 *--------------------------------------------------------------------------*/
9623typedef PACKED_PRE struct PACKED_POST
9624{
9625 tANI_U32 status;
9626} hal_mdns_resp_offload_rsp_param_t, *hal_mdns_resp_offload_rsp_params;
9627
9628typedef PACKED_PRE struct PACKED_POST
9629{
9630 tHalMsgHeader header;
9631 hal_mdns_resp_offload_rsp_param_t mdns_rsp_params;
9632} hal_mdns_resp_offload_rsp_msg_t, *hal_mdns_resp_offload_rsp_msg;
9633
9634/*---------------------------------------------------------------------------
9635 * WLAN_HAL_MDNS_STATS_OFFLOAD_REQ
9636 *--------------------------------------------------------------------------*/
9637typedef PACKED_PRE struct PACKED_POST
9638{
9639 tANI_U8 bss_idx;
9640} hal_mdns_stats_offload_req_param_t, *hal_mdns_stats_offload_req_params;
9641
9642typedef PACKED_PRE struct PACKED_POST
9643{
9644 tHalMsgHeader header;
9645 hal_mdns_stats_offload_req_param_t mdns_stats_req_params;
9646} hal_mdns_stats_offload_req_msg_t;
9647
9648/*---------------------------------------------------------------------------
9649 * WLAN_HAL_MDNS_STATS_OFFLOAD_RSP
9650 *--------------------------------------------------------------------------*/
9651typedef PACKED_PRE struct PACKED_POST
9652{
9653 tANI_U8 bss_idx;
9654 tANI_U32 current_ts;
9655 tANI_U32 last_query_ts;
9656 tANI_U32 last_rsp_ts;
9657 tANI_U32 tot_queries;
9658 tANI_U32 tot_matches;
9659 tANI_U32 tot_rsp;
9660 tANI_U32 status;
9661} hal_mdns_stats_offload_rsp_param_t, *hal_mdns_stats_offload_rsp_params;
9662
9663typedef PACKED_PRE struct PACKED_POST
9664{
9665 tHalMsgHeader header;
9666 hal_mdns_stats_offload_rsp_param_t mdns_stats_rsp_params;
9667} hal_mdns_stats_offload_rsp_msg_t, *hal_mdns_stats_offload_rsp_msg;
9668
Anurag Chouhance0f0822017-01-24 15:44:26 +05309669/*---------------------------------------------------------------------------
9670 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ
9671 *--------------------------------------------------------------------------*/
9672typedef PACKED_PRE struct PACKED_POST
9673{
9674 tANI_U8 set_clr; /*1 set and 0 reset*/
9675 tANI_U8 pkt_type; /* Default 1: ARP */
9676 tANI_U32 ip_addr; /*GW ipv4 address */
9677} tHalStatsArpReqParams, *tpHalStatsArpReqParams;
9678
9679typedef PACKED_PRE struct PACKED_POST
9680{
9681 tHalMsgHeader header;
9682 tHalStatsArpReqParams statsArpReqParams;
9683} tHalStatsArpReqMsg, *tpHalStatsArpReqMsg;
9684
9685/*---------------------------------------------------------------------------
9686 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP
9687 *--------------------------------------------------------------------------*/
9688typedef PACKED_PRE struct PACKED_POST
9689{
9690 tANI_U32 status; //success or failure
9691} tHalStatsArpRspParams, *tpHalStatsArpRspParams;
9692
9693typedef PACKED_PRE struct PACKED_POST
9694{
9695 tHalMsgHeader header;
9696 tHalStatsArpRspParams statsArpRspParams;
9697} tHalStatsArpRspMsg, *tpHalStatsArpRspMsg;
9698
9699/*---------------------------------------------------------------------------
9700 * WLAN_HAL_FW_GET_ARP_STATS_REQ
9701 *--------------------------------------------------------------------------*/
9702typedef PACKED_PRE struct PACKED_POST
9703{
9704 tANI_U8 pkt_type; /* Furture purpose */
9705} tHalStatsGetArpReqParams, *tpHalStatsGetArpReqParams;
9706
9707typedef PACKED_PRE struct PACKED_POST
9708{
9709 tHalMsgHeader header;
9710 tHalStatsGetArpReqParams statsGetArpReqParams;
9711} tHalStatsGetArpReqMsg, *tpHalStatsGetArpReqMsg;
9712
9713/*---------------------------------------------------------------------------
9714 * WLAN_HAL_FW_GET_ARP_STATS_RSP
9715 *--------------------------------------------------------------------------*/
9716typedef PACKED_PRE struct PACKED_POST
9717{
9718 tANI_U32 status;
9719 tANI_U16 dad;
9720 tANI_U16 arpReqRcvdInFW;
9721 tANI_U16 ackedArpReqCnt;
9722 tANI_U16 arpRspCnt;
9723 tANI_U8 data[1];
9724} tdbugArpStatsgetRspParams, *tpdbugArpStatsgetRspParams;
9725
9726typedef PACKED_PRE struct PACKED_POST
9727{
9728 tHalMsgHeader header;
9729 tdbugArpStatsgetRspParams fwArpstatsRspParams;
9730} tHalARPfwStatsRspMsg, *tpHalARPfwStatsRspMsg;
9731
Jeff Johnson295189b2012-06-20 16:38:30 -07009732#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
9733#pragma pack(pop)
9734#elif defined(__ANI_COMPILER_PRAGMA_PACK)
9735#else
9736#endif
9737
9738#endif /* _WLAN_HAL_MSG_H_ */