blob: 4d99ce330521f13ee75b50c4793e43a204902d9a [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
126#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 20
Yue Maab3ccfc2013-08-14 17:19:08 -0700127
Dino Mycle108eff22014-06-10 09:36:44 +0530128#define WLAN_HAL_EXT_SCAN_MAX_CHANNELS 16
129#define WLAN_HAL_EXT_SCAN_MAX_BUCKETS 16
130#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS 128
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +0530131#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +0530132
Dino Mycle108eff22014-06-10 09:36:44 +0530133#define WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE 8
134
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530135/* For Logging enhancement feature currently max 2 address will be passed */
136/* In future we may pass 3 address and length in suspend mode corner case */
137#define MAX_NUM_OF_BUFFER 3
138
139/* Log types */
140typedef enum
141{
142 MGMT_FRAME_LOGS = 0,
143 QXDM_LOGGING = 1,
Sachin Ahujac08f72a2015-09-22 15:25:47 +0530144 FW_MEMORY_DUMP = 2,
145 FATAL_EVENT = 3
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530146}tHalFrameLoggingType;
147
148/* Log size */
149typedef enum
150{
151 LOG_SIZE_4K = 0,
152 LOG_SIZE_8K = 1,
153 LOG_SIZE_12K = 2,
154 LOG_SIZE_16K = 3,
155 LOG_SIZE_32K = 4,
156 LOG_SIZE_64K = 5,
157 LOG_SIZE_96K = 6
158}tHalLogBuffSize;
159
Jeff Johnson295189b2012-06-20 16:38:30 -0700160/* Message types for messages exchanged between WDI and HAL */
Dino Mycle8afbac12014-07-04 22:06:17 +0530161typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700162{
163 //Init/De-Init
164 WLAN_HAL_START_REQ = 0,
165 WLAN_HAL_START_RSP = 1,
166 WLAN_HAL_STOP_REQ = 2,
167 WLAN_HAL_STOP_RSP = 3,
168
169 //Scan
170 WLAN_HAL_INIT_SCAN_REQ = 4,
171 WLAN_HAL_INIT_SCAN_RSP = 5,
172 WLAN_HAL_START_SCAN_REQ = 6,
173 WLAN_HAL_START_SCAN_RSP = 7 ,
174 WLAN_HAL_END_SCAN_REQ = 8,
175 WLAN_HAL_END_SCAN_RSP = 9,
176 WLAN_HAL_FINISH_SCAN_REQ = 10,
177 WLAN_HAL_FINISH_SCAN_RSP = 11,
178
179 // HW STA configuration/deconfiguration
180 WLAN_HAL_CONFIG_STA_REQ = 12,
181 WLAN_HAL_CONFIG_STA_RSP = 13,
182 WLAN_HAL_DELETE_STA_REQ = 14,
183 WLAN_HAL_DELETE_STA_RSP = 15,
184 WLAN_HAL_CONFIG_BSS_REQ = 16,
185 WLAN_HAL_CONFIG_BSS_RSP = 17,
186 WLAN_HAL_DELETE_BSS_REQ = 18,
187 WLAN_HAL_DELETE_BSS_RSP = 19,
188
189 //Infra STA asscoiation
190 WLAN_HAL_JOIN_REQ = 20,
191 WLAN_HAL_JOIN_RSP = 21,
192 WLAN_HAL_POST_ASSOC_REQ = 22,
193 WLAN_HAL_POST_ASSOC_RSP = 23,
194
195 //Security
196 WLAN_HAL_SET_BSSKEY_REQ = 24,
197 WLAN_HAL_SET_BSSKEY_RSP = 25,
198 WLAN_HAL_SET_STAKEY_REQ = 26,
199 WLAN_HAL_SET_STAKEY_RSP = 27,
200 WLAN_HAL_RMV_BSSKEY_REQ = 28,
201 WLAN_HAL_RMV_BSSKEY_RSP = 29,
202 WLAN_HAL_RMV_STAKEY_REQ = 30,
203 WLAN_HAL_RMV_STAKEY_RSP = 31,
204
205 //Qos Related
206 WLAN_HAL_ADD_TS_REQ = 32,
207 WLAN_HAL_ADD_TS_RSP = 33,
208 WLAN_HAL_DEL_TS_REQ = 34,
209 WLAN_HAL_DEL_TS_RSP = 35,
210 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
211 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
212 WLAN_HAL_ADD_BA_REQ = 38,
213 WLAN_HAL_ADD_BA_RSP = 39,
214 WLAN_HAL_DEL_BA_REQ = 40,
215 WLAN_HAL_DEL_BA_RSP = 41,
216
217 WLAN_HAL_CH_SWITCH_REQ = 42,
218 WLAN_HAL_CH_SWITCH_RSP = 43,
219 WLAN_HAL_SET_LINK_ST_REQ = 44,
220 WLAN_HAL_SET_LINK_ST_RSP = 45,
221 WLAN_HAL_GET_STATS_REQ = 46,
222 WLAN_HAL_GET_STATS_RSP = 47,
223 WLAN_HAL_UPDATE_CFG_REQ = 48,
224 WLAN_HAL_UPDATE_CFG_RSP = 49,
225
226 WLAN_HAL_MISSED_BEACON_IND = 50,
227 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
228 WLAN_HAL_MIC_FAILURE_IND = 52,
229 WLAN_HAL_FATAL_ERROR_IND = 53,
230 WLAN_HAL_SET_KEYDONE_MSG = 54,
Dino Mycle8afbac12014-07-04 22:06:17 +0530231
Jeff Johnson295189b2012-06-20 16:38:30 -0700232 //NV Interface
233 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
234 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
235
236 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
237 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
238 WLAN_HAL_TRIGGER_BA_REQ = 59,
239 WLAN_HAL_TRIGGER_BA_RSP = 60,
240 WLAN_HAL_UPDATE_BEACON_REQ = 61,
241 WLAN_HAL_UPDATE_BEACON_RSP = 62,
242 WLAN_HAL_SEND_BEACON_REQ = 63,
243 WLAN_HAL_SEND_BEACON_RSP = 64,
244
245 WLAN_HAL_SET_BCASTKEY_REQ = 65,
246 WLAN_HAL_SET_BCASTKEY_RSP = 66,
247 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
248 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
249 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Dino Mycle8afbac12014-07-04 22:06:17 +0530250
Jeff Johnson295189b2012-06-20 16:38:30 -0700251 // PTT interface support
252 WLAN_HAL_PROCESS_PTT_REQ = 70,
253 WLAN_HAL_PROCESS_PTT_RSP = 71,
Dino Mycle8afbac12014-07-04 22:06:17 +0530254
Jeff Johnson295189b2012-06-20 16:38:30 -0700255 // BTAMP related events
256 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
257 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
258 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
259 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
260
261 WLAN_HAL_ENTER_IMPS_REQ = 76,
262 WLAN_HAL_EXIT_IMPS_REQ = 77,
263 WLAN_HAL_ENTER_BMPS_REQ = 78,
264 WLAN_HAL_EXIT_BMPS_REQ = 79,
265 WLAN_HAL_ENTER_UAPSD_REQ = 80,
266 WLAN_HAL_EXIT_UAPSD_REQ = 81,
267 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
268 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
269 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
270 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
271 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
272 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
273 WLAN_HAL_ENTER_WOWL_REQ = 88,
274 WLAN_HAL_EXIT_WOWL_REQ = 89,
275 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
276 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
277 WLAN_HAL_GET_RSSI_REQ = 92,
278 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
279 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
280
281 WLAN_HAL_ENTER_IMPS_RSP = 95,
282 WLAN_HAL_EXIT_IMPS_RSP = 96,
283 WLAN_HAL_ENTER_BMPS_RSP = 97,
284 WLAN_HAL_EXIT_BMPS_RSP = 98,
285 WLAN_HAL_ENTER_UAPSD_RSP = 99,
286 WLAN_HAL_EXIT_UAPSD_RSP = 100,
287 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
288 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
289 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
290 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
291 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
292 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
293 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
294 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
295 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
296 WLAN_HAL_ENTER_WOWL_RSP = 110,
297 WLAN_HAL_EXIT_WOWL_RSP = 111,
298 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
299 WLAN_HAL_GET_RSSI_RSP = 113,
300 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
301
302 //11k related events
303 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
304 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
305
306 //11R related msgs
307 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
308 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
309
310 //P2P WLAN_FEATURE_P2P
311 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
312 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Dino Mycle8afbac12014-07-04 22:06:17 +0530313
Jeff Johnson295189b2012-06-20 16:38:30 -0700314 //WLAN Dump commands
315 WLAN_HAL_DUMP_COMMAND_REQ = 121,
316 WLAN_HAL_DUMP_COMMAND_RSP = 122,
317
Jeff Johnsone7245742012-09-05 17:12:55 -0700318 //OEM_DATA FEATURE SUPPORT
319 WLAN_HAL_START_OEM_DATA_REQ = 123,
320 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700321
322 //ADD SELF STA REQ and RSP
323 WLAN_HAL_ADD_STA_SELF_REQ = 125,
324 WLAN_HAL_ADD_STA_SELF_RSP = 126,
325
326 //DEL SELF STA SUPPORT
327 WLAN_HAL_DEL_STA_SELF_REQ = 127,
328 WLAN_HAL_DEL_STA_SELF_RSP = 128,
329
330 // Coex Indication
331 WLAN_HAL_COEX_IND = 129,
332
Dino Mycle8afbac12014-07-04 22:06:17 +0530333 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700334 WLAN_HAL_OTA_TX_COMPL_IND = 130,
335
336 //Host Suspend/resume messages
337 WLAN_HAL_HOST_SUSPEND_IND = 131,
338 WLAN_HAL_HOST_RESUME_REQ = 132,
339 WLAN_HAL_HOST_RESUME_RSP = 133,
340
341 WLAN_HAL_SET_TX_POWER_REQ = 134,
342 WLAN_HAL_SET_TX_POWER_RSP = 135,
343 WLAN_HAL_GET_TX_POWER_REQ = 136,
344 WLAN_HAL_GET_TX_POWER_RSP = 137,
345
346 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Dino Mycle8afbac12014-07-04 22:06:17 +0530347
Jeff Johnson295189b2012-06-20 16:38:30 -0700348 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
349 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
350 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
351 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
352 WLAN_HAL_RADAR_DETECT_IND = 143,
353 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
354 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Dino Mycle8afbac12014-07-04 22:06:17 +0530355 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700356
357 /*PNO messages*/
358 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
359 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
360 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
361 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
362 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
363 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Dino Mycle8afbac12014-07-04 22:06:17 +0530364 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700365
366 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
367 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
368 WLAN_HAL_TX_PER_HIT_IND = 156,
Dino Mycle8afbac12014-07-04 22:06:17 +0530369
Jeff Johnson295189b2012-06-20 16:38:30 -0700370 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Dino Mycle8afbac12014-07-04 22:06:17 +0530371 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700372
373 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Dino Mycle8afbac12014-07-04 22:06:17 +0530374 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700375 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Dino Mycle8afbac12014-07-04 22:06:17 +0530376 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700377 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Dino Mycle8afbac12014-07-04 22:06:17 +0530378 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
379 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700380 * Host and Riva code is in sync*/
381 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Dino Mycle8afbac12014-07-04 22:06:17 +0530382
Jeff Johnson295189b2012-06-20 16:38:30 -0700383 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
384 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
385
386 WLAN_HAL_TSM_STATS_REQ = 168,
387 WLAN_HAL_TSM_STATS_RSP = 169,
388
389 // wake reason indication (WOW)
390 WLAN_HAL_WAKE_REASON_IND = 170,
Dino Mycle8afbac12014-07-04 22:06:17 +0530391 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700392 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
393 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
394 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
395 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
396
397 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
398 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
399 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
400
401 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
402 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
403
Anand Kumar012623a2013-01-11 17:00:00 -0800404 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
405 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800406
Anand Kumar012623a2013-01-11 17:00:00 -0800407 WLAN_HAL_P2P_NOA_START_IND = 184,
408
409 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
410 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Dino Mycle8afbac12014-07-04 22:06:17 +0530411
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800412 WLAN_HAL_CLASS_B_STATS_IND = 187,
413 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800414 WLAN_HAL_DHCP_START_IND = 189,
415 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700416 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
417 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530418 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
419 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700420
421 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
422 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
423 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
424
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530425 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
426 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
427 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
428 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
429 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700430 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700431
Kumar Anandf53016f2013-09-04 15:15:53 -0700432 /* Scan Offload APIs */
433 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
434 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
435 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
436 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
437 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
438 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
439 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
440
Leo Chang397deb72013-08-22 11:33:16 -0700441 /* APIs to offload TCP/UDP Heartbeat handshakes */
442 WLAN_HAL_LPHB_CFG_REQ = 211,
443 WLAN_HAL_LPHB_CFG_RSP = 212,
444 WLAN_HAL_LPHB_IND = 213,
445
Yue Maab3ccfc2013-08-14 17:19:08 -0700446 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
447 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
448 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530449
Kumar Anandf53016f2013-09-04 15:15:53 -0700450 // Events to set Per-Band Tx Power Limit
451 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
452 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
453
Abhishek Singh00b71972016-01-07 10:51:04 +0530454 WLAN_HAL_RMC_RULER_REQ = 219,
455 WLAN_HAL_RMC_RULER_RSP = 220,
456 WLAN_HAL_RMC_UPDATE_IND = 221,
Kumar Anandf53016f2013-09-04 15:15:53 -0700457
krunal soni2a4728d2013-09-20 21:56:50 -0700458 /* Batchscan */
459 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
460 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
461 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
462 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
463 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
464
465 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
466 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
467
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700468 WLAN_HAL_RATE_UPDATE_IND = 229,
469
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530470 /* Tx Fail for weak link notification */
471 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
472 WLAN_HAL_TX_FAIL_IND = 231,
473
474 /* Multi-hop IP routing offload */
475 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
476
Amar Singhalb41c45b2014-03-21 14:44:14 -0700477 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530478 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800479
Amar Singhalb41c45b2014-03-21 14:44:14 -0700480 /* Fast Roam Offload Synchup request protocol */
481 /* TODO_LFR3 : change this value accordingly before final check-in */
482 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
483 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
484
485 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
486 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
487
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800488 /* Channel Switch Request version 1 */
489 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
490 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
491
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530492 /* 2G4 HT40 OBSS scan */
493 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700494 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
495
496 /* WLAN NAN Messages */
497 WLAN_HAL_NAN_FIRST = 256,
498 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
499 WLAN_HAL_NAN_RSP = 257,
500 WLAN_HAL_NAN_EVT = 258,
501 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
c_hpothu80c30472014-04-14 19:04:48 +0530502 WLAN_HAL_PRINT_REG_INFO_IND = 259,
503
c_hpothua047e572014-05-01 15:03:11 +0530504 WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
505 WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
506
Sunil Dutt8377a382014-05-26 21:18:04 +0530507 /* WLAN LINK LAYER STATS Messages */
508 WLAN_HAL_LL_SET_STATS_REQ = 262,
509 WLAN_HAL_LL_SET_STATS_RSP = 263,
510 WLAN_HAL_LL_GET_STATS_REQ = 264,
511 WLAN_HAL_LL_GET_STATS_RSP = 265,
512 WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
513 WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
514 WLAN_HAL_LL_NOTIFY_STATS = 268,
Dino Mycle8afbac12014-07-04 22:06:17 +0530515 WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
Dino Mycle108eff22014-06-10 09:36:44 +0530516
Dino Mycle8afbac12014-07-04 22:06:17 +0530517 /* WLAN EXT_SCAN Messages */
518 WLAN_HAL_EXT_SCAN_START_REQ = 269,
519 WLAN_HAL_EXT_SCAN_START_RSP = 270,
520 WLAN_HAL_EXT_SCAN_GET_CAP_REQ = 271,
521 WLAN_HAL_EXT_SCAN_GET_CAP_RSP = 272,
522 WLAN_HAL_EXT_SCAN_STOP_REQ = 273,
523 WLAN_HAL_EXT_SCAN_STOP_RSP = 274,
524 WLAN_HAL_EXT_SCAN_GET_SCAN_REQ = 275,
525 WLAN_HAL_EXT_SCAN_GET_SCAN_RSP = 276,
Dino Mycle108eff22014-06-10 09:36:44 +0530526
527 WLAN_HAL_BSSID_HOTLIST_SET_REQ = 277,
528 WLAN_HAL_BSSID_HOTLIST_SET_RSP = 278,
529 WLAN_HAL_BSSID_HOTLIST_RESET_REQ = 279,
530 WLAN_HAL_BSSID_HOTLIST_RESET_RSP = 280,
531
532 WLAN_HAL_SIG_RSSI_SET_REQ = 281,
533 WLAN_HAL_SIG_RSSI_SET_RSP = 282,
534 WLAN_HAL_SIG_RSSI_RESET_REQ = 283,
535 WLAN_HAL_SIG_RSSI_RESET_RSP = 284,
536
Dino Mycle8afbac12014-07-04 22:06:17 +0530537 WLAN_HAL_EXT_SCAN_RESULT_IND = 285,
Dino Mycle108eff22014-06-10 09:36:44 +0530538 WLAN_HAL_BSSID_HOTLIST_RESULT_IND = 286,
539 WLAN_HAL_SIG_RSSI_RESULT_IND = 287,
Dino Mycle8afbac12014-07-04 22:06:17 +0530540 WLAN_HAL_EXT_SCAN_PROGRESS_IND = 288,
541 WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND = 289,
Atul Mittal53419ed2014-08-03 19:41:23 +0530542 WLAN_HAL_TDLS_CHAN_SWITCH_REQ = 290,
543 WLAN_HAL_TDLS_CHAN_SWITCH_RSP = 291,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +0530544 WLAN_HAL_MAC_SPOOFED_SCAN_REQ = 292,
545 WLAN_HAL_MAC_SPOOFED_SCAN_RSP = 293,
Srinivas Dasari42584632014-11-26 20:37:19 +0530546 /* LGE DISA encrypt-decrypt Messages */
547 WLAN_HAL_ENCRYPT_DATA_REQ = 294,
548 WLAN_HAL_ENCRYPT_DATA_RSP = 295,
Sunil Dutt8377a382014-05-26 21:18:04 +0530549
Abhishek Singh725c1582014-11-24 11:47:48 +0530550 WLAN_HAL_FW_STATS_REQ = 296,
551 WLAN_HAL_FW_STATS_RSP = 297,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530552 WLAN_HAL_FW_LOGGING_INIT_REQ = 298,
553 WLAN_HAL_FW_LOGGING_INIT_RSP = 299,
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +0530554 WLAN_HAL_GET_FRAME_LOG_REQ = 300,
555 WLAN_HAL_GET_FRAME_LOG_RSP = 301,
Abhishek Singh725c1582014-11-24 11:47:48 +0530556
Abhishek Singhbc310882015-05-22 15:17:02 +0530557 /* Monitor Mode */
558 WLAN_HAL_ENABLE_MONITOR_MODE_REQ = 302,
559 WLAN_HAL_ENABLE_MONITOR_MODE_RSP = 303,
560
561 WLAN_HAL_DISABLE_MONITOR_MODE_REQ = 304,
562 WLAN_HAL_DISABLE_MONITOR_MODE_RSP = 305,
Katya Nigamf0511f62015-05-05 16:40:57 +0530563
Abhishek Singhbc310882015-05-22 15:17:02 +0530564 WLAN_HAL_SET_RTS_CTS_HTVHT_IND = 306,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530565 // FW Logging
566 WLAN_HAL_FATAL_EVENT_LOGGING_REQ = 307,
567 WLAN_HAL_FATAL_EVENT_LOGGING_RSP = 308,
568 WLAN_HAL_FW_MEMORY_DUMP_REQ = 309,
569 WLAN_HAL_FW_MEMORY_DUMP_RSP = 310,
570 WLAN_HAL_FW_LOGGING_DXE_DONE_IND = 311,
Sachin Ahuja75c1fd72015-08-28 15:46:46 +0530571 WLAN_HAL_LOST_LINK_PARAMETERS_IND = 312,
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +0530572 WLAN_HAL_SEND_FREQ_RANGE_CONTROL_IND = 313,
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +0530573
574 WLAN_HAL_SSID_HOTLIST_SET_REQ = 314,
575 WLAN_HAL_SSID_HOTLIST_SET_RSP = 315,
576 WLAN_HAL_SSID_HOTLIST_RESET_REQ = 316,
577 WLAN_HAL_SSID_HOTLIST_RESET_RSP = 317,
578
579 WLAN_HAL_SSID_HOTLIST_RESULT_IND = 318,
580
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +0530581 /* WFD Session Information to start/stop Scan */
582 WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ = 319,
583
Gupta, Kapil042e9fb2015-09-30 13:34:22 +0530584 WLAN_HAL_START_RSSI_MONITORING_REQ = 321,
585 WLAN_HAL_START_RSSI_MONITORING_RSP = 322,
586 WLAN_HAL_RSSI_MONITORING_IND = 323,
587 WLAN_HAL_STOP_RSSI_MONITORING_REQ = 324,
588 WLAN_HAL_STOP_RSSI_MONITORING_RSP = 325,
589
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +0530590 //RTT3 SUPPORT
591 WLAN_HAL_START_OEM_DATA_REQ_IND_NEW = 326,
592 WLAN_HAL_START_OEM_DATA_RSP_IND_NEW = 327,
593
Arun Khandavalliafc16432015-10-16 20:11:31 +0530594 WLAN_HAL_WIFI_CONFIG_SET_PARAMS_REQ = 328,
595 WLAN_HAL_WIFI_CONFIG_SET_PARAMS_RSP = 329,
596
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +0530597 WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ = 330,
598 WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP = 331,
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +0530599 WLAN_HAL_MODIFY_ROAM_PARAMS_IND = 332,
Selvaraj, Sridhar6c0eb3f2016-04-06 12:42:04 +0530600 WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND = 333,
601
Kapil Guptac1043632016-06-25 00:23:30 +0530602 /* PER based roaming support */
603 WLAN_HAL_SET_PER_ROAM_CONFIG_REQ = 334,
604 WLAN_HAL_SET_PER_ROAM_CONFIG_RSP = 335,
605 WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ = 336,
606 WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP = 337,
Anurag Chouhan9b3383a2016-12-13 22:29:55 +0530607
608 WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ = 339,
609 WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP = 340,
Agrawal Ashishc6aa0132016-12-09 15:59:29 +0530610 WLAN_HAL_SAP_AUTH_OFFLOAD_IND = 341,
Anurag Chouhan9c3ddc72016-12-16 13:12:13 +0530611 WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ = 342,
612 WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP = 343,
613 WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ = 344,
614 WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP = 345,
615 WLAN_HAL_MDNS_RESP_OFFLOAD_REQ = 346,
616 WLAN_HAL_MDNS_RESP_OFFLOAD_RSP = 347,
617 WLAN_HAL_MDNS_STATS_OFFLOAD_REQ = 348,
618 WLAN_HAL_MDNS_STATS_OFFLOAD_RSP = 349,
Anurag Chouhan9b3383a2016-12-13 22:29:55 +0530619
Kapil Guptae667f952016-12-20 18:23:27 +0530620 /* QRF Support */
621 WLAN_HAL_QRF_AP_FIND_COMMAND = 350,
622 WLAN_HAL_QRF_PREF_NETW_FOUND_IND = 351,
Manjeet Singh4dedb502017-01-17 11:46:35 +0530623 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP = 352,
624 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP = 353,
Anurag Chouhance0f0822017-01-24 15:44:26 +0530625 /* ARP DEBUG stats*/
626 WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ = 354,
627 WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP = 355,
628 WLAN_HAL_FW_GET_ARP_STATS_REQ = 356,
629 WLAN_HAL_FW_GET_ARP_STATS_RSP = 357,
Kapil Guptae667f952016-12-20 18:23:27 +0530630
Sunil Dutt8377a382014-05-26 21:18:04 +0530631 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700632}tHalHostMsgType;
633
Jeff Johnsone7245742012-09-05 17:12:55 -0700634/* Enumeration for Version */
635typedef enum
636{
637 WLAN_HAL_MSG_VERSION0 = 0,
638 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800639 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
640 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700641}tHalHostMsgVersion;
642
Jeff Johnson295189b2012-06-20 16:38:30 -0700643/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530644typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700645{
646 eANI_BOOLEAN_FALSE = 0,
647 eANI_BOOLEAN_TRUE,
648 eANI_BOOLEAN_OFF = 0,
649 eANI_BOOLEAN_ON = 1,
650 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
651} eAniBoolean;
652
653typedef enum
654{
655 eDRIVER_TYPE_PRODUCTION = 0,
656 eDRIVER_TYPE_MFG = 1,
657 eDRIVER_TYPE_DVT = 2,
658 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
659} tDriverType;
660
661typedef enum
662{
663 HAL_STOP_TYPE_SYS_RESET,
664 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
665 HAL_STOP_TYPE_RF_KILL,
666 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
667}tHalStopType;
668
669typedef enum
670{
671 eHAL_SYS_MODE_NORMAL,
672 eHAL_SYS_MODE_LEARN,
673 eHAL_SYS_MODE_SCAN,
674 eHAL_SYS_MODE_PROMISC,
675 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700676 eHAL_SYS_MODE_ROAM_SCAN,
677 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700678 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700679 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
680} eHalSysMode;
681
682typedef enum
683{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800684 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
685 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
686 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
687 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
688 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
689 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
690 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
691 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
692 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700693 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800694 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
695} eHalChanSwitchSource;
696
697typedef enum
698{
Jeff Johnson295189b2012-06-20 16:38:30 -0700699 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
700 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
701 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
702 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700703#ifdef WLAN_FEATURE_11AC
704 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
705 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
706 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
707 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
708 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
709 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
710 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
711#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700712 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
713}ePhyChanBondState;
714
715// Spatial Multiplexing(SM) Power Save mode
716typedef enum eSirMacHTMIMOPowerSaveState
717{
718 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
719 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
720 eSIR_HT_MIMO_PS_NA = 2, // reserved
721 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
722 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
723} tSirMacHTMIMOPowerSaveState;
724
725/* each station added has a rate mode which specifies the sta attributes */
726typedef enum eStaRateMode {
727 eSTA_TAURUS = 0,
728 eSTA_TITAN,
729 eSTA_POLARIS,
730 eSTA_11b,
731 eSTA_11bg,
732 eSTA_11a,
733 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700734#ifdef WLAN_FEATURE_11AC
735 eSTA_11ac,
736#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700737 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
738} tStaRateMode, *tpStaRateMode;
739
740#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
741#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
742#define SIR_NUM_POLARIS_RATES 3 //72,96,108
743
744#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
745
746
747typedef enum eSirBssType
748{
749 eSIR_INFRASTRUCTURE_MODE,
750 eSIR_INFRA_AP_MODE, //Added for softAP support
751 eSIR_IBSS_MODE,
752 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
753 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
754 eSIR_AUTO_MODE,
755 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
756} tSirBssType;
757
758typedef enum eSirNwType
759{
760 eSIR_11A_NW_TYPE,
761 eSIR_11B_NW_TYPE,
762 eSIR_11G_NW_TYPE,
763 eSIR_11N_NW_TYPE,
764 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
765} tSirNwType;
766
767typedef tANI_U16 tSirMacBeaconInterval;
768
769#define SIR_MAC_RATESET_EID_MAX 12
770
771typedef enum eSirMacHTOperatingMode
772{
773 eSIR_HT_OP_MODE_PURE, // No Protection
774 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
775 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
776 eSIR_HT_OP_MODE_MIXED, // Protection is required
777 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
778} tSirMacHTOperatingMode;
779
Jeff Johnson295189b2012-06-20 16:38:30 -0700780/// Encryption type enum used with peer
781typedef enum eAniEdType
782{
783 eSIR_ED_NONE,
784 eSIR_ED_WEP40,
785 eSIR_ED_WEP104,
786 eSIR_ED_TKIP,
787 eSIR_ED_CCMP,
788 eSIR_ED_WPI,
789 eSIR_ED_AES_128_CMAC,
790 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
791} tAniEdType;
792
793#define WLAN_MAX_KEY_RSC_LEN 16
794#define WLAN_WAPI_KEY_RSC_LEN 16
795
796/// MAX key length when ULA is used
797#define SIR_MAC_MAX_KEY_LENGTH 32
798#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
799
800/// Enum to specify whether key is used
801/// for TX only, RX only or both
802typedef enum eAniKeyDirection
803{
804 eSIR_TX_ONLY,
805 eSIR_RX_ONLY,
806 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700807 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700808 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
809} tAniKeyDirection;
810
811typedef enum eAniWepType
812{
813 eSIR_WEP_STATIC,
814 eSIR_WEP_DYNAMIC,
815 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
816} tAniWepType;
817
818typedef enum eSriLinkState {
819
820 eSIR_LINK_IDLE_STATE = 0,
821 eSIR_LINK_PREASSOC_STATE = 1,
822 eSIR_LINK_POSTASSOC_STATE = 2,
823 eSIR_LINK_AP_STATE = 3,
824 eSIR_LINK_IBSS_STATE = 4,
825
826 /* BT-AMP Case */
827 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
828 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
829 eSIR_LINK_BTAMP_AP_STATE = 7,
830 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530831
Jeff Johnson295189b2012-06-20 16:38:30 -0700832 /* Reserved for HAL Internal Use */
833 eSIR_LINK_LEARN_STATE = 9,
834 eSIR_LINK_SCAN_STATE = 10,
835 eSIR_LINK_FINISH_SCAN_STATE = 11,
836 eSIR_LINK_INIT_CAL_STATE = 12,
837 eSIR_LINK_FINISH_CAL_STATE = 13,
838#ifdef WLAN_FEATURE_P2P
839 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530840 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700841#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700842#ifdef WLAN_FEATURE_ROAM_OFFLOAD
843 eSIR_LINK_FT_PREASSOC_STATE = 16,
844#endif
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +0530845#ifdef WLAN_FEATURE_LFR_MBB
846 eSIR_LINK_PRE_AUTH_REASSOC_STATE = 17,
847#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700848 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
849} tSirLinkState;
850
851typedef enum
852{
853 HAL_SUMMARY_STATS_INFO = 0x00000001,
854 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
855 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
856 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
857 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530858 HAL_PER_STA_STATS_INFO = 0x00000020,
859 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700860}eHalStatsMask;
861
862/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530863typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700864{
865 BTAMP_EVENT_CONNECTION_START,
866 BTAMP_EVENT_CONNECTION_STOP,
867 BTAMP_EVENT_CONNECTION_TERMINATED,
868 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
869} tBtAmpEventType;
870
871//***************************************************************
872
873
874/*******************PE Statistics*************************/
875typedef enum
876{
877 PE_SUMMARY_STATS_INFO = 0x00000001,
878 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
879 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
880 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
881 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
882 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530883 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700884 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
885}ePEStatsMask;
886
Sunil Dutt8377a382014-05-26 21:18:04 +0530887
888/******************************LINK LAYER Statitics**********************/
889
890typedef int wifi_radio;
891typedef int wifi_channel;
892typedef int wifi_tx_rate;
893
894/* channel operating width */
895typedef enum {
896 WIFI_CHAN_WIDTH_20 = 0,
897 WIFI_CHAN_WIDTH_40 = 1,
898 WIFI_CHAN_WIDTH_80 = 2,
899 WIFI_CHAN_WIDTH_160 = 3,
900 WIFI_CHAN_WIDTH_80P80 = 4,
901 WIFI_CHAN_WIDTH_5 = 5,
902 WIFI_CHAN_WIDTH_10 = 6,
903} wifi_channel_width;
904
905typedef enum {
906 WIFI_DISCONNECTED = 0,
907 WIFI_AUTHENTICATING = 1,
908 WIFI_ASSOCIATING = 2,
909 WIFI_ASSOCIATED = 3,
910 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
911 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
912} wifi_connection_state;
913
914typedef enum {
915 WIFI_ROAMING_IDLE = 0,
916 WIFI_ROAMING_ACTIVE = 1,
917} wifi_roam_state;
918
919typedef enum {
920 WIFI_INTERFACE_STA = 0,
921 WIFI_INTERFACE_SOFTAP = 1,
922 WIFI_INTERFACE_IBSS = 2,
923 WIFI_INTERFACE_P2P_CLIENT = 3,
924 WIFI_INTERFACE_P2P_GO = 4,
925 WIFI_INTERFACE_NAN = 5,
926 WIFI_INTERFACE_MESH = 6,
927 } wifi_interface_mode;
928
929#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
930#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
931#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
932#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
933#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
934#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
935
936typedef PACKED_PRE struct PACKED_POST
937{
938 wifi_interface_mode mode; // interface mode
939 tANI_U8 mac_addr[6]; // interface mac address (self)
940 wifi_connection_state state; // connection state (valid for STA, CLI only)
941 wifi_roam_state roaming; // roaming state
942 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
943 tANI_U8 ssid[33]; // null terminated SSID
944 tANI_U8 bssid[6]; // bssid
945 tANI_U8 ap_country_str[3]; // country string advertised by AP
946 tANI_U8 country_str[3]; // country string for this association
947} wifi_interface_info;
948
949/* channel information */
950typedef PACKED_PRE struct PACKED_POST
951{
952 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
953 wifi_channel center_freq; // primary 20 MHz channel
954 wifi_channel center_freq0; // center frequency (MHz) first segment
955 wifi_channel center_freq1; // center frequency (MHz) second segment
956} wifi_channel_info;
957
958/* wifi rate info */
959typedef PACKED_PRE struct PACKED_POST
960{
961 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
962 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
963 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
964 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
965 // HT/VHT it would be mcs index
966 tANI_U32 reserved :16; // reserved
967 tANI_U32 bitrate; // units of 100 Kbps
968} wifi_rate;
969
970/* channel statistics */
971typedef PACKED_PRE struct PACKED_POST
972{
973 wifi_channel_info channel; // channel
974 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
975 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
976} wifi_channel_stats;
977
978/* radio statistics */
979typedef PACKED_PRE struct PACKED_POST
980{
981 wifi_radio radio; // wifi radio (if multiple radio supported)
982 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
983 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
984 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
985 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
986 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
987 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
988 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
989 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
990 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
991 tANI_U32 num_channels; // number of channels
992 wifi_channel_stats channels[1]; // channel statistics
993} wifi_radio_stat;
994
995/* per rate statistics */
996typedef PACKED_PRE struct PACKED_POST
997{
998 wifi_rate rate; // rate information *
999 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
1000 tANI_U32 rx_mpdu; // number of received data pkts
1001 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
1002 tANI_U32 retries; // total number of data pkt retries *
1003 tANI_U32 retries_short; // number of short data pkt retries
1004 tANI_U32 retries_long; // number of long data pkt retries
1005} wifi_rate_stat;
1006
1007/* access categories */
1008typedef enum {
1009 WIFI_AC_VO = 0,
1010 WIFI_AC_VI = 1,
1011 WIFI_AC_BE = 2,
1012 WIFI_AC_BK = 3,
1013 WIFI_AC_MAX = 4,
1014} wifi_traffic_ac;
1015
1016/* wifi peer type */
1017typedef enum
1018{
1019 WIFI_PEER_STA,
1020 WIFI_PEER_AP,
1021 WIFI_PEER_P2P_GO,
1022 WIFI_PEER_P2P_CLIENT,
1023 WIFI_PEER_NAN,
1024 WIFI_PEER_TDLS,
1025 WIFI_PEER_INVALID,
1026} wifi_peer_type;
1027
1028/* per peer statistics */
1029typedef PACKED_PRE struct PACKED_POST
1030{
1031 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
1032 tANI_U8 peer_mac_address[6]; // mac address
1033 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
1034 tANI_U32 num_rate; // number of rates
1035 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
1036} wifi_peer_info;
1037
1038/* per access category statistics */
1039typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301040{
1041 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
1042 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
1043 tANI_U32 rx_mpdu; // number of received unicast mpdus
1044 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1045 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1046 tANI_U32 rx_mcast; // number of received multicast data packets
1047 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1048 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1049 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1050 tANI_U32 retries; // total number of data pkt retries
1051 tANI_U32 retries_short; // number of short data pkt retries
1052 tANI_U32 retries_long; // number of long data pkt retries
1053 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1054 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1055 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1056 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1057} wifi_wmm_ac_stat;
1058
Mukul Sharma03f86492015-10-20 16:10:13 +05301059typedef PACKED_PRE struct PACKED_POST
1060{
1061 tANI_U64 average_tsf_offset;
1062 tANI_U32 leaky_ap_avg_num_frames_leaked;
1063 tANI_U32 leaky_ap_guard_time;
1064 tANI_U32 leaky_ap_detected;
1065} wifi_iface_leaky_ap_info;
1066
Sunil Dutt8377a382014-05-26 21:18:04 +05301067/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1068typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301069{
1070 wifi_interface_info info; // current state of the interface
1071 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1072 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1073 tANI_U32 mgmt_action_rx; // action frames received count
1074 tANI_U32 mgmt_action_tx; // action frames transmit count
1075 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1076 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1077 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1078 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
Mukul Sharma03f86492015-10-20 16:10:13 +05301079 wifi_iface_leaky_ap_info leakyApInfo;
Sunil Dutt8377a382014-05-26 21:18:04 +05301080} wifi_iface_stat;
1081
1082/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1083typedef PACKED_PRE struct PACKED_POST
1084{
1085 tANI_U32 num_peers; // number of peers
1086 wifi_peer_info peer_info[1]; // per peer statistics
1087} wifi_peer_stat;
1088
1089/* wifi statistics bitmap for getting statistics */
1090#define WMI_LINK_STATS_RADIO 0x00000001
1091#define WMI_LINK_STATS_IFACE 0x00000002
1092#define WMI_LINK_STATS_ALL_PEER 0x00000004
1093#define WMI_LINK_STATS_PER_PEER 0x00000008
1094
1095/* wifi statistics bitmap for clearing statistics */
1096#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1097#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1098#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1099#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1100#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1101#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1102#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1103#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1104
1105
Jeff Johnson295189b2012-06-20 16:38:30 -07001106/*---------------------------------------------------------------------------
1107 Message definitons - All the messages below need to be packed
1108 ---------------------------------------------------------------------------*/
1109
1110#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1111#pragma pack(push, 1)
1112#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1113#pragma pack(1)
1114#else
1115#endif
1116
1117/// Definition for HAL API Version.
1118typedef PACKED_PRE struct PACKED_POST
1119{
1120 tANI_U8 revision;
1121 tANI_U8 version;
1122 tANI_U8 minor;
1123 tANI_U8 major;
1124} tWcnssWlanVersion, *tpWcnssWlanVersion;
1125
1126/// Definition for Encryption Keys
1127typedef PACKED_PRE struct PACKED_POST
1128{
1129 tANI_U8 keyId;
1130 tANI_U8 unicast; // 0 for multicast
1131 tAniKeyDirection keyDirection;
1132 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1133 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1134 tANI_U16 keyLength;
1135 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1136} tSirKeys, *tpSirKeys;
1137
1138
1139//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1140typedef PACKED_PRE struct PACKED_POST
1141{
1142 /*STA Index*/
1143 tANI_U16 staIdx;
1144
1145 /*Encryption Type used with peer*/
1146 tAniEdType encType;
1147
1148 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301149 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001150
1151 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1152 tANI_U8 defWEPIdx;
1153
Jeff Johnson295189b2012-06-20 16:38:30 -07001154 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301155 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1156
Jeff Johnson295189b2012-06-20 16:38:30 -07001157 /*Control for Replay Count, 1= Single TID based replay count on Tx
1158 0 = Per TID based replay count on TX */
1159 tANI_U8 singleTidRc;
1160
1161} tSetStaKeyParams, *tpSetStaKeyParams;
1162
1163
1164
1165/* 4-byte control message header used by HAL*/
1166typedef PACKED_PRE struct PACKED_POST
1167{
Jeff Johnsone7245742012-09-05 17:12:55 -07001168 tHalHostMsgType msgType:16;
1169 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001170 tANI_U32 msgLen;
1171} tHalMsgHeader, *tpHalMsgHeader;
1172
1173/* Config format required by HAL for each CFG item*/
1174typedef PACKED_PRE struct PACKED_POST
1175{
1176 /* Cfg Id. The Id required by HAL is exported by HAL
1177 * in shared header file between UMAC and HAL.*/
1178 tANI_U16 uCfgId;
1179
Dino Mycle8afbac12014-07-04 22:06:17 +05301180 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001181 * in the TLV format.*/
1182 tANI_U16 uCfgLen;
1183
1184 /* Padding bytes for unaligned address's */
1185 tANI_U16 uCfgPadBytes;
1186
1187 /* Reserve bytes for making cfgVal to align address */
1188 tANI_U16 uCfgReserve;
1189
1190 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1191 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1192} tHalCfg, *tpHalCfg;
1193
1194/*---------------------------------------------------------------------------
1195 WLAN_HAL_START_REQ
1196---------------------------------------------------------------------------*/
1197
1198typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1199{
1200 /* Drive Type - Production or FTM etc */
1201 tDriverType driverType;
1202
1203 /*Length of the config buffer*/
1204 tANI_U32 uConfigBufferLen;
1205
Dino Mycle8afbac12014-07-04 22:06:17 +05301206 /* Following this there is a TLV formatted buffer of length
1207 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001208 * The TLV is expected to be formatted like this:
1209 * 0 15 31 31+CFG_LEN-1 length-1
1210 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1211 */
1212} tHalMacStartParameters, *tpHalMacStartParameters;
1213
1214typedef PACKED_PRE struct PACKED_POST
1215{
1216 /* Note: The length specified in tHalMacStartReqMsg messages should be
1217 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1218 tHalMsgHeader header;
1219 tHalMacStartParameters startReqParams;
1220} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1221
1222/*---------------------------------------------------------------------------
1223 WLAN_HAL_START_RSP
1224---------------------------------------------------------------------------*/
1225
1226typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1227{
1228 /*success or failure */
1229 tANI_U16 status;
1230
1231 /*Max number of STA supported by the device*/
1232 tANI_U8 ucMaxStations;
1233
1234 /*Max number of BSS supported by the device*/
1235 tANI_U8 ucMaxBssids;
1236
1237 /*API Version */
1238 tWcnssWlanVersion wcnssWlanVersion;
1239
1240 /*CRM build information */
1241 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1242
1243 /*hardware/chipset/misc version information */
1244 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1245
1246} tHalMacStartRspParams, *tpHalMacStartRspParams;
1247
1248typedef PACKED_PRE struct PACKED_POST
1249{
1250 tHalMsgHeader header;
1251 tHalMacStartRspParams startRspParams;
1252} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1253
1254/*---------------------------------------------------------------------------
1255 WLAN_HAL_STOP_REQ
1256---------------------------------------------------------------------------*/
1257
1258typedef PACKED_PRE struct PACKED_POST
1259{
1260 /*The reason for which the device is being stopped*/
1261 tHalStopType reason;
1262
1263}tHalMacStopReqParams, *tpHalMacStopReqParams;
1264
1265typedef PACKED_PRE struct PACKED_POST
1266{
1267 tHalMsgHeader header;
1268 tHalMacStopReqParams stopReqParams;
1269} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1270
1271/*---------------------------------------------------------------------------
1272 WLAN_HAL_STOP_RSP
1273---------------------------------------------------------------------------*/
1274
1275typedef PACKED_PRE struct PACKED_POST
1276{
1277 /*success or failure */
1278 tANI_U32 status;
1279
1280}tHalMacStopRspParams, *tpHalMacStopRspParams;
1281
1282typedef PACKED_PRE struct PACKED_POST
1283{
1284 tHalMsgHeader header;
1285 tHalMacStopRspParams stopRspParams;
1286} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1287
1288/*---------------------------------------------------------------------------
1289 WLAN_HAL_UPDATE_CFG_REQ
1290---------------------------------------------------------------------------*/
1291
1292typedef PACKED_PRE struct PACKED_POST
1293{
1294 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1295 tANI_U32 uConfigBufferLen;
1296
Dino Mycle8afbac12014-07-04 22:06:17 +05301297 /* Following this there is a TLV formatted buffer of length
1298 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001299 * The TLV is expected to be formatted like this:
1300 * 0 15 31 31+CFG_LEN-1 length-1
1301 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1302 */
1303} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1304
1305typedef PACKED_PRE struct PACKED_POST
1306{
1307 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1308 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1309 tHalMsgHeader header;
1310 tHalUpdateCfgReqParams updateCfgReqParams;
1311} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1312
1313/*---------------------------------------------------------------------------
1314 WLAN_HAL_UPDATE_CFG_RSP
1315---------------------------------------------------------------------------*/
1316
1317typedef PACKED_PRE struct PACKED_POST
1318{
1319 /* success or failure */
1320 tANI_U32 status;
1321
1322}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1323
1324typedef PACKED_PRE struct PACKED_POST
1325{
1326 tHalMsgHeader header;
1327 tHalUpdateCfgRspParams updateCfgRspParams;
1328} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1329
1330/*---------------------------------------------------------------------------
1331 WLAN_HAL_INIT_SCAN_REQ
1332---------------------------------------------------------------------------*/
1333
1334/// Frame control field format (2 bytes)
1335typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1336{
1337
1338#ifndef ANI_LITTLE_BIT_ENDIAN
1339
1340 tANI_U8 subType :4;
1341 tANI_U8 type :2;
1342 tANI_U8 protVer :2;
1343
1344 tANI_U8 order :1;
1345 tANI_U8 wep :1;
1346 tANI_U8 moreData :1;
1347 tANI_U8 powerMgmt :1;
1348 tANI_U8 retry :1;
1349 tANI_U8 moreFrag :1;
1350 tANI_U8 fromDS :1;
1351 tANI_U8 toDS :1;
1352
1353#else
1354
1355 tANI_U8 protVer :2;
1356 tANI_U8 type :2;
1357 tANI_U8 subType :4;
1358
1359 tANI_U8 toDS :1;
1360 tANI_U8 fromDS :1;
1361 tANI_U8 moreFrag :1;
1362 tANI_U8 retry :1;
1363 tANI_U8 powerMgmt :1;
1364 tANI_U8 moreData :1;
1365 tANI_U8 wep :1;
1366 tANI_U8 order :1;
1367
1368#endif
1369
1370} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1371
1372/// Sequence control field
1373typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1374{
1375 tANI_U8 fragNum : 4;
1376 tANI_U8 seqNumLo : 4;
1377 tANI_U8 seqNumHi : 8;
1378} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1379
1380/// Management header format
1381typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1382{
1383 tSirMacFrameCtl fc;
1384 tANI_U8 durationLo;
1385 tANI_U8 durationHi;
1386 tANI_U8 da[6];
1387 tANI_U8 sa[6];
1388 tANI_U8 bssId[6];
1389 tSirMacSeqCtl seqControl;
1390} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1391
1392/// Scan Entry to hold active BSS idx's
1393typedef __ani_attr_pre_packed struct sSirScanEntry
1394{
1395 tANI_U8 bssIdx[HAL_NUM_BSSID];
1396 tANI_U8 activeBSScnt;
1397}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1398
1399typedef PACKED_PRE struct PACKED_POST {
1400
1401 /*LEARN - AP Role
1402 SCAN - STA Role*/
1403 eHalSysMode scanMode;
1404
1405 /*BSSID of the BSS*/
1406 tSirMacAddr bssid;
1407
1408 /*Whether BSS needs to be notified*/
1409 tANI_U8 notifyBss;
1410
1411 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1412 CTS to Self). Must always be a valid frame type.*/
1413 tANI_U8 frameType;
1414
1415 /*UMAC has the option of passing the MAC frame to be used for notifying
1416 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1417 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1418 frameType.*/
1419 tANI_U8 frameLength;
1420
Dino Mycle8afbac12014-07-04 22:06:17 +05301421 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001422 is non-zero. */
1423 tSirMacMgmtHdr macMgmtHdr;
1424
1425 /*Entry to hold number of active BSS idx's*/
1426 tSirScanEntry scanEntry;
1427
1428} tInitScanParams, * tpInitScanParams;
1429
1430typedef PACKED_PRE struct PACKED_POST
1431{
1432 tHalMsgHeader header;
1433 tInitScanParams initScanParams;
1434} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1435
1436typedef PACKED_PRE struct PACKED_POST {
1437
1438 /*LEARN - AP Role
1439 SCAN - STA Role*/
1440 eHalSysMode scanMode;
1441
1442 /*BSSID of the BSS*/
1443 tSirMacAddr bssid;
1444
1445 /*Whether BSS needs to be notified*/
1446 tANI_U8 notifyBss;
1447
1448 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1449 CTS to Self). Must always be a valid frame type.*/
1450 tANI_U8 frameType;
1451
1452 /*UMAC has the option of passing the MAC frame to be used for notifying
1453 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1454 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1455 frameType.*/
1456 tANI_U8 frameLength;
1457
Dino Mycle8afbac12014-07-04 22:06:17 +05301458 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001459 is non-zero. */
1460 tSirMacMgmtHdr macMgmtHdr;
1461
1462 /*Entry to hold number of active BSS idx's*/
1463 tSirScanEntry scanEntry;
1464
1465 /* Single NoA usage in Scanning */
1466 tANI_U8 useNoA;
1467
1468 /* Indicates the scan duration (in ms) */
1469 tANI_U16 scanDuration;
1470
1471} tInitScanConParams, * tpInitScanConParams;
1472
1473typedef PACKED_PRE struct PACKED_POST
1474{
1475 tHalMsgHeader header;
1476 tInitScanConParams initScanParams;
1477} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1478
1479
1480/*---------------------------------------------------------------------------
1481 WLAN_HAL_INIT_SCAN_RSP
1482---------------------------------------------------------------------------*/
1483
1484typedef PACKED_PRE struct PACKED_POST
1485{
1486 /*success or failure */
1487 tANI_U32 status;
1488
1489}tHalInitScanRspParams, *tpHalInitScanRspParams;
1490
1491typedef PACKED_PRE struct PACKED_POST
1492{
1493 tHalMsgHeader header;
1494 tHalInitScanRspParams initScanRspParams;
1495} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1496
1497/*---------------------------------------------------------------------------
1498 WLAN_HAL_START_SCAN_REQ
1499---------------------------------------------------------------------------*/
1500
Dino Mycle8afbac12014-07-04 22:06:17 +05301501typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001502{
1503 /*Indicates the channel to scan*/
1504 tANI_U8 scanChannel;
1505
1506 } tStartScanParams, * tpStartScanParams;
1507
1508typedef PACKED_PRE struct PACKED_POST
1509{
1510 tHalMsgHeader header;
1511 tStartScanParams startScanParams;
1512} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1513
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001514typedef PACKED_PRE struct PACKED_POST
1515{
1516 tHalMsgHeader header;
1517} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1518
Jeff Johnson295189b2012-06-20 16:38:30 -07001519/*---------------------------------------------------------------------------
1520 WLAN_HAL_START_SCAN_RSP
1521---------------------------------------------------------------------------*/
1522
1523typedef PACKED_PRE struct PACKED_POST
1524{
1525 /*success or failure */
1526 tANI_U32 status;
1527
1528 tANI_U32 startTSF[2];
1529 tPowerdBm txMgmtPower;
1530
1531}tHalStartScanRspParams, *tpHalStartScanRspParams;
1532
1533typedef PACKED_PRE struct PACKED_POST
1534{
1535 tHalMsgHeader header;
1536 tHalStartScanRspParams startScanRspParams;
1537} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1538
1539/*---------------------------------------------------------------------------
1540 WLAN_HAL_END_SCAN_REQ
1541---------------------------------------------------------------------------*/
1542
1543typedef PACKED_PRE struct PACKED_POST
1544{
1545 /*Indicates the channel to stop scanning. Not used really. But retained
1546 for symmetry with "start Scan" message. It can also help in error
1547 check if needed.*/
1548 tANI_U8 scanChannel;
1549
1550} tEndScanParams, *tpEndScanParams;
1551
1552typedef PACKED_PRE struct PACKED_POST
1553{
1554 tHalMsgHeader header;
1555 tEndScanParams endScanParams;
1556} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1557
1558/*---------------------------------------------------------------------------
1559 WLAN_HAL_END_SCAN_RSP
1560---------------------------------------------------------------------------*/
1561
1562typedef PACKED_PRE struct PACKED_POST
1563{
1564 /*success or failure */
1565 tANI_U32 status;
1566
1567}tHalEndScanRspParams, *tpHalEndScanRspParams;
1568
1569typedef PACKED_PRE struct PACKED_POST
1570{
1571 tHalMsgHeader header;
1572 tHalEndScanRspParams endScanRspParams;
1573} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1574
1575/*---------------------------------------------------------------------------
1576 WLAN_HAL_FINISH_SCAN_REQ
1577---------------------------------------------------------------------------*/
1578
1579typedef PACKED_PRE struct PACKED_POST
1580{
1581 /* Identifies the operational state of the AP/STA
1582 * LEARN - AP Role SCAN - STA Role */
1583 eHalSysMode scanMode;
1584
1585 /*Operating channel to tune to.*/
1586 tANI_U8 currentOperChannel;
1587
1588 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1589 40 MHz extension channel in combination with the control channel*/
1590 ePhyChanBondState cbState;
1591
1592 /*BSSID of the BSS*/
1593 tSirMacAddr bssid;
1594
1595 /*Whether BSS needs to be notified*/
1596 tANI_U8 notifyBss;
1597
1598 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1599 CTS to Self). Must always be a valid frame type.*/
1600 tANI_U8 frameType;
1601
1602 /*UMAC has the option of passing the MAC frame to be used for notifying
1603 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1604 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1605 frameType.*/
1606 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301607
1608 /*Following the framelength there is a MAC frame buffer if frameLength
1609 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001610 tSirMacMgmtHdr macMgmtHdr;
1611
1612 /*Entry to hold number of active BSS idx's*/
1613 tSirScanEntry scanEntry;
1614
1615} tFinishScanParams, *tpFinishScanParams;
1616
1617typedef PACKED_PRE struct PACKED_POST
1618{
1619 tHalMsgHeader header;
1620 tFinishScanParams finishScanParams;
1621} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1622
1623/*---------------------------------------------------------------------------
1624 WLAN_HAL_FINISH_SCAN_RSP
1625---------------------------------------------------------------------------*/
1626
1627typedef PACKED_PRE struct PACKED_POST
1628{
1629 /*success or failure */
1630 tANI_U32 status;
1631
1632}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1633
1634typedef PACKED_PRE struct PACKED_POST
1635{
1636 tHalMsgHeader header;
1637 tHalFinishScanRspParams finishScanRspParams;
1638} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1639
Srinivas Dasari42584632014-11-26 20:37:19 +05301640typedef PACKED_PRE struct PACKED_POST
1641{
1642 tSetStaKeyParams keyParams;
1643 uint8 pn[6];
1644} tHalEncConfigParams;
1645
1646typedef PACKED_PRE struct PACKED_POST
1647{
1648 uint16 length;
1649 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1650} tHalDisaPayload;
1651
1652typedef PACKED_PRE struct PACKED_POST
1653{
1654#ifdef BYTE_ORDER_BIG_ENDIAN
1655 uint8 reserved1 : 1;
1656 uint8 ackpolicy : 2;
1657 uint8 eosp : 1;
1658 uint8 tid : 4;
1659
1660 uint8 appsbufferstate : 8;
1661#else
1662 uint8 appsbufferstate : 8;
1663
1664 uint8 tid : 4;
1665 uint8 eosp : 1;
1666 uint8 ackpolicy : 2;
1667 uint8 reserved1 : 1;
1668#endif
1669} tHalQosCtrlFieldType;
1670
1671typedef PACKED_PRE struct PACKED_POST
1672 {
1673#ifdef BYTE_ORDER_BIG_ENDIAN
1674 uint16 subtype : 4;
1675 uint16 type : 2;
1676 uint16 protocol : 2;
1677
1678 uint16 order : 1;
1679 uint16 wep : 1;
1680 uint16 moredata : 1;
1681 uint16 pm : 1;
1682 uint16 retry : 1;
1683 uint16 morefrag : 1;
1684 uint16 fromds : 1;
1685 uint16 tods : 1;
1686#else
1687
1688 uint16 tods : 1;
1689 uint16 fromds : 1;
1690 uint16 morefrag : 1;
1691 uint16 retry : 1;
1692 uint16 pm : 1;
1693 uint16 moredata : 1;
1694 uint16 wep : 1;
1695 uint16 order : 1;
1696
1697 uint16 protocol : 2;
1698 uint16 type : 2;
1699 uint16 subtype : 4;
1700#endif
1701} tHalFrmCtrlType;
1702
1703typedef PACKED_PRE struct PACKED_POST
1704{
1705 /* Frame control field */
1706 tHalFrmCtrlType fc;
1707 /* Duration ID */
1708 uint16 usDurationId;
1709 /* Address 1 field */
1710 uint8 vA1[HAL_MAC_ADDR_LEN];
1711 /* Address 2 field */
1712 uint8 vA2[HAL_MAC_ADDR_LEN];
1713 /* Address 3 field */
1714 uint8 vA3[HAL_MAC_ADDR_LEN];
1715 /* Sequence control field */
1716 uint16 seqNum;
1717 /* Optional A4 address */
1718 uint8 optvA4[HAL_MAC_ADDR_LEN];
1719 /* Optional QOS control field */
1720 tHalQosCtrlFieldType usQosCtrl;
1721} tHal80211Header;
1722
1723typedef PACKED_PRE struct PACKED_POST
1724{
1725 tHal80211Header macHeader;
1726 tHalEncConfigParams encParams;
1727 tHalDisaPayload data;
1728} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1729
1730typedef PACKED_PRE struct PACKED_POST
1731{
1732 tHalMsgHeader header;
1733 tSetEncryptedDataParams encryptedDataParams;
1734} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1735
1736typedef PACKED_PRE struct PACKED_POST
1737{
1738 tANI_U32 status;
1739 tHalDisaPayload encryptedPayload;
1740} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1741
1742typedef PACKED_PRE struct PACKED_POST
1743{
1744 tHalMsgHeader header;
1745 tSetEncryptedDataRspParams encryptedDataRspParams;
1746} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1747
Jeff Johnson295189b2012-06-20 16:38:30 -07001748/*---------------------------------------------------------------------------
1749 WLAN_HAL_CONFIG_STA_REQ
1750---------------------------------------------------------------------------*/
1751
1752typedef PACKED_PRE struct PACKED_POST {
1753 /*
1754 * For Self STA Entry: this represents Self Mode.
1755 * For Peer Stations, this represents the mode of the peer.
1756 * On Station:
1757 * --this mode is updated when PE adds the Self Entry.
1758 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1759 * ON AP:
1760 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1761 * to indicate the self mode of the AP.
1762 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1763 */
1764
1765 tStaRateMode opRateMode;
1766 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1767 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1768 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1769 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1770 tANI_U16 reserved;
1771
1772 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1773 //First 26 bits are reserved for those Titan rates and
1774 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1775 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1776
1777 /*
1778 * 0-76 bits used, remaining reserved
1779 * bits 0-15 and 32 should be set.
1780 */
1781 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1782
1783 /*
1784 * RX Highest Supported Data Rate defines the highest data
1785 * rate that the STA is able to receive, in unites of 1Mbps.
1786 * This value is derived from "Supported MCS Set field" inside
1787 * the HT capability element.
1788 */
1789 tANI_U16 rxHighestDataRate;
1790
1791} tSirSupportedRates, *tpSirSupportedRates;
1792
1793typedef PACKED_PRE struct PACKED_POST
1794{
1795 /*BSSID of STA*/
1796 tSirMacAddr bssId;
1797
1798 /*ASSOC ID, as assigned by UMAC*/
1799 tANI_U16 assocId;
1800
1801 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1802 tANI_U8 staType;
1803
1804 /*Short Preamble Supported.*/
1805 tANI_U8 shortPreambleSupported;
1806
1807 /*MAC Address of STA*/
1808 tSirMacAddr staMac;
1809
1810 /*Listen interval of the STA*/
1811 tANI_U16 listenInterval;
1812
1813 /*Support for 11e/WMM*/
1814 tANI_U8 wmmEnabled;
1815
1816 /*11n HT capable STA*/
1817 tANI_U8 htCapable;
1818
1819 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1820 tANI_U8 txChannelWidthSet;
1821
1822 /*RIFS mode 0 - NA, 1 - Allowed */
1823 tANI_U8 rifsMode;
1824
Dino Mycle8afbac12014-07-04 22:06:17 +05301825 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001826 0 - No Support, 1 - Supported
1827 SG - there is global field */
1828 tANI_U8 lsigTxopProtection;
1829
1830 /*Max Ampdu Size supported by STA. TPE programming.
1831 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1832 tANI_U8 maxAmpduSize;
1833
1834 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1835 tANI_U8 maxAmpduDensity;
1836
1837 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1838 tANI_U8 maxAmsduSize;
1839
1840 /*Short GI support for 40Mhz packets*/
1841 tANI_U8 fShortGI40Mhz;
1842
1843 /*Short GI support for 20Mhz packets*/
1844 tANI_U8 fShortGI20Mhz;
1845
Jeff Johnson295189b2012-06-20 16:38:30 -07001846 /*Robust Management Frame (RMF) enabled/disabled*/
1847 tANI_U8 rmfEnabled;
1848
1849 /* The unicast encryption type in the association */
1850 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001851
1852 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001853 will set this flag in case of RE-ASSOC, where we want to reuse the old
1854 STA ID. 0 = Add, 1 = Update*/
1855 tANI_U8 action;
1856
1857 /*U-APSD Flags: 1b per AC. Encoded as follows:
1858 b7 b6 b5 b4 b3 b2 b1 b0 =
1859 X X X X BE BK VI VO */
1860 tANI_U8 uAPSD;
1861
1862 /*Max SP Length*/
1863 tANI_U8 maxSPLen;
1864
1865 /*11n Green Field preamble support
1866 0 - Not supported, 1 - Supported */
1867 tANI_U8 greenFieldCapable;
1868
1869 /*MIMO Power Save mode*/
1870 tSirMacHTMIMOPowerSaveState mimoPS;
1871
1872 /*Delayed BA Support*/
1873 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001874
Jeff Johnson295189b2012-06-20 16:38:30 -07001875 /*Max AMPDU duration in 32us*/
1876 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001877
Jeff Johnson295189b2012-06-20 16:38:30 -07001878 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1879 it to 0 if AP does not support it. This indication is sent to HAL and
1880 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1881 tANI_U8 fDsssCckMode40Mhz;
1882
1883 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1884 Retained for backward compalibity with existing HAL code*/
1885 tANI_U8 staIdx;
1886
1887 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1888 Retained for backward compalibity with existing HAL code*/
1889 tANI_U8 bssIdx;
1890
1891 tANI_U8 p2pCapableSta;
1892
Jeff Johnsone7245742012-09-05 17:12:55 -07001893 /*Reserved to align next field on a dword boundary*/
1894 tANI_U8 reserved;
1895
1896 /*These rates are the intersection of peer and self capabilities.*/
1897 tSirSupportedRates supportedRates;
1898
Jeff Johnson295189b2012-06-20 16:38:30 -07001899} tConfigStaParams, *tpConfigStaParams;
1900
Jeff Johnsone7245742012-09-05 17:12:55 -07001901/*------------------------------------------------------------------------
1902 * WLAN_HAL_CONFIG_STA_REQ
1903 * ----------------------------------------------------------------------*/
1904
1905typedef PACKED_PRE struct PACKED_POST {
1906 /*
1907 * For Self STA Entry: this represents Self Mode.
1908 * For Peer Stations, this represents the mode of the peer.
1909 * On Station:
1910 * --this mode is updated when PE adds the Self Entry.
1911 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1912 * ON AP:
1913 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1914 * to indicate the self mode of the AP.
1915 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1916 */
1917
1918 tStaRateMode opRateMode;
1919 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1920 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1921 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1922 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1923 tANI_U16 reserved;
1924
1925 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1926 //First 26 bits are reserved for those Titan rates and
1927 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1928 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1929
1930 /*
1931 * 0-76 bits used, remaining reserved
1932 * bits 0-15 and 32 should be set.
1933 */
1934 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1935
1936 /*
1937 * RX Highest Supported Data Rate defines the highest data
1938 * rate that the STA is able to receive, in unites of 1Mbps.
1939 * This value is derived from "Supported MCS Set field" inside
1940 * the HT capability element.
1941 */
1942 tANI_U16 rxHighestDataRate;
1943
1944 /* Indicates the Maximum MCS that can be received for each number
1945 * of spacial streams */
1946 tANI_U16 vhtRxMCSMap;
1947
1948 /*Indicate the highest VHT data rate that the STA is able to receive*/
1949 tANI_U16 vhtRxHighestDataRate;
1950
1951 /* Indicates the Maximum MCS that can be transmitted for each number
1952 * of spacial streams */
1953 tANI_U16 vhtTxMCSMap;
1954
1955 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1956 tANI_U16 vhtTxHighestDataRate;
1957
1958} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1959
1960typedef PACKED_PRE struct PACKED_POST
1961{
1962 /*BSSID of STA*/
1963 tSirMacAddr bssId;
1964
1965 /*ASSOC ID, as assigned by UMAC*/
1966 tANI_U16 assocId;
1967
1968 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1969 tANI_U8 staType;
1970
1971 /*Short Preamble Supported.*/
1972 tANI_U8 shortPreambleSupported;
1973
1974 /*MAC Address of STA*/
1975 tSirMacAddr staMac;
1976
1977 /*Listen interval of the STA*/
1978 tANI_U16 listenInterval;
1979
1980 /*Support for 11e/WMM*/
1981 tANI_U8 wmmEnabled;
1982
1983 /*11n HT capable STA*/
1984 tANI_U8 htCapable;
1985
1986 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1987 tANI_U8 txChannelWidthSet;
1988
1989 /*RIFS mode 0 - NA, 1 - Allowed */
1990 tANI_U8 rifsMode;
1991
1992 /*L-SIG TXOP Protection mechanism
1993 0 - No Support, 1 - Supported
1994 SG - there is global field */
1995 tANI_U8 lsigTxopProtection;
1996
1997 /*Max Ampdu Size supported by STA. TPE programming.
1998 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1999 tANI_U8 maxAmpduSize;
2000
2001 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
2002 tANI_U8 maxAmpduDensity;
2003
2004 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
2005 tANI_U8 maxAmsduSize;
2006
2007 /*Short GI support for 40Mhz packets*/
2008 tANI_U8 fShortGI40Mhz;
2009
2010 /*Short GI support for 20Mhz packets*/
2011 tANI_U8 fShortGI20Mhz;
2012
2013 /*Robust Management Frame (RMF) enabled/disabled*/
2014 tANI_U8 rmfEnabled;
2015
2016 /* The unicast encryption type in the association */
2017 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05302018
2019 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07002020 will set this flag in case of RE-ASSOC, where we want to reuse the old
2021 STA ID. 0 = Add, 1 = Update*/
2022 tANI_U8 action;
2023
2024 /*U-APSD Flags: 1b per AC. Encoded as follows:
2025 b7 b6 b5 b4 b3 b2 b1 b0 =
2026 X X X X BE BK VI VO */
2027 tANI_U8 uAPSD;
2028
2029 /*Max SP Length*/
2030 tANI_U8 maxSPLen;
2031
2032 /*11n Green Field preamble support
2033 0 - Not supported, 1 - Supported */
2034 tANI_U8 greenFieldCapable;
2035
2036 /*MIMO Power Save mode*/
2037 tSirMacHTMIMOPowerSaveState mimoPS;
2038
2039 /*Delayed BA Support*/
2040 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05302041
Jeff Johnsone7245742012-09-05 17:12:55 -07002042 /*Max AMPDU duration in 32us*/
2043 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05302044
Jeff Johnsone7245742012-09-05 17:12:55 -07002045 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
2046 it to 0 if AP does not support it. This indication is sent to HAL and
2047 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
2048 tANI_U8 fDsssCckMode40Mhz;
2049
2050 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
2051 Retained for backward compalibity with existing HAL code*/
2052 tANI_U8 staIdx;
2053
2054 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2055 Retained for backward compalibity with existing HAL code*/
2056 tANI_U8 bssIdx;
2057
2058 tANI_U8 p2pCapableSta;
2059
2060 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002061 tANI_U8 htLdpcEnabled:1;
2062 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002063 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302064 tANI_U8 vhtTxMUBformeeCapable:1;
2065 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002066
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002067 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002068 tSirSupportedRates_V1 supportedRates;
2069
2070 tANI_U8 vhtCapable;
2071 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002072
Jeff Johnsone7245742012-09-05 17:12:55 -07002073} tConfigStaParams_V1, *tpConfigStaParams_V1;
2074
Jeff Johnson295189b2012-06-20 16:38:30 -07002075typedef PACKED_PRE struct PACKED_POST
2076{
2077 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002078 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002079 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002080 tConfigStaParams_V1 configStaParams_V1;
2081 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002082} tConfigStaReqMsg, *tpConfigStaReqMsg;
2083
2084/*---------------------------------------------------------------------------
2085 WLAN_HAL_CONFIG_STA_RSP
2086---------------------------------------------------------------------------*/
2087
2088typedef PACKED_PRE struct PACKED_POST
2089{
2090 /*success or failure */
2091 tANI_U32 status;
2092
2093 /* Station index; valid only when 'status' field value SUCCESS */
2094 tANI_U8 staIdx;
2095
2096 /* BSSID Index of BSS to which the station is associated */
2097 tANI_U8 bssIdx;
2098
2099 /* DPU Index for PTK */
2100 tANI_U8 dpuIndex;
2101
Dino Mycle8afbac12014-07-04 22:06:17 +05302102 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002103 tANI_U8 bcastDpuIndex;
2104
2105 /*DPU Index for IGTK */
2106 tANI_U8 bcastMgmtDpuIdx;
2107
2108 /*PTK DPU signature*/
2109 tANI_U8 ucUcastSig;
2110
2111 /*GTK DPU isignature*/
2112 tANI_U8 ucBcastSig;
2113
2114 /* IGTK DPU signature*/
2115 tANI_U8 ucMgmtSig;
2116
2117 tANI_U8 p2pCapableSta;
2118
2119}tConfigStaRspParams, *tpConfigStaRspParams;
2120
2121typedef PACKED_PRE struct PACKED_POST
2122{
2123 tHalMsgHeader header;
2124 tConfigStaRspParams configStaRspParams;
2125}tConfigStaRspMsg, *tpConfigStaRspMsg;
2126
2127/*---------------------------------------------------------------------------
2128 WLAN_HAL_DELETE_STA_REQ
2129---------------------------------------------------------------------------*/
2130
2131/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302132typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002133{
2134 /* Index of STA to delete */
2135 tANI_U8 staIdx;
2136} tDeleteStaParams, *tpDeleteStaParams;
2137
2138/* Delete STA Request message*/
2139typedef PACKED_PRE struct PACKED_POST
2140{
2141 tHalMsgHeader header;
2142 tDeleteStaParams delStaParams;
2143} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2144
2145/*---------------------------------------------------------------------------
2146 WLAN_HAL_DELETE_STA_RSP
2147---------------------------------------------------------------------------*/
2148
2149/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302150typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002151{
2152 /*success or failure */
2153 tANI_U32 status;
2154
2155 /* Index of STA deleted */
2156 tANI_U8 staId;
2157} tDeleteStaRspParams, *tpDeleteStaRspParams;
2158
2159/* Delete STA Response message*/
2160typedef PACKED_PRE struct PACKED_POST
2161{
2162 tHalMsgHeader header;
2163 tDeleteStaRspParams delStaRspParams;
2164} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2165
2166/*---------------------------------------------------------------------------
2167 WLAN_HAL_CONFIG_BSS_REQ
2168---------------------------------------------------------------------------*/
2169
2170//12 Bytes long because this structure can be used to represent rate
2171//and extended rate set IEs. The parser assume this to be at least 12
2172typedef __ani_attr_pre_packed struct sSirMacRateSet
2173{
2174 tANI_U8 numRates;
2175 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2176} __ani_attr_packed tSirMacRateSet;
2177
2178// access category record
2179typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2180{
2181#ifndef ANI_LITTLE_BIT_ENDIAN
2182 tANI_U8 rsvd : 1;
2183 tANI_U8 aci : 2;
2184 tANI_U8 acm : 1;
2185 tANI_U8 aifsn : 4;
2186#else
2187 tANI_U8 aifsn : 4;
2188 tANI_U8 acm : 1;
2189 tANI_U8 aci : 2;
2190 tANI_U8 rsvd : 1;
2191#endif
2192} __ani_attr_packed tSirMacAciAifsn;
2193
2194// contention window size
2195typedef __ani_attr_pre_packed struct sSirMacCW
2196{
2197#ifndef ANI_LITTLE_BIT_ENDIAN
2198 tANI_U8 max : 4;
2199 tANI_U8 min : 4;
2200#else
2201 tANI_U8 min : 4;
2202 tANI_U8 max : 4;
2203#endif
2204} __ani_attr_packed tSirMacCW;
2205
2206typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2207{
2208 tSirMacAciAifsn aci;
2209 tSirMacCW cw;
2210 tANI_U16 txoplimit;
2211} __ani_attr_packed tSirMacEdcaParamRecord;
2212
2213typedef __ani_attr_pre_packed struct sSirMacSSid
2214{
2215 tANI_U8 length;
2216 tANI_U8 ssId[32];
2217} __ani_attr_packed tSirMacSSid;
2218
2219// Concurrency role. These are generic IDs that identify the various roles
2220// in the software system.
2221typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302222 HAL_STA_MODE=0,
2223 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002224 HAL_P2P_CLIENT_MODE,
2225 HAL_P2P_GO_MODE,
2226 HAL_MONITOR_MODE,
2227} tHalConMode;
2228
2229//This is a bit pattern to be set for each mode
2230//bit 0 - sta mode
2231//bit 1 - ap mode
2232//bit 2 - p2p client mode
2233//bit 3 - p2p go mode
2234typedef enum
2235{
Dino Mycle8afbac12014-07-04 22:06:17 +05302236 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002237 HAL_SAP=2,
2238 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2239 HAL_P2P_CLIENT=4,
2240 HAL_P2P_GO=8,
2241 HAL_MAX_CONCURRENCY_PERSONA=4
2242} tHalConcurrencyMode;
2243
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002244// IFACE PERSONA for different Operating modes
2245typedef enum
2246{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002247 HAL_IFACE_UNKNOWN=0,
2248 HAL_IFACE_STA_MODE=1,
2249 HAL_IFACE_P2P_MODE=2,
2250 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002251} tHalIfacePersona;
2252
Jeff Johnson295189b2012-06-20 16:38:30 -07002253typedef PACKED_PRE struct PACKED_POST
2254{
2255 /* BSSID */
2256 tSirMacAddr bssId;
2257
Jeff Johnson295189b2012-06-20 16:38:30 -07002258 /* Self Mac Address */
2259 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002260
2261 /* BSS type */
2262 tSirBssType bssType;
2263
2264 /*Operational Mode: AP =0, STA = 1*/
2265 tANI_U8 operMode;
2266
2267 /*Network Type*/
2268 tSirNwType nwType;
2269
2270 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2271 tANI_U8 shortSlotTimeSupported;
2272
2273 /*Co-exist with 11a STA*/
2274 tANI_U8 llaCoexist;
2275
2276 /*Co-exist with 11b STA*/
2277 tANI_U8 llbCoexist;
2278
2279 /*Co-exist with 11g STA*/
2280 tANI_U8 llgCoexist;
2281
2282 /*Coexistence with 11n STA*/
2283 tANI_U8 ht20Coexist;
2284
2285 /*Non GF coexist flag*/
2286 tANI_U8 llnNonGFCoexist;
2287
2288 /*TXOP protection support*/
2289 tANI_U8 fLsigTXOPProtectionFullSupport;
2290
2291 /*RIFS mode*/
2292 tANI_U8 fRIFSMode;
2293
2294 /*Beacon Interval in TU*/
2295 tSirMacBeaconInterval beaconInterval;
2296
2297 /*DTIM period*/
2298 tANI_U8 dtimPeriod;
2299
2300 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2301 tANI_U8 txChannelWidthSet;
2302
2303 /*Operating channel*/
2304 tANI_U8 currentOperChannel;
2305
2306 /*Extension channel for channel bonding*/
2307 tANI_U8 currentExtChannel;
2308
2309 /*Reserved to align next field on a dword boundary*/
2310 tANI_U8 reserved;
2311
Jeff Johnsone7245742012-09-05 17:12:55 -07002312 /*SSID of the BSS*/
2313 tSirMacSSid ssId;
2314
2315 /*HAL should update the existing BSS entry, if this flag is set.
2316 UMAC will set this flag in case of reassoc, where we want to resue the
2317 the old BSSID and still return success 0 = Add, 1 = Update*/
2318 tANI_U8 action;
2319
2320 /* MAC Rate Set */
2321 tSirMacRateSet rateSet;
2322
2323 /*Enable/Disable HT capabilities of the BSS*/
2324 tANI_U8 htCapable;
2325
2326 // Enable/Disable OBSS protection
2327 tANI_U8 obssProtEnabled;
2328
2329 /*RMF enabled/disabled*/
2330 tANI_U8 rmfEnabled;
2331
2332 /*HT Operating Mode operating mode of the 802.11n STA*/
2333 tSirMacHTOperatingMode htOperMode;
2334
2335 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2336 tANI_U8 dualCTSProtection;
2337
2338 /* Probe Response Max retries */
2339 tANI_U8 ucMaxProbeRespRetryLimit;
2340
2341 /* To Enable Hidden ssid */
2342 tANI_U8 bHiddenSSIDEn;
2343
2344 /* To Enable Disable FW Proxy Probe Resp */
2345 tANI_U8 bProxyProbeRespEn;
2346
2347 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2348 EDCA params or might not desire to apply EDCA params during config BSS.
2349 0 implies Not Valid ; Non-Zero implies valid*/
2350 tANI_U8 edcaParamsValid;
2351
2352 /*EDCA Parameters for Best Effort Access Category*/
2353 tSirMacEdcaParamRecord acbe;
2354
2355 /*EDCA Parameters forBackground Access Category*/
2356 tSirMacEdcaParamRecord acbk;
2357
2358 /*EDCA Parameters for Video Access Category*/
2359 tSirMacEdcaParamRecord acvi;
2360
2361 /*EDCA Parameters for Voice Access Category*/
2362 tSirMacEdcaParamRecord acvo;
2363
2364#ifdef WLAN_FEATURE_VOWIFI_11R
2365 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2366 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2367#endif
2368
2369 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2370 tANI_U8 halPersona;
2371
2372 tANI_U8 bSpectrumMgtEnable;
2373
2374 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2375 tANI_S8 txMgmtPower;
2376 /*maxTxPower has max power to be used after applying the power constraint if any */
2377 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002378 /*Context of the station being added in HW
2379 Add a STA entry for "itself" -
2380 On AP - Add the AP itself in an "STA context"
2381 On STA - Add the AP to which this STA is joining in an "STA context" */
2382 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002383} tConfigBssParams, * tpConfigBssParams;
2384
2385
2386/*--------------------------------------------------------------------------
2387 * WLAN_HAL_CONFIG_BSS_REQ
2388 *--------------------------------------------------------------------------*/
2389typedef PACKED_PRE struct PACKED_POST
2390{
2391 /* BSSID */
2392 tSirMacAddr bssId;
2393
Jeff Johnsone7245742012-09-05 17:12:55 -07002394 /* Self Mac Address */
2395 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002396
2397 /* BSS type */
2398 tSirBssType bssType;
2399
2400 /*Operational Mode: AP =0, STA = 1*/
2401 tANI_U8 operMode;
2402
2403 /*Network Type*/
2404 tSirNwType nwType;
2405
2406 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2407 tANI_U8 shortSlotTimeSupported;
2408
2409 /*Co-exist with 11a STA*/
2410 tANI_U8 llaCoexist;
2411
2412 /*Co-exist with 11b STA*/
2413 tANI_U8 llbCoexist;
2414
2415 /*Co-exist with 11g STA*/
2416 tANI_U8 llgCoexist;
2417
2418 /*Coexistence with 11n STA*/
2419 tANI_U8 ht20Coexist;
2420
2421 /*Non GF coexist flag*/
2422 tANI_U8 llnNonGFCoexist;
2423
2424 /*TXOP protection support*/
2425 tANI_U8 fLsigTXOPProtectionFullSupport;
2426 /*RIFS mode*/
2427 tANI_U8 fRIFSMode;
2428
2429 /*Beacon Interval in TU*/
2430 tSirMacBeaconInterval beaconInterval;
2431
2432 /*DTIM period*/
2433 tANI_U8 dtimPeriod;
2434
2435 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2436 tANI_U8 txChannelWidthSet;
2437
2438 /*Operating channel*/
2439 tANI_U8 currentOperChannel;
2440
2441 /*Extension channel for channel bonding*/
2442 tANI_U8 currentExtChannel;
2443
2444 /*Reserved to align next field on a dword boundary*/
2445 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002446
2447 /*SSID of the BSS*/
2448 tSirMacSSid ssId;
2449
2450 /*HAL should update the existing BSS entry, if this flag is set.
2451 UMAC will set this flag in case of reassoc, where we want to resue the
2452 the old BSSID and still return success 0 = Add, 1 = Update*/
2453 tANI_U8 action;
2454
2455 /* MAC Rate Set */
2456 tSirMacRateSet rateSet;
2457
2458 /*Enable/Disable HT capabilities of the BSS*/
2459 tANI_U8 htCapable;
2460
2461 // Enable/Disable OBSS protection
2462 tANI_U8 obssProtEnabled;
2463
2464 /*RMF enabled/disabled*/
2465 tANI_U8 rmfEnabled;
2466
2467 /*HT Operating Mode operating mode of the 802.11n STA*/
2468 tSirMacHTOperatingMode htOperMode;
2469
2470 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2471 tANI_U8 dualCTSProtection;
2472
2473 /* Probe Response Max retries */
2474 tANI_U8 ucMaxProbeRespRetryLimit;
2475
2476 /* To Enable Hidden ssid */
2477 tANI_U8 bHiddenSSIDEn;
2478
2479 /* To Enable Disable FW Proxy Probe Resp */
2480 tANI_U8 bProxyProbeRespEn;
2481
Dino Mycle8afbac12014-07-04 22:06:17 +05302482 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2483 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002484 0 implies Not Valid ; Non-Zero implies valid*/
2485 tANI_U8 edcaParamsValid;
2486
2487 /*EDCA Parameters for Best Effort Access Category*/
2488 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302489
Jeff Johnson295189b2012-06-20 16:38:30 -07002490 /*EDCA Parameters forBackground Access Category*/
2491 tSirMacEdcaParamRecord acbk;
2492
2493 /*EDCA Parameters for Video Access Category*/
2494 tSirMacEdcaParamRecord acvi;
2495
2496 /*EDCA Parameters for Voice Access Category*/
2497 tSirMacEdcaParamRecord acvo;
2498
2499#ifdef WLAN_FEATURE_VOWIFI_11R
2500 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2501 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2502#endif
2503
Dino Mycle8afbac12014-07-04 22:06:17 +05302504 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002505 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302506
Jeff Johnson295189b2012-06-20 16:38:30 -07002507 tANI_U8 bSpectrumMgtEnable;
2508
2509 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2510 tANI_S8 txMgmtPower;
2511 /*maxTxPower has max power to be used after applying the power constraint if any */
2512 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002513 /*Context of the station being added in HW
2514 Add a STA entry for "itself" -
2515 On AP - Add the AP itself in an "STA context"
2516 On STA - Add the AP to which this STA is joining in an "STA context" */
2517 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302518
Jeff Johnsone7245742012-09-05 17:12:55 -07002519 tANI_U8 vhtCapable;
2520 tANI_U8 vhtTxChannelWidthSet;
2521} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002522
2523typedef PACKED_PRE struct PACKED_POST
2524{
2525 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002526 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002527 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002528 tConfigBssParams_V1 configBssParams_V1;
2529 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002530} tConfigBssReqMsg, *tpConfigBssReqMsg;
2531
2532/*---------------------------------------------------------------------------
2533 WLAN_HAL_CONFIG_BSS_RSP
2534---------------------------------------------------------------------------*/
2535
2536typedef PACKED_PRE struct PACKED_POST
2537{
2538 /* Success or Failure */
2539 tANI_U32 status;
2540
2541 /* BSS index allocated by HAL */
2542 tANI_U8 bssIdx;
2543
2544 /* DPU descriptor index for PTK */
2545 tANI_U8 dpuDescIndx;
2546
2547 /* PTK DPU signature */
2548 tANI_U8 ucastDpuSignature;
2549
2550 /* DPU descriptor index for GTK*/
2551 tANI_U8 bcastDpuDescIndx;
2552
2553 /* GTK DPU signature */
2554 tANI_U8 bcastDpuSignature;
2555
2556 /*DPU descriptor for IGTK*/
2557 tANI_U8 mgmtDpuDescIndx;
2558
2559 /* IGTK DPU signature */
2560 tANI_U8 mgmtDpuSignature;
2561
2562 /* Station Index for BSS entry*/
2563 tANI_U8 bssStaIdx;
2564
2565 /* Self station index for this BSS */
2566 tANI_U8 bssSelfStaIdx;
2567
2568 /* Bcast station for buffering bcast frames in AP role */
2569 tANI_U8 bssBcastStaIdx;
2570
2571 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2572 tSirMacAddr staMac;
2573
2574 /*HAL fills in the tx power used for mgmt frames in this field. */
2575 tANI_S8 txMgmtPower;
2576
2577} tConfigBssRspParams, * tpConfigBssRspParams;
2578
2579typedef PACKED_PRE struct PACKED_POST
2580{
2581 tHalMsgHeader header;
2582 tConfigBssRspParams configBssRspParams;
2583} tConfigBssRspMsg, *tpConfigBssRspMsg;
2584
2585/*---------------------------------------------------------------------------
2586 WLAN_HAL_DELETE_BSS_REQ
2587---------------------------------------------------------------------------*/
2588
2589typedef PACKED_PRE struct PACKED_POST
2590{
2591 /* BSS index to be deleted */
2592 tANI_U8 bssIdx;
2593
2594} tDeleteBssParams, *tpDeleteBssParams;
2595
2596typedef PACKED_PRE struct PACKED_POST
2597{
2598 tHalMsgHeader header;
2599 tDeleteBssParams deleteBssParams;
2600} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2601
2602/*---------------------------------------------------------------------------
2603 WLAN_HAL_DELETE_BSS_RSP
2604---------------------------------------------------------------------------*/
2605
2606typedef PACKED_PRE struct PACKED_POST
2607{
2608 /* Success or Failure */
2609 tANI_U32 status;
2610
2611 /* BSS index that has been deleted */
2612 tANI_U8 bssIdx;
2613
2614} tDeleteBssRspParams, *tpDeleteBssRspParams;
2615
2616typedef PACKED_PRE struct PACKED_POST
2617{
2618 tHalMsgHeader header;
2619 tDeleteBssRspParams deleteBssRspParams;
2620} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2621
2622/*---------------------------------------------------------------------------
2623 WLAN_HAL_JOIN_REQ
2624---------------------------------------------------------------------------*/
2625
2626typedef PACKED_PRE struct PACKED_POST
2627{
2628 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302629 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002630
2631 /*Indicates the channel to switch to.*/
2632 tANI_U8 ucChannel;
2633
2634 /* Self STA MAC */
2635 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302636
Jeff Johnson295189b2012-06-20 16:38:30 -07002637 /*Local power constraint*/
2638 tANI_U8 ucLocalPowerConstraint;
2639
2640 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002641 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002642
2643 /*link State*/
2644 tSirLinkState linkState;
2645
2646 /* Max TX power */
2647 tANI_S8 maxTxPower;
2648
2649} tHalJoinReqParams, *tpHalJoinReqParams;
2650
2651typedef PACKED_PRE struct PACKED_POST
2652{
2653 tHalMsgHeader header;
2654 tHalJoinReqParams joinReqParams;
2655} tHalJoinReqMsg, *tpHalJoinReqMsg;
2656
2657/*---------------------------------------------------------------------------
2658 WLAN_HAL_JOIN_RSP
2659---------------------------------------------------------------------------*/
2660
2661typedef PACKED_PRE struct PACKED_POST
2662{
2663 /*success or failure */
2664 tANI_U32 status;
2665
2666 /* HAL fills in the tx power used for mgmt frames in this field */
2667 tPowerdBm txMgmtPower;
2668
2669}tHalJoinRspParams, *tpHalJoinRspParams;
2670
2671typedef PACKED_PRE struct PACKED_POST
2672{
2673 tHalMsgHeader header;
2674 tHalJoinRspParams joinRspParams;
2675}tHalJoinRspMsg, *tpHalJoinRspMsg;
2676
2677/*---------------------------------------------------------------------------
2678 WLAN_HAL_POST_ASSOC_REQ
2679---------------------------------------------------------------------------*/
2680
2681typedef PACKED_PRE struct PACKED_POST
2682{
2683 tConfigStaParams configStaParams;
2684 tConfigBssParams configBssParams;
2685} tPostAssocReqParams, *tpPostAssocReqParams;
2686
2687typedef PACKED_PRE struct PACKED_POST
2688{
2689 tHalMsgHeader header;
2690 tPostAssocReqParams postAssocReqParams;
2691} tPostAssocReqMsg, *tpPostAssocReqMsg;
2692
2693/*---------------------------------------------------------------------------
2694 WLAN_HAL_POST_ASSOC_RSP
2695---------------------------------------------------------------------------*/
2696
2697typedef PACKED_PRE struct PACKED_POST
2698{
2699 tConfigStaRspParams configStaRspParams;
2700 tConfigBssRspParams configBssRspParams;
2701} tPostAssocRspParams, *tpPostAssocRspParams;
2702
2703typedef PACKED_PRE struct PACKED_POST
2704{
2705 tHalMsgHeader header;
2706 tPostAssocRspParams postAssocRspParams;
2707} tPostAssocRspMsg, *tpPostAssocRspMsg;
2708
2709/*---------------------------------------------------------------------------
2710 WLAN_HAL_SET_BSSKEY_REQ
2711---------------------------------------------------------------------------*/
2712
2713/*
2714 * This is used by PE to create a set of WEP keys for a given BSS.
2715 */
2716typedef PACKED_PRE struct PACKED_POST
2717{
2718 /*BSS Index of the BSS*/
2719 tANI_U8 bssIdx;
2720
2721 /*Encryption Type used with peer*/
2722 tAniEdType encType;
2723
2724 /*Number of keys*/
2725 tANI_U8 numKeys;
2726
2727 /*Array of keys.*/
2728 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302729
Jeff Johnson295189b2012-06-20 16:38:30 -07002730 /*Control for Replay Count, 1= Single TID based replay count on Tx
2731 0 = Per TID based replay count on TX */
2732 tANI_U8 singleTidRc;
2733} tSetBssKeyParams, *tpSetBssKeyParams;
2734
2735typedef PACKED_PRE struct PACKED_POST
2736{
2737 tHalMsgHeader header;
2738 tSetBssKeyParams setBssKeyParams;
2739} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2740
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002741/* tagged version of set bss key */
2742typedef PACKED_PRE struct PACKED_POST
2743{
2744 tSetBssKeyReqMsg Msg;
2745 uint32 Tag;
2746} tSetBssKeyReqMsgTagged;
2747
Jeff Johnson295189b2012-06-20 16:38:30 -07002748/*---------------------------------------------------------------------------
2749 WLAN_HAL_SET_BSSKEY_RSP
2750---------------------------------------------------------------------------*/
2751typedef PACKED_PRE struct PACKED_POST
2752{
2753 /*success or failure */
2754 tANI_U32 status;
2755
2756} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2757
2758typedef PACKED_PRE struct PACKED_POST
2759{
2760 tHalMsgHeader header;
2761 tSetBssKeyRspParams setBssKeyRspParams;
2762} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2763
2764/*---------------------------------------------------------------------------
2765 WLAN_HAL_SET_STAKEY_REQ,
2766---------------------------------------------------------------------------*/
2767
2768/*
2769 * This is used by PE to configure the key information on a given station.
2770 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2771 * a preconfigured key from a BSS the station assoicated with; otherwise
2772 * a new key descriptor is created based on the key field.
2773 */
2774
2775typedef PACKED_PRE struct PACKED_POST
2776{
2777 tHalMsgHeader header;
2778 tSetStaKeyParams setStaKeyParams;
2779} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2780
2781/*---------------------------------------------------------------------------
2782 WLAN_HAL_SET_STAKEY_RSP,
2783---------------------------------------------------------------------------*/
2784typedef PACKED_PRE struct PACKED_POST
2785{
2786 /*success or failure */
2787 tANI_U32 status;
2788
2789} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2790
2791typedef PACKED_PRE struct PACKED_POST
2792{
2793 tHalMsgHeader header;
2794 tSetStaKeyRspParams setStaKeyRspParams;
2795} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2796
2797/*---------------------------------------------------------------------------
2798 WLAN_HAL_RMV_BSSKEY_REQ,
2799---------------------------------------------------------------------------*/
2800/*
2801 * This is used by PE to remove keys for a given BSS.
2802 */
2803typedef PACKED_PRE struct PACKED_POST
2804
2805{
2806 /*BSS Index of the BSS*/
2807 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302808
Jeff Johnson295189b2012-06-20 16:38:30 -07002809 /*Encryption Type used with peer*/
2810 tAniEdType encType;
2811
2812 /*Key Id*/
2813 tANI_U8 keyId;
2814
2815 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2816 tAniWepType wepType;
2817
2818} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2819
2820typedef PACKED_PRE struct PACKED_POST
2821{
2822 tHalMsgHeader header;
2823 tRemoveBssKeyParams removeBssKeyParams;
2824} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2825
2826/*---------------------------------------------------------------------------
2827 WLAN_HAL_RMV_BSSKEY_RSP,
2828---------------------------------------------------------------------------*/
2829typedef PACKED_PRE struct PACKED_POST
2830{
2831 /*success or failure */
2832 tANI_U32 status;
2833
2834} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2835
2836typedef PACKED_PRE struct PACKED_POST
2837{
2838 tHalMsgHeader header;
2839 tRemoveBssKeyRspParams removeBssKeyRspParams;
2840} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2841
2842/*---------------------------------------------------------------------------
2843 WLAN_HAL_RMV_STAKEY_REQ,
2844---------------------------------------------------------------------------*/
2845/*
2846 * This is used by PE to Remove the key information on a given station.
2847 */
2848typedef PACKED_PRE struct PACKED_POST
2849{
2850 /*STA Index*/
2851 tANI_U16 staIdx;
2852
2853 /*Encryption Type used with peer*/
2854 tAniEdType encType;
2855
2856 /*Key Id*/
2857 tANI_U8 keyId;
2858
2859 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2860 the same key is used for both broadcast and unicast.*/
2861 tANI_BOOLEAN unicast;
2862
2863} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2864
2865typedef PACKED_PRE struct PACKED_POST
2866{
2867 tHalMsgHeader header;
2868 tRemoveStaKeyParams removeStaKeyParams;
2869} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2870
2871/*---------------------------------------------------------------------------
2872 WLAN_HAL_RMV_STAKEY_RSP,
2873---------------------------------------------------------------------------*/
2874typedef PACKED_PRE struct PACKED_POST
2875{
2876 /*success or failure */
2877 tANI_U32 status;
2878} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2879
2880typedef PACKED_PRE struct PACKED_POST
2881{
2882 tHalMsgHeader header;
2883 tRemoveStaKeyRspParams removeStaKeyRspParams;
2884} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2885
Jeff Johnsone7245742012-09-05 17:12:55 -07002886#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002887
Jeff Johnsone7245742012-09-05 17:12:55 -07002888#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002889#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002890#endif
2891
2892#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002893#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002894#endif
2895
2896/*-------------------------------------------------------------------------
2897WLAN_HAL_START_OEM_DATA_REQ
2898--------------------------------------------------------------------------*/
2899typedef PACKED_PRE struct PACKED_POST
2900{
2901 tANI_U32 status;
2902 tSirMacAddr selfMacAddr;
2903 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2904} tStartOemDataReqParams, *tpStartOemDataReqParams;
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 tHalMsgHeader header;
2909 tStartOemDataReqParams startOemDataReqParams;
2910} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2911
2912/*-------------------------------------------------------------------------
2913WLAN_HAL_START_OEM_DATA_RSP
2914--------------------------------------------------------------------------*/
2915
2916typedef PACKED_PRE struct PACKED_POST
2917{
2918 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2919} tStartOemDataRspParams, *tpStartOemDataRspParams;
2920
2921typedef PACKED_PRE struct PACKED_POST
2922{
2923 tHalMsgHeader header;
2924 tStartOemDataRspParams startOemDataRspParams;
2925} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2926
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302927#ifndef NEW_OEM_DATA_REQ_SIZE
2928#define NEW_OEM_DATA_REQ_SIZE 292
2929#endif
2930
2931#ifndef NEW_OEM_DATA_RSP_SIZE
2932#define NEW_OEM_DATA_RSP_SIZE 2100
2933#endif
2934
2935/*-------------------------------------------------------------------------
2936WLAN_HAL_START_OEM_DATA_REQ_IND_NEW------------------------------------
2937--------------------------------------------------------------------------*/
2938typedef PACKED_PRE struct PACKED_POST
2939{
Padma, Santhosh Kumarb7f449f2016-01-11 18:55:44 +05302940 tSirMacAddr selfMacAddr;
2941 tANI_U8 reserved[2];
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302942 tANI_U8 oemDataReq[NEW_OEM_DATA_REQ_SIZE];
2943} tStartOemDataReqParamsNew, *tpStartOemDataReqParamsNew;
2944
2945typedef PACKED_PRE struct PACKED_POST
2946{
2947 tHalMsgHeader header;
2948 tStartOemDataReqParamsNew startOemDataReqParams;
2949} tStartOemDataReqMsgNew, *tpStartOemDataReqMsgNew;
2950
2951/*-------------------------------------------------------------------------
2952WLAN_HAL_START_OEM_DATA_RSP_IND_NEW------------------------------------
2953--------------------------------------------------------------------------*/
2954typedef PACKED_PRE struct PACKED_POST
2955{
2956 tANI_U8 oemDataRsp[NEW_OEM_DATA_RSP_SIZE];
2957} tStartOemDataRspParamsNew, *tpStartOemDataRspParamsNew;
2958
2959typedef PACKED_PRE struct PACKED_POST
2960{
2961 tHalMsgHeader header;
2962 tStartOemDataRspParamsNew startOemDataReqParams;
2963} tStartOemDataRspMsgNew, *tpStartOemDataRspMsgNew;
2964
Jeff Johnsone7245742012-09-05 17:12:55 -07002965#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002966
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002967/*---------------------------------------------------------------------------
2968WLAN_HAL_CH_SWITCH_V1_REQ
2969---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002970
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002971typedef PACKED_PRE struct PACKED_POST
2972{
2973 /* Channel number */
2974 tANI_U8 channelNumber;
2975
2976 /* Local power constraint */
2977 tANI_U8 localPowerConstraint;
2978
2979 /*Secondary channel offset */
2980 ePhyChanBondState secondaryChannelOffset;
2981
2982 //HAL fills in the tx power used for mgmt frames in this field.
2983 tPowerdBm txMgmtPower;
2984
2985 /* Max TX power */
2986 tPowerdBm maxTxPower;
2987
2988 /* Self STA MAC */
2989 tSirMacAddr selfStaMacAddr;
2990
2991 /*VO WIFI comment: BSSID needed to identify session. As the request has
2992 * power constraints, this should be applied only to that session
2993 * Since MTU timing and EDCA are sessionized, this struct needs to be
2994 * sessionized and bssid needs to be out of the VOWifi feature flag
2995 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002996 * mantain backward compatbility
2997 * by way of ignoring if using new host/old FW or old host/new FW since
2998 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002999 */
3000 tSirMacAddr bssId;
3001
3002 /* Source of Channel Switch */
3003 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07003004
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003005} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
3006
3007typedef PACKED_PRE struct PACKED_POST
3008{
3009 tHalMsgHeader header;
3010 tSwitchChannelParams_V1 switchChannelParams_V1;
3011} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
3012
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08003013/*---------------------------------------------------------------------------
3014WLAN_HAL_CH_SWITCH_V1_RSP
3015---------------------------------------------------------------------------*/
3016
3017typedef PACKED_PRE struct PACKED_POST
3018{
3019 /* Status */
3020 tANI_U32 status;
3021
3022 /* Channel number - same as in request*/
3023 tANI_U8 channelNumber;
3024
3025 /* HAL fills in the tx power used for mgmt frames in this field */
3026 tPowerdBm txMgmtPower;
3027
3028 /* BSSID needed to identify session - same as in request*/
3029 tSirMacAddr bssId;
3030
3031 /* Source of Channel Switch */
3032 eHalChanSwitchSource channelSwitchSrc;
3033
3034} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
3035
3036typedef PACKED_PRE struct PACKED_POST
3037{
3038 tHalMsgHeader header;
3039 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
3040} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07003041
3042/*---------------------------------------------------------------------------
3043WLAN_HAL_CH_SWITCH_REQ
3044---------------------------------------------------------------------------*/
3045
3046typedef PACKED_PRE struct PACKED_POST
3047{
3048 /* Channel number */
3049 tANI_U8 channelNumber;
3050
3051 /* Local power constraint */
3052 tANI_U8 localPowerConstraint;
3053
3054 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07003055 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003056
3057 //HAL fills in the tx power used for mgmt frames in this field.
3058 tPowerdBm txMgmtPower;
3059
3060 /* Max TX power */
3061 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05303062
Jeff Johnson295189b2012-06-20 16:38:30 -07003063 /* Self STA MAC */
3064 tSirMacAddr selfStaMacAddr;
3065
3066 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
3067 this should be applied only to that session*/
3068 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
3069 * bssid needs to be out of the VOWifi feature flag */
3070 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
3071 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
3072 */
3073 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303074
Jeff Johnson295189b2012-06-20 16:38:30 -07003075}tSwitchChannelParams, *tpSwitchChannelParams;
3076
3077typedef PACKED_PRE struct PACKED_POST
3078{
3079 tHalMsgHeader header;
3080 tSwitchChannelParams switchChannelParams;
3081} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
3082
3083/*---------------------------------------------------------------------------
3084WLAN_HAL_CH_SWITCH_RSP
3085---------------------------------------------------------------------------*/
3086
3087typedef PACKED_PRE struct PACKED_POST
3088{
3089 /* Status */
3090 tANI_U32 status;
3091
3092 /* Channel number - same as in request*/
3093 tANI_U8 channelNumber;
3094
3095 /* HAL fills in the tx power used for mgmt frames in this field */
3096 tPowerdBm txMgmtPower;
3097
3098 /* BSSID needed to identify session - same as in request*/
3099 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303100
Jeff Johnson295189b2012-06-20 16:38:30 -07003101}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3102
3103typedef PACKED_PRE struct PACKED_POST
3104{
3105 tHalMsgHeader header;
3106 tSwitchChannelRspParams switchChannelRspParams;
3107} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3108
3109/*---------------------------------------------------------------------------
3110WLAN_HAL_UPD_EDCA_PARAMS_REQ
3111---------------------------------------------------------------------------*/
3112
3113typedef PACKED_PRE struct PACKED_POST
3114{
3115 /*BSS Index*/
3116 tANI_U16 bssIdx;
3117
3118 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303119 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003120
3121 /* Background */
3122 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303123
Jeff Johnson295189b2012-06-20 16:38:30 -07003124 /* Video */
3125 tSirMacEdcaParamRecord acvi;
3126
3127 /* Voice */
3128 tSirMacEdcaParamRecord acvo;
3129
3130} tEdcaParams, *tpEdcaParams;
3131
3132typedef PACKED_PRE struct PACKED_POST
3133{
3134 tHalMsgHeader header;
3135 tEdcaParams edcaParams;
3136} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3137
3138/*---------------------------------------------------------------------------
3139WLAN_HAL_UPD_EDCA_PARAMS_RSP
3140---------------------------------------------------------------------------*/
3141typedef PACKED_PRE struct PACKED_POST
3142{
3143 /*success or failure */
3144 tANI_U32 status;
3145} tEdcaRspParams, *tpEdcaRspParams;
3146
3147typedef PACKED_PRE struct PACKED_POST
3148{
3149 tHalMsgHeader header;
3150 tEdcaRspParams edcaRspParams;
3151} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3152
3153
3154
3155/*---------------------------------------------------------------------------
3156 * WLAN_HAL_GET_STATS_REQ
3157 *--------------------------------------------------------------------------*/
3158typedef PACKED_PRE struct PACKED_POST
3159
3160{
3161 /* Index of STA to which the statistics */
3162 tANI_U16 staIdx;
3163
3164 /* Encryption mode */
3165 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303166
Jeff Johnson295189b2012-06-20 16:38:30 -07003167 /* status */
3168 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303169
Jeff Johnson295189b2012-06-20 16:38:30 -07003170 /* Statistics */
3171 tANI_U32 sendBlocks;
3172 tANI_U32 recvBlocks;
3173 tANI_U32 replays;
3174 tANI_U8 micErrorCnt;
3175 tANI_U32 protExclCnt;
3176 tANI_U16 formatErrCnt;
3177 tANI_U16 unDecryptableCnt;
3178 tANI_U32 decryptErrCnt;
3179 tANI_U32 decryptOkCnt;
3180} tDpuStatsParams, * tpDpuStatsParams;
3181
3182typedef PACKED_PRE struct PACKED_POST
3183{
3184 /* Valid STA Idx for per STA stats request */
3185 tANI_U32 staId;
3186
3187 /* Categories of stats requested as specified in eHalStatsMask*/
3188 tANI_U32 statsMask;
3189}tHalStatsReqParams, *tpHalStatsReqParams;
3190
3191typedef PACKED_PRE struct PACKED_POST
3192{
3193 tHalMsgHeader header;
3194 tHalStatsReqParams statsReqParams;
3195} tHalStatsReqMsg, *tpHalStatsReqMsg;
3196
3197/*---------------------------------------------------------------------------
3198 * WLAN_HAL_GET_STATS_RSP
3199 *--------------------------------------------------------------------------*/
3200
3201typedef PACKED_PRE struct PACKED_POST
3202{
3203 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3204 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3205 // station successfully transmitted after more than one retransmission attempt
3206
Dino Mycle8afbac12014-07-04 22:06:17 +05303207 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3208 //(with and without retries, including multi-cast, broadcast)
3209 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3210 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003211 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3212 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3213 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3214 tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
Dino Mycle8afbac12014-07-04 22:06:17 +05303215 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3216 tANI_U32 rx_discard_cnt; //The sum of the receive error count and dropped-receive-buffer error count.
Jeff Johnson295189b2012-06-20 16:38:30 -07003217 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3218 tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303219 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3220 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003221 //to provide this.
3222}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3223
3224
3225// defines tx_rate_flags
3226typedef enum eTxRateInfo
3227{
3228 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3229 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3230 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3231 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003232 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3233 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3234 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3235 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3236 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3237 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3238} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003239
3240
3241typedef PACKED_PRE struct PACKED_POST
3242{
Dino Mycle8afbac12014-07-04 22:06:17 +05303243 tANI_U32 rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
Jeff Johnson295189b2012-06-20 16:38:30 -07003244 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303245 tANI_U32 promiscuous_rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
Jeff Johnson295189b2012-06-20 16:38:30 -07003246 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303247 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3248 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003249 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303250 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3251 //for eg: if it is 10.5dBm, the value would be 105
3252 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3253 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003254
Dino Mycle8afbac12014-07-04 22:06:17 +05303255 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3256 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003257 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303258 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3259 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003260}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3261
3262typedef PACKED_PRE struct PACKED_POST
3263{
Dino Mycle8afbac12014-07-04 22:06:17 +05303264 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3265 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003266 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303267 tANI_U32 rx_mic_fail_cnt; //The number of received MSDU packets that that the 802.11 station discarded
Jeff Johnson295189b2012-06-20 16:38:30 -07003268 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303269 tANI_U32 tkip_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
Jeff Johnson295189b2012-06-20 16:38:30 -07003270 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303271 tANI_U32 aes_ccmp_format_err; //The number of received MPDU frames that the 802.11 discarded because of an
Jeff Johnson295189b2012-06-20 16:38:30 -07003272 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303273 tANI_U32 aes_ccmp_replay_cnt; //The number of received MPDU frames that the 802.11 station discarded because of
Jeff Johnson295189b2012-06-20 16:38:30 -07003274 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303275 tANI_U32 aes_ccmp_decrpt_err; //The number of received MPDU frames that the 802.11 station discarded because of
Jeff Johnson295189b2012-06-20 16:38:30 -07003276 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303277 tANI_U32 wep_undecryptable_cnt; //The number of encrypted MPDU frames received for which a WEP decryption key was
Jeff Johnson295189b2012-06-20 16:38:30 -07003278 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303279 tANI_U32 wep_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
Jeff Johnson295189b2012-06-20 16:38:30 -07003280 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303281 tANI_U32 rx_decrypt_succ_cnt; //The number of received encrypted packets that the 802.11 station successfully
Jeff Johnson295189b2012-06-20 16:38:30 -07003282 //decrypted
3283 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3284
3285}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303286
Jeff Johnson295189b2012-06-20 16:38:30 -07003287typedef PACKED_PRE struct PACKED_POST
3288{
3289 tAniGlobalSecurityStats ucStats;
3290 tAniGlobalSecurityStats mcbcStats;
3291}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3292
3293typedef PACKED_PRE struct PACKED_POST
3294{
Dino Mycle8afbac12014-07-04 22:06:17 +05303295 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3296 //MAC address in the address 1 field or an A-MSDU frame with a group address in the
Jeff Johnson295189b2012-06-20 16:38:30 -07003297 //address 1 field
3298 tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
Dino Mycle8afbac12014-07-04 22:06:17 +05303299 tANI_U32 tx_20_frm_cnt; //This counter shall be incremented when a Frame is transmitted only on the
Jeff Johnson295189b2012-06-20 16:38:30 -07003300 //primary channel
3301 tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
Dino Mycle8afbac12014-07-04 22:06:17 +05303302 tANI_U32 rx_mpdu_in_ampdu_cnt; //This counter shall be incremented by the number of MPDUs received in the A-MPDU
Jeff Johnson295189b2012-06-20 16:38:30 -07003303 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303304 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3305 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003306 //decoded correctly
3307}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3308
3309typedef PACKED_PRE struct PACKED_POST
3310{
Dino Mycle8afbac12014-07-04 22:06:17 +05303311 tANI_U32 tx_frag_cnt[4]; //The number of MPDU frames that the 802.11 station transmitted and acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07003312 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303313 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3314 tANI_U32 tx_mpdu_in_ampdu_cnt; //This counter shall increment by the number of MPDUs in the AMPDU when an A-MPDU
Jeff Johnson295189b2012-06-20 16:38:30 -07003315 //is transmitted
3316}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3317
Sushant Kaushik33200572015-08-05 16:46:20 +05303318// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3319typedef PACKED_PRE struct PACKED_POST
3320{
3321 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303322 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303323 tANI_U32 reserved;
3324 tANI_U32 reserved1;
3325}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3326
Jeff Johnson295189b2012-06-20 16:38:30 -07003327typedef PACKED_PRE struct PACKED_POST
3328{
3329 /* Success or Failure */
3330 tANI_U32 status;
3331
3332 /* STA Idx */
3333 tANI_U32 staId;
3334
3335 /* Categories of STATS being returned as per eHalStatsMask*/
3336 tANI_U32 statsMask;
3337
3338 /* message type is same as the request type */
3339 tANI_U16 msgType;
3340
3341 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303342 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003343
3344} tHalStatsRspParams, *tpHalStatsRspParams;
3345
3346
3347
3348typedef PACKED_PRE struct PACKED_POST
3349{
3350 tHalMsgHeader header;
3351 tHalStatsRspParams statsRspParams;
3352} tHalStatsRspMsg, *tpHalStatsRspMsg;
3353
Abhishek Singhbc310882015-05-22 15:17:02 +05303354 /*---------------------------------------------------------------------------
3355 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3356 *---------------------------------------------------------------------------*/
3357typedef PACKED_PRE struct PACKED_POST
3358{
3359 tANI_U32 rtsCtsValue;
3360}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3361
3362typedef PACKED_PRE struct PACKED_POST
3363{
3364 tHalMsgHeader header;
3365 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3366} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3367
Jeff Johnson295189b2012-06-20 16:38:30 -07003368/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303369 * WLAN_HAL_FW_STATS_REQ
3370 *---------------------------------------------------------------------------*/
3371 typedef PACKED_PRE struct PACKED_POST
3372{
3373 tANI_U32 type;
3374}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3375
3376typedef PACKED_PRE struct PACKED_POST
3377{
3378 tHalMsgHeader header;
3379 tHalfwStatsReqParams fwstatsReqParams;
3380} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3381
3382/*---------------------------------------------------------------------------
3383 * WLAN_HAL_FW_STATS_RSP
3384 *---------------------------------------------------------------------------*/
3385 typedef PACKED_PRE struct PACKED_POST
3386{
3387 tANI_U32 type;
3388 tANI_U32 length;
3389 tANI_U8 data[1];
3390
3391}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3392
3393typedef PACKED_PRE struct PACKED_POST
3394{
3395 tHalMsgHeader header;
3396 tHalfwStatsRspParams fwstatsRspParams;
3397} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3398
3399typedef enum
3400{
3401 FW_UBSP_STATS = 1,
3402} fwstatstype;
3403
3404
3405/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003406 * WLAN_HAL_SET_LINK_ST_REQ
3407 *--------------------------------------------------------------------------*/
3408typedef PACKED_PRE struct PACKED_POST
3409{
3410 tSirMacAddr bssid;
3411 tSirLinkState state;
3412 tSirMacAddr selfMacAddr;
3413} tLinkStateParams, *tpLinkStateParams;
3414
3415typedef PACKED_PRE struct PACKED_POST
3416{
3417 tHalMsgHeader header;
3418 tLinkStateParams linkStateParams;
3419} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3420
3421/*---------------------------------------------------------------------------
3422 * WLAN_HAL_SET_LINK_ST_RSP
3423 *--------------------------------------------------------------------------*/
3424
3425typedef PACKED_PRE struct PACKED_POST
3426{
3427 /*success or failure */
3428 tANI_U32 status;
3429} tLinkStateRspParams, *tpLinkStateRspParams;
3430
3431typedef PACKED_PRE struct PACKED_POST
3432{
3433 tHalMsgHeader header;
3434 tLinkStateRspParams linkStateRspParams;
3435} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3436
3437/*---------------------------------------------------------------------------
3438 * WLAN_HAL_ADD_TS_REQ
3439 *--------------------------------------------------------------------------*/
3440
3441/* TSPEC Params */
3442typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3443{
Jeff Johnson295189b2012-06-20 16:38:30 -07003444 tANI_U16 trafficType : 1;
3445 tANI_U16 tsid : 4;
3446 tANI_U16 direction : 2;
3447 tANI_U16 accessPolicy : 2;
3448 tANI_U16 aggregation : 1;
3449 tANI_U16 psb : 1;
3450 tANI_U16 userPrio : 3;
3451 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003452} __ani_attr_packed tSirMacTSInfoTfc;
3453
3454/* Flag to schedule the traffic type */
3455typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3456{
Jeff Johnson295189b2012-06-20 16:38:30 -07003457 tANI_U8 schedule : 1;
3458 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003459} __ani_attr_packed tSirMacTSInfoSch;
3460
3461/* Traffic and scheduling info */
3462typedef __ani_attr_pre_packed struct sSirMacTSInfo
3463{
3464 tSirMacTSInfoTfc traffic;
3465 tSirMacTSInfoSch schedule;
3466} __ani_attr_packed tSirMacTSInfo;
3467
3468/* Information elements */
3469typedef __ani_attr_pre_packed struct sSirMacTspecIE
3470{
3471 tANI_U8 type;
3472 tANI_U8 length;
3473 tSirMacTSInfo tsinfo;
3474 tANI_U16 nomMsduSz;
3475 tANI_U16 maxMsduSz;
3476 tANI_U32 minSvcInterval;
3477 tANI_U32 maxSvcInterval;
3478 tANI_U32 inactInterval;
3479 tANI_U32 suspendInterval;
3480 tANI_U32 svcStartTime;
3481 tANI_U32 minDataRate;
3482 tANI_U32 meanDataRate;
3483 tANI_U32 peakDataRate;
3484 tANI_U32 maxBurstSz;
3485 tANI_U32 delayBound;
3486 tANI_U32 minPhyRate;
3487 tANI_U16 surplusBw;
3488 tANI_U16 mediumTime;
3489}__ani_attr_packed tSirMacTspecIE;
3490
3491typedef PACKED_PRE struct PACKED_POST
3492{
3493 /* Station Index */
3494 tANI_U16 staIdx;
3495
3496 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3497 tANI_U16 tspecIdx;
3498
3499 /* To program TPE with required parameters */
3500 tSirMacTspecIE tspec;
3501
3502 /* U-APSD Flags: 1b per AC. Encoded as follows:
3503 b7 b6 b5 b4 b3 b2 b1 b0 =
3504 X X X X BE BK VI VO */
3505 tANI_U8 uAPSD;
3506
3507 /* These parameters are for all the access categories */
3508 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3509 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3510 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303511
Jeff Johnson295189b2012-06-20 16:38:30 -07003512} tAddTsParams, *tpAddTsParams;
3513
3514typedef PACKED_PRE struct PACKED_POST
3515{
3516 tHalMsgHeader header;
3517 tAddTsParams addTsParams;
3518} tAddTsReqMsg, *tpAddTsReqMsg;
3519
3520/*---------------------------------------------------------------------------
3521 * WLAN_HAL_ADD_TS_RSP
3522 *--------------------------------------------------------------------------*/
3523
3524typedef PACKED_PRE struct PACKED_POST
3525{
3526 /*success or failure */
3527 tANI_U32 status;
3528} tAddTsRspParams, *tpAddTsRspParams;
3529
3530typedef PACKED_PRE struct PACKED_POST
3531{
3532 tHalMsgHeader header;
3533 tAddTsRspParams addTsRspParams;
3534} tAddTsRspMsg, *tpAddTsRspMsg;
3535
3536
3537/*---------------------------------------------------------------------------
3538 * WLAN_HAL_DEL_TS_REQ
3539 *--------------------------------------------------------------------------*/
3540
3541typedef PACKED_PRE struct PACKED_POST
3542{
3543 /* Station Index */
3544 tANI_U16 staIdx;
3545
3546 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3547 tANI_U16 tspecIdx;
3548
3549 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303550 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003551
3552} tDelTsParams, *tpDelTsParams;
3553
3554typedef PACKED_PRE struct PACKED_POST
3555{
3556 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303557 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003558} tDelTsReqMsg, *tpDelTsReqMsg;
3559
3560/*---------------------------------------------------------------------------
3561 * WLAN_HAL_DEL_TS_RSP
3562 *--------------------------------------------------------------------------*/
3563
3564typedef PACKED_PRE struct PACKED_POST
3565{
3566 /*success or failure */
3567 tANI_U32 status;
3568} tDelTsRspParams, *tpDelTsRspParams;
3569
3570typedef PACKED_PRE struct PACKED_POST
3571{
3572 tHalMsgHeader header;
3573 tDelTsRspParams delTsRspParams;
3574} tDelTsRspMsg, *tpDelTsRspMsg;
3575
3576/* End of TSpec Parameters */
3577
3578/* Start of BLOCK ACK related Parameters */
3579
3580/*---------------------------------------------------------------------------
3581 * WLAN_HAL_ADD_BA_SESSION_REQ
3582 *--------------------------------------------------------------------------*/
3583
3584typedef PACKED_PRE struct PACKED_POST
3585{
3586 /* Station Index */
3587 tANI_U16 staIdx;
3588
3589 /* Peer MAC Address */
3590 tSirMacAddr peerMacAddr;
3591
3592 /* ADDBA Action Frame dialog token
3593 HAL will not interpret this object */
3594 tANI_U8 baDialogToken;
3595
3596 /* TID for which the BA is being setup
3597 This identifies the TC or TS of interest */
3598 tANI_U8 baTID;
3599
3600 /* 0 - Delayed BA (Not supported)
3601 1 - Immediate BA */
3602 tANI_U8 baPolicy;
3603
3604 /* Indicates the number of buffers for this TID (baTID)
3605 NOTE - This is the requested buffer size. When this
3606 is processed by HAL and subsequently by HDD, it is
3607 possible that HDD may change this buffer size. Any
3608 change in the buffer size should be noted by PE and
3609 advertized appropriately in the ADDBA response */
3610 tANI_U16 baBufferSize;
3611
3612 /* BA timeout in TU's 0 means no timeout will occur */
3613 tANI_U16 baTimeout;
3614
3615 /* b0..b3 - Fragment Number - Always set to 0
3616 b4..b15 - Starting Sequence Number of first MSDU
3617 for which this BA is setup */
3618 tANI_U16 baSSN;
3619
3620 /* ADDBA direction
3621 1 - Originator
3622 0 - Recipient */
3623 tANI_U8 baDirection;
3624} tAddBASessionParams, *tpAddBASessionParams;
3625
3626typedef PACKED_PRE struct PACKED_POST
3627{
3628 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303629 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003630}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3631
3632/*---------------------------------------------------------------------------
3633 * WLAN_HAL_ADD_BA_SESSION_RSP
3634 *--------------------------------------------------------------------------*/
3635
3636typedef PACKED_PRE struct PACKED_POST
3637{
3638 /*success or failure */
3639 tANI_U32 status;
3640
3641 /* Dialog token */
3642 tANI_U8 baDialogToken;
3643
3644 /* TID for which the BA session has been setup */
3645 tANI_U8 baTID;
3646
3647 /* BA Buffer Size allocated for the current BA session */
3648 tANI_U8 baBufferSize;
3649
3650 tANI_U8 baSessionID;
3651
3652 /* Reordering Window buffer */
3653 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303654
Jeff Johnson295189b2012-06-20 16:38:30 -07003655 /*Station Index to id the sta */
3656 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303657
Jeff Johnson295189b2012-06-20 16:38:30 -07003658 /* Starting Sequence Number */
3659 tANI_U16 SSN;
3660} tAddBASessionRspParams, *tpAddBASessionRspParams;
3661
3662typedef PACKED_PRE struct PACKED_POST
3663{
3664 tHalMsgHeader header;
3665 tAddBASessionRspParams addBASessionRspParams;
3666} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3667
3668/*---------------------------------------------------------------------------
3669 * WLAN_HAL_ADD_BA_REQ
3670 *--------------------------------------------------------------------------*/
3671
3672typedef PACKED_PRE struct PACKED_POST
3673{
3674 /* Session Id */
3675 tANI_U8 baSessionID;
3676
3677 /* Reorder Window Size */
3678 tANI_U8 winSize;
3679
3680#ifdef FEATURE_ON_CHIP_REORDERING
3681 tANI_BOOLEAN isReorderingDoneOnChip;
3682#endif
3683} tAddBAParams, *tpAddBAParams;
3684
3685typedef PACKED_PRE struct PACKED_POST
3686{
3687 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303688 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003689} tAddBAReqMsg, *tpAddBAReqMsg;
3690
3691
3692/*---------------------------------------------------------------------------
3693 * WLAN_HAL_ADD_BA_RSP
3694 *--------------------------------------------------------------------------*/
3695
3696typedef PACKED_PRE struct PACKED_POST
3697{
3698 /*success or failure */
3699 tANI_U32 status;
3700
3701 /* Dialog token */
3702 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303703
Jeff Johnson295189b2012-06-20 16:38:30 -07003704} tAddBARspParams, *tpAddBARspParams;
3705
3706typedef PACKED_PRE struct PACKED_POST
3707{
3708 tHalMsgHeader header;
3709 tAddBARspParams addBARspParams;
3710} tAddBARspMsg, *tpAddBARspMsg;
3711
3712
3713/*---------------------------------------------------------------------------
3714 * WLAN_HAL_TRIGGER_BA_REQ
3715 *--------------------------------------------------------------------------*/
3716
3717
3718typedef struct sAddBaInfo
3719{
3720 tANI_U16 fBaEnable : 1;
3721 tANI_U16 startingSeqNum: 12;
3722 tANI_U16 reserved : 3;
3723}tAddBaInfo, *tpAddBaInfo;
3724
3725typedef struct sTriggerBaRspCandidate
3726{
3727 tSirMacAddr staAddr;
3728 tAddBaInfo baInfo[STACFG_MAX_TC];
3729}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3730
3731typedef struct sTriggerBaCandidate
3732{
3733 tANI_U8 staIdx;
3734 tANI_U8 tidBitmap;
3735}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3736
3737typedef PACKED_PRE struct PACKED_POST
3738{
3739 /* Session Id */
3740 tANI_U8 baSessionID;
3741
Dino Mycle8afbac12014-07-04 22:06:17 +05303742 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003743 * Candidate List(tTriggerBaCandidate)
3744 */
3745 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303746
Jeff Johnson295189b2012-06-20 16:38:30 -07003747} tTriggerBAParams, *tpTriggerBAParams;
3748
3749typedef PACKED_PRE struct PACKED_POST
3750{
3751 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303752 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003753} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3754
3755
3756/*---------------------------------------------------------------------------
3757 * WLAN_HAL_TRIGGER_BA_RSP
3758 *--------------------------------------------------------------------------*/
3759
3760typedef PACKED_PRE struct PACKED_POST
3761{
Dino Mycle8afbac12014-07-04 22:06:17 +05303762
Jeff Johnson295189b2012-06-20 16:38:30 -07003763 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303764 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003765
3766 /* success or failure */
3767 tANI_U32 status;
3768
Dino Mycle8afbac12014-07-04 22:06:17 +05303769 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003770 * Rsp Candidate List(tTriggerRspBaCandidate)
3771 */
3772 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303773
Jeff Johnson295189b2012-06-20 16:38:30 -07003774
3775} tTriggerBARspParams, *tpTriggerBARspParams;
3776
3777typedef PACKED_PRE struct PACKED_POST
3778{
3779 tHalMsgHeader header;
3780 tTriggerBARspParams triggerBARspParams;
3781} tTriggerBARspMsg, *tpTriggerBARspMsg;
3782
3783/*---------------------------------------------------------------------------
3784 * WLAN_HAL_DEL_BA_REQ
3785 *--------------------------------------------------------------------------*/
3786
3787typedef PACKED_PRE struct PACKED_POST
3788{
3789 /* Station Index */
3790 tANI_U16 staIdx;
3791
3792 /* TID for which the BA session is being deleted */
3793 tANI_U8 baTID;
3794
3795 /* DELBA direction
3796 1 - Originator
3797 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303798 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003799} tDelBAParams, *tpDelBAParams;
3800
3801typedef PACKED_PRE struct PACKED_POST
3802{
3803 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303804 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003805} tDelBAReqMsg, *tpDelBAReqMsg;
3806
3807/*---------------------------------------------------------------------------
3808 * WLAN_HAL_DEL_BA_RSP
3809 *--------------------------------------------------------------------------*/
3810
3811typedef PACKED_PRE struct PACKED_POST
3812{
3813 /* success or failure */
3814 tANI_U32 status;
3815} tDelBARspParams, *tpDelBARspParams;
3816
3817typedef PACKED_PRE struct PACKED_POST
3818{
3819 tHalMsgHeader header;
3820 tDelBARspParams delBARspParams;
3821} tDelBARspMsg, *tpDelBARspMsg;
3822
3823
Jeff Johnson295189b2012-06-20 16:38:30 -07003824/*---------------------------------------------------------------------------
3825 * WLAN_HAL_TSM_STATS_REQ
3826 *--------------------------------------------------------------------------*/
3827typedef PACKED_PRE struct PACKED_POST
3828{
3829 /* Traffic Id */
3830 tANI_U8 tsmTID;
3831
3832 tSirMacAddr bssId;
3833} tTsmStatsParams, *tpTsmStatsParams;
3834
3835typedef PACKED_PRE struct PACKED_POST
3836{
3837 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303838 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003839} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3840
3841
3842/*---------------------------------------------------------------------------
3843 * WLAN_HAL_TSM_STATS_RSP
3844 *--------------------------------------------------------------------------*/
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 /*success or failure */
3848 tANI_U32 status;
3849
Dino Mycle8afbac12014-07-04 22:06:17 +05303850 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003851 tANI_U16 UplinkPktQueueDly;
3852
Dino Mycle8afbac12014-07-04 22:06:17 +05303853 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003854 tANI_U16 UplinkPktQueueDlyHist[4];
3855
Dino Mycle8afbac12014-07-04 22:06:17 +05303856 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003857 tANI_U32 UplinkPktTxDly;
3858
Dino Mycle8afbac12014-07-04 22:06:17 +05303859 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003860 tANI_U16 UplinkPktLoss;
3861
Dino Mycle8afbac12014-07-04 22:06:17 +05303862 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003863 tANI_U16 UplinkPktCount;
3864
Dino Mycle8afbac12014-07-04 22:06:17 +05303865 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003866 tANI_U8 RoamingCount;
3867
Dino Mycle8afbac12014-07-04 22:06:17 +05303868 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003869 tANI_U16 RoamingDly;
3870} tTsmStatsRspParams, *tpTsmStatsRspParams;
3871
3872typedef PACKED_PRE struct PACKED_POST
3873{
3874 tHalMsgHeader header;
3875 tTsmStatsRspParams tsmStatsRspParams;
3876} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3877
3878
Jeff Johnson295189b2012-06-20 16:38:30 -07003879/*---------------------------------------------------------------------------
3880 * WLAN_HAL_SET_KEYDONE_MSG
3881 *--------------------------------------------------------------------------*/
3882
3883typedef PACKED_PRE struct PACKED_POST
3884{
3885 /*bssid of the keys */
3886 tANI_U8 bssidx;
3887 tANI_U8 encType;
3888} tSetKeyDoneParams, *tpSetKeyDoneParams;
3889
3890typedef PACKED_PRE struct PACKED_POST
3891{
3892 tHalMsgHeader header;
3893 tSetKeyDoneParams setKeyDoneParams;
3894} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3895
3896/*---------------------------------------------------------------------------
3897 * WLAN_HAL_DOWNLOAD_NV_REQ
3898 *--------------------------------------------------------------------------*/
3899typedef PACKED_PRE struct PACKED_POST
3900{
3901 /* Fragment sequence number of the NV Image. Note that NV Image might not
3902 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303903 * can hence choose to chop the NV blob into multiple fragments starting with
3904 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003905 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3906 * concatenated together by HAL without any padding bytes in between.*/
3907 tANI_U16 fragNumber;
3908
3909 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303910 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003911 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3912 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3913 tANI_U16 isLastFragment;
3914
3915 /* NV Image size (number of bytes) */
3916 tANI_U32 nvImgBufferSize;
3917
3918 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3919 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3920} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3921
3922typedef PACKED_PRE struct PACKED_POST
3923{
3924 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3925 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3926 tHalMsgHeader header;
3927 tHalNvImgDownloadReqParams nvImageReqParams;
3928} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3929
3930/*---------------------------------------------------------------------------
3931 * WLAN_HAL_DOWNLOAD_NV_RSP
3932 *--------------------------------------------------------------------------*/
3933typedef PACKED_PRE struct PACKED_POST
3934{
3935 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3936 * after each fragment */
3937 tANI_U32 status;
3938} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3939
3940typedef PACKED_PRE struct PACKED_POST
3941{
3942 tHalMsgHeader header;
3943 tHalNvImgDownloadRspParams nvImageRspParams;
3944} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3945
3946/*---------------------------------------------------------------------------
3947 * WLAN_HAL_STORE_NV_IND
3948 *--------------------------------------------------------------------------*/
3949typedef PACKED_PRE struct PACKED_POST
3950{
3951 /* NV Item */
3952 eNvTable tableID;
3953
3954 /* Size of NV Blob */
3955 tANI_U32 nvBlobSize;
3956
Dino Mycle8afbac12014-07-04 22:06:17 +05303957 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003958 * NV blob i.e. uint8[nvBlobSize] */
3959} tHalNvStoreParams, *tpHalNvStoreParams;
3960
3961typedef PACKED_PRE struct PACKED_POST
3962{
3963 /* Note: The length specified in tHalNvStoreInd messages should be
3964 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3965 tHalMsgHeader header;
3966 tHalNvStoreParams nvStoreParams;
3967} tHalNvStoreInd, *tpHalNvStoreInd;
3968
3969/* End of Block Ack Related Parameters */
3970
3971/*---------------------------------------------------------------------------
3972 * WLAN_HAL_MIC_FAILURE_IND
3973 *--------------------------------------------------------------------------*/
3974
3975#define SIR_CIPHER_SEQ_CTR_SIZE 6
3976
3977typedef PACKED_PRE struct PACKED_POST
3978{
Dino Mycle8afbac12014-07-04 22:06:17 +05303979 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003980 tSirMacAddr taMacAddr; //transmitter address
3981 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303982 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003983 tANI_U8 IV1; // first byte of IV
3984 tANI_U8 keyId; // second byte of IV
3985 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3986 tSirMacAddr rxMacAddr; // receive address
3987} tSirMicFailureInfo, *tpSirMicFailureInfo;
3988
3989/* Definition for MIC failure indication
3990 MAC reports this each time a MIC failure occures on Rx TKIP packet
3991 */
3992typedef PACKED_PRE struct PACKED_POST
3993{
3994 tSirMacAddr bssId; // BSSID
3995 tSirMicFailureInfo info;
3996} tSirMicFailureInd, *tpSirMicFailureInd;
3997
3998typedef PACKED_PRE struct PACKED_POST
3999{
4000 tHalMsgHeader header;
4001 tSirMicFailureInd micFailureInd;
4002} tMicFailureIndMsg, *tpMicFailureIndMsg;
4003
Mohit Khanna4a70d262012-09-11 16:30:12 -07004004typedef PACKED_PRE struct PACKED_POST
4005{
4006 tANI_U16 opMode;
4007 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05304008}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07004009
4010typedef PACKED_PRE struct PACKED_POST
4011{
4012 tHalMsgHeader header;
4013 tUpdateVHTOpMode updateVhtOpMode;
4014} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
4015
4016typedef PACKED_PRE struct PACKED_POST
4017{
4018 tANI_U32 status;
4019} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
4020
4021typedef PACKED_PRE struct PACKED_POST
4022{
4023 tHalMsgHeader header;
4024 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
4025} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
4026
Jeff Johnson295189b2012-06-20 16:38:30 -07004027/*---------------------------------------------------------------------------
4028 * WLAN_HAL_UPDATE_BEACON_REQ
4029 *--------------------------------------------------------------------------*/
4030typedef PACKED_PRE struct PACKED_POST
4031{
4032
4033 tANI_U8 bssIdx;
4034
4035 //shortPreamble mode. HAL should update all the STA rates when it
4036 //receives this message
4037 tANI_U8 fShortPreamble;
4038 //short Slot time.
4039 tANI_U8 fShortSlotTime;
4040 //Beacon Interval
4041 tANI_U16 beaconInterval;
4042 //Protection related
4043 tANI_U8 llaCoexist;
4044 tANI_U8 llbCoexist;
4045 tANI_U8 llgCoexist;
4046 tANI_U8 ht20MhzCoexist;
4047 tANI_U8 llnNonGFCoexist;
4048 tANI_U8 fLsigTXOPProtectionFullSupport;
4049 tANI_U8 fRIFSMode;
4050
4051 tANI_U16 paramChangeBitmap;
4052}tUpdateBeaconParams, *tpUpdateBeaconParams;
4053
4054
4055typedef PACKED_PRE struct PACKED_POST
4056{
4057 tHalMsgHeader header;
4058 tUpdateBeaconParams updateBeaconParam;
4059} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
4060
4061/*---------------------------------------------------------------------------
4062 * WLAN_HAL_UPDATE_BEACON_RSP
4063 *--------------------------------------------------------------------------*/
4064typedef PACKED_PRE struct PACKED_POST
4065{
4066 tANI_U32 status;
4067} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
4068
4069typedef PACKED_PRE struct PACKED_POST
4070{
4071 tHalMsgHeader header;
4072 tUpdateBeaconRspParams updateBeaconRspParam;
4073} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
4074
4075/*---------------------------------------------------------------------------
4076 * WLAN_HAL_SEND_BEACON_REQ
4077 *--------------------------------------------------------------------------*/
4078typedef PACKED_PRE struct PACKED_POST
4079{
4080 tANI_U32 beaconLength; //length of the template.
4081 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
4082 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004083 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07004084 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
4085}tSendBeaconParams, *tpSendBeaconParams;
4086
4087
4088typedef PACKED_PRE struct PACKED_POST
4089{
4090 tHalMsgHeader header;
4091 tSendBeaconParams sendBeaconParam;
4092}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4093
4094/*---------------------------------------------------------------------------
4095 * WLAN_HAL_SEND_BEACON_RSP
4096 *--------------------------------------------------------------------------*/
4097typedef PACKED_PRE struct PACKED_POST
4098{
4099 tANI_U32 status;
4100} tSendBeaconRspParams, *tpSendBeaconRspParams;
4101
4102typedef PACKED_PRE struct PACKED_POST
4103{
4104 tHalMsgHeader header;
4105 tSendBeaconRspParams sendBeaconRspParam;
4106} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4107
4108#ifdef FEATURE_5GHZ_BAND
4109
4110/*---------------------------------------------------------------------------
4111 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4112 *--------------------------------------------------------------------------*/
4113typedef PACKED_PRE struct PACKED_POST
4114{
4115 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304116 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004117}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4118
4119
4120typedef PACKED_PRE struct PACKED_POST
4121{
4122 /* Link Parameters */
4123 tSirEnableRadarInfoType EnableRadarInfo;
4124}tEnableRadarReqParams, *tpEnableRadarReqParams;
4125
4126typedef PACKED_PRE struct PACKED_POST
4127{
4128 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304129 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004130}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4131
4132/*---------------------------------------------------------------------------
4133 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4134 *--------------------------------------------------------------------------*/
4135
4136typedef PACKED_PRE struct PACKED_POST
4137{
4138 /* Link Parameters */
4139 tSirMacAddr BSSID;
4140 /* success or failure */
4141 tANI_U32 status;
4142}tEnableRadarRspParams, *tpEnableRadarRspParams;
4143
4144typedef PACKED_PRE struct PACKED_POST
4145{
4146 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304147 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004148}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4149
4150/*---------------------------------------------------------------------------
4151 *WLAN_HAL_RADAR_DETECT_INTR_IND
4152 *--------------------------------------------------------------------------*/
4153
4154typedef PACKED_PRE struct PACKED_POST
4155{
4156 tANI_U8 radarDetChannel;
4157}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4158
4159typedef PACKED_PRE struct PACKED_POST
4160{
4161 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304162 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004163}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4164
4165/*---------------------------------------------------------------------------
4166 *WLAN_HAL_RADAR_DETECT_IND
4167 *-------------------------------------------------------------------------*/
4168typedef PACKED_PRE struct PACKED_POST
4169{
4170 /*channel number in which the RADAR detected*/
4171 tANI_U8 channelNumber;
4172
4173 /*RADAR pulse width*/
4174 tANI_U16 radarPulseWidth; // in usecond
4175
4176 /*Number of RADAR pulses */
4177 tANI_U16 numRadarPulse;
4178}tRadarDetectIndParams,*tpRadarDetectIndParams;
4179
4180typedef PACKED_PRE struct PACKED_POST
4181{
4182 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304183 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004184}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4185
4186
4187/*---------------------------------------------------------------------------
4188 *WLAN_HAL_GET_TPC_REPORT_REQ
4189 *-------------------------------------------------------------------------*/
4190typedef PACKED_PRE struct PACKED_POST
4191{
4192 tSirMacAddr sta;
4193 tANI_U8 dialogToken;
4194 tANI_U8 txpower;
4195}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4196
4197
4198typedef PACKED_PRE struct PACKED_POST
4199{
4200 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304201 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004202}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4203
4204/*---------------------------------------------------------------------------
4205 * WLAN_HAL_GET_TPC_REPORT_RSP
4206 *--------------------------------------------------------------------------*/
4207
4208typedef PACKED_PRE struct PACKED_POST
4209{
4210 /* success or failure */
4211 tANI_U32 status;
4212}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4213
4214typedef PACKED_PRE struct PACKED_POST
4215{
4216 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304217 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004218}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4219
4220#endif
4221
Jeff Johnson295189b2012-06-20 16:38:30 -07004222/*---------------------------------------------------------------------------
4223 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4224 *-------------------------------------------------------------------------*/
4225typedef PACKED_PRE struct PACKED_POST
4226{
4227 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4228 tANI_U32 probeRespTemplateLen;
4229 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4230 tSirMacAddr bssId;
4231
4232}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4233
4234typedef PACKED_PRE struct PACKED_POST
4235{
4236 tHalMsgHeader header;
4237 tSendProbeRespReqParams sendProbeRespReqParams ;
4238}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4239
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05304240typedef PACKED_PRE struct PACKED_POST
4241{
4242 tSirMacAddr bssId;
4243 tANI_U32 probeRespTemplateLen;
4244 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4245 tANI_U8 pProbeRespTemplate[1]; //Variable length array
4246}tSendProbeRespReqParams_V1, *tpSendProbeRespReqParams_V1;
4247
4248typedef PACKED_PRE struct PACKED_POST
4249{
4250 tHalMsgHeader header;
4251 tSendProbeRespReqParams_V1 sendProbeRespReqParams_v1;
4252}tSendProbeRespReqMsg_V1, *tpSendProbeRespReqMsg_V1;
4253
Jeff Johnson295189b2012-06-20 16:38:30 -07004254/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304255 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004256 *--------------------------------------------------------------------------*/
4257
4258typedef PACKED_PRE struct PACKED_POST
4259{
4260 /* success or failure */
4261 tANI_U32 status;
4262}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4263
4264typedef PACKED_PRE struct PACKED_POST
4265{
4266 tHalMsgHeader header;
4267 tSendProbeRespRspParams sendProbeRespRspParams;
4268}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4269
4270
4271/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304272 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004273 *--------------------------------------------------------------------------*/
4274
4275typedef PACKED_PRE struct PACKED_POST
4276{
4277 /* success or failure */
4278 tANI_U32 status;
4279}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4280
4281typedef PACKED_PRE struct PACKED_POST
4282{
4283 tHalMsgHeader header;
4284 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4285}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4286
4287/*---------------------------------------------------------------------------
4288 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4289 *--------------------------------------------------------------------------*/
4290
4291typedef PACKED_PRE struct PACKED_POST
4292{
4293 tANI_U16 assocId;
4294 tANI_U16 staId;
4295 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4296 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004297 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304298 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004299
4300}tDeleteStaContextParams, *tpDeleteStaContextParams;
4301
4302
4303typedef PACKED_PRE struct PACKED_POST
4304{
4305 tHalMsgHeader header;
4306 tDeleteStaContextParams deleteStaContextParams;
4307}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4308
Anand Kumar012623a2013-01-11 17:00:00 -08004309typedef PACKED_PRE struct PACKED_POST
4310{
4311 tHalMsgHeader header;
4312 tANI_U8 assocId;
4313 tANI_U8 staIdx;
4314 tANI_U8 bssIdx;
4315 tANI_U8 uReasonCode;
4316 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004317#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4318 tANI_U8 staAddr[6];
4319 tANI_U8 bssId[6];
4320#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004321} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004322
4323/*---------------------------------------------------------------------------
4324 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4325 *--------------------------------------------------------------------------*/
4326
4327typedef PACKED_PRE struct PACKED_POST
4328{
4329 tBtAmpEventType btAmpEventType;
4330
4331}tBtAmpEventParams, *tpBtAmpEventParams;
4332
4333
4334
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 tHalMsgHeader header;
4338 tBtAmpEventParams btAmpEventParams;
4339}tBtAmpEventMsg, *tpBtAmpEventMsg;
4340
4341/*---------------------------------------------------------------------------
4342*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4343*--------------------------------------------------------------------------*/
4344
4345typedef PACKED_PRE struct PACKED_POST
4346{
4347 /* success or failure */
4348 tANI_U32 status;
4349}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4350
4351typedef PACKED_PRE struct PACKED_POST
4352{
4353 tHalMsgHeader header;
4354 tBtAmpEventRspParams btAmpEventRspParams;
4355}tBtAmpEventRsp, *tpBtAmpEventRsp;
4356
4357
4358/*---------------------------------------------------------------------------
4359 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4360 *--------------------------------------------------------------------------*/
4361
4362typedef PACKED_PRE struct PACKED_POST
4363{
4364 // Station Index. originates from HAL
4365 tANI_U8 ucSTAId;
4366
4367 // TID for which the transmit queue is being flushed
4368 tANI_U8 ucTid;
4369
4370}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4371
4372
4373typedef PACKED_PRE struct PACKED_POST
4374{
4375 tHalMsgHeader header;
4376 tTlHalFlushAcParams tlHalFlushAcParam;
4377}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4378
4379/*---------------------------------------------------------------------------
4380*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4381*--------------------------------------------------------------------------*/
4382
4383typedef PACKED_PRE struct PACKED_POST
4384{
4385 // Station Index. originates from HAL
4386 tANI_U8 ucSTAId;
4387
4388 // TID for which the transmit queue is being flushed
4389 tANI_U8 ucTid;
4390
4391 /* success or failure */
4392 tANI_U32 status;
4393}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4394
4395typedef PACKED_PRE struct PACKED_POST
4396{
4397 tHalMsgHeader header;
4398 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4399}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4400
4401/*---------------------------------------------------------------------------
4402 * WLAN_HAL_ENTER_IMPS_REQ
4403 *--------------------------------------------------------------------------*/
4404typedef PACKED_PRE struct PACKED_POST
4405{
4406 tHalMsgHeader header;
4407} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4408
4409/*---------------------------------------------------------------------------
4410 * WLAN_HAL_EXIT_IMPS_REQ
4411 *--------------------------------------------------------------------------*/
4412typedef PACKED_PRE struct PACKED_POST
4413{
4414 tHalMsgHeader header;
4415} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4416
4417/*---------------------------------------------------------------------------
4418 * WLAN_HAL_ENTER_BMPS_REQ
4419 *--------------------------------------------------------------------------*/
4420
4421typedef PACKED_PRE struct PACKED_POST
4422{
4423 tANI_U8 bssIdx;
4424 //TBTT value derived from the last beacon
4425#ifndef BUILD_QWPTTSTATIC
4426 tANI_U64 tbtt;
4427#endif
4428 tANI_U8 dtimCount;
4429 //DTIM period given to HAL during association may not be valid,
4430 //if association is based on ProbeRsp instead of beacon.
4431 tANI_U8 dtimPeriod;
4432
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004433 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004434 tANI_U32 rssiFilterPeriod;
4435 tANI_U32 numBeaconPerRssiAverage;
4436 tANI_U8 bRssiFilterEnable;
4437
4438} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4439
4440
4441typedef PACKED_PRE struct PACKED_POST
4442{
4443 tHalMsgHeader header;
4444 tHalEnterBmpsReqParams enterBmpsReq;
4445} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4446
4447/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304448 * WLAN_HAL_PRINT_REG_INFO_IND
4449 *--------------------------------------------------------------------------*/
4450typedef PACKED_PRE struct PACKED_POST
4451{
4452 uint32 regAddr;
4453 uint32 regValue;
4454} tHalRegDebugInfo, *tpRegDebugInfo;
4455
4456typedef PACKED_PRE struct PACKED_POST
4457{
4458 uint32 regCount;
4459 uint32 scenario;
4460 uint32 reasonCode;
4461} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4462
4463typedef PACKED_PRE struct PACKED_POST
4464{
4465 tHalMsgHeader header;
4466 tHalRegDebugInfoParams regParams;
4467} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4468
4469/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004470 * WLAN_HAL_EXIT_BMPS_REQ
4471 *--------------------------------------------------------------------------*/
4472typedef PACKED_PRE struct PACKED_POST
4473{
4474 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004475 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004476} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4477
4478typedef PACKED_PRE struct PACKED_POST
4479{
4480 tHalMsgHeader header;
4481 tHalExitBmpsReqParams exitBmpsReqParams;
4482} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4483
4484/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004485 * WLAN_HAL_MISSED_BEACON_IND
4486 *--------------------------------------------------------------------------*/
4487typedef PACKED_PRE struct PACKED_POST
4488{
4489 tANI_U8 bssIdx;
4490} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4491
4492typedef PACKED_PRE struct PACKED_POST
4493{
4494 tHalMsgHeader header;
4495 tHalMissedBeaconIndParams missedBeaconIndParams;
4496} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4497
4498/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004499 * WLAN_HAL_ADD_BCN_FILTER_REQ
4500 *--------------------------------------------------------------------------*/
4501/* Beacon Filtering data structures */
4502typedef PACKED_PRE struct PACKED_POST
4503{
4504 tANI_U8 offset;
4505 tANI_U8 value;
4506 tANI_U8 bitMask;
4507 tANI_U8 ref;
4508} tEidByteInfo, *tpEidByteInfo;
4509
Dino Mycle8afbac12014-07-04 22:06:17 +05304510typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004511{
4512 tANI_U16 capabilityInfo;
4513 tANI_U16 capabilityMask;
4514 tANI_U16 beaconInterval;
4515 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004516 tANI_U8 bssIdx;
4517 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004518} tBeaconFilterMsg, *tpBeaconFilterMsg;
4519
4520/* The above structure would be followed by multiple of below mentioned structure */
4521typedef PACKED_PRE struct PACKED_POST
4522{
4523 tANI_U8 elementId;
4524 tANI_U8 checkIePresence;
4525 tEidByteInfo byte;
4526} tBeaconFilterIe, *tpBeaconFilterIe;
4527
4528typedef PACKED_PRE struct PACKED_POST
4529{
4530 tHalMsgHeader header;
4531 tBeaconFilterMsg addBcnFilterParams;
4532} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4533
4534/*---------------------------------------------------------------------------
4535 * WLAN_HAL_REM_BCN_FILTER_REQ
4536 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304537typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004538{
4539 tANI_U8 ucIeCount;
4540 tANI_U8 ucRemIeId[1];
4541} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4542
4543typedef PACKED_PRE struct PACKED_POST
4544{
4545 tHalMsgHeader header;
4546 tRemBeaconFilterMsg remBcnFilterParams;
4547} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4548
4549/*---------------------------------------------------------------------------
4550 * WLAN_HAL_HOST_OFFLOAD_REQ
4551 *--------------------------------------------------------------------------*/
4552#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4553#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4554#define HAL_IPV6_NS_OFFLOAD 2
4555#define HAL_IPV6_ADDR_LEN 16
4556#define HAL_MAC_ADDR_LEN 6
4557#define HAL_OFFLOAD_DISABLE 0
4558#define HAL_OFFLOAD_ENABLE 1
4559#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004560#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004561#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004562#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004563
4564typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4565{
4566 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4567 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4568 //Only support 2 possible Network Advertisement IPv6 address
4569 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4570 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4571 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4572 tANI_U8 srcIPv6AddrValid : 1;
4573 tANI_U8 targetIPv6Addr1Valid : 1;
4574 tANI_U8 targetIPv6Addr2Valid : 1;
4575 tANI_U8 reserved1 : 5;
4576 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004577 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004578 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004579} tHalNSOffloadParams;
4580
4581typedef PACKED_PRE struct PACKED_POST
4582{
4583 tANI_U8 offloadType;
4584 tANI_U8 enableOrDisable;
4585 PACKED_PRE union PACKED_POST
4586 {
4587 tANI_U8 hostIpv4Addr [4];
4588 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4589 } params;
4590} tHalHostOffloadReq, *tpHalHostOffloadReq;
4591
4592typedef PACKED_PRE struct PACKED_POST
4593{
4594 tHalMsgHeader header;
4595 tHalHostOffloadReq hostOffloadParams;
4596 tHalNSOffloadParams nsOffloadParams;
4597} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4598
Leo Chang397deb72013-08-22 11:33:16 -07004599
4600#ifdef FEATURE_WLAN_LPHB
4601typedef enum
4602{
4603 WIFI_HB_SET_ENABLE = 0x0001,
4604 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4605 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4606 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4607 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4608 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4609}tLowPowerHeartBeatCmdType ;
4610
4611#define MAX_FLITER_SIZE 64
4612/*---------------------------------------------------------------------------
4613 *FEATURE_WLAN_LPHB REQ
4614 *--------------------------------------------------------------------------*/
4615typedef PACKED_PRE struct PACKED_POST
4616{
4617 uint32 hostIpv4Addr;
4618 uint32 destIpv4Addr;
4619 uint16 hostPort;
4620 uint16 destPort;
4621 uint16 timeOutSec; // in seconds
4622 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004623 uint16 timePeriodSec; // in seconds
4624 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004625} tlowPowerHeartBeatParamsTcpStruct;
4626
4627typedef PACKED_PRE struct PACKED_POST
4628{
4629 uint32 hostIpv4Addr;
4630 uint32 destIpv4Addr;
4631 uint16 hostPort;
4632 uint16 destPort;
4633 uint16 timePeriodSec;// in seconds
4634 uint16 timeOutSec; // in seconds
4635 tSirMacAddr gatewayMacAddr;
4636} tlowPowerHeartBeatParamsUdpStruct;
4637
4638typedef PACKED_PRE struct PACKED_POST
4639{
4640 uint32 offset;
4641 uint32 filterLength;
4642 uint8 filter[MAX_FLITER_SIZE];
4643} tlowPowerHeartBeatFilterStruct;
4644
4645typedef PACKED_PRE struct PACKED_POST
4646{
4647 uint8 heartBeatEnable;
4648 uint8 heartBeatType; //TCP or UDP
4649} tlowPowerHeartBeatEnableStruct;
4650
4651typedef PACKED_PRE struct PACKED_POST
4652{
4653 uint8 dummy;
4654} tlowPowerHeartBeatNetworkInfoStruct;
4655
4656
4657typedef PACKED_PRE struct PACKED_POST
4658{
4659 uint8 sessionIdx;
4660 uint16 lowPowerHeartBeatCmdType;
4661 PACKED_PRE union PACKED_PRO
4662 {
4663 tlowPowerHeartBeatEnableStruct control;
4664 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4665 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4666 tlowPowerHeartBeatParamsUdpStruct udpParams;
4667 tlowPowerHeartBeatNetworkInfoStruct info;
4668 }options;
4669} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4670
4671
4672typedef PACKED_PRE struct PACKED_POST
4673{
4674 tHalMsgHeader header;
4675 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4676} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4677
4678/*---------------------------------------------------------------------------
4679 * FEATURE_WLAN_LPHB RSP
4680 *--------------------------------------------------------------------------*/
4681
4682typedef PACKED_PRE struct PACKED_POST
4683{
4684 /* success or failure */
4685 uint8 sessionIdx;
4686 uint32 status;
4687 uint16 lowPowerHeartBeatCmdType;
4688}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4689
4690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tHalMsgHeader header;
4693 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4694}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4695
4696
4697/*---------------------------------------------------------------------------
4698 * FEATURE_WLAN_LPHB IND
4699 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004700#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4701#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4702
4703#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4704#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004705#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004706
Kumar Anandea78e792013-10-10 23:47:01 -07004707
4708#define WIFI_LPHB_PROTO_UDP 0x01
4709#define WIFI_LPHB_PROTO_TCP 0x02
4710
Leo Chang397deb72013-08-22 11:33:16 -07004711typedef PACKED_PRE struct PACKED_POST
4712{
4713 uint8 bssIdx;
4714 uint8 sessionIdx;
4715 uint8 protocolType; /*TCP or UDP*/
4716 uint8 eventReason;
4717
4718}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4719
4720typedef PACKED_PRE struct PACKED_POST
4721{
4722 tHalMsgHeader header;
4723 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4724}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4725
4726#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004727
4728#ifdef FEATURE_WLAN_BATCH_SCAN
4729
4730/*---------------------------------------------------------------------------
4731 * WLAN_HAL_BATCHSCAN_SET_REQ
4732 *--------------------------------------------------------------------------*/
4733typedef PACKED_PRE struct PACKED_POST
4734{
4735 /* Scan Frerquency - default to 30Sec*/
4736 tANI_U32 scanInterval;
4737 tANI_U32 numScan2Batch;
4738 tANI_U32 bestNetworks;
4739 tANI_U8 rfBand;
4740 tANI_U8 rtt;
4741} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4742
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 tHalMsgHeader header;
4746 tHalBatchScanSetParams batchScanParams;
4747} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4748
4749/*---------------------------------------------------------------------------
4750 * WLAN_HAL_BATCHSCAN_SET_RSP
4751 *--------------------------------------------------------------------------*/
4752typedef PACKED_PRE struct PACKED_POST
4753{
4754 tANI_U32 supportedMscan;
4755} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4756
4757typedef PACKED_PRE struct PACKED_POST
4758{
4759 tHalMsgHeader header;
4760 tHalBatchScanSetRspParam setBatchScanRspParam;
4761} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4762
4763/*---------------------------------------------------------------------------
4764* WLAN_HAL_BATCHSCAN_STOP_IND
4765*--------------------------------------------------------------------------*/
4766typedef PACKED_PRE struct PACKED_POST
4767{
4768 tANI_U32 param;
4769} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4770
4771typedef PACKED_PRE struct PACKED_POST
4772{
4773 tHalMsgHeader header;
4774 tHalBatchScanStopIndParam param;
4775} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4776
4777/*---------------------------------------------------------------------------
4778* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4779*--------------------------------------------------------------------------*/
4780typedef PACKED_PRE struct PACKED_POST
4781{
4782 tANI_U32 param;
4783} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4784
4785typedef PACKED_PRE struct PACKED_POST
4786{
4787 tHalMsgHeader header;
4788 tHalBatchScanTriggerResultParam param;
4789} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4790
4791/*---------------------------------------------------------------------------
4792 * WLAN_HAL_BATCHSCAN_GET_RSP
4793 *--------------------------------------------------------------------------*/
4794typedef PACKED_PRE struct PACKED_POST
4795{
4796 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004797 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004798 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304799 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004800 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4801 tANI_U32 timestamp;
4802} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4803
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 tANI_U32 scanId; /* Scan List ID. */
4807 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4808 tANI_U32 numNetworksInScanList;
4809 /* Variable data ptr: Number of AP in Scan List */
4810 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4811 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4812 tANI_U8 scanList[1];
4813} tHalBatchScanList, *tpHalBatchScanList;
4814
4815typedef PACKED_PRE struct PACKED_POST
4816{
4817 tANI_U32 timestamp;
4818 tANI_U32 numScanLists;
4819 boolean isLastResult;
4820 /* Variable Data ptr: Number of Scan Lists*/
4821 /* following isLastResult is data of type tHalBatchScanList
4822 * of sizeof(tHalBatchScanList) * numScanLists*/
4823 tANI_U8 scanResults[1];
4824} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4825
4826typedef PACKED_PRE struct PACKED_POST
4827{
4828 tHalMsgHeader header;
4829 tHalBatchScanResultIndParam resultIndMsgParam;
4830} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4831
4832#endif
4833
Jeff Johnson295189b2012-06-20 16:38:30 -07004834/*---------------------------------------------------------------------------
4835 * WLAN_HAL_KEEP_ALIVE_REQ
4836 *--------------------------------------------------------------------------*/
4837/* Packet Types. */
4838#define HAL_KEEP_ALIVE_NULL_PKT 1
4839#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4840
4841/* Enable or disable keep alive */
4842#define HAL_KEEP_ALIVE_DISABLE 0
4843#define HAL_KEEP_ALIVE_ENABLE 1
4844
4845/* Keep Alive request. */
4846typedef PACKED_PRE struct PACKED_POST
4847{
4848 tANI_U8 packetType;
4849 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304850 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004851 tHalIpv4Addr destIpv4Addr;
4852 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004853 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004854} tHalKeepAliveReq, *tpHalKeepAliveReq;
4855
4856typedef PACKED_PRE struct PACKED_POST
4857{
4858 tHalMsgHeader header;
4859 tHalKeepAliveReq KeepAliveParams;
4860} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4861
4862/*---------------------------------------------------------------------------
4863 * WLAN_HAL_SET_RSSI_THRESH_REQ
4864 *--------------------------------------------------------------------------*/
4865typedef PACKED_PRE struct PACKED_POST
4866{
4867 tANI_S8 ucRssiThreshold1 : 8;
4868 tANI_S8 ucRssiThreshold2 : 8;
4869 tANI_S8 ucRssiThreshold3 : 8;
4870 tANI_U8 bRssiThres1PosNotify : 1;
4871 tANI_U8 bRssiThres1NegNotify : 1;
4872 tANI_U8 bRssiThres2PosNotify : 1;
4873 tANI_U8 bRssiThres2NegNotify : 1;
4874 tANI_U8 bRssiThres3PosNotify : 1;
4875 tANI_U8 bRssiThres3NegNotify : 1;
4876 tANI_U8 bReserved10 : 2;
4877} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304878
Jeff Johnson295189b2012-06-20 16:38:30 -07004879typedef PACKED_PRE struct PACKED_POST
4880{
4881 tHalMsgHeader header;
4882 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004883} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004884
4885/*---------------------------------------------------------------------------
4886 * WLAN_HAL_ENTER_UAPSD_REQ
4887 *--------------------------------------------------------------------------*/
4888typedef PACKED_PRE struct PACKED_POST
4889{
4890 tANI_U8 bkDeliveryEnabled:1;
4891 tANI_U8 beDeliveryEnabled:1;
4892 tANI_U8 viDeliveryEnabled:1;
4893 tANI_U8 voDeliveryEnabled:1;
4894 tANI_U8 bkTriggerEnabled:1;
4895 tANI_U8 beTriggerEnabled:1;
4896 tANI_U8 viTriggerEnabled:1;
4897 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004898 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004899} tUapsdReqParams, *tpUapsdReqParams;
4900
4901typedef PACKED_PRE struct PACKED_POST
4902{
4903 tHalMsgHeader header;
4904 tUapsdReqParams enterUapsdParams;
4905} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4906
4907/*---------------------------------------------------------------------------
4908 * WLAN_HAL_EXIT_UAPSD_REQ
4909 *--------------------------------------------------------------------------*/
4910typedef PACKED_PRE struct PACKED_POST
4911{
4912 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004913 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004914} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4915
Kumar Anandea78e792013-10-10 23:47:01 -07004916#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4917#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004918/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004919 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4920 *--------------------------------------------------------------------------*/
4921typedef PACKED_PRE struct PACKED_POST
4922{
4923 tANI_U32 selfStaIdx:8;
4924 tANI_U32 ucPtrnId:8; // Pattern ID
4925 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4926 tANI_U32 uPtrnIntervalMs; // In msec
4927 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4928} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4929
4930typedef PACKED_PRE struct PACKED_POST
4931{
4932 tHalMsgHeader header;
4933 tHalAddPeriodicTxPtrn ptrnParams;
4934} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4935
4936/*---------------------------------------------------------------------------
4937 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4938 *--------------------------------------------------------------------------*/
4939typedef PACKED_PRE struct PACKED_POST
4940{
4941 tANI_U32 selfStaIdx:8;
4942 tANI_U32 rsvd:24;
4943 /* Bitmap of pattern IDs that needs to be deleted */
4944 tANI_U32 uPatternIdBitmap;
4945} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4946
4947typedef PACKED_PRE struct PACKED_POST
4948{
4949 tHalMsgHeader header;
4950 tHalDelPeriodicTxPtrn ptrnParams;
4951} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4952
4953/*---------------------------------------------------------------------------
4954 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4955 *--------------------------------------------------------------------------*/
4956typedef PACKED_PRE struct PACKED_POST
4957{
4958 /* Type of Failure indication */
4959 tANI_U32 bssIdx:8;
4960 tANI_U32 selfStaIdx:8;
4961 tANI_U32 rsvd:16;
4962 tANI_U32 status;
4963 tANI_U32 patternIdBitmap;
4964} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4965
4966typedef PACKED_PRE struct PACKED_POST
4967{
4968 tHalMsgHeader header;
4969 tHalPeriodicTxPtrnFwInd fwIndParams;
4970} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4971
4972/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004973 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4974 *--------------------------------------------------------------------------*/
4975#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4976#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4977
4978typedef PACKED_PRE struct PACKED_POST
4979{
4980 tANI_U8 ucPatternId; // Pattern ID
4981 // Pattern byte offset from beginning of the 802.11 packet to start of the
4982 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304983 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004984 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4985 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4986 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4987 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4988 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4989 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004990 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004991} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4992
4993typedef PACKED_PRE struct PACKED_POST
4994{
4995 tHalMsgHeader header;
4996 tHalWowlAddBcastPtrn ptrnParams;
4997} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304998
Jeff Johnsone7245742012-09-05 17:12:55 -07004999
5000
Jeff Johnson295189b2012-06-20 16:38:30 -07005001/*---------------------------------------------------------------------------
5002 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
5003 *--------------------------------------------------------------------------*/
5004typedef PACKED_PRE struct PACKED_POST
5005{
5006 /* Pattern ID of the wakeup pattern to be deleted */
5007 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005008 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005009} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
5010
5011typedef PACKED_PRE struct PACKED_POST
5012{
5013 tHalMsgHeader header;
5014 tHalWowlDelBcastPtrn ptrnParams;
5015} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
5016
5017/*---------------------------------------------------------------------------
5018 * WLAN_HAL_ENTER_WOWL_REQ
5019 *--------------------------------------------------------------------------*/
5020typedef PACKED_PRE struct PACKED_POST
5021{
5022 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05305023 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005024
5025 /* Magic pattern */
5026 tSirMacAddr magicPtrn;
5027
Dino Mycle8afbac12014-07-04 22:06:17 +05305028 /* Enables/disables packet pattern filtering in firmware.
5029 Enabling this flag enables broadcast pattern matching
5030 in Firmware. If unicast pattern matching is also desired,
5031 ucUcastPatternFilteringEnable flag must be set tot true
5032 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07005033 */
5034 tANI_U8 ucPatternFilteringEnable;
5035
Dino Mycle8afbac12014-07-04 22:06:17 +05305036 /* Enables/disables unicast packet pattern filtering.
5037 This flag specifies whether we want to do pattern match
5038 on unicast packets as well and not just broadcast packets.
5039 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07005040 (main controlling flag) is set to false
5041 */
Dino Mycle8afbac12014-07-04 22:06:17 +05305042 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005043
Dino Mycle8afbac12014-07-04 22:06:17 +05305044 /* This configuration is valid only when magicPktEnable=1.
5045 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07005046 * Channel Switch Action Frame.
5047 */
5048 tANI_U8 ucWowChnlSwitchRcv;
5049
Dino Mycle8afbac12014-07-04 22:06:17 +05305050 /* This configuration is valid only when magicPktEnable=1.
5051 * It requests hardware to wake up when it receives the
5052 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005053 */
5054 tANI_U8 ucWowDeauthRcv;
5055
Dino Mycle8afbac12014-07-04 22:06:17 +05305056 /* This configuration is valid only when magicPktEnable=1.
5057 * It requests hardware to wake up when it receives the
5058 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005059 */
5060 tANI_U8 ucWowDisassocRcv;
5061
Dino Mycle8afbac12014-07-04 22:06:17 +05305062 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005063 * It requests hardware to wake up when it has missed
5064 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05305065 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07005066 */
5067 tANI_U8 ucWowMaxMissedBeacons;
5068
Dino Mycle8afbac12014-07-04 22:06:17 +05305069 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005070 * This is a timeout value in units of microsec. It requests
5071 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05305072 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07005073 */
5074 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05305075
Jeff Johnson295189b2012-06-20 16:38:30 -07005076 /* This configuration directs the WoW packet filtering to look for EAP-ID
5077 * requests embedded in EAPOL frames and use this as a wake source.
5078 */
5079 tANI_U8 ucWoWEAPIDRequestEnable;
5080
5081 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
5082 * requests and use this as a wake source.
5083 */
5084 tANI_U8 ucWoWEAPOL4WayEnable;
5085
5086 /* This configuration allows a host wakeup on an network scan offload match.
5087 */
5088 tANI_U8 ucWowNetScanOffloadMatch;
5089
5090 /* This configuration allows a host wakeup on any GTK rekeying error.
5091 */
5092 tANI_U8 ucWowGTKRekeyError;
5093
5094 /* This configuration allows a host wakeup on BSS connection loss.
5095 */
5096 tANI_U8 ucWoWBSSConnLoss;
5097
Jeff Johnsone7245742012-09-05 17:12:55 -07005098 tANI_U8 bssIdx;
5099
Jeff Johnson295189b2012-06-20 16:38:30 -07005100} tHalWowlEnterParams, *tpHalWowlEnterParams;
5101
5102typedef PACKED_PRE struct PACKED_POST
5103{
5104 tHalMsgHeader header;
5105 tHalWowlEnterParams enterWowlParams;
5106} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5107
5108/*---------------------------------------------------------------------------
5109 * WLAN_HAL_EXIT_WOWL_REQ
5110 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005111
Jeff Johnson295189b2012-06-20 16:38:30 -07005112typedef PACKED_PRE struct PACKED_POST
5113{
Jeff Johnsone7245742012-09-05 17:12:55 -07005114 tANI_U8 bssIdx;
5115
5116} tHalWowlExitParams, *tpHalWowlExitParams;
5117
5118typedef PACKED_PRE struct PACKED_POST
5119{
5120 tHalMsgHeader header;
5121 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005122} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5123
5124/*---------------------------------------------------------------------------
5125 * WLAN_HAL_GET_RSSI_REQ
5126 *--------------------------------------------------------------------------*/
5127typedef PACKED_PRE struct PACKED_POST
5128{
5129 tHalMsgHeader header;
5130} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5131
Anand Kumar012623a2013-01-11 17:00:00 -08005132typedef PACKED_PRE struct PACKED_POST
5133{
5134 /* Valid STA Idx for per STA stats request */
5135 tANI_U32 staId;
5136
5137}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5138
5139
5140/*---------------------------------------------------------------------------
5141 * WLAN_HAL_GET_ROAM_RSSI_REQ
5142 *--------------------------------------------------------------------------*/
5143typedef PACKED_PRE struct PACKED_POST
5144{
5145 tHalMsgHeader header;
5146 tHalRoamRssiReqParams roamRssiReqParams;
5147} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5148
5149
Jeff Johnson295189b2012-06-20 16:38:30 -07005150/*---------------------------------------------------------------------------
5151 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5152 *--------------------------------------------------------------------------*/
5153typedef PACKED_PRE struct PACKED_POST {
5154 tANI_U8 staidx; // STA index
5155 tANI_U8 ac; // Access Category
5156 tANI_U8 up; // User Priority
5157 tANI_U32 srvInterval; // Service Interval
5158 tANI_U32 susInterval; // Suspend Interval
5159 tANI_U32 delayInterval; // Delay Interval
5160} tUapsdInfo, tpUapsdInfo;
5161
5162typedef PACKED_PRE struct PACKED_POST
5163{
5164 tHalMsgHeader header;
5165 tUapsdInfo enableUapsdAcParams;
5166} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5167
5168/*---------------------------------------------------------------------------
5169 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5170 *--------------------------------------------------------------------------*/
5171typedef PACKED_PRE struct PACKED_POST {
5172 tANI_U8 setMcstBcstFilterSetting;
5173 tANI_U8 setMcstBcstFilter;
5174} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5175
5176typedef PACKED_PRE struct PACKED_POST
5177{
5178 tHalMsgHeader header;
5179 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5180} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5181
5182/*---------------------------------------------------------------------------
5183 * WLAN_HAL_ENTER_IMPS_RSP
5184 *--------------------------------------------------------------------------*/
5185typedef PACKED_PRE struct PACKED_POST
5186{
5187 /* success or failure */
5188 tANI_U32 status;
5189} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5190
5191typedef PACKED_PRE struct PACKED_POST
5192{
5193 tHalMsgHeader header;
5194 tHalEnterImpsRspParams enterImpsRspParams;
5195} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5196
5197/*---------------------------------------------------------------------------
5198 * WLAN_HAL_EXIT_IMPS_RSP
5199 *--------------------------------------------------------------------------*/
5200typedef PACKED_PRE struct PACKED_POST
5201{
5202 /* success or failure */
5203 tANI_U32 status;
5204} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5205
5206typedef PACKED_PRE struct PACKED_POST
5207{
5208 tHalMsgHeader header;
5209 tHalExitImpsRspParams exitImpsRspParams;
5210} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5211
5212/*---------------------------------------------------------------------------
5213 * WLAN_HAL_ENTER_BMPS_RSP
5214 *--------------------------------------------------------------------------*/
5215typedef PACKED_PRE struct PACKED_POST
5216{
5217 /* success or failure */
5218 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005219 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005220} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5221
5222typedef PACKED_PRE struct PACKED_POST
5223{
5224 tHalMsgHeader header;
5225 tHalEnterBmpsRspParams enterBmpsRspParams;
5226} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5227
5228/*---------------------------------------------------------------------------
5229 * WLAN_HAL_EXIT_BMPS_RSP
5230 *--------------------------------------------------------------------------*/
5231typedef PACKED_PRE struct PACKED_POST
5232{
5233 /* success or failure */
5234 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005235 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005236} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5237
5238typedef PACKED_PRE struct PACKED_POST
5239{
5240 tHalMsgHeader header;
5241 tHalExitBmpsRspParams exitBmpsRspParams;
5242} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5243
5244/*---------------------------------------------------------------------------
5245 * WLAN_HAL_ENTER_UAPSD_RSP
5246 *--------------------------------------------------------------------------*/
5247typedef PACKED_PRE struct PACKED_POST
5248{
5249 /* success or failure */
5250 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005251 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005252}tUapsdRspParams, *tpUapsdRspParams;
5253
5254typedef PACKED_PRE struct PACKED_POST
5255{
5256 tHalMsgHeader header;
5257 tUapsdRspParams enterUapsdRspParams;
5258} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5259
5260/*---------------------------------------------------------------------------
5261 * WLAN_HAL_EXIT_UAPSD_RSP
5262 *--------------------------------------------------------------------------*/
5263typedef PACKED_PRE struct PACKED_POST
5264{
5265 /* success or failure */
5266 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005267 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005268} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5269
5270typedef PACKED_PRE struct PACKED_POST
5271{
5272 tHalMsgHeader header;
5273 tHalExitUapsdRspParams exitUapsdRspParams;
5274} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5275
5276/*---------------------------------------------------------------------------
5277 * WLAN_HAL_RSSI_NOTIFICATION_IND
5278 *--------------------------------------------------------------------------*/
5279typedef PACKED_PRE struct PACKED_POST
5280{
5281 tANI_U32 bRssiThres1PosCross : 1;
5282 tANI_U32 bRssiThres1NegCross : 1;
5283 tANI_U32 bRssiThres2PosCross : 1;
5284 tANI_U32 bRssiThres2NegCross : 1;
5285 tANI_U32 bRssiThres3PosCross : 1;
5286 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005287 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005288 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005289 tANI_U32 isBTCoexCompromise : 1;
5290 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005291 tANI_S8 refRssiThreshold1;
5292 tANI_S8 refRssiThreshold2;
5293 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005294} tHalRSSINotification, *tpHalRSSINotification;
5295
5296typedef PACKED_PRE struct PACKED_POST
5297{
5298 tHalMsgHeader header;
5299 tHalRSSINotification rssiNotificationParams;
5300} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5301
5302/*---------------------------------------------------------------------------
5303 * WLAN_HAL_GET_RSSI_RSP
5304 *--------------------------------------------------------------------------*/
5305typedef PACKED_PRE struct PACKED_POST
5306{
5307 /* success or failure */
5308 tANI_U32 status;
5309 tANI_S8 rssi;
5310} tHalGetRssiParams, *tpHalGetRspParams;
5311
5312typedef PACKED_PRE struct PACKED_POST
5313{
5314 tHalMsgHeader header;
5315 tHalGetRssiParams rssiRspParams;
5316} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5317
5318/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005319 * WLAN_HAL_GET_ROAM_RSSI_RSP
5320 *--------------------------------------------------------------------------*/
5321typedef PACKED_PRE struct PACKED_POST
5322{
5323 /* success or failure */
5324 tANI_U32 status;
5325
5326 tANI_U8 staId;
5327 tANI_S8 rssi;
5328} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5329
5330typedef PACKED_PRE struct PACKED_POST
5331{
5332 tHalMsgHeader header;
5333 tHalGetRoamRssiParams roamRssiRspParams;
5334} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5335
5336/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005337 * WLAN_HAL_ENTER_WOWL_RSP
5338 *--------------------------------------------------------------------------*/
5339typedef PACKED_PRE struct PACKED_POST
5340{
5341 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005342 tANI_U32 status;
5343 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005344} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5345
5346typedef PACKED_PRE struct PACKED_POST
5347{
5348 tHalMsgHeader header;
5349 tHalEnterWowlRspParams enterWowlRspParams;
5350} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5351
5352/*---------------------------------------------------------------------------
5353 * WLAN_HAL_EXIT_WOWL_RSP
5354 *--------------------------------------------------------------------------*/
5355typedef PACKED_PRE struct PACKED_POST
5356{
5357 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005358 tANI_U32 status;
5359 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005360} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5361
5362typedef PACKED_PRE struct PACKED_POST
5363{
5364 tHalMsgHeader header;
5365 tHalExitWowlRspParams exitWowlRspParams;
5366} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5367
5368/*---------------------------------------------------------------------------
5369 * WLAN_HAL_ADD_BCN_FILTER_RSP
5370 *--------------------------------------------------------------------------*/
5371typedef PACKED_PRE struct PACKED_POST
5372{
5373 /* success or failure */
5374 tANI_U32 status;
5375} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5376
5377typedef PACKED_PRE struct PACKED_POST
5378{
5379 tHalMsgHeader header;
5380 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5381} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5382
5383/*---------------------------------------------------------------------------
5384 * WLAN_HAL_REM_BCN_FILTER_RSP
5385 *--------------------------------------------------------------------------*/
5386typedef PACKED_PRE struct PACKED_POST
5387{
5388 /* success or failure */
5389 tANI_U32 status;
5390} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5391
5392typedef PACKED_PRE struct PACKED_POST
5393{
5394 tHalMsgHeader header;
5395 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5396} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5397
5398/*---------------------------------------------------------------------------
5399 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5400 *--------------------------------------------------------------------------*/
5401typedef PACKED_PRE struct PACKED_POST
5402{
5403 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005404 tANI_U32 status;
5405 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005406} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5407
5408typedef PACKED_PRE struct PACKED_POST
5409{
5410 tHalMsgHeader header;
5411 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5412} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5413
5414/*---------------------------------------------------------------------------
5415 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5416 *--------------------------------------------------------------------------*/
5417typedef PACKED_PRE struct PACKED_POST
5418{
5419 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005420 tANI_U32 status;
5421 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005422} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5423
5424typedef PACKED_PRE struct PACKED_POST
5425{
5426 tHalMsgHeader header;
5427 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5428} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5429
5430/*---------------------------------------------------------------------------
5431 * WLAN_HAL_HOST_OFFLOAD_RSP
5432 *--------------------------------------------------------------------------*/
5433typedef PACKED_PRE struct PACKED_POST
5434{
5435 /* success or failure */
5436 tANI_U32 status;
5437} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5438
5439typedef PACKED_PRE struct PACKED_POST
5440{
5441 tHalMsgHeader header;
5442 tHalHostOffloadRspParams hostOffloadRspParams;
5443} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5444
5445/*---------------------------------------------------------------------------
5446 * WLAN_HAL_KEEP_ALIVE_RSP
5447 *--------------------------------------------------------------------------*/
5448typedef PACKED_PRE struct PACKED_POST
5449{
5450 /* success or failure */
5451 tANI_U32 status;
5452} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5453
5454typedef PACKED_PRE struct PACKED_POST
5455{
5456 tHalMsgHeader header;
5457 tHalKeepAliveRspParams keepAliveRspParams;
5458} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5459
5460/*---------------------------------------------------------------------------
5461 * WLAN_HAL_SET_RSSI_THRESH_RSP
5462 *--------------------------------------------------------------------------*/
5463typedef PACKED_PRE struct PACKED_POST
5464{
5465 /* success or failure */
5466 tANI_U32 status;
5467} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5468
5469typedef PACKED_PRE struct PACKED_POST
5470{
5471 tHalMsgHeader header;
5472 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5473} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5474
5475/*---------------------------------------------------------------------------
5476 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5477 *--------------------------------------------------------------------------*/
5478typedef PACKED_PRE struct PACKED_POST
5479{
5480 /* success or failure */
5481 tANI_U32 status;
5482} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5483
5484typedef PACKED_PRE struct PACKED_POST
5485{
5486 tHalMsgHeader header;
5487 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5488} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5489
5490/*---------------------------------------------------------------------------
5491 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5492 *--------------------------------------------------------------------------*/
5493typedef PACKED_PRE struct PACKED_POST
5494{
5495 /* success or failure */
5496 tANI_U32 status;
5497} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5498
5499typedef PACKED_PRE struct PACKED_POST
5500{
5501 tHalMsgHeader header;
5502 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5503} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5504
5505/*---------------------------------------------------------------------------
5506 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5507 *--------------------------------------------------------------------------*/
5508
5509typedef PACKED_PRE struct PACKED_POST
5510{
5511 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5512 //the request has power constraints, this should be applied only to that session
5513 tSirMacAddr selfStaMacAddr;
5514 //In request,
5515 //power == MaxTx power to be used.
5516 tPowerdBm power;
5517
5518}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5519
5520
5521typedef PACKED_PRE struct PACKED_POST
5522{
5523 tHalMsgHeader header;
5524 tSetMaxTxPwrParams setMaxTxPwrParams;
5525}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5526
5527/*---------------------------------------------------------------------------
5528*WLAN_HAL_SET_MAX_TX_POWER_RSP
5529*--------------------------------------------------------------------------*/
5530
5531typedef PACKED_PRE struct PACKED_POST
5532{
5533 //power == tx power used for management frames.
5534 tPowerdBm power;
5535
5536 /* success or failure */
5537 tANI_U32 status;
5538}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5539
5540typedef PACKED_PRE struct PACKED_POST
5541{
5542 tHalMsgHeader header;
5543 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5544}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5545
Kumar Anandea78e792013-10-10 23:47:01 -07005546
Jeff Johnson295189b2012-06-20 16:38:30 -07005547/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005548 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5549 *--------------------------------------------------------------------------*/
5550
5551/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5552typedef enum
5553{
5554 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5555 // For 2.4GHz or 5GHz bands
5556 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5557 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5558 // End of valid enums
5559 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5560}tHalSetMaxTxPwrBandInfo;
5561
5562typedef PACKED_PRE struct PACKED_POST
5563{
5564 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005565 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005566}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5567
Kumar Anandea78e792013-10-10 23:47:01 -07005568
Arif Hussain36fda162013-08-30 14:46:57 -07005569typedef PACKED_PRE struct PACKED_POST
5570{
5571 tHalMsgHeader header;
5572 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5573}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5574
5575/*---------------------------------------------------------------------------
5576*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5577*--------------------------------------------------------------------------*/
5578
5579typedef PACKED_PRE struct PACKED_POST
5580{
5581 //power == tx power used for management frames.
5582 tPowerdBm power;
5583
5584 /* success or failure */
5585 tANI_U32 status;
5586}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5587
5588typedef PACKED_PRE struct PACKED_POST
5589{
5590 tHalMsgHeader header;
5591 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5592}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5593
5594/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005595 *WLAN_HAL_SET_TX_POWER_REQ
5596 *--------------------------------------------------------------------------*/
5597
5598typedef PACKED_PRE struct PACKED_POST
5599{
5600 /* TX Power in milli watts */
5601 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005602 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005603}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5604
5605
5606typedef PACKED_PRE struct PACKED_POST
5607{
5608 tHalMsgHeader header;
5609 tSetTxPwrReqParams setTxPwrReqParams;
5610}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5611
5612/*---------------------------------------------------------------------------
5613*WLAN_HAL_SET_TX_POWER_RSP
5614*--------------------------------------------------------------------------*/
5615
5616typedef PACKED_PRE struct PACKED_POST
5617{
5618 /* success or failure */
5619 tANI_U32 status;
5620}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5621
5622typedef PACKED_PRE struct PACKED_POST
5623{
5624 tHalMsgHeader header;
5625 tSetTxPwrRspParams setTxPwrRspParams;
5626}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5627
5628/*---------------------------------------------------------------------------
5629 *WLAN_HAL_GET_TX_POWER_REQ
5630 *--------------------------------------------------------------------------*/
5631
5632typedef PACKED_PRE struct PACKED_POST
5633{
5634 tANI_U8 staId;
5635}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5636
5637typedef PACKED_PRE struct PACKED_POST
5638{
5639 tHalMsgHeader header;
5640 tGetTxPwrReqParams getTxPwrReqParams;
5641}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5642
5643/*---------------------------------------------------------------------------
5644*WLAN_HAL_GET_TX_POWER_RSP
5645*--------------------------------------------------------------------------*/
5646
5647typedef PACKED_PRE struct PACKED_POST
5648{
5649 /* success or failure */
5650 tANI_U32 status;
5651
5652 /* TX Power in milli watts */
5653 tANI_U32 txPower;
5654}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5655
5656typedef PACKED_PRE struct PACKED_POST
5657{
5658 tHalMsgHeader header;
5659 tGetTxPwrRspParams getTxPwrRspParams;
5660}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5661
5662#ifdef WLAN_FEATURE_P2P
5663/*---------------------------------------------------------------------------
5664 *WLAN_HAL_SET_P2P_GONOA_REQ
5665 *--------------------------------------------------------------------------*/
5666
5667typedef PACKED_PRE struct PACKED_POST
5668{
5669 tANI_U8 opp_ps;
5670 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305671 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005672 tANI_U32 duration;
5673 tANI_U32 interval;
5674 tANI_U32 single_noa_duration;
5675 tANI_U8 psSelection;
5676}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5677
5678
5679typedef PACKED_PRE struct PACKED_POST
5680{
5681 tHalMsgHeader header;
5682 tSetP2PGONOAParams setP2PGONOAParams;
5683}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5684
5685/*---------------------------------------------------------------------------
5686*WLAN_HAL_SET_P2P_GONOA_RSP
5687*--------------------------------------------------------------------------*/
5688
5689typedef PACKED_PRE struct PACKED_POST
5690{
5691 /* success or failure */
5692 tANI_U32 status;
5693}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5694
5695typedef PACKED_PRE struct PACKED_POST
5696{
5697 tHalMsgHeader header;
5698 tSetP2PGONOARspParams setP2PGONOARspParams;
5699}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5700#endif
5701
5702/*---------------------------------------------------------------------------
5703 *WLAN_HAL_ADD_SELF_STA_REQ
5704 *--------------------------------------------------------------------------*/
5705
5706typedef PACKED_PRE struct PACKED_POST
5707{
5708 tSirMacAddr selfMacAddr;
5709 tANI_U32 status;
5710}tAddStaSelfParams, *tpAddStaSelfParams;
5711
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005712typedef PACKED_PRE struct PACKED_POST
5713{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005714 tHalMsgHeader header;
5715 tAddStaSelfParams addStaSelfParams;
5716}tAddStaSelfReq, *tpAddStaSelfReq;
5717
5718/* This V1 structure carries additionally the IFACE PERSONA
5719 of the interface as compared to the legacy control
5720 message */
5721typedef PACKED_PRE struct PACKED_POST
5722{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005723 tSirMacAddr selfMacAddr;
5724 tANI_U32 status;
5725 tHalIfacePersona iface_persona;
5726}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005727
5728typedef PACKED_PRE struct PACKED_POST
5729{
5730 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005731 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005732}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005733
5734/*---------------------------------------------------------------------------
5735*WLAN_HAL_ADD_SELF_STA_RSP
5736*--------------------------------------------------------------------------*/
5737
5738typedef PACKED_PRE struct PACKED_POST
5739{
5740 /* success or failure */
5741 tANI_U32 status;
5742
5743 /*Self STA Index */
5744 tANI_U8 selfStaIdx;
5745
5746 /* DPU Index (IGTK, PTK, GTK all same) */
5747 tANI_U8 dpuIdx;
5748
5749 /* DPU Signature */
5750 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305751
Jeff Johnson295189b2012-06-20 16:38:30 -07005752}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5753
5754typedef PACKED_PRE struct PACKED_POST
5755{
5756 tHalMsgHeader header;
5757 tAddStaSelfRspParams addStaSelfRspParams;
5758}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5759
5760
5761/*---------------------------------------------------------------------------
5762 WLAN_HAL_DEL_STA_SELF_REQ
5763---------------------------------------------------------------------------*/
5764
5765typedef PACKED_PRE struct PACKED_POST
5766{
5767 tSirMacAddr selfMacAddr;
5768
5769}tDelStaSelfParams, *tpDelStaSelfParams;
5770
5771typedef PACKED_PRE struct PACKED_POST
5772{
5773 tHalMsgHeader header;
5774 tDelStaSelfParams delStaSelfParams;
5775} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5776
5777
5778/*---------------------------------------------------------------------------
5779 WLAN_HAL_DEL_STA_SELF_RSP
5780---------------------------------------------------------------------------*/
5781
5782typedef PACKED_PRE struct PACKED_POST
5783{
5784 /*success or failure */
5785 tANI_U32 status;
5786
5787 tSirMacAddr selfMacAddr;
5788}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5789
5790typedef PACKED_PRE struct PACKED_POST
5791{
5792 tHalMsgHeader header;
5793 tDelStaSelfRspParams delStaSelfRspParams;
5794} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5795
5796
5797#ifdef WLAN_FEATURE_VOWIFI_11R
5798
5799/*---------------------------------------------------------------------------
5800 *WLAN_HAL_AGGR_ADD_TS_REQ
5801 *--------------------------------------------------------------------------*/
5802
5803typedef PACKED_PRE struct PACKED_POST
5804{
5805 /* Station Index */
5806 tANI_U16 staIdx;
5807
5808 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5809 /* This will carry the bitmap with the bit positions representing different AC.s*/
5810 tANI_U16 tspecIdx;
5811
5812 /* Tspec info per AC To program TPE with required parameters */
5813 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5814
5815 /* U-APSD Flags: 1b per AC. Encoded as follows:
5816 b7 b6 b5 b4 b3 b2 b1 b0 =
5817 X X X X BE BK VI VO */
5818 tANI_U8 uAPSD;
5819
5820 /* These parameters are for all the access categories */
5821 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5822 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5823 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5824
5825}tAggrAddTsParams, *tpAggrAddTsParams;
5826
5827
5828typedef PACKED_PRE struct PACKED_POST
5829{
5830 tHalMsgHeader header;
5831 tAggrAddTsParams aggrAddTsParam;
5832}tAggrAddTsReq, *tpAggrAddTsReq;
5833
5834/*---------------------------------------------------------------------------
5835*WLAN_HAL_AGGR_ADD_TS_RSP
5836*--------------------------------------------------------------------------*/
5837
5838typedef PACKED_PRE struct PACKED_POST
5839{
5840 /* success or failure */
5841 tANI_U32 status0;
5842 /* FIXME PRIMA for future use for 11R */
5843 tANI_U32 status1;
5844}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5845
5846typedef PACKED_PRE struct PACKED_POST
5847{
5848 tHalMsgHeader header;
5849 tAggrAddTsRspParams aggrAddTsRspParam;
5850}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5851
5852#endif
5853
5854/*---------------------------------------------------------------------------
5855 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5856 *--------------------------------------------------------------------------*/
5857typedef PACKED_PRE struct PACKED_POST
5858{
5859 tANI_U8 isAppsCpuAwake;
5860} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5861
5862typedef PACKED_PRE struct PACKED_POST
5863{
5864 tHalMsgHeader header;
5865 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5866} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5867
5868/*---------------------------------------------------------------------------
5869 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5870 *--------------------------------------------------------------------------*/
5871typedef PACKED_PRE struct PACKED_POST
5872{
5873 /* success or failure */
5874 tANI_U32 status;
5875} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5876
5877typedef PACKED_PRE struct PACKED_POST
5878{
5879 tHalMsgHeader header;
5880 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5881} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5882/*---------------------------------------------------------------------------
5883 * WLAN_HAL_DUMP_COMMAND_REQ
5884 *--------------------------------------------------------------------------*/
5885
5886typedef PACKED_PRE struct PACKED_POST
5887{
5888 tANI_U32 argument1;
5889 tANI_U32 argument2;
5890 tANI_U32 argument3;
5891 tANI_U32 argument4;
5892 tANI_U32 argument5;
5893
5894}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5895
5896typedef PACKED_PRE struct PACKED_POST
5897{
5898 tHalMsgHeader header;
5899 tHalDumpCmdReqParams dumpCmdReqParams;
5900} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5901
5902/*---------------------------------------------------------------------------
5903 * WLAN_HAL_DUMP_COMMAND_RSP
5904 *--------------------------------------------------------------------------*/
5905
5906typedef PACKED_PRE struct PACKED_POST
5907{
5908 /* success or failure */
5909 tANI_U32 status;
5910 /*Length of the responce message*/
5911 tANI_U32 rspLength;
5912 /*FiXME: Currently considering the the responce will be less than 100bytes */
5913 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305914
Jeff Johnson295189b2012-06-20 16:38:30 -07005915} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5916
5917typedef PACKED_PRE struct PACKED_POST
5918{
5919 tHalMsgHeader header;
5920 tHalDumpCmdRspParams dumpCmdRspParams;
5921} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5922
5923/*---------------------------------------------------------------------------
5924 *WLAN_HAL_COEX_IND
5925 *-------------------------------------------------------------------------*/
5926#define WLAN_COEX_IND_DATA_SIZE (4)
5927#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5928#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005929#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5930#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005931#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5932#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305933#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5934#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305935#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Abhishek Singh1bb2bc22017-01-02 10:38:38 +05305936#define WLAN_COEX_IND_TYPE_HID_CONNECTED_WLAN_CONNECTED_IN_2p4 (9)
5937#define WLAN_COEX_IND_TYPE_HID_DISCONNECTED_WLAN_CONNECTED_IN_2p4 (10)
Jeff Johnson295189b2012-06-20 16:38:30 -07005938
5939typedef PACKED_PRE struct PACKED_POST
5940{
5941 /*Coex Indication Type*/
5942 tANI_U32 coexIndType;
5943
5944 /*Coex Indication Data*/
5945 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5946}tCoexIndParams,*tpCoexIndParams;
5947
5948typedef PACKED_PRE struct PACKED_POST
5949{
5950 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305951 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005952}tCoexIndMsg, *tpCoexIndMsg;
5953
5954/*---------------------------------------------------------------------------
5955 *WLAN_HAL_OTA_TX_COMPL_IND
5956 *-------------------------------------------------------------------------*/
5957
5958typedef PACKED_PRE struct PACKED_POST
5959{
5960 /*Tx Complete Indication Success or Failure*/
5961 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305962 /* Dialog token */
5963 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005964}tTxComplParams,*tpTxComplParams;
5965
5966typedef PACKED_PRE struct PACKED_POST
5967{
5968 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305969 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005970}tTxComplIndMsg, *tpTxComplIndMsg;
5971
5972/*---------------------------------------------------------------------------
5973 * WLAN_HAL_HOST_SUSPEND_IND
5974 *-------------------------------------------------------------------------*/
5975
5976typedef PACKED_PRE struct PACKED_POST
5977{
5978 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305979 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005980}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5981
5982typedef PACKED_PRE struct PACKED_POST
5983{
5984 tHalMsgHeader header;
5985 tHalWlanHostSuspendIndParam suspendIndParams;
5986}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5987
5988/*---------------------------------------------------------------------------
5989 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5990 *-------------------------------------------------------------------------*/
5991
5992typedef PACKED_PRE struct PACKED_POST
5993{
5994 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305995 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005996}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5997
5998typedef PACKED_PRE struct PACKED_POST
5999{
6000 tHalMsgHeader header;
6001 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
6002}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
6003
6004#ifdef WLAN_FEATURE_P2P
6005/*---------------------------------------------------------------------------
6006 *WLAN_HAL_NOA_ATTR_IND
6007 *-------------------------------------------------------------------------*/
6008
6009typedef PACKED_PRE struct PACKED_POST
6010{
6011 tANI_U8 index ;
6012 tANI_U8 oppPsFlag ;
6013 tANI_U16 ctWin ;
6014
6015 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08006016 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006017 tANI_U32 uNoa1Duration;
6018 tANI_U32 uNoa1Interval;
6019 tANI_U32 uNoa1StartTime;
6020
6021 tANI_U16 uNoa2IntervalCnt;
6022 tANI_U16 rsvd2;
6023 tANI_U32 uNoa2Duration;
6024 tANI_U32 uNoa2Interval;
6025 tANI_U32 uNoa2StartTime;
6026
6027 tANI_U32 status;
6028}tNoaAttrIndParams, *tpNoaAttrIndParams;
6029
6030typedef PACKED_PRE struct PACKED_POST
6031{
6032 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05306033 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006034}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08006035
6036/*---------------------------------------------------------------------------
6037 *WLAN_HAL_NOA_START_IND
6038 *-------------------------------------------------------------------------*/
6039
6040typedef PACKED_PRE struct PACKED_POST
6041{
6042 tANI_U32 status;
6043 tANI_U32 bssIdx;
6044}tNoaStartIndParams, *tpNoaStartIndParams;
6045
6046typedef PACKED_PRE struct PACKED_POST
6047{
6048 tHalMsgHeader header;
6049 tNoaStartIndParams noaStartIndParams;
6050}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07006051#endif
6052
6053/*---------------------------------------------------------------------------
6054 * WLAN_HAL_HOST_RESUME_REQ
6055 *-------------------------------------------------------------------------*/
6056
6057typedef PACKED_PRE struct PACKED_POST
6058{
6059 tANI_U8 configuredMcstBcstFilterSetting;
6060}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
6061
6062typedef PACKED_PRE struct PACKED_POST
6063{
6064 tHalMsgHeader header;
6065 tHalWlanHostResumeReqParam resumeReqParams;
6066}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
6067
6068/*---------------------------------------------------------------------------
6069 * WLAN_HAL_HOST_RESUME_RSP
6070 *--------------------------------------------------------------------------*/
6071typedef PACKED_PRE struct PACKED_POST
6072{
6073 /* success or failure */
6074 tANI_U32 status;
6075} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
6076
6077typedef PACKED_PRE struct PACKED_POST
6078{
6079 tHalMsgHeader header;
6080 tHalHostResumeRspParams hostResumeRspParams;
6081} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
6082
Anand Kumar012623a2013-01-11 17:00:00 -08006083typedef PACKED_PRE struct PACKED_POST
6084{
6085 tANI_U16 staIdx;
6086 // Peer MAC Address, whose BA session has timed out
6087 tSirMacAddr peerMacAddr;
6088 // TID for which a BA session timeout is being triggered
6089 tANI_U8 baTID;
6090 // DELBA direction
6091 // 1 - Originator
6092 // 0 - Recipient
6093 tANI_U8 baDirection;
6094 tANI_U32 reasonCode;
6095 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6096} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6097
6098typedef PACKED_PRE struct PACKED_POST
6099{
6100 tHalMsgHeader header;
6101 tHalWlanDelBaIndMsg hostdelBaParam;
6102} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6103
Jeff Johnson295189b2012-06-20 16:38:30 -07006104/*---------------------------------------------------------------------------
6105 *PNO Messages
6106 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006107/* Max number of channels that a network can be found on*/
6108/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6109 * be changed at same time
6110 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006111#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006112
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306113/*Max number of channels that a network can be found on*/
6114#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6115
Jeff Johnson295189b2012-06-20 16:38:30 -07006116/*Maximum numbers of networks supported by PNO*/
6117#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6118
6119/*The number of scan time intervals that can be programmed into PNO*/
6120#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6121
6122/*Maximum size of the probe template*/
6123#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6124
Dino Mycle8afbac12014-07-04 22:06:17 +05306125/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006126 Immediate - scanning will start immediately and PNO procedure will
6127 be repeated based on timer
6128 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006129 Resume - scanning will start on system resume
6130 Delay - start the scan timer to trigger PNO scan
6131 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006132typedef enum
6133{
6134 ePNO_MODE_IMMEDIATE,
6135 ePNO_MODE_ON_SUSPEND,
6136 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306137 ePNO_MODE_DELAY,
6138 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006139 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6140} ePNOMode;
6141
6142/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306143typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006144{
Dino Mycle8afbac12014-07-04 22:06:17 +05306145 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006146 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306147
Jeff Johnson295189b2012-06-20 16:38:30 -07006148 // Upper layer authentication types
6149 eAUTH_TYPE_WPA = 2,
6150 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306151
Jeff Johnson295189b2012-06-20 16:38:30 -07006152 eAUTH_TYPE_RSN = 4,
6153 eAUTH_TYPE_RSN_PSK = 5,
6154 eAUTH_TYPE_FT_RSN = 6,
6155 eAUTH_TYPE_FT_RSN_PSK = 7,
6156 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6157 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006158 eAUTH_TYPE_CCKM_WPA = 10,
6159 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306160 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6161 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306162
Jeff Johnson295189b2012-06-20 16:38:30 -07006163 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6164
6165}tAuthType;
6166
6167/* Encryption type */
6168typedef enum eEdType
6169{
6170 eED_ANY = 0,
6171 eED_NONE = 1,
6172 eED_WEP = 2,
6173 eED_TKIP = 3,
6174 eED_CCMP = 4,
6175 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306176
Jeff Johnson295189b2012-06-20 16:38:30 -07006177 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6178} tEdType;
6179
6180/* SSID broadcast type */
6181typedef enum eSSIDBcastType
6182{
6183 eBCAST_UNKNOWN = 0,
6184 eBCAST_NORMAL = 1,
6185 eBCAST_HIDDEN = 2,
6186
6187 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6188} tSSIDBcastType;
6189
Dino Mycle8afbac12014-07-04 22:06:17 +05306190/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006191 The network description for which PNO will have to look for
6192*/
6193typedef PACKED_PRE struct PACKED_POST
6194{
6195 /*SSID of the BSS*/
6196 tSirMacSSid ssId;
6197
6198 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306199 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006200
6201 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306202 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006203
Dino Mycle8afbac12014-07-04 22:06:17 +05306204 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006205 0 - if all channels */
6206 tANI_U8 ucChannelCount;
6207 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6208
6209 /*Indicates the RSSI threshold for the network to be considered*/
6210 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306211}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006212
6213typedef PACKED_PRE struct PACKED_POST
6214{
6215 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306216 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006217
Dino Mycle8afbac12014-07-04 22:06:17 +05306218 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006219 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306220 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006221
Dino Mycle8afbac12014-07-04 22:06:17 +05306222 /*e.g: 2 3
6223 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006224 - it will wait 2s between consecutive scans for 3 times
6225 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306226}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006227
Dino Mycle8afbac12014-07-04 22:06:17 +05306228/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006229 The network parameters to be sent to the PNO algorithm
6230*/
6231typedef PACKED_PRE struct PACKED_POST
6232{
6233 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306234 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006235
Dino Mycle8afbac12014-07-04 22:06:17 +05306236 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006237 two consecutive scan procedures
6238 If the desired is for a uniform timer that fires always at the exact same
6239 interval - one single value is to be set
6240 If there is a desire for a more complex - telescopic like timer multiple
6241 values can be set - once PNO reaches the end of the array it will
6242 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306243 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006244
6245}tScanTimersType;
6246
6247typedef PACKED_PRE struct PACKED_POST {
6248
6249 /*Enable PNO*/
6250 tANI_U32 enable;
6251
6252 /*Immediate, On Suspend, On Resume*/
6253 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306254
Jeff Johnson295189b2012-06-20 16:38:30 -07006255 /*Number of networks sent for PNO*/
6256 tANI_U32 ucNetworksCount;
6257
6258 /*The networks that PNO needs to look for*/
6259 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6260
6261 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306262 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006263
6264 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306265 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006266 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6267
6268 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306269 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006270 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6271
6272} tPrefNetwListParams, * tpPrefNetwListParams;
6273
6274/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306275 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006276*/
6277typedef PACKED_PRE struct PACKED_POST
6278{
6279 tHalMsgHeader header;
6280 tPrefNetwListParams prefNetwListParams;
6281} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6282
6283
Dino Mycle8afbac12014-07-04 22:06:17 +05306284/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006285 The network description for which PNO will have to look for
6286*/
6287typedef PACKED_PRE struct PACKED_POST
6288{
6289 /*SSID of the BSS*/
6290 tSirMacSSid ssId;
6291
6292 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306293 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006294
6295 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306296 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006297
6298 /*SSID broadcast type, normal, hidden or unknown*/
6299 tSSIDBcastType bcastNetworkType;
6300
Dino Mycle8afbac12014-07-04 22:06:17 +05306301 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006302 0 - if all channels */
6303 tANI_U8 ucChannelCount;
6304 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6305
6306 /*Indicates the RSSI threshold for the network to be considered*/
6307 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306308}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006309
6310typedef PACKED_PRE struct PACKED_POST {
6311
6312 /*Enable PNO*/
6313 tANI_U32 enable;
6314
6315 /*Immediate, On Suspend, On Resume*/
6316 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306317
Jeff Johnson295189b2012-06-20 16:38:30 -07006318 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306319 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006320
6321 /*The networks that PNO needs to look for*/
6322 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6323
6324 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306325 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006326
6327 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306328 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006329 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6330
6331 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306332 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006333 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6334
6335} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6336
6337/*
6338 Preferred network list request new
6339*/
6340typedef PACKED_PRE struct PACKED_POST
6341{
6342 tHalMsgHeader header;
6343 tPrefNetwListParamsNew prefNetwListParams;
6344} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6345
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006346#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6347typedef PACKED_PRE struct PACKED_POST
6348{
6349 tSirMacSSid ssId;
6350 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6351 tANI_U32 authentication;
6352 tEdType encryption;
6353 tEdType mcencryption;
6354 tANI_U8 ChannelCount;
6355 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6356}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006357
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006358typedef PACKED_PRE struct PACKED_POST
6359{
6360 tANI_U8 mdiePresent;
6361 tANI_U16 mobilityDomain;
6362}tMobilityDomainInfo;
6363
6364typedef PACKED_PRE struct PACKED_POST {
6365 eAniBoolean RoamScanOffloadEnabled;
6366 tANI_S8 LookupThreshold;
6367 tANI_U8 RoamRssiDiff;
6368 tANI_U8 ChannelCacheType;
6369 tANI_U8 Command;
6370 tANI_U8 StartScanReason;
6371 tANI_U16 NeighborScanTimerPeriod;
6372 tANI_U16 NeighborRoamScanRefreshPeriod;
6373 tANI_U16 NeighborScanChannelMinTime;
6374 tANI_U16 NeighborScanChannelMaxTime;
6375 tANI_U16 EmptyRefreshScanPeriod;
6376 tANI_U8 ValidChannelCount;
6377 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006378 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006379
6380 tANI_U16 us24GProbeSize;
6381 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6382 tANI_U16 us5GProbeSize;
6383 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6384 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006385 tANI_U8 nProbes;
6386 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006387 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006388 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006389 tANI_U8 RoamOffloadEnabled;
6390 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6391 tANI_U8 Prefer5GHz;
6392 tANI_U8 RoamRssiCatGap;
6393 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006394 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6395 tRoamNetworkType ConnectedNetwork;
6396 tMobilityDomainInfo MDID;
6397} tRoamCandidateListParams, * tpRoamCandidateListParams;
6398
6399typedef PACKED_PRE struct PACKED_POST
6400{
Kumar Anandea78e792013-10-10 23:47:01 -07006401 tHalMsgHeader header;
6402 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006403} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6404
6405typedef PACKED_PRE struct PACKED_POST
6406{
Kumar Anandea78e792013-10-10 23:47:01 -07006407 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006408
Kumar Anandea78e792013-10-10 23:47:01 -07006409 /* status of the request - just to indicate that PNO has acknowledged
6410 * the request and will start scanning */
6411 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006412} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6413#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006414
6415/*
6416 Preferred network list response
6417*/
6418typedef PACKED_PRE struct PACKED_POST
6419{
6420 tHalMsgHeader header;
6421
6422 /* status of the request - just to indicate that PNO has acknowledged
6423 * the request and will start scanning*/
6424 tANI_U32 status;
6425} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6426
6427/*
6428 Preferred network indication parameters
6429*/
6430typedef PACKED_PRE struct PACKED_POST {
6431
6432 /*Network that was found with the highest RSSI*/
6433 tSirMacSSid ssId;
6434
6435 /*Indicates the RSSI */
6436 tANI_U8 rssi;
6437
6438 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6439 tANI_U16 frameLength;
6440
6441} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6442
6443/*
6444 Preferred network found indication
6445*/
6446typedef PACKED_PRE struct PACKED_POST {
6447
6448 tHalMsgHeader header;
6449 tPrefNetwFoundParams prefNetwFoundParams;
6450} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6451
6452
6453typedef PACKED_PRE struct PACKED_POST {
6454
6455 /*RSSI Threshold*/
6456 tANI_U8 ucRssiThreshold;
6457
6458} tRssiFilterParams, * tpRssiFilterParams;
6459
Jeff Johnson295189b2012-06-20 16:38:30 -07006460/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306461 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006462*/
6463typedef PACKED_PRE struct PACKED_POST
6464{
6465 tHalMsgHeader header;
6466 tRssiFilterParams prefRSSIFilterParams;
6467} tSetRssiFilterReq, *tpSetRssiFilterReq;
6468
6469/*
6470 Set RSSI filter resp
6471*/
6472typedef PACKED_PRE struct PACKED_POST{
6473 tHalMsgHeader header;
6474 /*status of the request */
6475 tANI_U32 status;
6476} tSetRssiFilterResp, *tpSetRssiFilterResp;
6477/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306478 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006479*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306480typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006481{
6482
6483 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306484 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006485
6486 /*Lets PNO know that host has determined the regulatory domain*/
6487 tANI_U8 b11dResolved;
6488
6489 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306490 tANI_U8 ucChannelCount;
6491 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006492
6493 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306494 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006495
6496 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306497 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006498
6499 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306500 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006501
6502 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306503 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006504
6505 /*Cb State*/
6506 ePhyChanBondState cbState;
6507
6508} tUpdateScanParams, * tpUpdateScanParams;
6509
6510/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306511 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306512*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306513typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306514{
6515
6516 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306517 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306518
6519 /*Lets PNO know that host has determined the regulatory domain*/
6520 tANI_U8 b11dResolved;
6521
6522 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306523 tANI_U8 ucChannelCount;
6524 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306525
6526 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306527 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306528
6529 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306530 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306531
6532 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306533 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306534
6535 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306536 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306537
6538 /*Cb State*/
6539 ePhyChanBondState cbState;
6540
6541} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6542
6543/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006544 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306545 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006546*/
6547typedef PACKED_PRE struct PACKED_POST{
6548
6549 tHalMsgHeader header;
6550 tUpdateScanParams scanParams;
6551} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6552
6553/*
6554 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306555 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006556*/
6557typedef PACKED_PRE struct PACKED_POST{
6558
6559 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306560 tUpdateScanParamsEx scanParams;
6561} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6562
6563/*
6564 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306565 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306566*/
6567typedef PACKED_PRE struct PACKED_POST{
6568
6569 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006570
6571 /*status of the request */
6572 tANI_U32 status;
6573
6574} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6575
6576/*---------------------------------------------------------------------------
6577 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6578 *--------------------------------------------------------------------------*/
6579typedef PACKED_PRE struct PACKED_POST
6580{
6581 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6582 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6583 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6584 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6585} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6586
6587typedef PACKED_PRE struct PACKED_POST
6588{
6589 tHalMsgHeader header;
6590 tHalTxPerTrackingReqParam txPerTrackingParams;
6591} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6592
6593/*---------------------------------------------------------------------------
6594 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6595 *--------------------------------------------------------------------------*/
6596typedef PACKED_PRE struct PACKED_POST
6597{
6598 /* success or failure */
6599 tANI_U32 status;
6600} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6601
6602typedef PACKED_PRE struct PACKED_POST
6603{
6604 tHalMsgHeader header;
6605 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6606} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6607
6608/*---------------------------------------------------------------------------
6609 * WLAN_HAL_TX_PER_HIT_IND
6610 *--------------------------------------------------------------------------*/
6611typedef PACKED_PRE struct PACKED_POST
6612{
6613 tHalMsgHeader header;
6614}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6615
6616/*---------------------------------------------------------------------------
6617 *******************Packet Filtering Definitions Begin*******************
6618 *--------------------------------------------------------------------------*/
6619#define HAL_PROTOCOL_DATA_LEN 8
6620#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6621#define HAL_MAX_NUM_FILTERS 20
6622#define HAL_MAX_CMP_PER_FILTER 10
6623
6624typedef enum
6625{
6626 HAL_RCV_FILTER_TYPE_INVALID,
6627 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6628 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6629 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6630}tHalReceivePacketFilterType;
6631
Dino Mycle8afbac12014-07-04 22:06:17 +05306632typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006633{
6634 HAL_FILTER_PROTO_TYPE_INVALID,
6635 HAL_FILTER_PROTO_TYPE_MAC,
6636 HAL_FILTER_PROTO_TYPE_ARP,
6637 HAL_FILTER_PROTO_TYPE_IPV4,
6638 HAL_FILTER_PROTO_TYPE_IPV6,
6639 HAL_FILTER_PROTO_TYPE_UDP,
6640 HAL_FILTER_PROTO_TYPE_MAX
6641}tHalRcvPktFltProtocolType;
6642
Dino Mycle8afbac12014-07-04 22:06:17 +05306643typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006644{
6645 HAL_FILTER_CMP_TYPE_INVALID,
6646 HAL_FILTER_CMP_TYPE_EQUAL,
6647 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6648 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6649 HAL_FILTER_CMP_TYPE_MAX
6650}tHalRcvPktFltCmpFlagType;
6651
Dino Mycle8afbac12014-07-04 22:06:17 +05306652typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006653{
6654 tANI_U8 protocolLayer;
6655 tANI_U8 cmpFlag;
6656 tANI_U16 dataLength; /* Length of the data to compare */
6657 tANI_U8 dataOffset; /* from start of the respective frame header */
6658 tANI_U8 reserved; /* Reserved field */
6659 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6660 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6661}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6662
6663typedef PACKED_PRE struct PACKED_POST
6664{
6665 tANI_U8 filterId;
6666 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306667 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006668 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006669 tHalRcvPktFilterParams paramsData[1];
6670}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6671
6672typedef PACKED_PRE struct PACKED_POST
6673{
Jeff Johnsone7245742012-09-05 17:12:55 -07006674 tANI_U8 filterId;
6675 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306676 tANI_U8 numParams;
6677 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006678 tANI_U8 bssIdx;
6679 tHalRcvPktFilterParams paramsData[1];
6680}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6681
6682typedef PACKED_PRE struct PACKED_POST
6683{
Jeff Johnson295189b2012-06-20 16:38:30 -07006684 tHalMsgHeader header;
6685 tHalRcvPktFilterCfgType pktFilterCfg;
6686} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6687
Jeff Johnsone7245742012-09-05 17:12:55 -07006688typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006689{
6690 tANI_U8 dataOffset; /* from start of the respective frame header */
6691 tANI_U32 cMulticastAddr;
6692 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006693 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006694} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6695
6696typedef PACKED_PRE struct PACKED_POST
6697{
6698 /* success or failure */
6699 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006700 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006701} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6702
6703typedef PACKED_PRE struct PACKED_POST
6704{
6705 tHalMsgHeader header;
6706 tHalSetPktFilterRspParams pktFilterRspParams;
6707} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6708
Jeff Johnsone7245742012-09-05 17:12:55 -07006709typedef PACKED_PRE struct PACKED_POST
6710{
6711 tANI_U8 bssIdx;
6712} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006713
6714typedef PACKED_PRE struct PACKED_POST
6715{
6716 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006717 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006718} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6719
Jeff Johnsone7245742012-09-05 17:12:55 -07006720
Jeff Johnson295189b2012-06-20 16:38:30 -07006721typedef PACKED_PRE struct PACKED_POST
6722{
6723 tANI_U8 filterId;
6724 tANI_U32 matchCnt;
6725} tHalRcvFltPktMatchCnt;
6726typedef PACKED_PRE struct PACKED_POST
6727{
6728 /* Success or Failure */
6729 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306730 tANI_U32 matchCnt;
6731 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006732 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006733} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6734
6735typedef PACKED_PRE struct PACKED_POST
6736{
6737 tHalMsgHeader header;
6738 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6739} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6740
6741typedef PACKED_PRE struct PACKED_POST
6742{
6743 tANI_U32 status; /* only valid for response message */
6744 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006745 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006746}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6747
6748typedef PACKED_PRE struct PACKED_POST
6749{
6750 tHalMsgHeader header;
6751 tHalRcvFltPktClearParam filterClearParam;
6752} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6753
6754typedef PACKED_PRE struct PACKED_POST
6755{
6756 tHalMsgHeader header;
6757 tHalRcvFltPktClearParam filterClearParam;
6758} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6759
6760typedef PACKED_PRE struct PACKED_POST
6761{
Dino Mycle8afbac12014-07-04 22:06:17 +05306762 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006763 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006764}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6765
6766typedef PACKED_PRE struct PACKED_POST
6767{
6768 tHalMsgHeader header;
6769 tHalRcvFltMcAddrListType mcAddrList;
6770} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6771
6772typedef PACKED_PRE struct PACKED_POST
6773{
6774 tHalMsgHeader header;
6775 tHalRcvFltPktSetMcListRspType rspParam;
6776} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6777
6778
6779/*---------------------------------------------------------------------------
6780 *******************Packet Filtering Definitions End*******************
6781 *--------------------------------------------------------------------------*/
6782
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006783/*
6784 * There are two versions of this message
6785 * Version 1 : Base version
6786 * Current version : Base version + Max LI modulated DTIM
6787 */
6788typedef PACKED_PRE struct PACKED_POST
6789{
6790 /* Ignore DTIM */
6791 tANI_U32 uIgnoreDTIM;
6792
6793 /*DTIM Period*/
6794 tANI_U32 uDTIMPeriod;
6795
6796 /* Listen Interval */
6797 tANI_U32 uListenInterval;
6798
6799 /* Broadcast Multicast Filter */
6800 tANI_U32 uBcastMcastFilter;
6801
6802 /* Beacon Early Termination */
6803 tANI_U32 uEnableBET;
6804
6805 /* Beacon Early Termination Interval */
6806 tANI_U32 uBETInterval;
6807}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6808
6809typedef PACKED_PRE struct PACKED_POST
6810{
6811 tHalMsgHeader header;
6812 tSetPowerParamsVer1Type powerParams;
6813} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6814
Jeff Johnson295189b2012-06-20 16:38:30 -07006815typedef PACKED_PRE struct PACKED_POST
6816{
6817 /* Ignore DTIM */
6818 tANI_U32 uIgnoreDTIM;
6819
6820 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306821 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006822
6823 /* Listen Interval */
6824 tANI_U32 uListenInterval;
6825
6826 /* Broadcast Multicast Filter */
6827 tANI_U32 uBcastMcastFilter;
6828
6829 /* Beacon Early Termination */
6830 tANI_U32 uEnableBET;
6831
6832 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306833 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006834
6835 /* MAX LI for modulated DTIM */
6836 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006837}tSetPowerParamsType, *tpSetPowerParamsType;
6838
6839typedef PACKED_PRE struct PACKED_POST
6840{
6841 tHalMsgHeader header;
6842 tSetPowerParamsType powerParams;
6843} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6844
6845typedef PACKED_PRE struct PACKED_POST{
6846
6847 tHalMsgHeader header;
6848
6849 /*status of the request */
6850 tANI_U32 status;
6851
6852} tSetPowerParamsResp, *tpSetPowerParamsResp;
6853
6854/*---------------------------------------------------------------------------
6855 ****************Capability bitmap exchange definitions and macros starts*************
6856 *--------------------------------------------------------------------------*/
6857
Anand Kumar012623a2013-01-11 17:00:00 -08006858typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006859 MCC = 0,
6860 P2P = 1,
6861 DOT11AC = 2,
6862 SLM_SESSIONIZATION = 3,
6863 DOT11AC_OPMODE = 4,
6864 SAP32STA = 5,
6865 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006866 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006867 WLANACTIVE_OFFLOAD = 8,
6868 BEACON_OFFLOAD = 9,
6869 SCAN_OFFLOAD = 10,
6870 ROAM_OFFLOAD = 11,
6871 BCN_MISS_OFFLOAD = 12,
6872 STA_POWERSAVE = 13,
6873 STA_ADVANCED_PWRSAVE = 14,
6874 AP_UAPSD = 15,
6875 AP_DFS = 16,
6876 BLOCKACK = 17,
6877 PHY_ERR = 18,
6878 BCN_FILTER = 19,
6879 RTT = 20,
6880 RATECTRL = 21,
6881 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006882 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006883 SPECULATIVE_PS_POLL = 24,
6884 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006885 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006886 WLAN_SCAN_OFFLOAD = 27,
6887 WLAN_PERIODIC_TX_PTRN = 28,
6888 ADVANCE_TDLS = 29,
6889 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306890 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306891 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306892 CH_SWITCH_V1 = 33,
6893 HT40_OBSS_SCAN = 34,
6894 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006895 WLAN_MCADDR_FLT = 36,
6896 WLAN_CH144 = 37,
6897 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306898 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306899 LINK_LAYER_STATS_MEAS = 40,
6900 MU_MIMO = 41,
6901 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306902 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306903 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306904 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306905 DISA = 46,
6906 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306907 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306908 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306909 TDLS_OFF_CHANNEL = 51,
Padma, Santhosh Kumarcfbcf942015-12-08 16:07:47 +05306910 RTT3 = 52,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306911 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306912 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306913 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306914 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306915 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306916 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306917 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306918 WIFI_CONFIG = 61,
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05306919 ANTENNA_DIVERSITY_SELECTION = 62,
Kapil Guptac1043632016-06-25 00:23:30 +05306920 PER_BASED_ROAMING = 63,
Agrawal Ashish1d75aac2016-12-12 12:36:59 +05306921 SAP_MODE_WOW = 64,
6922 SAP_OFFLOADS = 65,
Sravan Kumar Kairam9ba5f5b2016-12-13 13:50:46 +05306923 SAP_BUFF_ALLOC = 66,
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +05306924 MAKE_BEFORE_BREAK = 67,
Anurag Chouhance0f0822017-01-24 15:44:26 +05306925 NUD_DEBUG = 68,
Sreelakshmi Konamki622ea612017-05-15 18:58:56 +05306926 /* 69 reserved for FATAL_EVENT_LOGGING */
6927 /* 70 reserved for WIFI_DUAL_BAND_ENABLE */
6928 PROBE_RSP_TEMPLATE_VER1 = 71,
Kumar Anandea78e792013-10-10 23:47:01 -07006929 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006930} placeHolderInCapBitmap;
6931
Jeff Johnson295189b2012-06-20 16:38:30 -07006932typedef PACKED_PRE struct PACKED_POST{
6933
6934 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006935} tWlanFeatCaps, *tpWlanFeatCaps;
6936
6937typedef PACKED_PRE struct PACKED_POST{
6938
Dino Mycle8afbac12014-07-04 22:06:17 +05306939 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006940 tWlanFeatCaps wlanFeatCaps;
6941
6942} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6943
Jeff Johnsone7245742012-09-05 17:12:55 -07006944#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6945#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006946#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006947#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006948#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006949#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006950#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006951#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306952#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306953#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306954#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306955#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306956#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006957
Jeff Johnsone7245742012-09-05 17:12:55 -07006958tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6959
Jeff Johnson295189b2012-06-20 16:38:30 -07006960#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006961 if ((b)<=127) { \
6962 arr_index = (b)/32; \
6963 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006964 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006965 (a)->featCaps[arr_index] |= (1<<bit_index); \
6966 } \
6967 }
6968#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006969 if ((b)<=127) { \
6970 arr_index = (b)/32; \
6971 bit_index = (b)%32; \
6972 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006973 } \
6974 }
6975#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006976 if ((b)<=127) { \
6977 arr_index = (b)/32; \
6978 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006979 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006980 } \
6981 }
6982
6983/*---------------------------------------------------------------------------
6984 * WLAN_HAL_WAKE_REASON_IND
6985 *--------------------------------------------------------------------------*/
6986
6987/* status codes to help debug rekey failures */
6988typedef enum
6989{
6990 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6991 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6992 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6993 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6994 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6995 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6996 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6997 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6998 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6999 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
7000
7001 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
7002} tGTKRekeyStatus;
7003
7004/* wake reason types */
7005typedef enum
7006{
7007 WLAN_HAL_WAKE_REASON_NONE = 0,
7008 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
7009 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
7010 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
7011 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
7012 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
7013 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
7014 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
7015} tWakeReasonType;
7016
7017/*
7018 Wake Packet which is saved at tWakeReasonParams.DataStart
7019 This data is sent for any wake reasons that involve a packet-based wakeup :
7020
7021 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
7022 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
7023 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
7024 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
7025 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
7026
7027 The information is provided to the host for auditing and debug purposes
7028
7029*/
7030
7031/*
7032 Wake reason indication parameters
7033*/
7034typedef PACKED_PRE struct PACKED_POST
7035{
7036 uint32 ulReason; /* see tWakeReasonType */
7037 uint32 ulReasonArg; /* argument specific to the reason type */
7038 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
7039 HAL truncates the data (i.e. data packets) this length
7040 will be less than the actual length */
7041 uint32 ulActualDataLen; /* actual length of data */
7042 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
7043 see specific wake type */
7044} tWakeReasonParams, *tpWakeReasonParams;
7045
7046/*
7047 Wake reason indication
7048*/
7049typedef PACKED_PRE struct PACKED_POST
7050{
7051 tHalMsgHeader header;
7052 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07007053 tANI_U32 uBssIdx : 8;
7054 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07007055} tHalWakeReasonInd, *tpHalWakeReasonInd;
7056
7057/*---------------------------------------------------------------------------
7058* WLAN_HAL_GTK_OFFLOAD_REQ
7059*--------------------------------------------------------------------------*/
7060
7061#define HAL_GTK_KEK_BYTES 16
7062#define HAL_GTK_KCK_BYTES 16
7063
7064#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
7065
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007066#define GTK_SET_BSS_KEY_TAG 0x1234AA55
7067
Jeff Johnson295189b2012-06-20 16:38:30 -07007068typedef PACKED_PRE struct PACKED_POST
7069{
7070 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05307071 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07007072 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
7073 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07007074 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007075} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
7076
7077typedef PACKED_PRE struct PACKED_POST
7078{
7079 tHalMsgHeader header;
7080 tHalGtkOffloadReqParams gtkOffloadReqParams;
7081} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
7082
7083/*---------------------------------------------------------------------------
7084* WLAN_HAL_GTK_OFFLOAD_RSP
7085*--------------------------------------------------------------------------*/
7086typedef PACKED_PRE struct PACKED_POST
7087{
7088 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07007089 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007090} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
7091
7092typedef PACKED_PRE struct PACKED_POST
7093{
7094 tHalMsgHeader header;
7095 tHalGtkOffloadRspParams gtkOffloadRspParams;
7096} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
7097
7098
7099/*---------------------------------------------------------------------------
7100* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
7101*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07007102typedef PACKED_PRE struct PACKED_POST
7103{
7104 tANI_U8 bssIdx;
7105
7106} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007107
7108typedef PACKED_PRE struct PACKED_POST
7109{
7110 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007111 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007112} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7113
7114/*---------------------------------------------------------------------------
7115* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7116*--------------------------------------------------------------------------*/
7117typedef PACKED_PRE struct PACKED_POST
7118{
7119 tANI_U32 ulStatus; /* success or failure */
7120 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7121 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7122 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7123 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7124 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007125 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007126} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7127
7128typedef PACKED_PRE struct PACKED_POST
7129{
7130 tHalMsgHeader header;
7131 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7132} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7133
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007134/*---------------------------------------------------------------------------
7135* WLAN_HAL_DHCP_IND
7136*--------------------------------------------------------------------------*/
7137typedef PACKED_PRE struct PACKED_POST
7138{
7139 /*Indicates the device mode which indicates about the DHCP activity */
7140 tANI_U8 device_mode;
7141 tSirMacAddr macAddr;
7142} tDHCPInfo, *tpDHCPInfo;
7143
7144typedef PACKED_PRE struct PACKED_POST
7145{
7146 tHalMsgHeader header;
7147 tANI_U32 status; /* success or failure */
7148} tDHCPIndStatus, *tpDHCPIndstatus;
7149
Jeff Johnson295189b2012-06-20 16:38:30 -07007150/*
7151 Thermal Mitigation mode of operation.
7152 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7153 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7154 reducing transmit power
7155 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7156*/
7157typedef enum
7158{
7159 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7160 HAL_THERMAL_MITIGATION_MODE_0,
7161 HAL_THERMAL_MITIGATION_MODE_1,
7162 HAL_THERMAL_MITIGATION_MODE_2,
7163 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7164}tHalThermalMitigationModeType;
7165//typedef tANI_S16 tHalThermalMitigationModeType;
7166
7167/*
7168 Thermal Mitigation level.
7169 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7170 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7171
7172 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7173 level indicates normal mode of operation
7174 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7175 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7176 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7177 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7178*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307179typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007180{
7181 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7182 HAL_THERMAL_MITIGATION_LEVEL_0,
7183 HAL_THERMAL_MITIGATION_LEVEL_1,
7184 HAL_THERMAL_MITIGATION_LEVEL_2,
7185 HAL_THERMAL_MITIGATION_LEVEL_3,
7186 HAL_THERMAL_MITIGATION_LEVEL_4,
7187 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7188}tHalThermalMitigationLevelType;
7189//typedef tANI_S16 tHalThermalMitigationLevelType;
7190
7191typedef PACKED_PRE struct PACKED_POST
7192{
7193 /* Thermal Mitigation Operation Mode */
7194 tHalThermalMitigationModeType thermalMitMode;
7195
7196 /* Thermal Mitigation Level */
7197 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307198
Jeff Johnson295189b2012-06-20 16:38:30 -07007199}tSetThermalMitgationType, *tpSetThermalMitgationType;
7200
7201/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7202typedef PACKED_PRE struct PACKED_POST
7203{
7204 tHalMsgHeader header;
7205 tSetThermalMitgationType thermalMitParams;
7206} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7207
7208typedef PACKED_PRE struct PACKED_POST{
7209
7210 tHalMsgHeader header;
7211
7212 /*status of the request */
7213 tANI_U32 status;
7214
7215} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7216
Dino Mycle8afbac12014-07-04 22:06:17 +05307217/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007218provided to FW from Host via periodic messages */
7219typedef PACKED_PRE struct PACKED_POST {
7220 /* TX stats */
7221 uint32 txBytesPushed;
7222 uint32 txPacketsPushed;
7223
7224 /* RX stats */
7225 uint32 rxBytesRcvd;
7226 uint32 rxPacketsRcvd;
7227 uint32 rxTimeTotal;
7228} tStaStatsClassB, *tpStaStatsClassB;
7229
7230typedef PACKED_PRE struct PACKED_POST {
7231
7232 /* Duration over which this stats was collected */
7233 tANI_U32 duration;
7234
7235 /* Per STA Stats */
7236 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7237} tStatsClassBIndParams, *tpStatsClassBIndParams;
7238
7239typedef PACKED_PRE struct PACKED_POST {
7240
7241 tHalMsgHeader header;
7242
7243 /* Class B Stats */
7244 tStatsClassBIndParams statsClassBIndParams;
7245} tStatsClassBInd, *tpStatsClassBInd;
7246
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307247/*Wifi Proximity paramters in AP mode*/
7248#ifdef FEATURE_WIFI_PROXIMITY
7249
7250typedef PACKED_PRE struct PACKED_POST{
7251
7252 tANI_U8 wifiProximityChannel;
7253 tANI_U32 wifiProximityDuration;
7254 tANI_U32 wifiProximityInterval;
7255 tANI_U32 wifiProximityMode;
7256 tANI_U32 wifiProximityStatus;
7257 tSirMacAddr bssId;
7258 tSirMacSSid ssId;
7259
7260} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7261
7262typedef PACKED_PRE struct PACKED_POST
7263{
7264 tHalMsgHeader header;
7265
7266 tSetWifiProximityReqParam wifiProximityReqParams;
7267
7268}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7269
7270/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7271typedef PACKED_PRE struct PACKED_POST{
7272
7273 tHalMsgHeader header;
7274
7275 /*status of the request */
7276 tANI_U32 status;
7277
7278} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7279
7280#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007281
7282#ifdef FEATURE_SPECULATIVE_PS_POLL
7283/*---------------------------------------------------------------------------
7284 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7285 *--------------------------------------------------------------------------*/
7286typedef PACKED_PRE struct PACKED_POST
7287{
7288 tANI_U8 bssIdx;
7289 tANI_U16 serviceInterval;
7290 tANI_U16 suspendInterval;
7291 tANI_U8 acMask;
7292} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7293
7294typedef PACKED_PRE struct PACKED_POST
7295{
7296 tHalMsgHeader header;
7297 tHalStartSpecPsPollReqParams specPsPollReq;
7298} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7299
7300/*---------------------------------------------------------------------------
7301 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7302 *--------------------------------------------------------------------------*/
7303typedef PACKED_PRE struct PACKED_POST
7304{
7305 /* success or failure */
7306 tANI_U32 status;
7307 tANI_U8 bssIdx;
7308} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7309
7310typedef PACKED_PRE struct PACKED_POST
7311{
7312 tHalMsgHeader header;
7313 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7314} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7315
7316/*---------------------------------------------------------------------------
7317 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7318 *--------------------------------------------------------------------------*/
7319typedef PACKED_PRE struct PACKED_POST
7320{
7321 tHalMsgHeader header;
7322 tANI_U8 bssIdx;
7323} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7324#endif
7325
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307326#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307327#define HAL_MAX_SUPP_CHANNELS 128
7328#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307329/*---------------------------------------------------------------------------
7330 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7331 *-------------------------------------------------------------------------*/
7332typedef PACKED_PRE struct PACKED_POST
7333{
7334 /*STA Index*/
7335 tANI_U16 staIdx;
7336
7337 /* if this is 1, self is initiator and peer is reponder */
7338 tANI_U8 bIsResponder;
7339
7340 /* QoS Info */
7341 tANI_U8 acVOUAPSDFlag:1;
7342 tANI_U8 acVIUAPSDFlag:1;
7343 tANI_U8 acBKUAPSDFlag:1;
7344 tANI_U8 acBEUAPSDFlag:1;
7345 tANI_U8 aAck:1;
7346 tANI_U8 maxServicePeriodLength:2;
7347 tANI_U8 moreDataAck:1;
7348
7349 /*TDLS Peer U-APSD Buffer STA Support*/
7350 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007351
7352 /*TDLS off channel related params */
7353 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307354 tANI_U8 peerCurrOperClass;
7355 tANI_U8 selfCurrOperClass;
7356 tANI_U8 validChannelsLen;
7357 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7358 tANI_U8 validOperClassesLen;
7359 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307360}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7361
7362typedef PACKED_PRE struct PACKED_POST
7363{
7364 tHalMsgHeader header;
7365 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7366} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7367
7368/*---------------------------------------------------------------------------
7369 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7370 *-------------------------------------------------------------------------*/
7371
7372typedef PACKED_PRE struct PACKED_POST
7373{
7374 tANI_U32 status;
7375
7376 /*STA Index*/
7377 tANI_U16 staIdx;
7378} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7379
7380typedef PACKED_PRE struct PACKED_POST
7381{
7382 tHalMsgHeader header;
7383 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7384} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307385/*---------------------------------------------------------------------------
7386 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7387 + *-------------------------------------------------------------------------*/
7388typedef PACKED_PRE struct PACKED_POST
7389{
7390 /*STA Index*/
7391 tANI_U16 staIdx;
7392 /* if this is 1, self is initiator otherwise responder only*/
7393 tANI_U8 isOffchannelInitiator;
7394 /*TDLS off channel related params */
7395 tANI_U8 targetOperClass;
7396 tANI_U8 targetChannel;
7397 tANI_U8 secondaryChannelOffset;
7398 tANI_U8 reserved[32];
7399}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7400
7401typedef PACKED_PRE struct PACKED_POST
7402{
7403 tHalMsgHeader header;
7404 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7405} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7406/*---------------------------------------------------------------------------
7407 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7408 *-------------------------------------------------------------------------*/
7409
7410typedef PACKED_PRE struct PACKED_POST
7411{
7412 tANI_U32 status;
7413 /*STA Index*/
7414 tANI_U16 staIdx;
7415} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7416
7417typedef PACKED_PRE struct PACKED_POST
7418{
7419 tHalMsgHeader header;
7420 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7421} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7422
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307423
7424/*---------------------------------------------------------------------------
7425 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7426 *-------------------------------------------------------------------------*/
7427typedef PACKED_PRE struct PACKED_POST
7428{
7429 /*STA Index*/
7430 tANI_U16 staIdx;
7431}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7432
7433typedef PACKED_PRE struct PACKED_POST
7434{
7435 tHalMsgHeader header;
7436 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7437} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7438
7439/*---------------------------------------------------------------------------
7440 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7441 *-------------------------------------------------------------------------*/
7442
7443typedef PACKED_PRE struct PACKED_POST
7444{
7445 tANI_U32 status;
7446
7447 /*STA Index*/
7448 tANI_U16 staIdx;
7449} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7450
7451typedef PACKED_PRE struct PACKED_POST
7452{
7453 tHalMsgHeader header;
7454 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7455} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7456
7457/*---------------------------------------------------------------------------
7458 *WLAN_HAL_TDLS_IND
7459 *--------------------------------------------------------------------------*/
7460
7461typedef PACKED_PRE struct PACKED_POST
7462{
7463 tANI_U16 assocId;
7464 tANI_U16 staIdx;
7465 tANI_U16 status;
7466 tANI_U16 reasonCode;
7467}tTdlsIndParams, *tpTdlsIndParams;
7468
7469
7470typedef PACKED_PRE struct PACKED_POST
7471{
7472 tHalMsgHeader header;
7473 tTdlsIndParams tdlsIndParams;
7474}tTdlsIndMsg, *tpTdlsIndMsg;
7475
7476#endif
7477
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007478/*---------------------------------------------------------------------------
7479 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7480 *--------------------------------------------------------------------------*/
7481
7482typedef PACKED_PRE struct PACKED_POST
7483{
7484 tANI_U8 bssIdx;
7485 tANI_U8 staIdx;
7486 tSirMacAddr staAddr;
7487}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7488
7489
7490typedef PACKED_PRE struct PACKED_POST
7491{
7492 tHalMsgHeader header;
7493 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7494}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7495
7496
Kumar Anandea78e792013-10-10 23:47:01 -07007497/*********** Scan Offload Related Structures *************/
7498#define HAL_NUM_SCAN_SSID 10
7499#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007500
Kumar Anandea78e792013-10-10 23:47:01 -07007501/*
7502 * Enumetation to indicate scan type (active/passive)
7503 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007504typedef enum
7505{
Kumar Anandea78e792013-10-10 23:47:01 -07007506 eSIR_PASSIVE_SCAN,
7507 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7508} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007509
7510typedef PACKED_PRE struct PACKED_POST
7511{
Kumar Anandea78e792013-10-10 23:47:01 -07007512 tANI_U8 numBssid;
7513 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7514 tANI_U8 numSsid;
7515 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7516 tANI_BOOLEAN hiddenSsid;
7517 tSirMacAddr selfMacAddr;
7518 tSirBssType bssType;
7519 tSirScanType scanType;
7520 tANI_U32 minChannelTime;
7521 tANI_U32 maxChannelTime;
7522 tANI_BOOLEAN p2pSearch;
7523 tANI_U8 channelCount;
7524 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7525 tANI_U16 ieFieldLen;
7526 tANI_U8 ieField[1];
7527}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007528
7529/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007530 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007531 *-------------------------------------------------------------------------*/
7532typedef PACKED_PRE struct PACKED_POST
7533{
Kumar Anandf53016f2013-09-04 15:15:53 -07007534 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007535 tScanOffloadReqType scanOffloadParams;
7536} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007537
7538/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007539 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007540 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007541typedef PACKED_PRE struct PACKED_POST
7542{
7543 tHalMsgHeader header;
7544
7545 /*status of the request - just to indicate SO has acknowledged
7546 * * the request and will start scanning*/
7547 tANI_U32 status;
7548} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7549
7550/*---------------------------------------------------------------------------
7551 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7552 *-------------------------------------------------------------------------*/
7553typedef PACKED_PRE struct PACKED_POST
7554{
7555 tHalMsgHeader header;
7556} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7557
7558/*---------------------------------------------------------------------------
7559 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7560 *-------------------------------------------------------------------------*/
7561typedef PACKED_PRE struct PACKED_POST
7562{
7563 tHalMsgHeader header;
7564
7565 /*status of the request - just to indicate SO has acknowledged
7566 the request and will start scanning*/
7567 tANI_U32 status;
7568} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7569
7570/*
7571 * Enumetation of scan events indicated by firmware to the host
7572 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007573typedef enum
7574{
Kumar Anandea78e792013-10-10 23:47:01 -07007575 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7576 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7577 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7578 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7579 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7580 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7581 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7582 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7583 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7584} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007585
7586typedef PACKED_PRE struct PACKED_POST
7587{
Kumar Anandea78e792013-10-10 23:47:01 -07007588 tScanEventType event;
7589 tANI_U32 channel;
7590 tANI_U32 scanId;
7591} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007592
Kumar Anandea78e792013-10-10 23:47:01 -07007593/*---------------------------------------------------------------------------
7594 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7595 *-------------------------------------------------------------------------*/
7596typedef PACKED_PRE struct PACKED_POST
7597{
7598 tHalMsgHeader header;
7599 tScanOffloadEventInfo scanOffloadInd;
7600} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007601
Kumar Anandea78e792013-10-10 23:47:01 -07007602typedef PACKED_PRE struct PACKED_POST {
7603 /** primary 20 MHz channel frequency in mhz */
7604 tANI_U32 mhz;
7605 /** Center frequency 1 in MHz*/
7606 tANI_U32 band_center_freq1;
7607 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7608 tANI_U32 band_center_freq2;
7609 /* The first 26 bits are a bit mask to indicate any channel flags,
7610 (see WLAN_HAL_CHAN_FLAG*)
7611 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7612 tANI_U32 channel_info;
7613 /** contains min power, max power, reg power and reg class id. */
7614 tANI_U32 reg_info_1;
7615 /** contains antennamax */
7616 tANI_U32 reg_info_2;
7617} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007618
Kumar Anandf53016f2013-09-04 15:15:53 -07007619
Kumar Anandea78e792013-10-10 23:47:01 -07007620typedef enum {
7621 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7622 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7623 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7624 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7625 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7626 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7627 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7628 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7629 WLAN_HAL_MODE_11AC_VHT20 = 8,
7630 WLAN_HAL_MODE_11AC_VHT40 = 9,
7631 WLAN_HAL_MODE_11AC_VHT80 = 10,
7632 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7633 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7634 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7635 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007636
Kumar Anandea78e792013-10-10 23:47:01 -07007637} tChannelPhyModeType;
7638
7639#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7640#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7641#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7642#define WLAN_HAL_CHAN_AP_DISABLED 9
7643#define WLAN_HAL_CHAN_FLAG_DFS 10
7644#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7645#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007646#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7647
7648#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007649 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007650 } while(0)
7651
7652#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007653 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007654
7655#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7656 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7657 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7658 } while(0)
7659#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7660
7661#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7662 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7663 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7664 } while(0)
7665#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7666
7667#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7668 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7669 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7670 } while(0)
7671#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7672#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7673 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7674 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7675 } while(0)
7676#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7677
7678#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7679 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7680 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7681 } while(0)
7682#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7683
7684#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7685 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7686 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7687 } while(0)
7688#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 -07007689
7690typedef PACKED_PRE struct PACKED_POST
7691{
7692 tANI_U8 numChan;
7693 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7694} tUpdateChannelReqType;
7695
7696/*---------------------------------------------------------------------------
7697 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7698 *-------------------------------------------------------------------------*/
7699typedef PACKED_PRE struct PACKED_POST
7700{
7701 tHalMsgHeader header;
7702 tUpdateChannelReqType updateChannelParams;
7703} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7704
7705/*---------------------------------------------------------------------------
7706 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7707 *-------------------------------------------------------------------------*/
7708typedef PACKED_PRE struct PACKED_POST
7709{
7710 tHalMsgHeader header;
7711
7712 /*status of the request - just to indicate SO has acknowledged
7713 * * the request and will start scanning*/
7714 tANI_U32 status;
7715} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7716
7717
7718/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307719 * WLAN_HAL_RMC_RULER_REQ
7720 *-------------------------------------------------------------------------*/
7721
7722#define HAL_MAX_RMC_SESSIONS 2
7723
7724#define HAL_NUM_MAX_RULERS 8
7725
7726typedef enum
7727{
7728 WLAN_HAL_SUGGEST_RULER,
7729 WLAN_HAL_BECOME_RULER,
7730 WLAN_HAL_RULER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7731}tRulerReqCmdType, tRulerRspCmdType;
7732
Kumar Anandea78e792013-10-10 23:47:01 -07007733typedef PACKED_PRE struct PACKED_POST
7734{
Abhishek Singh00b71972016-01-07 10:51:04 +05307735 tRulerReqCmdType cmd;
7736
7737 /* MAC address of MCAST Transmitter (source) */
7738 tSirMacAddr mcastTransmitter;
7739
7740 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7741 tSirMacAddr mcastGroup;
7742
7743 /* Optional black list for cmd = WLAN_HAL_SUGGEST_RULER */
7744 tSirMacAddr blacklist[HAL_NUM_MAX_RULERS];
7745} tHalRmcRulerReqParams, *tpHalRmcRulerReqParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007746
7747typedef PACKED_PRE struct PACKED_POST
7748{
7749 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307750 tHalRmcRulerReqParams rulerReqParams;
7751} tHalRmcRulerReqMsg, *tpHalRmcRulerReqMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007752
7753/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307754 * WLAN_HAL_RMC_RULER_RSP
7755 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007756typedef PACKED_PRE struct PACKED_POST
7757{
Abhishek Singh00b71972016-01-07 10:51:04 +05307758 /* success or failure */
7759 tANI_U32 status;
7760
7761 /* Command Type */
7762 tRulerRspCmdType cmd;
7763
7764 /* MAC address of MCAST Transmitter (source) */
7765 tSirMacAddr mcastTransmitter;
7766
7767 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7768 tSirMacAddr mcastGroup;
7769
7770 /* List of candidates for cmd = WLAN_HAL_SUGGEST_RULER*/
7771 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7772
7773} tHalRmcRulerRspParams, *tpHalRmcRulerRspParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007774
7775typedef PACKED_PRE struct PACKED_POST
7776{
7777 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307778 tHalRmcRulerRspParams rulerRspParams;
7779} tHalRmcRulerRspMsg, *tpHalRmcRulerRspMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007780
7781/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307782 * WLAN_HAL_RMC_UPDATE_IND
7783 *-------------------------------------------------------------------------*/
7784typedef enum
Kumar Anandea78e792013-10-10 23:47:01 -07007785{
Abhishek Singh00b71972016-01-07 10:51:04 +05307786 WLAN_HAL_RULER_ACCEPTED, //Host-->FW
7787 WLAN_HAL_RULER_CANCELED, //Host-->FW
7788 WLAN_HAL_RULER_PICK_NEW, //FW-->Host
7789 WLAN_HAL_RULER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
7790}tRmcUpdateIndType;
7791
7792typedef enum
7793{
7794 WLAN_HAL_RMC_RULER_ROLE,
7795 WLAN_HAL_RMC_TRANSMITTER_ROLE,
7796 WLAN_HAL_RMC_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7797}tRmcRoleType;
Kumar Anandea78e792013-10-10 23:47:01 -07007798
7799typedef PACKED_PRE struct PACKED_POST
7800{
Abhishek Singh00b71972016-01-07 10:51:04 +05307801 tRmcUpdateIndType indication;
7802
7803 /* Role of the entity generating this indication */
7804 tRmcRoleType role;
7805
7806 /* MAC address of MCAST Transmitter (source) */
7807 tSirMacAddr mcastTransmitter;
7808
7809 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7810 tSirMacAddr mcastGroup;
7811
7812 tSirMacAddr mcastRuler;
7813
7814 /* Candidate list for indication = WLAN_HAL_RULER_PICK_NEW */
7815 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7816} tHalRmcUpdateIndParams, *tpHalRmcUpdateIndParams;
Kumar Anandf53016f2013-09-04 15:15:53 -07007817
7818typedef PACKED_PRE struct PACKED_POST
7819{
7820 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307821 tHalRmcUpdateIndParams rulerIndParams;
7822} tHalRmcUpdateInd, *tpHalRmcUpdateInd;
7823
7824typedef PACKED_PRE struct PACKED_POST
7825{
7826 tANI_U8 staIdx; // Station Idx;
7827 tANI_U32 txRate; // Legacy transmit rate, in units of 500 kbit/sec,
7828 // for the most recently transmitted frame
7829 tANI_U32 mcsIndex; // mcs index for HT20 and HT40 rates
7830 tANI_U32 txRateFlags; // to differentiate between HT20 and
7831 // HT40 rates; short and long guard interval
7832 tANI_S8 rssi; // RSSI of the last received beacon
7833}tHalIbssPeerParams, *tpHalIbssPeerParams;
7834
7835typedef PACKED_PRE struct PACKED_POST
7836{
7837 tANI_U32 status; // success or failure
7838 tANI_U8 numOfPeers; // Number of Peers for
7839 // which stats are being reported
7840 tHalIbssPeerParams ibssPeerParams[1]; // Stats of peer in IBSS
7841}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
7842
7843// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
7844typedef PACKED_PRE struct PACKED_POST
7845{
7846 tHalMsgHeader header;
7847 tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
7848}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
7849
7850typedef PACKED_PRE struct PACKED_POST
7851{
7852 tANI_U8 bssIdx; // Bss Index
7853 tANI_BOOLEAN allPeerInfoReqd; // If set, all IBSS peers stats are reported
7854 tANI_U8 staIdx; // If allPeerInfoReqd is not set,
7855 // only stats of peer with
7856 // staIdx is reported
7857}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
7858
7859// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
7860typedef PACKED_PRE struct PACKED_POST
7861{
7862 tHalMsgHeader header;
7863 tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
7864}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
krunal soni2a4728d2013-09-20 21:56:50 -07007865
Kumar Anandf53016f2013-09-04 15:15:53 -07007866/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007867 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7868 *-------------------------------------------------------------------------*/
7869typedef enum
7870{
7871 /* reassociation is done, but couldn't finish security handshake */
7872 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7873
7874 /* roam has successfully completed by firmware */
7875 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7876
7877 /* UNKONW error */
7878 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7879}tHalRoamOffloadRoamAuthStatus;
7880
7881typedef enum
7882{
7883 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7884 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7885 WLAN_HAL_ROAM_TYPE_OKC,
7886 WLAN_HAL_ROAM_TYPE_CCKM,
7887 WLAN_HAL_ROAM_TYPE_FT,
7888 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7889} tHalRoamOffloadType;
7890
7891typedef PACKED_PRE struct PACKED_POST
7892{
7893 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7894 tANI_U16 beaconProbeRespOffset;
7895
7896 /* Length of beaon / probe resp. */
7897 tANI_U16 beaconProbeRespLength;
7898
7899 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7900 tANI_U16 reassocRespOffset;
7901
7902 /* Length of reassoc resp. */
7903 tANI_U16 reassocRespLength;
7904
7905 /* 0 for probe response frame, 1 for beacon frame, */
7906 tANI_U8 isBeacon;
7907
7908 /* staIdx of old AP */
7909 tANI_U8 oldStaIdx;
7910
7911 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7912 tConfigBssRspParams */
7913 /* bssIdx of new roamed AP */
7914 tANI_U8 bssIdx;
7915
7916 /* DPU descriptor index for PTK */
7917 tANI_U8 dpuDescIndx;
7918
7919 /* PTK DPU signature */
7920 tANI_U8 ucastDpuSignature;
7921
7922 /* DPU descriptor index for GTK*/
7923 tANI_U8 bcastDpuDescIndx;
7924
7925 /* GTK DPU signature */
7926 tANI_U8 bcastDpuSignature;
7927
7928 /*DPU descriptor for IGTK*/
7929 tANI_U8 mgmtDpuDescIndx;
7930
7931 /* IGTK DPU signature */
7932 tANI_U8 mgmtDpuSignature;
7933
7934 /* Station Index for BSS entry*/
7935 tANI_U8 staIdx;
7936
7937 /* Self station index for this BSS */
7938 tANI_U8 selfStaIdx;
7939
7940 /* Bcast station for buffering bcast frames in AP role */
7941 tANI_U8 bcastStaIdx;
7942
7943 /* MAC address of roamed AP */
7944 tSirMacAddr bssid;
7945
7946 /*HAL fills in the tx power used for mgmt frames in this field. */
7947 tANI_S8 txMgmtPower;
7948
7949 /* success or failure */
7950 tHalRoamOffloadRoamAuthStatus authStatus;
7951
7952 /* TODO : add more info as needed */
7953
7954 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7955 /* Beacon or probe resp from new AP. This is in 802.11
7956 frame format starting with MAC header. */
7957 /* Up to beaconProbeRespLength */
7958
7959 /* reassocRespOffset points to starting of reassoc resp frame */
7960 /* Reassoc resp from new AP. This is in 802.11
7961 frame format starting with MAC header. */
7962 /* Up to reassocRespLength */
7963
7964} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7965
7966
7967typedef PACKED_PRE struct PACKED_POST
7968{
7969 tHalMsgHeader header;
7970 tHalRoamOffloadSynchIndParams params;
7971} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7972
7973/*---------------------------------------------------------------------------
7974 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7975 *-------------------------------------------------------------------------*/
7976typedef PACKED_PRE struct PACKED_POST
7977{
7978 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7979 tSirMacAddr bssid;
7980} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7981
7982typedef PACKED_PRE struct PACKED_POST
7983{
7984 tHalMsgHeader header;
7985 tHalRoamOffloadSynchCnfParams params;
7986} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7987
7988
7989/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007990 WLAN_HAL_RATE_UPDATE_IND
7991 *-------------------------------------------------------------------------*/
Abhishek Singh00b71972016-01-07 10:51:04 +05307992 typedef PACKED_PRE struct PACKED_POST
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007993{
7994 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7995 tANI_S32 ucastDataRate; //unit Mbpsx10
7996
7997 /* TX flag to differentiate between HT20, HT40 etc */
7998 tTxRateInfoFlags ucastDataRateTxFlag;
7999
8000 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
8001 tSirMacAddr bssid;
8002
8003 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
Abhishek Singh00b71972016-01-07 10:51:04 +05308004 tANI_S32 rmcDataRate; //unit Mbpsx10
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008005
8006 /* TX flag to differentiate between HT20, HT40 etc */
Abhishek Singh00b71972016-01-07 10:51:04 +05308007 tTxRateInfoFlags rmcDataRateTxFlag;
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008008
Abhishek Singh00b71972016-01-07 10:51:04 +05308009 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008010 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
8011
8012 /* TX flag to differentiate between HT20, HT40 etc */
8013 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
8014
Abhishek Singh00b71972016-01-07 10:51:04 +05308015 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07008016 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
8017
8018 /* TX flag to differentiate between HT20, HT40 etc */
8019 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
8020
8021} tHalRateUpdateParams, *tpHalRateUpdateParams;
8022
8023typedef PACKED_PRE struct PACKED_POST
8024{
8025 tHalMsgHeader header;
8026 tHalRateUpdateParams halRateUpdateParams;
8027} tHalRateUpdateInd, * tpHalRateUpdateInd;
8028
8029/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05308030* WLAN_HAL_TX_FAIL_IND
8031*--------------------------------------------------------------------------*/
8032// Northbound indication from FW to host on weak link detection
8033typedef PACKED_PRE struct PACKED_POST
8034{
8035 // Sequence number increases by 1 whenever the device driver
8036 // sends a notification event. This is cleared as 0 when the
8037 // JOIN IBSS commamd is issued
8038 tANI_U16 seqNo;
8039 tANI_U16 staId;
8040 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
8041} tHalTXFailIndParams, *tpHalTXFailIndParams;
8042
8043typedef PACKED_PRE struct PACKED_POST
8044{
8045 tHalMsgHeader header;
8046 tHalTXFailIndParams txFailIndParams;
8047} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
8048
8049/*---------------------------------------------------------------------------
8050* WLAN_HAL_TX_FAIL_MONITOR_IND
8051*--------------------------------------------------------------------------*/
8052// Southbound message from Host to monitor the Tx failures
8053typedef PACKED_PRE struct PACKED_POST
8054{
8055 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
8056 tANI_U8 tx_fail_count;
8057} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
8058
8059typedef PACKED_PRE struct PACKED_POST
8060{
8061 tHalMsgHeader header;
8062 tTXFailMonitorInfo txFailMonitor;
8063} tTXFailMonitorInd, *tpTXFailMonitorInd;
8064
8065/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308066 * WLAN_HAL_AVOID_FREQ_RANGE_IND
8067 *-------------------------------------------------------------------------*/
8068
Abhishek Singhe0443152015-06-18 10:07:43 +05308069#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308070
8071typedef PACKED_PRE struct PACKED_POST
8072{
8073 tANI_U32 startFreq;
8074 tANI_U32 endFreq;
8075} tHalFreqRange, *tpHalFreqRange;
8076
8077typedef PACKED_PRE struct PACKED_POST
8078{
8079 tANI_U32 avoidCnt;
8080 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
8081} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
8082
8083typedef PACKED_PRE struct PACKED_POST
8084{
8085 tHalMsgHeader header;
8086 tHalAvoidFreqRangeIndParams freqRangeIndParams;
8087} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
8088
8089/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308090 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07008091 *-------------------------------------------------------------------------*/
8092
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308093typedef enum
8094{
8095 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
8096 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
8097 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
8098}tHT40OBssScanCmdType;
8099
8100typedef PACKED_PRE struct PACKED_POST
8101{
8102 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008103
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308104 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008105 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
8106 tANI_U16 OBSSScanActiveDwellTime; // In TUs
8107 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
8108 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
8109 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
8110 tANI_U16 BSSWidthChannelTransitionDelayFactor;
8111 tANI_U16 OBSSScanActivityThreshold;
8112
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308113 tANI_U8 selfStaIdx;
8114 tANI_U8 bssIdx;
8115 tANI_U8 fortyMHZIntolerent;
8116 tANI_U8 channelCount;
8117 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
8118 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008119
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308120 tANI_U16 ieFieldLen;
8121 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
8122}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
8123
8124typedef PACKED_PRE struct PACKED_POST
8125{
8126 tHalMsgHeader header;
8127 tHT40ObssScanIndType scanHT40ObssScanParams;
8128} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
8129
8130/*---------------------------------------------------------------------------
8131 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
8132 *-------------------------------------------------------------------------*/
8133typedef PACKED_PRE struct PACKED_POST
8134{
8135 tHalMsgHeader header;
8136 tANI_U8 bssIdx;
8137} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05308138
8139/*---------------------------------------------------------------------------
8140 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
8141 *-------------------------------------------------------------------------*/
8142
8143typedef PACKED_PRE struct PACKED_POST
8144{
8145 /* Valid BSS Idx for beacon miss rate */
8146 tANI_U8 bssIdx;
8147
8148}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
8149
8150typedef PACKED_PRE struct PACKED_POST
8151{
8152 tHalMsgHeader header;
8153 tHalBcnMissRateReqParams bcnMissRateReqParams;
8154} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
8155
8156/*---------------------------------------------------------------------------
8157 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
8158 *-------------------------------------------------------------------------*/
8159
8160typedef PACKED_PRE struct PACKED_POST
8161{
8162 tANI_U32 status;
8163 tANI_U32 bcnMissCnt;
8164}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
8165
8166typedef PACKED_PRE struct PACKED_POST
8167{
8168 tHalMsgHeader header;
8169 tHalBcnMissRateRspParams bcnMissRateRspParams;
8170}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
8171
Selvaraj, Sridhar6c0eb3f2016-04-06 12:42:04 +05308172/*---------------------------------------------------------------------------
8173 * WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND
8174 *-------------------------------------------------------------------------*/
8175
8176typedef PACKED_PRE struct PACKED_POST
8177{
8178 tANI_U32 actionFramesBitMask;
8179 tANI_U32 reserved;
8180}tHalAllowedActionFrames, *tpHalAllowedActionFrames;
8181
8182typedef PACKED_PRE struct PACKED_POST
8183{
8184 tHalMsgHeader header;
8185 tHalAllowedActionFrames allowedActionFrames;
8186}tHalAllowedActionFramesReqInd, *tpHalAllowedActionFramesReqInd;
8187
Sunil Dutt8377a382014-05-26 21:18:04 +05308188/*--------------------------------------------------------------------------
8189* WLAN_HAL_LL_SET_STATS_REQ
8190*---------------------------------------------------------------------------*/
8191
8192typedef PACKED_PRE struct PACKED_POST
8193{
8194 tANI_U32 req_id;
8195 tANI_U8 sta_id;
8196 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
8197 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
8198} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
8199
8200typedef PACKED_PRE struct PACKED_POST
8201{
8202 tHalMsgHeader header;
8203 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
8204} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
8205
8206/*---------------------------------------------------------------------------
8207 WLAN_HAL_LL_SET_STATS_RSP
8208---------------------------------------------------------------------------*/
8209
8210typedef PACKED_PRE struct PACKED_POST
8211{
8212 tANI_U32 status;
8213 tANI_U32 resp_id;
8214 tANI_U8 iface_id;
8215} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
8216
8217typedef PACKED_PRE struct PACKED_POST
8218{
8219 tHalMsgHeader header;
8220 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
8221} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
8222
8223/*---------------------------------------------------------------------------
8224 WLAN_HAL_LL_GET_STATS_REQ
8225---------------------------------------------------------------------------*/
8226
8227typedef PACKED_PRE struct PACKED_POST
8228{
8229 tANI_U32 req_id;
8230 tANI_U8 sta_id;
8231 tANI_U32 param_id_mask;
8232} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
8233
8234typedef PACKED_PRE struct PACKED_POST
8235{
8236 tHalMsgHeader header;
8237 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
8238} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
8239
8240/*---------------------------------------------------------------------------
8241 WLAN_HAL_LL_GET_STATS_RSP
8242---------------------------------------------------------------------------*/
8243typedef PACKED_PRE struct PACKED_POST
8244{
8245 tANI_U32 status;
8246 tANI_U32 resp_id;
8247 tANI_U8 iface_id;
8248} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8249
8250typedef PACKED_PRE struct PACKED_POST
8251{
8252 tHalMsgHeader header;
8253 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8254} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8255
8256/*---------------------------------------------------------------------------
8257 WLAN_HAL_LL_CLEAR_STATS_REQ
8258---------------------------------------------------------------------------*/
8259typedef PACKED_PRE struct PACKED_POST
8260{
8261 tANI_U32 req_id;
8262 tANI_U8 sta_id;
8263 tANI_U32 stats_clear_req_mask;
8264 tANI_U8 stop_req;
8265} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8266
8267typedef PACKED_PRE struct PACKED_POST
8268{
8269 tHalMsgHeader header;
8270 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8271} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8272
8273/*---------------------------------------------------------------------------
8274 WLAN_HAL_LL_CLEAR_STATS_RSP
8275---------------------------------------------------------------------------*/
8276typedef PACKED_PRE struct PACKED_POST
8277{
8278 tANI_U32 status;
8279 tANI_U8 sta_id;
8280 tANI_U32 resp_id;
8281 tANI_U32 stats_clear_rsp_mask;
8282 tANI_U8 stop_req_status;
8283} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8284
8285typedef PACKED_PRE struct PACKED_POST
8286{
8287 tHalMsgHeader header;
8288 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8289} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8290
8291/*---------------------------------------------------------------------------
8292 WLAN_HAL_LL_NOTIFY_STATS
8293---------------------------------------------------------------------------*/
8294
8295typedef PACKED_PRE struct PACKED_POST
8296{
8297 tHalMsgHeader header;
8298 tANI_U32 param_id;
8299 tANI_U8 iface_id;
8300 tANI_U32 resp_id;
8301 tANI_U32 more_result_to_follow;
8302 tANI_U8 result[1];
8303} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008304
Dino Mycle108eff22014-06-10 09:36:44 +05308305/*---------------------------------------------------------------------------
8306 * WLAN_HAL_EXT_SCAN_START_REQ
8307 *-------------------------------------------------------------------------*/
8308
Dino Mycle8afbac12014-07-04 22:06:17 +05308309typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308310{
8311 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8312 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8313 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8314 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8315 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8316 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8317 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308318 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308319} tExtScanChannelBandMask;
8320
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308321#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8322#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8323
8324#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8325
8326#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8327#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8328#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8329#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8330
Dino Mycle108eff22014-06-10 09:36:44 +05308331typedef PACKED_PRE struct PACKED_POST
8332{
8333 tANI_U32 channel; // frequency
8334 tANI_U32 dwellTimeMs; // dwell time hint
8335 tANI_U8 passive; // 0 => active,
8336 // 1 => passive scan; ignored for DFS
8337}tExtScanChannelSpec, *tpExtScanChannelSpec;
8338
8339typedef PACKED_PRE struct PACKED_POST
8340 {
8341 /* bucket index, 0 based */
8342 tANI_U8 bucketId;
8343 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8344 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308345 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308346 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308347 /* This is a bit field; which defines following bits -
8348 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8349 is % full
8350 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8351 after scan
8352 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8353 (beacons/probe responses + IEs) in real time to HAL, in addition
8354 to completion events
8355 Note: To keep backward compatibility, fire completion events
8356 regardless of REPORT_EVENTS_EACH_SCAN.
8357 * REPORT_EVENTS_NO_BATCH => controls batching,
8358 0 => batching, 1 => no batching
8359 */
Dino Mycle108eff22014-06-10 09:36:44 +05308360 tANI_U8 reportEvents;
8361 /* number of channels */
8362 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308363 // new Exponential Scan params
8364 tANI_U32 max_period;
8365 tANI_U32 exponent;
8366 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308367 /* if channels to scan. In the TLV channelList[] */
8368 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8369}tExtScanBucketData, *tpExtScanBucketData;
8370
8371typedef PACKED_PRE struct PACKED_POST
8372{
8373 tANI_U32 requestId;
8374 tANI_U8 sessionId;
8375 /* Base period (milliseconds) used by scan buckets to define periodicity
8376 of the scans */
8377 tANI_U32 basePeriod;
8378 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8379 (keep the most significant, i.e. stronger RSSI) */
8380 tANI_U32 maxApPerScan;
8381 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308382 tANI_U32 reportThresholdPercent;
8383 /* in number of scans, wake up AP after these many scans */
8384 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308385 /* This will be off channel minimum time */
8386 tANI_U16 neighborScanChannelMinTime;
8387 /* This will be out off channel max time */
8388 tANI_U16 neighborScanChannelMaxTime;
8389 /* This will be the home (BSS) channel time */
8390 tANI_U16 homeAwayTime;
8391 /* number of buckets (maximum 8) */
8392 tANI_U8 numBuckets;
8393 /* Buckets data */
8394 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8395} tHalExtScanStartReq, *tpHalExtScanStartReq;
8396
8397typedef PACKED_PRE struct PACKED_POST
8398{
8399 tHalMsgHeader header;
8400 tHalExtScanStartReq extScanStartReq;
8401}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8402
8403/*---------------------------------------------------------------------------
8404 * WLAN_HAL_EXT_SCAN_START_RSP
8405 *-------------------------------------------------------------------------*/
8406
8407typedef PACKED_PRE struct PACKED_POST
8408{
8409 tANI_U32 requestId;
8410 tANI_U32 status;
8411}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8412
8413typedef PACKED_PRE struct PACKED_POST
8414{
8415 tHalMsgHeader header;
8416 tHalExtScanStartRsp extScanStartRsp;
8417}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8418
8419/*---------------------------------------------------------------------------
8420 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8421 *-------------------------------------------------------------------------*/
8422
8423typedef PACKED_PRE struct PACKED_POST
8424{
8425 tANI_U32 requestId;
8426 tANI_U8 sessionId;
8427}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8428
8429typedef PACKED_PRE struct PACKED_POST
8430{
8431 tHalMsgHeader header;
8432 tHalExtScanGetCapReq extScanGetCapReq;
8433}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8434
8435/*---------------------------------------------------------------------------
8436 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8437 *-------------------------------------------------------------------------*/
8438
8439typedef PACKED_PRE struct PACKED_POST
8440{
8441 tANI_U32 requestId;
8442 tANI_U32 status;
8443
8444 tANI_U32 scanCacheSize;
8445 tANI_U32 scanBuckets;
8446 tANI_U32 maxApPerScan;
8447 tANI_U32 maxRssiSampleSize;
8448 tANI_U32 maxScanReportingThreshold;
8449
8450 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308451 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308452
8453 tANI_U32 maxBssidHistoryEntries;
8454}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8455
8456typedef PACKED_PRE struct PACKED_POST
8457{
8458 tHalMsgHeader header;
8459 tHalExtScanGetCapRsp extScanGetCapRsp;
8460}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8461
8462/*---------------------------------------------------------------------------
8463 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8464 *-------------------------------------------------------------------------*/
8465
8466typedef PACKED_PRE struct PACKED_POST
8467{
8468 tANI_U32 requestId;
8469 tANI_U8 sessionId;
8470 /*
8471 * 1 return cached results and flush it
8472 * 0 return cached results and do not flush
8473 */
8474 tANI_BOOLEAN flush;
8475}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8476
8477typedef PACKED_PRE struct PACKED_POST
8478{
8479 tHalMsgHeader header;
8480 tHalExtScanGetScanReq getScanReq;
8481}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8482
8483/*---------------------------------------------------------------------------
8484 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8485 *-------------------------------------------------------------------------*/
8486
8487typedef PACKED_PRE struct PACKED_POST
8488{
8489 tANI_U32 requestId;
8490 tANI_U32 status;
8491}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8492
8493typedef PACKED_PRE struct PACKED_POST
8494{
8495 tHalMsgHeader header;
8496 tHalExtScanGetScanRsp getScanRsp;
8497}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8498
8499/*---------------------------------------------------------------------------
8500 * WLAN_HAL_EXT_SCAN_RESULT_IND
8501 *-------------------------------------------------------------------------*/
8502
8503typedef PACKED_PRE struct PACKED_POST
8504{
8505 tANI_U64 ts; // time of discovery
8506 tANI_U8 ssid[32+1]; // null terminated SSID
8507 tSirMacAddr bssid; // BSSID
8508 tANI_U32 channel; // channel frequency in MHz
8509 tANI_S32 rssi; // RSSI in dBm
8510 tANI_U32 rtt; // RTT in nanoseconds - not expected
8511 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308512 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308513 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308514 tANI_U16 ieLength; // size of the ie_data blob
8515 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308516} tHalExtScanResultParams, *tpHalExtScanResultParams;
8517
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308518/* Get the GSCAN cached scan results */
8519typedef struct {
8520 tANI_U16 scan_id; // a unique identifier for the scan unit
8521 tANI_U8 flags; // a bitmask with additional
8522 // information about scan
8523 tANI_U8 num_results; // number of bssids retrieved by the scan
8524 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8525 // scan results - one for each bssid
8526} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8527
Dino Mycle108eff22014-06-10 09:36:44 +05308528typedef PACKED_PRE struct PACKED_POST
8529{
8530 tHalMsgHeader header;
8531 tANI_U32 requestId;
8532 tANI_U32 scanResultSize;
8533 tANI_BOOLEAN moreData;
8534 tANI_U8 extScanResult[1];
8535}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8536
8537/*---------------------------------------------------------------------------
8538 * WLAN_HAL_EXT_SCAN_STOP_REQ
8539 *-------------------------------------------------------------------------*/
8540
8541typedef PACKED_PRE struct PACKED_POST
8542{
8543 tANI_U32 requestId;
8544 tANI_U8 sessionId;
8545}tHalExtScanStopReq, *tpHalExtScanStopReq;
8546
8547typedef PACKED_PRE struct PACKED_POST
8548{
8549 tHalMsgHeader header;
8550 tHalExtScanStopReq extScanStopReq;
8551}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8552
8553/*---------------------------------------------------------------------------
8554 * WLAN_HAL_EXT_SCAN_STOP_RSP
8555 *-------------------------------------------------------------------------*/
8556
8557typedef PACKED_PRE struct PACKED_POST
8558{
8559 tANI_U32 requestId;
8560 tANI_U32 status;
8561}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8562
8563typedef PACKED_PRE struct PACKED_POST
8564{
8565 tHalMsgHeader header;
8566 tHalExtScanStopRsp extScanStopRsp;
8567}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8568
8569/*---------------------------------------------------------------------------
8570 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8571 *-------------------------------------------------------------------------*/
8572
Dino Mycle8afbac12014-07-04 22:06:17 +05308573typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308574{
8575 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8576 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308577 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308578} tHalExtScanProgressEventType;
8579
8580typedef PACKED_PRE struct PACKED_POST
8581{
8582 tANI_U32 requestId;
8583 tANI_U32 status;
8584 tHalExtScanProgressEventType extScanEventType;
8585}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8586
8587typedef PACKED_PRE struct PACKED_POST
8588{
8589 tHalMsgHeader header;
8590 tHalExtScanProgressInd extScanProgressInd;
8591}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8592
8593/*---------------------------------------------------------------------------
8594 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8595 *-------------------------------------------------------------------------*/
8596
8597typedef PACKED_PRE struct PACKED_POST
8598{
8599 tANI_U32 requestId;
8600 tANI_U32 numOfScanResAvailable;
8601}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8602
8603typedef PACKED_PRE struct PACKED_POST
8604{
8605 tHalMsgHeader header;
8606 tHalExtScanResAvailableInd extScanResAvailableInd;
8607}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8608
Dino Mycle108eff22014-06-10 09:36:44 +05308609typedef PACKED_PRE struct PACKED_POST
8610{
8611 /* AP BSSID */
8612 tSirMacAddr bssid;
8613 /* low threshold - used in L for significant_change - not used in L for
8614 hotlist*/
8615 tANI_S32 lowRssiThreshold;
8616 /* high threshold - used in L for significant rssi - used in L for hotlist */
8617 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308618} tApThresholdParams, *tpApThresholdParams;
8619
Dino Mycle108eff22014-06-10 09:36:44 +05308620/*---------------------------------------------------------------------------
8621 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8622 *-------------------------------------------------------------------------*/
8623
8624typedef PACKED_PRE struct PACKED_POST
8625{
8626 tANI_U32 requestId;
8627 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308628 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308629 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308630 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308631 // hotlist APs
8632 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8633} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8634
8635typedef PACKED_PRE struct PACKED_POST
8636{
8637 tHalMsgHeader header;
8638 tHalBssidHotlistSetReq bssidHotlistSetReq;
8639}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8640
8641/*---------------------------------------------------------------------------
8642 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8643 *-------------------------------------------------------------------------*/
8644
8645typedef PACKED_PRE struct PACKED_POST
8646{
8647 tANI_U32 requestId;
8648 tANI_U32 status;
8649}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8650
8651typedef PACKED_PRE struct PACKED_POST
8652{
8653 tHalMsgHeader header;
8654 tHalHotlistSetRsp hotlistSetRsp;
8655}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8656
8657/*---------------------------------------------------------------------------
8658 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8659 *-------------------------------------------------------------------------*/
8660
8661typedef PACKED_PRE struct PACKED_POST
8662{
8663 tANI_U32 requestId;
8664}tHalHotlistResetReq, *tpHalHotlistResetReq;
8665
8666typedef PACKED_PRE struct PACKED_POST
8667{
8668 tHalMsgHeader header;
8669 tHalHotlistResetReq hotlistResetReq;
8670}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8671
8672/*---------------------------------------------------------------------------
8673 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8674 *-------------------------------------------------------------------------*/
8675
8676typedef PACKED_PRE struct PACKED_POST
8677{
8678 tANI_U32 requestId;
8679 tANI_U32 status;
8680}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8681
8682typedef PACKED_PRE struct PACKED_POST
8683{
8684 tHalMsgHeader header;
8685 tHalHotlistResetRsp hotlistResetRsp;
8686}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8687
8688/*---------------------------------------------------------------------------
8689 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8690 *-------------------------------------------------------------------------*/
8691
8692typedef PACKED_PRE struct PACKED_POST
8693{
8694 tHalMsgHeader header;
8695 tANI_U32 requestId;
8696 tANI_U32 numHotlistBss;
8697 tANI_BOOLEAN moreData;
8698 tANI_U8 bssHotlist[1];
8699}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8700
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308701/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308702 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8703 *-------------------------------------------------------------------------*/
8704
8705typedef PACKED_PRE struct PACKED_POST
8706{
8707 /* SSID */
8708 char ssid [32+1];
8709 /* low threshold - used in L for significant_change - not used in L for
8710 hotlist*/
8711 tANI_S32 lowRssiThreshold;
8712 /* high threshold - used in L for significant rssi - used in L for hotlist */
8713 tANI_S32 highRssiThreshold;
8714 /* band */
8715 tANI_U32 band;
8716 } tSsidThresholdParams, *tpSsidThresholdParams;
8717
8718
8719typedef PACKED_PRE struct PACKED_POST
8720{
8721 tANI_U32 requestId;
8722 tANI_U8 sessionId;
8723 tANI_U32 lostSsidSampleSize;
8724 // number of hotlist SSIDs
8725 tANI_U32 numSsid;
8726 // hotlist SSIDs
8727 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8728} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8729
8730typedef PACKED_PRE struct PACKED_POST
8731{
8732 tHalMsgHeader header;
8733 tHalSsidHotlistSetReq ssidHotlistSetReq;
8734}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8735
8736/*---------------------------------------------------------------------------
8737 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8738 *-------------------------------------------------------------------------*/
8739typedef PACKED_PRE struct PACKED_POST
8740{
8741 tANI_U32 requestId;
8742 tANI_U32 status;
8743}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8744
8745typedef PACKED_PRE struct PACKED_POST
8746{
8747 tHalMsgHeader header;
8748 tHalSsidHotlistSetRsp hotlistSetRsp;
8749}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8750
8751/*---------------------------------------------------------------------------
8752 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8753 *-------------------------------------------------------------------------*/
8754
8755typedef PACKED_PRE struct PACKED_POST
8756{
8757 tANI_U32 requestId;
8758}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8759
8760typedef PACKED_PRE struct PACKED_POST
8761{
8762 tHalMsgHeader header;
8763 tHalSsidHotlistResetReq hotlistResetReq;
8764}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8765
8766/*---------------------------------------------------------------------------
8767 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8768 *-------------------------------------------------------------------------*/
8769
8770typedef PACKED_PRE struct PACKED_POST
8771{
8772 tANI_U32 requestId;
8773 tANI_U32 status;
8774}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8775
8776typedef PACKED_PRE struct PACKED_POST
8777{
8778 tHalMsgHeader header;
8779 tHalSsidHotlistResetRsp hotlistResetRsp;
8780}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8781
8782/*---------------------------------------------------------------------------
8783 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8784 *-------------------------------------------------------------------------*/
8785
8786typedef PACKED_PRE struct PACKED_POST
8787{
8788 tHalMsgHeader header;
8789 tANI_U32 requestId;
8790 tANI_BOOLEAN ssid_found;
8791 tANI_U32 numHotlistSsid;
8792 tANI_BOOLEAN moreData;
8793 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8794}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8795
8796/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308797 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8798 *-------------------------------------------------------------------------*/
8799
8800typedef PACKED_PRE struct PACKED_POST
8801{
8802 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8803 tANI_U32 reserved; //reserved for future use
8804}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8805
8806typedef PACKED_PRE struct PACKED_POST
8807{
8808 tHalMsgHeader header;
8809 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8810}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8811
8812/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308813 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8814 *--------------------------------------------------------------------------*/
8815typedef PACKED_PRE struct PACKED_POST
8816{
8817 tANI_U8 macAddr[6];
8818 tANI_U32 reserved1;
8819 tANI_U32 reserved2;
8820}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8821
8822typedef PACKED_PRE struct PACKED_POST
8823{
8824 tHalMsgHeader header;
8825 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8826} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8827
8828/*---------------------------------------------------------------------------
8829* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8830*-------------------------------------------------------------------------*/
8831
8832typedef PACKED_PRE struct PACKED_POST
8833{
8834 tANI_U32 status;
8835 tANI_U32 reserved1;
8836} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8837
8838typedef PACKED_PRE struct PACKED_POST
8839{
8840 tHalMsgHeader header;
8841 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8842} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308843/*---------------------------------------------------------------------------
8844 *WLAN_HAL_GET_FRAME_LOG_REQ
8845 *--------------------------------------------------------------------------*/
8846typedef PACKED_PRE struct PACKED_POST
8847{
8848 tANI_U8 flags;
8849}tGetFrameLogReqType, * tpGetFrameLogReqType;
8850
8851typedef PACKED_PRE struct PACKED_POST
8852{
8853 tHalMsgHeader header;
8854 tGetFrameLogReqType tGetFrameLogReqParams;
8855} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8856
8857/*---------------------------------------------------------------------------
8858 * WLAN_HAL_GET_FRAME_LOG_RSP
8859 *-------------------------------------------------------------------------*/
8860typedef PACKED_PRE struct PACKED_POST
8861{
8862 tANI_U32 status;
8863} tGetFrameLogResp, * tpGetFrameLogResp;
8864
8865typedef PACKED_PRE struct PACKED_POST
8866{
8867 tHalMsgHeader header;
8868 tGetFrameLogResp tGetFrameLogRespParams;
8869} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8870
8871/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308872 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8873 *-------------------------------------------------------------------------*/
8874typedef PACKED_PRE struct PACKED_POST
8875{
8876 tANI_U32 reasonCode;
8877}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8878
8879typedef PACKED_PRE struct PACKED_POST
8880{
8881 tHalMsgHeader header;
8882 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8883}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8884
8885/*---------------------------------------------------------------------------
8886 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8887 *-------------------------------------------------------------------------*/
8888typedef PACKED_PRE struct PACKED_POST
8889{ tANI_U32 status;
8890}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8891
8892typedef PACKED_PRE struct PACKED_POST
8893{
8894 tHalMsgHeader header;
8895 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8896}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8897
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308898/*---------------------------------------------------------------------------
8899 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8900 *-------------------------------------------------------------------------*/
8901typedef PACKED_PRE struct PACKED_POST
8902{
8903 tANI_U8 bssIdx;
8904 tANI_U8 rssi;
8905 tSirMacAddr selfMacAddr;
8906 tANI_U32 linkFlCnt;
8907 tANI_U32 linkFlTx;
8908 tANI_U32 lastDataRate;
8909 tANI_U32 rsvd1;
8910 tANI_U32 rsvd2;
8911}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8912
8913typedef PACKED_PRE struct PACKED_POST
8914{
8915 tHalMsgHeader header;
8916 tHalLostLinkParametersIndParams lostLinkParameters;
8917}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308918
8919
8920/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308921 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308922 *--------------------------------------------------------------------------*/
8923typedef PACKED_PRE struct PACKED_POST
8924{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308925 /* BIT0 - enable frame logging
8926 * BIT1 - enableBMUHWtracing
8927 * BIT2 - enableQXDMlogging
8928 * BIT3 - enableUElogDpuTxp
8929 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308930 tANI_U8 enableFlag;
8931 tANI_U8 frameType;
8932 tANI_U8 frameSize;
8933 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308934 /* Host mem address to be used as logmailbox */
8935 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308936 /* firmware will wakeup the host to send logs always */
8937 tANI_U8 continuousFrameLogging;
8938 /* Logging mail box version */
8939 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308940 /* Max ring size in firmware to log msgs when host is suspended state */
8941 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308942 /* when firmware log reaches this threshold and
8943 * if host is awake it will push the logs.
8944 */
8945 tANI_U8 minLogBuffSize;
8946 /* Reserved for future purpose */
8947 tANI_U32 reserved0;
8948 tANI_U32 reserved1;
8949 tANI_U32 reserved2;
8950}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308951
8952typedef PACKED_PRE struct PACKED_POST
8953{
8954 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308955 tFWLoggingInitReqType tFWLoggingInitReqParams;
8956} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308957
8958/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308959 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308960 *-------------------------------------------------------------------------*/
8961typedef PACKED_PRE struct PACKED_POST
8962{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308963 tANI_U32 status;
8964 /* FW mail box address */
8965 tANI_U64 logMailBoxAddr;
8966 /* Logging mail box version */
8967 tANI_U8 logMailBoxVer;
8968 /* Qshrink is enabled */
8969 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308970 /* fw_dump_max_size is used to tell fwr mem dump size */
8971 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308972 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308973 tANI_U32 reserved1;
8974 tANI_U32 reserved2;
8975} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308976
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05308977
8978typedef PACKED_PRE struct PACKED_POST {
8979 tANI_U32 request_id;
8980 tSirMacAddr bssId;
8981 tANI_S8 min_rssi;
8982 tANI_S8 max_rssi;
8983} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
8984
8985typedef PACKED_PRE struct PACKED_POST
8986{
8987 tHalMsgHeader header;
8988 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
8989}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
8990
8991//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
8992typedef PACKED_PRE struct PACKED_POST {
8993 tANI_U32 request_id;
8994 tANI_U32 status;
8995} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
8996
8997typedef PACKED_PRE struct PACKED_POST
8998{
8999 tHalMsgHeader header;
9000 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
9001}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
9002
9003//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
9004typedef PACKED_PRE struct PACKED_POST
9005{
9006 tANI_U32 request_id;
9007 tSirMacAddr bssId;
9008 tANI_S8 rssi;
9009} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
9010
9011typedef PACKED_PRE struct PACKED_POST
9012{
9013 tHalMsgHeader header;
9014 tHalRssiMonitorIndParams RssiMonitorIndParams;
9015}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
9016
9017
9018//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
9019typedef PACKED_PRE struct PACKED_POST {
9020 tANI_U32 request_id;
9021 tSirMacAddr bssId;
9022} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
9023
9024typedef PACKED_PRE struct PACKED_POST
9025{
9026 tHalMsgHeader header;
9027 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
9028}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
9029
9030//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
9031typedef PACKED_PRE struct PACKED_POST {
9032 tANI_U32 request_id;
9033 tANI_U32 status;
9034} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
9035
9036typedef PACKED_PRE struct PACKED_POST
9037{
9038 tHalMsgHeader header;
9039 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
9040}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
9041
9042
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309043typedef PACKED_PRE struct PACKED_POST
9044{
9045 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309046 tFWLoggingInitResp tFWLoggingInitRespParams;
9047} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
9048
9049/*---------------------------------------------------------------------------
Kapil Guptac1043632016-06-25 00:23:30 +05309050 * WLAN_HAL_SET_PER_ROAM_CONFIG_REQ
9051 *---------------------------------------------------------------------------*/
9052
9053typedef PACKED_PRE struct PACKED_POST {
9054 tANI_U32 request_id;
9055 tANI_U32 isPERRoamCCAEnabled;
9056 tANI_U32 rateUpThreshold;
9057 tANI_U32 rateDownThreshold;
9058 tANI_U32 waitPeriodForNextPERScan;
9059 tANI_U32 PERtimerThreshold;
9060 tANI_U32 PERroamTriggerPercent;
Kapil Guptaffe21522016-08-29 12:33:00 +05309061 tANI_S16 PERRoamFullScanThreshold;
9062 tANI_U16 reserved;
Kapil Guptac1043632016-06-25 00:23:30 +05309063} tPerRoamConfigParams, * tpPerRoamConfigParams;
9064
9065typedef PACKED_PRE struct PACKED_POST
9066{
9067 tHalMsgHeader header;
9068 tPerRoamConfigParams perRoamConfigParams;
9069} tSetPerRoamConfigReq, * tpSetPerRoamConfigReq;
9070
9071/*---------------------------------------------------------------------------
9072 * WLAN_HAL_SET_PER_ROAM_CONFIG_RSP
9073 *---------------------------------------------------------------------------*/
9074
9075typedef PACKED_PRE struct PACKED_POST
9076{
9077 /* Success or Failure */
9078 tANI_U32 status;
9079} tConfigPerRoamRspParams, * tpConfigPerRoamRspParams;
9080
9081typedef PACKED_PRE struct PACKED_POST
9082{
9083 tHalMsgHeader header;
9084 tConfigPerRoamRspParams configPerRoamRspParams;
9085} tSetPerRoamConfigRsp, * tpSetPerRoamConfigRsp;
9086
9087/*---------------------------------------------------------------------------
9088 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ
9089 *---------------------------------------------------------------------------*/
9090
9091typedef PACKED_PRE struct PACKED_POST {
9092 bool roamScanReq;
9093} tStartRoamScanTriggerParams, * tpStartRoamScanTriggerParams;
9094
9095typedef PACKED_PRE struct PACKED_POST {
9096
9097 tHalMsgHeader header;
9098 tStartRoamScanTriggerParams startRoamScanTriggerParams;
9099} tStartRoamScanReq, *tpStartRoamScanReq;
9100
9101/*---------------------------------------------------------------------------
9102 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP
9103 *---------------------------------------------------------------------------*/
9104
9105typedef PACKED_PRE struct PACKED_POST
9106{
9107 /* Success /Failure / Nil result */
9108 tANI_U32 status;
9109} tConfigRoamScanRspParams, * tpConfigRoamScanRspParams;
9110
9111typedef PACKED_PRE struct PACKED_POST
9112{
9113 tHalMsgHeader header;
9114 tConfigRoamScanRspParams configRoamScanRspParams;
9115} tSetRoamScanConfigRsp, * tpSetRoamScanConfigRsp;
9116
Manjeet Singh4dedb502017-01-17 11:46:35 +05309117/*---------------------------------------------------------------------------
9118* WLAN_HAL_CAPTURE_GET_TSF_TSTAMP
9119*-------------------------------------------------------------------------*/
9120typedef PACKED_PRE struct PACKED_POST
9121{
9122 uint8 uBssIdx;
9123 boolean capTSFget;
9124}tHalCapTSFget, *tptHalCapTSFget;
9125
9126typedef PACKED_PRE struct PACKED_POST
9127{
9128 tHalMsgHeader header;
9129 tHalCapTSFget capTSFget;
9130}tHalCapTSFgetReqInd, *tpHalCapTSFgetReqInd;
9131
9132/*---------------------------------------------------------------------------
9133 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP
9134---------------------------------------------------------------------------*/
9135
9136typedef PACKED_PRE struct PACKED_POST
9137{
9138 /* Success /Failure / Nil result */
9139 tANI_U32 status;
9140 tANI_U32 tsf_lo;
9141 tANI_U32 tsf_hi;
9142} tConfigcapTSFgetRspParams, * tptConfigcapTSFgetRspParams;
9143
9144typedef PACKED_PRE struct PACKED_POST
9145{
9146 tHalMsgHeader header;
9147 tConfigcapTSFgetRspParams configcapTSFgetRspParams;
9148} tcapGetTSFConfigRsp, * tpcapGetTSFConfigRsp;
9149
Kapil Guptac1043632016-06-25 00:23:30 +05309150
9151#define PER_ROAM_MAX_AP_CNT 30
9152#define PER_ROAM_MAX_CANDIDATE_CNT 15
9153
9154/* Candidate Information to be shared in the Candidate Indication,
9155 * similar to what is sent in legacy roaming with following additional info
9156 */
9157
9158typedef PACKED_PRE struct PACKED_POST {
9159 tANI_U8 channelNumber;
9160 tANI_U8 channelCCA;
9161 tANI_U8 otherApCount;
9162 tANI_S8 otherApRssi[PER_ROAM_MAX_AP_CNT];
9163} tCandidateChannelInfo, * tpCandidateChannelInfo;
9164
9165typedef PACKED_PRE struct PACKED_POST {
9166 tANI_U32 candidateCount;
9167 tCandidateChannelInfo channelInfo[PER_ROAM_MAX_CANDIDATE_CNT];
9168} tPerRoamScanResult, * tpPerRoamScanResult;
9169
9170
9171/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309172 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
9173 *-------------------------------------------------------------------------*/
9174typedef PACKED_PRE struct PACKED_POST
9175{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05309176 tANI_U16 status;
9177 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309178 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9179 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9180} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
9181
9182typedef PACKED_PRE struct PACKED_POST
9183{
9184 tHalMsgHeader header;
9185 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
9186} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
9187
9188/*---------------------------------------------------------------------------
Kapil Guptae667f952016-12-20 18:23:27 +05309189 * WLAN_HAL_APFIND_CMDID
9190 * ---------------------------------------------------------------------------*/
9191
9192#define MAX_ARRAY_SIZE 1000
9193typedef PACKED_PRE struct PACKED_POST
9194{
9195 tANI_U16 msg_version:4;
9196 tANI_U16 msg_id:12;
9197 tANI_U16 msg_len:16;
9198 tANI_U16 handle;
9199 tANI_U16 transaction_id;
9200} tApfindMsgHeader, *tpApfindMsgHeader;
9201
9202typedef PACKED_PRE struct PACKED_POST
9203{
9204 tANI_U16 type;
9205 tANI_U16 length;
9206 tANI_U8* value;
9207} tApfindTlv, *tpApfindTlv;
9208
9209typedef PACKED_PRE struct PACKED_POST
9210{
9211 tApfindMsgHeader apFindHeader;
9212 tANI_U8 ptlv[MAX_ARRAY_SIZE];
9213} tQRFPrefNetwListParams, *tpQRFPrefNetwListParams;
9214
9215typedef enum
9216{
9217 APFIND_MSG_ID_ERROR_RSP = 0,
9218 APFIND_MSG_ID_ENABLE_REQ = 1,
9219 APFIND_MSG_ID_SET_SSID = 2,
9220 APFIND_MSG_ID_SET_MAC = 3,
9221 APFIND_MSG_ID_SET_PARAMS = 4,
9222} tApfindMsgId;
9223
9224typedef PACKED_PRE struct PACKED_POST
9225{
9226 tHalMsgHeader header;
9227 tQRFPrefNetwListParams qRFprefNetwListParams;
9228} tQRFSetPrefNetwListReq, *tpQRFSetPrefNetwListReq;
9229
9230#define QRF_MAX_SUPPORTED_NETWORKS 10
9231
9232typedef PACKED_PRE struct PACKED_POST {
9233 /*Network that was found with the highest RSSI*/
9234 tSirMacSSid ssId;
9235 /*Indicates the RSSI */
9236 tANI_U8 rssi;
9237 /* The MPDU frame length of a beacon or probe rsp.
9238 * data is the start of the frame
9239 */
9240 tANI_U16 frameLength;
9241} tQrfNetwFoundParam, *tpQrfNetwFoundParam;
9242
9243typedef PACKED_PRE struct PACKED_POST {
9244 uint8 netwCount;
9245 tQrfNetwFoundParam qrfNetwParams[QRF_MAX_SUPPORTED_NETWORKS];
9246} tQrfPrefNetwFoundParams, * tpQrfPrefNetwFoundParams;
9247
9248/*
9249 * Preferred network found indication
9250 */
9251typedef PACKED_PRE struct PACKED_POST {
9252 tHalMsgHeader header;
9253 tQrfPrefNetwFoundParams qrfPrefNetwFoundParams;
9254} tQrfPrefNetwFoundInd, *tpQrfPrefNetwFoundInd;
9255
9256
9257/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309258 * Logging mail box structure
9259 *-------------------------------------------------------------------------*/
9260
9261#define MAILBOX_VERSION_V1 0x1
9262
9263typedef PACKED_PRE struct PACKED_POST
9264{
9265 /* Logging mail box version */
9266 tANI_U8 logMbVersion;
9267 /* Current logging buffer address */
9268 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9269 /* Current logging buffer length */
9270 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9271 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
9272 tANI_U16 reasonCode;
9273 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
9274 tANI_U8 logType;
9275 /* Indicate if Last segment of log is received*/
9276 tANI_BOOLEAN done;
9277}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05309278
Katya Nigamf0511f62015-05-05 16:40:57 +05309279/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05309280 *WLAN_HAL_FW_MEMORY_DUMP_REQ
9281 *--------------------------------------------------------------------------*/
9282typedef PACKED_PRE struct PACKED_POST
9283{
9284 tANI_U32 reserved;
9285}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
9286
9287typedef PACKED_PRE struct PACKED_POST
9288{
9289 tHalMsgHeader header;
9290 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
9291} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
9292
9293/*---------------------------------------------------------------------------
9294 * WLAN_HAL_FW_MEMORY_DUMP_RSP
9295 *-------------------------------------------------------------------------*/
9296typedef PACKED_PRE struct PACKED_POST
9297{
9298 tANI_U32 status;
9299} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
9300
9301typedef PACKED_PRE struct PACKED_POST
9302{
9303 tHalMsgHeader header;
9304 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
9305} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
9306
9307
9308/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05309309* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
9310*-------------------------------------------------------------------------*/
9311
9312/* only 1 filter is supported as of now */
9313#define NUM_FILTERS_SUPPORTED 1
9314
9315typedef PACKED_PRE struct PACKED_POST
9316{
9317 tSirMacAddr macAddr;
9318 tANI_U8 isA1filteringNeeded;
9319 tANI_U8 isA2filteringNeeded;
9320 tANI_U8 isA3filteringNeeded;
9321}tHalMacFilter, *tpHalMacFilter;
9322
9323typedef PACKED_PRE struct PACKED_POST
9324{
9325 tANI_U8 channelNumber;
9326 ePhyChanBondState cbState;
9327
9328 tANI_U32 maxAmpduLen;
9329 tANI_U32 maxMpduInAmpduLen;
9330
9331 tANI_U8 crcCheckEnabled;
9332
9333 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
9334 tANI_U8 numMacFilters;
9335 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
9336
9337 /* Each bit position maps to IEEE convention of typeSubtype */
9338 tANI_U64 typeSubtypeBitmap;
9339
9340 tANI_U64 reserved;
9341
9342}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
9343
9344typedef PACKED_PRE struct PACKED_POST
9345{
9346 tHalMsgHeader header;
9347 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
9348}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
9349
9350
9351/*---------------------------------------------------------------------------
9352* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
9353*-------------------------------------------------------------------------*/
9354
9355typedef PACKED_PRE struct PACKED_POST
9356{
9357 tANI_U32 status;
9358}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
9359
9360typedef PACKED_PRE struct PACKED_POST
9361{
9362 tHalMsgHeader header;
9363 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
9364}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
9365
9366/*---------------------------------------------------------------------------
9367* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
9368*-------------------------------------------------------------------------*/
9369
9370typedef PACKED_PRE struct PACKED_POST
9371{
9372 tHalMsgHeader header;
9373 tANI_U8 resetConfiguration;
9374}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
9375
9376/*---------------------------------------------------------------------------
9377* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
9378*-------------------------------------------------------------------------*/
9379
9380typedef PACKED_PRE struct PACKED_POST
9381{
9382 tANI_U32 status;
9383}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
9384
9385typedef PACKED_PRE struct PACKED_POST
9386{
9387 tHalMsgHeader header;
9388 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
9389}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
9390
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05309391typedef PACKED_PRE struct PACKED_POST
9392{
9393 tANI_U8 status;
9394}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
9395
Arun Khandavalliafc16432015-10-16 20:11:31 +05309396typedef PACKED_PRE struct PACKED_POST
9397{
9398 tANI_U8 paramType;
9399 tANI_U32 paramValue;
9400 tSirMacAddr bssid;
9401} tSetWifiConfigParams, *tpSetWifiConfigParams;
9402
9403typedef PACKED_PRE struct PACKED_POST
9404{
9405 tHalMsgHeader header;
9406 tSetWifiConfigParams wifiConfigParams;
9407} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
9408
9409typedef PACKED_PRE struct PACKED_POST {
9410 tANI_U32 status;
9411} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
9412
9413typedef PACKED_PRE struct PACKED_POST
9414{
9415 tHalMsgHeader header;
9416
9417 tHalSetWifiConfigRspParams setWifiConfigRspParams;
9418} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
9419
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05309420/*---------------------------------------------------------------------------
9421* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
9422*-------------------------------------------------------------------------*/
9423typedef PACKED_PRE struct PACKED_POST
9424{
9425 tANI_U32 reserved;
9426} tHalAntennaDiversitySelectionReqParams, *tpHalAntennaDiversitySelectionReqParams;
9427
9428typedef PACKED_PRE struct PACKED_POST
9429{
9430 tHalMsgHeader header;
9431 tHalAntennaDiversitySelectionReqParams AntDivSelReqParams;
9432}tHalAntennaDiversitySelectionReqMsg;
9433
9434/*---------------------------------------------------------------------------
9435* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP
9436*-------------------------------------------------------------------------*/
9437
9438typedef PACKED_PRE struct PACKED_POST
9439{
9440 tANI_U16 status;
9441 tANI_U32 selectedAntennaId;
9442 tANI_U32 reserved;
9443} tHalAntennaDiversitySelectionRspParams, *tpHalAntennaDiversitySelectionRspParams;
9444
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +05309445/* WDI_MODIFY_ROAM_PARAMS_IND */
9446typedef PACKED_PRE struct PACKED_POST {
9447 tANI_U8 param;
9448 tANI_U32 value;
9449} tHalModifyRoamParamsIndParams, *tpHalModifyRoamParamsIndParams;
9450
9451typedef PACKED_PRE struct PACKED_POST
9452{
9453 tHalMsgHeader header;
9454 tHalModifyRoamParamsIndParams modifyRoamParamsReqParams;
9455} tHalModifyRoamParamsInd, *tpHalModifyRoamParamsInd;
9456
Agrawal Ashishc6aa0132016-12-09 15:59:29 +05309457typedef PACKED_PRE struct PACKED_POST
9458{
9459 tSirMacAddr selfMacAddr;
9460 tANI_U32 enable;
9461 tSirMacSSid ssId;
9462 tANI_U32 rsn_authmode;
9463 tANI_U32 rsn_ucastcipherset;
9464 tANI_U32 rsn_mcastcipherset;
9465 tANI_U32 rsn_mcastmgmtcipherset;
9466 tANI_U32 channel;
9467 tANI_U32 psk_len;
9468 tANI_U8 psk[1];
9469} tSapOffloadEnableMsg, *tpSapOffloadEnableMsg;
9470
9471typedef PACKED_PRE struct PACKED_POST
9472{
9473 tHalMsgHeader header;
9474 tSapOffloadEnableMsg SapOffloadEnableMsg;
9475} tHalSapoffloadEnable, *tpHalSapoffloadEnable;
9476
Anurag Chouhan9b3383a2016-12-13 22:29:55 +05309477/*---------------------------------------------------------------------------
9478 * WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ
9479 *--------------------------------------------------------------------------*/
9480typedef PACKED_PRE struct PACKED_POST
9481{
9482 tANI_U8 bss_idx;
9483 tANI_U32 enable;
9484 tANI_U32 srv_ipv4; /* server IP */
9485 tANI_U32 start_lsb; /* starting address assigned to client */
9486 tANI_U32 num_client; /* number of clients we support */
9487} hal_dhcp_srv_offload_req_param_t, *hal_dhcp_srv_offload_req_params;
9488
9489typedef PACKED_PRE struct PACKED_POST
9490{
9491 tHalMsgHeader header;
9492 hal_dhcp_srv_offload_req_param_t dhcp_srv_offload_req_params;
9493} hal_dhcp_srv_offload_req_msg_t;
9494
9495/*---------------------------------------------------------------------------
9496 * WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP
9497 *--------------------------------------------------------------------------*/
9498typedef PACKED_PRE struct PACKED_POST
9499{
9500 tANI_U32 status;
9501} hal_dhcp_srv_offload_rsp_param_t, *hal_dhcp_srv_offload_rsp_params;
9502
9503typedef PACKED_PRE struct PACKED_POST
9504{
9505 tHalMsgHeader header;
9506 hal_dhcp_srv_offload_rsp_param_t dhcp_srv_offload_rsp_params;
9507} hal_dhcp_srv_offload_rsp_msg_t, *hal_dhcp_srv_offload_rsp_msg;
9508
Anurag Chouhan9c3ddc72016-12-16 13:12:13 +05309509/*---------------------------------------------------------------------------
9510 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ
9511 *--------------------------------------------------------------------------*/
9512typedef PACKED_PRE struct PACKED_POST
9513{
9514 tANI_U8 bss_idx;
9515 tANI_U32 enable;
9516} hal_mdns_enable_offload_req_param_t, *hal_mdns_enable_offload_req_params;
9517
9518typedef PACKED_PRE struct PACKED_POST
9519{
9520 tHalMsgHeader header;
9521 hal_mdns_enable_offload_req_param_t mdns_enable_req_params;
9522} hal_mdns_enable_offload_req_msg_t;
9523
9524/*---------------------------------------------------------------------------
9525 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP
9526 *--------------------------------------------------------------------------*/
9527typedef PACKED_PRE struct PACKED_POST
9528{
9529 tANI_U32 status;
9530} hal_mdns_enable_offload_rsp_param_t, *hal_mdns_enable_offload_rsp_params;
9531
9532typedef PACKED_PRE struct PACKED_POST
9533{
9534 tHalMsgHeader header;
9535 hal_mdns_enable_offload_rsp_param_t mdns_enable_rsp_params;
9536} hal_mdns_enable_offload_rsp_msg_t, *hal_mdns_enable_offload_rsp_msg;
9537
9538/*---------------------------------------------------------------------------
9539 * WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ
9540 *--------------------------------------------------------------------------*/
9541typedef PACKED_PRE struct PACKED_POST
9542{
9543 tANI_U8 bss_idx;
9544 tANI_U32 type;
9545 tANI_U32 fqdn_len;
9546 tANI_U8 fqdn_data[1];
9547} hal_mdns_fqdn_offload_req_param_t, *hal_mdns_fqdn_offload_req_params;
9548
9549typedef PACKED_PRE struct PACKED_POST
9550{
9551 tHalMsgHeader header;
9552 hal_mdns_fqdn_offload_req_param_t mdns_fqdn_req_params;
9553} hal_mdns_fqdn_offload_req_msg_t;
9554
9555/*---------------------------------------------------------------------------
9556 * WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP
9557 *--------------------------------------------------------------------------*/
9558typedef PACKED_PRE struct PACKED_POST
9559{
9560 tANI_U32 status;
9561} hal_mdns_fqdn_offload_rsp_param_t, *hal_mdns_fqdn_offload_rsp_params;
9562
9563typedef PACKED_PRE struct PACKED_POST
9564{
9565 tHalMsgHeader header;
9566 hal_mdns_fqdn_offload_rsp_param_t mdns_fqdn_rsp_params;
9567} hal_mdns_fqdn_offload_rsp_msg_t, *hal_mdns_fqdn_offload_rsp_msg;
9568
9569/*---------------------------------------------------------------------------
9570 * WLAN_HAL_MDNS_RESP_OFFLOAD_REQ
9571 *--------------------------------------------------------------------------*/
9572typedef PACKED_PRE struct PACKED_POST
9573{
9574 tANI_U8 bss_idx;
9575 tANI_U32 ar_count;
9576 tANI_U32 resp_len;
9577 tANI_U8 resp_data[1];
9578} hal_mdns_resp_offload_req_param_t, *hal_mdns_resp_offload_req_params;
9579
9580typedef PACKED_PRE struct PACKED_POST
9581{
9582 tHalMsgHeader header;
9583 hal_mdns_resp_offload_req_param_t mdns_resp_req_params;
9584} hal_mdns_resp_offload_req_msg_t;
9585
9586/*---------------------------------------------------------------------------
9587 * WLAN_HAL_MDNS_RESP_OFFLOAD_RSP
9588 *--------------------------------------------------------------------------*/
9589typedef PACKED_PRE struct PACKED_POST
9590{
9591 tANI_U32 status;
9592} hal_mdns_resp_offload_rsp_param_t, *hal_mdns_resp_offload_rsp_params;
9593
9594typedef PACKED_PRE struct PACKED_POST
9595{
9596 tHalMsgHeader header;
9597 hal_mdns_resp_offload_rsp_param_t mdns_rsp_params;
9598} hal_mdns_resp_offload_rsp_msg_t, *hal_mdns_resp_offload_rsp_msg;
9599
9600/*---------------------------------------------------------------------------
9601 * WLAN_HAL_MDNS_STATS_OFFLOAD_REQ
9602 *--------------------------------------------------------------------------*/
9603typedef PACKED_PRE struct PACKED_POST
9604{
9605 tANI_U8 bss_idx;
9606} hal_mdns_stats_offload_req_param_t, *hal_mdns_stats_offload_req_params;
9607
9608typedef PACKED_PRE struct PACKED_POST
9609{
9610 tHalMsgHeader header;
9611 hal_mdns_stats_offload_req_param_t mdns_stats_req_params;
9612} hal_mdns_stats_offload_req_msg_t;
9613
9614/*---------------------------------------------------------------------------
9615 * WLAN_HAL_MDNS_STATS_OFFLOAD_RSP
9616 *--------------------------------------------------------------------------*/
9617typedef PACKED_PRE struct PACKED_POST
9618{
9619 tANI_U8 bss_idx;
9620 tANI_U32 current_ts;
9621 tANI_U32 last_query_ts;
9622 tANI_U32 last_rsp_ts;
9623 tANI_U32 tot_queries;
9624 tANI_U32 tot_matches;
9625 tANI_U32 tot_rsp;
9626 tANI_U32 status;
9627} hal_mdns_stats_offload_rsp_param_t, *hal_mdns_stats_offload_rsp_params;
9628
9629typedef PACKED_PRE struct PACKED_POST
9630{
9631 tHalMsgHeader header;
9632 hal_mdns_stats_offload_rsp_param_t mdns_stats_rsp_params;
9633} hal_mdns_stats_offload_rsp_msg_t, *hal_mdns_stats_offload_rsp_msg;
9634
Anurag Chouhance0f0822017-01-24 15:44:26 +05309635/*---------------------------------------------------------------------------
9636 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ
9637 *--------------------------------------------------------------------------*/
9638typedef PACKED_PRE struct PACKED_POST
9639{
9640 tANI_U8 set_clr; /*1 set and 0 reset*/
9641 tANI_U8 pkt_type; /* Default 1: ARP */
9642 tANI_U32 ip_addr; /*GW ipv4 address */
9643} tHalStatsArpReqParams, *tpHalStatsArpReqParams;
9644
9645typedef PACKED_PRE struct PACKED_POST
9646{
9647 tHalMsgHeader header;
9648 tHalStatsArpReqParams statsArpReqParams;
9649} tHalStatsArpReqMsg, *tpHalStatsArpReqMsg;
9650
9651/*---------------------------------------------------------------------------
9652 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP
9653 *--------------------------------------------------------------------------*/
9654typedef PACKED_PRE struct PACKED_POST
9655{
9656 tANI_U32 status; //success or failure
9657} tHalStatsArpRspParams, *tpHalStatsArpRspParams;
9658
9659typedef PACKED_PRE struct PACKED_POST
9660{
9661 tHalMsgHeader header;
9662 tHalStatsArpRspParams statsArpRspParams;
9663} tHalStatsArpRspMsg, *tpHalStatsArpRspMsg;
9664
9665/*---------------------------------------------------------------------------
9666 * WLAN_HAL_FW_GET_ARP_STATS_REQ
9667 *--------------------------------------------------------------------------*/
9668typedef PACKED_PRE struct PACKED_POST
9669{
9670 tANI_U8 pkt_type; /* Furture purpose */
9671} tHalStatsGetArpReqParams, *tpHalStatsGetArpReqParams;
9672
9673typedef PACKED_PRE struct PACKED_POST
9674{
9675 tHalMsgHeader header;
9676 tHalStatsGetArpReqParams statsGetArpReqParams;
9677} tHalStatsGetArpReqMsg, *tpHalStatsGetArpReqMsg;
9678
9679/*---------------------------------------------------------------------------
9680 * WLAN_HAL_FW_GET_ARP_STATS_RSP
9681 *--------------------------------------------------------------------------*/
9682typedef PACKED_PRE struct PACKED_POST
9683{
9684 tANI_U32 status;
9685 tANI_U16 dad;
9686 tANI_U16 arpReqRcvdInFW;
9687 tANI_U16 ackedArpReqCnt;
9688 tANI_U16 arpRspCnt;
9689 tANI_U8 data[1];
9690} tdbugArpStatsgetRspParams, *tpdbugArpStatsgetRspParams;
9691
9692typedef PACKED_PRE struct PACKED_POST
9693{
9694 tHalMsgHeader header;
9695 tdbugArpStatsgetRspParams fwArpstatsRspParams;
9696} tHalARPfwStatsRspMsg, *tpHalARPfwStatsRspMsg;
9697
Jeff Johnson295189b2012-06-20 16:38:30 -07009698#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
9699#pragma pack(pop)
9700#elif defined(__ANI_COMPILER_PRAGMA_PACK)
9701#else
9702#endif
9703
9704#endif /* _WLAN_HAL_MSG_H_ */