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