blob: 731d50a668942b7d6b396b9713781a98af0b4bd0 [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
4240/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304241 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004242 *--------------------------------------------------------------------------*/
4243
4244typedef PACKED_PRE struct PACKED_POST
4245{
4246 /* success or failure */
4247 tANI_U32 status;
4248}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4249
4250typedef PACKED_PRE struct PACKED_POST
4251{
4252 tHalMsgHeader header;
4253 tSendProbeRespRspParams sendProbeRespRspParams;
4254}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4255
4256
4257/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304258 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004259 *--------------------------------------------------------------------------*/
4260
4261typedef PACKED_PRE struct PACKED_POST
4262{
4263 /* success or failure */
4264 tANI_U32 status;
4265}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4266
4267typedef PACKED_PRE struct PACKED_POST
4268{
4269 tHalMsgHeader header;
4270 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4271}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4272
4273/*---------------------------------------------------------------------------
4274 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4275 *--------------------------------------------------------------------------*/
4276
4277typedef PACKED_PRE struct PACKED_POST
4278{
4279 tANI_U16 assocId;
4280 tANI_U16 staId;
4281 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4282 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004283 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304284 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004285
4286}tDeleteStaContextParams, *tpDeleteStaContextParams;
4287
4288
4289typedef PACKED_PRE struct PACKED_POST
4290{
4291 tHalMsgHeader header;
4292 tDeleteStaContextParams deleteStaContextParams;
4293}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4294
Anand Kumar012623a2013-01-11 17:00:00 -08004295typedef PACKED_PRE struct PACKED_POST
4296{
4297 tHalMsgHeader header;
4298 tANI_U8 assocId;
4299 tANI_U8 staIdx;
4300 tANI_U8 bssIdx;
4301 tANI_U8 uReasonCode;
4302 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004303#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4304 tANI_U8 staAddr[6];
4305 tANI_U8 bssId[6];
4306#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004307} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004308
4309/*---------------------------------------------------------------------------
4310 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4311 *--------------------------------------------------------------------------*/
4312
4313typedef PACKED_PRE struct PACKED_POST
4314{
4315 tBtAmpEventType btAmpEventType;
4316
4317}tBtAmpEventParams, *tpBtAmpEventParams;
4318
4319
4320
4321typedef PACKED_PRE struct PACKED_POST
4322{
4323 tHalMsgHeader header;
4324 tBtAmpEventParams btAmpEventParams;
4325}tBtAmpEventMsg, *tpBtAmpEventMsg;
4326
4327/*---------------------------------------------------------------------------
4328*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4329*--------------------------------------------------------------------------*/
4330
4331typedef PACKED_PRE struct PACKED_POST
4332{
4333 /* success or failure */
4334 tANI_U32 status;
4335}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4336
4337typedef PACKED_PRE struct PACKED_POST
4338{
4339 tHalMsgHeader header;
4340 tBtAmpEventRspParams btAmpEventRspParams;
4341}tBtAmpEventRsp, *tpBtAmpEventRsp;
4342
4343
4344/*---------------------------------------------------------------------------
4345 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4346 *--------------------------------------------------------------------------*/
4347
4348typedef PACKED_PRE struct PACKED_POST
4349{
4350 // Station Index. originates from HAL
4351 tANI_U8 ucSTAId;
4352
4353 // TID for which the transmit queue is being flushed
4354 tANI_U8 ucTid;
4355
4356}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4357
4358
4359typedef PACKED_PRE struct PACKED_POST
4360{
4361 tHalMsgHeader header;
4362 tTlHalFlushAcParams tlHalFlushAcParam;
4363}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4364
4365/*---------------------------------------------------------------------------
4366*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4367*--------------------------------------------------------------------------*/
4368
4369typedef PACKED_PRE struct PACKED_POST
4370{
4371 // Station Index. originates from HAL
4372 tANI_U8 ucSTAId;
4373
4374 // TID for which the transmit queue is being flushed
4375 tANI_U8 ucTid;
4376
4377 /* success or failure */
4378 tANI_U32 status;
4379}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4380
4381typedef PACKED_PRE struct PACKED_POST
4382{
4383 tHalMsgHeader header;
4384 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4385}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4386
4387/*---------------------------------------------------------------------------
4388 * WLAN_HAL_ENTER_IMPS_REQ
4389 *--------------------------------------------------------------------------*/
4390typedef PACKED_PRE struct PACKED_POST
4391{
4392 tHalMsgHeader header;
4393} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4394
4395/*---------------------------------------------------------------------------
4396 * WLAN_HAL_EXIT_IMPS_REQ
4397 *--------------------------------------------------------------------------*/
4398typedef PACKED_PRE struct PACKED_POST
4399{
4400 tHalMsgHeader header;
4401} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4402
4403/*---------------------------------------------------------------------------
4404 * WLAN_HAL_ENTER_BMPS_REQ
4405 *--------------------------------------------------------------------------*/
4406
4407typedef PACKED_PRE struct PACKED_POST
4408{
4409 tANI_U8 bssIdx;
4410 //TBTT value derived from the last beacon
4411#ifndef BUILD_QWPTTSTATIC
4412 tANI_U64 tbtt;
4413#endif
4414 tANI_U8 dtimCount;
4415 //DTIM period given to HAL during association may not be valid,
4416 //if association is based on ProbeRsp instead of beacon.
4417 tANI_U8 dtimPeriod;
4418
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004419 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004420 tANI_U32 rssiFilterPeriod;
4421 tANI_U32 numBeaconPerRssiAverage;
4422 tANI_U8 bRssiFilterEnable;
4423
4424} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4425
4426
4427typedef PACKED_PRE struct PACKED_POST
4428{
4429 tHalMsgHeader header;
4430 tHalEnterBmpsReqParams enterBmpsReq;
4431} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4432
4433/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304434 * WLAN_HAL_PRINT_REG_INFO_IND
4435 *--------------------------------------------------------------------------*/
4436typedef PACKED_PRE struct PACKED_POST
4437{
4438 uint32 regAddr;
4439 uint32 regValue;
4440} tHalRegDebugInfo, *tpRegDebugInfo;
4441
4442typedef PACKED_PRE struct PACKED_POST
4443{
4444 uint32 regCount;
4445 uint32 scenario;
4446 uint32 reasonCode;
4447} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4448
4449typedef PACKED_PRE struct PACKED_POST
4450{
4451 tHalMsgHeader header;
4452 tHalRegDebugInfoParams regParams;
4453} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4454
4455/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004456 * WLAN_HAL_EXIT_BMPS_REQ
4457 *--------------------------------------------------------------------------*/
4458typedef PACKED_PRE struct PACKED_POST
4459{
4460 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004461 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004462} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4463
4464typedef PACKED_PRE struct PACKED_POST
4465{
4466 tHalMsgHeader header;
4467 tHalExitBmpsReqParams exitBmpsReqParams;
4468} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4469
4470/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004471 * WLAN_HAL_MISSED_BEACON_IND
4472 *--------------------------------------------------------------------------*/
4473typedef PACKED_PRE struct PACKED_POST
4474{
4475 tANI_U8 bssIdx;
4476} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4477
4478typedef PACKED_PRE struct PACKED_POST
4479{
4480 tHalMsgHeader header;
4481 tHalMissedBeaconIndParams missedBeaconIndParams;
4482} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4483
4484/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004485 * WLAN_HAL_ADD_BCN_FILTER_REQ
4486 *--------------------------------------------------------------------------*/
4487/* Beacon Filtering data structures */
4488typedef PACKED_PRE struct PACKED_POST
4489{
4490 tANI_U8 offset;
4491 tANI_U8 value;
4492 tANI_U8 bitMask;
4493 tANI_U8 ref;
4494} tEidByteInfo, *tpEidByteInfo;
4495
Dino Mycle8afbac12014-07-04 22:06:17 +05304496typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004497{
4498 tANI_U16 capabilityInfo;
4499 tANI_U16 capabilityMask;
4500 tANI_U16 beaconInterval;
4501 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004502 tANI_U8 bssIdx;
4503 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004504} tBeaconFilterMsg, *tpBeaconFilterMsg;
4505
4506/* The above structure would be followed by multiple of below mentioned structure */
4507typedef PACKED_PRE struct PACKED_POST
4508{
4509 tANI_U8 elementId;
4510 tANI_U8 checkIePresence;
4511 tEidByteInfo byte;
4512} tBeaconFilterIe, *tpBeaconFilterIe;
4513
4514typedef PACKED_PRE struct PACKED_POST
4515{
4516 tHalMsgHeader header;
4517 tBeaconFilterMsg addBcnFilterParams;
4518} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4519
4520/*---------------------------------------------------------------------------
4521 * WLAN_HAL_REM_BCN_FILTER_REQ
4522 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304523typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004524{
4525 tANI_U8 ucIeCount;
4526 tANI_U8 ucRemIeId[1];
4527} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4528
4529typedef PACKED_PRE struct PACKED_POST
4530{
4531 tHalMsgHeader header;
4532 tRemBeaconFilterMsg remBcnFilterParams;
4533} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4534
4535/*---------------------------------------------------------------------------
4536 * WLAN_HAL_HOST_OFFLOAD_REQ
4537 *--------------------------------------------------------------------------*/
4538#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4539#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4540#define HAL_IPV6_NS_OFFLOAD 2
4541#define HAL_IPV6_ADDR_LEN 16
4542#define HAL_MAC_ADDR_LEN 6
4543#define HAL_OFFLOAD_DISABLE 0
4544#define HAL_OFFLOAD_ENABLE 1
4545#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004546#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004547#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004548#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004549
4550typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4551{
4552 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4553 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4554 //Only support 2 possible Network Advertisement IPv6 address
4555 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4556 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4557 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4558 tANI_U8 srcIPv6AddrValid : 1;
4559 tANI_U8 targetIPv6Addr1Valid : 1;
4560 tANI_U8 targetIPv6Addr2Valid : 1;
4561 tANI_U8 reserved1 : 5;
4562 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004563 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004564 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004565} tHalNSOffloadParams;
4566
4567typedef PACKED_PRE struct PACKED_POST
4568{
4569 tANI_U8 offloadType;
4570 tANI_U8 enableOrDisable;
4571 PACKED_PRE union PACKED_POST
4572 {
4573 tANI_U8 hostIpv4Addr [4];
4574 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4575 } params;
4576} tHalHostOffloadReq, *tpHalHostOffloadReq;
4577
4578typedef PACKED_PRE struct PACKED_POST
4579{
4580 tHalMsgHeader header;
4581 tHalHostOffloadReq hostOffloadParams;
4582 tHalNSOffloadParams nsOffloadParams;
4583} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4584
Leo Chang397deb72013-08-22 11:33:16 -07004585
4586#ifdef FEATURE_WLAN_LPHB
4587typedef enum
4588{
4589 WIFI_HB_SET_ENABLE = 0x0001,
4590 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4591 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4592 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4593 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4594 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4595}tLowPowerHeartBeatCmdType ;
4596
4597#define MAX_FLITER_SIZE 64
4598/*---------------------------------------------------------------------------
4599 *FEATURE_WLAN_LPHB REQ
4600 *--------------------------------------------------------------------------*/
4601typedef PACKED_PRE struct PACKED_POST
4602{
4603 uint32 hostIpv4Addr;
4604 uint32 destIpv4Addr;
4605 uint16 hostPort;
4606 uint16 destPort;
4607 uint16 timeOutSec; // in seconds
4608 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004609 uint16 timePeriodSec; // in seconds
4610 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004611} tlowPowerHeartBeatParamsTcpStruct;
4612
4613typedef PACKED_PRE struct PACKED_POST
4614{
4615 uint32 hostIpv4Addr;
4616 uint32 destIpv4Addr;
4617 uint16 hostPort;
4618 uint16 destPort;
4619 uint16 timePeriodSec;// in seconds
4620 uint16 timeOutSec; // in seconds
4621 tSirMacAddr gatewayMacAddr;
4622} tlowPowerHeartBeatParamsUdpStruct;
4623
4624typedef PACKED_PRE struct PACKED_POST
4625{
4626 uint32 offset;
4627 uint32 filterLength;
4628 uint8 filter[MAX_FLITER_SIZE];
4629} tlowPowerHeartBeatFilterStruct;
4630
4631typedef PACKED_PRE struct PACKED_POST
4632{
4633 uint8 heartBeatEnable;
4634 uint8 heartBeatType; //TCP or UDP
4635} tlowPowerHeartBeatEnableStruct;
4636
4637typedef PACKED_PRE struct PACKED_POST
4638{
4639 uint8 dummy;
4640} tlowPowerHeartBeatNetworkInfoStruct;
4641
4642
4643typedef PACKED_PRE struct PACKED_POST
4644{
4645 uint8 sessionIdx;
4646 uint16 lowPowerHeartBeatCmdType;
4647 PACKED_PRE union PACKED_PRO
4648 {
4649 tlowPowerHeartBeatEnableStruct control;
4650 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4651 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4652 tlowPowerHeartBeatParamsUdpStruct udpParams;
4653 tlowPowerHeartBeatNetworkInfoStruct info;
4654 }options;
4655} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4656
4657
4658typedef PACKED_PRE struct PACKED_POST
4659{
4660 tHalMsgHeader header;
4661 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4662} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4663
4664/*---------------------------------------------------------------------------
4665 * FEATURE_WLAN_LPHB RSP
4666 *--------------------------------------------------------------------------*/
4667
4668typedef PACKED_PRE struct PACKED_POST
4669{
4670 /* success or failure */
4671 uint8 sessionIdx;
4672 uint32 status;
4673 uint16 lowPowerHeartBeatCmdType;
4674}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4675
4676typedef PACKED_PRE struct PACKED_POST
4677{
4678 tHalMsgHeader header;
4679 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4680}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4681
4682
4683/*---------------------------------------------------------------------------
4684 * FEATURE_WLAN_LPHB IND
4685 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004686#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4687#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4688
4689#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4690#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004691#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004692
Kumar Anandea78e792013-10-10 23:47:01 -07004693
4694#define WIFI_LPHB_PROTO_UDP 0x01
4695#define WIFI_LPHB_PROTO_TCP 0x02
4696
Leo Chang397deb72013-08-22 11:33:16 -07004697typedef PACKED_PRE struct PACKED_POST
4698{
4699 uint8 bssIdx;
4700 uint8 sessionIdx;
4701 uint8 protocolType; /*TCP or UDP*/
4702 uint8 eventReason;
4703
4704}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4705
4706typedef PACKED_PRE struct PACKED_POST
4707{
4708 tHalMsgHeader header;
4709 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4710}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4711
4712#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004713
4714#ifdef FEATURE_WLAN_BATCH_SCAN
4715
4716/*---------------------------------------------------------------------------
4717 * WLAN_HAL_BATCHSCAN_SET_REQ
4718 *--------------------------------------------------------------------------*/
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 /* Scan Frerquency - default to 30Sec*/
4722 tANI_U32 scanInterval;
4723 tANI_U32 numScan2Batch;
4724 tANI_U32 bestNetworks;
4725 tANI_U8 rfBand;
4726 tANI_U8 rtt;
4727} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4728
4729typedef PACKED_PRE struct PACKED_POST
4730{
4731 tHalMsgHeader header;
4732 tHalBatchScanSetParams batchScanParams;
4733} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4734
4735/*---------------------------------------------------------------------------
4736 * WLAN_HAL_BATCHSCAN_SET_RSP
4737 *--------------------------------------------------------------------------*/
4738typedef PACKED_PRE struct PACKED_POST
4739{
4740 tANI_U32 supportedMscan;
4741} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4742
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 tHalMsgHeader header;
4746 tHalBatchScanSetRspParam setBatchScanRspParam;
4747} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4748
4749/*---------------------------------------------------------------------------
4750* WLAN_HAL_BATCHSCAN_STOP_IND
4751*--------------------------------------------------------------------------*/
4752typedef PACKED_PRE struct PACKED_POST
4753{
4754 tANI_U32 param;
4755} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4756
4757typedef PACKED_PRE struct PACKED_POST
4758{
4759 tHalMsgHeader header;
4760 tHalBatchScanStopIndParam param;
4761} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4762
4763/*---------------------------------------------------------------------------
4764* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4765*--------------------------------------------------------------------------*/
4766typedef PACKED_PRE struct PACKED_POST
4767{
4768 tANI_U32 param;
4769} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4770
4771typedef PACKED_PRE struct PACKED_POST
4772{
4773 tHalMsgHeader header;
4774 tHalBatchScanTriggerResultParam param;
4775} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4776
4777/*---------------------------------------------------------------------------
4778 * WLAN_HAL_BATCHSCAN_GET_RSP
4779 *--------------------------------------------------------------------------*/
4780typedef PACKED_PRE struct PACKED_POST
4781{
4782 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004783 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004784 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304785 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004786 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4787 tANI_U32 timestamp;
4788} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4789
4790typedef PACKED_PRE struct PACKED_POST
4791{
4792 tANI_U32 scanId; /* Scan List ID. */
4793 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4794 tANI_U32 numNetworksInScanList;
4795 /* Variable data ptr: Number of AP in Scan List */
4796 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4797 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4798 tANI_U8 scanList[1];
4799} tHalBatchScanList, *tpHalBatchScanList;
4800
4801typedef PACKED_PRE struct PACKED_POST
4802{
4803 tANI_U32 timestamp;
4804 tANI_U32 numScanLists;
4805 boolean isLastResult;
4806 /* Variable Data ptr: Number of Scan Lists*/
4807 /* following isLastResult is data of type tHalBatchScanList
4808 * of sizeof(tHalBatchScanList) * numScanLists*/
4809 tANI_U8 scanResults[1];
4810} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4811
4812typedef PACKED_PRE struct PACKED_POST
4813{
4814 tHalMsgHeader header;
4815 tHalBatchScanResultIndParam resultIndMsgParam;
4816} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4817
4818#endif
4819
Jeff Johnson295189b2012-06-20 16:38:30 -07004820/*---------------------------------------------------------------------------
4821 * WLAN_HAL_KEEP_ALIVE_REQ
4822 *--------------------------------------------------------------------------*/
4823/* Packet Types. */
4824#define HAL_KEEP_ALIVE_NULL_PKT 1
4825#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4826
4827/* Enable or disable keep alive */
4828#define HAL_KEEP_ALIVE_DISABLE 0
4829#define HAL_KEEP_ALIVE_ENABLE 1
4830
4831/* Keep Alive request. */
4832typedef PACKED_PRE struct PACKED_POST
4833{
4834 tANI_U8 packetType;
4835 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304836 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004837 tHalIpv4Addr destIpv4Addr;
4838 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004839 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004840} tHalKeepAliveReq, *tpHalKeepAliveReq;
4841
4842typedef PACKED_PRE struct PACKED_POST
4843{
4844 tHalMsgHeader header;
4845 tHalKeepAliveReq KeepAliveParams;
4846} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4847
4848/*---------------------------------------------------------------------------
4849 * WLAN_HAL_SET_RSSI_THRESH_REQ
4850 *--------------------------------------------------------------------------*/
4851typedef PACKED_PRE struct PACKED_POST
4852{
4853 tANI_S8 ucRssiThreshold1 : 8;
4854 tANI_S8 ucRssiThreshold2 : 8;
4855 tANI_S8 ucRssiThreshold3 : 8;
4856 tANI_U8 bRssiThres1PosNotify : 1;
4857 tANI_U8 bRssiThres1NegNotify : 1;
4858 tANI_U8 bRssiThres2PosNotify : 1;
4859 tANI_U8 bRssiThres2NegNotify : 1;
4860 tANI_U8 bRssiThres3PosNotify : 1;
4861 tANI_U8 bRssiThres3NegNotify : 1;
4862 tANI_U8 bReserved10 : 2;
4863} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304864
Jeff Johnson295189b2012-06-20 16:38:30 -07004865typedef PACKED_PRE struct PACKED_POST
4866{
4867 tHalMsgHeader header;
4868 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004869} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004870
4871/*---------------------------------------------------------------------------
4872 * WLAN_HAL_ENTER_UAPSD_REQ
4873 *--------------------------------------------------------------------------*/
4874typedef PACKED_PRE struct PACKED_POST
4875{
4876 tANI_U8 bkDeliveryEnabled:1;
4877 tANI_U8 beDeliveryEnabled:1;
4878 tANI_U8 viDeliveryEnabled:1;
4879 tANI_U8 voDeliveryEnabled:1;
4880 tANI_U8 bkTriggerEnabled:1;
4881 tANI_U8 beTriggerEnabled:1;
4882 tANI_U8 viTriggerEnabled:1;
4883 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004884 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004885} tUapsdReqParams, *tpUapsdReqParams;
4886
4887typedef PACKED_PRE struct PACKED_POST
4888{
4889 tHalMsgHeader header;
4890 tUapsdReqParams enterUapsdParams;
4891} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4892
4893/*---------------------------------------------------------------------------
4894 * WLAN_HAL_EXIT_UAPSD_REQ
4895 *--------------------------------------------------------------------------*/
4896typedef PACKED_PRE struct PACKED_POST
4897{
4898 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004899 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004900} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4901
Kumar Anandea78e792013-10-10 23:47:01 -07004902#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4903#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004904/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004905 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4906 *--------------------------------------------------------------------------*/
4907typedef PACKED_PRE struct PACKED_POST
4908{
4909 tANI_U32 selfStaIdx:8;
4910 tANI_U32 ucPtrnId:8; // Pattern ID
4911 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4912 tANI_U32 uPtrnIntervalMs; // In msec
4913 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4914} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4915
4916typedef PACKED_PRE struct PACKED_POST
4917{
4918 tHalMsgHeader header;
4919 tHalAddPeriodicTxPtrn ptrnParams;
4920} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4921
4922/*---------------------------------------------------------------------------
4923 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4924 *--------------------------------------------------------------------------*/
4925typedef PACKED_PRE struct PACKED_POST
4926{
4927 tANI_U32 selfStaIdx:8;
4928 tANI_U32 rsvd:24;
4929 /* Bitmap of pattern IDs that needs to be deleted */
4930 tANI_U32 uPatternIdBitmap;
4931} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4932
4933typedef PACKED_PRE struct PACKED_POST
4934{
4935 tHalMsgHeader header;
4936 tHalDelPeriodicTxPtrn ptrnParams;
4937} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4938
4939/*---------------------------------------------------------------------------
4940 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4941 *--------------------------------------------------------------------------*/
4942typedef PACKED_PRE struct PACKED_POST
4943{
4944 /* Type of Failure indication */
4945 tANI_U32 bssIdx:8;
4946 tANI_U32 selfStaIdx:8;
4947 tANI_U32 rsvd:16;
4948 tANI_U32 status;
4949 tANI_U32 patternIdBitmap;
4950} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4951
4952typedef PACKED_PRE struct PACKED_POST
4953{
4954 tHalMsgHeader header;
4955 tHalPeriodicTxPtrnFwInd fwIndParams;
4956} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4957
4958/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004959 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4960 *--------------------------------------------------------------------------*/
4961#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4962#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4963
4964typedef PACKED_PRE struct PACKED_POST
4965{
4966 tANI_U8 ucPatternId; // Pattern ID
4967 // Pattern byte offset from beginning of the 802.11 packet to start of the
4968 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304969 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004970 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4971 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4972 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4973 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4974 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4975 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004976 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004977} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4978
4979typedef PACKED_PRE struct PACKED_POST
4980{
4981 tHalMsgHeader header;
4982 tHalWowlAddBcastPtrn ptrnParams;
4983} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304984
Jeff Johnsone7245742012-09-05 17:12:55 -07004985
4986
Jeff Johnson295189b2012-06-20 16:38:30 -07004987/*---------------------------------------------------------------------------
4988 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4989 *--------------------------------------------------------------------------*/
4990typedef PACKED_PRE struct PACKED_POST
4991{
4992 /* Pattern ID of the wakeup pattern to be deleted */
4993 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004994 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004995} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4996
4997typedef PACKED_PRE struct PACKED_POST
4998{
4999 tHalMsgHeader header;
5000 tHalWowlDelBcastPtrn ptrnParams;
5001} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
5002
5003/*---------------------------------------------------------------------------
5004 * WLAN_HAL_ENTER_WOWL_REQ
5005 *--------------------------------------------------------------------------*/
5006typedef PACKED_PRE struct PACKED_POST
5007{
5008 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05305009 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005010
5011 /* Magic pattern */
5012 tSirMacAddr magicPtrn;
5013
Dino Mycle8afbac12014-07-04 22:06:17 +05305014 /* Enables/disables packet pattern filtering in firmware.
5015 Enabling this flag enables broadcast pattern matching
5016 in Firmware. If unicast pattern matching is also desired,
5017 ucUcastPatternFilteringEnable flag must be set tot true
5018 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07005019 */
5020 tANI_U8 ucPatternFilteringEnable;
5021
Dino Mycle8afbac12014-07-04 22:06:17 +05305022 /* Enables/disables unicast packet pattern filtering.
5023 This flag specifies whether we want to do pattern match
5024 on unicast packets as well and not just broadcast packets.
5025 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07005026 (main controlling flag) is set to false
5027 */
Dino Mycle8afbac12014-07-04 22:06:17 +05305028 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07005029
Dino Mycle8afbac12014-07-04 22:06:17 +05305030 /* This configuration is valid only when magicPktEnable=1.
5031 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07005032 * Channel Switch Action Frame.
5033 */
5034 tANI_U8 ucWowChnlSwitchRcv;
5035
Dino Mycle8afbac12014-07-04 22:06:17 +05305036 /* This configuration is valid only when magicPktEnable=1.
5037 * It requests hardware to wake up when it receives the
5038 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005039 */
5040 tANI_U8 ucWowDeauthRcv;
5041
Dino Mycle8afbac12014-07-04 22:06:17 +05305042 /* This configuration is valid only when magicPktEnable=1.
5043 * It requests hardware to wake up when it receives the
5044 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005045 */
5046 tANI_U8 ucWowDisassocRcv;
5047
Dino Mycle8afbac12014-07-04 22:06:17 +05305048 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005049 * It requests hardware to wake up when it has missed
5050 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05305051 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07005052 */
5053 tANI_U8 ucWowMaxMissedBeacons;
5054
Dino Mycle8afbac12014-07-04 22:06:17 +05305055 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005056 * This is a timeout value in units of microsec. It requests
5057 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05305058 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07005059 */
5060 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05305061
Jeff Johnson295189b2012-06-20 16:38:30 -07005062 /* This configuration directs the WoW packet filtering to look for EAP-ID
5063 * requests embedded in EAPOL frames and use this as a wake source.
5064 */
5065 tANI_U8 ucWoWEAPIDRequestEnable;
5066
5067 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
5068 * requests and use this as a wake source.
5069 */
5070 tANI_U8 ucWoWEAPOL4WayEnable;
5071
5072 /* This configuration allows a host wakeup on an network scan offload match.
5073 */
5074 tANI_U8 ucWowNetScanOffloadMatch;
5075
5076 /* This configuration allows a host wakeup on any GTK rekeying error.
5077 */
5078 tANI_U8 ucWowGTKRekeyError;
5079
5080 /* This configuration allows a host wakeup on BSS connection loss.
5081 */
5082 tANI_U8 ucWoWBSSConnLoss;
5083
Jeff Johnsone7245742012-09-05 17:12:55 -07005084 tANI_U8 bssIdx;
5085
Jeff Johnson295189b2012-06-20 16:38:30 -07005086} tHalWowlEnterParams, *tpHalWowlEnterParams;
5087
5088typedef PACKED_PRE struct PACKED_POST
5089{
5090 tHalMsgHeader header;
5091 tHalWowlEnterParams enterWowlParams;
5092} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5093
5094/*---------------------------------------------------------------------------
5095 * WLAN_HAL_EXIT_WOWL_REQ
5096 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005097
Jeff Johnson295189b2012-06-20 16:38:30 -07005098typedef PACKED_PRE struct PACKED_POST
5099{
Jeff Johnsone7245742012-09-05 17:12:55 -07005100 tANI_U8 bssIdx;
5101
5102} tHalWowlExitParams, *tpHalWowlExitParams;
5103
5104typedef PACKED_PRE struct PACKED_POST
5105{
5106 tHalMsgHeader header;
5107 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005108} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5109
5110/*---------------------------------------------------------------------------
5111 * WLAN_HAL_GET_RSSI_REQ
5112 *--------------------------------------------------------------------------*/
5113typedef PACKED_PRE struct PACKED_POST
5114{
5115 tHalMsgHeader header;
5116} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5117
Anand Kumar012623a2013-01-11 17:00:00 -08005118typedef PACKED_PRE struct PACKED_POST
5119{
5120 /* Valid STA Idx for per STA stats request */
5121 tANI_U32 staId;
5122
5123}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5124
5125
5126/*---------------------------------------------------------------------------
5127 * WLAN_HAL_GET_ROAM_RSSI_REQ
5128 *--------------------------------------------------------------------------*/
5129typedef PACKED_PRE struct PACKED_POST
5130{
5131 tHalMsgHeader header;
5132 tHalRoamRssiReqParams roamRssiReqParams;
5133} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5134
5135
Jeff Johnson295189b2012-06-20 16:38:30 -07005136/*---------------------------------------------------------------------------
5137 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5138 *--------------------------------------------------------------------------*/
5139typedef PACKED_PRE struct PACKED_POST {
5140 tANI_U8 staidx; // STA index
5141 tANI_U8 ac; // Access Category
5142 tANI_U8 up; // User Priority
5143 tANI_U32 srvInterval; // Service Interval
5144 tANI_U32 susInterval; // Suspend Interval
5145 tANI_U32 delayInterval; // Delay Interval
5146} tUapsdInfo, tpUapsdInfo;
5147
5148typedef PACKED_PRE struct PACKED_POST
5149{
5150 tHalMsgHeader header;
5151 tUapsdInfo enableUapsdAcParams;
5152} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5153
5154/*---------------------------------------------------------------------------
5155 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5156 *--------------------------------------------------------------------------*/
5157typedef PACKED_PRE struct PACKED_POST {
5158 tANI_U8 setMcstBcstFilterSetting;
5159 tANI_U8 setMcstBcstFilter;
5160} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5161
5162typedef PACKED_PRE struct PACKED_POST
5163{
5164 tHalMsgHeader header;
5165 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5166} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5167
5168/*---------------------------------------------------------------------------
5169 * WLAN_HAL_ENTER_IMPS_RSP
5170 *--------------------------------------------------------------------------*/
5171typedef PACKED_PRE struct PACKED_POST
5172{
5173 /* success or failure */
5174 tANI_U32 status;
5175} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5176
5177typedef PACKED_PRE struct PACKED_POST
5178{
5179 tHalMsgHeader header;
5180 tHalEnterImpsRspParams enterImpsRspParams;
5181} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5182
5183/*---------------------------------------------------------------------------
5184 * WLAN_HAL_EXIT_IMPS_RSP
5185 *--------------------------------------------------------------------------*/
5186typedef PACKED_PRE struct PACKED_POST
5187{
5188 /* success or failure */
5189 tANI_U32 status;
5190} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5191
5192typedef PACKED_PRE struct PACKED_POST
5193{
5194 tHalMsgHeader header;
5195 tHalExitImpsRspParams exitImpsRspParams;
5196} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5197
5198/*---------------------------------------------------------------------------
5199 * WLAN_HAL_ENTER_BMPS_RSP
5200 *--------------------------------------------------------------------------*/
5201typedef PACKED_PRE struct PACKED_POST
5202{
5203 /* success or failure */
5204 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005205 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005206} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5207
5208typedef PACKED_PRE struct PACKED_POST
5209{
5210 tHalMsgHeader header;
5211 tHalEnterBmpsRspParams enterBmpsRspParams;
5212} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5213
5214/*---------------------------------------------------------------------------
5215 * WLAN_HAL_EXIT_BMPS_RSP
5216 *--------------------------------------------------------------------------*/
5217typedef PACKED_PRE struct PACKED_POST
5218{
5219 /* success or failure */
5220 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005221 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005222} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5223
5224typedef PACKED_PRE struct PACKED_POST
5225{
5226 tHalMsgHeader header;
5227 tHalExitBmpsRspParams exitBmpsRspParams;
5228} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5229
5230/*---------------------------------------------------------------------------
5231 * WLAN_HAL_ENTER_UAPSD_RSP
5232 *--------------------------------------------------------------------------*/
5233typedef PACKED_PRE struct PACKED_POST
5234{
5235 /* success or failure */
5236 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005237 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005238}tUapsdRspParams, *tpUapsdRspParams;
5239
5240typedef PACKED_PRE struct PACKED_POST
5241{
5242 tHalMsgHeader header;
5243 tUapsdRspParams enterUapsdRspParams;
5244} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5245
5246/*---------------------------------------------------------------------------
5247 * WLAN_HAL_EXIT_UAPSD_RSP
5248 *--------------------------------------------------------------------------*/
5249typedef PACKED_PRE struct PACKED_POST
5250{
5251 /* success or failure */
5252 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005253 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005254} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5255
5256typedef PACKED_PRE struct PACKED_POST
5257{
5258 tHalMsgHeader header;
5259 tHalExitUapsdRspParams exitUapsdRspParams;
5260} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5261
5262/*---------------------------------------------------------------------------
5263 * WLAN_HAL_RSSI_NOTIFICATION_IND
5264 *--------------------------------------------------------------------------*/
5265typedef PACKED_PRE struct PACKED_POST
5266{
5267 tANI_U32 bRssiThres1PosCross : 1;
5268 tANI_U32 bRssiThres1NegCross : 1;
5269 tANI_U32 bRssiThres2PosCross : 1;
5270 tANI_U32 bRssiThres2NegCross : 1;
5271 tANI_U32 bRssiThres3PosCross : 1;
5272 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005273 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005274 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005275 tANI_U32 isBTCoexCompromise : 1;
5276 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005277 tANI_S8 refRssiThreshold1;
5278 tANI_S8 refRssiThreshold2;
5279 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005280} tHalRSSINotification, *tpHalRSSINotification;
5281
5282typedef PACKED_PRE struct PACKED_POST
5283{
5284 tHalMsgHeader header;
5285 tHalRSSINotification rssiNotificationParams;
5286} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5287
5288/*---------------------------------------------------------------------------
5289 * WLAN_HAL_GET_RSSI_RSP
5290 *--------------------------------------------------------------------------*/
5291typedef PACKED_PRE struct PACKED_POST
5292{
5293 /* success or failure */
5294 tANI_U32 status;
5295 tANI_S8 rssi;
5296} tHalGetRssiParams, *tpHalGetRspParams;
5297
5298typedef PACKED_PRE struct PACKED_POST
5299{
5300 tHalMsgHeader header;
5301 tHalGetRssiParams rssiRspParams;
5302} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5303
5304/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005305 * WLAN_HAL_GET_ROAM_RSSI_RSP
5306 *--------------------------------------------------------------------------*/
5307typedef PACKED_PRE struct PACKED_POST
5308{
5309 /* success or failure */
5310 tANI_U32 status;
5311
5312 tANI_U8 staId;
5313 tANI_S8 rssi;
5314} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5315
5316typedef PACKED_PRE struct PACKED_POST
5317{
5318 tHalMsgHeader header;
5319 tHalGetRoamRssiParams roamRssiRspParams;
5320} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5321
5322/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005323 * WLAN_HAL_ENTER_WOWL_RSP
5324 *--------------------------------------------------------------------------*/
5325typedef PACKED_PRE struct PACKED_POST
5326{
5327 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005328 tANI_U32 status;
5329 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005330} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5331
5332typedef PACKED_PRE struct PACKED_POST
5333{
5334 tHalMsgHeader header;
5335 tHalEnterWowlRspParams enterWowlRspParams;
5336} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5337
5338/*---------------------------------------------------------------------------
5339 * WLAN_HAL_EXIT_WOWL_RSP
5340 *--------------------------------------------------------------------------*/
5341typedef PACKED_PRE struct PACKED_POST
5342{
5343 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005344 tANI_U32 status;
5345 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005346} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5347
5348typedef PACKED_PRE struct PACKED_POST
5349{
5350 tHalMsgHeader header;
5351 tHalExitWowlRspParams exitWowlRspParams;
5352} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5353
5354/*---------------------------------------------------------------------------
5355 * WLAN_HAL_ADD_BCN_FILTER_RSP
5356 *--------------------------------------------------------------------------*/
5357typedef PACKED_PRE struct PACKED_POST
5358{
5359 /* success or failure */
5360 tANI_U32 status;
5361} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5362
5363typedef PACKED_PRE struct PACKED_POST
5364{
5365 tHalMsgHeader header;
5366 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5367} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5368
5369/*---------------------------------------------------------------------------
5370 * WLAN_HAL_REM_BCN_FILTER_RSP
5371 *--------------------------------------------------------------------------*/
5372typedef PACKED_PRE struct PACKED_POST
5373{
5374 /* success or failure */
5375 tANI_U32 status;
5376} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5377
5378typedef PACKED_PRE struct PACKED_POST
5379{
5380 tHalMsgHeader header;
5381 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5382} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5383
5384/*---------------------------------------------------------------------------
5385 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5386 *--------------------------------------------------------------------------*/
5387typedef PACKED_PRE struct PACKED_POST
5388{
5389 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005390 tANI_U32 status;
5391 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005392} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5393
5394typedef PACKED_PRE struct PACKED_POST
5395{
5396 tHalMsgHeader header;
5397 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5398} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5399
5400/*---------------------------------------------------------------------------
5401 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5402 *--------------------------------------------------------------------------*/
5403typedef PACKED_PRE struct PACKED_POST
5404{
5405 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005406 tANI_U32 status;
5407 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005408} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5409
5410typedef PACKED_PRE struct PACKED_POST
5411{
5412 tHalMsgHeader header;
5413 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5414} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5415
5416/*---------------------------------------------------------------------------
5417 * WLAN_HAL_HOST_OFFLOAD_RSP
5418 *--------------------------------------------------------------------------*/
5419typedef PACKED_PRE struct PACKED_POST
5420{
5421 /* success or failure */
5422 tANI_U32 status;
5423} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5424
5425typedef PACKED_PRE struct PACKED_POST
5426{
5427 tHalMsgHeader header;
5428 tHalHostOffloadRspParams hostOffloadRspParams;
5429} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5430
5431/*---------------------------------------------------------------------------
5432 * WLAN_HAL_KEEP_ALIVE_RSP
5433 *--------------------------------------------------------------------------*/
5434typedef PACKED_PRE struct PACKED_POST
5435{
5436 /* success or failure */
5437 tANI_U32 status;
5438} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5439
5440typedef PACKED_PRE struct PACKED_POST
5441{
5442 tHalMsgHeader header;
5443 tHalKeepAliveRspParams keepAliveRspParams;
5444} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5445
5446/*---------------------------------------------------------------------------
5447 * WLAN_HAL_SET_RSSI_THRESH_RSP
5448 *--------------------------------------------------------------------------*/
5449typedef PACKED_PRE struct PACKED_POST
5450{
5451 /* success or failure */
5452 tANI_U32 status;
5453} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5454
5455typedef PACKED_PRE struct PACKED_POST
5456{
5457 tHalMsgHeader header;
5458 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5459} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5460
5461/*---------------------------------------------------------------------------
5462 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5463 *--------------------------------------------------------------------------*/
5464typedef PACKED_PRE struct PACKED_POST
5465{
5466 /* success or failure */
5467 tANI_U32 status;
5468} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5469
5470typedef PACKED_PRE struct PACKED_POST
5471{
5472 tHalMsgHeader header;
5473 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5474} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5475
5476/*---------------------------------------------------------------------------
5477 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5478 *--------------------------------------------------------------------------*/
5479typedef PACKED_PRE struct PACKED_POST
5480{
5481 /* success or failure */
5482 tANI_U32 status;
5483} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5484
5485typedef PACKED_PRE struct PACKED_POST
5486{
5487 tHalMsgHeader header;
5488 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5489} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5490
5491/*---------------------------------------------------------------------------
5492 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5493 *--------------------------------------------------------------------------*/
5494
5495typedef PACKED_PRE struct PACKED_POST
5496{
5497 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5498 //the request has power constraints, this should be applied only to that session
5499 tSirMacAddr selfStaMacAddr;
5500 //In request,
5501 //power == MaxTx power to be used.
5502 tPowerdBm power;
5503
5504}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5505
5506
5507typedef PACKED_PRE struct PACKED_POST
5508{
5509 tHalMsgHeader header;
5510 tSetMaxTxPwrParams setMaxTxPwrParams;
5511}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5512
5513/*---------------------------------------------------------------------------
5514*WLAN_HAL_SET_MAX_TX_POWER_RSP
5515*--------------------------------------------------------------------------*/
5516
5517typedef PACKED_PRE struct PACKED_POST
5518{
5519 //power == tx power used for management frames.
5520 tPowerdBm power;
5521
5522 /* success or failure */
5523 tANI_U32 status;
5524}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5525
5526typedef PACKED_PRE struct PACKED_POST
5527{
5528 tHalMsgHeader header;
5529 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5530}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5531
Kumar Anandea78e792013-10-10 23:47:01 -07005532
Jeff Johnson295189b2012-06-20 16:38:30 -07005533/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005534 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5535 *--------------------------------------------------------------------------*/
5536
5537/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5538typedef enum
5539{
5540 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5541 // For 2.4GHz or 5GHz bands
5542 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5543 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5544 // End of valid enums
5545 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5546}tHalSetMaxTxPwrBandInfo;
5547
5548typedef PACKED_PRE struct PACKED_POST
5549{
5550 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005551 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005552}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5553
Kumar Anandea78e792013-10-10 23:47:01 -07005554
Arif Hussain36fda162013-08-30 14:46:57 -07005555typedef PACKED_PRE struct PACKED_POST
5556{
5557 tHalMsgHeader header;
5558 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5559}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5560
5561/*---------------------------------------------------------------------------
5562*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5563*--------------------------------------------------------------------------*/
5564
5565typedef PACKED_PRE struct PACKED_POST
5566{
5567 //power == tx power used for management frames.
5568 tPowerdBm power;
5569
5570 /* success or failure */
5571 tANI_U32 status;
5572}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5573
5574typedef PACKED_PRE struct PACKED_POST
5575{
5576 tHalMsgHeader header;
5577 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5578}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5579
5580/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005581 *WLAN_HAL_SET_TX_POWER_REQ
5582 *--------------------------------------------------------------------------*/
5583
5584typedef PACKED_PRE struct PACKED_POST
5585{
5586 /* TX Power in milli watts */
5587 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005588 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005589}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5590
5591
5592typedef PACKED_PRE struct PACKED_POST
5593{
5594 tHalMsgHeader header;
5595 tSetTxPwrReqParams setTxPwrReqParams;
5596}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5597
5598/*---------------------------------------------------------------------------
5599*WLAN_HAL_SET_TX_POWER_RSP
5600*--------------------------------------------------------------------------*/
5601
5602typedef PACKED_PRE struct PACKED_POST
5603{
5604 /* success or failure */
5605 tANI_U32 status;
5606}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5607
5608typedef PACKED_PRE struct PACKED_POST
5609{
5610 tHalMsgHeader header;
5611 tSetTxPwrRspParams setTxPwrRspParams;
5612}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5613
5614/*---------------------------------------------------------------------------
5615 *WLAN_HAL_GET_TX_POWER_REQ
5616 *--------------------------------------------------------------------------*/
5617
5618typedef PACKED_PRE struct PACKED_POST
5619{
5620 tANI_U8 staId;
5621}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5622
5623typedef PACKED_PRE struct PACKED_POST
5624{
5625 tHalMsgHeader header;
5626 tGetTxPwrReqParams getTxPwrReqParams;
5627}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5628
5629/*---------------------------------------------------------------------------
5630*WLAN_HAL_GET_TX_POWER_RSP
5631*--------------------------------------------------------------------------*/
5632
5633typedef PACKED_PRE struct PACKED_POST
5634{
5635 /* success or failure */
5636 tANI_U32 status;
5637
5638 /* TX Power in milli watts */
5639 tANI_U32 txPower;
5640}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5641
5642typedef PACKED_PRE struct PACKED_POST
5643{
5644 tHalMsgHeader header;
5645 tGetTxPwrRspParams getTxPwrRspParams;
5646}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5647
5648#ifdef WLAN_FEATURE_P2P
5649/*---------------------------------------------------------------------------
5650 *WLAN_HAL_SET_P2P_GONOA_REQ
5651 *--------------------------------------------------------------------------*/
5652
5653typedef PACKED_PRE struct PACKED_POST
5654{
5655 tANI_U8 opp_ps;
5656 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305657 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005658 tANI_U32 duration;
5659 tANI_U32 interval;
5660 tANI_U32 single_noa_duration;
5661 tANI_U8 psSelection;
5662}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5663
5664
5665typedef PACKED_PRE struct PACKED_POST
5666{
5667 tHalMsgHeader header;
5668 tSetP2PGONOAParams setP2PGONOAParams;
5669}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5670
5671/*---------------------------------------------------------------------------
5672*WLAN_HAL_SET_P2P_GONOA_RSP
5673*--------------------------------------------------------------------------*/
5674
5675typedef PACKED_PRE struct PACKED_POST
5676{
5677 /* success or failure */
5678 tANI_U32 status;
5679}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5680
5681typedef PACKED_PRE struct PACKED_POST
5682{
5683 tHalMsgHeader header;
5684 tSetP2PGONOARspParams setP2PGONOARspParams;
5685}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5686#endif
5687
5688/*---------------------------------------------------------------------------
5689 *WLAN_HAL_ADD_SELF_STA_REQ
5690 *--------------------------------------------------------------------------*/
5691
5692typedef PACKED_PRE struct PACKED_POST
5693{
5694 tSirMacAddr selfMacAddr;
5695 tANI_U32 status;
5696}tAddStaSelfParams, *tpAddStaSelfParams;
5697
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005698typedef PACKED_PRE struct PACKED_POST
5699{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005700 tHalMsgHeader header;
5701 tAddStaSelfParams addStaSelfParams;
5702}tAddStaSelfReq, *tpAddStaSelfReq;
5703
5704/* This V1 structure carries additionally the IFACE PERSONA
5705 of the interface as compared to the legacy control
5706 message */
5707typedef PACKED_PRE struct PACKED_POST
5708{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005709 tSirMacAddr selfMacAddr;
5710 tANI_U32 status;
5711 tHalIfacePersona iface_persona;
5712}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005713
5714typedef PACKED_PRE struct PACKED_POST
5715{
5716 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005717 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005718}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005719
5720/*---------------------------------------------------------------------------
5721*WLAN_HAL_ADD_SELF_STA_RSP
5722*--------------------------------------------------------------------------*/
5723
5724typedef PACKED_PRE struct PACKED_POST
5725{
5726 /* success or failure */
5727 tANI_U32 status;
5728
5729 /*Self STA Index */
5730 tANI_U8 selfStaIdx;
5731
5732 /* DPU Index (IGTK, PTK, GTK all same) */
5733 tANI_U8 dpuIdx;
5734
5735 /* DPU Signature */
5736 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305737
Jeff Johnson295189b2012-06-20 16:38:30 -07005738}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5739
5740typedef PACKED_PRE struct PACKED_POST
5741{
5742 tHalMsgHeader header;
5743 tAddStaSelfRspParams addStaSelfRspParams;
5744}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5745
5746
5747/*---------------------------------------------------------------------------
5748 WLAN_HAL_DEL_STA_SELF_REQ
5749---------------------------------------------------------------------------*/
5750
5751typedef PACKED_PRE struct PACKED_POST
5752{
5753 tSirMacAddr selfMacAddr;
5754
5755}tDelStaSelfParams, *tpDelStaSelfParams;
5756
5757typedef PACKED_PRE struct PACKED_POST
5758{
5759 tHalMsgHeader header;
5760 tDelStaSelfParams delStaSelfParams;
5761} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5762
5763
5764/*---------------------------------------------------------------------------
5765 WLAN_HAL_DEL_STA_SELF_RSP
5766---------------------------------------------------------------------------*/
5767
5768typedef PACKED_PRE struct PACKED_POST
5769{
5770 /*success or failure */
5771 tANI_U32 status;
5772
5773 tSirMacAddr selfMacAddr;
5774}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5775
5776typedef PACKED_PRE struct PACKED_POST
5777{
5778 tHalMsgHeader header;
5779 tDelStaSelfRspParams delStaSelfRspParams;
5780} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5781
5782
5783#ifdef WLAN_FEATURE_VOWIFI_11R
5784
5785/*---------------------------------------------------------------------------
5786 *WLAN_HAL_AGGR_ADD_TS_REQ
5787 *--------------------------------------------------------------------------*/
5788
5789typedef PACKED_PRE struct PACKED_POST
5790{
5791 /* Station Index */
5792 tANI_U16 staIdx;
5793
5794 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5795 /* This will carry the bitmap with the bit positions representing different AC.s*/
5796 tANI_U16 tspecIdx;
5797
5798 /* Tspec info per AC To program TPE with required parameters */
5799 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5800
5801 /* U-APSD Flags: 1b per AC. Encoded as follows:
5802 b7 b6 b5 b4 b3 b2 b1 b0 =
5803 X X X X BE BK VI VO */
5804 tANI_U8 uAPSD;
5805
5806 /* These parameters are for all the access categories */
5807 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5808 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5809 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5810
5811}tAggrAddTsParams, *tpAggrAddTsParams;
5812
5813
5814typedef PACKED_PRE struct PACKED_POST
5815{
5816 tHalMsgHeader header;
5817 tAggrAddTsParams aggrAddTsParam;
5818}tAggrAddTsReq, *tpAggrAddTsReq;
5819
5820/*---------------------------------------------------------------------------
5821*WLAN_HAL_AGGR_ADD_TS_RSP
5822*--------------------------------------------------------------------------*/
5823
5824typedef PACKED_PRE struct PACKED_POST
5825{
5826 /* success or failure */
5827 tANI_U32 status0;
5828 /* FIXME PRIMA for future use for 11R */
5829 tANI_U32 status1;
5830}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5831
5832typedef PACKED_PRE struct PACKED_POST
5833{
5834 tHalMsgHeader header;
5835 tAggrAddTsRspParams aggrAddTsRspParam;
5836}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5837
5838#endif
5839
5840/*---------------------------------------------------------------------------
5841 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5842 *--------------------------------------------------------------------------*/
5843typedef PACKED_PRE struct PACKED_POST
5844{
5845 tANI_U8 isAppsCpuAwake;
5846} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5847
5848typedef PACKED_PRE struct PACKED_POST
5849{
5850 tHalMsgHeader header;
5851 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5852} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5853
5854/*---------------------------------------------------------------------------
5855 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5856 *--------------------------------------------------------------------------*/
5857typedef PACKED_PRE struct PACKED_POST
5858{
5859 /* success or failure */
5860 tANI_U32 status;
5861} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5862
5863typedef PACKED_PRE struct PACKED_POST
5864{
5865 tHalMsgHeader header;
5866 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5867} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5868/*---------------------------------------------------------------------------
5869 * WLAN_HAL_DUMP_COMMAND_REQ
5870 *--------------------------------------------------------------------------*/
5871
5872typedef PACKED_PRE struct PACKED_POST
5873{
5874 tANI_U32 argument1;
5875 tANI_U32 argument2;
5876 tANI_U32 argument3;
5877 tANI_U32 argument4;
5878 tANI_U32 argument5;
5879
5880}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5881
5882typedef PACKED_PRE struct PACKED_POST
5883{
5884 tHalMsgHeader header;
5885 tHalDumpCmdReqParams dumpCmdReqParams;
5886} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5887
5888/*---------------------------------------------------------------------------
5889 * WLAN_HAL_DUMP_COMMAND_RSP
5890 *--------------------------------------------------------------------------*/
5891
5892typedef PACKED_PRE struct PACKED_POST
5893{
5894 /* success or failure */
5895 tANI_U32 status;
5896 /*Length of the responce message*/
5897 tANI_U32 rspLength;
5898 /*FiXME: Currently considering the the responce will be less than 100bytes */
5899 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305900
Jeff Johnson295189b2012-06-20 16:38:30 -07005901} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5902
5903typedef PACKED_PRE struct PACKED_POST
5904{
5905 tHalMsgHeader header;
5906 tHalDumpCmdRspParams dumpCmdRspParams;
5907} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5908
5909/*---------------------------------------------------------------------------
5910 *WLAN_HAL_COEX_IND
5911 *-------------------------------------------------------------------------*/
5912#define WLAN_COEX_IND_DATA_SIZE (4)
5913#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5914#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005915#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5916#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005917#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5918#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305919#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5920#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305921#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Abhishek Singh1bb2bc22017-01-02 10:38:38 +05305922#define WLAN_COEX_IND_TYPE_HID_CONNECTED_WLAN_CONNECTED_IN_2p4 (9)
5923#define WLAN_COEX_IND_TYPE_HID_DISCONNECTED_WLAN_CONNECTED_IN_2p4 (10)
Jeff Johnson295189b2012-06-20 16:38:30 -07005924
5925typedef PACKED_PRE struct PACKED_POST
5926{
5927 /*Coex Indication Type*/
5928 tANI_U32 coexIndType;
5929
5930 /*Coex Indication Data*/
5931 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5932}tCoexIndParams,*tpCoexIndParams;
5933
5934typedef PACKED_PRE struct PACKED_POST
5935{
5936 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305937 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005938}tCoexIndMsg, *tpCoexIndMsg;
5939
5940/*---------------------------------------------------------------------------
5941 *WLAN_HAL_OTA_TX_COMPL_IND
5942 *-------------------------------------------------------------------------*/
5943
5944typedef PACKED_PRE struct PACKED_POST
5945{
5946 /*Tx Complete Indication Success or Failure*/
5947 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305948 /* Dialog token */
5949 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005950}tTxComplParams,*tpTxComplParams;
5951
5952typedef PACKED_PRE struct PACKED_POST
5953{
5954 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305955 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005956}tTxComplIndMsg, *tpTxComplIndMsg;
5957
5958/*---------------------------------------------------------------------------
5959 * WLAN_HAL_HOST_SUSPEND_IND
5960 *-------------------------------------------------------------------------*/
5961
5962typedef PACKED_PRE struct PACKED_POST
5963{
5964 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305965 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005966}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5967
5968typedef PACKED_PRE struct PACKED_POST
5969{
5970 tHalMsgHeader header;
5971 tHalWlanHostSuspendIndParam suspendIndParams;
5972}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5973
5974/*---------------------------------------------------------------------------
5975 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5976 *-------------------------------------------------------------------------*/
5977
5978typedef PACKED_PRE struct PACKED_POST
5979{
5980 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305981 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005982}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5983
5984typedef PACKED_PRE struct PACKED_POST
5985{
5986 tHalMsgHeader header;
5987 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5988}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5989
5990#ifdef WLAN_FEATURE_P2P
5991/*---------------------------------------------------------------------------
5992 *WLAN_HAL_NOA_ATTR_IND
5993 *-------------------------------------------------------------------------*/
5994
5995typedef PACKED_PRE struct PACKED_POST
5996{
5997 tANI_U8 index ;
5998 tANI_U8 oppPsFlag ;
5999 tANI_U16 ctWin ;
6000
6001 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08006002 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006003 tANI_U32 uNoa1Duration;
6004 tANI_U32 uNoa1Interval;
6005 tANI_U32 uNoa1StartTime;
6006
6007 tANI_U16 uNoa2IntervalCnt;
6008 tANI_U16 rsvd2;
6009 tANI_U32 uNoa2Duration;
6010 tANI_U32 uNoa2Interval;
6011 tANI_U32 uNoa2StartTime;
6012
6013 tANI_U32 status;
6014}tNoaAttrIndParams, *tpNoaAttrIndParams;
6015
6016typedef PACKED_PRE struct PACKED_POST
6017{
6018 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05306019 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006020}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08006021
6022/*---------------------------------------------------------------------------
6023 *WLAN_HAL_NOA_START_IND
6024 *-------------------------------------------------------------------------*/
6025
6026typedef PACKED_PRE struct PACKED_POST
6027{
6028 tANI_U32 status;
6029 tANI_U32 bssIdx;
6030}tNoaStartIndParams, *tpNoaStartIndParams;
6031
6032typedef PACKED_PRE struct PACKED_POST
6033{
6034 tHalMsgHeader header;
6035 tNoaStartIndParams noaStartIndParams;
6036}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07006037#endif
6038
6039/*---------------------------------------------------------------------------
6040 * WLAN_HAL_HOST_RESUME_REQ
6041 *-------------------------------------------------------------------------*/
6042
6043typedef PACKED_PRE struct PACKED_POST
6044{
6045 tANI_U8 configuredMcstBcstFilterSetting;
6046}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
6047
6048typedef PACKED_PRE struct PACKED_POST
6049{
6050 tHalMsgHeader header;
6051 tHalWlanHostResumeReqParam resumeReqParams;
6052}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
6053
6054/*---------------------------------------------------------------------------
6055 * WLAN_HAL_HOST_RESUME_RSP
6056 *--------------------------------------------------------------------------*/
6057typedef PACKED_PRE struct PACKED_POST
6058{
6059 /* success or failure */
6060 tANI_U32 status;
6061} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
6062
6063typedef PACKED_PRE struct PACKED_POST
6064{
6065 tHalMsgHeader header;
6066 tHalHostResumeRspParams hostResumeRspParams;
6067} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
6068
Anand Kumar012623a2013-01-11 17:00:00 -08006069typedef PACKED_PRE struct PACKED_POST
6070{
6071 tANI_U16 staIdx;
6072 // Peer MAC Address, whose BA session has timed out
6073 tSirMacAddr peerMacAddr;
6074 // TID for which a BA session timeout is being triggered
6075 tANI_U8 baTID;
6076 // DELBA direction
6077 // 1 - Originator
6078 // 0 - Recipient
6079 tANI_U8 baDirection;
6080 tANI_U32 reasonCode;
6081 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6082} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6083
6084typedef PACKED_PRE struct PACKED_POST
6085{
6086 tHalMsgHeader header;
6087 tHalWlanDelBaIndMsg hostdelBaParam;
6088} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6089
Jeff Johnson295189b2012-06-20 16:38:30 -07006090/*---------------------------------------------------------------------------
6091 *PNO Messages
6092 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006093/* Max number of channels that a network can be found on*/
6094/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6095 * be changed at same time
6096 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006097#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006098
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306099/*Max number of channels that a network can be found on*/
6100#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6101
Jeff Johnson295189b2012-06-20 16:38:30 -07006102/*Maximum numbers of networks supported by PNO*/
6103#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6104
6105/*The number of scan time intervals that can be programmed into PNO*/
6106#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6107
6108/*Maximum size of the probe template*/
6109#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6110
Dino Mycle8afbac12014-07-04 22:06:17 +05306111/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006112 Immediate - scanning will start immediately and PNO procedure will
6113 be repeated based on timer
6114 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006115 Resume - scanning will start on system resume
6116 Delay - start the scan timer to trigger PNO scan
6117 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006118typedef enum
6119{
6120 ePNO_MODE_IMMEDIATE,
6121 ePNO_MODE_ON_SUSPEND,
6122 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306123 ePNO_MODE_DELAY,
6124 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006125 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6126} ePNOMode;
6127
6128/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306129typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006130{
Dino Mycle8afbac12014-07-04 22:06:17 +05306131 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006132 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306133
Jeff Johnson295189b2012-06-20 16:38:30 -07006134 // Upper layer authentication types
6135 eAUTH_TYPE_WPA = 2,
6136 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306137
Jeff Johnson295189b2012-06-20 16:38:30 -07006138 eAUTH_TYPE_RSN = 4,
6139 eAUTH_TYPE_RSN_PSK = 5,
6140 eAUTH_TYPE_FT_RSN = 6,
6141 eAUTH_TYPE_FT_RSN_PSK = 7,
6142 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6143 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006144 eAUTH_TYPE_CCKM_WPA = 10,
6145 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306146 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6147 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306148
Jeff Johnson295189b2012-06-20 16:38:30 -07006149 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6150
6151}tAuthType;
6152
6153/* Encryption type */
6154typedef enum eEdType
6155{
6156 eED_ANY = 0,
6157 eED_NONE = 1,
6158 eED_WEP = 2,
6159 eED_TKIP = 3,
6160 eED_CCMP = 4,
6161 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306162
Jeff Johnson295189b2012-06-20 16:38:30 -07006163 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6164} tEdType;
6165
6166/* SSID broadcast type */
6167typedef enum eSSIDBcastType
6168{
6169 eBCAST_UNKNOWN = 0,
6170 eBCAST_NORMAL = 1,
6171 eBCAST_HIDDEN = 2,
6172
6173 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6174} tSSIDBcastType;
6175
Dino Mycle8afbac12014-07-04 22:06:17 +05306176/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006177 The network description for which PNO will have to look for
6178*/
6179typedef PACKED_PRE struct PACKED_POST
6180{
6181 /*SSID of the BSS*/
6182 tSirMacSSid ssId;
6183
6184 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306185 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006186
6187 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306188 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006189
Dino Mycle8afbac12014-07-04 22:06:17 +05306190 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006191 0 - if all channels */
6192 tANI_U8 ucChannelCount;
6193 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6194
6195 /*Indicates the RSSI threshold for the network to be considered*/
6196 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306197}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006198
6199typedef PACKED_PRE struct PACKED_POST
6200{
6201 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306202 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006203
Dino Mycle8afbac12014-07-04 22:06:17 +05306204 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006205 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306206 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006207
Dino Mycle8afbac12014-07-04 22:06:17 +05306208 /*e.g: 2 3
6209 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006210 - it will wait 2s between consecutive scans for 3 times
6211 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306212}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006213
Dino Mycle8afbac12014-07-04 22:06:17 +05306214/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006215 The network parameters to be sent to the PNO algorithm
6216*/
6217typedef PACKED_PRE struct PACKED_POST
6218{
6219 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306220 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006221
Dino Mycle8afbac12014-07-04 22:06:17 +05306222 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006223 two consecutive scan procedures
6224 If the desired is for a uniform timer that fires always at the exact same
6225 interval - one single value is to be set
6226 If there is a desire for a more complex - telescopic like timer multiple
6227 values can be set - once PNO reaches the end of the array it will
6228 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306229 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006230
6231}tScanTimersType;
6232
6233typedef PACKED_PRE struct PACKED_POST {
6234
6235 /*Enable PNO*/
6236 tANI_U32 enable;
6237
6238 /*Immediate, On Suspend, On Resume*/
6239 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306240
Jeff Johnson295189b2012-06-20 16:38:30 -07006241 /*Number of networks sent for PNO*/
6242 tANI_U32 ucNetworksCount;
6243
6244 /*The networks that PNO needs to look for*/
6245 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6246
6247 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306248 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006249
6250 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306251 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006252 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6253
6254 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306255 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006256 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6257
6258} tPrefNetwListParams, * tpPrefNetwListParams;
6259
6260/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306261 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006262*/
6263typedef PACKED_PRE struct PACKED_POST
6264{
6265 tHalMsgHeader header;
6266 tPrefNetwListParams prefNetwListParams;
6267} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6268
6269
Dino Mycle8afbac12014-07-04 22:06:17 +05306270/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006271 The network description for which PNO will have to look for
6272*/
6273typedef PACKED_PRE struct PACKED_POST
6274{
6275 /*SSID of the BSS*/
6276 tSirMacSSid ssId;
6277
6278 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306279 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006280
6281 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306282 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006283
6284 /*SSID broadcast type, normal, hidden or unknown*/
6285 tSSIDBcastType bcastNetworkType;
6286
Dino Mycle8afbac12014-07-04 22:06:17 +05306287 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006288 0 - if all channels */
6289 tANI_U8 ucChannelCount;
6290 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6291
6292 /*Indicates the RSSI threshold for the network to be considered*/
6293 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306294}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006295
6296typedef PACKED_PRE struct PACKED_POST {
6297
6298 /*Enable PNO*/
6299 tANI_U32 enable;
6300
6301 /*Immediate, On Suspend, On Resume*/
6302 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306303
Jeff Johnson295189b2012-06-20 16:38:30 -07006304 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306305 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006306
6307 /*The networks that PNO needs to look for*/
6308 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6309
6310 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306311 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006312
6313 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306314 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006315 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6316
6317 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306318 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006319 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6320
6321} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6322
6323/*
6324 Preferred network list request new
6325*/
6326typedef PACKED_PRE struct PACKED_POST
6327{
6328 tHalMsgHeader header;
6329 tPrefNetwListParamsNew prefNetwListParams;
6330} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6331
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006332#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6333typedef PACKED_PRE struct PACKED_POST
6334{
6335 tSirMacSSid ssId;
6336 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6337 tANI_U32 authentication;
6338 tEdType encryption;
6339 tEdType mcencryption;
6340 tANI_U8 ChannelCount;
6341 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6342}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006343
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006344typedef PACKED_PRE struct PACKED_POST
6345{
6346 tANI_U8 mdiePresent;
6347 tANI_U16 mobilityDomain;
6348}tMobilityDomainInfo;
6349
6350typedef PACKED_PRE struct PACKED_POST {
6351 eAniBoolean RoamScanOffloadEnabled;
6352 tANI_S8 LookupThreshold;
6353 tANI_U8 RoamRssiDiff;
6354 tANI_U8 ChannelCacheType;
6355 tANI_U8 Command;
6356 tANI_U8 StartScanReason;
6357 tANI_U16 NeighborScanTimerPeriod;
6358 tANI_U16 NeighborRoamScanRefreshPeriod;
6359 tANI_U16 NeighborScanChannelMinTime;
6360 tANI_U16 NeighborScanChannelMaxTime;
6361 tANI_U16 EmptyRefreshScanPeriod;
6362 tANI_U8 ValidChannelCount;
6363 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006364 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006365
6366 tANI_U16 us24GProbeSize;
6367 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6368 tANI_U16 us5GProbeSize;
6369 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6370 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006371 tANI_U8 nProbes;
6372 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006373 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006374 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006375 tANI_U8 RoamOffloadEnabled;
6376 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6377 tANI_U8 Prefer5GHz;
6378 tANI_U8 RoamRssiCatGap;
6379 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006380 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6381 tRoamNetworkType ConnectedNetwork;
6382 tMobilityDomainInfo MDID;
6383} tRoamCandidateListParams, * tpRoamCandidateListParams;
6384
6385typedef PACKED_PRE struct PACKED_POST
6386{
Kumar Anandea78e792013-10-10 23:47:01 -07006387 tHalMsgHeader header;
6388 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006389} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6390
6391typedef PACKED_PRE struct PACKED_POST
6392{
Kumar Anandea78e792013-10-10 23:47:01 -07006393 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006394
Kumar Anandea78e792013-10-10 23:47:01 -07006395 /* status of the request - just to indicate that PNO has acknowledged
6396 * the request and will start scanning */
6397 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006398} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6399#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006400
6401/*
6402 Preferred network list response
6403*/
6404typedef PACKED_PRE struct PACKED_POST
6405{
6406 tHalMsgHeader header;
6407
6408 /* status of the request - just to indicate that PNO has acknowledged
6409 * the request and will start scanning*/
6410 tANI_U32 status;
6411} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6412
6413/*
6414 Preferred network indication parameters
6415*/
6416typedef PACKED_PRE struct PACKED_POST {
6417
6418 /*Network that was found with the highest RSSI*/
6419 tSirMacSSid ssId;
6420
6421 /*Indicates the RSSI */
6422 tANI_U8 rssi;
6423
6424 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6425 tANI_U16 frameLength;
6426
6427} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6428
6429/*
6430 Preferred network found indication
6431*/
6432typedef PACKED_PRE struct PACKED_POST {
6433
6434 tHalMsgHeader header;
6435 tPrefNetwFoundParams prefNetwFoundParams;
6436} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6437
6438
6439typedef PACKED_PRE struct PACKED_POST {
6440
6441 /*RSSI Threshold*/
6442 tANI_U8 ucRssiThreshold;
6443
6444} tRssiFilterParams, * tpRssiFilterParams;
6445
Jeff Johnson295189b2012-06-20 16:38:30 -07006446/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306447 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006448*/
6449typedef PACKED_PRE struct PACKED_POST
6450{
6451 tHalMsgHeader header;
6452 tRssiFilterParams prefRSSIFilterParams;
6453} tSetRssiFilterReq, *tpSetRssiFilterReq;
6454
6455/*
6456 Set RSSI filter resp
6457*/
6458typedef PACKED_PRE struct PACKED_POST{
6459 tHalMsgHeader header;
6460 /*status of the request */
6461 tANI_U32 status;
6462} tSetRssiFilterResp, *tpSetRssiFilterResp;
6463/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306464 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006465*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306466typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006467{
6468
6469 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306470 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006471
6472 /*Lets PNO know that host has determined the regulatory domain*/
6473 tANI_U8 b11dResolved;
6474
6475 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306476 tANI_U8 ucChannelCount;
6477 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006478
6479 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306480 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006481
6482 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306483 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006484
6485 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306486 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006487
6488 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306489 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006490
6491 /*Cb State*/
6492 ePhyChanBondState cbState;
6493
6494} tUpdateScanParams, * tpUpdateScanParams;
6495
6496/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306497 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306498*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306499typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306500{
6501
6502 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306503 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306504
6505 /*Lets PNO know that host has determined the regulatory domain*/
6506 tANI_U8 b11dResolved;
6507
6508 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306509 tANI_U8 ucChannelCount;
6510 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306511
6512 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306513 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306514
6515 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306516 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306517
6518 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306519 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306520
6521 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306522 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306523
6524 /*Cb State*/
6525 ePhyChanBondState cbState;
6526
6527} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6528
6529/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006530 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306531 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006532*/
6533typedef PACKED_PRE struct PACKED_POST{
6534
6535 tHalMsgHeader header;
6536 tUpdateScanParams scanParams;
6537} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6538
6539/*
6540 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306541 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006542*/
6543typedef PACKED_PRE struct PACKED_POST{
6544
6545 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306546 tUpdateScanParamsEx scanParams;
6547} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6548
6549/*
6550 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306551 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306552*/
6553typedef PACKED_PRE struct PACKED_POST{
6554
6555 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006556
6557 /*status of the request */
6558 tANI_U32 status;
6559
6560} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6561
6562/*---------------------------------------------------------------------------
6563 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6564 *--------------------------------------------------------------------------*/
6565typedef PACKED_PRE struct PACKED_POST
6566{
6567 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6568 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6569 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6570 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6571} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6572
6573typedef PACKED_PRE struct PACKED_POST
6574{
6575 tHalMsgHeader header;
6576 tHalTxPerTrackingReqParam txPerTrackingParams;
6577} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6578
6579/*---------------------------------------------------------------------------
6580 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6581 *--------------------------------------------------------------------------*/
6582typedef PACKED_PRE struct PACKED_POST
6583{
6584 /* success or failure */
6585 tANI_U32 status;
6586} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6587
6588typedef PACKED_PRE struct PACKED_POST
6589{
6590 tHalMsgHeader header;
6591 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6592} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6593
6594/*---------------------------------------------------------------------------
6595 * WLAN_HAL_TX_PER_HIT_IND
6596 *--------------------------------------------------------------------------*/
6597typedef PACKED_PRE struct PACKED_POST
6598{
6599 tHalMsgHeader header;
6600}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6601
6602/*---------------------------------------------------------------------------
6603 *******************Packet Filtering Definitions Begin*******************
6604 *--------------------------------------------------------------------------*/
6605#define HAL_PROTOCOL_DATA_LEN 8
6606#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6607#define HAL_MAX_NUM_FILTERS 20
6608#define HAL_MAX_CMP_PER_FILTER 10
6609
6610typedef enum
6611{
6612 HAL_RCV_FILTER_TYPE_INVALID,
6613 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6614 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6615 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6616}tHalReceivePacketFilterType;
6617
Dino Mycle8afbac12014-07-04 22:06:17 +05306618typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006619{
6620 HAL_FILTER_PROTO_TYPE_INVALID,
6621 HAL_FILTER_PROTO_TYPE_MAC,
6622 HAL_FILTER_PROTO_TYPE_ARP,
6623 HAL_FILTER_PROTO_TYPE_IPV4,
6624 HAL_FILTER_PROTO_TYPE_IPV6,
6625 HAL_FILTER_PROTO_TYPE_UDP,
6626 HAL_FILTER_PROTO_TYPE_MAX
6627}tHalRcvPktFltProtocolType;
6628
Dino Mycle8afbac12014-07-04 22:06:17 +05306629typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006630{
6631 HAL_FILTER_CMP_TYPE_INVALID,
6632 HAL_FILTER_CMP_TYPE_EQUAL,
6633 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6634 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6635 HAL_FILTER_CMP_TYPE_MAX
6636}tHalRcvPktFltCmpFlagType;
6637
Dino Mycle8afbac12014-07-04 22:06:17 +05306638typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006639{
6640 tANI_U8 protocolLayer;
6641 tANI_U8 cmpFlag;
6642 tANI_U16 dataLength; /* Length of the data to compare */
6643 tANI_U8 dataOffset; /* from start of the respective frame header */
6644 tANI_U8 reserved; /* Reserved field */
6645 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6646 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6647}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6648
6649typedef PACKED_PRE struct PACKED_POST
6650{
6651 tANI_U8 filterId;
6652 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306653 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006654 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006655 tHalRcvPktFilterParams paramsData[1];
6656}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6657
6658typedef PACKED_PRE struct PACKED_POST
6659{
Jeff Johnsone7245742012-09-05 17:12:55 -07006660 tANI_U8 filterId;
6661 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306662 tANI_U8 numParams;
6663 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006664 tANI_U8 bssIdx;
6665 tHalRcvPktFilterParams paramsData[1];
6666}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6667
6668typedef PACKED_PRE struct PACKED_POST
6669{
Jeff Johnson295189b2012-06-20 16:38:30 -07006670 tHalMsgHeader header;
6671 tHalRcvPktFilterCfgType pktFilterCfg;
6672} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6673
Jeff Johnsone7245742012-09-05 17:12:55 -07006674typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006675{
6676 tANI_U8 dataOffset; /* from start of the respective frame header */
6677 tANI_U32 cMulticastAddr;
6678 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006679 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006680} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6681
6682typedef PACKED_PRE struct PACKED_POST
6683{
6684 /* success or failure */
6685 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006686 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006687} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6688
6689typedef PACKED_PRE struct PACKED_POST
6690{
6691 tHalMsgHeader header;
6692 tHalSetPktFilterRspParams pktFilterRspParams;
6693} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6694
Jeff Johnsone7245742012-09-05 17:12:55 -07006695typedef PACKED_PRE struct PACKED_POST
6696{
6697 tANI_U8 bssIdx;
6698} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006699
6700typedef PACKED_PRE struct PACKED_POST
6701{
6702 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006703 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006704} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6705
Jeff Johnsone7245742012-09-05 17:12:55 -07006706
Jeff Johnson295189b2012-06-20 16:38:30 -07006707typedef PACKED_PRE struct PACKED_POST
6708{
6709 tANI_U8 filterId;
6710 tANI_U32 matchCnt;
6711} tHalRcvFltPktMatchCnt;
6712typedef PACKED_PRE struct PACKED_POST
6713{
6714 /* Success or Failure */
6715 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306716 tANI_U32 matchCnt;
6717 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006718 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006719} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6720
6721typedef PACKED_PRE struct PACKED_POST
6722{
6723 tHalMsgHeader header;
6724 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6725} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6726
6727typedef PACKED_PRE struct PACKED_POST
6728{
6729 tANI_U32 status; /* only valid for response message */
6730 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006731 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006732}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6733
6734typedef PACKED_PRE struct PACKED_POST
6735{
6736 tHalMsgHeader header;
6737 tHalRcvFltPktClearParam filterClearParam;
6738} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6739
6740typedef PACKED_PRE struct PACKED_POST
6741{
6742 tHalMsgHeader header;
6743 tHalRcvFltPktClearParam filterClearParam;
6744} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6745
6746typedef PACKED_PRE struct PACKED_POST
6747{
Dino Mycle8afbac12014-07-04 22:06:17 +05306748 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006749 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006750}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6751
6752typedef PACKED_PRE struct PACKED_POST
6753{
6754 tHalMsgHeader header;
6755 tHalRcvFltMcAddrListType mcAddrList;
6756} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6757
6758typedef PACKED_PRE struct PACKED_POST
6759{
6760 tHalMsgHeader header;
6761 tHalRcvFltPktSetMcListRspType rspParam;
6762} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6763
6764
6765/*---------------------------------------------------------------------------
6766 *******************Packet Filtering Definitions End*******************
6767 *--------------------------------------------------------------------------*/
6768
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006769/*
6770 * There are two versions of this message
6771 * Version 1 : Base version
6772 * Current version : Base version + Max LI modulated DTIM
6773 */
6774typedef PACKED_PRE struct PACKED_POST
6775{
6776 /* Ignore DTIM */
6777 tANI_U32 uIgnoreDTIM;
6778
6779 /*DTIM Period*/
6780 tANI_U32 uDTIMPeriod;
6781
6782 /* Listen Interval */
6783 tANI_U32 uListenInterval;
6784
6785 /* Broadcast Multicast Filter */
6786 tANI_U32 uBcastMcastFilter;
6787
6788 /* Beacon Early Termination */
6789 tANI_U32 uEnableBET;
6790
6791 /* Beacon Early Termination Interval */
6792 tANI_U32 uBETInterval;
6793}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6794
6795typedef PACKED_PRE struct PACKED_POST
6796{
6797 tHalMsgHeader header;
6798 tSetPowerParamsVer1Type powerParams;
6799} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6800
Jeff Johnson295189b2012-06-20 16:38:30 -07006801typedef PACKED_PRE struct PACKED_POST
6802{
6803 /* Ignore DTIM */
6804 tANI_U32 uIgnoreDTIM;
6805
6806 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306807 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006808
6809 /* Listen Interval */
6810 tANI_U32 uListenInterval;
6811
6812 /* Broadcast Multicast Filter */
6813 tANI_U32 uBcastMcastFilter;
6814
6815 /* Beacon Early Termination */
6816 tANI_U32 uEnableBET;
6817
6818 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306819 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006820
6821 /* MAX LI for modulated DTIM */
6822 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006823}tSetPowerParamsType, *tpSetPowerParamsType;
6824
6825typedef PACKED_PRE struct PACKED_POST
6826{
6827 tHalMsgHeader header;
6828 tSetPowerParamsType powerParams;
6829} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6830
6831typedef PACKED_PRE struct PACKED_POST{
6832
6833 tHalMsgHeader header;
6834
6835 /*status of the request */
6836 tANI_U32 status;
6837
6838} tSetPowerParamsResp, *tpSetPowerParamsResp;
6839
6840/*---------------------------------------------------------------------------
6841 ****************Capability bitmap exchange definitions and macros starts*************
6842 *--------------------------------------------------------------------------*/
6843
Anand Kumar012623a2013-01-11 17:00:00 -08006844typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006845 MCC = 0,
6846 P2P = 1,
6847 DOT11AC = 2,
6848 SLM_SESSIONIZATION = 3,
6849 DOT11AC_OPMODE = 4,
6850 SAP32STA = 5,
6851 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006852 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006853 WLANACTIVE_OFFLOAD = 8,
6854 BEACON_OFFLOAD = 9,
6855 SCAN_OFFLOAD = 10,
6856 ROAM_OFFLOAD = 11,
6857 BCN_MISS_OFFLOAD = 12,
6858 STA_POWERSAVE = 13,
6859 STA_ADVANCED_PWRSAVE = 14,
6860 AP_UAPSD = 15,
6861 AP_DFS = 16,
6862 BLOCKACK = 17,
6863 PHY_ERR = 18,
6864 BCN_FILTER = 19,
6865 RTT = 20,
6866 RATECTRL = 21,
6867 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006868 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006869 SPECULATIVE_PS_POLL = 24,
6870 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006871 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006872 WLAN_SCAN_OFFLOAD = 27,
6873 WLAN_PERIODIC_TX_PTRN = 28,
6874 ADVANCE_TDLS = 29,
6875 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306876 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306877 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306878 CH_SWITCH_V1 = 33,
6879 HT40_OBSS_SCAN = 34,
6880 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006881 WLAN_MCADDR_FLT = 36,
6882 WLAN_CH144 = 37,
6883 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306884 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306885 LINK_LAYER_STATS_MEAS = 40,
6886 MU_MIMO = 41,
6887 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306888 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306889 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306890 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306891 DISA = 46,
6892 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306893 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306894 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306895 TDLS_OFF_CHANNEL = 51,
Padma, Santhosh Kumarcfbcf942015-12-08 16:07:47 +05306896 RTT3 = 52,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306897 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306898 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306899 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306900 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306901 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306902 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306903 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306904 WIFI_CONFIG = 61,
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05306905 ANTENNA_DIVERSITY_SELECTION = 62,
Kapil Guptac1043632016-06-25 00:23:30 +05306906 PER_BASED_ROAMING = 63,
Agrawal Ashish1d75aac2016-12-12 12:36:59 +05306907 SAP_MODE_WOW = 64,
6908 SAP_OFFLOADS = 65,
Sravan Kumar Kairam9ba5f5b2016-12-13 13:50:46 +05306909 SAP_BUFF_ALLOC = 66,
Padma, Santhosh Kumarf42bd3e2017-01-20 14:59:02 +05306910 MAKE_BEFORE_BREAK = 67,
Anurag Chouhance0f0822017-01-24 15:44:26 +05306911 NUD_DEBUG = 68,
Kumar Anandea78e792013-10-10 23:47:01 -07006912 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006913} placeHolderInCapBitmap;
6914
Jeff Johnson295189b2012-06-20 16:38:30 -07006915typedef PACKED_PRE struct PACKED_POST{
6916
6917 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006918} tWlanFeatCaps, *tpWlanFeatCaps;
6919
6920typedef PACKED_PRE struct PACKED_POST{
6921
Dino Mycle8afbac12014-07-04 22:06:17 +05306922 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006923 tWlanFeatCaps wlanFeatCaps;
6924
6925} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6926
Jeff Johnsone7245742012-09-05 17:12:55 -07006927#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6928#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006929#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006930#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006931#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006932#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006933#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006934#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306935#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306936#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306937#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306938#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306939#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006940
Jeff Johnsone7245742012-09-05 17:12:55 -07006941tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6942
Jeff Johnson295189b2012-06-20 16:38:30 -07006943#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006944 if ((b)<=127) { \
6945 arr_index = (b)/32; \
6946 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006947 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006948 (a)->featCaps[arr_index] |= (1<<bit_index); \
6949 } \
6950 }
6951#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006952 if ((b)<=127) { \
6953 arr_index = (b)/32; \
6954 bit_index = (b)%32; \
6955 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006956 } \
6957 }
6958#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006959 if ((b)<=127) { \
6960 arr_index = (b)/32; \
6961 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006962 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006963 } \
6964 }
6965
6966/*---------------------------------------------------------------------------
6967 * WLAN_HAL_WAKE_REASON_IND
6968 *--------------------------------------------------------------------------*/
6969
6970/* status codes to help debug rekey failures */
6971typedef enum
6972{
6973 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6974 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6975 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6976 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6977 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6978 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6979 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6980 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6981 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6982 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6983
6984 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6985} tGTKRekeyStatus;
6986
6987/* wake reason types */
6988typedef enum
6989{
6990 WLAN_HAL_WAKE_REASON_NONE = 0,
6991 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6992 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6993 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6994 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6995 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6996 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6997 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6998} tWakeReasonType;
6999
7000/*
7001 Wake Packet which is saved at tWakeReasonParams.DataStart
7002 This data is sent for any wake reasons that involve a packet-based wakeup :
7003
7004 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
7005 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
7006 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
7007 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
7008 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
7009
7010 The information is provided to the host for auditing and debug purposes
7011
7012*/
7013
7014/*
7015 Wake reason indication parameters
7016*/
7017typedef PACKED_PRE struct PACKED_POST
7018{
7019 uint32 ulReason; /* see tWakeReasonType */
7020 uint32 ulReasonArg; /* argument specific to the reason type */
7021 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
7022 HAL truncates the data (i.e. data packets) this length
7023 will be less than the actual length */
7024 uint32 ulActualDataLen; /* actual length of data */
7025 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
7026 see specific wake type */
7027} tWakeReasonParams, *tpWakeReasonParams;
7028
7029/*
7030 Wake reason indication
7031*/
7032typedef PACKED_PRE struct PACKED_POST
7033{
7034 tHalMsgHeader header;
7035 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07007036 tANI_U32 uBssIdx : 8;
7037 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07007038} tHalWakeReasonInd, *tpHalWakeReasonInd;
7039
7040/*---------------------------------------------------------------------------
7041* WLAN_HAL_GTK_OFFLOAD_REQ
7042*--------------------------------------------------------------------------*/
7043
7044#define HAL_GTK_KEK_BYTES 16
7045#define HAL_GTK_KCK_BYTES 16
7046
7047#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
7048
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007049#define GTK_SET_BSS_KEY_TAG 0x1234AA55
7050
Jeff Johnson295189b2012-06-20 16:38:30 -07007051typedef PACKED_PRE struct PACKED_POST
7052{
7053 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05307054 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07007055 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
7056 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07007057 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007058} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
7059
7060typedef PACKED_PRE struct PACKED_POST
7061{
7062 tHalMsgHeader header;
7063 tHalGtkOffloadReqParams gtkOffloadReqParams;
7064} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
7065
7066/*---------------------------------------------------------------------------
7067* WLAN_HAL_GTK_OFFLOAD_RSP
7068*--------------------------------------------------------------------------*/
7069typedef PACKED_PRE struct PACKED_POST
7070{
7071 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07007072 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007073} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
7074
7075typedef PACKED_PRE struct PACKED_POST
7076{
7077 tHalMsgHeader header;
7078 tHalGtkOffloadRspParams gtkOffloadRspParams;
7079} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
7080
7081
7082/*---------------------------------------------------------------------------
7083* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
7084*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07007085typedef PACKED_PRE struct PACKED_POST
7086{
7087 tANI_U8 bssIdx;
7088
7089} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007090
7091typedef PACKED_PRE struct PACKED_POST
7092{
7093 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007094 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007095} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7096
7097/*---------------------------------------------------------------------------
7098* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7099*--------------------------------------------------------------------------*/
7100typedef PACKED_PRE struct PACKED_POST
7101{
7102 tANI_U32 ulStatus; /* success or failure */
7103 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7104 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7105 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7106 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7107 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007108 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007109} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7110
7111typedef PACKED_PRE struct PACKED_POST
7112{
7113 tHalMsgHeader header;
7114 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7115} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7116
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007117/*---------------------------------------------------------------------------
7118* WLAN_HAL_DHCP_IND
7119*--------------------------------------------------------------------------*/
7120typedef PACKED_PRE struct PACKED_POST
7121{
7122 /*Indicates the device mode which indicates about the DHCP activity */
7123 tANI_U8 device_mode;
7124 tSirMacAddr macAddr;
7125} tDHCPInfo, *tpDHCPInfo;
7126
7127typedef PACKED_PRE struct PACKED_POST
7128{
7129 tHalMsgHeader header;
7130 tANI_U32 status; /* success or failure */
7131} tDHCPIndStatus, *tpDHCPIndstatus;
7132
Jeff Johnson295189b2012-06-20 16:38:30 -07007133/*
7134 Thermal Mitigation mode of operation.
7135 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7136 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7137 reducing transmit power
7138 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7139*/
7140typedef enum
7141{
7142 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7143 HAL_THERMAL_MITIGATION_MODE_0,
7144 HAL_THERMAL_MITIGATION_MODE_1,
7145 HAL_THERMAL_MITIGATION_MODE_2,
7146 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7147}tHalThermalMitigationModeType;
7148//typedef tANI_S16 tHalThermalMitigationModeType;
7149
7150/*
7151 Thermal Mitigation level.
7152 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7153 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7154
7155 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7156 level indicates normal mode of operation
7157 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7158 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7159 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7160 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7161*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307162typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007163{
7164 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7165 HAL_THERMAL_MITIGATION_LEVEL_0,
7166 HAL_THERMAL_MITIGATION_LEVEL_1,
7167 HAL_THERMAL_MITIGATION_LEVEL_2,
7168 HAL_THERMAL_MITIGATION_LEVEL_3,
7169 HAL_THERMAL_MITIGATION_LEVEL_4,
7170 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7171}tHalThermalMitigationLevelType;
7172//typedef tANI_S16 tHalThermalMitigationLevelType;
7173
7174typedef PACKED_PRE struct PACKED_POST
7175{
7176 /* Thermal Mitigation Operation Mode */
7177 tHalThermalMitigationModeType thermalMitMode;
7178
7179 /* Thermal Mitigation Level */
7180 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307181
Jeff Johnson295189b2012-06-20 16:38:30 -07007182}tSetThermalMitgationType, *tpSetThermalMitgationType;
7183
7184/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7185typedef PACKED_PRE struct PACKED_POST
7186{
7187 tHalMsgHeader header;
7188 tSetThermalMitgationType thermalMitParams;
7189} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7190
7191typedef PACKED_PRE struct PACKED_POST{
7192
7193 tHalMsgHeader header;
7194
7195 /*status of the request */
7196 tANI_U32 status;
7197
7198} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7199
Dino Mycle8afbac12014-07-04 22:06:17 +05307200/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007201provided to FW from Host via periodic messages */
7202typedef PACKED_PRE struct PACKED_POST {
7203 /* TX stats */
7204 uint32 txBytesPushed;
7205 uint32 txPacketsPushed;
7206
7207 /* RX stats */
7208 uint32 rxBytesRcvd;
7209 uint32 rxPacketsRcvd;
7210 uint32 rxTimeTotal;
7211} tStaStatsClassB, *tpStaStatsClassB;
7212
7213typedef PACKED_PRE struct PACKED_POST {
7214
7215 /* Duration over which this stats was collected */
7216 tANI_U32 duration;
7217
7218 /* Per STA Stats */
7219 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7220} tStatsClassBIndParams, *tpStatsClassBIndParams;
7221
7222typedef PACKED_PRE struct PACKED_POST {
7223
7224 tHalMsgHeader header;
7225
7226 /* Class B Stats */
7227 tStatsClassBIndParams statsClassBIndParams;
7228} tStatsClassBInd, *tpStatsClassBInd;
7229
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307230/*Wifi Proximity paramters in AP mode*/
7231#ifdef FEATURE_WIFI_PROXIMITY
7232
7233typedef PACKED_PRE struct PACKED_POST{
7234
7235 tANI_U8 wifiProximityChannel;
7236 tANI_U32 wifiProximityDuration;
7237 tANI_U32 wifiProximityInterval;
7238 tANI_U32 wifiProximityMode;
7239 tANI_U32 wifiProximityStatus;
7240 tSirMacAddr bssId;
7241 tSirMacSSid ssId;
7242
7243} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7244
7245typedef PACKED_PRE struct PACKED_POST
7246{
7247 tHalMsgHeader header;
7248
7249 tSetWifiProximityReqParam wifiProximityReqParams;
7250
7251}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7252
7253/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7254typedef PACKED_PRE struct PACKED_POST{
7255
7256 tHalMsgHeader header;
7257
7258 /*status of the request */
7259 tANI_U32 status;
7260
7261} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7262
7263#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007264
7265#ifdef FEATURE_SPECULATIVE_PS_POLL
7266/*---------------------------------------------------------------------------
7267 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7268 *--------------------------------------------------------------------------*/
7269typedef PACKED_PRE struct PACKED_POST
7270{
7271 tANI_U8 bssIdx;
7272 tANI_U16 serviceInterval;
7273 tANI_U16 suspendInterval;
7274 tANI_U8 acMask;
7275} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7276
7277typedef PACKED_PRE struct PACKED_POST
7278{
7279 tHalMsgHeader header;
7280 tHalStartSpecPsPollReqParams specPsPollReq;
7281} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7282
7283/*---------------------------------------------------------------------------
7284 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7285 *--------------------------------------------------------------------------*/
7286typedef PACKED_PRE struct PACKED_POST
7287{
7288 /* success or failure */
7289 tANI_U32 status;
7290 tANI_U8 bssIdx;
7291} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7292
7293typedef PACKED_PRE struct PACKED_POST
7294{
7295 tHalMsgHeader header;
7296 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7297} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7298
7299/*---------------------------------------------------------------------------
7300 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7301 *--------------------------------------------------------------------------*/
7302typedef PACKED_PRE struct PACKED_POST
7303{
7304 tHalMsgHeader header;
7305 tANI_U8 bssIdx;
7306} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7307#endif
7308
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307309#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307310#define HAL_MAX_SUPP_CHANNELS 128
7311#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307312/*---------------------------------------------------------------------------
7313 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7314 *-------------------------------------------------------------------------*/
7315typedef PACKED_PRE struct PACKED_POST
7316{
7317 /*STA Index*/
7318 tANI_U16 staIdx;
7319
7320 /* if this is 1, self is initiator and peer is reponder */
7321 tANI_U8 bIsResponder;
7322
7323 /* QoS Info */
7324 tANI_U8 acVOUAPSDFlag:1;
7325 tANI_U8 acVIUAPSDFlag:1;
7326 tANI_U8 acBKUAPSDFlag:1;
7327 tANI_U8 acBEUAPSDFlag:1;
7328 tANI_U8 aAck:1;
7329 tANI_U8 maxServicePeriodLength:2;
7330 tANI_U8 moreDataAck:1;
7331
7332 /*TDLS Peer U-APSD Buffer STA Support*/
7333 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007334
7335 /*TDLS off channel related params */
7336 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307337 tANI_U8 peerCurrOperClass;
7338 tANI_U8 selfCurrOperClass;
7339 tANI_U8 validChannelsLen;
7340 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7341 tANI_U8 validOperClassesLen;
7342 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307343}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7344
7345typedef PACKED_PRE struct PACKED_POST
7346{
7347 tHalMsgHeader header;
7348 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7349} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7350
7351/*---------------------------------------------------------------------------
7352 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7353 *-------------------------------------------------------------------------*/
7354
7355typedef PACKED_PRE struct PACKED_POST
7356{
7357 tANI_U32 status;
7358
7359 /*STA Index*/
7360 tANI_U16 staIdx;
7361} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7362
7363typedef PACKED_PRE struct PACKED_POST
7364{
7365 tHalMsgHeader header;
7366 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7367} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307368/*---------------------------------------------------------------------------
7369 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7370 + *-------------------------------------------------------------------------*/
7371typedef PACKED_PRE struct PACKED_POST
7372{
7373 /*STA Index*/
7374 tANI_U16 staIdx;
7375 /* if this is 1, self is initiator otherwise responder only*/
7376 tANI_U8 isOffchannelInitiator;
7377 /*TDLS off channel related params */
7378 tANI_U8 targetOperClass;
7379 tANI_U8 targetChannel;
7380 tANI_U8 secondaryChannelOffset;
7381 tANI_U8 reserved[32];
7382}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7383
7384typedef PACKED_PRE struct PACKED_POST
7385{
7386 tHalMsgHeader header;
7387 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7388} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7389/*---------------------------------------------------------------------------
7390 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7391 *-------------------------------------------------------------------------*/
7392
7393typedef PACKED_PRE struct PACKED_POST
7394{
7395 tANI_U32 status;
7396 /*STA Index*/
7397 tANI_U16 staIdx;
7398} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7399
7400typedef PACKED_PRE struct PACKED_POST
7401{
7402 tHalMsgHeader header;
7403 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7404} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7405
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307406
7407/*---------------------------------------------------------------------------
7408 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7409 *-------------------------------------------------------------------------*/
7410typedef PACKED_PRE struct PACKED_POST
7411{
7412 /*STA Index*/
7413 tANI_U16 staIdx;
7414}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7415
7416typedef PACKED_PRE struct PACKED_POST
7417{
7418 tHalMsgHeader header;
7419 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7420} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7421
7422/*---------------------------------------------------------------------------
7423 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7424 *-------------------------------------------------------------------------*/
7425
7426typedef PACKED_PRE struct PACKED_POST
7427{
7428 tANI_U32 status;
7429
7430 /*STA Index*/
7431 tANI_U16 staIdx;
7432} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7433
7434typedef PACKED_PRE struct PACKED_POST
7435{
7436 tHalMsgHeader header;
7437 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7438} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7439
7440/*---------------------------------------------------------------------------
7441 *WLAN_HAL_TDLS_IND
7442 *--------------------------------------------------------------------------*/
7443
7444typedef PACKED_PRE struct PACKED_POST
7445{
7446 tANI_U16 assocId;
7447 tANI_U16 staIdx;
7448 tANI_U16 status;
7449 tANI_U16 reasonCode;
7450}tTdlsIndParams, *tpTdlsIndParams;
7451
7452
7453typedef PACKED_PRE struct PACKED_POST
7454{
7455 tHalMsgHeader header;
7456 tTdlsIndParams tdlsIndParams;
7457}tTdlsIndMsg, *tpTdlsIndMsg;
7458
7459#endif
7460
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007461/*---------------------------------------------------------------------------
7462 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7463 *--------------------------------------------------------------------------*/
7464
7465typedef PACKED_PRE struct PACKED_POST
7466{
7467 tANI_U8 bssIdx;
7468 tANI_U8 staIdx;
7469 tSirMacAddr staAddr;
7470}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7471
7472
7473typedef PACKED_PRE struct PACKED_POST
7474{
7475 tHalMsgHeader header;
7476 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7477}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7478
7479
Kumar Anandea78e792013-10-10 23:47:01 -07007480/*********** Scan Offload Related Structures *************/
7481#define HAL_NUM_SCAN_SSID 10
7482#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007483
Kumar Anandea78e792013-10-10 23:47:01 -07007484/*
7485 * Enumetation to indicate scan type (active/passive)
7486 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007487typedef enum
7488{
Kumar Anandea78e792013-10-10 23:47:01 -07007489 eSIR_PASSIVE_SCAN,
7490 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7491} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007492
7493typedef PACKED_PRE struct PACKED_POST
7494{
Kumar Anandea78e792013-10-10 23:47:01 -07007495 tANI_U8 numBssid;
7496 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7497 tANI_U8 numSsid;
7498 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7499 tANI_BOOLEAN hiddenSsid;
7500 tSirMacAddr selfMacAddr;
7501 tSirBssType bssType;
7502 tSirScanType scanType;
7503 tANI_U32 minChannelTime;
7504 tANI_U32 maxChannelTime;
7505 tANI_BOOLEAN p2pSearch;
7506 tANI_U8 channelCount;
7507 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7508 tANI_U16 ieFieldLen;
7509 tANI_U8 ieField[1];
7510}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007511
7512/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007513 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007514 *-------------------------------------------------------------------------*/
7515typedef PACKED_PRE struct PACKED_POST
7516{
Kumar Anandf53016f2013-09-04 15:15:53 -07007517 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007518 tScanOffloadReqType scanOffloadParams;
7519} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007520
7521/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007522 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007523 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007524typedef PACKED_PRE struct PACKED_POST
7525{
7526 tHalMsgHeader header;
7527
7528 /*status of the request - just to indicate SO has acknowledged
7529 * * the request and will start scanning*/
7530 tANI_U32 status;
7531} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7532
7533/*---------------------------------------------------------------------------
7534 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7535 *-------------------------------------------------------------------------*/
7536typedef PACKED_PRE struct PACKED_POST
7537{
7538 tHalMsgHeader header;
7539} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7540
7541/*---------------------------------------------------------------------------
7542 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7543 *-------------------------------------------------------------------------*/
7544typedef PACKED_PRE struct PACKED_POST
7545{
7546 tHalMsgHeader header;
7547
7548 /*status of the request - just to indicate SO has acknowledged
7549 the request and will start scanning*/
7550 tANI_U32 status;
7551} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7552
7553/*
7554 * Enumetation of scan events indicated by firmware to the host
7555 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007556typedef enum
7557{
Kumar Anandea78e792013-10-10 23:47:01 -07007558 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7559 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7560 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7561 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7562 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7563 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7564 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7565 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7566 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7567} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007568
7569typedef PACKED_PRE struct PACKED_POST
7570{
Kumar Anandea78e792013-10-10 23:47:01 -07007571 tScanEventType event;
7572 tANI_U32 channel;
7573 tANI_U32 scanId;
7574} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007575
Kumar Anandea78e792013-10-10 23:47:01 -07007576/*---------------------------------------------------------------------------
7577 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7578 *-------------------------------------------------------------------------*/
7579typedef PACKED_PRE struct PACKED_POST
7580{
7581 tHalMsgHeader header;
7582 tScanOffloadEventInfo scanOffloadInd;
7583} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007584
Kumar Anandea78e792013-10-10 23:47:01 -07007585typedef PACKED_PRE struct PACKED_POST {
7586 /** primary 20 MHz channel frequency in mhz */
7587 tANI_U32 mhz;
7588 /** Center frequency 1 in MHz*/
7589 tANI_U32 band_center_freq1;
7590 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7591 tANI_U32 band_center_freq2;
7592 /* The first 26 bits are a bit mask to indicate any channel flags,
7593 (see WLAN_HAL_CHAN_FLAG*)
7594 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7595 tANI_U32 channel_info;
7596 /** contains min power, max power, reg power and reg class id. */
7597 tANI_U32 reg_info_1;
7598 /** contains antennamax */
7599 tANI_U32 reg_info_2;
7600} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007601
Kumar Anandf53016f2013-09-04 15:15:53 -07007602
Kumar Anandea78e792013-10-10 23:47:01 -07007603typedef enum {
7604 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7605 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7606 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7607 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7608 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7609 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7610 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7611 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7612 WLAN_HAL_MODE_11AC_VHT20 = 8,
7613 WLAN_HAL_MODE_11AC_VHT40 = 9,
7614 WLAN_HAL_MODE_11AC_VHT80 = 10,
7615 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7616 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7617 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7618 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007619
Kumar Anandea78e792013-10-10 23:47:01 -07007620} tChannelPhyModeType;
7621
7622#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7623#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7624#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7625#define WLAN_HAL_CHAN_AP_DISABLED 9
7626#define WLAN_HAL_CHAN_FLAG_DFS 10
7627#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7628#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007629#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7630
7631#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007632 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007633 } while(0)
7634
7635#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007636 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007637
7638#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7639 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7640 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7641 } while(0)
7642#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7643
7644#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7645 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7646 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7647 } while(0)
7648#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7649
7650#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7651 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7652 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7653 } while(0)
7654#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7655#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7656 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7657 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7658 } while(0)
7659#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7660
7661#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7662 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7663 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7664 } while(0)
7665#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7666
7667#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7668 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7669 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7670 } while(0)
7671#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 -07007672
7673typedef PACKED_PRE struct PACKED_POST
7674{
7675 tANI_U8 numChan;
7676 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7677} tUpdateChannelReqType;
7678
7679/*---------------------------------------------------------------------------
7680 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7681 *-------------------------------------------------------------------------*/
7682typedef PACKED_PRE struct PACKED_POST
7683{
7684 tHalMsgHeader header;
7685 tUpdateChannelReqType updateChannelParams;
7686} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7687
7688/*---------------------------------------------------------------------------
7689 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7690 *-------------------------------------------------------------------------*/
7691typedef PACKED_PRE struct PACKED_POST
7692{
7693 tHalMsgHeader header;
7694
7695 /*status of the request - just to indicate SO has acknowledged
7696 * * the request and will start scanning*/
7697 tANI_U32 status;
7698} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7699
7700
7701/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307702 * WLAN_HAL_RMC_RULER_REQ
7703 *-------------------------------------------------------------------------*/
7704
7705#define HAL_MAX_RMC_SESSIONS 2
7706
7707#define HAL_NUM_MAX_RULERS 8
7708
7709typedef enum
7710{
7711 WLAN_HAL_SUGGEST_RULER,
7712 WLAN_HAL_BECOME_RULER,
7713 WLAN_HAL_RULER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7714}tRulerReqCmdType, tRulerRspCmdType;
7715
Kumar Anandea78e792013-10-10 23:47:01 -07007716typedef PACKED_PRE struct PACKED_POST
7717{
Abhishek Singh00b71972016-01-07 10:51:04 +05307718 tRulerReqCmdType cmd;
7719
7720 /* MAC address of MCAST Transmitter (source) */
7721 tSirMacAddr mcastTransmitter;
7722
7723 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7724 tSirMacAddr mcastGroup;
7725
7726 /* Optional black list for cmd = WLAN_HAL_SUGGEST_RULER */
7727 tSirMacAddr blacklist[HAL_NUM_MAX_RULERS];
7728} tHalRmcRulerReqParams, *tpHalRmcRulerReqParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007729
7730typedef PACKED_PRE struct PACKED_POST
7731{
7732 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307733 tHalRmcRulerReqParams rulerReqParams;
7734} tHalRmcRulerReqMsg, *tpHalRmcRulerReqMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007735
7736/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307737 * WLAN_HAL_RMC_RULER_RSP
7738 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007739typedef PACKED_PRE struct PACKED_POST
7740{
Abhishek Singh00b71972016-01-07 10:51:04 +05307741 /* success or failure */
7742 tANI_U32 status;
7743
7744 /* Command Type */
7745 tRulerRspCmdType cmd;
7746
7747 /* MAC address of MCAST Transmitter (source) */
7748 tSirMacAddr mcastTransmitter;
7749
7750 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7751 tSirMacAddr mcastGroup;
7752
7753 /* List of candidates for cmd = WLAN_HAL_SUGGEST_RULER*/
7754 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7755
7756} tHalRmcRulerRspParams, *tpHalRmcRulerRspParams;
Kumar Anandea78e792013-10-10 23:47:01 -07007757
7758typedef PACKED_PRE struct PACKED_POST
7759{
7760 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307761 tHalRmcRulerRspParams rulerRspParams;
7762} tHalRmcRulerRspMsg, *tpHalRmcRulerRspMsg;
Kumar Anandea78e792013-10-10 23:47:01 -07007763
7764/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05307765 * WLAN_HAL_RMC_UPDATE_IND
7766 *-------------------------------------------------------------------------*/
7767typedef enum
Kumar Anandea78e792013-10-10 23:47:01 -07007768{
Abhishek Singh00b71972016-01-07 10:51:04 +05307769 WLAN_HAL_RULER_ACCEPTED, //Host-->FW
7770 WLAN_HAL_RULER_CANCELED, //Host-->FW
7771 WLAN_HAL_RULER_PICK_NEW, //FW-->Host
7772 WLAN_HAL_RULER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
7773}tRmcUpdateIndType;
7774
7775typedef enum
7776{
7777 WLAN_HAL_RMC_RULER_ROLE,
7778 WLAN_HAL_RMC_TRANSMITTER_ROLE,
7779 WLAN_HAL_RMC_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7780}tRmcRoleType;
Kumar Anandea78e792013-10-10 23:47:01 -07007781
7782typedef PACKED_PRE struct PACKED_POST
7783{
Abhishek Singh00b71972016-01-07 10:51:04 +05307784 tRmcUpdateIndType indication;
7785
7786 /* Role of the entity generating this indication */
7787 tRmcRoleType role;
7788
7789 /* MAC address of MCAST Transmitter (source) */
7790 tSirMacAddr mcastTransmitter;
7791
7792 /* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
7793 tSirMacAddr mcastGroup;
7794
7795 tSirMacAddr mcastRuler;
7796
7797 /* Candidate list for indication = WLAN_HAL_RULER_PICK_NEW */
7798 tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
7799} tHalRmcUpdateIndParams, *tpHalRmcUpdateIndParams;
Kumar Anandf53016f2013-09-04 15:15:53 -07007800
7801typedef PACKED_PRE struct PACKED_POST
7802{
7803 tHalMsgHeader header;
Abhishek Singh00b71972016-01-07 10:51:04 +05307804 tHalRmcUpdateIndParams rulerIndParams;
7805} tHalRmcUpdateInd, *tpHalRmcUpdateInd;
7806
7807typedef PACKED_PRE struct PACKED_POST
7808{
7809 tANI_U8 staIdx; // Station Idx;
7810 tANI_U32 txRate; // Legacy transmit rate, in units of 500 kbit/sec,
7811 // for the most recently transmitted frame
7812 tANI_U32 mcsIndex; // mcs index for HT20 and HT40 rates
7813 tANI_U32 txRateFlags; // to differentiate between HT20 and
7814 // HT40 rates; short and long guard interval
7815 tANI_S8 rssi; // RSSI of the last received beacon
7816}tHalIbssPeerParams, *tpHalIbssPeerParams;
7817
7818typedef PACKED_PRE struct PACKED_POST
7819{
7820 tANI_U32 status; // success or failure
7821 tANI_U8 numOfPeers; // Number of Peers for
7822 // which stats are being reported
7823 tHalIbssPeerParams ibssPeerParams[1]; // Stats of peer in IBSS
7824}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
7825
7826// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
7827typedef PACKED_PRE struct PACKED_POST
7828{
7829 tHalMsgHeader header;
7830 tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
7831}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
7832
7833typedef PACKED_PRE struct PACKED_POST
7834{
7835 tANI_U8 bssIdx; // Bss Index
7836 tANI_BOOLEAN allPeerInfoReqd; // If set, all IBSS peers stats are reported
7837 tANI_U8 staIdx; // If allPeerInfoReqd is not set,
7838 // only stats of peer with
7839 // staIdx is reported
7840}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
7841
7842// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
7843typedef PACKED_PRE struct PACKED_POST
7844{
7845 tHalMsgHeader header;
7846 tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
7847}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
krunal soni2a4728d2013-09-20 21:56:50 -07007848
Kumar Anandf53016f2013-09-04 15:15:53 -07007849/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007850 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7851 *-------------------------------------------------------------------------*/
7852typedef enum
7853{
7854 /* reassociation is done, but couldn't finish security handshake */
7855 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7856
7857 /* roam has successfully completed by firmware */
7858 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7859
7860 /* UNKONW error */
7861 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7862}tHalRoamOffloadRoamAuthStatus;
7863
7864typedef enum
7865{
7866 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7867 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7868 WLAN_HAL_ROAM_TYPE_OKC,
7869 WLAN_HAL_ROAM_TYPE_CCKM,
7870 WLAN_HAL_ROAM_TYPE_FT,
7871 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7872} tHalRoamOffloadType;
7873
7874typedef PACKED_PRE struct PACKED_POST
7875{
7876 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7877 tANI_U16 beaconProbeRespOffset;
7878
7879 /* Length of beaon / probe resp. */
7880 tANI_U16 beaconProbeRespLength;
7881
7882 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7883 tANI_U16 reassocRespOffset;
7884
7885 /* Length of reassoc resp. */
7886 tANI_U16 reassocRespLength;
7887
7888 /* 0 for probe response frame, 1 for beacon frame, */
7889 tANI_U8 isBeacon;
7890
7891 /* staIdx of old AP */
7892 tANI_U8 oldStaIdx;
7893
7894 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7895 tConfigBssRspParams */
7896 /* bssIdx of new roamed AP */
7897 tANI_U8 bssIdx;
7898
7899 /* DPU descriptor index for PTK */
7900 tANI_U8 dpuDescIndx;
7901
7902 /* PTK DPU signature */
7903 tANI_U8 ucastDpuSignature;
7904
7905 /* DPU descriptor index for GTK*/
7906 tANI_U8 bcastDpuDescIndx;
7907
7908 /* GTK DPU signature */
7909 tANI_U8 bcastDpuSignature;
7910
7911 /*DPU descriptor for IGTK*/
7912 tANI_U8 mgmtDpuDescIndx;
7913
7914 /* IGTK DPU signature */
7915 tANI_U8 mgmtDpuSignature;
7916
7917 /* Station Index for BSS entry*/
7918 tANI_U8 staIdx;
7919
7920 /* Self station index for this BSS */
7921 tANI_U8 selfStaIdx;
7922
7923 /* Bcast station for buffering bcast frames in AP role */
7924 tANI_U8 bcastStaIdx;
7925
7926 /* MAC address of roamed AP */
7927 tSirMacAddr bssid;
7928
7929 /*HAL fills in the tx power used for mgmt frames in this field. */
7930 tANI_S8 txMgmtPower;
7931
7932 /* success or failure */
7933 tHalRoamOffloadRoamAuthStatus authStatus;
7934
7935 /* TODO : add more info as needed */
7936
7937 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7938 /* Beacon or probe resp from new AP. This is in 802.11
7939 frame format starting with MAC header. */
7940 /* Up to beaconProbeRespLength */
7941
7942 /* reassocRespOffset points to starting of reassoc resp frame */
7943 /* Reassoc resp from new AP. This is in 802.11
7944 frame format starting with MAC header. */
7945 /* Up to reassocRespLength */
7946
7947} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7948
7949
7950typedef PACKED_PRE struct PACKED_POST
7951{
7952 tHalMsgHeader header;
7953 tHalRoamOffloadSynchIndParams params;
7954} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7955
7956/*---------------------------------------------------------------------------
7957 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7958 *-------------------------------------------------------------------------*/
7959typedef PACKED_PRE struct PACKED_POST
7960{
7961 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7962 tSirMacAddr bssid;
7963} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7964
7965typedef PACKED_PRE struct PACKED_POST
7966{
7967 tHalMsgHeader header;
7968 tHalRoamOffloadSynchCnfParams params;
7969} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7970
7971
7972/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007973 WLAN_HAL_RATE_UPDATE_IND
7974 *-------------------------------------------------------------------------*/
Abhishek Singh00b71972016-01-07 10:51:04 +05307975 typedef PACKED_PRE struct PACKED_POST
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007976{
7977 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7978 tANI_S32 ucastDataRate; //unit Mbpsx10
7979
7980 /* TX flag to differentiate between HT20, HT40 etc */
7981 tTxRateInfoFlags ucastDataRateTxFlag;
7982
7983 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7984 tSirMacAddr bssid;
7985
7986 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
Abhishek Singh00b71972016-01-07 10:51:04 +05307987 tANI_S32 rmcDataRate; //unit Mbpsx10
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007988
7989 /* TX flag to differentiate between HT20, HT40 etc */
Abhishek Singh00b71972016-01-07 10:51:04 +05307990 tTxRateInfoFlags rmcDataRateTxFlag;
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007991
Abhishek Singh00b71972016-01-07 10:51:04 +05307992 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007993 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7994
7995 /* TX flag to differentiate between HT20, HT40 etc */
7996 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7997
Abhishek Singh00b71972016-01-07 10:51:04 +05307998 /* Default (non-RMC) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007999 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
8000
8001 /* TX flag to differentiate between HT20, HT40 etc */
8002 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
8003
8004} tHalRateUpdateParams, *tpHalRateUpdateParams;
8005
8006typedef PACKED_PRE struct PACKED_POST
8007{
8008 tHalMsgHeader header;
8009 tHalRateUpdateParams halRateUpdateParams;
8010} tHalRateUpdateInd, * tpHalRateUpdateInd;
8011
8012/*---------------------------------------------------------------------------
Abhishek Singh00b71972016-01-07 10:51:04 +05308013* WLAN_HAL_TX_FAIL_IND
8014*--------------------------------------------------------------------------*/
8015// Northbound indication from FW to host on weak link detection
8016typedef PACKED_PRE struct PACKED_POST
8017{
8018 // Sequence number increases by 1 whenever the device driver
8019 // sends a notification event. This is cleared as 0 when the
8020 // JOIN IBSS commamd is issued
8021 tANI_U16 seqNo;
8022 tANI_U16 staId;
8023 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
8024} tHalTXFailIndParams, *tpHalTXFailIndParams;
8025
8026typedef PACKED_PRE struct PACKED_POST
8027{
8028 tHalMsgHeader header;
8029 tHalTXFailIndParams txFailIndParams;
8030} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
8031
8032/*---------------------------------------------------------------------------
8033* WLAN_HAL_TX_FAIL_MONITOR_IND
8034*--------------------------------------------------------------------------*/
8035// Southbound message from Host to monitor the Tx failures
8036typedef PACKED_PRE struct PACKED_POST
8037{
8038 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
8039 tANI_U8 tx_fail_count;
8040} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
8041
8042typedef PACKED_PRE struct PACKED_POST
8043{
8044 tHalMsgHeader header;
8045 tTXFailMonitorInfo txFailMonitor;
8046} tTXFailMonitorInd, *tpTXFailMonitorInd;
8047
8048/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308049 * WLAN_HAL_AVOID_FREQ_RANGE_IND
8050 *-------------------------------------------------------------------------*/
8051
Abhishek Singhe0443152015-06-18 10:07:43 +05308052#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05308053
8054typedef PACKED_PRE struct PACKED_POST
8055{
8056 tANI_U32 startFreq;
8057 tANI_U32 endFreq;
8058} tHalFreqRange, *tpHalFreqRange;
8059
8060typedef PACKED_PRE struct PACKED_POST
8061{
8062 tANI_U32 avoidCnt;
8063 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
8064} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
8065
8066typedef PACKED_PRE struct PACKED_POST
8067{
8068 tHalMsgHeader header;
8069 tHalAvoidFreqRangeIndParams freqRangeIndParams;
8070} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
8071
8072/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308073 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07008074 *-------------------------------------------------------------------------*/
8075
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308076typedef enum
8077{
8078 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
8079 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
8080 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
8081}tHT40OBssScanCmdType;
8082
8083typedef PACKED_PRE struct PACKED_POST
8084{
8085 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008086
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308087 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008088 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
8089 tANI_U16 OBSSScanActiveDwellTime; // In TUs
8090 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
8091 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
8092 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
8093 tANI_U16 BSSWidthChannelTransitionDelayFactor;
8094 tANI_U16 OBSSScanActivityThreshold;
8095
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308096 tANI_U8 selfStaIdx;
8097 tANI_U8 bssIdx;
8098 tANI_U8 fortyMHZIntolerent;
8099 tANI_U8 channelCount;
8100 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
8101 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008102
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05308103 tANI_U16 ieFieldLen;
8104 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
8105}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
8106
8107typedef PACKED_PRE struct PACKED_POST
8108{
8109 tHalMsgHeader header;
8110 tHT40ObssScanIndType scanHT40ObssScanParams;
8111} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
8112
8113/*---------------------------------------------------------------------------
8114 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
8115 *-------------------------------------------------------------------------*/
8116typedef PACKED_PRE struct PACKED_POST
8117{
8118 tHalMsgHeader header;
8119 tANI_U8 bssIdx;
8120} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05308121
8122/*---------------------------------------------------------------------------
8123 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
8124 *-------------------------------------------------------------------------*/
8125
8126typedef PACKED_PRE struct PACKED_POST
8127{
8128 /* Valid BSS Idx for beacon miss rate */
8129 tANI_U8 bssIdx;
8130
8131}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
8132
8133typedef PACKED_PRE struct PACKED_POST
8134{
8135 tHalMsgHeader header;
8136 tHalBcnMissRateReqParams bcnMissRateReqParams;
8137} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
8138
8139/*---------------------------------------------------------------------------
8140 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
8141 *-------------------------------------------------------------------------*/
8142
8143typedef PACKED_PRE struct PACKED_POST
8144{
8145 tANI_U32 status;
8146 tANI_U32 bcnMissCnt;
8147}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
8148
8149typedef PACKED_PRE struct PACKED_POST
8150{
8151 tHalMsgHeader header;
8152 tHalBcnMissRateRspParams bcnMissRateRspParams;
8153}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
8154
Selvaraj, Sridhar6c0eb3f2016-04-06 12:42:04 +05308155/*---------------------------------------------------------------------------
8156 * WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND
8157 *-------------------------------------------------------------------------*/
8158
8159typedef PACKED_PRE struct PACKED_POST
8160{
8161 tANI_U32 actionFramesBitMask;
8162 tANI_U32 reserved;
8163}tHalAllowedActionFrames, *tpHalAllowedActionFrames;
8164
8165typedef PACKED_PRE struct PACKED_POST
8166{
8167 tHalMsgHeader header;
8168 tHalAllowedActionFrames allowedActionFrames;
8169}tHalAllowedActionFramesReqInd, *tpHalAllowedActionFramesReqInd;
8170
Sunil Dutt8377a382014-05-26 21:18:04 +05308171/*--------------------------------------------------------------------------
8172* WLAN_HAL_LL_SET_STATS_REQ
8173*---------------------------------------------------------------------------*/
8174
8175typedef PACKED_PRE struct PACKED_POST
8176{
8177 tANI_U32 req_id;
8178 tANI_U8 sta_id;
8179 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
8180 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
8181} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
8182
8183typedef PACKED_PRE struct PACKED_POST
8184{
8185 tHalMsgHeader header;
8186 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
8187} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
8188
8189/*---------------------------------------------------------------------------
8190 WLAN_HAL_LL_SET_STATS_RSP
8191---------------------------------------------------------------------------*/
8192
8193typedef PACKED_PRE struct PACKED_POST
8194{
8195 tANI_U32 status;
8196 tANI_U32 resp_id;
8197 tANI_U8 iface_id;
8198} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
8199
8200typedef PACKED_PRE struct PACKED_POST
8201{
8202 tHalMsgHeader header;
8203 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
8204} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
8205
8206/*---------------------------------------------------------------------------
8207 WLAN_HAL_LL_GET_STATS_REQ
8208---------------------------------------------------------------------------*/
8209
8210typedef PACKED_PRE struct PACKED_POST
8211{
8212 tANI_U32 req_id;
8213 tANI_U8 sta_id;
8214 tANI_U32 param_id_mask;
8215} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
8216
8217typedef PACKED_PRE struct PACKED_POST
8218{
8219 tHalMsgHeader header;
8220 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
8221} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
8222
8223/*---------------------------------------------------------------------------
8224 WLAN_HAL_LL_GET_STATS_RSP
8225---------------------------------------------------------------------------*/
8226typedef PACKED_PRE struct PACKED_POST
8227{
8228 tANI_U32 status;
8229 tANI_U32 resp_id;
8230 tANI_U8 iface_id;
8231} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8232
8233typedef PACKED_PRE struct PACKED_POST
8234{
8235 tHalMsgHeader header;
8236 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8237} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8238
8239/*---------------------------------------------------------------------------
8240 WLAN_HAL_LL_CLEAR_STATS_REQ
8241---------------------------------------------------------------------------*/
8242typedef PACKED_PRE struct PACKED_POST
8243{
8244 tANI_U32 req_id;
8245 tANI_U8 sta_id;
8246 tANI_U32 stats_clear_req_mask;
8247 tANI_U8 stop_req;
8248} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8249
8250typedef PACKED_PRE struct PACKED_POST
8251{
8252 tHalMsgHeader header;
8253 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8254} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8255
8256/*---------------------------------------------------------------------------
8257 WLAN_HAL_LL_CLEAR_STATS_RSP
8258---------------------------------------------------------------------------*/
8259typedef PACKED_PRE struct PACKED_POST
8260{
8261 tANI_U32 status;
8262 tANI_U8 sta_id;
8263 tANI_U32 resp_id;
8264 tANI_U32 stats_clear_rsp_mask;
8265 tANI_U8 stop_req_status;
8266} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8267
8268typedef PACKED_PRE struct PACKED_POST
8269{
8270 tHalMsgHeader header;
8271 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8272} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8273
8274/*---------------------------------------------------------------------------
8275 WLAN_HAL_LL_NOTIFY_STATS
8276---------------------------------------------------------------------------*/
8277
8278typedef PACKED_PRE struct PACKED_POST
8279{
8280 tHalMsgHeader header;
8281 tANI_U32 param_id;
8282 tANI_U8 iface_id;
8283 tANI_U32 resp_id;
8284 tANI_U32 more_result_to_follow;
8285 tANI_U8 result[1];
8286} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008287
Dino Mycle108eff22014-06-10 09:36:44 +05308288/*---------------------------------------------------------------------------
8289 * WLAN_HAL_EXT_SCAN_START_REQ
8290 *-------------------------------------------------------------------------*/
8291
Dino Mycle8afbac12014-07-04 22:06:17 +05308292typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308293{
8294 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8295 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8296 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8297 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8298 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8299 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8300 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308301 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308302} tExtScanChannelBandMask;
8303
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308304#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8305#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8306
8307#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8308
8309#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8310#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8311#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8312#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8313
Dino Mycle108eff22014-06-10 09:36:44 +05308314typedef PACKED_PRE struct PACKED_POST
8315{
8316 tANI_U32 channel; // frequency
8317 tANI_U32 dwellTimeMs; // dwell time hint
8318 tANI_U8 passive; // 0 => active,
8319 // 1 => passive scan; ignored for DFS
8320}tExtScanChannelSpec, *tpExtScanChannelSpec;
8321
8322typedef PACKED_PRE struct PACKED_POST
8323 {
8324 /* bucket index, 0 based */
8325 tANI_U8 bucketId;
8326 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8327 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308328 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308329 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308330 /* This is a bit field; which defines following bits -
8331 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8332 is % full
8333 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8334 after scan
8335 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8336 (beacons/probe responses + IEs) in real time to HAL, in addition
8337 to completion events
8338 Note: To keep backward compatibility, fire completion events
8339 regardless of REPORT_EVENTS_EACH_SCAN.
8340 * REPORT_EVENTS_NO_BATCH => controls batching,
8341 0 => batching, 1 => no batching
8342 */
Dino Mycle108eff22014-06-10 09:36:44 +05308343 tANI_U8 reportEvents;
8344 /* number of channels */
8345 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308346 // new Exponential Scan params
8347 tANI_U32 max_period;
8348 tANI_U32 exponent;
8349 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308350 /* if channels to scan. In the TLV channelList[] */
8351 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8352}tExtScanBucketData, *tpExtScanBucketData;
8353
8354typedef PACKED_PRE struct PACKED_POST
8355{
8356 tANI_U32 requestId;
8357 tANI_U8 sessionId;
8358 /* Base period (milliseconds) used by scan buckets to define periodicity
8359 of the scans */
8360 tANI_U32 basePeriod;
8361 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8362 (keep the most significant, i.e. stronger RSSI) */
8363 tANI_U32 maxApPerScan;
8364 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308365 tANI_U32 reportThresholdPercent;
8366 /* in number of scans, wake up AP after these many scans */
8367 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308368 /* This will be off channel minimum time */
8369 tANI_U16 neighborScanChannelMinTime;
8370 /* This will be out off channel max time */
8371 tANI_U16 neighborScanChannelMaxTime;
8372 /* This will be the home (BSS) channel time */
8373 tANI_U16 homeAwayTime;
8374 /* number of buckets (maximum 8) */
8375 tANI_U8 numBuckets;
8376 /* Buckets data */
8377 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8378} tHalExtScanStartReq, *tpHalExtScanStartReq;
8379
8380typedef PACKED_PRE struct PACKED_POST
8381{
8382 tHalMsgHeader header;
8383 tHalExtScanStartReq extScanStartReq;
8384}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8385
8386/*---------------------------------------------------------------------------
8387 * WLAN_HAL_EXT_SCAN_START_RSP
8388 *-------------------------------------------------------------------------*/
8389
8390typedef PACKED_PRE struct PACKED_POST
8391{
8392 tANI_U32 requestId;
8393 tANI_U32 status;
8394}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8395
8396typedef PACKED_PRE struct PACKED_POST
8397{
8398 tHalMsgHeader header;
8399 tHalExtScanStartRsp extScanStartRsp;
8400}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8401
8402/*---------------------------------------------------------------------------
8403 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8404 *-------------------------------------------------------------------------*/
8405
8406typedef PACKED_PRE struct PACKED_POST
8407{
8408 tANI_U32 requestId;
8409 tANI_U8 sessionId;
8410}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8411
8412typedef PACKED_PRE struct PACKED_POST
8413{
8414 tHalMsgHeader header;
8415 tHalExtScanGetCapReq extScanGetCapReq;
8416}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8417
8418/*---------------------------------------------------------------------------
8419 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8420 *-------------------------------------------------------------------------*/
8421
8422typedef PACKED_PRE struct PACKED_POST
8423{
8424 tANI_U32 requestId;
8425 tANI_U32 status;
8426
8427 tANI_U32 scanCacheSize;
8428 tANI_U32 scanBuckets;
8429 tANI_U32 maxApPerScan;
8430 tANI_U32 maxRssiSampleSize;
8431 tANI_U32 maxScanReportingThreshold;
8432
8433 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308434 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308435
8436 tANI_U32 maxBssidHistoryEntries;
8437}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8438
8439typedef PACKED_PRE struct PACKED_POST
8440{
8441 tHalMsgHeader header;
8442 tHalExtScanGetCapRsp extScanGetCapRsp;
8443}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8444
8445/*---------------------------------------------------------------------------
8446 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8447 *-------------------------------------------------------------------------*/
8448
8449typedef PACKED_PRE struct PACKED_POST
8450{
8451 tANI_U32 requestId;
8452 tANI_U8 sessionId;
8453 /*
8454 * 1 return cached results and flush it
8455 * 0 return cached results and do not flush
8456 */
8457 tANI_BOOLEAN flush;
8458}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8459
8460typedef PACKED_PRE struct PACKED_POST
8461{
8462 tHalMsgHeader header;
8463 tHalExtScanGetScanReq getScanReq;
8464}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8465
8466/*---------------------------------------------------------------------------
8467 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8468 *-------------------------------------------------------------------------*/
8469
8470typedef PACKED_PRE struct PACKED_POST
8471{
8472 tANI_U32 requestId;
8473 tANI_U32 status;
8474}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8475
8476typedef PACKED_PRE struct PACKED_POST
8477{
8478 tHalMsgHeader header;
8479 tHalExtScanGetScanRsp getScanRsp;
8480}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8481
8482/*---------------------------------------------------------------------------
8483 * WLAN_HAL_EXT_SCAN_RESULT_IND
8484 *-------------------------------------------------------------------------*/
8485
8486typedef PACKED_PRE struct PACKED_POST
8487{
8488 tANI_U64 ts; // time of discovery
8489 tANI_U8 ssid[32+1]; // null terminated SSID
8490 tSirMacAddr bssid; // BSSID
8491 tANI_U32 channel; // channel frequency in MHz
8492 tANI_S32 rssi; // RSSI in dBm
8493 tANI_U32 rtt; // RTT in nanoseconds - not expected
8494 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308495 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308496 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308497 tANI_U16 ieLength; // size of the ie_data blob
8498 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308499} tHalExtScanResultParams, *tpHalExtScanResultParams;
8500
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308501/* Get the GSCAN cached scan results */
8502typedef struct {
8503 tANI_U16 scan_id; // a unique identifier for the scan unit
8504 tANI_U8 flags; // a bitmask with additional
8505 // information about scan
8506 tANI_U8 num_results; // number of bssids retrieved by the scan
8507 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8508 // scan results - one for each bssid
8509} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8510
Dino Mycle108eff22014-06-10 09:36:44 +05308511typedef PACKED_PRE struct PACKED_POST
8512{
8513 tHalMsgHeader header;
8514 tANI_U32 requestId;
8515 tANI_U32 scanResultSize;
8516 tANI_BOOLEAN moreData;
8517 tANI_U8 extScanResult[1];
8518}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8519
8520/*---------------------------------------------------------------------------
8521 * WLAN_HAL_EXT_SCAN_STOP_REQ
8522 *-------------------------------------------------------------------------*/
8523
8524typedef PACKED_PRE struct PACKED_POST
8525{
8526 tANI_U32 requestId;
8527 tANI_U8 sessionId;
8528}tHalExtScanStopReq, *tpHalExtScanStopReq;
8529
8530typedef PACKED_PRE struct PACKED_POST
8531{
8532 tHalMsgHeader header;
8533 tHalExtScanStopReq extScanStopReq;
8534}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8535
8536/*---------------------------------------------------------------------------
8537 * WLAN_HAL_EXT_SCAN_STOP_RSP
8538 *-------------------------------------------------------------------------*/
8539
8540typedef PACKED_PRE struct PACKED_POST
8541{
8542 tANI_U32 requestId;
8543 tANI_U32 status;
8544}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8545
8546typedef PACKED_PRE struct PACKED_POST
8547{
8548 tHalMsgHeader header;
8549 tHalExtScanStopRsp extScanStopRsp;
8550}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8551
8552/*---------------------------------------------------------------------------
8553 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8554 *-------------------------------------------------------------------------*/
8555
Dino Mycle8afbac12014-07-04 22:06:17 +05308556typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308557{
8558 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8559 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308560 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308561} tHalExtScanProgressEventType;
8562
8563typedef PACKED_PRE struct PACKED_POST
8564{
8565 tANI_U32 requestId;
8566 tANI_U32 status;
8567 tHalExtScanProgressEventType extScanEventType;
8568}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8569
8570typedef PACKED_PRE struct PACKED_POST
8571{
8572 tHalMsgHeader header;
8573 tHalExtScanProgressInd extScanProgressInd;
8574}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8575
8576/*---------------------------------------------------------------------------
8577 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8578 *-------------------------------------------------------------------------*/
8579
8580typedef PACKED_PRE struct PACKED_POST
8581{
8582 tANI_U32 requestId;
8583 tANI_U32 numOfScanResAvailable;
8584}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8585
8586typedef PACKED_PRE struct PACKED_POST
8587{
8588 tHalMsgHeader header;
8589 tHalExtScanResAvailableInd extScanResAvailableInd;
8590}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8591
Dino Mycle108eff22014-06-10 09:36:44 +05308592typedef PACKED_PRE struct PACKED_POST
8593{
8594 /* AP BSSID */
8595 tSirMacAddr bssid;
8596 /* low threshold - used in L for significant_change - not used in L for
8597 hotlist*/
8598 tANI_S32 lowRssiThreshold;
8599 /* high threshold - used in L for significant rssi - used in L for hotlist */
8600 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308601} tApThresholdParams, *tpApThresholdParams;
8602
Dino Mycle108eff22014-06-10 09:36:44 +05308603/*---------------------------------------------------------------------------
8604 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8605 *-------------------------------------------------------------------------*/
8606
8607typedef PACKED_PRE struct PACKED_POST
8608{
8609 tANI_U32 requestId;
8610 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308611 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308612 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308613 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308614 // hotlist APs
8615 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8616} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8617
8618typedef PACKED_PRE struct PACKED_POST
8619{
8620 tHalMsgHeader header;
8621 tHalBssidHotlistSetReq bssidHotlistSetReq;
8622}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8623
8624/*---------------------------------------------------------------------------
8625 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8626 *-------------------------------------------------------------------------*/
8627
8628typedef PACKED_PRE struct PACKED_POST
8629{
8630 tANI_U32 requestId;
8631 tANI_U32 status;
8632}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8633
8634typedef PACKED_PRE struct PACKED_POST
8635{
8636 tHalMsgHeader header;
8637 tHalHotlistSetRsp hotlistSetRsp;
8638}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8639
8640/*---------------------------------------------------------------------------
8641 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8642 *-------------------------------------------------------------------------*/
8643
8644typedef PACKED_PRE struct PACKED_POST
8645{
8646 tANI_U32 requestId;
8647}tHalHotlistResetReq, *tpHalHotlistResetReq;
8648
8649typedef PACKED_PRE struct PACKED_POST
8650{
8651 tHalMsgHeader header;
8652 tHalHotlistResetReq hotlistResetReq;
8653}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8654
8655/*---------------------------------------------------------------------------
8656 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8657 *-------------------------------------------------------------------------*/
8658
8659typedef PACKED_PRE struct PACKED_POST
8660{
8661 tANI_U32 requestId;
8662 tANI_U32 status;
8663}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8664
8665typedef PACKED_PRE struct PACKED_POST
8666{
8667 tHalMsgHeader header;
8668 tHalHotlistResetRsp hotlistResetRsp;
8669}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8670
8671/*---------------------------------------------------------------------------
8672 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8673 *-------------------------------------------------------------------------*/
8674
8675typedef PACKED_PRE struct PACKED_POST
8676{
8677 tHalMsgHeader header;
8678 tANI_U32 requestId;
8679 tANI_U32 numHotlistBss;
8680 tANI_BOOLEAN moreData;
8681 tANI_U8 bssHotlist[1];
8682}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8683
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308684/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308685 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8686 *-------------------------------------------------------------------------*/
8687
8688typedef PACKED_PRE struct PACKED_POST
8689{
8690 /* SSID */
8691 char ssid [32+1];
8692 /* low threshold - used in L for significant_change - not used in L for
8693 hotlist*/
8694 tANI_S32 lowRssiThreshold;
8695 /* high threshold - used in L for significant rssi - used in L for hotlist */
8696 tANI_S32 highRssiThreshold;
8697 /* band */
8698 tANI_U32 band;
8699 } tSsidThresholdParams, *tpSsidThresholdParams;
8700
8701
8702typedef PACKED_PRE struct PACKED_POST
8703{
8704 tANI_U32 requestId;
8705 tANI_U8 sessionId;
8706 tANI_U32 lostSsidSampleSize;
8707 // number of hotlist SSIDs
8708 tANI_U32 numSsid;
8709 // hotlist SSIDs
8710 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8711} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8712
8713typedef PACKED_PRE struct PACKED_POST
8714{
8715 tHalMsgHeader header;
8716 tHalSsidHotlistSetReq ssidHotlistSetReq;
8717}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8718
8719/*---------------------------------------------------------------------------
8720 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8721 *-------------------------------------------------------------------------*/
8722typedef PACKED_PRE struct PACKED_POST
8723{
8724 tANI_U32 requestId;
8725 tANI_U32 status;
8726}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8727
8728typedef PACKED_PRE struct PACKED_POST
8729{
8730 tHalMsgHeader header;
8731 tHalSsidHotlistSetRsp hotlistSetRsp;
8732}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8733
8734/*---------------------------------------------------------------------------
8735 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8736 *-------------------------------------------------------------------------*/
8737
8738typedef PACKED_PRE struct PACKED_POST
8739{
8740 tANI_U32 requestId;
8741}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8742
8743typedef PACKED_PRE struct PACKED_POST
8744{
8745 tHalMsgHeader header;
8746 tHalSsidHotlistResetReq hotlistResetReq;
8747}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8748
8749/*---------------------------------------------------------------------------
8750 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8751 *-------------------------------------------------------------------------*/
8752
8753typedef PACKED_PRE struct PACKED_POST
8754{
8755 tANI_U32 requestId;
8756 tANI_U32 status;
8757}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8758
8759typedef PACKED_PRE struct PACKED_POST
8760{
8761 tHalMsgHeader header;
8762 tHalSsidHotlistResetRsp hotlistResetRsp;
8763}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8764
8765/*---------------------------------------------------------------------------
8766 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8767 *-------------------------------------------------------------------------*/
8768
8769typedef PACKED_PRE struct PACKED_POST
8770{
8771 tHalMsgHeader header;
8772 tANI_U32 requestId;
8773 tANI_BOOLEAN ssid_found;
8774 tANI_U32 numHotlistSsid;
8775 tANI_BOOLEAN moreData;
8776 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8777}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8778
8779/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308780 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8781 *-------------------------------------------------------------------------*/
8782
8783typedef PACKED_PRE struct PACKED_POST
8784{
8785 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8786 tANI_U32 reserved; //reserved for future use
8787}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8788
8789typedef PACKED_PRE struct PACKED_POST
8790{
8791 tHalMsgHeader header;
8792 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8793}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8794
8795/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308796 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8797 *--------------------------------------------------------------------------*/
8798typedef PACKED_PRE struct PACKED_POST
8799{
8800 tANI_U8 macAddr[6];
8801 tANI_U32 reserved1;
8802 tANI_U32 reserved2;
8803}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8804
8805typedef PACKED_PRE struct PACKED_POST
8806{
8807 tHalMsgHeader header;
8808 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8809} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8810
8811/*---------------------------------------------------------------------------
8812* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8813*-------------------------------------------------------------------------*/
8814
8815typedef PACKED_PRE struct PACKED_POST
8816{
8817 tANI_U32 status;
8818 tANI_U32 reserved1;
8819} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8820
8821typedef PACKED_PRE struct PACKED_POST
8822{
8823 tHalMsgHeader header;
8824 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8825} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308826/*---------------------------------------------------------------------------
8827 *WLAN_HAL_GET_FRAME_LOG_REQ
8828 *--------------------------------------------------------------------------*/
8829typedef PACKED_PRE struct PACKED_POST
8830{
8831 tANI_U8 flags;
8832}tGetFrameLogReqType, * tpGetFrameLogReqType;
8833
8834typedef PACKED_PRE struct PACKED_POST
8835{
8836 tHalMsgHeader header;
8837 tGetFrameLogReqType tGetFrameLogReqParams;
8838} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8839
8840/*---------------------------------------------------------------------------
8841 * WLAN_HAL_GET_FRAME_LOG_RSP
8842 *-------------------------------------------------------------------------*/
8843typedef PACKED_PRE struct PACKED_POST
8844{
8845 tANI_U32 status;
8846} tGetFrameLogResp, * tpGetFrameLogResp;
8847
8848typedef PACKED_PRE struct PACKED_POST
8849{
8850 tHalMsgHeader header;
8851 tGetFrameLogResp tGetFrameLogRespParams;
8852} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8853
8854/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308855 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8856 *-------------------------------------------------------------------------*/
8857typedef PACKED_PRE struct PACKED_POST
8858{
8859 tANI_U32 reasonCode;
8860}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8861
8862typedef PACKED_PRE struct PACKED_POST
8863{
8864 tHalMsgHeader header;
8865 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8866}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8867
8868/*---------------------------------------------------------------------------
8869 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8870 *-------------------------------------------------------------------------*/
8871typedef PACKED_PRE struct PACKED_POST
8872{ tANI_U32 status;
8873}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8874
8875typedef PACKED_PRE struct PACKED_POST
8876{
8877 tHalMsgHeader header;
8878 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8879}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8880
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308881/*---------------------------------------------------------------------------
8882 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8883 *-------------------------------------------------------------------------*/
8884typedef PACKED_PRE struct PACKED_POST
8885{
8886 tANI_U8 bssIdx;
8887 tANI_U8 rssi;
8888 tSirMacAddr selfMacAddr;
8889 tANI_U32 linkFlCnt;
8890 tANI_U32 linkFlTx;
8891 tANI_U32 lastDataRate;
8892 tANI_U32 rsvd1;
8893 tANI_U32 rsvd2;
8894}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8895
8896typedef PACKED_PRE struct PACKED_POST
8897{
8898 tHalMsgHeader header;
8899 tHalLostLinkParametersIndParams lostLinkParameters;
8900}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308901
8902
8903/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308904 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308905 *--------------------------------------------------------------------------*/
8906typedef PACKED_PRE struct PACKED_POST
8907{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308908 /* BIT0 - enable frame logging
8909 * BIT1 - enableBMUHWtracing
8910 * BIT2 - enableQXDMlogging
8911 * BIT3 - enableUElogDpuTxp
8912 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308913 tANI_U8 enableFlag;
8914 tANI_U8 frameType;
8915 tANI_U8 frameSize;
8916 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308917 /* Host mem address to be used as logmailbox */
8918 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308919 /* firmware will wakeup the host to send logs always */
8920 tANI_U8 continuousFrameLogging;
8921 /* Logging mail box version */
8922 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308923 /* Max ring size in firmware to log msgs when host is suspended state */
8924 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308925 /* when firmware log reaches this threshold and
8926 * if host is awake it will push the logs.
8927 */
8928 tANI_U8 minLogBuffSize;
8929 /* Reserved for future purpose */
8930 tANI_U32 reserved0;
8931 tANI_U32 reserved1;
8932 tANI_U32 reserved2;
8933}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308934
8935typedef PACKED_PRE struct PACKED_POST
8936{
8937 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308938 tFWLoggingInitReqType tFWLoggingInitReqParams;
8939} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308940
8941/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308942 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308943 *-------------------------------------------------------------------------*/
8944typedef PACKED_PRE struct PACKED_POST
8945{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308946 tANI_U32 status;
8947 /* FW mail box address */
8948 tANI_U64 logMailBoxAddr;
8949 /* Logging mail box version */
8950 tANI_U8 logMailBoxVer;
8951 /* Qshrink is enabled */
8952 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308953 /* fw_dump_max_size is used to tell fwr mem dump size */
8954 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308955 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308956 tANI_U32 reserved1;
8957 tANI_U32 reserved2;
8958} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308959
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05308960
8961typedef PACKED_PRE struct PACKED_POST {
8962 tANI_U32 request_id;
8963 tSirMacAddr bssId;
8964 tANI_S8 min_rssi;
8965 tANI_S8 max_rssi;
8966} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
8967
8968typedef PACKED_PRE struct PACKED_POST
8969{
8970 tHalMsgHeader header;
8971 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
8972}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
8973
8974//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
8975typedef PACKED_PRE struct PACKED_POST {
8976 tANI_U32 request_id;
8977 tANI_U32 status;
8978} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
8979
8980typedef PACKED_PRE struct PACKED_POST
8981{
8982 tHalMsgHeader header;
8983 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
8984}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
8985
8986//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
8987typedef PACKED_PRE struct PACKED_POST
8988{
8989 tANI_U32 request_id;
8990 tSirMacAddr bssId;
8991 tANI_S8 rssi;
8992} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
8993
8994typedef PACKED_PRE struct PACKED_POST
8995{
8996 tHalMsgHeader header;
8997 tHalRssiMonitorIndParams RssiMonitorIndParams;
8998}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
8999
9000
9001//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
9002typedef PACKED_PRE struct PACKED_POST {
9003 tANI_U32 request_id;
9004 tSirMacAddr bssId;
9005} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
9006
9007typedef PACKED_PRE struct PACKED_POST
9008{
9009 tHalMsgHeader header;
9010 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
9011}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
9012
9013//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
9014typedef PACKED_PRE struct PACKED_POST {
9015 tANI_U32 request_id;
9016 tANI_U32 status;
9017} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
9018
9019typedef PACKED_PRE struct PACKED_POST
9020{
9021 tHalMsgHeader header;
9022 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
9023}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
9024
9025
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05309026typedef PACKED_PRE struct PACKED_POST
9027{
9028 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309029 tFWLoggingInitResp tFWLoggingInitRespParams;
9030} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
9031
9032/*---------------------------------------------------------------------------
Kapil Guptac1043632016-06-25 00:23:30 +05309033 * WLAN_HAL_SET_PER_ROAM_CONFIG_REQ
9034 *---------------------------------------------------------------------------*/
9035
9036typedef PACKED_PRE struct PACKED_POST {
9037 tANI_U32 request_id;
9038 tANI_U32 isPERRoamCCAEnabled;
9039 tANI_U32 rateUpThreshold;
9040 tANI_U32 rateDownThreshold;
9041 tANI_U32 waitPeriodForNextPERScan;
9042 tANI_U32 PERtimerThreshold;
9043 tANI_U32 PERroamTriggerPercent;
Kapil Guptaffe21522016-08-29 12:33:00 +05309044 tANI_S16 PERRoamFullScanThreshold;
9045 tANI_U16 reserved;
Kapil Guptac1043632016-06-25 00:23:30 +05309046} tPerRoamConfigParams, * tpPerRoamConfigParams;
9047
9048typedef PACKED_PRE struct PACKED_POST
9049{
9050 tHalMsgHeader header;
9051 tPerRoamConfigParams perRoamConfigParams;
9052} tSetPerRoamConfigReq, * tpSetPerRoamConfigReq;
9053
9054/*---------------------------------------------------------------------------
9055 * WLAN_HAL_SET_PER_ROAM_CONFIG_RSP
9056 *---------------------------------------------------------------------------*/
9057
9058typedef PACKED_PRE struct PACKED_POST
9059{
9060 /* Success or Failure */
9061 tANI_U32 status;
9062} tConfigPerRoamRspParams, * tpConfigPerRoamRspParams;
9063
9064typedef PACKED_PRE struct PACKED_POST
9065{
9066 tHalMsgHeader header;
9067 tConfigPerRoamRspParams configPerRoamRspParams;
9068} tSetPerRoamConfigRsp, * tpSetPerRoamConfigRsp;
9069
9070/*---------------------------------------------------------------------------
9071 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ
9072 *---------------------------------------------------------------------------*/
9073
9074typedef PACKED_PRE struct PACKED_POST {
9075 bool roamScanReq;
9076} tStartRoamScanTriggerParams, * tpStartRoamScanTriggerParams;
9077
9078typedef PACKED_PRE struct PACKED_POST {
9079
9080 tHalMsgHeader header;
9081 tStartRoamScanTriggerParams startRoamScanTriggerParams;
9082} tStartRoamScanReq, *tpStartRoamScanReq;
9083
9084/*---------------------------------------------------------------------------
9085 * WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP
9086 *---------------------------------------------------------------------------*/
9087
9088typedef PACKED_PRE struct PACKED_POST
9089{
9090 /* Success /Failure / Nil result */
9091 tANI_U32 status;
9092} tConfigRoamScanRspParams, * tpConfigRoamScanRspParams;
9093
9094typedef PACKED_PRE struct PACKED_POST
9095{
9096 tHalMsgHeader header;
9097 tConfigRoamScanRspParams configRoamScanRspParams;
9098} tSetRoamScanConfigRsp, * tpSetRoamScanConfigRsp;
9099
Manjeet Singh4dedb502017-01-17 11:46:35 +05309100/*---------------------------------------------------------------------------
9101* WLAN_HAL_CAPTURE_GET_TSF_TSTAMP
9102*-------------------------------------------------------------------------*/
9103typedef PACKED_PRE struct PACKED_POST
9104{
9105 uint8 uBssIdx;
9106 boolean capTSFget;
9107}tHalCapTSFget, *tptHalCapTSFget;
9108
9109typedef PACKED_PRE struct PACKED_POST
9110{
9111 tHalMsgHeader header;
9112 tHalCapTSFget capTSFget;
9113}tHalCapTSFgetReqInd, *tpHalCapTSFgetReqInd;
9114
9115/*---------------------------------------------------------------------------
9116 WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP
9117---------------------------------------------------------------------------*/
9118
9119typedef PACKED_PRE struct PACKED_POST
9120{
9121 /* Success /Failure / Nil result */
9122 tANI_U32 status;
9123 tANI_U32 tsf_lo;
9124 tANI_U32 tsf_hi;
9125} tConfigcapTSFgetRspParams, * tptConfigcapTSFgetRspParams;
9126
9127typedef PACKED_PRE struct PACKED_POST
9128{
9129 tHalMsgHeader header;
9130 tConfigcapTSFgetRspParams configcapTSFgetRspParams;
9131} tcapGetTSFConfigRsp, * tpcapGetTSFConfigRsp;
9132
Kapil Guptac1043632016-06-25 00:23:30 +05309133
9134#define PER_ROAM_MAX_AP_CNT 30
9135#define PER_ROAM_MAX_CANDIDATE_CNT 15
9136
9137/* Candidate Information to be shared in the Candidate Indication,
9138 * similar to what is sent in legacy roaming with following additional info
9139 */
9140
9141typedef PACKED_PRE struct PACKED_POST {
9142 tANI_U8 channelNumber;
9143 tANI_U8 channelCCA;
9144 tANI_U8 otherApCount;
9145 tANI_S8 otherApRssi[PER_ROAM_MAX_AP_CNT];
9146} tCandidateChannelInfo, * tpCandidateChannelInfo;
9147
9148typedef PACKED_PRE struct PACKED_POST {
9149 tANI_U32 candidateCount;
9150 tCandidateChannelInfo channelInfo[PER_ROAM_MAX_CANDIDATE_CNT];
9151} tPerRoamScanResult, * tpPerRoamScanResult;
9152
9153
9154/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309155 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
9156 *-------------------------------------------------------------------------*/
9157typedef PACKED_PRE struct PACKED_POST
9158{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05309159 tANI_U16 status;
9160 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309161 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9162 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9163} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
9164
9165typedef PACKED_PRE struct PACKED_POST
9166{
9167 tHalMsgHeader header;
9168 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
9169} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
9170
9171/*---------------------------------------------------------------------------
Kapil Guptae667f952016-12-20 18:23:27 +05309172 * WLAN_HAL_APFIND_CMDID
9173 * ---------------------------------------------------------------------------*/
9174
9175#define MAX_ARRAY_SIZE 1000
9176typedef PACKED_PRE struct PACKED_POST
9177{
9178 tANI_U16 msg_version:4;
9179 tANI_U16 msg_id:12;
9180 tANI_U16 msg_len:16;
9181 tANI_U16 handle;
9182 tANI_U16 transaction_id;
9183} tApfindMsgHeader, *tpApfindMsgHeader;
9184
9185typedef PACKED_PRE struct PACKED_POST
9186{
9187 tANI_U16 type;
9188 tANI_U16 length;
9189 tANI_U8* value;
9190} tApfindTlv, *tpApfindTlv;
9191
9192typedef PACKED_PRE struct PACKED_POST
9193{
9194 tApfindMsgHeader apFindHeader;
9195 tANI_U8 ptlv[MAX_ARRAY_SIZE];
9196} tQRFPrefNetwListParams, *tpQRFPrefNetwListParams;
9197
9198typedef enum
9199{
9200 APFIND_MSG_ID_ERROR_RSP = 0,
9201 APFIND_MSG_ID_ENABLE_REQ = 1,
9202 APFIND_MSG_ID_SET_SSID = 2,
9203 APFIND_MSG_ID_SET_MAC = 3,
9204 APFIND_MSG_ID_SET_PARAMS = 4,
9205} tApfindMsgId;
9206
9207typedef PACKED_PRE struct PACKED_POST
9208{
9209 tHalMsgHeader header;
9210 tQRFPrefNetwListParams qRFprefNetwListParams;
9211} tQRFSetPrefNetwListReq, *tpQRFSetPrefNetwListReq;
9212
9213#define QRF_MAX_SUPPORTED_NETWORKS 10
9214
9215typedef PACKED_PRE struct PACKED_POST {
9216 /*Network that was found with the highest RSSI*/
9217 tSirMacSSid ssId;
9218 /*Indicates the RSSI */
9219 tANI_U8 rssi;
9220 /* The MPDU frame length of a beacon or probe rsp.
9221 * data is the start of the frame
9222 */
9223 tANI_U16 frameLength;
9224} tQrfNetwFoundParam, *tpQrfNetwFoundParam;
9225
9226typedef PACKED_PRE struct PACKED_POST {
9227 uint8 netwCount;
9228 tQrfNetwFoundParam qrfNetwParams[QRF_MAX_SUPPORTED_NETWORKS];
9229} tQrfPrefNetwFoundParams, * tpQrfPrefNetwFoundParams;
9230
9231/*
9232 * Preferred network found indication
9233 */
9234typedef PACKED_PRE struct PACKED_POST {
9235 tHalMsgHeader header;
9236 tQrfPrefNetwFoundParams qrfPrefNetwFoundParams;
9237} tQrfPrefNetwFoundInd, *tpQrfPrefNetwFoundInd;
9238
9239
9240/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05309241 * Logging mail box structure
9242 *-------------------------------------------------------------------------*/
9243
9244#define MAILBOX_VERSION_V1 0x1
9245
9246typedef PACKED_PRE struct PACKED_POST
9247{
9248 /* Logging mail box version */
9249 tANI_U8 logMbVersion;
9250 /* Current logging buffer address */
9251 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
9252 /* Current logging buffer length */
9253 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
9254 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
9255 tANI_U16 reasonCode;
9256 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
9257 tANI_U8 logType;
9258 /* Indicate if Last segment of log is received*/
9259 tANI_BOOLEAN done;
9260}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05309261
Katya Nigamf0511f62015-05-05 16:40:57 +05309262/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05309263 *WLAN_HAL_FW_MEMORY_DUMP_REQ
9264 *--------------------------------------------------------------------------*/
9265typedef PACKED_PRE struct PACKED_POST
9266{
9267 tANI_U32 reserved;
9268}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
9269
9270typedef PACKED_PRE struct PACKED_POST
9271{
9272 tHalMsgHeader header;
9273 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
9274} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
9275
9276/*---------------------------------------------------------------------------
9277 * WLAN_HAL_FW_MEMORY_DUMP_RSP
9278 *-------------------------------------------------------------------------*/
9279typedef PACKED_PRE struct PACKED_POST
9280{
9281 tANI_U32 status;
9282} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
9283
9284typedef PACKED_PRE struct PACKED_POST
9285{
9286 tHalMsgHeader header;
9287 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
9288} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
9289
9290
9291/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05309292* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
9293*-------------------------------------------------------------------------*/
9294
9295/* only 1 filter is supported as of now */
9296#define NUM_FILTERS_SUPPORTED 1
9297
9298typedef PACKED_PRE struct PACKED_POST
9299{
9300 tSirMacAddr macAddr;
9301 tANI_U8 isA1filteringNeeded;
9302 tANI_U8 isA2filteringNeeded;
9303 tANI_U8 isA3filteringNeeded;
9304}tHalMacFilter, *tpHalMacFilter;
9305
9306typedef PACKED_PRE struct PACKED_POST
9307{
9308 tANI_U8 channelNumber;
9309 ePhyChanBondState cbState;
9310
9311 tANI_U32 maxAmpduLen;
9312 tANI_U32 maxMpduInAmpduLen;
9313
9314 tANI_U8 crcCheckEnabled;
9315
9316 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
9317 tANI_U8 numMacFilters;
9318 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
9319
9320 /* Each bit position maps to IEEE convention of typeSubtype */
9321 tANI_U64 typeSubtypeBitmap;
9322
9323 tANI_U64 reserved;
9324
9325}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
9326
9327typedef PACKED_PRE struct PACKED_POST
9328{
9329 tHalMsgHeader header;
9330 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
9331}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
9332
9333
9334/*---------------------------------------------------------------------------
9335* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
9336*-------------------------------------------------------------------------*/
9337
9338typedef PACKED_PRE struct PACKED_POST
9339{
9340 tANI_U32 status;
9341}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
9342
9343typedef PACKED_PRE struct PACKED_POST
9344{
9345 tHalMsgHeader header;
9346 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
9347}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
9348
9349/*---------------------------------------------------------------------------
9350* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
9351*-------------------------------------------------------------------------*/
9352
9353typedef PACKED_PRE struct PACKED_POST
9354{
9355 tHalMsgHeader header;
9356 tANI_U8 resetConfiguration;
9357}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
9358
9359/*---------------------------------------------------------------------------
9360* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
9361*-------------------------------------------------------------------------*/
9362
9363typedef PACKED_PRE struct PACKED_POST
9364{
9365 tANI_U32 status;
9366}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
9367
9368typedef PACKED_PRE struct PACKED_POST
9369{
9370 tHalMsgHeader header;
9371 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
9372}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
9373
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05309374typedef PACKED_PRE struct PACKED_POST
9375{
9376 tANI_U8 status;
9377}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
9378
Arun Khandavalliafc16432015-10-16 20:11:31 +05309379typedef PACKED_PRE struct PACKED_POST
9380{
9381 tANI_U8 paramType;
9382 tANI_U32 paramValue;
9383 tSirMacAddr bssid;
9384} tSetWifiConfigParams, *tpSetWifiConfigParams;
9385
9386typedef PACKED_PRE struct PACKED_POST
9387{
9388 tHalMsgHeader header;
9389 tSetWifiConfigParams wifiConfigParams;
9390} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
9391
9392typedef PACKED_PRE struct PACKED_POST {
9393 tANI_U32 status;
9394} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
9395
9396typedef PACKED_PRE struct PACKED_POST
9397{
9398 tHalMsgHeader header;
9399
9400 tHalSetWifiConfigRspParams setWifiConfigRspParams;
9401} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
9402
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05309403/*---------------------------------------------------------------------------
9404* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
9405*-------------------------------------------------------------------------*/
9406typedef PACKED_PRE struct PACKED_POST
9407{
9408 tANI_U32 reserved;
9409} tHalAntennaDiversitySelectionReqParams, *tpHalAntennaDiversitySelectionReqParams;
9410
9411typedef PACKED_PRE struct PACKED_POST
9412{
9413 tHalMsgHeader header;
9414 tHalAntennaDiversitySelectionReqParams AntDivSelReqParams;
9415}tHalAntennaDiversitySelectionReqMsg;
9416
9417/*---------------------------------------------------------------------------
9418* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP
9419*-------------------------------------------------------------------------*/
9420
9421typedef PACKED_PRE struct PACKED_POST
9422{
9423 tANI_U16 status;
9424 tANI_U32 selectedAntennaId;
9425 tANI_U32 reserved;
9426} tHalAntennaDiversitySelectionRspParams, *tpHalAntennaDiversitySelectionRspParams;
9427
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +05309428/* WDI_MODIFY_ROAM_PARAMS_IND */
9429typedef PACKED_PRE struct PACKED_POST {
9430 tANI_U8 param;
9431 tANI_U32 value;
9432} tHalModifyRoamParamsIndParams, *tpHalModifyRoamParamsIndParams;
9433
9434typedef PACKED_PRE struct PACKED_POST
9435{
9436 tHalMsgHeader header;
9437 tHalModifyRoamParamsIndParams modifyRoamParamsReqParams;
9438} tHalModifyRoamParamsInd, *tpHalModifyRoamParamsInd;
9439
Agrawal Ashishc6aa0132016-12-09 15:59:29 +05309440typedef PACKED_PRE struct PACKED_POST
9441{
9442 tSirMacAddr selfMacAddr;
9443 tANI_U32 enable;
9444 tSirMacSSid ssId;
9445 tANI_U32 rsn_authmode;
9446 tANI_U32 rsn_ucastcipherset;
9447 tANI_U32 rsn_mcastcipherset;
9448 tANI_U32 rsn_mcastmgmtcipherset;
9449 tANI_U32 channel;
9450 tANI_U32 psk_len;
9451 tANI_U8 psk[1];
9452} tSapOffloadEnableMsg, *tpSapOffloadEnableMsg;
9453
9454typedef PACKED_PRE struct PACKED_POST
9455{
9456 tHalMsgHeader header;
9457 tSapOffloadEnableMsg SapOffloadEnableMsg;
9458} tHalSapoffloadEnable, *tpHalSapoffloadEnable;
9459
Anurag Chouhan9b3383a2016-12-13 22:29:55 +05309460/*---------------------------------------------------------------------------
9461 * WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ
9462 *--------------------------------------------------------------------------*/
9463typedef PACKED_PRE struct PACKED_POST
9464{
9465 tANI_U8 bss_idx;
9466 tANI_U32 enable;
9467 tANI_U32 srv_ipv4; /* server IP */
9468 tANI_U32 start_lsb; /* starting address assigned to client */
9469 tANI_U32 num_client; /* number of clients we support */
9470} hal_dhcp_srv_offload_req_param_t, *hal_dhcp_srv_offload_req_params;
9471
9472typedef PACKED_PRE struct PACKED_POST
9473{
9474 tHalMsgHeader header;
9475 hal_dhcp_srv_offload_req_param_t dhcp_srv_offload_req_params;
9476} hal_dhcp_srv_offload_req_msg_t;
9477
9478/*---------------------------------------------------------------------------
9479 * WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP
9480 *--------------------------------------------------------------------------*/
9481typedef PACKED_PRE struct PACKED_POST
9482{
9483 tANI_U32 status;
9484} hal_dhcp_srv_offload_rsp_param_t, *hal_dhcp_srv_offload_rsp_params;
9485
9486typedef PACKED_PRE struct PACKED_POST
9487{
9488 tHalMsgHeader header;
9489 hal_dhcp_srv_offload_rsp_param_t dhcp_srv_offload_rsp_params;
9490} hal_dhcp_srv_offload_rsp_msg_t, *hal_dhcp_srv_offload_rsp_msg;
9491
Anurag Chouhan9c3ddc72016-12-16 13:12:13 +05309492/*---------------------------------------------------------------------------
9493 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ
9494 *--------------------------------------------------------------------------*/
9495typedef PACKED_PRE struct PACKED_POST
9496{
9497 tANI_U8 bss_idx;
9498 tANI_U32 enable;
9499} hal_mdns_enable_offload_req_param_t, *hal_mdns_enable_offload_req_params;
9500
9501typedef PACKED_PRE struct PACKED_POST
9502{
9503 tHalMsgHeader header;
9504 hal_mdns_enable_offload_req_param_t mdns_enable_req_params;
9505} hal_mdns_enable_offload_req_msg_t;
9506
9507/*---------------------------------------------------------------------------
9508 * WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP
9509 *--------------------------------------------------------------------------*/
9510typedef PACKED_PRE struct PACKED_POST
9511{
9512 tANI_U32 status;
9513} hal_mdns_enable_offload_rsp_param_t, *hal_mdns_enable_offload_rsp_params;
9514
9515typedef PACKED_PRE struct PACKED_POST
9516{
9517 tHalMsgHeader header;
9518 hal_mdns_enable_offload_rsp_param_t mdns_enable_rsp_params;
9519} hal_mdns_enable_offload_rsp_msg_t, *hal_mdns_enable_offload_rsp_msg;
9520
9521/*---------------------------------------------------------------------------
9522 * WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ
9523 *--------------------------------------------------------------------------*/
9524typedef PACKED_PRE struct PACKED_POST
9525{
9526 tANI_U8 bss_idx;
9527 tANI_U32 type;
9528 tANI_U32 fqdn_len;
9529 tANI_U8 fqdn_data[1];
9530} hal_mdns_fqdn_offload_req_param_t, *hal_mdns_fqdn_offload_req_params;
9531
9532typedef PACKED_PRE struct PACKED_POST
9533{
9534 tHalMsgHeader header;
9535 hal_mdns_fqdn_offload_req_param_t mdns_fqdn_req_params;
9536} hal_mdns_fqdn_offload_req_msg_t;
9537
9538/*---------------------------------------------------------------------------
9539 * WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP
9540 *--------------------------------------------------------------------------*/
9541typedef PACKED_PRE struct PACKED_POST
9542{
9543 tANI_U32 status;
9544} hal_mdns_fqdn_offload_rsp_param_t, *hal_mdns_fqdn_offload_rsp_params;
9545
9546typedef PACKED_PRE struct PACKED_POST
9547{
9548 tHalMsgHeader header;
9549 hal_mdns_fqdn_offload_rsp_param_t mdns_fqdn_rsp_params;
9550} hal_mdns_fqdn_offload_rsp_msg_t, *hal_mdns_fqdn_offload_rsp_msg;
9551
9552/*---------------------------------------------------------------------------
9553 * WLAN_HAL_MDNS_RESP_OFFLOAD_REQ
9554 *--------------------------------------------------------------------------*/
9555typedef PACKED_PRE struct PACKED_POST
9556{
9557 tANI_U8 bss_idx;
9558 tANI_U32 ar_count;
9559 tANI_U32 resp_len;
9560 tANI_U8 resp_data[1];
9561} hal_mdns_resp_offload_req_param_t, *hal_mdns_resp_offload_req_params;
9562
9563typedef PACKED_PRE struct PACKED_POST
9564{
9565 tHalMsgHeader header;
9566 hal_mdns_resp_offload_req_param_t mdns_resp_req_params;
9567} hal_mdns_resp_offload_req_msg_t;
9568
9569/*---------------------------------------------------------------------------
9570 * WLAN_HAL_MDNS_RESP_OFFLOAD_RSP
9571 *--------------------------------------------------------------------------*/
9572typedef PACKED_PRE struct PACKED_POST
9573{
9574 tANI_U32 status;
9575} hal_mdns_resp_offload_rsp_param_t, *hal_mdns_resp_offload_rsp_params;
9576
9577typedef PACKED_PRE struct PACKED_POST
9578{
9579 tHalMsgHeader header;
9580 hal_mdns_resp_offload_rsp_param_t mdns_rsp_params;
9581} hal_mdns_resp_offload_rsp_msg_t, *hal_mdns_resp_offload_rsp_msg;
9582
9583/*---------------------------------------------------------------------------
9584 * WLAN_HAL_MDNS_STATS_OFFLOAD_REQ
9585 *--------------------------------------------------------------------------*/
9586typedef PACKED_PRE struct PACKED_POST
9587{
9588 tANI_U8 bss_idx;
9589} hal_mdns_stats_offload_req_param_t, *hal_mdns_stats_offload_req_params;
9590
9591typedef PACKED_PRE struct PACKED_POST
9592{
9593 tHalMsgHeader header;
9594 hal_mdns_stats_offload_req_param_t mdns_stats_req_params;
9595} hal_mdns_stats_offload_req_msg_t;
9596
9597/*---------------------------------------------------------------------------
9598 * WLAN_HAL_MDNS_STATS_OFFLOAD_RSP
9599 *--------------------------------------------------------------------------*/
9600typedef PACKED_PRE struct PACKED_POST
9601{
9602 tANI_U8 bss_idx;
9603 tANI_U32 current_ts;
9604 tANI_U32 last_query_ts;
9605 tANI_U32 last_rsp_ts;
9606 tANI_U32 tot_queries;
9607 tANI_U32 tot_matches;
9608 tANI_U32 tot_rsp;
9609 tANI_U32 status;
9610} hal_mdns_stats_offload_rsp_param_t, *hal_mdns_stats_offload_rsp_params;
9611
9612typedef PACKED_PRE struct PACKED_POST
9613{
9614 tHalMsgHeader header;
9615 hal_mdns_stats_offload_rsp_param_t mdns_stats_rsp_params;
9616} hal_mdns_stats_offload_rsp_msg_t, *hal_mdns_stats_offload_rsp_msg;
9617
Anurag Chouhance0f0822017-01-24 15:44:26 +05309618/*---------------------------------------------------------------------------
9619 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ
9620 *--------------------------------------------------------------------------*/
9621typedef PACKED_PRE struct PACKED_POST
9622{
9623 tANI_U8 set_clr; /*1 set and 0 reset*/
9624 tANI_U8 pkt_type; /* Default 1: ARP */
9625 tANI_U32 ip_addr; /*GW ipv4 address */
9626} tHalStatsArpReqParams, *tpHalStatsArpReqParams;
9627
9628typedef PACKED_PRE struct PACKED_POST
9629{
9630 tHalMsgHeader header;
9631 tHalStatsArpReqParams statsArpReqParams;
9632} tHalStatsArpReqMsg, *tpHalStatsArpReqMsg;
9633
9634/*---------------------------------------------------------------------------
9635 * WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP
9636 *--------------------------------------------------------------------------*/
9637typedef PACKED_PRE struct PACKED_POST
9638{
9639 tANI_U32 status; //success or failure
9640} tHalStatsArpRspParams, *tpHalStatsArpRspParams;
9641
9642typedef PACKED_PRE struct PACKED_POST
9643{
9644 tHalMsgHeader header;
9645 tHalStatsArpRspParams statsArpRspParams;
9646} tHalStatsArpRspMsg, *tpHalStatsArpRspMsg;
9647
9648/*---------------------------------------------------------------------------
9649 * WLAN_HAL_FW_GET_ARP_STATS_REQ
9650 *--------------------------------------------------------------------------*/
9651typedef PACKED_PRE struct PACKED_POST
9652{
9653 tANI_U8 pkt_type; /* Furture purpose */
9654} tHalStatsGetArpReqParams, *tpHalStatsGetArpReqParams;
9655
9656typedef PACKED_PRE struct PACKED_POST
9657{
9658 tHalMsgHeader header;
9659 tHalStatsGetArpReqParams statsGetArpReqParams;
9660} tHalStatsGetArpReqMsg, *tpHalStatsGetArpReqMsg;
9661
9662/*---------------------------------------------------------------------------
9663 * WLAN_HAL_FW_GET_ARP_STATS_RSP
9664 *--------------------------------------------------------------------------*/
9665typedef PACKED_PRE struct PACKED_POST
9666{
9667 tANI_U32 status;
9668 tANI_U16 dad;
9669 tANI_U16 arpReqRcvdInFW;
9670 tANI_U16 ackedArpReqCnt;
9671 tANI_U16 arpRspCnt;
9672 tANI_U8 data[1];
9673} tdbugArpStatsgetRspParams, *tpdbugArpStatsgetRspParams;
9674
9675typedef PACKED_PRE struct PACKED_POST
9676{
9677 tHalMsgHeader header;
9678 tdbugArpStatsgetRspParams fwArpstatsRspParams;
9679} tHalARPfwStatsRspMsg, *tpHalARPfwStatsRspMsg;
9680
Jeff Johnson295189b2012-06-20 16:38:30 -07009681#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
9682#pragma pack(pop)
9683#elif defined(__ANI_COMPILER_PRAGMA_PACK)
9684#else
9685#endif
9686
9687#endif /* _WLAN_HAL_MSG_H_ */