blob: c3d332e86ae05cac9508af578d1d7df4ae6a571b [file] [log] [blame]
Dino Mycle8afbac12014-07-04 22:06:17 +05301
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05302/* Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
Amar Singhalb41c45b2014-03-21 14:44:14 -07003* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
Dino Mycle8afbac12014-07-04 22:06:17 +05304
Amar Singhalb41c45b2014-03-21 14:44:14 -07005*
6*
7* Permission to use, copy, modify, and/or distribute this software for
8* any purpose with or without fee is hereby granted, provided that the
9* above copyright notice and this permission notice appear in all
10* copies.
11*
12* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19* PERFORMANCE OF THIS SOFTWARE.
20*/
Prakash Dhavali0573c4d2014-02-12 13:19:04 -080021
22/*
Amar Singhalb41c45b2014-03-21 14:44:14 -070023* This file was originally distributed by Qualcomm Atheros, Inc.
24* under proprietary terms before Copyright ownership was assigned
25* to the Linux Foundation.
26*/
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070027
Jeff Johnson295189b2012-06-20 16:38:30 -070028/*==========================================================================
29 *
30 * @file: wlan_hal_msg.h
31 *
32 * @brief: Exports and types for messages sent to HAL from WDI
33 *
34 * @author: Kumar Anand
35 *
Jeff Johnson295189b2012-06-20 16:38:30 -070036 *
37 *=========================================================================*/
38
39#ifndef _WLAN_HAL_MSG_H_
40#define _WLAN_HAL_MSG_H_
41
42#include "halLegacyPalTypes.h"
43#include "halCompiler.h"
44#include "wlan_qct_dev_defs.h"
45#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080046
Jeff Johnson295189b2012-06-20 16:38:30 -070047/*---------------------------------------------------------------------------
48 API VERSIONING INFORMATION
49
50 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
51 The MAJOR is incremented for major product/architecture changes
52 (and then MINOR/VERSION/REVISION are zeroed)
53 The MINOR is incremented for minor product/architecture changes
54 (and then VERSION/REVISION are zeroed)
55 The VERSION is incremented if a significant API change occurs
56 (and then REVISION is zeroed)
57 The REVISION is incremented if an insignificant API change occurs
58 or if a new API is added
59 All values are in the range 0..255 (ie they are 8-bit values)
60 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070061#define WLAN_HAL_VER_MAJOR 1
Kumar Anandea78e792013-10-10 23:47:01 -070062#define WLAN_HAL_VER_MINOR 5
Jeff Johnson295189b2012-06-20 16:38:30 -070063#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080064#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070065
66/*---------------------------------------------------------------------------
67 Commom Type definitons
68 ---------------------------------------------------------------------------*/
69
Srinivas Dasari42584632014-11-26 20:37:19 +053070#define DISA_MAX_PAYLOAD_SIZE 1600
71
Jeff Johnson295189b2012-06-20 16:38:30 -070072//This is to force compiler to use the maximum of an int ( 4 bytes )
73#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070074#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070075
76//Max no. of transmit categories
77#define STACFG_MAX_TC 8
78
79//The maximum value of access category
80#define WLAN_HAL_MAX_AC 4
81
82typedef tANI_U8 tSirMacAddr[6];
83typedef tANI_U8 tHalIpv4Addr[4];
84
85#define HAL_MAC_ADDR_LEN 6
86#define HAL_IPV4_ADDR_LEN 4
87
Amar Singhalb41c45b2014-03-21 14:44:14 -070088#define WLAN_HAL_STA_INVALID_IDX 0xFF
Jeff Johnson295189b2012-06-20 16:38:30 -070089#define WLAN_HAL_BSS_INVALID_IDX 0xFF
90
91//Default Beacon template size
Dino Mycle8afbac12014-07-04 22:06:17 +053092#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070093
Kumar Anandea78e792013-10-10 23:47:01 -070094
95//Max Tx Data Rate samples
96#define MAX_TX_RATE_SAMPLES 10
97//Max Beacon Rssi samples
98#define MAX_BCN_RSSI_SAMPLES 10
99
Dino Mycle8afbac12014-07-04 22:06:17 +0530100//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -0700101#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
102#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
103#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
104#define PARAM_llACOEXIST_CHANGED (1 << 3)
105#define PARAM_llBCOEXIST_CHANGED (1 << 4)
106#define PARAM_llGCOEXIST_CHANGED (1 << 5)
107#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
108#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
109#define PARAM_RIFS_MODE_CHANGED (1<<8)
110#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
111#define PARAM_OBSS_MODE_CHANGED (1<<10)
112#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
113 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)
114
115/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530116#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700117
118/*Version string max length (including NUL) */
119#define WLAN_HAL_VERSION_LENGTH 64
120
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530121#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
Amar Singhalb41c45b2014-03-21 14:44:14 -0700122/* 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 -0800123#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS 80
Amar Singhalb41c45b2014-03-21 14:44:14 -0700124#define WLAN_HAL_ROAM_SACN_PMK_SIZE 32
125#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 20
Yue Maab3ccfc2013-08-14 17:19:08 -0700126
Dino Mycle108eff22014-06-10 09:36:44 +0530127#define WLAN_HAL_EXT_SCAN_MAX_CHANNELS 16
128#define WLAN_HAL_EXT_SCAN_MAX_BUCKETS 16
129#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS 128
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +0530130#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +0530131
Dino Mycle108eff22014-06-10 09:36:44 +0530132#define WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE 8
133
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530134/* For Logging enhancement feature currently max 2 address will be passed */
135/* In future we may pass 3 address and length in suspend mode corner case */
136#define MAX_NUM_OF_BUFFER 3
137
138/* Log types */
139typedef enum
140{
141 MGMT_FRAME_LOGS = 0,
142 QXDM_LOGGING = 1,
143 FW_MEMORY_DUMP = 2
144}tHalFrameLoggingType;
145
146/* Log size */
147typedef enum
148{
149 LOG_SIZE_4K = 0,
150 LOG_SIZE_8K = 1,
151 LOG_SIZE_12K = 2,
152 LOG_SIZE_16K = 3,
153 LOG_SIZE_32K = 4,
154 LOG_SIZE_64K = 5,
155 LOG_SIZE_96K = 6
156}tHalLogBuffSize;
157
Jeff Johnson295189b2012-06-20 16:38:30 -0700158/* Message types for messages exchanged between WDI and HAL */
Dino Mycle8afbac12014-07-04 22:06:17 +0530159typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700160{
161 //Init/De-Init
162 WLAN_HAL_START_REQ = 0,
163 WLAN_HAL_START_RSP = 1,
164 WLAN_HAL_STOP_REQ = 2,
165 WLAN_HAL_STOP_RSP = 3,
166
167 //Scan
168 WLAN_HAL_INIT_SCAN_REQ = 4,
169 WLAN_HAL_INIT_SCAN_RSP = 5,
170 WLAN_HAL_START_SCAN_REQ = 6,
171 WLAN_HAL_START_SCAN_RSP = 7 ,
172 WLAN_HAL_END_SCAN_REQ = 8,
173 WLAN_HAL_END_SCAN_RSP = 9,
174 WLAN_HAL_FINISH_SCAN_REQ = 10,
175 WLAN_HAL_FINISH_SCAN_RSP = 11,
176
177 // HW STA configuration/deconfiguration
178 WLAN_HAL_CONFIG_STA_REQ = 12,
179 WLAN_HAL_CONFIG_STA_RSP = 13,
180 WLAN_HAL_DELETE_STA_REQ = 14,
181 WLAN_HAL_DELETE_STA_RSP = 15,
182 WLAN_HAL_CONFIG_BSS_REQ = 16,
183 WLAN_HAL_CONFIG_BSS_RSP = 17,
184 WLAN_HAL_DELETE_BSS_REQ = 18,
185 WLAN_HAL_DELETE_BSS_RSP = 19,
186
187 //Infra STA asscoiation
188 WLAN_HAL_JOIN_REQ = 20,
189 WLAN_HAL_JOIN_RSP = 21,
190 WLAN_HAL_POST_ASSOC_REQ = 22,
191 WLAN_HAL_POST_ASSOC_RSP = 23,
192
193 //Security
194 WLAN_HAL_SET_BSSKEY_REQ = 24,
195 WLAN_HAL_SET_BSSKEY_RSP = 25,
196 WLAN_HAL_SET_STAKEY_REQ = 26,
197 WLAN_HAL_SET_STAKEY_RSP = 27,
198 WLAN_HAL_RMV_BSSKEY_REQ = 28,
199 WLAN_HAL_RMV_BSSKEY_RSP = 29,
200 WLAN_HAL_RMV_STAKEY_REQ = 30,
201 WLAN_HAL_RMV_STAKEY_RSP = 31,
202
203 //Qos Related
204 WLAN_HAL_ADD_TS_REQ = 32,
205 WLAN_HAL_ADD_TS_RSP = 33,
206 WLAN_HAL_DEL_TS_REQ = 34,
207 WLAN_HAL_DEL_TS_RSP = 35,
208 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
209 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
210 WLAN_HAL_ADD_BA_REQ = 38,
211 WLAN_HAL_ADD_BA_RSP = 39,
212 WLAN_HAL_DEL_BA_REQ = 40,
213 WLAN_HAL_DEL_BA_RSP = 41,
214
215 WLAN_HAL_CH_SWITCH_REQ = 42,
216 WLAN_HAL_CH_SWITCH_RSP = 43,
217 WLAN_HAL_SET_LINK_ST_REQ = 44,
218 WLAN_HAL_SET_LINK_ST_RSP = 45,
219 WLAN_HAL_GET_STATS_REQ = 46,
220 WLAN_HAL_GET_STATS_RSP = 47,
221 WLAN_HAL_UPDATE_CFG_REQ = 48,
222 WLAN_HAL_UPDATE_CFG_RSP = 49,
223
224 WLAN_HAL_MISSED_BEACON_IND = 50,
225 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
226 WLAN_HAL_MIC_FAILURE_IND = 52,
227 WLAN_HAL_FATAL_ERROR_IND = 53,
228 WLAN_HAL_SET_KEYDONE_MSG = 54,
Dino Mycle8afbac12014-07-04 22:06:17 +0530229
Jeff Johnson295189b2012-06-20 16:38:30 -0700230 //NV Interface
231 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
232 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
233
234 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
235 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
236 WLAN_HAL_TRIGGER_BA_REQ = 59,
237 WLAN_HAL_TRIGGER_BA_RSP = 60,
238 WLAN_HAL_UPDATE_BEACON_REQ = 61,
239 WLAN_HAL_UPDATE_BEACON_RSP = 62,
240 WLAN_HAL_SEND_BEACON_REQ = 63,
241 WLAN_HAL_SEND_BEACON_RSP = 64,
242
243 WLAN_HAL_SET_BCASTKEY_REQ = 65,
244 WLAN_HAL_SET_BCASTKEY_RSP = 66,
245 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
246 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
247 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Dino Mycle8afbac12014-07-04 22:06:17 +0530248
Jeff Johnson295189b2012-06-20 16:38:30 -0700249 // PTT interface support
250 WLAN_HAL_PROCESS_PTT_REQ = 70,
251 WLAN_HAL_PROCESS_PTT_RSP = 71,
Dino Mycle8afbac12014-07-04 22:06:17 +0530252
Jeff Johnson295189b2012-06-20 16:38:30 -0700253 // BTAMP related events
254 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
255 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
256 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
257 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
258
259 WLAN_HAL_ENTER_IMPS_REQ = 76,
260 WLAN_HAL_EXIT_IMPS_REQ = 77,
261 WLAN_HAL_ENTER_BMPS_REQ = 78,
262 WLAN_HAL_EXIT_BMPS_REQ = 79,
263 WLAN_HAL_ENTER_UAPSD_REQ = 80,
264 WLAN_HAL_EXIT_UAPSD_REQ = 81,
265 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
266 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
267 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
268 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
269 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
270 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
271 WLAN_HAL_ENTER_WOWL_REQ = 88,
272 WLAN_HAL_EXIT_WOWL_REQ = 89,
273 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
274 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
275 WLAN_HAL_GET_RSSI_REQ = 92,
276 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
277 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
278
279 WLAN_HAL_ENTER_IMPS_RSP = 95,
280 WLAN_HAL_EXIT_IMPS_RSP = 96,
281 WLAN_HAL_ENTER_BMPS_RSP = 97,
282 WLAN_HAL_EXIT_BMPS_RSP = 98,
283 WLAN_HAL_ENTER_UAPSD_RSP = 99,
284 WLAN_HAL_EXIT_UAPSD_RSP = 100,
285 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
286 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
287 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
288 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
289 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
290 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
291 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
292 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
293 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
294 WLAN_HAL_ENTER_WOWL_RSP = 110,
295 WLAN_HAL_EXIT_WOWL_RSP = 111,
296 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
297 WLAN_HAL_GET_RSSI_RSP = 113,
298 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
299
300 //11k related events
301 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
302 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
303
304 //11R related msgs
305 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
306 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
307
308 //P2P WLAN_FEATURE_P2P
309 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
310 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Dino Mycle8afbac12014-07-04 22:06:17 +0530311
Jeff Johnson295189b2012-06-20 16:38:30 -0700312 //WLAN Dump commands
313 WLAN_HAL_DUMP_COMMAND_REQ = 121,
314 WLAN_HAL_DUMP_COMMAND_RSP = 122,
315
Jeff Johnsone7245742012-09-05 17:12:55 -0700316 //OEM_DATA FEATURE SUPPORT
317 WLAN_HAL_START_OEM_DATA_REQ = 123,
318 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700319
320 //ADD SELF STA REQ and RSP
321 WLAN_HAL_ADD_STA_SELF_REQ = 125,
322 WLAN_HAL_ADD_STA_SELF_RSP = 126,
323
324 //DEL SELF STA SUPPORT
325 WLAN_HAL_DEL_STA_SELF_REQ = 127,
326 WLAN_HAL_DEL_STA_SELF_RSP = 128,
327
328 // Coex Indication
329 WLAN_HAL_COEX_IND = 129,
330
Dino Mycle8afbac12014-07-04 22:06:17 +0530331 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700332 WLAN_HAL_OTA_TX_COMPL_IND = 130,
333
334 //Host Suspend/resume messages
335 WLAN_HAL_HOST_SUSPEND_IND = 131,
336 WLAN_HAL_HOST_RESUME_REQ = 132,
337 WLAN_HAL_HOST_RESUME_RSP = 133,
338
339 WLAN_HAL_SET_TX_POWER_REQ = 134,
340 WLAN_HAL_SET_TX_POWER_RSP = 135,
341 WLAN_HAL_GET_TX_POWER_REQ = 136,
342 WLAN_HAL_GET_TX_POWER_RSP = 137,
343
344 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Dino Mycle8afbac12014-07-04 22:06:17 +0530345
Jeff Johnson295189b2012-06-20 16:38:30 -0700346 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
347 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
348 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
349 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
350 WLAN_HAL_RADAR_DETECT_IND = 143,
351 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
352 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Dino Mycle8afbac12014-07-04 22:06:17 +0530353 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700354
355 /*PNO messages*/
356 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
357 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
358 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
359 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
360 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
361 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Dino Mycle8afbac12014-07-04 22:06:17 +0530362 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700363
364 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
365 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
366 WLAN_HAL_TX_PER_HIT_IND = 156,
Dino Mycle8afbac12014-07-04 22:06:17 +0530367
Jeff Johnson295189b2012-06-20 16:38:30 -0700368 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Dino Mycle8afbac12014-07-04 22:06:17 +0530369 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700370
371 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Dino Mycle8afbac12014-07-04 22:06:17 +0530372 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700373 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Dino Mycle8afbac12014-07-04 22:06:17 +0530374 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700375 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Dino Mycle8afbac12014-07-04 22:06:17 +0530376 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
377 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700378 * Host and Riva code is in sync*/
379 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Dino Mycle8afbac12014-07-04 22:06:17 +0530380
Jeff Johnson295189b2012-06-20 16:38:30 -0700381 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
382 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
383
384 WLAN_HAL_TSM_STATS_REQ = 168,
385 WLAN_HAL_TSM_STATS_RSP = 169,
386
387 // wake reason indication (WOW)
388 WLAN_HAL_WAKE_REASON_IND = 170,
Dino Mycle8afbac12014-07-04 22:06:17 +0530389 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700390 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
391 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
392 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
393 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
394
395 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
396 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
397 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
398
399 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
400 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
401
Anand Kumar012623a2013-01-11 17:00:00 -0800402 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
403 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800404
Anand Kumar012623a2013-01-11 17:00:00 -0800405 WLAN_HAL_P2P_NOA_START_IND = 184,
406
407 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
408 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Dino Mycle8afbac12014-07-04 22:06:17 +0530409
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800410 WLAN_HAL_CLASS_B_STATS_IND = 187,
411 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800412 WLAN_HAL_DHCP_START_IND = 189,
413 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700414 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
415 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530416 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
417 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700418
419 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
420 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
421 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
422
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530423 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
424 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
425 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
426 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
427 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700428 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700429
Kumar Anandf53016f2013-09-04 15:15:53 -0700430 /* Scan Offload APIs */
431 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
432 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
433 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
434 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
435 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
436 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
437 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
438
Leo Chang397deb72013-08-22 11:33:16 -0700439 /* APIs to offload TCP/UDP Heartbeat handshakes */
440 WLAN_HAL_LPHB_CFG_REQ = 211,
441 WLAN_HAL_LPHB_CFG_RSP = 212,
442 WLAN_HAL_LPHB_IND = 213,
443
Yue Maab3ccfc2013-08-14 17:19:08 -0700444 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
445 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
446 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530447
Kumar Anandf53016f2013-09-04 15:15:53 -0700448 // Events to set Per-Band Tx Power Limit
449 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
450 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
451
452 /* Reliable Multicast using Leader Based Protocol */
453 WLAN_HAL_LBP_LEADER_REQ = 219,
454 WLAN_HAL_LBP_LEADER_RSP = 220,
455 WLAN_HAL_LBP_UPDATE_IND = 221,
456
krunal soni2a4728d2013-09-20 21:56:50 -0700457 /* Batchscan */
458 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
459 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
460 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
461 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
462 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
463
464 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
465 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
466
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700467 WLAN_HAL_RATE_UPDATE_IND = 229,
468
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530469 /* Tx Fail for weak link notification */
470 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
471 WLAN_HAL_TX_FAIL_IND = 231,
472
473 /* Multi-hop IP routing offload */
474 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
475
Amar Singhalb41c45b2014-03-21 14:44:14 -0700476 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530477 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800478
Amar Singhalb41c45b2014-03-21 14:44:14 -0700479 /* Fast Roam Offload Synchup request protocol */
480 /* TODO_LFR3 : change this value accordingly before final check-in */
481 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
482 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
483
484 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
485 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
486
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800487 /* Channel Switch Request version 1 */
488 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
489 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
490
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530491 /* 2G4 HT40 OBSS scan */
492 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700493 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
494
495 /* WLAN NAN Messages */
496 WLAN_HAL_NAN_FIRST = 256,
497 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
498 WLAN_HAL_NAN_RSP = 257,
499 WLAN_HAL_NAN_EVT = 258,
500 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
c_hpothu80c30472014-04-14 19:04:48 +0530501 WLAN_HAL_PRINT_REG_INFO_IND = 259,
502
c_hpothua047e572014-05-01 15:03:11 +0530503 WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
504 WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
505
Sunil Dutt8377a382014-05-26 21:18:04 +0530506 /* WLAN LINK LAYER STATS Messages */
507 WLAN_HAL_LL_SET_STATS_REQ = 262,
508 WLAN_HAL_LL_SET_STATS_RSP = 263,
509 WLAN_HAL_LL_GET_STATS_REQ = 264,
510 WLAN_HAL_LL_GET_STATS_RSP = 265,
511 WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
512 WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
513 WLAN_HAL_LL_NOTIFY_STATS = 268,
Dino Mycle8afbac12014-07-04 22:06:17 +0530514 WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
Dino Mycle108eff22014-06-10 09:36:44 +0530515
Dino Mycle8afbac12014-07-04 22:06:17 +0530516 /* WLAN EXT_SCAN Messages */
517 WLAN_HAL_EXT_SCAN_START_REQ = 269,
518 WLAN_HAL_EXT_SCAN_START_RSP = 270,
519 WLAN_HAL_EXT_SCAN_GET_CAP_REQ = 271,
520 WLAN_HAL_EXT_SCAN_GET_CAP_RSP = 272,
521 WLAN_HAL_EXT_SCAN_STOP_REQ = 273,
522 WLAN_HAL_EXT_SCAN_STOP_RSP = 274,
523 WLAN_HAL_EXT_SCAN_GET_SCAN_REQ = 275,
524 WLAN_HAL_EXT_SCAN_GET_SCAN_RSP = 276,
Dino Mycle108eff22014-06-10 09:36:44 +0530525
526 WLAN_HAL_BSSID_HOTLIST_SET_REQ = 277,
527 WLAN_HAL_BSSID_HOTLIST_SET_RSP = 278,
528 WLAN_HAL_BSSID_HOTLIST_RESET_REQ = 279,
529 WLAN_HAL_BSSID_HOTLIST_RESET_RSP = 280,
530
531 WLAN_HAL_SIG_RSSI_SET_REQ = 281,
532 WLAN_HAL_SIG_RSSI_SET_RSP = 282,
533 WLAN_HAL_SIG_RSSI_RESET_REQ = 283,
534 WLAN_HAL_SIG_RSSI_RESET_RSP = 284,
535
Dino Mycle8afbac12014-07-04 22:06:17 +0530536 WLAN_HAL_EXT_SCAN_RESULT_IND = 285,
Dino Mycle108eff22014-06-10 09:36:44 +0530537 WLAN_HAL_BSSID_HOTLIST_RESULT_IND = 286,
538 WLAN_HAL_SIG_RSSI_RESULT_IND = 287,
Dino Mycle8afbac12014-07-04 22:06:17 +0530539 WLAN_HAL_EXT_SCAN_PROGRESS_IND = 288,
540 WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND = 289,
Atul Mittal53419ed2014-08-03 19:41:23 +0530541 WLAN_HAL_TDLS_CHAN_SWITCH_REQ = 290,
542 WLAN_HAL_TDLS_CHAN_SWITCH_RSP = 291,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +0530543 WLAN_HAL_MAC_SPOOFED_SCAN_REQ = 292,
544 WLAN_HAL_MAC_SPOOFED_SCAN_RSP = 293,
Srinivas Dasari42584632014-11-26 20:37:19 +0530545 /* LGE DISA encrypt-decrypt Messages */
546 WLAN_HAL_ENCRYPT_DATA_REQ = 294,
547 WLAN_HAL_ENCRYPT_DATA_RSP = 295,
Sunil Dutt8377a382014-05-26 21:18:04 +0530548
Abhishek Singh725c1582014-11-24 11:47:48 +0530549 WLAN_HAL_FW_STATS_REQ = 296,
550 WLAN_HAL_FW_STATS_RSP = 297,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530551 WLAN_HAL_FW_LOGGING_INIT_REQ = 298,
552 WLAN_HAL_FW_LOGGING_INIT_RSP = 299,
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +0530553 WLAN_HAL_GET_FRAME_LOG_REQ = 300,
554 WLAN_HAL_GET_FRAME_LOG_RSP = 301,
Abhishek Singh725c1582014-11-24 11:47:48 +0530555
Abhishek Singhbc310882015-05-22 15:17:02 +0530556 /* Monitor Mode */
557 WLAN_HAL_ENABLE_MONITOR_MODE_REQ = 302,
558 WLAN_HAL_ENABLE_MONITOR_MODE_RSP = 303,
559
560 WLAN_HAL_DISABLE_MONITOR_MODE_REQ = 304,
561 WLAN_HAL_DISABLE_MONITOR_MODE_RSP = 305,
Katya Nigamf0511f62015-05-05 16:40:57 +0530562
Abhishek Singhbc310882015-05-22 15:17:02 +0530563 WLAN_HAL_SET_RTS_CTS_HTVHT_IND = 306,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530564 // FW Logging
565 WLAN_HAL_FATAL_EVENT_LOGGING_REQ = 307,
566 WLAN_HAL_FATAL_EVENT_LOGGING_RSP = 308,
567 WLAN_HAL_FW_MEMORY_DUMP_REQ = 309,
568 WLAN_HAL_FW_MEMORY_DUMP_RSP = 310,
569 WLAN_HAL_FW_LOGGING_DXE_DONE_IND = 311,
Sachin Ahuja75c1fd72015-08-28 15:46:46 +0530570 WLAN_HAL_LOST_LINK_PARAMETERS_IND = 312,
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +0530571 WLAN_HAL_SEND_FREQ_RANGE_CONTROL_IND = 313,
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +0530572
573 WLAN_HAL_SSID_HOTLIST_SET_REQ = 314,
574 WLAN_HAL_SSID_HOTLIST_SET_RSP = 315,
575 WLAN_HAL_SSID_HOTLIST_RESET_REQ = 316,
576 WLAN_HAL_SSID_HOTLIST_RESET_RSP = 317,
577
578 WLAN_HAL_SSID_HOTLIST_RESULT_IND = 318,
579
Sunil Dutt8377a382014-05-26 21:18:04 +0530580 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700581}tHalHostMsgType;
582
Jeff Johnsone7245742012-09-05 17:12:55 -0700583/* Enumeration for Version */
584typedef enum
585{
586 WLAN_HAL_MSG_VERSION0 = 0,
587 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800588 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
589 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700590}tHalHostMsgVersion;
591
Jeff Johnson295189b2012-06-20 16:38:30 -0700592/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530593typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700594{
595 eANI_BOOLEAN_FALSE = 0,
596 eANI_BOOLEAN_TRUE,
597 eANI_BOOLEAN_OFF = 0,
598 eANI_BOOLEAN_ON = 1,
599 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
600} eAniBoolean;
601
602typedef enum
603{
604 eDRIVER_TYPE_PRODUCTION = 0,
605 eDRIVER_TYPE_MFG = 1,
606 eDRIVER_TYPE_DVT = 2,
607 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
608} tDriverType;
609
610typedef enum
611{
612 HAL_STOP_TYPE_SYS_RESET,
613 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
614 HAL_STOP_TYPE_RF_KILL,
615 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
616}tHalStopType;
617
618typedef enum
619{
620 eHAL_SYS_MODE_NORMAL,
621 eHAL_SYS_MODE_LEARN,
622 eHAL_SYS_MODE_SCAN,
623 eHAL_SYS_MODE_PROMISC,
624 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700625 eHAL_SYS_MODE_ROAM_SCAN,
626 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700627 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700628 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
629} eHalSysMode;
630
631typedef enum
632{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800633 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
634 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
635 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
636 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
637 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
638 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
639 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
640 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
641 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700642 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800643 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
644} eHalChanSwitchSource;
645
646typedef enum
647{
Jeff Johnson295189b2012-06-20 16:38:30 -0700648 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
649 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
650 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
651 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700652#ifdef WLAN_FEATURE_11AC
653 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
654 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
655 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
656 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
657 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
658 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
659 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
660#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700661 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
662}ePhyChanBondState;
663
664// Spatial Multiplexing(SM) Power Save mode
665typedef enum eSirMacHTMIMOPowerSaveState
666{
667 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
668 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
669 eSIR_HT_MIMO_PS_NA = 2, // reserved
670 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
671 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
672} tSirMacHTMIMOPowerSaveState;
673
674/* each station added has a rate mode which specifies the sta attributes */
675typedef enum eStaRateMode {
676 eSTA_TAURUS = 0,
677 eSTA_TITAN,
678 eSTA_POLARIS,
679 eSTA_11b,
680 eSTA_11bg,
681 eSTA_11a,
682 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700683#ifdef WLAN_FEATURE_11AC
684 eSTA_11ac,
685#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700686 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
687} tStaRateMode, *tpStaRateMode;
688
689#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
690#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
691#define SIR_NUM_POLARIS_RATES 3 //72,96,108
692
693#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
694
695
696typedef enum eSirBssType
697{
698 eSIR_INFRASTRUCTURE_MODE,
699 eSIR_INFRA_AP_MODE, //Added for softAP support
700 eSIR_IBSS_MODE,
701 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
702 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
703 eSIR_AUTO_MODE,
704 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
705} tSirBssType;
706
707typedef enum eSirNwType
708{
709 eSIR_11A_NW_TYPE,
710 eSIR_11B_NW_TYPE,
711 eSIR_11G_NW_TYPE,
712 eSIR_11N_NW_TYPE,
713 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
714} tSirNwType;
715
716typedef tANI_U16 tSirMacBeaconInterval;
717
718#define SIR_MAC_RATESET_EID_MAX 12
719
720typedef enum eSirMacHTOperatingMode
721{
722 eSIR_HT_OP_MODE_PURE, // No Protection
723 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
724 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
725 eSIR_HT_OP_MODE_MIXED, // Protection is required
726 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
727} tSirMacHTOperatingMode;
728
Jeff Johnson295189b2012-06-20 16:38:30 -0700729/// Encryption type enum used with peer
730typedef enum eAniEdType
731{
732 eSIR_ED_NONE,
733 eSIR_ED_WEP40,
734 eSIR_ED_WEP104,
735 eSIR_ED_TKIP,
736 eSIR_ED_CCMP,
737 eSIR_ED_WPI,
738 eSIR_ED_AES_128_CMAC,
739 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
740} tAniEdType;
741
742#define WLAN_MAX_KEY_RSC_LEN 16
743#define WLAN_WAPI_KEY_RSC_LEN 16
744
745/// MAX key length when ULA is used
746#define SIR_MAC_MAX_KEY_LENGTH 32
747#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
748
749/// Enum to specify whether key is used
750/// for TX only, RX only or both
751typedef enum eAniKeyDirection
752{
753 eSIR_TX_ONLY,
754 eSIR_RX_ONLY,
755 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700756 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700757 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
758} tAniKeyDirection;
759
760typedef enum eAniWepType
761{
762 eSIR_WEP_STATIC,
763 eSIR_WEP_DYNAMIC,
764 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
765} tAniWepType;
766
767typedef enum eSriLinkState {
768
769 eSIR_LINK_IDLE_STATE = 0,
770 eSIR_LINK_PREASSOC_STATE = 1,
771 eSIR_LINK_POSTASSOC_STATE = 2,
772 eSIR_LINK_AP_STATE = 3,
773 eSIR_LINK_IBSS_STATE = 4,
774
775 /* BT-AMP Case */
776 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
777 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
778 eSIR_LINK_BTAMP_AP_STATE = 7,
779 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530780
Jeff Johnson295189b2012-06-20 16:38:30 -0700781 /* Reserved for HAL Internal Use */
782 eSIR_LINK_LEARN_STATE = 9,
783 eSIR_LINK_SCAN_STATE = 10,
784 eSIR_LINK_FINISH_SCAN_STATE = 11,
785 eSIR_LINK_INIT_CAL_STATE = 12,
786 eSIR_LINK_FINISH_CAL_STATE = 13,
787#ifdef WLAN_FEATURE_P2P
788 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530789 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700790#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700791#ifdef WLAN_FEATURE_ROAM_OFFLOAD
792 eSIR_LINK_FT_PREASSOC_STATE = 16,
793#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700794 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
795} tSirLinkState;
796
797typedef enum
798{
799 HAL_SUMMARY_STATS_INFO = 0x00000001,
800 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
801 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
802 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
803 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530804 HAL_PER_STA_STATS_INFO = 0x00000020,
805 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700806}eHalStatsMask;
807
808/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530809typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700810{
811 BTAMP_EVENT_CONNECTION_START,
812 BTAMP_EVENT_CONNECTION_STOP,
813 BTAMP_EVENT_CONNECTION_TERMINATED,
814 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
815} tBtAmpEventType;
816
817//***************************************************************
818
819
820/*******************PE Statistics*************************/
821typedef enum
822{
823 PE_SUMMARY_STATS_INFO = 0x00000001,
824 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
825 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
826 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
827 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
828 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530829 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700830 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
831}ePEStatsMask;
832
Sunil Dutt8377a382014-05-26 21:18:04 +0530833
834/******************************LINK LAYER Statitics**********************/
835
836typedef int wifi_radio;
837typedef int wifi_channel;
838typedef int wifi_tx_rate;
839
840/* channel operating width */
841typedef enum {
842 WIFI_CHAN_WIDTH_20 = 0,
843 WIFI_CHAN_WIDTH_40 = 1,
844 WIFI_CHAN_WIDTH_80 = 2,
845 WIFI_CHAN_WIDTH_160 = 3,
846 WIFI_CHAN_WIDTH_80P80 = 4,
847 WIFI_CHAN_WIDTH_5 = 5,
848 WIFI_CHAN_WIDTH_10 = 6,
849} wifi_channel_width;
850
851typedef enum {
852 WIFI_DISCONNECTED = 0,
853 WIFI_AUTHENTICATING = 1,
854 WIFI_ASSOCIATING = 2,
855 WIFI_ASSOCIATED = 3,
856 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
857 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
858} wifi_connection_state;
859
860typedef enum {
861 WIFI_ROAMING_IDLE = 0,
862 WIFI_ROAMING_ACTIVE = 1,
863} wifi_roam_state;
864
865typedef enum {
866 WIFI_INTERFACE_STA = 0,
867 WIFI_INTERFACE_SOFTAP = 1,
868 WIFI_INTERFACE_IBSS = 2,
869 WIFI_INTERFACE_P2P_CLIENT = 3,
870 WIFI_INTERFACE_P2P_GO = 4,
871 WIFI_INTERFACE_NAN = 5,
872 WIFI_INTERFACE_MESH = 6,
873 } wifi_interface_mode;
874
875#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
876#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
877#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
878#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
879#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
880#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
881
882typedef PACKED_PRE struct PACKED_POST
883{
884 wifi_interface_mode mode; // interface mode
885 tANI_U8 mac_addr[6]; // interface mac address (self)
886 wifi_connection_state state; // connection state (valid for STA, CLI only)
887 wifi_roam_state roaming; // roaming state
888 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
889 tANI_U8 ssid[33]; // null terminated SSID
890 tANI_U8 bssid[6]; // bssid
891 tANI_U8 ap_country_str[3]; // country string advertised by AP
892 tANI_U8 country_str[3]; // country string for this association
893} wifi_interface_info;
894
895/* channel information */
896typedef PACKED_PRE struct PACKED_POST
897{
898 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
899 wifi_channel center_freq; // primary 20 MHz channel
900 wifi_channel center_freq0; // center frequency (MHz) first segment
901 wifi_channel center_freq1; // center frequency (MHz) second segment
902} wifi_channel_info;
903
904/* wifi rate info */
905typedef PACKED_PRE struct PACKED_POST
906{
907 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
908 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
909 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
910 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
911 // HT/VHT it would be mcs index
912 tANI_U32 reserved :16; // reserved
913 tANI_U32 bitrate; // units of 100 Kbps
914} wifi_rate;
915
916/* channel statistics */
917typedef PACKED_PRE struct PACKED_POST
918{
919 wifi_channel_info channel; // channel
920 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
921 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
922} wifi_channel_stats;
923
924/* radio statistics */
925typedef PACKED_PRE struct PACKED_POST
926{
927 wifi_radio radio; // wifi radio (if multiple radio supported)
928 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
929 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
930 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
931 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
932 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
933 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
934 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
935 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
936 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
937 tANI_U32 num_channels; // number of channels
938 wifi_channel_stats channels[1]; // channel statistics
939} wifi_radio_stat;
940
941/* per rate statistics */
942typedef PACKED_PRE struct PACKED_POST
943{
944 wifi_rate rate; // rate information *
945 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
946 tANI_U32 rx_mpdu; // number of received data pkts
947 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
948 tANI_U32 retries; // total number of data pkt retries *
949 tANI_U32 retries_short; // number of short data pkt retries
950 tANI_U32 retries_long; // number of long data pkt retries
951} wifi_rate_stat;
952
953/* access categories */
954typedef enum {
955 WIFI_AC_VO = 0,
956 WIFI_AC_VI = 1,
957 WIFI_AC_BE = 2,
958 WIFI_AC_BK = 3,
959 WIFI_AC_MAX = 4,
960} wifi_traffic_ac;
961
962/* wifi peer type */
963typedef enum
964{
965 WIFI_PEER_STA,
966 WIFI_PEER_AP,
967 WIFI_PEER_P2P_GO,
968 WIFI_PEER_P2P_CLIENT,
969 WIFI_PEER_NAN,
970 WIFI_PEER_TDLS,
971 WIFI_PEER_INVALID,
972} wifi_peer_type;
973
974/* per peer statistics */
975typedef PACKED_PRE struct PACKED_POST
976{
977 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
978 tANI_U8 peer_mac_address[6]; // mac address
979 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
980 tANI_U32 num_rate; // number of rates
981 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
982} wifi_peer_info;
983
984/* per access category statistics */
985typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530986{
987 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
988 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
989 tANI_U32 rx_mpdu; // number of received unicast mpdus
990 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
991 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
992 tANI_U32 rx_mcast; // number of received multicast data packets
993 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
994 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
995 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
996 tANI_U32 retries; // total number of data pkt retries
997 tANI_U32 retries_short; // number of short data pkt retries
998 tANI_U32 retries_long; // number of long data pkt retries
999 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1000 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1001 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1002 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1003} wifi_wmm_ac_stat;
1004
1005/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1006typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301007{
1008 wifi_interface_info info; // current state of the interface
1009 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1010 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1011 tANI_U32 mgmt_action_rx; // action frames received count
1012 tANI_U32 mgmt_action_tx; // action frames transmit count
1013 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1014 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1015 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1016 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
1017} wifi_iface_stat;
1018
1019/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1020typedef PACKED_PRE struct PACKED_POST
1021{
1022 tANI_U32 num_peers; // number of peers
1023 wifi_peer_info peer_info[1]; // per peer statistics
1024} wifi_peer_stat;
1025
1026/* wifi statistics bitmap for getting statistics */
1027#define WMI_LINK_STATS_RADIO 0x00000001
1028#define WMI_LINK_STATS_IFACE 0x00000002
1029#define WMI_LINK_STATS_ALL_PEER 0x00000004
1030#define WMI_LINK_STATS_PER_PEER 0x00000008
1031
1032/* wifi statistics bitmap for clearing statistics */
1033#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1034#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1035#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1036#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1037#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1038#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1039#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1040#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1041
1042
Jeff Johnson295189b2012-06-20 16:38:30 -07001043/*---------------------------------------------------------------------------
1044 Message definitons - All the messages below need to be packed
1045 ---------------------------------------------------------------------------*/
1046
1047#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1048#pragma pack(push, 1)
1049#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1050#pragma pack(1)
1051#else
1052#endif
1053
1054/// Definition for HAL API Version.
1055typedef PACKED_PRE struct PACKED_POST
1056{
1057 tANI_U8 revision;
1058 tANI_U8 version;
1059 tANI_U8 minor;
1060 tANI_U8 major;
1061} tWcnssWlanVersion, *tpWcnssWlanVersion;
1062
1063/// Definition for Encryption Keys
1064typedef PACKED_PRE struct PACKED_POST
1065{
1066 tANI_U8 keyId;
1067 tANI_U8 unicast; // 0 for multicast
1068 tAniKeyDirection keyDirection;
1069 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1070 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1071 tANI_U16 keyLength;
1072 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1073} tSirKeys, *tpSirKeys;
1074
1075
1076//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1077typedef PACKED_PRE struct PACKED_POST
1078{
1079 /*STA Index*/
1080 tANI_U16 staIdx;
1081
1082 /*Encryption Type used with peer*/
1083 tAniEdType encType;
1084
1085 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301086 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001087
1088 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1089 tANI_U8 defWEPIdx;
1090
Jeff Johnson295189b2012-06-20 16:38:30 -07001091 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301092 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1093
Jeff Johnson295189b2012-06-20 16:38:30 -07001094 /*Control for Replay Count, 1= Single TID based replay count on Tx
1095 0 = Per TID based replay count on TX */
1096 tANI_U8 singleTidRc;
1097
1098} tSetStaKeyParams, *tpSetStaKeyParams;
1099
1100
1101
1102/* 4-byte control message header used by HAL*/
1103typedef PACKED_PRE struct PACKED_POST
1104{
Jeff Johnsone7245742012-09-05 17:12:55 -07001105 tHalHostMsgType msgType:16;
1106 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001107 tANI_U32 msgLen;
1108} tHalMsgHeader, *tpHalMsgHeader;
1109
1110/* Config format required by HAL for each CFG item*/
1111typedef PACKED_PRE struct PACKED_POST
1112{
1113 /* Cfg Id. The Id required by HAL is exported by HAL
1114 * in shared header file between UMAC and HAL.*/
1115 tANI_U16 uCfgId;
1116
Dino Mycle8afbac12014-07-04 22:06:17 +05301117 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001118 * in the TLV format.*/
1119 tANI_U16 uCfgLen;
1120
1121 /* Padding bytes for unaligned address's */
1122 tANI_U16 uCfgPadBytes;
1123
1124 /* Reserve bytes for making cfgVal to align address */
1125 tANI_U16 uCfgReserve;
1126
1127 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1128 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1129} tHalCfg, *tpHalCfg;
1130
1131/*---------------------------------------------------------------------------
1132 WLAN_HAL_START_REQ
1133---------------------------------------------------------------------------*/
1134
1135typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1136{
1137 /* Drive Type - Production or FTM etc */
1138 tDriverType driverType;
1139
1140 /*Length of the config buffer*/
1141 tANI_U32 uConfigBufferLen;
1142
Dino Mycle8afbac12014-07-04 22:06:17 +05301143 /* Following this there is a TLV formatted buffer of length
1144 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001145 * The TLV is expected to be formatted like this:
1146 * 0 15 31 31+CFG_LEN-1 length-1
1147 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1148 */
1149} tHalMacStartParameters, *tpHalMacStartParameters;
1150
1151typedef PACKED_PRE struct PACKED_POST
1152{
1153 /* Note: The length specified in tHalMacStartReqMsg messages should be
1154 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1155 tHalMsgHeader header;
1156 tHalMacStartParameters startReqParams;
1157} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1158
1159/*---------------------------------------------------------------------------
1160 WLAN_HAL_START_RSP
1161---------------------------------------------------------------------------*/
1162
1163typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1164{
1165 /*success or failure */
1166 tANI_U16 status;
1167
1168 /*Max number of STA supported by the device*/
1169 tANI_U8 ucMaxStations;
1170
1171 /*Max number of BSS supported by the device*/
1172 tANI_U8 ucMaxBssids;
1173
1174 /*API Version */
1175 tWcnssWlanVersion wcnssWlanVersion;
1176
1177 /*CRM build information */
1178 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1179
1180 /*hardware/chipset/misc version information */
1181 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1182
1183} tHalMacStartRspParams, *tpHalMacStartRspParams;
1184
1185typedef PACKED_PRE struct PACKED_POST
1186{
1187 tHalMsgHeader header;
1188 tHalMacStartRspParams startRspParams;
1189} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1190
1191/*---------------------------------------------------------------------------
1192 WLAN_HAL_STOP_REQ
1193---------------------------------------------------------------------------*/
1194
1195typedef PACKED_PRE struct PACKED_POST
1196{
1197 /*The reason for which the device is being stopped*/
1198 tHalStopType reason;
1199
1200}tHalMacStopReqParams, *tpHalMacStopReqParams;
1201
1202typedef PACKED_PRE struct PACKED_POST
1203{
1204 tHalMsgHeader header;
1205 tHalMacStopReqParams stopReqParams;
1206} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1207
1208/*---------------------------------------------------------------------------
1209 WLAN_HAL_STOP_RSP
1210---------------------------------------------------------------------------*/
1211
1212typedef PACKED_PRE struct PACKED_POST
1213{
1214 /*success or failure */
1215 tANI_U32 status;
1216
1217}tHalMacStopRspParams, *tpHalMacStopRspParams;
1218
1219typedef PACKED_PRE struct PACKED_POST
1220{
1221 tHalMsgHeader header;
1222 tHalMacStopRspParams stopRspParams;
1223} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1224
1225/*---------------------------------------------------------------------------
1226 WLAN_HAL_UPDATE_CFG_REQ
1227---------------------------------------------------------------------------*/
1228
1229typedef PACKED_PRE struct PACKED_POST
1230{
1231 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1232 tANI_U32 uConfigBufferLen;
1233
Dino Mycle8afbac12014-07-04 22:06:17 +05301234 /* Following this there is a TLV formatted buffer of length
1235 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001236 * The TLV is expected to be formatted like this:
1237 * 0 15 31 31+CFG_LEN-1 length-1
1238 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1239 */
1240} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1241
1242typedef PACKED_PRE struct PACKED_POST
1243{
1244 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1245 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1246 tHalMsgHeader header;
1247 tHalUpdateCfgReqParams updateCfgReqParams;
1248} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1249
1250/*---------------------------------------------------------------------------
1251 WLAN_HAL_UPDATE_CFG_RSP
1252---------------------------------------------------------------------------*/
1253
1254typedef PACKED_PRE struct PACKED_POST
1255{
1256 /* success or failure */
1257 tANI_U32 status;
1258
1259}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1260
1261typedef PACKED_PRE struct PACKED_POST
1262{
1263 tHalMsgHeader header;
1264 tHalUpdateCfgRspParams updateCfgRspParams;
1265} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1266
1267/*---------------------------------------------------------------------------
1268 WLAN_HAL_INIT_SCAN_REQ
1269---------------------------------------------------------------------------*/
1270
1271/// Frame control field format (2 bytes)
1272typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1273{
1274
1275#ifndef ANI_LITTLE_BIT_ENDIAN
1276
1277 tANI_U8 subType :4;
1278 tANI_U8 type :2;
1279 tANI_U8 protVer :2;
1280
1281 tANI_U8 order :1;
1282 tANI_U8 wep :1;
1283 tANI_U8 moreData :1;
1284 tANI_U8 powerMgmt :1;
1285 tANI_U8 retry :1;
1286 tANI_U8 moreFrag :1;
1287 tANI_U8 fromDS :1;
1288 tANI_U8 toDS :1;
1289
1290#else
1291
1292 tANI_U8 protVer :2;
1293 tANI_U8 type :2;
1294 tANI_U8 subType :4;
1295
1296 tANI_U8 toDS :1;
1297 tANI_U8 fromDS :1;
1298 tANI_U8 moreFrag :1;
1299 tANI_U8 retry :1;
1300 tANI_U8 powerMgmt :1;
1301 tANI_U8 moreData :1;
1302 tANI_U8 wep :1;
1303 tANI_U8 order :1;
1304
1305#endif
1306
1307} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1308
1309/// Sequence control field
1310typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1311{
1312 tANI_U8 fragNum : 4;
1313 tANI_U8 seqNumLo : 4;
1314 tANI_U8 seqNumHi : 8;
1315} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1316
1317/// Management header format
1318typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1319{
1320 tSirMacFrameCtl fc;
1321 tANI_U8 durationLo;
1322 tANI_U8 durationHi;
1323 tANI_U8 da[6];
1324 tANI_U8 sa[6];
1325 tANI_U8 bssId[6];
1326 tSirMacSeqCtl seqControl;
1327} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1328
1329/// Scan Entry to hold active BSS idx's
1330typedef __ani_attr_pre_packed struct sSirScanEntry
1331{
1332 tANI_U8 bssIdx[HAL_NUM_BSSID];
1333 tANI_U8 activeBSScnt;
1334}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1335
1336typedef PACKED_PRE struct PACKED_POST {
1337
1338 /*LEARN - AP Role
1339 SCAN - STA Role*/
1340 eHalSysMode scanMode;
1341
1342 /*BSSID of the BSS*/
1343 tSirMacAddr bssid;
1344
1345 /*Whether BSS needs to be notified*/
1346 tANI_U8 notifyBss;
1347
1348 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1349 CTS to Self). Must always be a valid frame type.*/
1350 tANI_U8 frameType;
1351
1352 /*UMAC has the option of passing the MAC frame to be used for notifying
1353 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1354 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1355 frameType.*/
1356 tANI_U8 frameLength;
1357
Dino Mycle8afbac12014-07-04 22:06:17 +05301358 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001359 is non-zero. */
1360 tSirMacMgmtHdr macMgmtHdr;
1361
1362 /*Entry to hold number of active BSS idx's*/
1363 tSirScanEntry scanEntry;
1364
1365} tInitScanParams, * tpInitScanParams;
1366
1367typedef PACKED_PRE struct PACKED_POST
1368{
1369 tHalMsgHeader header;
1370 tInitScanParams initScanParams;
1371} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1372
1373typedef PACKED_PRE struct PACKED_POST {
1374
1375 /*LEARN - AP Role
1376 SCAN - STA Role*/
1377 eHalSysMode scanMode;
1378
1379 /*BSSID of the BSS*/
1380 tSirMacAddr bssid;
1381
1382 /*Whether BSS needs to be notified*/
1383 tANI_U8 notifyBss;
1384
1385 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1386 CTS to Self). Must always be a valid frame type.*/
1387 tANI_U8 frameType;
1388
1389 /*UMAC has the option of passing the MAC frame to be used for notifying
1390 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1391 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1392 frameType.*/
1393 tANI_U8 frameLength;
1394
Dino Mycle8afbac12014-07-04 22:06:17 +05301395 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001396 is non-zero. */
1397 tSirMacMgmtHdr macMgmtHdr;
1398
1399 /*Entry to hold number of active BSS idx's*/
1400 tSirScanEntry scanEntry;
1401
1402 /* Single NoA usage in Scanning */
1403 tANI_U8 useNoA;
1404
1405 /* Indicates the scan duration (in ms) */
1406 tANI_U16 scanDuration;
1407
1408} tInitScanConParams, * tpInitScanConParams;
1409
1410typedef PACKED_PRE struct PACKED_POST
1411{
1412 tHalMsgHeader header;
1413 tInitScanConParams initScanParams;
1414} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1415
1416
1417/*---------------------------------------------------------------------------
1418 WLAN_HAL_INIT_SCAN_RSP
1419---------------------------------------------------------------------------*/
1420
1421typedef PACKED_PRE struct PACKED_POST
1422{
1423 /*success or failure */
1424 tANI_U32 status;
1425
1426}tHalInitScanRspParams, *tpHalInitScanRspParams;
1427
1428typedef PACKED_PRE struct PACKED_POST
1429{
1430 tHalMsgHeader header;
1431 tHalInitScanRspParams initScanRspParams;
1432} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1433
1434/*---------------------------------------------------------------------------
1435 WLAN_HAL_START_SCAN_REQ
1436---------------------------------------------------------------------------*/
1437
Dino Mycle8afbac12014-07-04 22:06:17 +05301438typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001439{
1440 /*Indicates the channel to scan*/
1441 tANI_U8 scanChannel;
1442
1443 } tStartScanParams, * tpStartScanParams;
1444
1445typedef PACKED_PRE struct PACKED_POST
1446{
1447 tHalMsgHeader header;
1448 tStartScanParams startScanParams;
1449} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1450
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001451typedef PACKED_PRE struct PACKED_POST
1452{
1453 tHalMsgHeader header;
1454} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1455
Jeff Johnson295189b2012-06-20 16:38:30 -07001456/*---------------------------------------------------------------------------
1457 WLAN_HAL_START_SCAN_RSP
1458---------------------------------------------------------------------------*/
1459
1460typedef PACKED_PRE struct PACKED_POST
1461{
1462 /*success or failure */
1463 tANI_U32 status;
1464
1465 tANI_U32 startTSF[2];
1466 tPowerdBm txMgmtPower;
1467
1468}tHalStartScanRspParams, *tpHalStartScanRspParams;
1469
1470typedef PACKED_PRE struct PACKED_POST
1471{
1472 tHalMsgHeader header;
1473 tHalStartScanRspParams startScanRspParams;
1474} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1475
1476/*---------------------------------------------------------------------------
1477 WLAN_HAL_END_SCAN_REQ
1478---------------------------------------------------------------------------*/
1479
1480typedef PACKED_PRE struct PACKED_POST
1481{
1482 /*Indicates the channel to stop scanning. Not used really. But retained
1483 for symmetry with "start Scan" message. It can also help in error
1484 check if needed.*/
1485 tANI_U8 scanChannel;
1486
1487} tEndScanParams, *tpEndScanParams;
1488
1489typedef PACKED_PRE struct PACKED_POST
1490{
1491 tHalMsgHeader header;
1492 tEndScanParams endScanParams;
1493} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1494
1495/*---------------------------------------------------------------------------
1496 WLAN_HAL_END_SCAN_RSP
1497---------------------------------------------------------------------------*/
1498
1499typedef PACKED_PRE struct PACKED_POST
1500{
1501 /*success or failure */
1502 tANI_U32 status;
1503
1504}tHalEndScanRspParams, *tpHalEndScanRspParams;
1505
1506typedef PACKED_PRE struct PACKED_POST
1507{
1508 tHalMsgHeader header;
1509 tHalEndScanRspParams endScanRspParams;
1510} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1511
1512/*---------------------------------------------------------------------------
1513 WLAN_HAL_FINISH_SCAN_REQ
1514---------------------------------------------------------------------------*/
1515
1516typedef PACKED_PRE struct PACKED_POST
1517{
1518 /* Identifies the operational state of the AP/STA
1519 * LEARN - AP Role SCAN - STA Role */
1520 eHalSysMode scanMode;
1521
1522 /*Operating channel to tune to.*/
1523 tANI_U8 currentOperChannel;
1524
1525 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1526 40 MHz extension channel in combination with the control channel*/
1527 ePhyChanBondState cbState;
1528
1529 /*BSSID of the BSS*/
1530 tSirMacAddr bssid;
1531
1532 /*Whether BSS needs to be notified*/
1533 tANI_U8 notifyBss;
1534
1535 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1536 CTS to Self). Must always be a valid frame type.*/
1537 tANI_U8 frameType;
1538
1539 /*UMAC has the option of passing the MAC frame to be used for notifying
1540 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1541 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1542 frameType.*/
1543 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301544
1545 /*Following the framelength there is a MAC frame buffer if frameLength
1546 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001547 tSirMacMgmtHdr macMgmtHdr;
1548
1549 /*Entry to hold number of active BSS idx's*/
1550 tSirScanEntry scanEntry;
1551
1552} tFinishScanParams, *tpFinishScanParams;
1553
1554typedef PACKED_PRE struct PACKED_POST
1555{
1556 tHalMsgHeader header;
1557 tFinishScanParams finishScanParams;
1558} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1559
1560/*---------------------------------------------------------------------------
1561 WLAN_HAL_FINISH_SCAN_RSP
1562---------------------------------------------------------------------------*/
1563
1564typedef PACKED_PRE struct PACKED_POST
1565{
1566 /*success or failure */
1567 tANI_U32 status;
1568
1569}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1570
1571typedef PACKED_PRE struct PACKED_POST
1572{
1573 tHalMsgHeader header;
1574 tHalFinishScanRspParams finishScanRspParams;
1575} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1576
Srinivas Dasari42584632014-11-26 20:37:19 +05301577typedef PACKED_PRE struct PACKED_POST
1578{
1579 tSetStaKeyParams keyParams;
1580 uint8 pn[6];
1581} tHalEncConfigParams;
1582
1583typedef PACKED_PRE struct PACKED_POST
1584{
1585 uint16 length;
1586 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1587} tHalDisaPayload;
1588
1589typedef PACKED_PRE struct PACKED_POST
1590{
1591#ifdef BYTE_ORDER_BIG_ENDIAN
1592 uint8 reserved1 : 1;
1593 uint8 ackpolicy : 2;
1594 uint8 eosp : 1;
1595 uint8 tid : 4;
1596
1597 uint8 appsbufferstate : 8;
1598#else
1599 uint8 appsbufferstate : 8;
1600
1601 uint8 tid : 4;
1602 uint8 eosp : 1;
1603 uint8 ackpolicy : 2;
1604 uint8 reserved1 : 1;
1605#endif
1606} tHalQosCtrlFieldType;
1607
1608typedef PACKED_PRE struct PACKED_POST
1609 {
1610#ifdef BYTE_ORDER_BIG_ENDIAN
1611 uint16 subtype : 4;
1612 uint16 type : 2;
1613 uint16 protocol : 2;
1614
1615 uint16 order : 1;
1616 uint16 wep : 1;
1617 uint16 moredata : 1;
1618 uint16 pm : 1;
1619 uint16 retry : 1;
1620 uint16 morefrag : 1;
1621 uint16 fromds : 1;
1622 uint16 tods : 1;
1623#else
1624
1625 uint16 tods : 1;
1626 uint16 fromds : 1;
1627 uint16 morefrag : 1;
1628 uint16 retry : 1;
1629 uint16 pm : 1;
1630 uint16 moredata : 1;
1631 uint16 wep : 1;
1632 uint16 order : 1;
1633
1634 uint16 protocol : 2;
1635 uint16 type : 2;
1636 uint16 subtype : 4;
1637#endif
1638} tHalFrmCtrlType;
1639
1640typedef PACKED_PRE struct PACKED_POST
1641{
1642 /* Frame control field */
1643 tHalFrmCtrlType fc;
1644 /* Duration ID */
1645 uint16 usDurationId;
1646 /* Address 1 field */
1647 uint8 vA1[HAL_MAC_ADDR_LEN];
1648 /* Address 2 field */
1649 uint8 vA2[HAL_MAC_ADDR_LEN];
1650 /* Address 3 field */
1651 uint8 vA3[HAL_MAC_ADDR_LEN];
1652 /* Sequence control field */
1653 uint16 seqNum;
1654 /* Optional A4 address */
1655 uint8 optvA4[HAL_MAC_ADDR_LEN];
1656 /* Optional QOS control field */
1657 tHalQosCtrlFieldType usQosCtrl;
1658} tHal80211Header;
1659
1660typedef PACKED_PRE struct PACKED_POST
1661{
1662 tHal80211Header macHeader;
1663 tHalEncConfigParams encParams;
1664 tHalDisaPayload data;
1665} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1666
1667typedef PACKED_PRE struct PACKED_POST
1668{
1669 tHalMsgHeader header;
1670 tSetEncryptedDataParams encryptedDataParams;
1671} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1672
1673typedef PACKED_PRE struct PACKED_POST
1674{
1675 tANI_U32 status;
1676 tHalDisaPayload encryptedPayload;
1677} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1678
1679typedef PACKED_PRE struct PACKED_POST
1680{
1681 tHalMsgHeader header;
1682 tSetEncryptedDataRspParams encryptedDataRspParams;
1683} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1684
Jeff Johnson295189b2012-06-20 16:38:30 -07001685/*---------------------------------------------------------------------------
1686 WLAN_HAL_CONFIG_STA_REQ
1687---------------------------------------------------------------------------*/
1688
1689typedef PACKED_PRE struct PACKED_POST {
1690 /*
1691 * For Self STA Entry: this represents Self Mode.
1692 * For Peer Stations, this represents the mode of the peer.
1693 * On Station:
1694 * --this mode is updated when PE adds the Self Entry.
1695 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1696 * ON AP:
1697 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1698 * to indicate the self mode of the AP.
1699 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1700 */
1701
1702 tStaRateMode opRateMode;
1703 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1704 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1705 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1706 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1707 tANI_U16 reserved;
1708
1709 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1710 //First 26 bits are reserved for those Titan rates and
1711 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1712 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1713
1714 /*
1715 * 0-76 bits used, remaining reserved
1716 * bits 0-15 and 32 should be set.
1717 */
1718 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1719
1720 /*
1721 * RX Highest Supported Data Rate defines the highest data
1722 * rate that the STA is able to receive, in unites of 1Mbps.
1723 * This value is derived from "Supported MCS Set field" inside
1724 * the HT capability element.
1725 */
1726 tANI_U16 rxHighestDataRate;
1727
1728} tSirSupportedRates, *tpSirSupportedRates;
1729
1730typedef PACKED_PRE struct PACKED_POST
1731{
1732 /*BSSID of STA*/
1733 tSirMacAddr bssId;
1734
1735 /*ASSOC ID, as assigned by UMAC*/
1736 tANI_U16 assocId;
1737
1738 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1739 tANI_U8 staType;
1740
1741 /*Short Preamble Supported.*/
1742 tANI_U8 shortPreambleSupported;
1743
1744 /*MAC Address of STA*/
1745 tSirMacAddr staMac;
1746
1747 /*Listen interval of the STA*/
1748 tANI_U16 listenInterval;
1749
1750 /*Support for 11e/WMM*/
1751 tANI_U8 wmmEnabled;
1752
1753 /*11n HT capable STA*/
1754 tANI_U8 htCapable;
1755
1756 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1757 tANI_U8 txChannelWidthSet;
1758
1759 /*RIFS mode 0 - NA, 1 - Allowed */
1760 tANI_U8 rifsMode;
1761
Dino Mycle8afbac12014-07-04 22:06:17 +05301762 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001763 0 - No Support, 1 - Supported
1764 SG - there is global field */
1765 tANI_U8 lsigTxopProtection;
1766
1767 /*Max Ampdu Size supported by STA. TPE programming.
1768 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1769 tANI_U8 maxAmpduSize;
1770
1771 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1772 tANI_U8 maxAmpduDensity;
1773
1774 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1775 tANI_U8 maxAmsduSize;
1776
1777 /*Short GI support for 40Mhz packets*/
1778 tANI_U8 fShortGI40Mhz;
1779
1780 /*Short GI support for 20Mhz packets*/
1781 tANI_U8 fShortGI20Mhz;
1782
Jeff Johnson295189b2012-06-20 16:38:30 -07001783 /*Robust Management Frame (RMF) enabled/disabled*/
1784 tANI_U8 rmfEnabled;
1785
1786 /* The unicast encryption type in the association */
1787 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001788
1789 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001790 will set this flag in case of RE-ASSOC, where we want to reuse the old
1791 STA ID. 0 = Add, 1 = Update*/
1792 tANI_U8 action;
1793
1794 /*U-APSD Flags: 1b per AC. Encoded as follows:
1795 b7 b6 b5 b4 b3 b2 b1 b0 =
1796 X X X X BE BK VI VO */
1797 tANI_U8 uAPSD;
1798
1799 /*Max SP Length*/
1800 tANI_U8 maxSPLen;
1801
1802 /*11n Green Field preamble support
1803 0 - Not supported, 1 - Supported */
1804 tANI_U8 greenFieldCapable;
1805
1806 /*MIMO Power Save mode*/
1807 tSirMacHTMIMOPowerSaveState mimoPS;
1808
1809 /*Delayed BA Support*/
1810 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001811
Jeff Johnson295189b2012-06-20 16:38:30 -07001812 /*Max AMPDU duration in 32us*/
1813 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001814
Jeff Johnson295189b2012-06-20 16:38:30 -07001815 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1816 it to 0 if AP does not support it. This indication is sent to HAL and
1817 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1818 tANI_U8 fDsssCckMode40Mhz;
1819
1820 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1821 Retained for backward compalibity with existing HAL code*/
1822 tANI_U8 staIdx;
1823
1824 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1825 Retained for backward compalibity with existing HAL code*/
1826 tANI_U8 bssIdx;
1827
1828 tANI_U8 p2pCapableSta;
1829
Jeff Johnsone7245742012-09-05 17:12:55 -07001830 /*Reserved to align next field on a dword boundary*/
1831 tANI_U8 reserved;
1832
1833 /*These rates are the intersection of peer and self capabilities.*/
1834 tSirSupportedRates supportedRates;
1835
Jeff Johnson295189b2012-06-20 16:38:30 -07001836} tConfigStaParams, *tpConfigStaParams;
1837
Jeff Johnsone7245742012-09-05 17:12:55 -07001838/*------------------------------------------------------------------------
1839 * WLAN_HAL_CONFIG_STA_REQ
1840 * ----------------------------------------------------------------------*/
1841
1842typedef PACKED_PRE struct PACKED_POST {
1843 /*
1844 * For Self STA Entry: this represents Self Mode.
1845 * For Peer Stations, this represents the mode of the peer.
1846 * On Station:
1847 * --this mode is updated when PE adds the Self Entry.
1848 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1849 * ON AP:
1850 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1851 * to indicate the self mode of the AP.
1852 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1853 */
1854
1855 tStaRateMode opRateMode;
1856 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1857 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1858 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1859 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1860 tANI_U16 reserved;
1861
1862 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1863 //First 26 bits are reserved for those Titan rates and
1864 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1865 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1866
1867 /*
1868 * 0-76 bits used, remaining reserved
1869 * bits 0-15 and 32 should be set.
1870 */
1871 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1872
1873 /*
1874 * RX Highest Supported Data Rate defines the highest data
1875 * rate that the STA is able to receive, in unites of 1Mbps.
1876 * This value is derived from "Supported MCS Set field" inside
1877 * the HT capability element.
1878 */
1879 tANI_U16 rxHighestDataRate;
1880
1881 /* Indicates the Maximum MCS that can be received for each number
1882 * of spacial streams */
1883 tANI_U16 vhtRxMCSMap;
1884
1885 /*Indicate the highest VHT data rate that the STA is able to receive*/
1886 tANI_U16 vhtRxHighestDataRate;
1887
1888 /* Indicates the Maximum MCS that can be transmitted for each number
1889 * of spacial streams */
1890 tANI_U16 vhtTxMCSMap;
1891
1892 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1893 tANI_U16 vhtTxHighestDataRate;
1894
1895} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1896
1897typedef PACKED_PRE struct PACKED_POST
1898{
1899 /*BSSID of STA*/
1900 tSirMacAddr bssId;
1901
1902 /*ASSOC ID, as assigned by UMAC*/
1903 tANI_U16 assocId;
1904
1905 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1906 tANI_U8 staType;
1907
1908 /*Short Preamble Supported.*/
1909 tANI_U8 shortPreambleSupported;
1910
1911 /*MAC Address of STA*/
1912 tSirMacAddr staMac;
1913
1914 /*Listen interval of the STA*/
1915 tANI_U16 listenInterval;
1916
1917 /*Support for 11e/WMM*/
1918 tANI_U8 wmmEnabled;
1919
1920 /*11n HT capable STA*/
1921 tANI_U8 htCapable;
1922
1923 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1924 tANI_U8 txChannelWidthSet;
1925
1926 /*RIFS mode 0 - NA, 1 - Allowed */
1927 tANI_U8 rifsMode;
1928
1929 /*L-SIG TXOP Protection mechanism
1930 0 - No Support, 1 - Supported
1931 SG - there is global field */
1932 tANI_U8 lsigTxopProtection;
1933
1934 /*Max Ampdu Size supported by STA. TPE programming.
1935 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1936 tANI_U8 maxAmpduSize;
1937
1938 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1939 tANI_U8 maxAmpduDensity;
1940
1941 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1942 tANI_U8 maxAmsduSize;
1943
1944 /*Short GI support for 40Mhz packets*/
1945 tANI_U8 fShortGI40Mhz;
1946
1947 /*Short GI support for 20Mhz packets*/
1948 tANI_U8 fShortGI20Mhz;
1949
1950 /*Robust Management Frame (RMF) enabled/disabled*/
1951 tANI_U8 rmfEnabled;
1952
1953 /* The unicast encryption type in the association */
1954 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301955
1956 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001957 will set this flag in case of RE-ASSOC, where we want to reuse the old
1958 STA ID. 0 = Add, 1 = Update*/
1959 tANI_U8 action;
1960
1961 /*U-APSD Flags: 1b per AC. Encoded as follows:
1962 b7 b6 b5 b4 b3 b2 b1 b0 =
1963 X X X X BE BK VI VO */
1964 tANI_U8 uAPSD;
1965
1966 /*Max SP Length*/
1967 tANI_U8 maxSPLen;
1968
1969 /*11n Green Field preamble support
1970 0 - Not supported, 1 - Supported */
1971 tANI_U8 greenFieldCapable;
1972
1973 /*MIMO Power Save mode*/
1974 tSirMacHTMIMOPowerSaveState mimoPS;
1975
1976 /*Delayed BA Support*/
1977 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301978
Jeff Johnsone7245742012-09-05 17:12:55 -07001979 /*Max AMPDU duration in 32us*/
1980 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301981
Jeff Johnsone7245742012-09-05 17:12:55 -07001982 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1983 it to 0 if AP does not support it. This indication is sent to HAL and
1984 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1985 tANI_U8 fDsssCckMode40Mhz;
1986
1987 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1988 Retained for backward compalibity with existing HAL code*/
1989 tANI_U8 staIdx;
1990
1991 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1992 Retained for backward compalibity with existing HAL code*/
1993 tANI_U8 bssIdx;
1994
1995 tANI_U8 p2pCapableSta;
1996
1997 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001998 tANI_U8 htLdpcEnabled:1;
1999 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002000 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302001 tANI_U8 vhtTxMUBformeeCapable:1;
2002 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002003
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002004 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002005 tSirSupportedRates_V1 supportedRates;
2006
2007 tANI_U8 vhtCapable;
2008 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002009
Jeff Johnsone7245742012-09-05 17:12:55 -07002010} tConfigStaParams_V1, *tpConfigStaParams_V1;
2011
Jeff Johnson295189b2012-06-20 16:38:30 -07002012typedef PACKED_PRE struct PACKED_POST
2013{
2014 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002015 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002016 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002017 tConfigStaParams_V1 configStaParams_V1;
2018 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002019} tConfigStaReqMsg, *tpConfigStaReqMsg;
2020
2021/*---------------------------------------------------------------------------
2022 WLAN_HAL_CONFIG_STA_RSP
2023---------------------------------------------------------------------------*/
2024
2025typedef PACKED_PRE struct PACKED_POST
2026{
2027 /*success or failure */
2028 tANI_U32 status;
2029
2030 /* Station index; valid only when 'status' field value SUCCESS */
2031 tANI_U8 staIdx;
2032
2033 /* BSSID Index of BSS to which the station is associated */
2034 tANI_U8 bssIdx;
2035
2036 /* DPU Index for PTK */
2037 tANI_U8 dpuIndex;
2038
Dino Mycle8afbac12014-07-04 22:06:17 +05302039 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002040 tANI_U8 bcastDpuIndex;
2041
2042 /*DPU Index for IGTK */
2043 tANI_U8 bcastMgmtDpuIdx;
2044
2045 /*PTK DPU signature*/
2046 tANI_U8 ucUcastSig;
2047
2048 /*GTK DPU isignature*/
2049 tANI_U8 ucBcastSig;
2050
2051 /* IGTK DPU signature*/
2052 tANI_U8 ucMgmtSig;
2053
2054 tANI_U8 p2pCapableSta;
2055
2056}tConfigStaRspParams, *tpConfigStaRspParams;
2057
2058typedef PACKED_PRE struct PACKED_POST
2059{
2060 tHalMsgHeader header;
2061 tConfigStaRspParams configStaRspParams;
2062}tConfigStaRspMsg, *tpConfigStaRspMsg;
2063
2064/*---------------------------------------------------------------------------
2065 WLAN_HAL_DELETE_STA_REQ
2066---------------------------------------------------------------------------*/
2067
2068/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302069typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002070{
2071 /* Index of STA to delete */
2072 tANI_U8 staIdx;
2073} tDeleteStaParams, *tpDeleteStaParams;
2074
2075/* Delete STA Request message*/
2076typedef PACKED_PRE struct PACKED_POST
2077{
2078 tHalMsgHeader header;
2079 tDeleteStaParams delStaParams;
2080} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2081
2082/*---------------------------------------------------------------------------
2083 WLAN_HAL_DELETE_STA_RSP
2084---------------------------------------------------------------------------*/
2085
2086/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302087typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002088{
2089 /*success or failure */
2090 tANI_U32 status;
2091
2092 /* Index of STA deleted */
2093 tANI_U8 staId;
2094} tDeleteStaRspParams, *tpDeleteStaRspParams;
2095
2096/* Delete STA Response message*/
2097typedef PACKED_PRE struct PACKED_POST
2098{
2099 tHalMsgHeader header;
2100 tDeleteStaRspParams delStaRspParams;
2101} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2102
2103/*---------------------------------------------------------------------------
2104 WLAN_HAL_CONFIG_BSS_REQ
2105---------------------------------------------------------------------------*/
2106
2107//12 Bytes long because this structure can be used to represent rate
2108//and extended rate set IEs. The parser assume this to be at least 12
2109typedef __ani_attr_pre_packed struct sSirMacRateSet
2110{
2111 tANI_U8 numRates;
2112 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2113} __ani_attr_packed tSirMacRateSet;
2114
2115// access category record
2116typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2117{
2118#ifndef ANI_LITTLE_BIT_ENDIAN
2119 tANI_U8 rsvd : 1;
2120 tANI_U8 aci : 2;
2121 tANI_U8 acm : 1;
2122 tANI_U8 aifsn : 4;
2123#else
2124 tANI_U8 aifsn : 4;
2125 tANI_U8 acm : 1;
2126 tANI_U8 aci : 2;
2127 tANI_U8 rsvd : 1;
2128#endif
2129} __ani_attr_packed tSirMacAciAifsn;
2130
2131// contention window size
2132typedef __ani_attr_pre_packed struct sSirMacCW
2133{
2134#ifndef ANI_LITTLE_BIT_ENDIAN
2135 tANI_U8 max : 4;
2136 tANI_U8 min : 4;
2137#else
2138 tANI_U8 min : 4;
2139 tANI_U8 max : 4;
2140#endif
2141} __ani_attr_packed tSirMacCW;
2142
2143typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2144{
2145 tSirMacAciAifsn aci;
2146 tSirMacCW cw;
2147 tANI_U16 txoplimit;
2148} __ani_attr_packed tSirMacEdcaParamRecord;
2149
2150typedef __ani_attr_pre_packed struct sSirMacSSid
2151{
2152 tANI_U8 length;
2153 tANI_U8 ssId[32];
2154} __ani_attr_packed tSirMacSSid;
2155
2156// Concurrency role. These are generic IDs that identify the various roles
2157// in the software system.
2158typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302159 HAL_STA_MODE=0,
2160 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002161 HAL_P2P_CLIENT_MODE,
2162 HAL_P2P_GO_MODE,
2163 HAL_MONITOR_MODE,
2164} tHalConMode;
2165
2166//This is a bit pattern to be set for each mode
2167//bit 0 - sta mode
2168//bit 1 - ap mode
2169//bit 2 - p2p client mode
2170//bit 3 - p2p go mode
2171typedef enum
2172{
Dino Mycle8afbac12014-07-04 22:06:17 +05302173 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002174 HAL_SAP=2,
2175 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2176 HAL_P2P_CLIENT=4,
2177 HAL_P2P_GO=8,
2178 HAL_MAX_CONCURRENCY_PERSONA=4
2179} tHalConcurrencyMode;
2180
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002181// IFACE PERSONA for different Operating modes
2182typedef enum
2183{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002184 HAL_IFACE_UNKNOWN=0,
2185 HAL_IFACE_STA_MODE=1,
2186 HAL_IFACE_P2P_MODE=2,
2187 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002188} tHalIfacePersona;
2189
Jeff Johnson295189b2012-06-20 16:38:30 -07002190typedef PACKED_PRE struct PACKED_POST
2191{
2192 /* BSSID */
2193 tSirMacAddr bssId;
2194
Jeff Johnson295189b2012-06-20 16:38:30 -07002195 /* Self Mac Address */
2196 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002197
2198 /* BSS type */
2199 tSirBssType bssType;
2200
2201 /*Operational Mode: AP =0, STA = 1*/
2202 tANI_U8 operMode;
2203
2204 /*Network Type*/
2205 tSirNwType nwType;
2206
2207 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2208 tANI_U8 shortSlotTimeSupported;
2209
2210 /*Co-exist with 11a STA*/
2211 tANI_U8 llaCoexist;
2212
2213 /*Co-exist with 11b STA*/
2214 tANI_U8 llbCoexist;
2215
2216 /*Co-exist with 11g STA*/
2217 tANI_U8 llgCoexist;
2218
2219 /*Coexistence with 11n STA*/
2220 tANI_U8 ht20Coexist;
2221
2222 /*Non GF coexist flag*/
2223 tANI_U8 llnNonGFCoexist;
2224
2225 /*TXOP protection support*/
2226 tANI_U8 fLsigTXOPProtectionFullSupport;
2227
2228 /*RIFS mode*/
2229 tANI_U8 fRIFSMode;
2230
2231 /*Beacon Interval in TU*/
2232 tSirMacBeaconInterval beaconInterval;
2233
2234 /*DTIM period*/
2235 tANI_U8 dtimPeriod;
2236
2237 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2238 tANI_U8 txChannelWidthSet;
2239
2240 /*Operating channel*/
2241 tANI_U8 currentOperChannel;
2242
2243 /*Extension channel for channel bonding*/
2244 tANI_U8 currentExtChannel;
2245
2246 /*Reserved to align next field on a dword boundary*/
2247 tANI_U8 reserved;
2248
Jeff Johnsone7245742012-09-05 17:12:55 -07002249 /*SSID of the BSS*/
2250 tSirMacSSid ssId;
2251
2252 /*HAL should update the existing BSS entry, if this flag is set.
2253 UMAC will set this flag in case of reassoc, where we want to resue the
2254 the old BSSID and still return success 0 = Add, 1 = Update*/
2255 tANI_U8 action;
2256
2257 /* MAC Rate Set */
2258 tSirMacRateSet rateSet;
2259
2260 /*Enable/Disable HT capabilities of the BSS*/
2261 tANI_U8 htCapable;
2262
2263 // Enable/Disable OBSS protection
2264 tANI_U8 obssProtEnabled;
2265
2266 /*RMF enabled/disabled*/
2267 tANI_U8 rmfEnabled;
2268
2269 /*HT Operating Mode operating mode of the 802.11n STA*/
2270 tSirMacHTOperatingMode htOperMode;
2271
2272 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2273 tANI_U8 dualCTSProtection;
2274
2275 /* Probe Response Max retries */
2276 tANI_U8 ucMaxProbeRespRetryLimit;
2277
2278 /* To Enable Hidden ssid */
2279 tANI_U8 bHiddenSSIDEn;
2280
2281 /* To Enable Disable FW Proxy Probe Resp */
2282 tANI_U8 bProxyProbeRespEn;
2283
2284 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2285 EDCA params or might not desire to apply EDCA params during config BSS.
2286 0 implies Not Valid ; Non-Zero implies valid*/
2287 tANI_U8 edcaParamsValid;
2288
2289 /*EDCA Parameters for Best Effort Access Category*/
2290 tSirMacEdcaParamRecord acbe;
2291
2292 /*EDCA Parameters forBackground Access Category*/
2293 tSirMacEdcaParamRecord acbk;
2294
2295 /*EDCA Parameters for Video Access Category*/
2296 tSirMacEdcaParamRecord acvi;
2297
2298 /*EDCA Parameters for Voice Access Category*/
2299 tSirMacEdcaParamRecord acvo;
2300
2301#ifdef WLAN_FEATURE_VOWIFI_11R
2302 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2303 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2304#endif
2305
2306 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2307 tANI_U8 halPersona;
2308
2309 tANI_U8 bSpectrumMgtEnable;
2310
2311 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2312 tANI_S8 txMgmtPower;
2313 /*maxTxPower has max power to be used after applying the power constraint if any */
2314 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002315 /*Context of the station being added in HW
2316 Add a STA entry for "itself" -
2317 On AP - Add the AP itself in an "STA context"
2318 On STA - Add the AP to which this STA is joining in an "STA context" */
2319 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002320} tConfigBssParams, * tpConfigBssParams;
2321
2322
2323/*--------------------------------------------------------------------------
2324 * WLAN_HAL_CONFIG_BSS_REQ
2325 *--------------------------------------------------------------------------*/
2326typedef PACKED_PRE struct PACKED_POST
2327{
2328 /* BSSID */
2329 tSirMacAddr bssId;
2330
Jeff Johnsone7245742012-09-05 17:12:55 -07002331 /* Self Mac Address */
2332 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002333
2334 /* BSS type */
2335 tSirBssType bssType;
2336
2337 /*Operational Mode: AP =0, STA = 1*/
2338 tANI_U8 operMode;
2339
2340 /*Network Type*/
2341 tSirNwType nwType;
2342
2343 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2344 tANI_U8 shortSlotTimeSupported;
2345
2346 /*Co-exist with 11a STA*/
2347 tANI_U8 llaCoexist;
2348
2349 /*Co-exist with 11b STA*/
2350 tANI_U8 llbCoexist;
2351
2352 /*Co-exist with 11g STA*/
2353 tANI_U8 llgCoexist;
2354
2355 /*Coexistence with 11n STA*/
2356 tANI_U8 ht20Coexist;
2357
2358 /*Non GF coexist flag*/
2359 tANI_U8 llnNonGFCoexist;
2360
2361 /*TXOP protection support*/
2362 tANI_U8 fLsigTXOPProtectionFullSupport;
2363 /*RIFS mode*/
2364 tANI_U8 fRIFSMode;
2365
2366 /*Beacon Interval in TU*/
2367 tSirMacBeaconInterval beaconInterval;
2368
2369 /*DTIM period*/
2370 tANI_U8 dtimPeriod;
2371
2372 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2373 tANI_U8 txChannelWidthSet;
2374
2375 /*Operating channel*/
2376 tANI_U8 currentOperChannel;
2377
2378 /*Extension channel for channel bonding*/
2379 tANI_U8 currentExtChannel;
2380
2381 /*Reserved to align next field on a dword boundary*/
2382 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002383
2384 /*SSID of the BSS*/
2385 tSirMacSSid ssId;
2386
2387 /*HAL should update the existing BSS entry, if this flag is set.
2388 UMAC will set this flag in case of reassoc, where we want to resue the
2389 the old BSSID and still return success 0 = Add, 1 = Update*/
2390 tANI_U8 action;
2391
2392 /* MAC Rate Set */
2393 tSirMacRateSet rateSet;
2394
2395 /*Enable/Disable HT capabilities of the BSS*/
2396 tANI_U8 htCapable;
2397
2398 // Enable/Disable OBSS protection
2399 tANI_U8 obssProtEnabled;
2400
2401 /*RMF enabled/disabled*/
2402 tANI_U8 rmfEnabled;
2403
2404 /*HT Operating Mode operating mode of the 802.11n STA*/
2405 tSirMacHTOperatingMode htOperMode;
2406
2407 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2408 tANI_U8 dualCTSProtection;
2409
2410 /* Probe Response Max retries */
2411 tANI_U8 ucMaxProbeRespRetryLimit;
2412
2413 /* To Enable Hidden ssid */
2414 tANI_U8 bHiddenSSIDEn;
2415
2416 /* To Enable Disable FW Proxy Probe Resp */
2417 tANI_U8 bProxyProbeRespEn;
2418
Dino Mycle8afbac12014-07-04 22:06:17 +05302419 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2420 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002421 0 implies Not Valid ; Non-Zero implies valid*/
2422 tANI_U8 edcaParamsValid;
2423
2424 /*EDCA Parameters for Best Effort Access Category*/
2425 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302426
Jeff Johnson295189b2012-06-20 16:38:30 -07002427 /*EDCA Parameters forBackground Access Category*/
2428 tSirMacEdcaParamRecord acbk;
2429
2430 /*EDCA Parameters for Video Access Category*/
2431 tSirMacEdcaParamRecord acvi;
2432
2433 /*EDCA Parameters for Voice Access Category*/
2434 tSirMacEdcaParamRecord acvo;
2435
2436#ifdef WLAN_FEATURE_VOWIFI_11R
2437 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2438 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2439#endif
2440
Dino Mycle8afbac12014-07-04 22:06:17 +05302441 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002442 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302443
Jeff Johnson295189b2012-06-20 16:38:30 -07002444 tANI_U8 bSpectrumMgtEnable;
2445
2446 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2447 tANI_S8 txMgmtPower;
2448 /*maxTxPower has max power to be used after applying the power constraint if any */
2449 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002450 /*Context of the station being added in HW
2451 Add a STA entry for "itself" -
2452 On AP - Add the AP itself in an "STA context"
2453 On STA - Add the AP to which this STA is joining in an "STA context" */
2454 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302455
Jeff Johnsone7245742012-09-05 17:12:55 -07002456 tANI_U8 vhtCapable;
2457 tANI_U8 vhtTxChannelWidthSet;
2458} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002459
2460typedef PACKED_PRE struct PACKED_POST
2461{
2462 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002463 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002464 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002465 tConfigBssParams_V1 configBssParams_V1;
2466 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002467} tConfigBssReqMsg, *tpConfigBssReqMsg;
2468
2469/*---------------------------------------------------------------------------
2470 WLAN_HAL_CONFIG_BSS_RSP
2471---------------------------------------------------------------------------*/
2472
2473typedef PACKED_PRE struct PACKED_POST
2474{
2475 /* Success or Failure */
2476 tANI_U32 status;
2477
2478 /* BSS index allocated by HAL */
2479 tANI_U8 bssIdx;
2480
2481 /* DPU descriptor index for PTK */
2482 tANI_U8 dpuDescIndx;
2483
2484 /* PTK DPU signature */
2485 tANI_U8 ucastDpuSignature;
2486
2487 /* DPU descriptor index for GTK*/
2488 tANI_U8 bcastDpuDescIndx;
2489
2490 /* GTK DPU signature */
2491 tANI_U8 bcastDpuSignature;
2492
2493 /*DPU descriptor for IGTK*/
2494 tANI_U8 mgmtDpuDescIndx;
2495
2496 /* IGTK DPU signature */
2497 tANI_U8 mgmtDpuSignature;
2498
2499 /* Station Index for BSS entry*/
2500 tANI_U8 bssStaIdx;
2501
2502 /* Self station index for this BSS */
2503 tANI_U8 bssSelfStaIdx;
2504
2505 /* Bcast station for buffering bcast frames in AP role */
2506 tANI_U8 bssBcastStaIdx;
2507
2508 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2509 tSirMacAddr staMac;
2510
2511 /*HAL fills in the tx power used for mgmt frames in this field. */
2512 tANI_S8 txMgmtPower;
2513
2514} tConfigBssRspParams, * tpConfigBssRspParams;
2515
2516typedef PACKED_PRE struct PACKED_POST
2517{
2518 tHalMsgHeader header;
2519 tConfigBssRspParams configBssRspParams;
2520} tConfigBssRspMsg, *tpConfigBssRspMsg;
2521
2522/*---------------------------------------------------------------------------
2523 WLAN_HAL_DELETE_BSS_REQ
2524---------------------------------------------------------------------------*/
2525
2526typedef PACKED_PRE struct PACKED_POST
2527{
2528 /* BSS index to be deleted */
2529 tANI_U8 bssIdx;
2530
2531} tDeleteBssParams, *tpDeleteBssParams;
2532
2533typedef PACKED_PRE struct PACKED_POST
2534{
2535 tHalMsgHeader header;
2536 tDeleteBssParams deleteBssParams;
2537} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2538
2539/*---------------------------------------------------------------------------
2540 WLAN_HAL_DELETE_BSS_RSP
2541---------------------------------------------------------------------------*/
2542
2543typedef PACKED_PRE struct PACKED_POST
2544{
2545 /* Success or Failure */
2546 tANI_U32 status;
2547
2548 /* BSS index that has been deleted */
2549 tANI_U8 bssIdx;
2550
2551} tDeleteBssRspParams, *tpDeleteBssRspParams;
2552
2553typedef PACKED_PRE struct PACKED_POST
2554{
2555 tHalMsgHeader header;
2556 tDeleteBssRspParams deleteBssRspParams;
2557} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2558
2559/*---------------------------------------------------------------------------
2560 WLAN_HAL_JOIN_REQ
2561---------------------------------------------------------------------------*/
2562
2563typedef PACKED_PRE struct PACKED_POST
2564{
2565 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302566 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002567
2568 /*Indicates the channel to switch to.*/
2569 tANI_U8 ucChannel;
2570
2571 /* Self STA MAC */
2572 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302573
Jeff Johnson295189b2012-06-20 16:38:30 -07002574 /*Local power constraint*/
2575 tANI_U8 ucLocalPowerConstraint;
2576
2577 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002578 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002579
2580 /*link State*/
2581 tSirLinkState linkState;
2582
2583 /* Max TX power */
2584 tANI_S8 maxTxPower;
2585
2586} tHalJoinReqParams, *tpHalJoinReqParams;
2587
2588typedef PACKED_PRE struct PACKED_POST
2589{
2590 tHalMsgHeader header;
2591 tHalJoinReqParams joinReqParams;
2592} tHalJoinReqMsg, *tpHalJoinReqMsg;
2593
2594/*---------------------------------------------------------------------------
2595 WLAN_HAL_JOIN_RSP
2596---------------------------------------------------------------------------*/
2597
2598typedef PACKED_PRE struct PACKED_POST
2599{
2600 /*success or failure */
2601 tANI_U32 status;
2602
2603 /* HAL fills in the tx power used for mgmt frames in this field */
2604 tPowerdBm txMgmtPower;
2605
2606}tHalJoinRspParams, *tpHalJoinRspParams;
2607
2608typedef PACKED_PRE struct PACKED_POST
2609{
2610 tHalMsgHeader header;
2611 tHalJoinRspParams joinRspParams;
2612}tHalJoinRspMsg, *tpHalJoinRspMsg;
2613
2614/*---------------------------------------------------------------------------
2615 WLAN_HAL_POST_ASSOC_REQ
2616---------------------------------------------------------------------------*/
2617
2618typedef PACKED_PRE struct PACKED_POST
2619{
2620 tConfigStaParams configStaParams;
2621 tConfigBssParams configBssParams;
2622} tPostAssocReqParams, *tpPostAssocReqParams;
2623
2624typedef PACKED_PRE struct PACKED_POST
2625{
2626 tHalMsgHeader header;
2627 tPostAssocReqParams postAssocReqParams;
2628} tPostAssocReqMsg, *tpPostAssocReqMsg;
2629
2630/*---------------------------------------------------------------------------
2631 WLAN_HAL_POST_ASSOC_RSP
2632---------------------------------------------------------------------------*/
2633
2634typedef PACKED_PRE struct PACKED_POST
2635{
2636 tConfigStaRspParams configStaRspParams;
2637 tConfigBssRspParams configBssRspParams;
2638} tPostAssocRspParams, *tpPostAssocRspParams;
2639
2640typedef PACKED_PRE struct PACKED_POST
2641{
2642 tHalMsgHeader header;
2643 tPostAssocRspParams postAssocRspParams;
2644} tPostAssocRspMsg, *tpPostAssocRspMsg;
2645
2646/*---------------------------------------------------------------------------
2647 WLAN_HAL_SET_BSSKEY_REQ
2648---------------------------------------------------------------------------*/
2649
2650/*
2651 * This is used by PE to create a set of WEP keys for a given BSS.
2652 */
2653typedef PACKED_PRE struct PACKED_POST
2654{
2655 /*BSS Index of the BSS*/
2656 tANI_U8 bssIdx;
2657
2658 /*Encryption Type used with peer*/
2659 tAniEdType encType;
2660
2661 /*Number of keys*/
2662 tANI_U8 numKeys;
2663
2664 /*Array of keys.*/
2665 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302666
Jeff Johnson295189b2012-06-20 16:38:30 -07002667 /*Control for Replay Count, 1= Single TID based replay count on Tx
2668 0 = Per TID based replay count on TX */
2669 tANI_U8 singleTidRc;
2670} tSetBssKeyParams, *tpSetBssKeyParams;
2671
2672typedef PACKED_PRE struct PACKED_POST
2673{
2674 tHalMsgHeader header;
2675 tSetBssKeyParams setBssKeyParams;
2676} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2677
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002678/* tagged version of set bss key */
2679typedef PACKED_PRE struct PACKED_POST
2680{
2681 tSetBssKeyReqMsg Msg;
2682 uint32 Tag;
2683} tSetBssKeyReqMsgTagged;
2684
Jeff Johnson295189b2012-06-20 16:38:30 -07002685/*---------------------------------------------------------------------------
2686 WLAN_HAL_SET_BSSKEY_RSP
2687---------------------------------------------------------------------------*/
2688typedef PACKED_PRE struct PACKED_POST
2689{
2690 /*success or failure */
2691 tANI_U32 status;
2692
2693} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2694
2695typedef PACKED_PRE struct PACKED_POST
2696{
2697 tHalMsgHeader header;
2698 tSetBssKeyRspParams setBssKeyRspParams;
2699} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2700
2701/*---------------------------------------------------------------------------
2702 WLAN_HAL_SET_STAKEY_REQ,
2703---------------------------------------------------------------------------*/
2704
2705/*
2706 * This is used by PE to configure the key information on a given station.
2707 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2708 * a preconfigured key from a BSS the station assoicated with; otherwise
2709 * a new key descriptor is created based on the key field.
2710 */
2711
2712typedef PACKED_PRE struct PACKED_POST
2713{
2714 tHalMsgHeader header;
2715 tSetStaKeyParams setStaKeyParams;
2716} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2717
2718/*---------------------------------------------------------------------------
2719 WLAN_HAL_SET_STAKEY_RSP,
2720---------------------------------------------------------------------------*/
2721typedef PACKED_PRE struct PACKED_POST
2722{
2723 /*success or failure */
2724 tANI_U32 status;
2725
2726} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2727
2728typedef PACKED_PRE struct PACKED_POST
2729{
2730 tHalMsgHeader header;
2731 tSetStaKeyRspParams setStaKeyRspParams;
2732} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2733
2734/*---------------------------------------------------------------------------
2735 WLAN_HAL_RMV_BSSKEY_REQ,
2736---------------------------------------------------------------------------*/
2737/*
2738 * This is used by PE to remove keys for a given BSS.
2739 */
2740typedef PACKED_PRE struct PACKED_POST
2741
2742{
2743 /*BSS Index of the BSS*/
2744 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302745
Jeff Johnson295189b2012-06-20 16:38:30 -07002746 /*Encryption Type used with peer*/
2747 tAniEdType encType;
2748
2749 /*Key Id*/
2750 tANI_U8 keyId;
2751
2752 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2753 tAniWepType wepType;
2754
2755} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2756
2757typedef PACKED_PRE struct PACKED_POST
2758{
2759 tHalMsgHeader header;
2760 tRemoveBssKeyParams removeBssKeyParams;
2761} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2762
2763/*---------------------------------------------------------------------------
2764 WLAN_HAL_RMV_BSSKEY_RSP,
2765---------------------------------------------------------------------------*/
2766typedef PACKED_PRE struct PACKED_POST
2767{
2768 /*success or failure */
2769 tANI_U32 status;
2770
2771} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2772
2773typedef PACKED_PRE struct PACKED_POST
2774{
2775 tHalMsgHeader header;
2776 tRemoveBssKeyRspParams removeBssKeyRspParams;
2777} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2778
2779/*---------------------------------------------------------------------------
2780 WLAN_HAL_RMV_STAKEY_REQ,
2781---------------------------------------------------------------------------*/
2782/*
2783 * This is used by PE to Remove the key information on a given station.
2784 */
2785typedef PACKED_PRE struct PACKED_POST
2786{
2787 /*STA Index*/
2788 tANI_U16 staIdx;
2789
2790 /*Encryption Type used with peer*/
2791 tAniEdType encType;
2792
2793 /*Key Id*/
2794 tANI_U8 keyId;
2795
2796 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2797 the same key is used for both broadcast and unicast.*/
2798 tANI_BOOLEAN unicast;
2799
2800} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2801
2802typedef PACKED_PRE struct PACKED_POST
2803{
2804 tHalMsgHeader header;
2805 tRemoveStaKeyParams removeStaKeyParams;
2806} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2807
2808/*---------------------------------------------------------------------------
2809 WLAN_HAL_RMV_STAKEY_RSP,
2810---------------------------------------------------------------------------*/
2811typedef PACKED_PRE struct PACKED_POST
2812{
2813 /*success or failure */
2814 tANI_U32 status;
2815} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2816
2817typedef PACKED_PRE struct PACKED_POST
2818{
2819 tHalMsgHeader header;
2820 tRemoveStaKeyRspParams removeStaKeyRspParams;
2821} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2822
Jeff Johnsone7245742012-09-05 17:12:55 -07002823#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002824
Jeff Johnsone7245742012-09-05 17:12:55 -07002825#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002826#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002827#endif
2828
2829#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002830#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002831#endif
2832
2833/*-------------------------------------------------------------------------
2834WLAN_HAL_START_OEM_DATA_REQ
2835--------------------------------------------------------------------------*/
2836typedef PACKED_PRE struct PACKED_POST
2837{
2838 tANI_U32 status;
2839 tSirMacAddr selfMacAddr;
2840 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2841} tStartOemDataReqParams, *tpStartOemDataReqParams;
2842
2843typedef PACKED_PRE struct PACKED_POST
2844{
2845 tHalMsgHeader header;
2846 tStartOemDataReqParams startOemDataReqParams;
2847} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2848
2849/*-------------------------------------------------------------------------
2850WLAN_HAL_START_OEM_DATA_RSP
2851--------------------------------------------------------------------------*/
2852
2853typedef PACKED_PRE struct PACKED_POST
2854{
2855 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2856} tStartOemDataRspParams, *tpStartOemDataRspParams;
2857
2858typedef PACKED_PRE struct PACKED_POST
2859{
2860 tHalMsgHeader header;
2861 tStartOemDataRspParams startOemDataRspParams;
2862} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2863
2864#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002865
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002866/*---------------------------------------------------------------------------
2867WLAN_HAL_CH_SWITCH_V1_REQ
2868---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002869
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002870typedef PACKED_PRE struct PACKED_POST
2871{
2872 /* Channel number */
2873 tANI_U8 channelNumber;
2874
2875 /* Local power constraint */
2876 tANI_U8 localPowerConstraint;
2877
2878 /*Secondary channel offset */
2879 ePhyChanBondState secondaryChannelOffset;
2880
2881 //HAL fills in the tx power used for mgmt frames in this field.
2882 tPowerdBm txMgmtPower;
2883
2884 /* Max TX power */
2885 tPowerdBm maxTxPower;
2886
2887 /* Self STA MAC */
2888 tSirMacAddr selfStaMacAddr;
2889
2890 /*VO WIFI comment: BSSID needed to identify session. As the request has
2891 * power constraints, this should be applied only to that session
2892 * Since MTU timing and EDCA are sessionized, this struct needs to be
2893 * sessionized and bssid needs to be out of the VOWifi feature flag
2894 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002895 * mantain backward compatbility
2896 * by way of ignoring if using new host/old FW or old host/new FW since
2897 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002898 */
2899 tSirMacAddr bssId;
2900
2901 /* Source of Channel Switch */
2902 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002903
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002904} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 tHalMsgHeader header;
2909 tSwitchChannelParams_V1 switchChannelParams_V1;
2910} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2911
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002912/*---------------------------------------------------------------------------
2913WLAN_HAL_CH_SWITCH_V1_RSP
2914---------------------------------------------------------------------------*/
2915
2916typedef PACKED_PRE struct PACKED_POST
2917{
2918 /* Status */
2919 tANI_U32 status;
2920
2921 /* Channel number - same as in request*/
2922 tANI_U8 channelNumber;
2923
2924 /* HAL fills in the tx power used for mgmt frames in this field */
2925 tPowerdBm txMgmtPower;
2926
2927 /* BSSID needed to identify session - same as in request*/
2928 tSirMacAddr bssId;
2929
2930 /* Source of Channel Switch */
2931 eHalChanSwitchSource channelSwitchSrc;
2932
2933} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2934
2935typedef PACKED_PRE struct PACKED_POST
2936{
2937 tHalMsgHeader header;
2938 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2939} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002940
2941/*---------------------------------------------------------------------------
2942WLAN_HAL_CH_SWITCH_REQ
2943---------------------------------------------------------------------------*/
2944
2945typedef PACKED_PRE struct PACKED_POST
2946{
2947 /* Channel number */
2948 tANI_U8 channelNumber;
2949
2950 /* Local power constraint */
2951 tANI_U8 localPowerConstraint;
2952
2953 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002954 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002955
2956 //HAL fills in the tx power used for mgmt frames in this field.
2957 tPowerdBm txMgmtPower;
2958
2959 /* Max TX power */
2960 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302961
Jeff Johnson295189b2012-06-20 16:38:30 -07002962 /* Self STA MAC */
2963 tSirMacAddr selfStaMacAddr;
2964
2965 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2966 this should be applied only to that session*/
2967 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2968 * bssid needs to be out of the VOWifi feature flag */
2969 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2970 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2971 */
2972 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302973
Jeff Johnson295189b2012-06-20 16:38:30 -07002974}tSwitchChannelParams, *tpSwitchChannelParams;
2975
2976typedef PACKED_PRE struct PACKED_POST
2977{
2978 tHalMsgHeader header;
2979 tSwitchChannelParams switchChannelParams;
2980} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2981
2982/*---------------------------------------------------------------------------
2983WLAN_HAL_CH_SWITCH_RSP
2984---------------------------------------------------------------------------*/
2985
2986typedef PACKED_PRE struct PACKED_POST
2987{
2988 /* Status */
2989 tANI_U32 status;
2990
2991 /* Channel number - same as in request*/
2992 tANI_U8 channelNumber;
2993
2994 /* HAL fills in the tx power used for mgmt frames in this field */
2995 tPowerdBm txMgmtPower;
2996
2997 /* BSSID needed to identify session - same as in request*/
2998 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302999
Jeff Johnson295189b2012-06-20 16:38:30 -07003000}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3001
3002typedef PACKED_PRE struct PACKED_POST
3003{
3004 tHalMsgHeader header;
3005 tSwitchChannelRspParams switchChannelRspParams;
3006} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3007
3008/*---------------------------------------------------------------------------
3009WLAN_HAL_UPD_EDCA_PARAMS_REQ
3010---------------------------------------------------------------------------*/
3011
3012typedef PACKED_PRE struct PACKED_POST
3013{
3014 /*BSS Index*/
3015 tANI_U16 bssIdx;
3016
3017 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303018 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003019
3020 /* Background */
3021 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303022
Jeff Johnson295189b2012-06-20 16:38:30 -07003023 /* Video */
3024 tSirMacEdcaParamRecord acvi;
3025
3026 /* Voice */
3027 tSirMacEdcaParamRecord acvo;
3028
3029} tEdcaParams, *tpEdcaParams;
3030
3031typedef PACKED_PRE struct PACKED_POST
3032{
3033 tHalMsgHeader header;
3034 tEdcaParams edcaParams;
3035} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3036
3037/*---------------------------------------------------------------------------
3038WLAN_HAL_UPD_EDCA_PARAMS_RSP
3039---------------------------------------------------------------------------*/
3040typedef PACKED_PRE struct PACKED_POST
3041{
3042 /*success or failure */
3043 tANI_U32 status;
3044} tEdcaRspParams, *tpEdcaRspParams;
3045
3046typedef PACKED_PRE struct PACKED_POST
3047{
3048 tHalMsgHeader header;
3049 tEdcaRspParams edcaRspParams;
3050} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3051
3052
3053
3054/*---------------------------------------------------------------------------
3055 * WLAN_HAL_GET_STATS_REQ
3056 *--------------------------------------------------------------------------*/
3057typedef PACKED_PRE struct PACKED_POST
3058
3059{
3060 /* Index of STA to which the statistics */
3061 tANI_U16 staIdx;
3062
3063 /* Encryption mode */
3064 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303065
Jeff Johnson295189b2012-06-20 16:38:30 -07003066 /* status */
3067 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303068
Jeff Johnson295189b2012-06-20 16:38:30 -07003069 /* Statistics */
3070 tANI_U32 sendBlocks;
3071 tANI_U32 recvBlocks;
3072 tANI_U32 replays;
3073 tANI_U8 micErrorCnt;
3074 tANI_U32 protExclCnt;
3075 tANI_U16 formatErrCnt;
3076 tANI_U16 unDecryptableCnt;
3077 tANI_U32 decryptErrCnt;
3078 tANI_U32 decryptOkCnt;
3079} tDpuStatsParams, * tpDpuStatsParams;
3080
3081typedef PACKED_PRE struct PACKED_POST
3082{
3083 /* Valid STA Idx for per STA stats request */
3084 tANI_U32 staId;
3085
3086 /* Categories of stats requested as specified in eHalStatsMask*/
3087 tANI_U32 statsMask;
3088}tHalStatsReqParams, *tpHalStatsReqParams;
3089
3090typedef PACKED_PRE struct PACKED_POST
3091{
3092 tHalMsgHeader header;
3093 tHalStatsReqParams statsReqParams;
3094} tHalStatsReqMsg, *tpHalStatsReqMsg;
3095
3096/*---------------------------------------------------------------------------
3097 * WLAN_HAL_GET_STATS_RSP
3098 *--------------------------------------------------------------------------*/
3099
3100typedef PACKED_PRE struct PACKED_POST
3101{
3102 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3103 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3104 // station successfully transmitted after more than one retransmission attempt
3105
Dino Mycle8afbac12014-07-04 22:06:17 +05303106 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3107 //(with and without retries, including multi-cast, broadcast)
3108 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3109 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003110 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3111 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3112 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3113 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 +05303114 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3115 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 -07003116 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3117 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 +05303118 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3119 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003120 //to provide this.
3121}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3122
3123
3124// defines tx_rate_flags
3125typedef enum eTxRateInfo
3126{
3127 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3128 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3129 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3130 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003131 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3132 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3133 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3134 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3135 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3136 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3137} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003138
3139
3140typedef PACKED_PRE struct PACKED_POST
3141{
Dino Mycle8afbac12014-07-04 22:06:17 +05303142 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 -07003143 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303144 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 -07003145 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303146 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3147 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003148 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303149 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3150 //for eg: if it is 10.5dBm, the value would be 105
3151 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3152 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003153
Dino Mycle8afbac12014-07-04 22:06:17 +05303154 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3155 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003156 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303157 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3158 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003159}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3160
3161typedef PACKED_PRE struct PACKED_POST
3162{
Dino Mycle8afbac12014-07-04 22:06:17 +05303163 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3164 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003165 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303166 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 -07003167 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303168 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 -07003169 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303170 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 -07003171 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303172 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 -07003173 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303174 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 -07003175 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303176 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 -07003177 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303178 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 -07003179 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303180 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 -07003181 //decrypted
3182 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3183
3184}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303185
Jeff Johnson295189b2012-06-20 16:38:30 -07003186typedef PACKED_PRE struct PACKED_POST
3187{
3188 tAniGlobalSecurityStats ucStats;
3189 tAniGlobalSecurityStats mcbcStats;
3190}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3191
3192typedef PACKED_PRE struct PACKED_POST
3193{
Dino Mycle8afbac12014-07-04 22:06:17 +05303194 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3195 //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 -07003196 //address 1 field
3197 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 +05303198 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 -07003199 //primary channel
3200 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 +05303201 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 -07003202 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303203 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3204 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003205 //decoded correctly
3206}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3207
3208typedef PACKED_PRE struct PACKED_POST
3209{
Dino Mycle8afbac12014-07-04 22:06:17 +05303210 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 -07003211 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303212 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3213 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 -07003214 //is transmitted
3215}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3216
Sushant Kaushik33200572015-08-05 16:46:20 +05303217// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3218typedef PACKED_PRE struct PACKED_POST
3219{
3220 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
3221 tANI_U8 txAvgRetry; // Average number of retries per 10 packets.
3222 tANI_U32 reserved;
3223 tANI_U32 reserved1;
3224}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3225
Jeff Johnson295189b2012-06-20 16:38:30 -07003226typedef PACKED_PRE struct PACKED_POST
3227{
3228 /* Success or Failure */
3229 tANI_U32 status;
3230
3231 /* STA Idx */
3232 tANI_U32 staId;
3233
3234 /* Categories of STATS being returned as per eHalStatsMask*/
3235 tANI_U32 statsMask;
3236
3237 /* message type is same as the request type */
3238 tANI_U16 msgType;
3239
3240 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303241 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003242
3243} tHalStatsRspParams, *tpHalStatsRspParams;
3244
3245
3246
3247typedef PACKED_PRE struct PACKED_POST
3248{
3249 tHalMsgHeader header;
3250 tHalStatsRspParams statsRspParams;
3251} tHalStatsRspMsg, *tpHalStatsRspMsg;
3252
Abhishek Singhbc310882015-05-22 15:17:02 +05303253 /*---------------------------------------------------------------------------
3254 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3255 *---------------------------------------------------------------------------*/
3256typedef PACKED_PRE struct PACKED_POST
3257{
3258 tANI_U32 rtsCtsValue;
3259}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3260
3261typedef PACKED_PRE struct PACKED_POST
3262{
3263 tHalMsgHeader header;
3264 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3265} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3266
Jeff Johnson295189b2012-06-20 16:38:30 -07003267/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303268 * WLAN_HAL_FW_STATS_REQ
3269 *---------------------------------------------------------------------------*/
3270 typedef PACKED_PRE struct PACKED_POST
3271{
3272 tANI_U32 type;
3273}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3274
3275typedef PACKED_PRE struct PACKED_POST
3276{
3277 tHalMsgHeader header;
3278 tHalfwStatsReqParams fwstatsReqParams;
3279} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3280
3281/*---------------------------------------------------------------------------
3282 * WLAN_HAL_FW_STATS_RSP
3283 *---------------------------------------------------------------------------*/
3284 typedef PACKED_PRE struct PACKED_POST
3285{
3286 tANI_U32 type;
3287 tANI_U32 length;
3288 tANI_U8 data[1];
3289
3290}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3291
3292typedef PACKED_PRE struct PACKED_POST
3293{
3294 tHalMsgHeader header;
3295 tHalfwStatsRspParams fwstatsRspParams;
3296} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3297
3298typedef enum
3299{
3300 FW_UBSP_STATS = 1,
3301} fwstatstype;
3302
3303
3304/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003305 * WLAN_HAL_SET_LINK_ST_REQ
3306 *--------------------------------------------------------------------------*/
3307typedef PACKED_PRE struct PACKED_POST
3308{
3309 tSirMacAddr bssid;
3310 tSirLinkState state;
3311 tSirMacAddr selfMacAddr;
3312} tLinkStateParams, *tpLinkStateParams;
3313
3314typedef PACKED_PRE struct PACKED_POST
3315{
3316 tHalMsgHeader header;
3317 tLinkStateParams linkStateParams;
3318} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3319
3320/*---------------------------------------------------------------------------
3321 * WLAN_HAL_SET_LINK_ST_RSP
3322 *--------------------------------------------------------------------------*/
3323
3324typedef PACKED_PRE struct PACKED_POST
3325{
3326 /*success or failure */
3327 tANI_U32 status;
3328} tLinkStateRspParams, *tpLinkStateRspParams;
3329
3330typedef PACKED_PRE struct PACKED_POST
3331{
3332 tHalMsgHeader header;
3333 tLinkStateRspParams linkStateRspParams;
3334} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3335
3336/*---------------------------------------------------------------------------
3337 * WLAN_HAL_ADD_TS_REQ
3338 *--------------------------------------------------------------------------*/
3339
3340/* TSPEC Params */
3341typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3342{
Jeff Johnson295189b2012-06-20 16:38:30 -07003343 tANI_U16 trafficType : 1;
3344 tANI_U16 tsid : 4;
3345 tANI_U16 direction : 2;
3346 tANI_U16 accessPolicy : 2;
3347 tANI_U16 aggregation : 1;
3348 tANI_U16 psb : 1;
3349 tANI_U16 userPrio : 3;
3350 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003351} __ani_attr_packed tSirMacTSInfoTfc;
3352
3353/* Flag to schedule the traffic type */
3354typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3355{
Jeff Johnson295189b2012-06-20 16:38:30 -07003356 tANI_U8 schedule : 1;
3357 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003358} __ani_attr_packed tSirMacTSInfoSch;
3359
3360/* Traffic and scheduling info */
3361typedef __ani_attr_pre_packed struct sSirMacTSInfo
3362{
3363 tSirMacTSInfoTfc traffic;
3364 tSirMacTSInfoSch schedule;
3365} __ani_attr_packed tSirMacTSInfo;
3366
3367/* Information elements */
3368typedef __ani_attr_pre_packed struct sSirMacTspecIE
3369{
3370 tANI_U8 type;
3371 tANI_U8 length;
3372 tSirMacTSInfo tsinfo;
3373 tANI_U16 nomMsduSz;
3374 tANI_U16 maxMsduSz;
3375 tANI_U32 minSvcInterval;
3376 tANI_U32 maxSvcInterval;
3377 tANI_U32 inactInterval;
3378 tANI_U32 suspendInterval;
3379 tANI_U32 svcStartTime;
3380 tANI_U32 minDataRate;
3381 tANI_U32 meanDataRate;
3382 tANI_U32 peakDataRate;
3383 tANI_U32 maxBurstSz;
3384 tANI_U32 delayBound;
3385 tANI_U32 minPhyRate;
3386 tANI_U16 surplusBw;
3387 tANI_U16 mediumTime;
3388}__ani_attr_packed tSirMacTspecIE;
3389
3390typedef PACKED_PRE struct PACKED_POST
3391{
3392 /* Station Index */
3393 tANI_U16 staIdx;
3394
3395 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3396 tANI_U16 tspecIdx;
3397
3398 /* To program TPE with required parameters */
3399 tSirMacTspecIE tspec;
3400
3401 /* U-APSD Flags: 1b per AC. Encoded as follows:
3402 b7 b6 b5 b4 b3 b2 b1 b0 =
3403 X X X X BE BK VI VO */
3404 tANI_U8 uAPSD;
3405
3406 /* These parameters are for all the access categories */
3407 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3408 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3409 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303410
Jeff Johnson295189b2012-06-20 16:38:30 -07003411} tAddTsParams, *tpAddTsParams;
3412
3413typedef PACKED_PRE struct PACKED_POST
3414{
3415 tHalMsgHeader header;
3416 tAddTsParams addTsParams;
3417} tAddTsReqMsg, *tpAddTsReqMsg;
3418
3419/*---------------------------------------------------------------------------
3420 * WLAN_HAL_ADD_TS_RSP
3421 *--------------------------------------------------------------------------*/
3422
3423typedef PACKED_PRE struct PACKED_POST
3424{
3425 /*success or failure */
3426 tANI_U32 status;
3427} tAddTsRspParams, *tpAddTsRspParams;
3428
3429typedef PACKED_PRE struct PACKED_POST
3430{
3431 tHalMsgHeader header;
3432 tAddTsRspParams addTsRspParams;
3433} tAddTsRspMsg, *tpAddTsRspMsg;
3434
3435
3436/*---------------------------------------------------------------------------
3437 * WLAN_HAL_DEL_TS_REQ
3438 *--------------------------------------------------------------------------*/
3439
3440typedef PACKED_PRE struct PACKED_POST
3441{
3442 /* Station Index */
3443 tANI_U16 staIdx;
3444
3445 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3446 tANI_U16 tspecIdx;
3447
3448 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303449 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003450
3451} tDelTsParams, *tpDelTsParams;
3452
3453typedef PACKED_PRE struct PACKED_POST
3454{
3455 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303456 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003457} tDelTsReqMsg, *tpDelTsReqMsg;
3458
3459/*---------------------------------------------------------------------------
3460 * WLAN_HAL_DEL_TS_RSP
3461 *--------------------------------------------------------------------------*/
3462
3463typedef PACKED_PRE struct PACKED_POST
3464{
3465 /*success or failure */
3466 tANI_U32 status;
3467} tDelTsRspParams, *tpDelTsRspParams;
3468
3469typedef PACKED_PRE struct PACKED_POST
3470{
3471 tHalMsgHeader header;
3472 tDelTsRspParams delTsRspParams;
3473} tDelTsRspMsg, *tpDelTsRspMsg;
3474
3475/* End of TSpec Parameters */
3476
3477/* Start of BLOCK ACK related Parameters */
3478
3479/*---------------------------------------------------------------------------
3480 * WLAN_HAL_ADD_BA_SESSION_REQ
3481 *--------------------------------------------------------------------------*/
3482
3483typedef PACKED_PRE struct PACKED_POST
3484{
3485 /* Station Index */
3486 tANI_U16 staIdx;
3487
3488 /* Peer MAC Address */
3489 tSirMacAddr peerMacAddr;
3490
3491 /* ADDBA Action Frame dialog token
3492 HAL will not interpret this object */
3493 tANI_U8 baDialogToken;
3494
3495 /* TID for which the BA is being setup
3496 This identifies the TC or TS of interest */
3497 tANI_U8 baTID;
3498
3499 /* 0 - Delayed BA (Not supported)
3500 1 - Immediate BA */
3501 tANI_U8 baPolicy;
3502
3503 /* Indicates the number of buffers for this TID (baTID)
3504 NOTE - This is the requested buffer size. When this
3505 is processed by HAL and subsequently by HDD, it is
3506 possible that HDD may change this buffer size. Any
3507 change in the buffer size should be noted by PE and
3508 advertized appropriately in the ADDBA response */
3509 tANI_U16 baBufferSize;
3510
3511 /* BA timeout in TU's 0 means no timeout will occur */
3512 tANI_U16 baTimeout;
3513
3514 /* b0..b3 - Fragment Number - Always set to 0
3515 b4..b15 - Starting Sequence Number of first MSDU
3516 for which this BA is setup */
3517 tANI_U16 baSSN;
3518
3519 /* ADDBA direction
3520 1 - Originator
3521 0 - Recipient */
3522 tANI_U8 baDirection;
3523} tAddBASessionParams, *tpAddBASessionParams;
3524
3525typedef PACKED_PRE struct PACKED_POST
3526{
3527 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303528 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003529}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3530
3531/*---------------------------------------------------------------------------
3532 * WLAN_HAL_ADD_BA_SESSION_RSP
3533 *--------------------------------------------------------------------------*/
3534
3535typedef PACKED_PRE struct PACKED_POST
3536{
3537 /*success or failure */
3538 tANI_U32 status;
3539
3540 /* Dialog token */
3541 tANI_U8 baDialogToken;
3542
3543 /* TID for which the BA session has been setup */
3544 tANI_U8 baTID;
3545
3546 /* BA Buffer Size allocated for the current BA session */
3547 tANI_U8 baBufferSize;
3548
3549 tANI_U8 baSessionID;
3550
3551 /* Reordering Window buffer */
3552 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303553
Jeff Johnson295189b2012-06-20 16:38:30 -07003554 /*Station Index to id the sta */
3555 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303556
Jeff Johnson295189b2012-06-20 16:38:30 -07003557 /* Starting Sequence Number */
3558 tANI_U16 SSN;
3559} tAddBASessionRspParams, *tpAddBASessionRspParams;
3560
3561typedef PACKED_PRE struct PACKED_POST
3562{
3563 tHalMsgHeader header;
3564 tAddBASessionRspParams addBASessionRspParams;
3565} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3566
3567/*---------------------------------------------------------------------------
3568 * WLAN_HAL_ADD_BA_REQ
3569 *--------------------------------------------------------------------------*/
3570
3571typedef PACKED_PRE struct PACKED_POST
3572{
3573 /* Session Id */
3574 tANI_U8 baSessionID;
3575
3576 /* Reorder Window Size */
3577 tANI_U8 winSize;
3578
3579#ifdef FEATURE_ON_CHIP_REORDERING
3580 tANI_BOOLEAN isReorderingDoneOnChip;
3581#endif
3582} tAddBAParams, *tpAddBAParams;
3583
3584typedef PACKED_PRE struct PACKED_POST
3585{
3586 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303587 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003588} tAddBAReqMsg, *tpAddBAReqMsg;
3589
3590
3591/*---------------------------------------------------------------------------
3592 * WLAN_HAL_ADD_BA_RSP
3593 *--------------------------------------------------------------------------*/
3594
3595typedef PACKED_PRE struct PACKED_POST
3596{
3597 /*success or failure */
3598 tANI_U32 status;
3599
3600 /* Dialog token */
3601 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303602
Jeff Johnson295189b2012-06-20 16:38:30 -07003603} tAddBARspParams, *tpAddBARspParams;
3604
3605typedef PACKED_PRE struct PACKED_POST
3606{
3607 tHalMsgHeader header;
3608 tAddBARspParams addBARspParams;
3609} tAddBARspMsg, *tpAddBARspMsg;
3610
3611
3612/*---------------------------------------------------------------------------
3613 * WLAN_HAL_TRIGGER_BA_REQ
3614 *--------------------------------------------------------------------------*/
3615
3616
3617typedef struct sAddBaInfo
3618{
3619 tANI_U16 fBaEnable : 1;
3620 tANI_U16 startingSeqNum: 12;
3621 tANI_U16 reserved : 3;
3622}tAddBaInfo, *tpAddBaInfo;
3623
3624typedef struct sTriggerBaRspCandidate
3625{
3626 tSirMacAddr staAddr;
3627 tAddBaInfo baInfo[STACFG_MAX_TC];
3628}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3629
3630typedef struct sTriggerBaCandidate
3631{
3632 tANI_U8 staIdx;
3633 tANI_U8 tidBitmap;
3634}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3635
3636typedef PACKED_PRE struct PACKED_POST
3637{
3638 /* Session Id */
3639 tANI_U8 baSessionID;
3640
Dino Mycle8afbac12014-07-04 22:06:17 +05303641 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003642 * Candidate List(tTriggerBaCandidate)
3643 */
3644 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303645
Jeff Johnson295189b2012-06-20 16:38:30 -07003646} tTriggerBAParams, *tpTriggerBAParams;
3647
3648typedef PACKED_PRE struct PACKED_POST
3649{
3650 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303651 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003652} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3653
3654
3655/*---------------------------------------------------------------------------
3656 * WLAN_HAL_TRIGGER_BA_RSP
3657 *--------------------------------------------------------------------------*/
3658
3659typedef PACKED_PRE struct PACKED_POST
3660{
Dino Mycle8afbac12014-07-04 22:06:17 +05303661
Jeff Johnson295189b2012-06-20 16:38:30 -07003662 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303663 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003664
3665 /* success or failure */
3666 tANI_U32 status;
3667
Dino Mycle8afbac12014-07-04 22:06:17 +05303668 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003669 * Rsp Candidate List(tTriggerRspBaCandidate)
3670 */
3671 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303672
Jeff Johnson295189b2012-06-20 16:38:30 -07003673
3674} tTriggerBARspParams, *tpTriggerBARspParams;
3675
3676typedef PACKED_PRE struct PACKED_POST
3677{
3678 tHalMsgHeader header;
3679 tTriggerBARspParams triggerBARspParams;
3680} tTriggerBARspMsg, *tpTriggerBARspMsg;
3681
3682/*---------------------------------------------------------------------------
3683 * WLAN_HAL_DEL_BA_REQ
3684 *--------------------------------------------------------------------------*/
3685
3686typedef PACKED_PRE struct PACKED_POST
3687{
3688 /* Station Index */
3689 tANI_U16 staIdx;
3690
3691 /* TID for which the BA session is being deleted */
3692 tANI_U8 baTID;
3693
3694 /* DELBA direction
3695 1 - Originator
3696 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303697 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003698} tDelBAParams, *tpDelBAParams;
3699
3700typedef PACKED_PRE struct PACKED_POST
3701{
3702 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303703 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003704} tDelBAReqMsg, *tpDelBAReqMsg;
3705
3706/*---------------------------------------------------------------------------
3707 * WLAN_HAL_DEL_BA_RSP
3708 *--------------------------------------------------------------------------*/
3709
3710typedef PACKED_PRE struct PACKED_POST
3711{
3712 /* success or failure */
3713 tANI_U32 status;
3714} tDelBARspParams, *tpDelBARspParams;
3715
3716typedef PACKED_PRE struct PACKED_POST
3717{
3718 tHalMsgHeader header;
3719 tDelBARspParams delBARspParams;
3720} tDelBARspMsg, *tpDelBARspMsg;
3721
3722
Jeff Johnson295189b2012-06-20 16:38:30 -07003723/*---------------------------------------------------------------------------
3724 * WLAN_HAL_TSM_STATS_REQ
3725 *--------------------------------------------------------------------------*/
3726typedef PACKED_PRE struct PACKED_POST
3727{
3728 /* Traffic Id */
3729 tANI_U8 tsmTID;
3730
3731 tSirMacAddr bssId;
3732} tTsmStatsParams, *tpTsmStatsParams;
3733
3734typedef PACKED_PRE struct PACKED_POST
3735{
3736 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303737 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003738} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3739
3740
3741/*---------------------------------------------------------------------------
3742 * WLAN_HAL_TSM_STATS_RSP
3743 *--------------------------------------------------------------------------*/
3744typedef PACKED_PRE struct PACKED_POST
3745{
3746 /*success or failure */
3747 tANI_U32 status;
3748
Dino Mycle8afbac12014-07-04 22:06:17 +05303749 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003750 tANI_U16 UplinkPktQueueDly;
3751
Dino Mycle8afbac12014-07-04 22:06:17 +05303752 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003753 tANI_U16 UplinkPktQueueDlyHist[4];
3754
Dino Mycle8afbac12014-07-04 22:06:17 +05303755 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003756 tANI_U32 UplinkPktTxDly;
3757
Dino Mycle8afbac12014-07-04 22:06:17 +05303758 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003759 tANI_U16 UplinkPktLoss;
3760
Dino Mycle8afbac12014-07-04 22:06:17 +05303761 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003762 tANI_U16 UplinkPktCount;
3763
Dino Mycle8afbac12014-07-04 22:06:17 +05303764 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003765 tANI_U8 RoamingCount;
3766
Dino Mycle8afbac12014-07-04 22:06:17 +05303767 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003768 tANI_U16 RoamingDly;
3769} tTsmStatsRspParams, *tpTsmStatsRspParams;
3770
3771typedef PACKED_PRE struct PACKED_POST
3772{
3773 tHalMsgHeader header;
3774 tTsmStatsRspParams tsmStatsRspParams;
3775} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3776
3777
Jeff Johnson295189b2012-06-20 16:38:30 -07003778/*---------------------------------------------------------------------------
3779 * WLAN_HAL_SET_KEYDONE_MSG
3780 *--------------------------------------------------------------------------*/
3781
3782typedef PACKED_PRE struct PACKED_POST
3783{
3784 /*bssid of the keys */
3785 tANI_U8 bssidx;
3786 tANI_U8 encType;
3787} tSetKeyDoneParams, *tpSetKeyDoneParams;
3788
3789typedef PACKED_PRE struct PACKED_POST
3790{
3791 tHalMsgHeader header;
3792 tSetKeyDoneParams setKeyDoneParams;
3793} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3794
3795/*---------------------------------------------------------------------------
3796 * WLAN_HAL_DOWNLOAD_NV_REQ
3797 *--------------------------------------------------------------------------*/
3798typedef PACKED_PRE struct PACKED_POST
3799{
3800 /* Fragment sequence number of the NV Image. Note that NV Image might not
3801 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303802 * can hence choose to chop the NV blob into multiple fragments starting with
3803 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003804 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3805 * concatenated together by HAL without any padding bytes in between.*/
3806 tANI_U16 fragNumber;
3807
3808 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303809 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003810 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3811 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3812 tANI_U16 isLastFragment;
3813
3814 /* NV Image size (number of bytes) */
3815 tANI_U32 nvImgBufferSize;
3816
3817 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3818 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3819} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3820
3821typedef PACKED_PRE struct PACKED_POST
3822{
3823 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3824 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3825 tHalMsgHeader header;
3826 tHalNvImgDownloadReqParams nvImageReqParams;
3827} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3828
3829/*---------------------------------------------------------------------------
3830 * WLAN_HAL_DOWNLOAD_NV_RSP
3831 *--------------------------------------------------------------------------*/
3832typedef PACKED_PRE struct PACKED_POST
3833{
3834 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3835 * after each fragment */
3836 tANI_U32 status;
3837} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3838
3839typedef PACKED_PRE struct PACKED_POST
3840{
3841 tHalMsgHeader header;
3842 tHalNvImgDownloadRspParams nvImageRspParams;
3843} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3844
3845/*---------------------------------------------------------------------------
3846 * WLAN_HAL_STORE_NV_IND
3847 *--------------------------------------------------------------------------*/
3848typedef PACKED_PRE struct PACKED_POST
3849{
3850 /* NV Item */
3851 eNvTable tableID;
3852
3853 /* Size of NV Blob */
3854 tANI_U32 nvBlobSize;
3855
Dino Mycle8afbac12014-07-04 22:06:17 +05303856 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003857 * NV blob i.e. uint8[nvBlobSize] */
3858} tHalNvStoreParams, *tpHalNvStoreParams;
3859
3860typedef PACKED_PRE struct PACKED_POST
3861{
3862 /* Note: The length specified in tHalNvStoreInd messages should be
3863 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3864 tHalMsgHeader header;
3865 tHalNvStoreParams nvStoreParams;
3866} tHalNvStoreInd, *tpHalNvStoreInd;
3867
3868/* End of Block Ack Related Parameters */
3869
3870/*---------------------------------------------------------------------------
3871 * WLAN_HAL_MIC_FAILURE_IND
3872 *--------------------------------------------------------------------------*/
3873
3874#define SIR_CIPHER_SEQ_CTR_SIZE 6
3875
3876typedef PACKED_PRE struct PACKED_POST
3877{
Dino Mycle8afbac12014-07-04 22:06:17 +05303878 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003879 tSirMacAddr taMacAddr; //transmitter address
3880 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303881 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003882 tANI_U8 IV1; // first byte of IV
3883 tANI_U8 keyId; // second byte of IV
3884 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3885 tSirMacAddr rxMacAddr; // receive address
3886} tSirMicFailureInfo, *tpSirMicFailureInfo;
3887
3888/* Definition for MIC failure indication
3889 MAC reports this each time a MIC failure occures on Rx TKIP packet
3890 */
3891typedef PACKED_PRE struct PACKED_POST
3892{
3893 tSirMacAddr bssId; // BSSID
3894 tSirMicFailureInfo info;
3895} tSirMicFailureInd, *tpSirMicFailureInd;
3896
3897typedef PACKED_PRE struct PACKED_POST
3898{
3899 tHalMsgHeader header;
3900 tSirMicFailureInd micFailureInd;
3901} tMicFailureIndMsg, *tpMicFailureIndMsg;
3902
Mohit Khanna4a70d262012-09-11 16:30:12 -07003903typedef PACKED_PRE struct PACKED_POST
3904{
3905 tANI_U16 opMode;
3906 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303907}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003908
3909typedef PACKED_PRE struct PACKED_POST
3910{
3911 tHalMsgHeader header;
3912 tUpdateVHTOpMode updateVhtOpMode;
3913} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3914
3915typedef PACKED_PRE struct PACKED_POST
3916{
3917 tANI_U32 status;
3918} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3919
3920typedef PACKED_PRE struct PACKED_POST
3921{
3922 tHalMsgHeader header;
3923 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3924} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3925
Jeff Johnson295189b2012-06-20 16:38:30 -07003926/*---------------------------------------------------------------------------
3927 * WLAN_HAL_UPDATE_BEACON_REQ
3928 *--------------------------------------------------------------------------*/
3929typedef PACKED_PRE struct PACKED_POST
3930{
3931
3932 tANI_U8 bssIdx;
3933
3934 //shortPreamble mode. HAL should update all the STA rates when it
3935 //receives this message
3936 tANI_U8 fShortPreamble;
3937 //short Slot time.
3938 tANI_U8 fShortSlotTime;
3939 //Beacon Interval
3940 tANI_U16 beaconInterval;
3941 //Protection related
3942 tANI_U8 llaCoexist;
3943 tANI_U8 llbCoexist;
3944 tANI_U8 llgCoexist;
3945 tANI_U8 ht20MhzCoexist;
3946 tANI_U8 llnNonGFCoexist;
3947 tANI_U8 fLsigTXOPProtectionFullSupport;
3948 tANI_U8 fRIFSMode;
3949
3950 tANI_U16 paramChangeBitmap;
3951}tUpdateBeaconParams, *tpUpdateBeaconParams;
3952
3953
3954typedef PACKED_PRE struct PACKED_POST
3955{
3956 tHalMsgHeader header;
3957 tUpdateBeaconParams updateBeaconParam;
3958} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3959
3960/*---------------------------------------------------------------------------
3961 * WLAN_HAL_UPDATE_BEACON_RSP
3962 *--------------------------------------------------------------------------*/
3963typedef PACKED_PRE struct PACKED_POST
3964{
3965 tANI_U32 status;
3966} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3967
3968typedef PACKED_PRE struct PACKED_POST
3969{
3970 tHalMsgHeader header;
3971 tUpdateBeaconRspParams updateBeaconRspParam;
3972} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3973
3974/*---------------------------------------------------------------------------
3975 * WLAN_HAL_SEND_BEACON_REQ
3976 *--------------------------------------------------------------------------*/
3977typedef PACKED_PRE struct PACKED_POST
3978{
3979 tANI_U32 beaconLength; //length of the template.
3980 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3981 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003982 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003983 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3984}tSendBeaconParams, *tpSendBeaconParams;
3985
3986
3987typedef PACKED_PRE struct PACKED_POST
3988{
3989 tHalMsgHeader header;
3990 tSendBeaconParams sendBeaconParam;
3991}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3992
3993/*---------------------------------------------------------------------------
3994 * WLAN_HAL_SEND_BEACON_RSP
3995 *--------------------------------------------------------------------------*/
3996typedef PACKED_PRE struct PACKED_POST
3997{
3998 tANI_U32 status;
3999} tSendBeaconRspParams, *tpSendBeaconRspParams;
4000
4001typedef PACKED_PRE struct PACKED_POST
4002{
4003 tHalMsgHeader header;
4004 tSendBeaconRspParams sendBeaconRspParam;
4005} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4006
4007#ifdef FEATURE_5GHZ_BAND
4008
4009/*---------------------------------------------------------------------------
4010 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4011 *--------------------------------------------------------------------------*/
4012typedef PACKED_PRE struct PACKED_POST
4013{
4014 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304015 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004016}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4017
4018
4019typedef PACKED_PRE struct PACKED_POST
4020{
4021 /* Link Parameters */
4022 tSirEnableRadarInfoType EnableRadarInfo;
4023}tEnableRadarReqParams, *tpEnableRadarReqParams;
4024
4025typedef PACKED_PRE struct PACKED_POST
4026{
4027 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304028 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004029}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4030
4031/*---------------------------------------------------------------------------
4032 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4033 *--------------------------------------------------------------------------*/
4034
4035typedef PACKED_PRE struct PACKED_POST
4036{
4037 /* Link Parameters */
4038 tSirMacAddr BSSID;
4039 /* success or failure */
4040 tANI_U32 status;
4041}tEnableRadarRspParams, *tpEnableRadarRspParams;
4042
4043typedef PACKED_PRE struct PACKED_POST
4044{
4045 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304046 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004047}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4048
4049/*---------------------------------------------------------------------------
4050 *WLAN_HAL_RADAR_DETECT_INTR_IND
4051 *--------------------------------------------------------------------------*/
4052
4053typedef PACKED_PRE struct PACKED_POST
4054{
4055 tANI_U8 radarDetChannel;
4056}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4057
4058typedef PACKED_PRE struct PACKED_POST
4059{
4060 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304061 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004062}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4063
4064/*---------------------------------------------------------------------------
4065 *WLAN_HAL_RADAR_DETECT_IND
4066 *-------------------------------------------------------------------------*/
4067typedef PACKED_PRE struct PACKED_POST
4068{
4069 /*channel number in which the RADAR detected*/
4070 tANI_U8 channelNumber;
4071
4072 /*RADAR pulse width*/
4073 tANI_U16 radarPulseWidth; // in usecond
4074
4075 /*Number of RADAR pulses */
4076 tANI_U16 numRadarPulse;
4077}tRadarDetectIndParams,*tpRadarDetectIndParams;
4078
4079typedef PACKED_PRE struct PACKED_POST
4080{
4081 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304082 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004083}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4084
4085
4086/*---------------------------------------------------------------------------
4087 *WLAN_HAL_GET_TPC_REPORT_REQ
4088 *-------------------------------------------------------------------------*/
4089typedef PACKED_PRE struct PACKED_POST
4090{
4091 tSirMacAddr sta;
4092 tANI_U8 dialogToken;
4093 tANI_U8 txpower;
4094}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4095
4096
4097typedef PACKED_PRE struct PACKED_POST
4098{
4099 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304100 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004101}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4102
4103/*---------------------------------------------------------------------------
4104 * WLAN_HAL_GET_TPC_REPORT_RSP
4105 *--------------------------------------------------------------------------*/
4106
4107typedef PACKED_PRE struct PACKED_POST
4108{
4109 /* success or failure */
4110 tANI_U32 status;
4111}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4112
4113typedef PACKED_PRE struct PACKED_POST
4114{
4115 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304116 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004117}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4118
4119#endif
4120
Jeff Johnson295189b2012-06-20 16:38:30 -07004121/*---------------------------------------------------------------------------
4122 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4123 *-------------------------------------------------------------------------*/
4124typedef PACKED_PRE struct PACKED_POST
4125{
4126 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4127 tANI_U32 probeRespTemplateLen;
4128 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4129 tSirMacAddr bssId;
4130
4131}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4132
4133typedef PACKED_PRE struct PACKED_POST
4134{
4135 tHalMsgHeader header;
4136 tSendProbeRespReqParams sendProbeRespReqParams ;
4137}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4138
4139/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304140 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004141 *--------------------------------------------------------------------------*/
4142
4143typedef PACKED_PRE struct PACKED_POST
4144{
4145 /* success or failure */
4146 tANI_U32 status;
4147}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4148
4149typedef PACKED_PRE struct PACKED_POST
4150{
4151 tHalMsgHeader header;
4152 tSendProbeRespRspParams sendProbeRespRspParams;
4153}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4154
4155
4156/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304157 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004158 *--------------------------------------------------------------------------*/
4159
4160typedef PACKED_PRE struct PACKED_POST
4161{
4162 /* success or failure */
4163 tANI_U32 status;
4164}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4165
4166typedef PACKED_PRE struct PACKED_POST
4167{
4168 tHalMsgHeader header;
4169 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4170}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4171
4172/*---------------------------------------------------------------------------
4173 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4174 *--------------------------------------------------------------------------*/
4175
4176typedef PACKED_PRE struct PACKED_POST
4177{
4178 tANI_U16 assocId;
4179 tANI_U16 staId;
4180 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4181 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004182 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304183 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004184
4185}tDeleteStaContextParams, *tpDeleteStaContextParams;
4186
4187
4188typedef PACKED_PRE struct PACKED_POST
4189{
4190 tHalMsgHeader header;
4191 tDeleteStaContextParams deleteStaContextParams;
4192}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4193
Anand Kumar012623a2013-01-11 17:00:00 -08004194typedef PACKED_PRE struct PACKED_POST
4195{
4196 tHalMsgHeader header;
4197 tANI_U8 assocId;
4198 tANI_U8 staIdx;
4199 tANI_U8 bssIdx;
4200 tANI_U8 uReasonCode;
4201 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004202#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4203 tANI_U8 staAddr[6];
4204 tANI_U8 bssId[6];
4205#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004206} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004207
4208/*---------------------------------------------------------------------------
4209 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4210 *--------------------------------------------------------------------------*/
4211
4212typedef PACKED_PRE struct PACKED_POST
4213{
4214 tBtAmpEventType btAmpEventType;
4215
4216}tBtAmpEventParams, *tpBtAmpEventParams;
4217
4218
4219
4220typedef PACKED_PRE struct PACKED_POST
4221{
4222 tHalMsgHeader header;
4223 tBtAmpEventParams btAmpEventParams;
4224}tBtAmpEventMsg, *tpBtAmpEventMsg;
4225
4226/*---------------------------------------------------------------------------
4227*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4228*--------------------------------------------------------------------------*/
4229
4230typedef PACKED_PRE struct PACKED_POST
4231{
4232 /* success or failure */
4233 tANI_U32 status;
4234}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4235
4236typedef PACKED_PRE struct PACKED_POST
4237{
4238 tHalMsgHeader header;
4239 tBtAmpEventRspParams btAmpEventRspParams;
4240}tBtAmpEventRsp, *tpBtAmpEventRsp;
4241
4242
4243/*---------------------------------------------------------------------------
4244 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4245 *--------------------------------------------------------------------------*/
4246
4247typedef PACKED_PRE struct PACKED_POST
4248{
4249 // Station Index. originates from HAL
4250 tANI_U8 ucSTAId;
4251
4252 // TID for which the transmit queue is being flushed
4253 tANI_U8 ucTid;
4254
4255}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4256
4257
4258typedef PACKED_PRE struct PACKED_POST
4259{
4260 tHalMsgHeader header;
4261 tTlHalFlushAcParams tlHalFlushAcParam;
4262}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4263
4264/*---------------------------------------------------------------------------
4265*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4266*--------------------------------------------------------------------------*/
4267
4268typedef PACKED_PRE struct PACKED_POST
4269{
4270 // Station Index. originates from HAL
4271 tANI_U8 ucSTAId;
4272
4273 // TID for which the transmit queue is being flushed
4274 tANI_U8 ucTid;
4275
4276 /* success or failure */
4277 tANI_U32 status;
4278}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4279
4280typedef PACKED_PRE struct PACKED_POST
4281{
4282 tHalMsgHeader header;
4283 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4284}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4285
4286/*---------------------------------------------------------------------------
4287 * WLAN_HAL_ENTER_IMPS_REQ
4288 *--------------------------------------------------------------------------*/
4289typedef PACKED_PRE struct PACKED_POST
4290{
4291 tHalMsgHeader header;
4292} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4293
4294/*---------------------------------------------------------------------------
4295 * WLAN_HAL_EXIT_IMPS_REQ
4296 *--------------------------------------------------------------------------*/
4297typedef PACKED_PRE struct PACKED_POST
4298{
4299 tHalMsgHeader header;
4300} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4301
4302/*---------------------------------------------------------------------------
4303 * WLAN_HAL_ENTER_BMPS_REQ
4304 *--------------------------------------------------------------------------*/
4305
4306typedef PACKED_PRE struct PACKED_POST
4307{
4308 tANI_U8 bssIdx;
4309 //TBTT value derived from the last beacon
4310#ifndef BUILD_QWPTTSTATIC
4311 tANI_U64 tbtt;
4312#endif
4313 tANI_U8 dtimCount;
4314 //DTIM period given to HAL during association may not be valid,
4315 //if association is based on ProbeRsp instead of beacon.
4316 tANI_U8 dtimPeriod;
4317
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004318 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004319 tANI_U32 rssiFilterPeriod;
4320 tANI_U32 numBeaconPerRssiAverage;
4321 tANI_U8 bRssiFilterEnable;
4322
4323} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4324
4325
4326typedef PACKED_PRE struct PACKED_POST
4327{
4328 tHalMsgHeader header;
4329 tHalEnterBmpsReqParams enterBmpsReq;
4330} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4331
4332/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304333 * WLAN_HAL_PRINT_REG_INFO_IND
4334 *--------------------------------------------------------------------------*/
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 uint32 regAddr;
4338 uint32 regValue;
4339} tHalRegDebugInfo, *tpRegDebugInfo;
4340
4341typedef PACKED_PRE struct PACKED_POST
4342{
4343 uint32 regCount;
4344 uint32 scenario;
4345 uint32 reasonCode;
4346} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4347
4348typedef PACKED_PRE struct PACKED_POST
4349{
4350 tHalMsgHeader header;
4351 tHalRegDebugInfoParams regParams;
4352} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4353
4354/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004355 * WLAN_HAL_EXIT_BMPS_REQ
4356 *--------------------------------------------------------------------------*/
4357typedef PACKED_PRE struct PACKED_POST
4358{
4359 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004360 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004361} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4362
4363typedef PACKED_PRE struct PACKED_POST
4364{
4365 tHalMsgHeader header;
4366 tHalExitBmpsReqParams exitBmpsReqParams;
4367} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4368
4369/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004370 * WLAN_HAL_MISSED_BEACON_IND
4371 *--------------------------------------------------------------------------*/
4372typedef PACKED_PRE struct PACKED_POST
4373{
4374 tANI_U8 bssIdx;
4375} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4376
4377typedef PACKED_PRE struct PACKED_POST
4378{
4379 tHalMsgHeader header;
4380 tHalMissedBeaconIndParams missedBeaconIndParams;
4381} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4382
4383/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004384 * WLAN_HAL_ADD_BCN_FILTER_REQ
4385 *--------------------------------------------------------------------------*/
4386/* Beacon Filtering data structures */
4387typedef PACKED_PRE struct PACKED_POST
4388{
4389 tANI_U8 offset;
4390 tANI_U8 value;
4391 tANI_U8 bitMask;
4392 tANI_U8 ref;
4393} tEidByteInfo, *tpEidByteInfo;
4394
Dino Mycle8afbac12014-07-04 22:06:17 +05304395typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004396{
4397 tANI_U16 capabilityInfo;
4398 tANI_U16 capabilityMask;
4399 tANI_U16 beaconInterval;
4400 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004401 tANI_U8 bssIdx;
4402 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004403} tBeaconFilterMsg, *tpBeaconFilterMsg;
4404
4405/* The above structure would be followed by multiple of below mentioned structure */
4406typedef PACKED_PRE struct PACKED_POST
4407{
4408 tANI_U8 elementId;
4409 tANI_U8 checkIePresence;
4410 tEidByteInfo byte;
4411} tBeaconFilterIe, *tpBeaconFilterIe;
4412
4413typedef PACKED_PRE struct PACKED_POST
4414{
4415 tHalMsgHeader header;
4416 tBeaconFilterMsg addBcnFilterParams;
4417} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4418
4419/*---------------------------------------------------------------------------
4420 * WLAN_HAL_REM_BCN_FILTER_REQ
4421 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304422typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004423{
4424 tANI_U8 ucIeCount;
4425 tANI_U8 ucRemIeId[1];
4426} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4427
4428typedef PACKED_PRE struct PACKED_POST
4429{
4430 tHalMsgHeader header;
4431 tRemBeaconFilterMsg remBcnFilterParams;
4432} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4433
4434/*---------------------------------------------------------------------------
4435 * WLAN_HAL_HOST_OFFLOAD_REQ
4436 *--------------------------------------------------------------------------*/
4437#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4438#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4439#define HAL_IPV6_NS_OFFLOAD 2
4440#define HAL_IPV6_ADDR_LEN 16
4441#define HAL_MAC_ADDR_LEN 6
4442#define HAL_OFFLOAD_DISABLE 0
4443#define HAL_OFFLOAD_ENABLE 1
4444#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004445#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004446#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004447#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004448
4449typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4450{
4451 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4452 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4453 //Only support 2 possible Network Advertisement IPv6 address
4454 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4455 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4456 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4457 tANI_U8 srcIPv6AddrValid : 1;
4458 tANI_U8 targetIPv6Addr1Valid : 1;
4459 tANI_U8 targetIPv6Addr2Valid : 1;
4460 tANI_U8 reserved1 : 5;
4461 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004462 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004463 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004464} tHalNSOffloadParams;
4465
4466typedef PACKED_PRE struct PACKED_POST
4467{
4468 tANI_U8 offloadType;
4469 tANI_U8 enableOrDisable;
4470 PACKED_PRE union PACKED_POST
4471 {
4472 tANI_U8 hostIpv4Addr [4];
4473 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4474 } params;
4475} tHalHostOffloadReq, *tpHalHostOffloadReq;
4476
4477typedef PACKED_PRE struct PACKED_POST
4478{
4479 tHalMsgHeader header;
4480 tHalHostOffloadReq hostOffloadParams;
4481 tHalNSOffloadParams nsOffloadParams;
4482} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4483
Leo Chang397deb72013-08-22 11:33:16 -07004484
4485#ifdef FEATURE_WLAN_LPHB
4486typedef enum
4487{
4488 WIFI_HB_SET_ENABLE = 0x0001,
4489 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4490 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4491 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4492 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4493 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4494}tLowPowerHeartBeatCmdType ;
4495
4496#define MAX_FLITER_SIZE 64
4497/*---------------------------------------------------------------------------
4498 *FEATURE_WLAN_LPHB REQ
4499 *--------------------------------------------------------------------------*/
4500typedef PACKED_PRE struct PACKED_POST
4501{
4502 uint32 hostIpv4Addr;
4503 uint32 destIpv4Addr;
4504 uint16 hostPort;
4505 uint16 destPort;
4506 uint16 timeOutSec; // in seconds
4507 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004508 uint16 timePeriodSec; // in seconds
4509 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004510} tlowPowerHeartBeatParamsTcpStruct;
4511
4512typedef PACKED_PRE struct PACKED_POST
4513{
4514 uint32 hostIpv4Addr;
4515 uint32 destIpv4Addr;
4516 uint16 hostPort;
4517 uint16 destPort;
4518 uint16 timePeriodSec;// in seconds
4519 uint16 timeOutSec; // in seconds
4520 tSirMacAddr gatewayMacAddr;
4521} tlowPowerHeartBeatParamsUdpStruct;
4522
4523typedef PACKED_PRE struct PACKED_POST
4524{
4525 uint32 offset;
4526 uint32 filterLength;
4527 uint8 filter[MAX_FLITER_SIZE];
4528} tlowPowerHeartBeatFilterStruct;
4529
4530typedef PACKED_PRE struct PACKED_POST
4531{
4532 uint8 heartBeatEnable;
4533 uint8 heartBeatType; //TCP or UDP
4534} tlowPowerHeartBeatEnableStruct;
4535
4536typedef PACKED_PRE struct PACKED_POST
4537{
4538 uint8 dummy;
4539} tlowPowerHeartBeatNetworkInfoStruct;
4540
4541
4542typedef PACKED_PRE struct PACKED_POST
4543{
4544 uint8 sessionIdx;
4545 uint16 lowPowerHeartBeatCmdType;
4546 PACKED_PRE union PACKED_PRO
4547 {
4548 tlowPowerHeartBeatEnableStruct control;
4549 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4550 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4551 tlowPowerHeartBeatParamsUdpStruct udpParams;
4552 tlowPowerHeartBeatNetworkInfoStruct info;
4553 }options;
4554} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4555
4556
4557typedef PACKED_PRE struct PACKED_POST
4558{
4559 tHalMsgHeader header;
4560 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4561} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4562
4563/*---------------------------------------------------------------------------
4564 * FEATURE_WLAN_LPHB RSP
4565 *--------------------------------------------------------------------------*/
4566
4567typedef PACKED_PRE struct PACKED_POST
4568{
4569 /* success or failure */
4570 uint8 sessionIdx;
4571 uint32 status;
4572 uint16 lowPowerHeartBeatCmdType;
4573}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4574
4575typedef PACKED_PRE struct PACKED_POST
4576{
4577 tHalMsgHeader header;
4578 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4579}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4580
4581
4582/*---------------------------------------------------------------------------
4583 * FEATURE_WLAN_LPHB IND
4584 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004585#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4586#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4587
4588#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4589#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004590#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004591
Kumar Anandea78e792013-10-10 23:47:01 -07004592
4593#define WIFI_LPHB_PROTO_UDP 0x01
4594#define WIFI_LPHB_PROTO_TCP 0x02
4595
Leo Chang397deb72013-08-22 11:33:16 -07004596typedef PACKED_PRE struct PACKED_POST
4597{
4598 uint8 bssIdx;
4599 uint8 sessionIdx;
4600 uint8 protocolType; /*TCP or UDP*/
4601 uint8 eventReason;
4602
4603}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4604
4605typedef PACKED_PRE struct PACKED_POST
4606{
4607 tHalMsgHeader header;
4608 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4609}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4610
4611#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004612
4613#ifdef FEATURE_WLAN_BATCH_SCAN
4614
4615/*---------------------------------------------------------------------------
4616 * WLAN_HAL_BATCHSCAN_SET_REQ
4617 *--------------------------------------------------------------------------*/
4618typedef PACKED_PRE struct PACKED_POST
4619{
4620 /* Scan Frerquency - default to 30Sec*/
4621 tANI_U32 scanInterval;
4622 tANI_U32 numScan2Batch;
4623 tANI_U32 bestNetworks;
4624 tANI_U8 rfBand;
4625 tANI_U8 rtt;
4626} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4627
4628typedef PACKED_PRE struct PACKED_POST
4629{
4630 tHalMsgHeader header;
4631 tHalBatchScanSetParams batchScanParams;
4632} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4633
4634/*---------------------------------------------------------------------------
4635 * WLAN_HAL_BATCHSCAN_SET_RSP
4636 *--------------------------------------------------------------------------*/
4637typedef PACKED_PRE struct PACKED_POST
4638{
4639 tANI_U32 supportedMscan;
4640} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4641
4642typedef PACKED_PRE struct PACKED_POST
4643{
4644 tHalMsgHeader header;
4645 tHalBatchScanSetRspParam setBatchScanRspParam;
4646} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4647
4648/*---------------------------------------------------------------------------
4649* WLAN_HAL_BATCHSCAN_STOP_IND
4650*--------------------------------------------------------------------------*/
4651typedef PACKED_PRE struct PACKED_POST
4652{
4653 tANI_U32 param;
4654} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4655
4656typedef PACKED_PRE struct PACKED_POST
4657{
4658 tHalMsgHeader header;
4659 tHalBatchScanStopIndParam param;
4660} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4661
4662/*---------------------------------------------------------------------------
4663* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4664*--------------------------------------------------------------------------*/
4665typedef PACKED_PRE struct PACKED_POST
4666{
4667 tANI_U32 param;
4668} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4669
4670typedef PACKED_PRE struct PACKED_POST
4671{
4672 tHalMsgHeader header;
4673 tHalBatchScanTriggerResultParam param;
4674} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4675
4676/*---------------------------------------------------------------------------
4677 * WLAN_HAL_BATCHSCAN_GET_RSP
4678 *--------------------------------------------------------------------------*/
4679typedef PACKED_PRE struct PACKED_POST
4680{
4681 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004682 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004683 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304684 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004685 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4686 tANI_U32 timestamp;
4687} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4688
4689typedef PACKED_PRE struct PACKED_POST
4690{
4691 tANI_U32 scanId; /* Scan List ID. */
4692 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4693 tANI_U32 numNetworksInScanList;
4694 /* Variable data ptr: Number of AP in Scan List */
4695 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4696 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4697 tANI_U8 scanList[1];
4698} tHalBatchScanList, *tpHalBatchScanList;
4699
4700typedef PACKED_PRE struct PACKED_POST
4701{
4702 tANI_U32 timestamp;
4703 tANI_U32 numScanLists;
4704 boolean isLastResult;
4705 /* Variable Data ptr: Number of Scan Lists*/
4706 /* following isLastResult is data of type tHalBatchScanList
4707 * of sizeof(tHalBatchScanList) * numScanLists*/
4708 tANI_U8 scanResults[1];
4709} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4710
4711typedef PACKED_PRE struct PACKED_POST
4712{
4713 tHalMsgHeader header;
4714 tHalBatchScanResultIndParam resultIndMsgParam;
4715} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4716
4717#endif
4718
Jeff Johnson295189b2012-06-20 16:38:30 -07004719/*---------------------------------------------------------------------------
4720 * WLAN_HAL_KEEP_ALIVE_REQ
4721 *--------------------------------------------------------------------------*/
4722/* Packet Types. */
4723#define HAL_KEEP_ALIVE_NULL_PKT 1
4724#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4725
4726/* Enable or disable keep alive */
4727#define HAL_KEEP_ALIVE_DISABLE 0
4728#define HAL_KEEP_ALIVE_ENABLE 1
4729
4730/* Keep Alive request. */
4731typedef PACKED_PRE struct PACKED_POST
4732{
4733 tANI_U8 packetType;
4734 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304735 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004736 tHalIpv4Addr destIpv4Addr;
4737 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004738 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004739} tHalKeepAliveReq, *tpHalKeepAliveReq;
4740
4741typedef PACKED_PRE struct PACKED_POST
4742{
4743 tHalMsgHeader header;
4744 tHalKeepAliveReq KeepAliveParams;
4745} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4746
4747/*---------------------------------------------------------------------------
4748 * WLAN_HAL_SET_RSSI_THRESH_REQ
4749 *--------------------------------------------------------------------------*/
4750typedef PACKED_PRE struct PACKED_POST
4751{
4752 tANI_S8 ucRssiThreshold1 : 8;
4753 tANI_S8 ucRssiThreshold2 : 8;
4754 tANI_S8 ucRssiThreshold3 : 8;
4755 tANI_U8 bRssiThres1PosNotify : 1;
4756 tANI_U8 bRssiThres1NegNotify : 1;
4757 tANI_U8 bRssiThres2PosNotify : 1;
4758 tANI_U8 bRssiThres2NegNotify : 1;
4759 tANI_U8 bRssiThres3PosNotify : 1;
4760 tANI_U8 bRssiThres3NegNotify : 1;
4761 tANI_U8 bReserved10 : 2;
4762} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304763
Jeff Johnson295189b2012-06-20 16:38:30 -07004764typedef PACKED_PRE struct PACKED_POST
4765{
4766 tHalMsgHeader header;
4767 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004768} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004769
4770/*---------------------------------------------------------------------------
4771 * WLAN_HAL_ENTER_UAPSD_REQ
4772 *--------------------------------------------------------------------------*/
4773typedef PACKED_PRE struct PACKED_POST
4774{
4775 tANI_U8 bkDeliveryEnabled:1;
4776 tANI_U8 beDeliveryEnabled:1;
4777 tANI_U8 viDeliveryEnabled:1;
4778 tANI_U8 voDeliveryEnabled:1;
4779 tANI_U8 bkTriggerEnabled:1;
4780 tANI_U8 beTriggerEnabled:1;
4781 tANI_U8 viTriggerEnabled:1;
4782 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004783 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004784} tUapsdReqParams, *tpUapsdReqParams;
4785
4786typedef PACKED_PRE struct PACKED_POST
4787{
4788 tHalMsgHeader header;
4789 tUapsdReqParams enterUapsdParams;
4790} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4791
4792/*---------------------------------------------------------------------------
4793 * WLAN_HAL_EXIT_UAPSD_REQ
4794 *--------------------------------------------------------------------------*/
4795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004798 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004799} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4800
Kumar Anandea78e792013-10-10 23:47:01 -07004801#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4802#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004803/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004804 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4805 *--------------------------------------------------------------------------*/
4806typedef PACKED_PRE struct PACKED_POST
4807{
4808 tANI_U32 selfStaIdx:8;
4809 tANI_U32 ucPtrnId:8; // Pattern ID
4810 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4811 tANI_U32 uPtrnIntervalMs; // In msec
4812 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4813} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4814
4815typedef PACKED_PRE struct PACKED_POST
4816{
4817 tHalMsgHeader header;
4818 tHalAddPeriodicTxPtrn ptrnParams;
4819} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4820
4821/*---------------------------------------------------------------------------
4822 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4823 *--------------------------------------------------------------------------*/
4824typedef PACKED_PRE struct PACKED_POST
4825{
4826 tANI_U32 selfStaIdx:8;
4827 tANI_U32 rsvd:24;
4828 /* Bitmap of pattern IDs that needs to be deleted */
4829 tANI_U32 uPatternIdBitmap;
4830} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4831
4832typedef PACKED_PRE struct PACKED_POST
4833{
4834 tHalMsgHeader header;
4835 tHalDelPeriodicTxPtrn ptrnParams;
4836} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4837
4838/*---------------------------------------------------------------------------
4839 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4840 *--------------------------------------------------------------------------*/
4841typedef PACKED_PRE struct PACKED_POST
4842{
4843 /* Type of Failure indication */
4844 tANI_U32 bssIdx:8;
4845 tANI_U32 selfStaIdx:8;
4846 tANI_U32 rsvd:16;
4847 tANI_U32 status;
4848 tANI_U32 patternIdBitmap;
4849} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4850
4851typedef PACKED_PRE struct PACKED_POST
4852{
4853 tHalMsgHeader header;
4854 tHalPeriodicTxPtrnFwInd fwIndParams;
4855} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4856
4857/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004858 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4859 *--------------------------------------------------------------------------*/
4860#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4861#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4862
4863typedef PACKED_PRE struct PACKED_POST
4864{
4865 tANI_U8 ucPatternId; // Pattern ID
4866 // Pattern byte offset from beginning of the 802.11 packet to start of the
4867 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304868 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004869 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4870 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4871 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4872 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4873 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4874 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004875 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004876} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4877
4878typedef PACKED_PRE struct PACKED_POST
4879{
4880 tHalMsgHeader header;
4881 tHalWowlAddBcastPtrn ptrnParams;
4882} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304883
Jeff Johnsone7245742012-09-05 17:12:55 -07004884
4885
Jeff Johnson295189b2012-06-20 16:38:30 -07004886/*---------------------------------------------------------------------------
4887 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4888 *--------------------------------------------------------------------------*/
4889typedef PACKED_PRE struct PACKED_POST
4890{
4891 /* Pattern ID of the wakeup pattern to be deleted */
4892 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004893 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004894} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4895
4896typedef PACKED_PRE struct PACKED_POST
4897{
4898 tHalMsgHeader header;
4899 tHalWowlDelBcastPtrn ptrnParams;
4900} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4901
4902/*---------------------------------------------------------------------------
4903 * WLAN_HAL_ENTER_WOWL_REQ
4904 *--------------------------------------------------------------------------*/
4905typedef PACKED_PRE struct PACKED_POST
4906{
4907 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304908 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004909
4910 /* Magic pattern */
4911 tSirMacAddr magicPtrn;
4912
Dino Mycle8afbac12014-07-04 22:06:17 +05304913 /* Enables/disables packet pattern filtering in firmware.
4914 Enabling this flag enables broadcast pattern matching
4915 in Firmware. If unicast pattern matching is also desired,
4916 ucUcastPatternFilteringEnable flag must be set tot true
4917 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004918 */
4919 tANI_U8 ucPatternFilteringEnable;
4920
Dino Mycle8afbac12014-07-04 22:06:17 +05304921 /* Enables/disables unicast packet pattern filtering.
4922 This flag specifies whether we want to do pattern match
4923 on unicast packets as well and not just broadcast packets.
4924 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004925 (main controlling flag) is set to false
4926 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304927 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004928
Dino Mycle8afbac12014-07-04 22:06:17 +05304929 /* This configuration is valid only when magicPktEnable=1.
4930 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004931 * Channel Switch Action Frame.
4932 */
4933 tANI_U8 ucWowChnlSwitchRcv;
4934
Dino Mycle8afbac12014-07-04 22:06:17 +05304935 /* This configuration is valid only when magicPktEnable=1.
4936 * It requests hardware to wake up when it receives the
4937 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004938 */
4939 tANI_U8 ucWowDeauthRcv;
4940
Dino Mycle8afbac12014-07-04 22:06:17 +05304941 /* This configuration is valid only when magicPktEnable=1.
4942 * It requests hardware to wake up when it receives the
4943 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004944 */
4945 tANI_U8 ucWowDisassocRcv;
4946
Dino Mycle8afbac12014-07-04 22:06:17 +05304947 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004948 * It requests hardware to wake up when it has missed
4949 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304950 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004951 */
4952 tANI_U8 ucWowMaxMissedBeacons;
4953
Dino Mycle8afbac12014-07-04 22:06:17 +05304954 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004955 * This is a timeout value in units of microsec. It requests
4956 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304957 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004958 */
4959 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304960
Jeff Johnson295189b2012-06-20 16:38:30 -07004961 /* This configuration directs the WoW packet filtering to look for EAP-ID
4962 * requests embedded in EAPOL frames and use this as a wake source.
4963 */
4964 tANI_U8 ucWoWEAPIDRequestEnable;
4965
4966 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4967 * requests and use this as a wake source.
4968 */
4969 tANI_U8 ucWoWEAPOL4WayEnable;
4970
4971 /* This configuration allows a host wakeup on an network scan offload match.
4972 */
4973 tANI_U8 ucWowNetScanOffloadMatch;
4974
4975 /* This configuration allows a host wakeup on any GTK rekeying error.
4976 */
4977 tANI_U8 ucWowGTKRekeyError;
4978
4979 /* This configuration allows a host wakeup on BSS connection loss.
4980 */
4981 tANI_U8 ucWoWBSSConnLoss;
4982
Jeff Johnsone7245742012-09-05 17:12:55 -07004983 tANI_U8 bssIdx;
4984
Jeff Johnson295189b2012-06-20 16:38:30 -07004985} tHalWowlEnterParams, *tpHalWowlEnterParams;
4986
4987typedef PACKED_PRE struct PACKED_POST
4988{
4989 tHalMsgHeader header;
4990 tHalWowlEnterParams enterWowlParams;
4991} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4992
4993/*---------------------------------------------------------------------------
4994 * WLAN_HAL_EXIT_WOWL_REQ
4995 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004996
Jeff Johnson295189b2012-06-20 16:38:30 -07004997typedef PACKED_PRE struct PACKED_POST
4998{
Jeff Johnsone7245742012-09-05 17:12:55 -07004999 tANI_U8 bssIdx;
5000
5001} tHalWowlExitParams, *tpHalWowlExitParams;
5002
5003typedef PACKED_PRE struct PACKED_POST
5004{
5005 tHalMsgHeader header;
5006 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005007} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5008
5009/*---------------------------------------------------------------------------
5010 * WLAN_HAL_GET_RSSI_REQ
5011 *--------------------------------------------------------------------------*/
5012typedef PACKED_PRE struct PACKED_POST
5013{
5014 tHalMsgHeader header;
5015} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5016
Anand Kumar012623a2013-01-11 17:00:00 -08005017typedef PACKED_PRE struct PACKED_POST
5018{
5019 /* Valid STA Idx for per STA stats request */
5020 tANI_U32 staId;
5021
5022}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5023
5024
5025/*---------------------------------------------------------------------------
5026 * WLAN_HAL_GET_ROAM_RSSI_REQ
5027 *--------------------------------------------------------------------------*/
5028typedef PACKED_PRE struct PACKED_POST
5029{
5030 tHalMsgHeader header;
5031 tHalRoamRssiReqParams roamRssiReqParams;
5032} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5033
5034
Jeff Johnson295189b2012-06-20 16:38:30 -07005035/*---------------------------------------------------------------------------
5036 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5037 *--------------------------------------------------------------------------*/
5038typedef PACKED_PRE struct PACKED_POST {
5039 tANI_U8 staidx; // STA index
5040 tANI_U8 ac; // Access Category
5041 tANI_U8 up; // User Priority
5042 tANI_U32 srvInterval; // Service Interval
5043 tANI_U32 susInterval; // Suspend Interval
5044 tANI_U32 delayInterval; // Delay Interval
5045} tUapsdInfo, tpUapsdInfo;
5046
5047typedef PACKED_PRE struct PACKED_POST
5048{
5049 tHalMsgHeader header;
5050 tUapsdInfo enableUapsdAcParams;
5051} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5052
5053/*---------------------------------------------------------------------------
5054 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5055 *--------------------------------------------------------------------------*/
5056typedef PACKED_PRE struct PACKED_POST {
5057 tANI_U8 setMcstBcstFilterSetting;
5058 tANI_U8 setMcstBcstFilter;
5059} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5060
5061typedef PACKED_PRE struct PACKED_POST
5062{
5063 tHalMsgHeader header;
5064 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5065} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5066
5067/*---------------------------------------------------------------------------
5068 * WLAN_HAL_ENTER_IMPS_RSP
5069 *--------------------------------------------------------------------------*/
5070typedef PACKED_PRE struct PACKED_POST
5071{
5072 /* success or failure */
5073 tANI_U32 status;
5074} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5075
5076typedef PACKED_PRE struct PACKED_POST
5077{
5078 tHalMsgHeader header;
5079 tHalEnterImpsRspParams enterImpsRspParams;
5080} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5081
5082/*---------------------------------------------------------------------------
5083 * WLAN_HAL_EXIT_IMPS_RSP
5084 *--------------------------------------------------------------------------*/
5085typedef PACKED_PRE struct PACKED_POST
5086{
5087 /* success or failure */
5088 tANI_U32 status;
5089} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5090
5091typedef PACKED_PRE struct PACKED_POST
5092{
5093 tHalMsgHeader header;
5094 tHalExitImpsRspParams exitImpsRspParams;
5095} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5096
5097/*---------------------------------------------------------------------------
5098 * WLAN_HAL_ENTER_BMPS_RSP
5099 *--------------------------------------------------------------------------*/
5100typedef PACKED_PRE struct PACKED_POST
5101{
5102 /* success or failure */
5103 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005104 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005105} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5106
5107typedef PACKED_PRE struct PACKED_POST
5108{
5109 tHalMsgHeader header;
5110 tHalEnterBmpsRspParams enterBmpsRspParams;
5111} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5112
5113/*---------------------------------------------------------------------------
5114 * WLAN_HAL_EXIT_BMPS_RSP
5115 *--------------------------------------------------------------------------*/
5116typedef PACKED_PRE struct PACKED_POST
5117{
5118 /* success or failure */
5119 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005120 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005121} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5122
5123typedef PACKED_PRE struct PACKED_POST
5124{
5125 tHalMsgHeader header;
5126 tHalExitBmpsRspParams exitBmpsRspParams;
5127} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5128
5129/*---------------------------------------------------------------------------
5130 * WLAN_HAL_ENTER_UAPSD_RSP
5131 *--------------------------------------------------------------------------*/
5132typedef PACKED_PRE struct PACKED_POST
5133{
5134 /* success or failure */
5135 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005136 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005137}tUapsdRspParams, *tpUapsdRspParams;
5138
5139typedef PACKED_PRE struct PACKED_POST
5140{
5141 tHalMsgHeader header;
5142 tUapsdRspParams enterUapsdRspParams;
5143} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5144
5145/*---------------------------------------------------------------------------
5146 * WLAN_HAL_EXIT_UAPSD_RSP
5147 *--------------------------------------------------------------------------*/
5148typedef PACKED_PRE struct PACKED_POST
5149{
5150 /* success or failure */
5151 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005152 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005153} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5154
5155typedef PACKED_PRE struct PACKED_POST
5156{
5157 tHalMsgHeader header;
5158 tHalExitUapsdRspParams exitUapsdRspParams;
5159} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5160
5161/*---------------------------------------------------------------------------
5162 * WLAN_HAL_RSSI_NOTIFICATION_IND
5163 *--------------------------------------------------------------------------*/
5164typedef PACKED_PRE struct PACKED_POST
5165{
5166 tANI_U32 bRssiThres1PosCross : 1;
5167 tANI_U32 bRssiThres1NegCross : 1;
5168 tANI_U32 bRssiThres2PosCross : 1;
5169 tANI_U32 bRssiThres2NegCross : 1;
5170 tANI_U32 bRssiThres3PosCross : 1;
5171 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005172 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005173 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005174 tANI_U32 isBTCoexCompromise : 1;
5175 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005176 tANI_S8 refRssiThreshold1;
5177 tANI_S8 refRssiThreshold2;
5178 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005179} tHalRSSINotification, *tpHalRSSINotification;
5180
5181typedef PACKED_PRE struct PACKED_POST
5182{
5183 tHalMsgHeader header;
5184 tHalRSSINotification rssiNotificationParams;
5185} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5186
5187/*---------------------------------------------------------------------------
5188 * WLAN_HAL_GET_RSSI_RSP
5189 *--------------------------------------------------------------------------*/
5190typedef PACKED_PRE struct PACKED_POST
5191{
5192 /* success or failure */
5193 tANI_U32 status;
5194 tANI_S8 rssi;
5195} tHalGetRssiParams, *tpHalGetRspParams;
5196
5197typedef PACKED_PRE struct PACKED_POST
5198{
5199 tHalMsgHeader header;
5200 tHalGetRssiParams rssiRspParams;
5201} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5202
5203/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005204 * WLAN_HAL_GET_ROAM_RSSI_RSP
5205 *--------------------------------------------------------------------------*/
5206typedef PACKED_PRE struct PACKED_POST
5207{
5208 /* success or failure */
5209 tANI_U32 status;
5210
5211 tANI_U8 staId;
5212 tANI_S8 rssi;
5213} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5214
5215typedef PACKED_PRE struct PACKED_POST
5216{
5217 tHalMsgHeader header;
5218 tHalGetRoamRssiParams roamRssiRspParams;
5219} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5220
5221/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005222 * WLAN_HAL_ENTER_WOWL_RSP
5223 *--------------------------------------------------------------------------*/
5224typedef PACKED_PRE struct PACKED_POST
5225{
5226 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005227 tANI_U32 status;
5228 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005229} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5230
5231typedef PACKED_PRE struct PACKED_POST
5232{
5233 tHalMsgHeader header;
5234 tHalEnterWowlRspParams enterWowlRspParams;
5235} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5236
5237/*---------------------------------------------------------------------------
5238 * WLAN_HAL_EXIT_WOWL_RSP
5239 *--------------------------------------------------------------------------*/
5240typedef PACKED_PRE struct PACKED_POST
5241{
5242 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005243 tANI_U32 status;
5244 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005245} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5246
5247typedef PACKED_PRE struct PACKED_POST
5248{
5249 tHalMsgHeader header;
5250 tHalExitWowlRspParams exitWowlRspParams;
5251} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5252
5253/*---------------------------------------------------------------------------
5254 * WLAN_HAL_ADD_BCN_FILTER_RSP
5255 *--------------------------------------------------------------------------*/
5256typedef PACKED_PRE struct PACKED_POST
5257{
5258 /* success or failure */
5259 tANI_U32 status;
5260} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5261
5262typedef PACKED_PRE struct PACKED_POST
5263{
5264 tHalMsgHeader header;
5265 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5266} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5267
5268/*---------------------------------------------------------------------------
5269 * WLAN_HAL_REM_BCN_FILTER_RSP
5270 *--------------------------------------------------------------------------*/
5271typedef PACKED_PRE struct PACKED_POST
5272{
5273 /* success or failure */
5274 tANI_U32 status;
5275} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5276
5277typedef PACKED_PRE struct PACKED_POST
5278{
5279 tHalMsgHeader header;
5280 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5281} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5282
5283/*---------------------------------------------------------------------------
5284 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5285 *--------------------------------------------------------------------------*/
5286typedef PACKED_PRE struct PACKED_POST
5287{
5288 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005289 tANI_U32 status;
5290 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005291} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5292
5293typedef PACKED_PRE struct PACKED_POST
5294{
5295 tHalMsgHeader header;
5296 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5297} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5298
5299/*---------------------------------------------------------------------------
5300 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5301 *--------------------------------------------------------------------------*/
5302typedef PACKED_PRE struct PACKED_POST
5303{
5304 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005305 tANI_U32 status;
5306 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005307} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5308
5309typedef PACKED_PRE struct PACKED_POST
5310{
5311 tHalMsgHeader header;
5312 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5313} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5314
5315/*---------------------------------------------------------------------------
5316 * WLAN_HAL_HOST_OFFLOAD_RSP
5317 *--------------------------------------------------------------------------*/
5318typedef PACKED_PRE struct PACKED_POST
5319{
5320 /* success or failure */
5321 tANI_U32 status;
5322} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5323
5324typedef PACKED_PRE struct PACKED_POST
5325{
5326 tHalMsgHeader header;
5327 tHalHostOffloadRspParams hostOffloadRspParams;
5328} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5329
5330/*---------------------------------------------------------------------------
5331 * WLAN_HAL_KEEP_ALIVE_RSP
5332 *--------------------------------------------------------------------------*/
5333typedef PACKED_PRE struct PACKED_POST
5334{
5335 /* success or failure */
5336 tANI_U32 status;
5337} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5338
5339typedef PACKED_PRE struct PACKED_POST
5340{
5341 tHalMsgHeader header;
5342 tHalKeepAliveRspParams keepAliveRspParams;
5343} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5344
5345/*---------------------------------------------------------------------------
5346 * WLAN_HAL_SET_RSSI_THRESH_RSP
5347 *--------------------------------------------------------------------------*/
5348typedef PACKED_PRE struct PACKED_POST
5349{
5350 /* success or failure */
5351 tANI_U32 status;
5352} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5353
5354typedef PACKED_PRE struct PACKED_POST
5355{
5356 tHalMsgHeader header;
5357 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5358} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5359
5360/*---------------------------------------------------------------------------
5361 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5362 *--------------------------------------------------------------------------*/
5363typedef PACKED_PRE struct PACKED_POST
5364{
5365 /* success or failure */
5366 tANI_U32 status;
5367} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5368
5369typedef PACKED_PRE struct PACKED_POST
5370{
5371 tHalMsgHeader header;
5372 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5373} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5374
5375/*---------------------------------------------------------------------------
5376 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5377 *--------------------------------------------------------------------------*/
5378typedef PACKED_PRE struct PACKED_POST
5379{
5380 /* success or failure */
5381 tANI_U32 status;
5382} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5383
5384typedef PACKED_PRE struct PACKED_POST
5385{
5386 tHalMsgHeader header;
5387 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5388} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5389
5390/*---------------------------------------------------------------------------
5391 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5392 *--------------------------------------------------------------------------*/
5393
5394typedef PACKED_PRE struct PACKED_POST
5395{
5396 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5397 //the request has power constraints, this should be applied only to that session
5398 tSirMacAddr selfStaMacAddr;
5399 //In request,
5400 //power == MaxTx power to be used.
5401 tPowerdBm power;
5402
5403}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5404
5405
5406typedef PACKED_PRE struct PACKED_POST
5407{
5408 tHalMsgHeader header;
5409 tSetMaxTxPwrParams setMaxTxPwrParams;
5410}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5411
5412/*---------------------------------------------------------------------------
5413*WLAN_HAL_SET_MAX_TX_POWER_RSP
5414*--------------------------------------------------------------------------*/
5415
5416typedef PACKED_PRE struct PACKED_POST
5417{
5418 //power == tx power used for management frames.
5419 tPowerdBm power;
5420
5421 /* success or failure */
5422 tANI_U32 status;
5423}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5424
5425typedef PACKED_PRE struct PACKED_POST
5426{
5427 tHalMsgHeader header;
5428 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5429}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5430
Kumar Anandea78e792013-10-10 23:47:01 -07005431
Jeff Johnson295189b2012-06-20 16:38:30 -07005432/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005433 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5434 *--------------------------------------------------------------------------*/
5435
5436/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5437typedef enum
5438{
5439 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5440 // For 2.4GHz or 5GHz bands
5441 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5442 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5443 // End of valid enums
5444 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5445}tHalSetMaxTxPwrBandInfo;
5446
5447typedef PACKED_PRE struct PACKED_POST
5448{
5449 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005450 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005451}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5452
Kumar Anandea78e792013-10-10 23:47:01 -07005453
Arif Hussain36fda162013-08-30 14:46:57 -07005454typedef PACKED_PRE struct PACKED_POST
5455{
5456 tHalMsgHeader header;
5457 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5458}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5459
5460/*---------------------------------------------------------------------------
5461*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5462*--------------------------------------------------------------------------*/
5463
5464typedef PACKED_PRE struct PACKED_POST
5465{
5466 //power == tx power used for management frames.
5467 tPowerdBm power;
5468
5469 /* success or failure */
5470 tANI_U32 status;
5471}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5472
5473typedef PACKED_PRE struct PACKED_POST
5474{
5475 tHalMsgHeader header;
5476 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5477}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5478
5479/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005480 *WLAN_HAL_SET_TX_POWER_REQ
5481 *--------------------------------------------------------------------------*/
5482
5483typedef PACKED_PRE struct PACKED_POST
5484{
5485 /* TX Power in milli watts */
5486 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005487 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005488}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5489
5490
5491typedef PACKED_PRE struct PACKED_POST
5492{
5493 tHalMsgHeader header;
5494 tSetTxPwrReqParams setTxPwrReqParams;
5495}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5496
5497/*---------------------------------------------------------------------------
5498*WLAN_HAL_SET_TX_POWER_RSP
5499*--------------------------------------------------------------------------*/
5500
5501typedef PACKED_PRE struct PACKED_POST
5502{
5503 /* success or failure */
5504 tANI_U32 status;
5505}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5506
5507typedef PACKED_PRE struct PACKED_POST
5508{
5509 tHalMsgHeader header;
5510 tSetTxPwrRspParams setTxPwrRspParams;
5511}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5512
5513/*---------------------------------------------------------------------------
5514 *WLAN_HAL_GET_TX_POWER_REQ
5515 *--------------------------------------------------------------------------*/
5516
5517typedef PACKED_PRE struct PACKED_POST
5518{
5519 tANI_U8 staId;
5520}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5521
5522typedef PACKED_PRE struct PACKED_POST
5523{
5524 tHalMsgHeader header;
5525 tGetTxPwrReqParams getTxPwrReqParams;
5526}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5527
5528/*---------------------------------------------------------------------------
5529*WLAN_HAL_GET_TX_POWER_RSP
5530*--------------------------------------------------------------------------*/
5531
5532typedef PACKED_PRE struct PACKED_POST
5533{
5534 /* success or failure */
5535 tANI_U32 status;
5536
5537 /* TX Power in milli watts */
5538 tANI_U32 txPower;
5539}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5540
5541typedef PACKED_PRE struct PACKED_POST
5542{
5543 tHalMsgHeader header;
5544 tGetTxPwrRspParams getTxPwrRspParams;
5545}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5546
5547#ifdef WLAN_FEATURE_P2P
5548/*---------------------------------------------------------------------------
5549 *WLAN_HAL_SET_P2P_GONOA_REQ
5550 *--------------------------------------------------------------------------*/
5551
5552typedef PACKED_PRE struct PACKED_POST
5553{
5554 tANI_U8 opp_ps;
5555 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305556 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005557 tANI_U32 duration;
5558 tANI_U32 interval;
5559 tANI_U32 single_noa_duration;
5560 tANI_U8 psSelection;
5561}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5562
5563
5564typedef PACKED_PRE struct PACKED_POST
5565{
5566 tHalMsgHeader header;
5567 tSetP2PGONOAParams setP2PGONOAParams;
5568}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5569
5570/*---------------------------------------------------------------------------
5571*WLAN_HAL_SET_P2P_GONOA_RSP
5572*--------------------------------------------------------------------------*/
5573
5574typedef PACKED_PRE struct PACKED_POST
5575{
5576 /* success or failure */
5577 tANI_U32 status;
5578}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5579
5580typedef PACKED_PRE struct PACKED_POST
5581{
5582 tHalMsgHeader header;
5583 tSetP2PGONOARspParams setP2PGONOARspParams;
5584}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5585#endif
5586
5587/*---------------------------------------------------------------------------
5588 *WLAN_HAL_ADD_SELF_STA_REQ
5589 *--------------------------------------------------------------------------*/
5590
5591typedef PACKED_PRE struct PACKED_POST
5592{
5593 tSirMacAddr selfMacAddr;
5594 tANI_U32 status;
5595}tAddStaSelfParams, *tpAddStaSelfParams;
5596
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005597typedef PACKED_PRE struct PACKED_POST
5598{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005599 tHalMsgHeader header;
5600 tAddStaSelfParams addStaSelfParams;
5601}tAddStaSelfReq, *tpAddStaSelfReq;
5602
5603/* This V1 structure carries additionally the IFACE PERSONA
5604 of the interface as compared to the legacy control
5605 message */
5606typedef PACKED_PRE struct PACKED_POST
5607{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005608 tSirMacAddr selfMacAddr;
5609 tANI_U32 status;
5610 tHalIfacePersona iface_persona;
5611}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005612
5613typedef PACKED_PRE struct PACKED_POST
5614{
5615 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005616 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005617}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005618
5619/*---------------------------------------------------------------------------
5620*WLAN_HAL_ADD_SELF_STA_RSP
5621*--------------------------------------------------------------------------*/
5622
5623typedef PACKED_PRE struct PACKED_POST
5624{
5625 /* success or failure */
5626 tANI_U32 status;
5627
5628 /*Self STA Index */
5629 tANI_U8 selfStaIdx;
5630
5631 /* DPU Index (IGTK, PTK, GTK all same) */
5632 tANI_U8 dpuIdx;
5633
5634 /* DPU Signature */
5635 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305636
Jeff Johnson295189b2012-06-20 16:38:30 -07005637}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5638
5639typedef PACKED_PRE struct PACKED_POST
5640{
5641 tHalMsgHeader header;
5642 tAddStaSelfRspParams addStaSelfRspParams;
5643}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5644
5645
5646/*---------------------------------------------------------------------------
5647 WLAN_HAL_DEL_STA_SELF_REQ
5648---------------------------------------------------------------------------*/
5649
5650typedef PACKED_PRE struct PACKED_POST
5651{
5652 tSirMacAddr selfMacAddr;
5653
5654}tDelStaSelfParams, *tpDelStaSelfParams;
5655
5656typedef PACKED_PRE struct PACKED_POST
5657{
5658 tHalMsgHeader header;
5659 tDelStaSelfParams delStaSelfParams;
5660} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5661
5662
5663/*---------------------------------------------------------------------------
5664 WLAN_HAL_DEL_STA_SELF_RSP
5665---------------------------------------------------------------------------*/
5666
5667typedef PACKED_PRE struct PACKED_POST
5668{
5669 /*success or failure */
5670 tANI_U32 status;
5671
5672 tSirMacAddr selfMacAddr;
5673}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5674
5675typedef PACKED_PRE struct PACKED_POST
5676{
5677 tHalMsgHeader header;
5678 tDelStaSelfRspParams delStaSelfRspParams;
5679} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5680
5681
5682#ifdef WLAN_FEATURE_VOWIFI_11R
5683
5684/*---------------------------------------------------------------------------
5685 *WLAN_HAL_AGGR_ADD_TS_REQ
5686 *--------------------------------------------------------------------------*/
5687
5688typedef PACKED_PRE struct PACKED_POST
5689{
5690 /* Station Index */
5691 tANI_U16 staIdx;
5692
5693 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5694 /* This will carry the bitmap with the bit positions representing different AC.s*/
5695 tANI_U16 tspecIdx;
5696
5697 /* Tspec info per AC To program TPE with required parameters */
5698 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5699
5700 /* U-APSD Flags: 1b per AC. Encoded as follows:
5701 b7 b6 b5 b4 b3 b2 b1 b0 =
5702 X X X X BE BK VI VO */
5703 tANI_U8 uAPSD;
5704
5705 /* These parameters are for all the access categories */
5706 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5707 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5708 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5709
5710}tAggrAddTsParams, *tpAggrAddTsParams;
5711
5712
5713typedef PACKED_PRE struct PACKED_POST
5714{
5715 tHalMsgHeader header;
5716 tAggrAddTsParams aggrAddTsParam;
5717}tAggrAddTsReq, *tpAggrAddTsReq;
5718
5719/*---------------------------------------------------------------------------
5720*WLAN_HAL_AGGR_ADD_TS_RSP
5721*--------------------------------------------------------------------------*/
5722
5723typedef PACKED_PRE struct PACKED_POST
5724{
5725 /* success or failure */
5726 tANI_U32 status0;
5727 /* FIXME PRIMA for future use for 11R */
5728 tANI_U32 status1;
5729}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5730
5731typedef PACKED_PRE struct PACKED_POST
5732{
5733 tHalMsgHeader header;
5734 tAggrAddTsRspParams aggrAddTsRspParam;
5735}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5736
5737#endif
5738
5739/*---------------------------------------------------------------------------
5740 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5741 *--------------------------------------------------------------------------*/
5742typedef PACKED_PRE struct PACKED_POST
5743{
5744 tANI_U8 isAppsCpuAwake;
5745} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5746
5747typedef PACKED_PRE struct PACKED_POST
5748{
5749 tHalMsgHeader header;
5750 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5751} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5752
5753/*---------------------------------------------------------------------------
5754 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5755 *--------------------------------------------------------------------------*/
5756typedef PACKED_PRE struct PACKED_POST
5757{
5758 /* success or failure */
5759 tANI_U32 status;
5760} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5761
5762typedef PACKED_PRE struct PACKED_POST
5763{
5764 tHalMsgHeader header;
5765 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5766} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5767/*---------------------------------------------------------------------------
5768 * WLAN_HAL_DUMP_COMMAND_REQ
5769 *--------------------------------------------------------------------------*/
5770
5771typedef PACKED_PRE struct PACKED_POST
5772{
5773 tANI_U32 argument1;
5774 tANI_U32 argument2;
5775 tANI_U32 argument3;
5776 tANI_U32 argument4;
5777 tANI_U32 argument5;
5778
5779}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5780
5781typedef PACKED_PRE struct PACKED_POST
5782{
5783 tHalMsgHeader header;
5784 tHalDumpCmdReqParams dumpCmdReqParams;
5785} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5786
5787/*---------------------------------------------------------------------------
5788 * WLAN_HAL_DUMP_COMMAND_RSP
5789 *--------------------------------------------------------------------------*/
5790
5791typedef PACKED_PRE struct PACKED_POST
5792{
5793 /* success or failure */
5794 tANI_U32 status;
5795 /*Length of the responce message*/
5796 tANI_U32 rspLength;
5797 /*FiXME: Currently considering the the responce will be less than 100bytes */
5798 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305799
Jeff Johnson295189b2012-06-20 16:38:30 -07005800} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5801
5802typedef PACKED_PRE struct PACKED_POST
5803{
5804 tHalMsgHeader header;
5805 tHalDumpCmdRspParams dumpCmdRspParams;
5806} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5807
5808/*---------------------------------------------------------------------------
5809 *WLAN_HAL_COEX_IND
5810 *-------------------------------------------------------------------------*/
5811#define WLAN_COEX_IND_DATA_SIZE (4)
5812#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5813#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005814#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5815#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005816#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5817#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305818#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5819#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305820#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005821
5822typedef PACKED_PRE struct PACKED_POST
5823{
5824 /*Coex Indication Type*/
5825 tANI_U32 coexIndType;
5826
5827 /*Coex Indication Data*/
5828 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5829}tCoexIndParams,*tpCoexIndParams;
5830
5831typedef PACKED_PRE struct PACKED_POST
5832{
5833 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305834 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005835}tCoexIndMsg, *tpCoexIndMsg;
5836
5837/*---------------------------------------------------------------------------
5838 *WLAN_HAL_OTA_TX_COMPL_IND
5839 *-------------------------------------------------------------------------*/
5840
5841typedef PACKED_PRE struct PACKED_POST
5842{
5843 /*Tx Complete Indication Success or Failure*/
5844 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305845 /* Dialog token */
5846 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005847}tTxComplParams,*tpTxComplParams;
5848
5849typedef PACKED_PRE struct PACKED_POST
5850{
5851 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305852 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005853}tTxComplIndMsg, *tpTxComplIndMsg;
5854
5855/*---------------------------------------------------------------------------
5856 * WLAN_HAL_HOST_SUSPEND_IND
5857 *-------------------------------------------------------------------------*/
5858
5859typedef PACKED_PRE struct PACKED_POST
5860{
5861 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305862 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005863}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5864
5865typedef PACKED_PRE struct PACKED_POST
5866{
5867 tHalMsgHeader header;
5868 tHalWlanHostSuspendIndParam suspendIndParams;
5869}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5870
5871/*---------------------------------------------------------------------------
5872 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5873 *-------------------------------------------------------------------------*/
5874
5875typedef PACKED_PRE struct PACKED_POST
5876{
5877 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305878 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005879}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5880
5881typedef PACKED_PRE struct PACKED_POST
5882{
5883 tHalMsgHeader header;
5884 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5885}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5886
5887#ifdef WLAN_FEATURE_P2P
5888/*---------------------------------------------------------------------------
5889 *WLAN_HAL_NOA_ATTR_IND
5890 *-------------------------------------------------------------------------*/
5891
5892typedef PACKED_PRE struct PACKED_POST
5893{
5894 tANI_U8 index ;
5895 tANI_U8 oppPsFlag ;
5896 tANI_U16 ctWin ;
5897
5898 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005899 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005900 tANI_U32 uNoa1Duration;
5901 tANI_U32 uNoa1Interval;
5902 tANI_U32 uNoa1StartTime;
5903
5904 tANI_U16 uNoa2IntervalCnt;
5905 tANI_U16 rsvd2;
5906 tANI_U32 uNoa2Duration;
5907 tANI_U32 uNoa2Interval;
5908 tANI_U32 uNoa2StartTime;
5909
5910 tANI_U32 status;
5911}tNoaAttrIndParams, *tpNoaAttrIndParams;
5912
5913typedef PACKED_PRE struct PACKED_POST
5914{
5915 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305916 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005917}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005918
5919/*---------------------------------------------------------------------------
5920 *WLAN_HAL_NOA_START_IND
5921 *-------------------------------------------------------------------------*/
5922
5923typedef PACKED_PRE struct PACKED_POST
5924{
5925 tANI_U32 status;
5926 tANI_U32 bssIdx;
5927}tNoaStartIndParams, *tpNoaStartIndParams;
5928
5929typedef PACKED_PRE struct PACKED_POST
5930{
5931 tHalMsgHeader header;
5932 tNoaStartIndParams noaStartIndParams;
5933}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005934#endif
5935
5936/*---------------------------------------------------------------------------
5937 * WLAN_HAL_HOST_RESUME_REQ
5938 *-------------------------------------------------------------------------*/
5939
5940typedef PACKED_PRE struct PACKED_POST
5941{
5942 tANI_U8 configuredMcstBcstFilterSetting;
5943}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5944
5945typedef PACKED_PRE struct PACKED_POST
5946{
5947 tHalMsgHeader header;
5948 tHalWlanHostResumeReqParam resumeReqParams;
5949}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5950
5951/*---------------------------------------------------------------------------
5952 * WLAN_HAL_HOST_RESUME_RSP
5953 *--------------------------------------------------------------------------*/
5954typedef PACKED_PRE struct PACKED_POST
5955{
5956 /* success or failure */
5957 tANI_U32 status;
5958} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5959
5960typedef PACKED_PRE struct PACKED_POST
5961{
5962 tHalMsgHeader header;
5963 tHalHostResumeRspParams hostResumeRspParams;
5964} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5965
Anand Kumar012623a2013-01-11 17:00:00 -08005966typedef PACKED_PRE struct PACKED_POST
5967{
5968 tANI_U16 staIdx;
5969 // Peer MAC Address, whose BA session has timed out
5970 tSirMacAddr peerMacAddr;
5971 // TID for which a BA session timeout is being triggered
5972 tANI_U8 baTID;
5973 // DELBA direction
5974 // 1 - Originator
5975 // 0 - Recipient
5976 tANI_U8 baDirection;
5977 tANI_U32 reasonCode;
5978 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5979} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5980
5981typedef PACKED_PRE struct PACKED_POST
5982{
5983 tHalMsgHeader header;
5984 tHalWlanDelBaIndMsg hostdelBaParam;
5985} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5986
Jeff Johnson295189b2012-06-20 16:38:30 -07005987/*---------------------------------------------------------------------------
5988 *PNO Messages
5989 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005990/* Max number of channels that a network can be found on*/
5991/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5992 * be changed at same time
5993 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005994#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005995
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305996/*Max number of channels that a network can be found on*/
5997#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5998
Jeff Johnson295189b2012-06-20 16:38:30 -07005999/*Maximum numbers of networks supported by PNO*/
6000#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6001
6002/*The number of scan time intervals that can be programmed into PNO*/
6003#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6004
6005/*Maximum size of the probe template*/
6006#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6007
Dino Mycle8afbac12014-07-04 22:06:17 +05306008/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006009 Immediate - scanning will start immediately and PNO procedure will
6010 be repeated based on timer
6011 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006012 Resume - scanning will start on system resume
6013 Delay - start the scan timer to trigger PNO scan
6014 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006015typedef enum
6016{
6017 ePNO_MODE_IMMEDIATE,
6018 ePNO_MODE_ON_SUSPEND,
6019 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306020 ePNO_MODE_DELAY,
6021 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006022 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6023} ePNOMode;
6024
6025/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306026typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006027{
Dino Mycle8afbac12014-07-04 22:06:17 +05306028 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006029 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306030
Jeff Johnson295189b2012-06-20 16:38:30 -07006031 // Upper layer authentication types
6032 eAUTH_TYPE_WPA = 2,
6033 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306034
Jeff Johnson295189b2012-06-20 16:38:30 -07006035 eAUTH_TYPE_RSN = 4,
6036 eAUTH_TYPE_RSN_PSK = 5,
6037 eAUTH_TYPE_FT_RSN = 6,
6038 eAUTH_TYPE_FT_RSN_PSK = 7,
6039 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6040 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006041 eAUTH_TYPE_CCKM_WPA = 10,
6042 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306043 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6044 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306045
Jeff Johnson295189b2012-06-20 16:38:30 -07006046 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6047
6048}tAuthType;
6049
6050/* Encryption type */
6051typedef enum eEdType
6052{
6053 eED_ANY = 0,
6054 eED_NONE = 1,
6055 eED_WEP = 2,
6056 eED_TKIP = 3,
6057 eED_CCMP = 4,
6058 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306059
Jeff Johnson295189b2012-06-20 16:38:30 -07006060 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6061} tEdType;
6062
6063/* SSID broadcast type */
6064typedef enum eSSIDBcastType
6065{
6066 eBCAST_UNKNOWN = 0,
6067 eBCAST_NORMAL = 1,
6068 eBCAST_HIDDEN = 2,
6069
6070 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6071} tSSIDBcastType;
6072
Dino Mycle8afbac12014-07-04 22:06:17 +05306073/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006074 The network description for which PNO will have to look for
6075*/
6076typedef PACKED_PRE struct PACKED_POST
6077{
6078 /*SSID of the BSS*/
6079 tSirMacSSid ssId;
6080
6081 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306082 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006083
6084 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306085 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006086
Dino Mycle8afbac12014-07-04 22:06:17 +05306087 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006088 0 - if all channels */
6089 tANI_U8 ucChannelCount;
6090 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6091
6092 /*Indicates the RSSI threshold for the network to be considered*/
6093 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306094}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006095
6096typedef PACKED_PRE struct PACKED_POST
6097{
6098 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306099 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006100
Dino Mycle8afbac12014-07-04 22:06:17 +05306101 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006102 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306103 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006104
Dino Mycle8afbac12014-07-04 22:06:17 +05306105 /*e.g: 2 3
6106 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006107 - it will wait 2s between consecutive scans for 3 times
6108 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306109}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006110
Dino Mycle8afbac12014-07-04 22:06:17 +05306111/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006112 The network parameters to be sent to the PNO algorithm
6113*/
6114typedef PACKED_PRE struct PACKED_POST
6115{
6116 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306117 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006118
Dino Mycle8afbac12014-07-04 22:06:17 +05306119 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006120 two consecutive scan procedures
6121 If the desired is for a uniform timer that fires always at the exact same
6122 interval - one single value is to be set
6123 If there is a desire for a more complex - telescopic like timer multiple
6124 values can be set - once PNO reaches the end of the array it will
6125 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306126 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006127
6128}tScanTimersType;
6129
6130typedef PACKED_PRE struct PACKED_POST {
6131
6132 /*Enable PNO*/
6133 tANI_U32 enable;
6134
6135 /*Immediate, On Suspend, On Resume*/
6136 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306137
Jeff Johnson295189b2012-06-20 16:38:30 -07006138 /*Number of networks sent for PNO*/
6139 tANI_U32 ucNetworksCount;
6140
6141 /*The networks that PNO needs to look for*/
6142 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6143
6144 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306145 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006146
6147 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306148 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006149 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6150
6151 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306152 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006153 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6154
6155} tPrefNetwListParams, * tpPrefNetwListParams;
6156
6157/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306158 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006159*/
6160typedef PACKED_PRE struct PACKED_POST
6161{
6162 tHalMsgHeader header;
6163 tPrefNetwListParams prefNetwListParams;
6164} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6165
6166
Dino Mycle8afbac12014-07-04 22:06:17 +05306167/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006168 The network description for which PNO will have to look for
6169*/
6170typedef PACKED_PRE struct PACKED_POST
6171{
6172 /*SSID of the BSS*/
6173 tSirMacSSid ssId;
6174
6175 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306176 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006177
6178 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306179 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006180
6181 /*SSID broadcast type, normal, hidden or unknown*/
6182 tSSIDBcastType bcastNetworkType;
6183
Dino Mycle8afbac12014-07-04 22:06:17 +05306184 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006185 0 - if all channels */
6186 tANI_U8 ucChannelCount;
6187 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6188
6189 /*Indicates the RSSI threshold for the network to be considered*/
6190 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306191}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006192
6193typedef PACKED_PRE struct PACKED_POST {
6194
6195 /*Enable PNO*/
6196 tANI_U32 enable;
6197
6198 /*Immediate, On Suspend, On Resume*/
6199 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306200
Jeff Johnson295189b2012-06-20 16:38:30 -07006201 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306202 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006203
6204 /*The networks that PNO needs to look for*/
6205 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6206
6207 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306208 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006209
6210 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306211 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006212 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6213
6214 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306215 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006216 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6217
6218} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6219
6220/*
6221 Preferred network list request new
6222*/
6223typedef PACKED_PRE struct PACKED_POST
6224{
6225 tHalMsgHeader header;
6226 tPrefNetwListParamsNew prefNetwListParams;
6227} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6228
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006229#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6230typedef PACKED_PRE struct PACKED_POST
6231{
6232 tSirMacSSid ssId;
6233 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6234 tANI_U32 authentication;
6235 tEdType encryption;
6236 tEdType mcencryption;
6237 tANI_U8 ChannelCount;
6238 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6239}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006240
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006241typedef PACKED_PRE struct PACKED_POST
6242{
6243 tANI_U8 mdiePresent;
6244 tANI_U16 mobilityDomain;
6245}tMobilityDomainInfo;
6246
6247typedef PACKED_PRE struct PACKED_POST {
6248 eAniBoolean RoamScanOffloadEnabled;
6249 tANI_S8 LookupThreshold;
6250 tANI_U8 RoamRssiDiff;
6251 tANI_U8 ChannelCacheType;
6252 tANI_U8 Command;
6253 tANI_U8 StartScanReason;
6254 tANI_U16 NeighborScanTimerPeriod;
6255 tANI_U16 NeighborRoamScanRefreshPeriod;
6256 tANI_U16 NeighborScanChannelMinTime;
6257 tANI_U16 NeighborScanChannelMaxTime;
6258 tANI_U16 EmptyRefreshScanPeriod;
6259 tANI_U8 ValidChannelCount;
6260 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006261 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006262
6263 tANI_U16 us24GProbeSize;
6264 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6265 tANI_U16 us5GProbeSize;
6266 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6267 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006268 tANI_U8 nProbes;
6269 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006270 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006271 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006272 tANI_U8 RoamOffloadEnabled;
6273 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6274 tANI_U8 Prefer5GHz;
6275 tANI_U8 RoamRssiCatGap;
6276 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006277 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6278 tRoamNetworkType ConnectedNetwork;
6279 tMobilityDomainInfo MDID;
6280} tRoamCandidateListParams, * tpRoamCandidateListParams;
6281
6282typedef PACKED_PRE struct PACKED_POST
6283{
Kumar Anandea78e792013-10-10 23:47:01 -07006284 tHalMsgHeader header;
6285 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006286} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6287
6288typedef PACKED_PRE struct PACKED_POST
6289{
Kumar Anandea78e792013-10-10 23:47:01 -07006290 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006291
Kumar Anandea78e792013-10-10 23:47:01 -07006292 /* status of the request - just to indicate that PNO has acknowledged
6293 * the request and will start scanning */
6294 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006295} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6296#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006297
6298/*
6299 Preferred network list response
6300*/
6301typedef PACKED_PRE struct PACKED_POST
6302{
6303 tHalMsgHeader header;
6304
6305 /* status of the request - just to indicate that PNO has acknowledged
6306 * the request and will start scanning*/
6307 tANI_U32 status;
6308} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6309
6310/*
6311 Preferred network indication parameters
6312*/
6313typedef PACKED_PRE struct PACKED_POST {
6314
6315 /*Network that was found with the highest RSSI*/
6316 tSirMacSSid ssId;
6317
6318 /*Indicates the RSSI */
6319 tANI_U8 rssi;
6320
6321 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6322 tANI_U16 frameLength;
6323
6324} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6325
6326/*
6327 Preferred network found indication
6328*/
6329typedef PACKED_PRE struct PACKED_POST {
6330
6331 tHalMsgHeader header;
6332 tPrefNetwFoundParams prefNetwFoundParams;
6333} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6334
6335
6336typedef PACKED_PRE struct PACKED_POST {
6337
6338 /*RSSI Threshold*/
6339 tANI_U8 ucRssiThreshold;
6340
6341} tRssiFilterParams, * tpRssiFilterParams;
6342
Jeff Johnson295189b2012-06-20 16:38:30 -07006343/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306344 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006345*/
6346typedef PACKED_PRE struct PACKED_POST
6347{
6348 tHalMsgHeader header;
6349 tRssiFilterParams prefRSSIFilterParams;
6350} tSetRssiFilterReq, *tpSetRssiFilterReq;
6351
6352/*
6353 Set RSSI filter resp
6354*/
6355typedef PACKED_PRE struct PACKED_POST{
6356 tHalMsgHeader header;
6357 /*status of the request */
6358 tANI_U32 status;
6359} tSetRssiFilterResp, *tpSetRssiFilterResp;
6360/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306361 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006362*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306363typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006364{
6365
6366 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306367 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006368
6369 /*Lets PNO know that host has determined the regulatory domain*/
6370 tANI_U8 b11dResolved;
6371
6372 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306373 tANI_U8 ucChannelCount;
6374 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006375
6376 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306377 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006378
6379 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306380 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006381
6382 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306383 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006384
6385 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306386 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006387
6388 /*Cb State*/
6389 ePhyChanBondState cbState;
6390
6391} tUpdateScanParams, * tpUpdateScanParams;
6392
6393/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306394 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306395*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306396typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306397{
6398
6399 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306400 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306401
6402 /*Lets PNO know that host has determined the regulatory domain*/
6403 tANI_U8 b11dResolved;
6404
6405 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306406 tANI_U8 ucChannelCount;
6407 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306408
6409 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306410 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306411
6412 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306413 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306414
6415 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306416 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306417
6418 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306419 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306420
6421 /*Cb State*/
6422 ePhyChanBondState cbState;
6423
6424} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6425
6426/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006427 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306428 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006429*/
6430typedef PACKED_PRE struct PACKED_POST{
6431
6432 tHalMsgHeader header;
6433 tUpdateScanParams scanParams;
6434} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6435
6436/*
6437 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306438 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006439*/
6440typedef PACKED_PRE struct PACKED_POST{
6441
6442 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306443 tUpdateScanParamsEx scanParams;
6444} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6445
6446/*
6447 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306448 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306449*/
6450typedef PACKED_PRE struct PACKED_POST{
6451
6452 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006453
6454 /*status of the request */
6455 tANI_U32 status;
6456
6457} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6458
6459/*---------------------------------------------------------------------------
6460 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6461 *--------------------------------------------------------------------------*/
6462typedef PACKED_PRE struct PACKED_POST
6463{
6464 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6465 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6466 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6467 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6468} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6469
6470typedef PACKED_PRE struct PACKED_POST
6471{
6472 tHalMsgHeader header;
6473 tHalTxPerTrackingReqParam txPerTrackingParams;
6474} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6475
6476/*---------------------------------------------------------------------------
6477 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6478 *--------------------------------------------------------------------------*/
6479typedef PACKED_PRE struct PACKED_POST
6480{
6481 /* success or failure */
6482 tANI_U32 status;
6483} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6484
6485typedef PACKED_PRE struct PACKED_POST
6486{
6487 tHalMsgHeader header;
6488 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6489} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6490
6491/*---------------------------------------------------------------------------
6492 * WLAN_HAL_TX_PER_HIT_IND
6493 *--------------------------------------------------------------------------*/
6494typedef PACKED_PRE struct PACKED_POST
6495{
6496 tHalMsgHeader header;
6497}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6498
6499/*---------------------------------------------------------------------------
6500 *******************Packet Filtering Definitions Begin*******************
6501 *--------------------------------------------------------------------------*/
6502#define HAL_PROTOCOL_DATA_LEN 8
6503#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6504#define HAL_MAX_NUM_FILTERS 20
6505#define HAL_MAX_CMP_PER_FILTER 10
6506
6507typedef enum
6508{
6509 HAL_RCV_FILTER_TYPE_INVALID,
6510 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6511 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6512 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6513}tHalReceivePacketFilterType;
6514
Dino Mycle8afbac12014-07-04 22:06:17 +05306515typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006516{
6517 HAL_FILTER_PROTO_TYPE_INVALID,
6518 HAL_FILTER_PROTO_TYPE_MAC,
6519 HAL_FILTER_PROTO_TYPE_ARP,
6520 HAL_FILTER_PROTO_TYPE_IPV4,
6521 HAL_FILTER_PROTO_TYPE_IPV6,
6522 HAL_FILTER_PROTO_TYPE_UDP,
6523 HAL_FILTER_PROTO_TYPE_MAX
6524}tHalRcvPktFltProtocolType;
6525
Dino Mycle8afbac12014-07-04 22:06:17 +05306526typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006527{
6528 HAL_FILTER_CMP_TYPE_INVALID,
6529 HAL_FILTER_CMP_TYPE_EQUAL,
6530 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6531 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6532 HAL_FILTER_CMP_TYPE_MAX
6533}tHalRcvPktFltCmpFlagType;
6534
Dino Mycle8afbac12014-07-04 22:06:17 +05306535typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006536{
6537 tANI_U8 protocolLayer;
6538 tANI_U8 cmpFlag;
6539 tANI_U16 dataLength; /* Length of the data to compare */
6540 tANI_U8 dataOffset; /* from start of the respective frame header */
6541 tANI_U8 reserved; /* Reserved field */
6542 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6543 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6544}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6545
6546typedef PACKED_PRE struct PACKED_POST
6547{
6548 tANI_U8 filterId;
6549 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306550 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006551 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006552 tHalRcvPktFilterParams paramsData[1];
6553}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6554
6555typedef PACKED_PRE struct PACKED_POST
6556{
Jeff Johnsone7245742012-09-05 17:12:55 -07006557 tANI_U8 filterId;
6558 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306559 tANI_U8 numParams;
6560 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006561 tANI_U8 bssIdx;
6562 tHalRcvPktFilterParams paramsData[1];
6563}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6564
6565typedef PACKED_PRE struct PACKED_POST
6566{
Jeff Johnson295189b2012-06-20 16:38:30 -07006567 tHalMsgHeader header;
6568 tHalRcvPktFilterCfgType pktFilterCfg;
6569} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6570
Jeff Johnsone7245742012-09-05 17:12:55 -07006571typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006572{
6573 tANI_U8 dataOffset; /* from start of the respective frame header */
6574 tANI_U32 cMulticastAddr;
6575 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006576 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006577} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6578
6579typedef PACKED_PRE struct PACKED_POST
6580{
6581 /* success or failure */
6582 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006583 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006584} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6585
6586typedef PACKED_PRE struct PACKED_POST
6587{
6588 tHalMsgHeader header;
6589 tHalSetPktFilterRspParams pktFilterRspParams;
6590} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6591
Jeff Johnsone7245742012-09-05 17:12:55 -07006592typedef PACKED_PRE struct PACKED_POST
6593{
6594 tANI_U8 bssIdx;
6595} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006596
6597typedef PACKED_PRE struct PACKED_POST
6598{
6599 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006600 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006601} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6602
Jeff Johnsone7245742012-09-05 17:12:55 -07006603
Jeff Johnson295189b2012-06-20 16:38:30 -07006604typedef PACKED_PRE struct PACKED_POST
6605{
6606 tANI_U8 filterId;
6607 tANI_U32 matchCnt;
6608} tHalRcvFltPktMatchCnt;
6609typedef PACKED_PRE struct PACKED_POST
6610{
6611 /* Success or Failure */
6612 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306613 tANI_U32 matchCnt;
6614 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006615 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006616} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6617
6618typedef PACKED_PRE struct PACKED_POST
6619{
6620 tHalMsgHeader header;
6621 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6622} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6623
6624typedef PACKED_PRE struct PACKED_POST
6625{
6626 tANI_U32 status; /* only valid for response message */
6627 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006628 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006629}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6630
6631typedef PACKED_PRE struct PACKED_POST
6632{
6633 tHalMsgHeader header;
6634 tHalRcvFltPktClearParam filterClearParam;
6635} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6636
6637typedef PACKED_PRE struct PACKED_POST
6638{
6639 tHalMsgHeader header;
6640 tHalRcvFltPktClearParam filterClearParam;
6641} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6642
6643typedef PACKED_PRE struct PACKED_POST
6644{
Dino Mycle8afbac12014-07-04 22:06:17 +05306645 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006646 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006647}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6648
6649typedef PACKED_PRE struct PACKED_POST
6650{
6651 tHalMsgHeader header;
6652 tHalRcvFltMcAddrListType mcAddrList;
6653} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6654
6655typedef PACKED_PRE struct PACKED_POST
6656{
6657 tHalMsgHeader header;
6658 tHalRcvFltPktSetMcListRspType rspParam;
6659} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6660
6661
6662/*---------------------------------------------------------------------------
6663 *******************Packet Filtering Definitions End*******************
6664 *--------------------------------------------------------------------------*/
6665
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006666/*
6667 * There are two versions of this message
6668 * Version 1 : Base version
6669 * Current version : Base version + Max LI modulated DTIM
6670 */
6671typedef PACKED_PRE struct PACKED_POST
6672{
6673 /* Ignore DTIM */
6674 tANI_U32 uIgnoreDTIM;
6675
6676 /*DTIM Period*/
6677 tANI_U32 uDTIMPeriod;
6678
6679 /* Listen Interval */
6680 tANI_U32 uListenInterval;
6681
6682 /* Broadcast Multicast Filter */
6683 tANI_U32 uBcastMcastFilter;
6684
6685 /* Beacon Early Termination */
6686 tANI_U32 uEnableBET;
6687
6688 /* Beacon Early Termination Interval */
6689 tANI_U32 uBETInterval;
6690}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6691
6692typedef PACKED_PRE struct PACKED_POST
6693{
6694 tHalMsgHeader header;
6695 tSetPowerParamsVer1Type powerParams;
6696} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6697
Jeff Johnson295189b2012-06-20 16:38:30 -07006698typedef PACKED_PRE struct PACKED_POST
6699{
6700 /* Ignore DTIM */
6701 tANI_U32 uIgnoreDTIM;
6702
6703 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306704 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006705
6706 /* Listen Interval */
6707 tANI_U32 uListenInterval;
6708
6709 /* Broadcast Multicast Filter */
6710 tANI_U32 uBcastMcastFilter;
6711
6712 /* Beacon Early Termination */
6713 tANI_U32 uEnableBET;
6714
6715 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306716 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006717
6718 /* MAX LI for modulated DTIM */
6719 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006720}tSetPowerParamsType, *tpSetPowerParamsType;
6721
6722typedef PACKED_PRE struct PACKED_POST
6723{
6724 tHalMsgHeader header;
6725 tSetPowerParamsType powerParams;
6726} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6727
6728typedef PACKED_PRE struct PACKED_POST{
6729
6730 tHalMsgHeader header;
6731
6732 /*status of the request */
6733 tANI_U32 status;
6734
6735} tSetPowerParamsResp, *tpSetPowerParamsResp;
6736
6737/*---------------------------------------------------------------------------
6738 ****************Capability bitmap exchange definitions and macros starts*************
6739 *--------------------------------------------------------------------------*/
6740
Anand Kumar012623a2013-01-11 17:00:00 -08006741typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006742 MCC = 0,
6743 P2P = 1,
6744 DOT11AC = 2,
6745 SLM_SESSIONIZATION = 3,
6746 DOT11AC_OPMODE = 4,
6747 SAP32STA = 5,
6748 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006749 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006750 WLANACTIVE_OFFLOAD = 8,
6751 BEACON_OFFLOAD = 9,
6752 SCAN_OFFLOAD = 10,
6753 ROAM_OFFLOAD = 11,
6754 BCN_MISS_OFFLOAD = 12,
6755 STA_POWERSAVE = 13,
6756 STA_ADVANCED_PWRSAVE = 14,
6757 AP_UAPSD = 15,
6758 AP_DFS = 16,
6759 BLOCKACK = 17,
6760 PHY_ERR = 18,
6761 BCN_FILTER = 19,
6762 RTT = 20,
6763 RATECTRL = 21,
6764 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006765 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006766 SPECULATIVE_PS_POLL = 24,
6767 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006768 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006769 WLAN_SCAN_OFFLOAD = 27,
6770 WLAN_PERIODIC_TX_PTRN = 28,
6771 ADVANCE_TDLS = 29,
6772 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306773 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306774 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306775 CH_SWITCH_V1 = 33,
6776 HT40_OBSS_SCAN = 34,
6777 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006778 WLAN_MCADDR_FLT = 36,
6779 WLAN_CH144 = 37,
6780 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306781 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306782 LINK_LAYER_STATS_MEAS = 40,
6783 MU_MIMO = 41,
6784 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306785 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306786 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306787 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306788 DISA = 46,
6789 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306790 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306791 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306792 TDLS_OFF_CHANNEL = 51,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306793 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306794 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306795 LOGGING_ENHANCEMENT = 55,
c_manjeecfd1efb2015-09-25 19:32:34 +05306796 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306797 PER_PKT_STATS_SUPPORTED = 58,
Kumar Anandea78e792013-10-10 23:47:01 -07006798 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006799} placeHolderInCapBitmap;
6800
Jeff Johnson295189b2012-06-20 16:38:30 -07006801typedef PACKED_PRE struct PACKED_POST{
6802
6803 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006804} tWlanFeatCaps, *tpWlanFeatCaps;
6805
6806typedef PACKED_PRE struct PACKED_POST{
6807
Dino Mycle8afbac12014-07-04 22:06:17 +05306808 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006809 tWlanFeatCaps wlanFeatCaps;
6810
6811} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6812
Jeff Johnsone7245742012-09-05 17:12:55 -07006813#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6814#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006815#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006816#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006817#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006818#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006819#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006820#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306821#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306822#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306823#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306824#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306825#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006826
Jeff Johnsone7245742012-09-05 17:12:55 -07006827tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6828
Jeff Johnson295189b2012-06-20 16:38:30 -07006829#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006830 if ((b)<=127) { \
6831 arr_index = (b)/32; \
6832 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006833 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006834 (a)->featCaps[arr_index] |= (1<<bit_index); \
6835 } \
6836 }
6837#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006838 if ((b)<=127) { \
6839 arr_index = (b)/32; \
6840 bit_index = (b)%32; \
6841 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006842 } \
6843 }
6844#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006845 if ((b)<=127) { \
6846 arr_index = (b)/32; \
6847 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006848 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006849 } \
6850 }
6851
6852/*---------------------------------------------------------------------------
6853 * WLAN_HAL_WAKE_REASON_IND
6854 *--------------------------------------------------------------------------*/
6855
6856/* status codes to help debug rekey failures */
6857typedef enum
6858{
6859 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6860 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6861 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6862 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6863 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6864 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6865 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6866 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6867 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6868 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6869
6870 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6871} tGTKRekeyStatus;
6872
6873/* wake reason types */
6874typedef enum
6875{
6876 WLAN_HAL_WAKE_REASON_NONE = 0,
6877 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6878 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6879 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6880 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6881 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6882 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6883 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6884} tWakeReasonType;
6885
6886/*
6887 Wake Packet which is saved at tWakeReasonParams.DataStart
6888 This data is sent for any wake reasons that involve a packet-based wakeup :
6889
6890 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6891 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6892 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6893 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6894 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6895
6896 The information is provided to the host for auditing and debug purposes
6897
6898*/
6899
6900/*
6901 Wake reason indication parameters
6902*/
6903typedef PACKED_PRE struct PACKED_POST
6904{
6905 uint32 ulReason; /* see tWakeReasonType */
6906 uint32 ulReasonArg; /* argument specific to the reason type */
6907 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6908 HAL truncates the data (i.e. data packets) this length
6909 will be less than the actual length */
6910 uint32 ulActualDataLen; /* actual length of data */
6911 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6912 see specific wake type */
6913} tWakeReasonParams, *tpWakeReasonParams;
6914
6915/*
6916 Wake reason indication
6917*/
6918typedef PACKED_PRE struct PACKED_POST
6919{
6920 tHalMsgHeader header;
6921 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006922 tANI_U32 uBssIdx : 8;
6923 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006924} tHalWakeReasonInd, *tpHalWakeReasonInd;
6925
6926/*---------------------------------------------------------------------------
6927* WLAN_HAL_GTK_OFFLOAD_REQ
6928*--------------------------------------------------------------------------*/
6929
6930#define HAL_GTK_KEK_BYTES 16
6931#define HAL_GTK_KCK_BYTES 16
6932
6933#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6934
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006935#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6936
Jeff Johnson295189b2012-06-20 16:38:30 -07006937typedef PACKED_PRE struct PACKED_POST
6938{
6939 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306940 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006941 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6942 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006943 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006944} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6945
6946typedef PACKED_PRE struct PACKED_POST
6947{
6948 tHalMsgHeader header;
6949 tHalGtkOffloadReqParams gtkOffloadReqParams;
6950} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6951
6952/*---------------------------------------------------------------------------
6953* WLAN_HAL_GTK_OFFLOAD_RSP
6954*--------------------------------------------------------------------------*/
6955typedef PACKED_PRE struct PACKED_POST
6956{
6957 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006958 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006959} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6960
6961typedef PACKED_PRE struct PACKED_POST
6962{
6963 tHalMsgHeader header;
6964 tHalGtkOffloadRspParams gtkOffloadRspParams;
6965} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6966
6967
6968/*---------------------------------------------------------------------------
6969* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6970*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006971typedef PACKED_PRE struct PACKED_POST
6972{
6973 tANI_U8 bssIdx;
6974
6975} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006976
6977typedef PACKED_PRE struct PACKED_POST
6978{
6979 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006980 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006981} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6982
6983/*---------------------------------------------------------------------------
6984* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6985*--------------------------------------------------------------------------*/
6986typedef PACKED_PRE struct PACKED_POST
6987{
6988 tANI_U32 ulStatus; /* success or failure */
6989 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6990 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6991 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6992 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6993 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006994 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006995} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6996
6997typedef PACKED_PRE struct PACKED_POST
6998{
6999 tHalMsgHeader header;
7000 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7001} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7002
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007003/*---------------------------------------------------------------------------
7004* WLAN_HAL_DHCP_IND
7005*--------------------------------------------------------------------------*/
7006typedef PACKED_PRE struct PACKED_POST
7007{
7008 /*Indicates the device mode which indicates about the DHCP activity */
7009 tANI_U8 device_mode;
7010 tSirMacAddr macAddr;
7011} tDHCPInfo, *tpDHCPInfo;
7012
7013typedef PACKED_PRE struct PACKED_POST
7014{
7015 tHalMsgHeader header;
7016 tANI_U32 status; /* success or failure */
7017} tDHCPIndStatus, *tpDHCPIndstatus;
7018
Jeff Johnson295189b2012-06-20 16:38:30 -07007019/*
7020 Thermal Mitigation mode of operation.
7021 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7022 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7023 reducing transmit power
7024 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7025*/
7026typedef enum
7027{
7028 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7029 HAL_THERMAL_MITIGATION_MODE_0,
7030 HAL_THERMAL_MITIGATION_MODE_1,
7031 HAL_THERMAL_MITIGATION_MODE_2,
7032 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7033}tHalThermalMitigationModeType;
7034//typedef tANI_S16 tHalThermalMitigationModeType;
7035
7036/*
7037 Thermal Mitigation level.
7038 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7039 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7040
7041 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7042 level indicates normal mode of operation
7043 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7044 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7045 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7046 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7047*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307048typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007049{
7050 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7051 HAL_THERMAL_MITIGATION_LEVEL_0,
7052 HAL_THERMAL_MITIGATION_LEVEL_1,
7053 HAL_THERMAL_MITIGATION_LEVEL_2,
7054 HAL_THERMAL_MITIGATION_LEVEL_3,
7055 HAL_THERMAL_MITIGATION_LEVEL_4,
7056 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7057}tHalThermalMitigationLevelType;
7058//typedef tANI_S16 tHalThermalMitigationLevelType;
7059
7060typedef PACKED_PRE struct PACKED_POST
7061{
7062 /* Thermal Mitigation Operation Mode */
7063 tHalThermalMitigationModeType thermalMitMode;
7064
7065 /* Thermal Mitigation Level */
7066 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307067
Jeff Johnson295189b2012-06-20 16:38:30 -07007068}tSetThermalMitgationType, *tpSetThermalMitgationType;
7069
7070/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7071typedef PACKED_PRE struct PACKED_POST
7072{
7073 tHalMsgHeader header;
7074 tSetThermalMitgationType thermalMitParams;
7075} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7076
7077typedef PACKED_PRE struct PACKED_POST{
7078
7079 tHalMsgHeader header;
7080
7081 /*status of the request */
7082 tANI_U32 status;
7083
7084} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7085
Dino Mycle8afbac12014-07-04 22:06:17 +05307086/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007087provided to FW from Host via periodic messages */
7088typedef PACKED_PRE struct PACKED_POST {
7089 /* TX stats */
7090 uint32 txBytesPushed;
7091 uint32 txPacketsPushed;
7092
7093 /* RX stats */
7094 uint32 rxBytesRcvd;
7095 uint32 rxPacketsRcvd;
7096 uint32 rxTimeTotal;
7097} tStaStatsClassB, *tpStaStatsClassB;
7098
7099typedef PACKED_PRE struct PACKED_POST {
7100
7101 /* Duration over which this stats was collected */
7102 tANI_U32 duration;
7103
7104 /* Per STA Stats */
7105 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7106} tStatsClassBIndParams, *tpStatsClassBIndParams;
7107
7108typedef PACKED_PRE struct PACKED_POST {
7109
7110 tHalMsgHeader header;
7111
7112 /* Class B Stats */
7113 tStatsClassBIndParams statsClassBIndParams;
7114} tStatsClassBInd, *tpStatsClassBInd;
7115
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307116/*Wifi Proximity paramters in AP mode*/
7117#ifdef FEATURE_WIFI_PROXIMITY
7118
7119typedef PACKED_PRE struct PACKED_POST{
7120
7121 tANI_U8 wifiProximityChannel;
7122 tANI_U32 wifiProximityDuration;
7123 tANI_U32 wifiProximityInterval;
7124 tANI_U32 wifiProximityMode;
7125 tANI_U32 wifiProximityStatus;
7126 tSirMacAddr bssId;
7127 tSirMacSSid ssId;
7128
7129} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7130
7131typedef PACKED_PRE struct PACKED_POST
7132{
7133 tHalMsgHeader header;
7134
7135 tSetWifiProximityReqParam wifiProximityReqParams;
7136
7137}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7138
7139/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7140typedef PACKED_PRE struct PACKED_POST{
7141
7142 tHalMsgHeader header;
7143
7144 /*status of the request */
7145 tANI_U32 status;
7146
7147} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7148
7149#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007150
7151#ifdef FEATURE_SPECULATIVE_PS_POLL
7152/*---------------------------------------------------------------------------
7153 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7154 *--------------------------------------------------------------------------*/
7155typedef PACKED_PRE struct PACKED_POST
7156{
7157 tANI_U8 bssIdx;
7158 tANI_U16 serviceInterval;
7159 tANI_U16 suspendInterval;
7160 tANI_U8 acMask;
7161} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7162
7163typedef PACKED_PRE struct PACKED_POST
7164{
7165 tHalMsgHeader header;
7166 tHalStartSpecPsPollReqParams specPsPollReq;
7167} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7168
7169/*---------------------------------------------------------------------------
7170 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7171 *--------------------------------------------------------------------------*/
7172typedef PACKED_PRE struct PACKED_POST
7173{
7174 /* success or failure */
7175 tANI_U32 status;
7176 tANI_U8 bssIdx;
7177} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7178
7179typedef PACKED_PRE struct PACKED_POST
7180{
7181 tHalMsgHeader header;
7182 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7183} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7184
7185/*---------------------------------------------------------------------------
7186 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7187 *--------------------------------------------------------------------------*/
7188typedef PACKED_PRE struct PACKED_POST
7189{
7190 tHalMsgHeader header;
7191 tANI_U8 bssIdx;
7192} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7193#endif
7194
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307195#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307196#define HAL_MAX_SUPP_CHANNELS 128
7197#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307198/*---------------------------------------------------------------------------
7199 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7200 *-------------------------------------------------------------------------*/
7201typedef PACKED_PRE struct PACKED_POST
7202{
7203 /*STA Index*/
7204 tANI_U16 staIdx;
7205
7206 /* if this is 1, self is initiator and peer is reponder */
7207 tANI_U8 bIsResponder;
7208
7209 /* QoS Info */
7210 tANI_U8 acVOUAPSDFlag:1;
7211 tANI_U8 acVIUAPSDFlag:1;
7212 tANI_U8 acBKUAPSDFlag:1;
7213 tANI_U8 acBEUAPSDFlag:1;
7214 tANI_U8 aAck:1;
7215 tANI_U8 maxServicePeriodLength:2;
7216 tANI_U8 moreDataAck:1;
7217
7218 /*TDLS Peer U-APSD Buffer STA Support*/
7219 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007220
7221 /*TDLS off channel related params */
7222 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307223 tANI_U8 peerCurrOperClass;
7224 tANI_U8 selfCurrOperClass;
7225 tANI_U8 validChannelsLen;
7226 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7227 tANI_U8 validOperClassesLen;
7228 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307229}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7230
7231typedef PACKED_PRE struct PACKED_POST
7232{
7233 tHalMsgHeader header;
7234 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7235} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7236
7237/*---------------------------------------------------------------------------
7238 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7239 *-------------------------------------------------------------------------*/
7240
7241typedef PACKED_PRE struct PACKED_POST
7242{
7243 tANI_U32 status;
7244
7245 /*STA Index*/
7246 tANI_U16 staIdx;
7247} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7248
7249typedef PACKED_PRE struct PACKED_POST
7250{
7251 tHalMsgHeader header;
7252 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7253} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307254/*---------------------------------------------------------------------------
7255 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7256 + *-------------------------------------------------------------------------*/
7257typedef PACKED_PRE struct PACKED_POST
7258{
7259 /*STA Index*/
7260 tANI_U16 staIdx;
7261 /* if this is 1, self is initiator otherwise responder only*/
7262 tANI_U8 isOffchannelInitiator;
7263 /*TDLS off channel related params */
7264 tANI_U8 targetOperClass;
7265 tANI_U8 targetChannel;
7266 tANI_U8 secondaryChannelOffset;
7267 tANI_U8 reserved[32];
7268}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7269
7270typedef PACKED_PRE struct PACKED_POST
7271{
7272 tHalMsgHeader header;
7273 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7274} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7275/*---------------------------------------------------------------------------
7276 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7277 *-------------------------------------------------------------------------*/
7278
7279typedef PACKED_PRE struct PACKED_POST
7280{
7281 tANI_U32 status;
7282 /*STA Index*/
7283 tANI_U16 staIdx;
7284} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7285
7286typedef PACKED_PRE struct PACKED_POST
7287{
7288 tHalMsgHeader header;
7289 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7290} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7291
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307292
7293/*---------------------------------------------------------------------------
7294 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7295 *-------------------------------------------------------------------------*/
7296typedef PACKED_PRE struct PACKED_POST
7297{
7298 /*STA Index*/
7299 tANI_U16 staIdx;
7300}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7301
7302typedef PACKED_PRE struct PACKED_POST
7303{
7304 tHalMsgHeader header;
7305 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7306} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7307
7308/*---------------------------------------------------------------------------
7309 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7310 *-------------------------------------------------------------------------*/
7311
7312typedef PACKED_PRE struct PACKED_POST
7313{
7314 tANI_U32 status;
7315
7316 /*STA Index*/
7317 tANI_U16 staIdx;
7318} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7319
7320typedef PACKED_PRE struct PACKED_POST
7321{
7322 tHalMsgHeader header;
7323 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7324} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7325
7326/*---------------------------------------------------------------------------
7327 *WLAN_HAL_TDLS_IND
7328 *--------------------------------------------------------------------------*/
7329
7330typedef PACKED_PRE struct PACKED_POST
7331{
7332 tANI_U16 assocId;
7333 tANI_U16 staIdx;
7334 tANI_U16 status;
7335 tANI_U16 reasonCode;
7336}tTdlsIndParams, *tpTdlsIndParams;
7337
7338
7339typedef PACKED_PRE struct PACKED_POST
7340{
7341 tHalMsgHeader header;
7342 tTdlsIndParams tdlsIndParams;
7343}tTdlsIndMsg, *tpTdlsIndMsg;
7344
7345#endif
7346
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007347/*---------------------------------------------------------------------------
7348 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7349 *--------------------------------------------------------------------------*/
7350
7351typedef PACKED_PRE struct PACKED_POST
7352{
7353 tANI_U8 bssIdx;
7354 tANI_U8 staIdx;
7355 tSirMacAddr staAddr;
7356}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7357
7358
7359typedef PACKED_PRE struct PACKED_POST
7360{
7361 tHalMsgHeader header;
7362 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7363}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7364
7365
Kumar Anandea78e792013-10-10 23:47:01 -07007366/*********** Scan Offload Related Structures *************/
7367#define HAL_NUM_SCAN_SSID 10
7368#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007369
Kumar Anandea78e792013-10-10 23:47:01 -07007370/*
7371 * Enumetation to indicate scan type (active/passive)
7372 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007373typedef enum
7374{
Kumar Anandea78e792013-10-10 23:47:01 -07007375 eSIR_PASSIVE_SCAN,
7376 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7377} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007378
7379typedef PACKED_PRE struct PACKED_POST
7380{
Kumar Anandea78e792013-10-10 23:47:01 -07007381 tANI_U8 numBssid;
7382 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7383 tANI_U8 numSsid;
7384 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7385 tANI_BOOLEAN hiddenSsid;
7386 tSirMacAddr selfMacAddr;
7387 tSirBssType bssType;
7388 tSirScanType scanType;
7389 tANI_U32 minChannelTime;
7390 tANI_U32 maxChannelTime;
7391 tANI_BOOLEAN p2pSearch;
7392 tANI_U8 channelCount;
7393 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7394 tANI_U16 ieFieldLen;
7395 tANI_U8 ieField[1];
7396}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007397
7398/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007399 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007400 *-------------------------------------------------------------------------*/
7401typedef PACKED_PRE struct PACKED_POST
7402{
Kumar Anandf53016f2013-09-04 15:15:53 -07007403 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007404 tScanOffloadReqType scanOffloadParams;
7405} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007406
7407/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007408 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007409 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007410typedef PACKED_PRE struct PACKED_POST
7411{
7412 tHalMsgHeader header;
7413
7414 /*status of the request - just to indicate SO has acknowledged
7415 * * the request and will start scanning*/
7416 tANI_U32 status;
7417} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7418
7419/*---------------------------------------------------------------------------
7420 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7421 *-------------------------------------------------------------------------*/
7422typedef PACKED_PRE struct PACKED_POST
7423{
7424 tHalMsgHeader header;
7425} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7426
7427/*---------------------------------------------------------------------------
7428 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7429 *-------------------------------------------------------------------------*/
7430typedef PACKED_PRE struct PACKED_POST
7431{
7432 tHalMsgHeader header;
7433
7434 /*status of the request - just to indicate SO has acknowledged
7435 the request and will start scanning*/
7436 tANI_U32 status;
7437} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7438
7439/*
7440 * Enumetation of scan events indicated by firmware to the host
7441 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007442typedef enum
7443{
Kumar Anandea78e792013-10-10 23:47:01 -07007444 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7445 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7446 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7447 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7448 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7449 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7450 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7451 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7452 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7453} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007454
7455typedef PACKED_PRE struct PACKED_POST
7456{
Kumar Anandea78e792013-10-10 23:47:01 -07007457 tScanEventType event;
7458 tANI_U32 channel;
7459 tANI_U32 scanId;
7460} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007461
Kumar Anandea78e792013-10-10 23:47:01 -07007462/*---------------------------------------------------------------------------
7463 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7464 *-------------------------------------------------------------------------*/
7465typedef PACKED_PRE struct PACKED_POST
7466{
7467 tHalMsgHeader header;
7468 tScanOffloadEventInfo scanOffloadInd;
7469} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007470
Kumar Anandea78e792013-10-10 23:47:01 -07007471typedef PACKED_PRE struct PACKED_POST {
7472 /** primary 20 MHz channel frequency in mhz */
7473 tANI_U32 mhz;
7474 /** Center frequency 1 in MHz*/
7475 tANI_U32 band_center_freq1;
7476 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7477 tANI_U32 band_center_freq2;
7478 /* The first 26 bits are a bit mask to indicate any channel flags,
7479 (see WLAN_HAL_CHAN_FLAG*)
7480 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7481 tANI_U32 channel_info;
7482 /** contains min power, max power, reg power and reg class id. */
7483 tANI_U32 reg_info_1;
7484 /** contains antennamax */
7485 tANI_U32 reg_info_2;
7486} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007487
Kumar Anandf53016f2013-09-04 15:15:53 -07007488
Kumar Anandea78e792013-10-10 23:47:01 -07007489typedef enum {
7490 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7491 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7492 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7493 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7494 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7495 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7496 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7497 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7498 WLAN_HAL_MODE_11AC_VHT20 = 8,
7499 WLAN_HAL_MODE_11AC_VHT40 = 9,
7500 WLAN_HAL_MODE_11AC_VHT80 = 10,
7501 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7502 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7503 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7504 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007505
Kumar Anandea78e792013-10-10 23:47:01 -07007506} tChannelPhyModeType;
7507
7508#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7509#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7510#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7511#define WLAN_HAL_CHAN_AP_DISABLED 9
7512#define WLAN_HAL_CHAN_FLAG_DFS 10
7513#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7514#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007515#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7516
7517#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007518 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007519 } while(0)
7520
7521#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007522 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007523
7524#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7525 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7526 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7527 } while(0)
7528#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7529
7530#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7531 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7532 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7533 } while(0)
7534#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7535
7536#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7537 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7538 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7539 } while(0)
7540#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7541#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7542 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7543 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7544 } while(0)
7545#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7546
7547#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7548 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7549 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7550 } while(0)
7551#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7552
7553#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7554 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7555 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7556 } while(0)
7557#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 -07007558
7559typedef PACKED_PRE struct PACKED_POST
7560{
7561 tANI_U8 numChan;
7562 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7563} tUpdateChannelReqType;
7564
7565/*---------------------------------------------------------------------------
7566 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7567 *-------------------------------------------------------------------------*/
7568typedef PACKED_PRE struct PACKED_POST
7569{
7570 tHalMsgHeader header;
7571 tUpdateChannelReqType updateChannelParams;
7572} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7573
7574/*---------------------------------------------------------------------------
7575 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7576 *-------------------------------------------------------------------------*/
7577typedef PACKED_PRE struct PACKED_POST
7578{
7579 tHalMsgHeader header;
7580
7581 /*status of the request - just to indicate SO has acknowledged
7582 * * the request and will start scanning*/
7583 tANI_U32 status;
7584} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7585
7586
7587/*---------------------------------------------------------------------------
7588* WLAN_HAL_TX_FAIL_IND
7589*--------------------------------------------------------------------------*/
7590// Northbound indication from FW to host on weak link detection
7591typedef PACKED_PRE struct PACKED_POST
7592{
7593 // Sequence number increases by 1 whenever the device driver
7594 // sends a notification event. This is cleared as 0 when the
7595 // JOIN IBSS commamd is issued
7596 tANI_U16 seqNo;
7597 tANI_U16 staId;
7598 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7599} tHalTXFailIndParams, *tpHalTXFailIndParams;
7600
7601typedef PACKED_PRE struct PACKED_POST
7602{
7603 tHalMsgHeader header;
7604 tHalTXFailIndParams txFailIndParams;
7605} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7606
7607/*---------------------------------------------------------------------------
7608* WLAN_HAL_TX_FAIL_MONITOR_IND
7609*--------------------------------------------------------------------------*/
7610// Southbound message from Host to monitor the Tx failures
7611typedef PACKED_PRE struct PACKED_POST
7612{
7613 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7614 tANI_U8 tx_fail_count;
7615} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7616
7617typedef PACKED_PRE struct PACKED_POST
7618{
7619 tHalMsgHeader header;
7620 tTXFailMonitorInfo txFailMonitor;
7621} tTXFailMonitorInd, *tpTXFailMonitorInd;
7622
7623/*---------------------------------------------------------------------------
7624* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7625*--------------------------------------------------------------------------*/
7626typedef PACKED_PRE struct PACKED_POST
7627{
7628 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7629 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7630} tDestIpNextHopMacPair;
7631
7632typedef PACKED_PRE struct PACKED_POST
7633{
7634 tANI_U8 numEntries;
7635 tDestIpNextHopMacPair destIpMacPair[1];
7636} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007637
7638typedef PACKED_PRE struct PACKED_POST
7639{
7640 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007641 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7642} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007643
Kumar Anandf53016f2013-09-04 15:15:53 -07007644/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007645 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7646 *-------------------------------------------------------------------------*/
7647typedef enum
7648{
7649 /* reassociation is done, but couldn't finish security handshake */
7650 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7651
7652 /* roam has successfully completed by firmware */
7653 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7654
7655 /* UNKONW error */
7656 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7657}tHalRoamOffloadRoamAuthStatus;
7658
7659typedef enum
7660{
7661 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7662 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7663 WLAN_HAL_ROAM_TYPE_OKC,
7664 WLAN_HAL_ROAM_TYPE_CCKM,
7665 WLAN_HAL_ROAM_TYPE_FT,
7666 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7667} tHalRoamOffloadType;
7668
7669typedef PACKED_PRE struct PACKED_POST
7670{
7671 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7672 tANI_U16 beaconProbeRespOffset;
7673
7674 /* Length of beaon / probe resp. */
7675 tANI_U16 beaconProbeRespLength;
7676
7677 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7678 tANI_U16 reassocRespOffset;
7679
7680 /* Length of reassoc resp. */
7681 tANI_U16 reassocRespLength;
7682
7683 /* 0 for probe response frame, 1 for beacon frame, */
7684 tANI_U8 isBeacon;
7685
7686 /* staIdx of old AP */
7687 tANI_U8 oldStaIdx;
7688
7689 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7690 tConfigBssRspParams */
7691 /* bssIdx of new roamed AP */
7692 tANI_U8 bssIdx;
7693
7694 /* DPU descriptor index for PTK */
7695 tANI_U8 dpuDescIndx;
7696
7697 /* PTK DPU signature */
7698 tANI_U8 ucastDpuSignature;
7699
7700 /* DPU descriptor index for GTK*/
7701 tANI_U8 bcastDpuDescIndx;
7702
7703 /* GTK DPU signature */
7704 tANI_U8 bcastDpuSignature;
7705
7706 /*DPU descriptor for IGTK*/
7707 tANI_U8 mgmtDpuDescIndx;
7708
7709 /* IGTK DPU signature */
7710 tANI_U8 mgmtDpuSignature;
7711
7712 /* Station Index for BSS entry*/
7713 tANI_U8 staIdx;
7714
7715 /* Self station index for this BSS */
7716 tANI_U8 selfStaIdx;
7717
7718 /* Bcast station for buffering bcast frames in AP role */
7719 tANI_U8 bcastStaIdx;
7720
7721 /* MAC address of roamed AP */
7722 tSirMacAddr bssid;
7723
7724 /*HAL fills in the tx power used for mgmt frames in this field. */
7725 tANI_S8 txMgmtPower;
7726
7727 /* success or failure */
7728 tHalRoamOffloadRoamAuthStatus authStatus;
7729
7730 /* TODO : add more info as needed */
7731
7732 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7733 /* Beacon or probe resp from new AP. This is in 802.11
7734 frame format starting with MAC header. */
7735 /* Up to beaconProbeRespLength */
7736
7737 /* reassocRespOffset points to starting of reassoc resp frame */
7738 /* Reassoc resp from new AP. This is in 802.11
7739 frame format starting with MAC header. */
7740 /* Up to reassocRespLength */
7741
7742} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7743
7744
7745typedef PACKED_PRE struct PACKED_POST
7746{
7747 tHalMsgHeader header;
7748 tHalRoamOffloadSynchIndParams params;
7749} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7750
7751/*---------------------------------------------------------------------------
7752 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7753 *-------------------------------------------------------------------------*/
7754typedef PACKED_PRE struct PACKED_POST
7755{
7756 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7757 tSirMacAddr bssid;
7758} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7759
7760typedef PACKED_PRE struct PACKED_POST
7761{
7762 tHalMsgHeader header;
7763 tHalRoamOffloadSynchCnfParams params;
7764} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7765
7766
7767/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007768 WLAN_HAL_RATE_UPDATE_IND
7769 *-------------------------------------------------------------------------*/
7770
7771typedef PACKED_PRE struct PACKED_POST
7772{
7773 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7774 tANI_S32 ucastDataRate; //unit Mbpsx10
7775
7776 /* TX flag to differentiate between HT20, HT40 etc */
7777 tTxRateInfoFlags ucastDataRateTxFlag;
7778
7779 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7780 tSirMacAddr bssid;
7781
7782 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7783 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7784
7785 /* TX flag to differentiate between HT20, HT40 etc */
7786 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7787
7788 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7789 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7790
7791 /* TX flag to differentiate between HT20, HT40 etc */
7792 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7793
7794 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7795 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7796
7797 /* TX flag to differentiate between HT20, HT40 etc */
7798 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7799
7800} tHalRateUpdateParams, *tpHalRateUpdateParams;
7801
7802typedef PACKED_PRE struct PACKED_POST
7803{
7804 tHalMsgHeader header;
7805 tHalRateUpdateParams halRateUpdateParams;
7806} tHalRateUpdateInd, * tpHalRateUpdateInd;
7807
7808/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307809 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7810 *-------------------------------------------------------------------------*/
7811
Abhishek Singhe0443152015-06-18 10:07:43 +05307812#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307813
7814typedef PACKED_PRE struct PACKED_POST
7815{
7816 tANI_U32 startFreq;
7817 tANI_U32 endFreq;
7818} tHalFreqRange, *tpHalFreqRange;
7819
7820typedef PACKED_PRE struct PACKED_POST
7821{
7822 tANI_U32 avoidCnt;
7823 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7824} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7825
7826typedef PACKED_PRE struct PACKED_POST
7827{
7828 tHalMsgHeader header;
7829 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7830} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7831
7832/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307833 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007834 *-------------------------------------------------------------------------*/
7835
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307836typedef enum
7837{
7838 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7839 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7840 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7841}tHT40OBssScanCmdType;
7842
7843typedef PACKED_PRE struct PACKED_POST
7844{
7845 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007846
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307847 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007848 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7849 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7850 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7851 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7852 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7853 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7854 tANI_U16 OBSSScanActivityThreshold;
7855
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307856 tANI_U8 selfStaIdx;
7857 tANI_U8 bssIdx;
7858 tANI_U8 fortyMHZIntolerent;
7859 tANI_U8 channelCount;
7860 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7861 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007862
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307863 tANI_U16 ieFieldLen;
7864 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7865}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7866
7867typedef PACKED_PRE struct PACKED_POST
7868{
7869 tHalMsgHeader header;
7870 tHT40ObssScanIndType scanHT40ObssScanParams;
7871} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7872
7873/*---------------------------------------------------------------------------
7874 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7875 *-------------------------------------------------------------------------*/
7876typedef PACKED_PRE struct PACKED_POST
7877{
7878 tHalMsgHeader header;
7879 tANI_U8 bssIdx;
7880} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307881
7882/*---------------------------------------------------------------------------
7883 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7884 *-------------------------------------------------------------------------*/
7885
7886typedef PACKED_PRE struct PACKED_POST
7887{
7888 /* Valid BSS Idx for beacon miss rate */
7889 tANI_U8 bssIdx;
7890
7891}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7892
7893typedef PACKED_PRE struct PACKED_POST
7894{
7895 tHalMsgHeader header;
7896 tHalBcnMissRateReqParams bcnMissRateReqParams;
7897} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7898
7899/*---------------------------------------------------------------------------
7900 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7901 *-------------------------------------------------------------------------*/
7902
7903typedef PACKED_PRE struct PACKED_POST
7904{
7905 tANI_U32 status;
7906 tANI_U32 bcnMissCnt;
7907}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7908
7909typedef PACKED_PRE struct PACKED_POST
7910{
7911 tHalMsgHeader header;
7912 tHalBcnMissRateRspParams bcnMissRateRspParams;
7913}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7914
Sunil Dutt8377a382014-05-26 21:18:04 +05307915/*--------------------------------------------------------------------------
7916* WLAN_HAL_LL_SET_STATS_REQ
7917*---------------------------------------------------------------------------*/
7918
7919typedef PACKED_PRE struct PACKED_POST
7920{
7921 tANI_U32 req_id;
7922 tANI_U8 sta_id;
7923 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7924 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7925} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7926
7927typedef PACKED_PRE struct PACKED_POST
7928{
7929 tHalMsgHeader header;
7930 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7931} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7932
7933/*---------------------------------------------------------------------------
7934 WLAN_HAL_LL_SET_STATS_RSP
7935---------------------------------------------------------------------------*/
7936
7937typedef PACKED_PRE struct PACKED_POST
7938{
7939 tANI_U32 status;
7940 tANI_U32 resp_id;
7941 tANI_U8 iface_id;
7942} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7943
7944typedef PACKED_PRE struct PACKED_POST
7945{
7946 tHalMsgHeader header;
7947 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7948} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7949
7950/*---------------------------------------------------------------------------
7951 WLAN_HAL_LL_GET_STATS_REQ
7952---------------------------------------------------------------------------*/
7953
7954typedef PACKED_PRE struct PACKED_POST
7955{
7956 tANI_U32 req_id;
7957 tANI_U8 sta_id;
7958 tANI_U32 param_id_mask;
7959} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7960
7961typedef PACKED_PRE struct PACKED_POST
7962{
7963 tHalMsgHeader header;
7964 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7965} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7966
7967/*---------------------------------------------------------------------------
7968 WLAN_HAL_LL_GET_STATS_RSP
7969---------------------------------------------------------------------------*/
7970typedef PACKED_PRE struct PACKED_POST
7971{
7972 tANI_U32 status;
7973 tANI_U32 resp_id;
7974 tANI_U8 iface_id;
7975} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7976
7977typedef PACKED_PRE struct PACKED_POST
7978{
7979 tHalMsgHeader header;
7980 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7981} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7982
7983/*---------------------------------------------------------------------------
7984 WLAN_HAL_LL_CLEAR_STATS_REQ
7985---------------------------------------------------------------------------*/
7986typedef PACKED_PRE struct PACKED_POST
7987{
7988 tANI_U32 req_id;
7989 tANI_U8 sta_id;
7990 tANI_U32 stats_clear_req_mask;
7991 tANI_U8 stop_req;
7992} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7993
7994typedef PACKED_PRE struct PACKED_POST
7995{
7996 tHalMsgHeader header;
7997 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7998} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
7999
8000/*---------------------------------------------------------------------------
8001 WLAN_HAL_LL_CLEAR_STATS_RSP
8002---------------------------------------------------------------------------*/
8003typedef PACKED_PRE struct PACKED_POST
8004{
8005 tANI_U32 status;
8006 tANI_U8 sta_id;
8007 tANI_U32 resp_id;
8008 tANI_U32 stats_clear_rsp_mask;
8009 tANI_U8 stop_req_status;
8010} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8011
8012typedef PACKED_PRE struct PACKED_POST
8013{
8014 tHalMsgHeader header;
8015 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8016} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8017
8018/*---------------------------------------------------------------------------
8019 WLAN_HAL_LL_NOTIFY_STATS
8020---------------------------------------------------------------------------*/
8021
8022typedef PACKED_PRE struct PACKED_POST
8023{
8024 tHalMsgHeader header;
8025 tANI_U32 param_id;
8026 tANI_U8 iface_id;
8027 tANI_U32 resp_id;
8028 tANI_U32 more_result_to_follow;
8029 tANI_U8 result[1];
8030} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008031
Dino Mycle108eff22014-06-10 09:36:44 +05308032/*---------------------------------------------------------------------------
8033 * WLAN_HAL_EXT_SCAN_START_REQ
8034 *-------------------------------------------------------------------------*/
8035
Dino Mycle8afbac12014-07-04 22:06:17 +05308036typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308037{
8038 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8039 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8040 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8041 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8042 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8043 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8044 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308045 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308046} tExtScanChannelBandMask;
8047
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308048#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8049#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8050
8051#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8052
8053#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8054#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8055#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8056#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8057
Dino Mycle108eff22014-06-10 09:36:44 +05308058typedef PACKED_PRE struct PACKED_POST
8059{
8060 tANI_U32 channel; // frequency
8061 tANI_U32 dwellTimeMs; // dwell time hint
8062 tANI_U8 passive; // 0 => active,
8063 // 1 => passive scan; ignored for DFS
8064}tExtScanChannelSpec, *tpExtScanChannelSpec;
8065
8066typedef PACKED_PRE struct PACKED_POST
8067 {
8068 /* bucket index, 0 based */
8069 tANI_U8 bucketId;
8070 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8071 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308072 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308073 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308074 /* This is a bit field; which defines following bits -
8075 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8076 is % full
8077 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8078 after scan
8079 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8080 (beacons/probe responses + IEs) in real time to HAL, in addition
8081 to completion events
8082 Note: To keep backward compatibility, fire completion events
8083 regardless of REPORT_EVENTS_EACH_SCAN.
8084 * REPORT_EVENTS_NO_BATCH => controls batching,
8085 0 => batching, 1 => no batching
8086 */
Dino Mycle108eff22014-06-10 09:36:44 +05308087 tANI_U8 reportEvents;
8088 /* number of channels */
8089 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308090 // new Exponential Scan params
8091 tANI_U32 max_period;
8092 tANI_U32 exponent;
8093 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308094 /* if channels to scan. In the TLV channelList[] */
8095 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8096}tExtScanBucketData, *tpExtScanBucketData;
8097
8098typedef PACKED_PRE struct PACKED_POST
8099{
8100 tANI_U32 requestId;
8101 tANI_U8 sessionId;
8102 /* Base period (milliseconds) used by scan buckets to define periodicity
8103 of the scans */
8104 tANI_U32 basePeriod;
8105 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8106 (keep the most significant, i.e. stronger RSSI) */
8107 tANI_U32 maxApPerScan;
8108 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308109 tANI_U32 reportThresholdPercent;
8110 /* in number of scans, wake up AP after these many scans */
8111 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308112 /* This will be off channel minimum time */
8113 tANI_U16 neighborScanChannelMinTime;
8114 /* This will be out off channel max time */
8115 tANI_U16 neighborScanChannelMaxTime;
8116 /* This will be the home (BSS) channel time */
8117 tANI_U16 homeAwayTime;
8118 /* number of buckets (maximum 8) */
8119 tANI_U8 numBuckets;
8120 /* Buckets data */
8121 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8122} tHalExtScanStartReq, *tpHalExtScanStartReq;
8123
8124typedef PACKED_PRE struct PACKED_POST
8125{
8126 tHalMsgHeader header;
8127 tHalExtScanStartReq extScanStartReq;
8128}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8129
8130/*---------------------------------------------------------------------------
8131 * WLAN_HAL_EXT_SCAN_START_RSP
8132 *-------------------------------------------------------------------------*/
8133
8134typedef PACKED_PRE struct PACKED_POST
8135{
8136 tANI_U32 requestId;
8137 tANI_U32 status;
8138}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8139
8140typedef PACKED_PRE struct PACKED_POST
8141{
8142 tHalMsgHeader header;
8143 tHalExtScanStartRsp extScanStartRsp;
8144}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8145
8146/*---------------------------------------------------------------------------
8147 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8148 *-------------------------------------------------------------------------*/
8149
8150typedef PACKED_PRE struct PACKED_POST
8151{
8152 tANI_U32 requestId;
8153 tANI_U8 sessionId;
8154}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8155
8156typedef PACKED_PRE struct PACKED_POST
8157{
8158 tHalMsgHeader header;
8159 tHalExtScanGetCapReq extScanGetCapReq;
8160}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8161
8162/*---------------------------------------------------------------------------
8163 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8164 *-------------------------------------------------------------------------*/
8165
8166typedef PACKED_PRE struct PACKED_POST
8167{
8168 tANI_U32 requestId;
8169 tANI_U32 status;
8170
8171 tANI_U32 scanCacheSize;
8172 tANI_U32 scanBuckets;
8173 tANI_U32 maxApPerScan;
8174 tANI_U32 maxRssiSampleSize;
8175 tANI_U32 maxScanReportingThreshold;
8176
8177 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308178 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308179
8180 tANI_U32 maxBssidHistoryEntries;
8181}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8182
8183typedef PACKED_PRE struct PACKED_POST
8184{
8185 tHalMsgHeader header;
8186 tHalExtScanGetCapRsp extScanGetCapRsp;
8187}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8188
8189/*---------------------------------------------------------------------------
8190 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8191 *-------------------------------------------------------------------------*/
8192
8193typedef PACKED_PRE struct PACKED_POST
8194{
8195 tANI_U32 requestId;
8196 tANI_U8 sessionId;
8197 /*
8198 * 1 return cached results and flush it
8199 * 0 return cached results and do not flush
8200 */
8201 tANI_BOOLEAN flush;
8202}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8203
8204typedef PACKED_PRE struct PACKED_POST
8205{
8206 tHalMsgHeader header;
8207 tHalExtScanGetScanReq getScanReq;
8208}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8209
8210/*---------------------------------------------------------------------------
8211 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8212 *-------------------------------------------------------------------------*/
8213
8214typedef PACKED_PRE struct PACKED_POST
8215{
8216 tANI_U32 requestId;
8217 tANI_U32 status;
8218}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8219
8220typedef PACKED_PRE struct PACKED_POST
8221{
8222 tHalMsgHeader header;
8223 tHalExtScanGetScanRsp getScanRsp;
8224}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8225
8226/*---------------------------------------------------------------------------
8227 * WLAN_HAL_EXT_SCAN_RESULT_IND
8228 *-------------------------------------------------------------------------*/
8229
8230typedef PACKED_PRE struct PACKED_POST
8231{
8232 tANI_U64 ts; // time of discovery
8233 tANI_U8 ssid[32+1]; // null terminated SSID
8234 tSirMacAddr bssid; // BSSID
8235 tANI_U32 channel; // channel frequency in MHz
8236 tANI_S32 rssi; // RSSI in dBm
8237 tANI_U32 rtt; // RTT in nanoseconds - not expected
8238 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308239 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308240 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308241 tANI_U16 ieLength; // size of the ie_data blob
8242 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308243} tHalExtScanResultParams, *tpHalExtScanResultParams;
8244
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308245/* Get the GSCAN cached scan results */
8246typedef struct {
8247 tANI_U16 scan_id; // a unique identifier for the scan unit
8248 tANI_U8 flags; // a bitmask with additional
8249 // information about scan
8250 tANI_U8 num_results; // number of bssids retrieved by the scan
8251 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8252 // scan results - one for each bssid
8253} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8254
Dino Mycle108eff22014-06-10 09:36:44 +05308255typedef PACKED_PRE struct PACKED_POST
8256{
8257 tHalMsgHeader header;
8258 tANI_U32 requestId;
8259 tANI_U32 scanResultSize;
8260 tANI_BOOLEAN moreData;
8261 tANI_U8 extScanResult[1];
8262}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8263
8264/*---------------------------------------------------------------------------
8265 * WLAN_HAL_EXT_SCAN_STOP_REQ
8266 *-------------------------------------------------------------------------*/
8267
8268typedef PACKED_PRE struct PACKED_POST
8269{
8270 tANI_U32 requestId;
8271 tANI_U8 sessionId;
8272}tHalExtScanStopReq, *tpHalExtScanStopReq;
8273
8274typedef PACKED_PRE struct PACKED_POST
8275{
8276 tHalMsgHeader header;
8277 tHalExtScanStopReq extScanStopReq;
8278}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8279
8280/*---------------------------------------------------------------------------
8281 * WLAN_HAL_EXT_SCAN_STOP_RSP
8282 *-------------------------------------------------------------------------*/
8283
8284typedef PACKED_PRE struct PACKED_POST
8285{
8286 tANI_U32 requestId;
8287 tANI_U32 status;
8288}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8289
8290typedef PACKED_PRE struct PACKED_POST
8291{
8292 tHalMsgHeader header;
8293 tHalExtScanStopRsp extScanStopRsp;
8294}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8295
8296/*---------------------------------------------------------------------------
8297 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8298 *-------------------------------------------------------------------------*/
8299
Dino Mycle8afbac12014-07-04 22:06:17 +05308300typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308301{
8302 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8303 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308304 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308305} tHalExtScanProgressEventType;
8306
8307typedef PACKED_PRE struct PACKED_POST
8308{
8309 tANI_U32 requestId;
8310 tANI_U32 status;
8311 tHalExtScanProgressEventType extScanEventType;
8312}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8313
8314typedef PACKED_PRE struct PACKED_POST
8315{
8316 tHalMsgHeader header;
8317 tHalExtScanProgressInd extScanProgressInd;
8318}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8319
8320/*---------------------------------------------------------------------------
8321 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8322 *-------------------------------------------------------------------------*/
8323
8324typedef PACKED_PRE struct PACKED_POST
8325{
8326 tANI_U32 requestId;
8327 tANI_U32 numOfScanResAvailable;
8328}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8329
8330typedef PACKED_PRE struct PACKED_POST
8331{
8332 tHalMsgHeader header;
8333 tHalExtScanResAvailableInd extScanResAvailableInd;
8334}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8335
Dino Mycle108eff22014-06-10 09:36:44 +05308336typedef PACKED_PRE struct PACKED_POST
8337{
8338 /* AP BSSID */
8339 tSirMacAddr bssid;
8340 /* low threshold - used in L for significant_change - not used in L for
8341 hotlist*/
8342 tANI_S32 lowRssiThreshold;
8343 /* high threshold - used in L for significant rssi - used in L for hotlist */
8344 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308345} tApThresholdParams, *tpApThresholdParams;
8346
Dino Mycle108eff22014-06-10 09:36:44 +05308347/*---------------------------------------------------------------------------
8348 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8349 *-------------------------------------------------------------------------*/
8350
8351typedef PACKED_PRE struct PACKED_POST
8352{
8353 tANI_U32 requestId;
8354 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308355 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308356 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308357 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308358 // hotlist APs
8359 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8360} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8361
8362typedef PACKED_PRE struct PACKED_POST
8363{
8364 tHalMsgHeader header;
8365 tHalBssidHotlistSetReq bssidHotlistSetReq;
8366}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8367
8368/*---------------------------------------------------------------------------
8369 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8370 *-------------------------------------------------------------------------*/
8371
8372typedef PACKED_PRE struct PACKED_POST
8373{
8374 tANI_U32 requestId;
8375 tANI_U32 status;
8376}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8377
8378typedef PACKED_PRE struct PACKED_POST
8379{
8380 tHalMsgHeader header;
8381 tHalHotlistSetRsp hotlistSetRsp;
8382}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8383
8384/*---------------------------------------------------------------------------
8385 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8386 *-------------------------------------------------------------------------*/
8387
8388typedef PACKED_PRE struct PACKED_POST
8389{
8390 tANI_U32 requestId;
8391}tHalHotlistResetReq, *tpHalHotlistResetReq;
8392
8393typedef PACKED_PRE struct PACKED_POST
8394{
8395 tHalMsgHeader header;
8396 tHalHotlistResetReq hotlistResetReq;
8397}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8398
8399/*---------------------------------------------------------------------------
8400 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8401 *-------------------------------------------------------------------------*/
8402
8403typedef PACKED_PRE struct PACKED_POST
8404{
8405 tANI_U32 requestId;
8406 tANI_U32 status;
8407}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8408
8409typedef PACKED_PRE struct PACKED_POST
8410{
8411 tHalMsgHeader header;
8412 tHalHotlistResetRsp hotlistResetRsp;
8413}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8414
8415/*---------------------------------------------------------------------------
8416 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8417 *-------------------------------------------------------------------------*/
8418
8419typedef PACKED_PRE struct PACKED_POST
8420{
8421 tHalMsgHeader header;
8422 tANI_U32 requestId;
8423 tANI_U32 numHotlistBss;
8424 tANI_BOOLEAN moreData;
8425 tANI_U8 bssHotlist[1];
8426}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8427
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308428/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308429 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8430 *-------------------------------------------------------------------------*/
8431
8432typedef PACKED_PRE struct PACKED_POST
8433{
8434 /* SSID */
8435 char ssid [32+1];
8436 /* low threshold - used in L for significant_change - not used in L for
8437 hotlist*/
8438 tANI_S32 lowRssiThreshold;
8439 /* high threshold - used in L for significant rssi - used in L for hotlist */
8440 tANI_S32 highRssiThreshold;
8441 /* band */
8442 tANI_U32 band;
8443 } tSsidThresholdParams, *tpSsidThresholdParams;
8444
8445
8446typedef PACKED_PRE struct PACKED_POST
8447{
8448 tANI_U32 requestId;
8449 tANI_U8 sessionId;
8450 tANI_U32 lostSsidSampleSize;
8451 // number of hotlist SSIDs
8452 tANI_U32 numSsid;
8453 // hotlist SSIDs
8454 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8455} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8456
8457typedef PACKED_PRE struct PACKED_POST
8458{
8459 tHalMsgHeader header;
8460 tHalSsidHotlistSetReq ssidHotlistSetReq;
8461}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8462
8463/*---------------------------------------------------------------------------
8464 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8465 *-------------------------------------------------------------------------*/
8466typedef PACKED_PRE struct PACKED_POST
8467{
8468 tANI_U32 requestId;
8469 tANI_U32 status;
8470}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8471
8472typedef PACKED_PRE struct PACKED_POST
8473{
8474 tHalMsgHeader header;
8475 tHalSsidHotlistSetRsp hotlistSetRsp;
8476}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8477
8478/*---------------------------------------------------------------------------
8479 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8480 *-------------------------------------------------------------------------*/
8481
8482typedef PACKED_PRE struct PACKED_POST
8483{
8484 tANI_U32 requestId;
8485}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8486
8487typedef PACKED_PRE struct PACKED_POST
8488{
8489 tHalMsgHeader header;
8490 tHalSsidHotlistResetReq hotlistResetReq;
8491}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8492
8493/*---------------------------------------------------------------------------
8494 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8495 *-------------------------------------------------------------------------*/
8496
8497typedef PACKED_PRE struct PACKED_POST
8498{
8499 tANI_U32 requestId;
8500 tANI_U32 status;
8501}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8502
8503typedef PACKED_PRE struct PACKED_POST
8504{
8505 tHalMsgHeader header;
8506 tHalSsidHotlistResetRsp hotlistResetRsp;
8507}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8508
8509/*---------------------------------------------------------------------------
8510 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8511 *-------------------------------------------------------------------------*/
8512
8513typedef PACKED_PRE struct PACKED_POST
8514{
8515 tHalMsgHeader header;
8516 tANI_U32 requestId;
8517 tANI_BOOLEAN ssid_found;
8518 tANI_U32 numHotlistSsid;
8519 tANI_BOOLEAN moreData;
8520 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8521}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8522
8523/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308524 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8525 *--------------------------------------------------------------------------*/
8526typedef PACKED_PRE struct PACKED_POST
8527{
8528 tANI_U8 macAddr[6];
8529 tANI_U32 reserved1;
8530 tANI_U32 reserved2;
8531}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8532
8533typedef PACKED_PRE struct PACKED_POST
8534{
8535 tHalMsgHeader header;
8536 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8537} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8538
8539/*---------------------------------------------------------------------------
8540* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8541*-------------------------------------------------------------------------*/
8542
8543typedef PACKED_PRE struct PACKED_POST
8544{
8545 tANI_U32 status;
8546 tANI_U32 reserved1;
8547} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8548
8549typedef PACKED_PRE struct PACKED_POST
8550{
8551 tHalMsgHeader header;
8552 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8553} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308554/*---------------------------------------------------------------------------
8555 *WLAN_HAL_GET_FRAME_LOG_REQ
8556 *--------------------------------------------------------------------------*/
8557typedef PACKED_PRE struct PACKED_POST
8558{
8559 tANI_U8 flags;
8560}tGetFrameLogReqType, * tpGetFrameLogReqType;
8561
8562typedef PACKED_PRE struct PACKED_POST
8563{
8564 tHalMsgHeader header;
8565 tGetFrameLogReqType tGetFrameLogReqParams;
8566} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8567
8568/*---------------------------------------------------------------------------
8569 * WLAN_HAL_GET_FRAME_LOG_RSP
8570 *-------------------------------------------------------------------------*/
8571typedef PACKED_PRE struct PACKED_POST
8572{
8573 tANI_U32 status;
8574} tGetFrameLogResp, * tpGetFrameLogResp;
8575
8576typedef PACKED_PRE struct PACKED_POST
8577{
8578 tHalMsgHeader header;
8579 tGetFrameLogResp tGetFrameLogRespParams;
8580} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8581
8582/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308583 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8584 *-------------------------------------------------------------------------*/
8585typedef PACKED_PRE struct PACKED_POST
8586{
8587 tANI_U32 reasonCode;
8588}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8589
8590typedef PACKED_PRE struct PACKED_POST
8591{
8592 tHalMsgHeader header;
8593 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8594}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8595
8596/*---------------------------------------------------------------------------
8597 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8598 *-------------------------------------------------------------------------*/
8599typedef PACKED_PRE struct PACKED_POST
8600{ tANI_U32 status;
8601}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8602
8603typedef PACKED_PRE struct PACKED_POST
8604{
8605 tHalMsgHeader header;
8606 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8607}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8608
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308609/*---------------------------------------------------------------------------
8610 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8611 *-------------------------------------------------------------------------*/
8612typedef PACKED_PRE struct PACKED_POST
8613{
8614 tANI_U8 bssIdx;
8615 tANI_U8 rssi;
8616 tSirMacAddr selfMacAddr;
8617 tANI_U32 linkFlCnt;
8618 tANI_U32 linkFlTx;
8619 tANI_U32 lastDataRate;
8620 tANI_U32 rsvd1;
8621 tANI_U32 rsvd2;
8622}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8623
8624typedef PACKED_PRE struct PACKED_POST
8625{
8626 tHalMsgHeader header;
8627 tHalLostLinkParametersIndParams lostLinkParameters;
8628}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308629
8630
8631/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308632 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308633 *--------------------------------------------------------------------------*/
8634typedef PACKED_PRE struct PACKED_POST
8635{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308636 /* BIT0 - enable frame logging
8637 * BIT1 - enableBMUHWtracing
8638 * BIT2 - enableQXDMlogging
8639 * BIT3 - enableUElogDpuTxp
8640 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308641 tANI_U8 enableFlag;
8642 tANI_U8 frameType;
8643 tANI_U8 frameSize;
8644 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308645 /* Host mem address to be used as logmailbox */
8646 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308647 /* firmware will wakeup the host to send logs always */
8648 tANI_U8 continuousFrameLogging;
8649 /* Logging mail box version */
8650 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308651 /* Max ring size in firmware to log msgs when host is suspended state */
8652 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308653 /* when firmware log reaches this threshold and
8654 * if host is awake it will push the logs.
8655 */
8656 tANI_U8 minLogBuffSize;
8657 /* Reserved for future purpose */
8658 tANI_U32 reserved0;
8659 tANI_U32 reserved1;
8660 tANI_U32 reserved2;
8661}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308662
8663typedef PACKED_PRE struct PACKED_POST
8664{
8665 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308666 tFWLoggingInitReqType tFWLoggingInitReqParams;
8667} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308668
8669/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308670 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308671 *-------------------------------------------------------------------------*/
8672typedef PACKED_PRE struct PACKED_POST
8673{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308674 tANI_U32 status;
8675 /* FW mail box address */
8676 tANI_U64 logMailBoxAddr;
8677 /* Logging mail box version */
8678 tANI_U8 logMailBoxVer;
8679 /* Qshrink is enabled */
8680 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308681 /* fw_dump_max_size is used to tell fwr mem dump size */
8682 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308683 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308684 tANI_U32 reserved1;
8685 tANI_U32 reserved2;
8686} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308687
8688typedef PACKED_PRE struct PACKED_POST
8689{
8690 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308691 tFWLoggingInitResp tFWLoggingInitRespParams;
8692} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
8693
8694/*---------------------------------------------------------------------------
8695 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
8696 *-------------------------------------------------------------------------*/
8697typedef PACKED_PRE struct PACKED_POST
8698{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05308699 tANI_U16 status;
8700 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308701 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8702 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8703} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
8704
8705typedef PACKED_PRE struct PACKED_POST
8706{
8707 tHalMsgHeader header;
8708 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
8709} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
8710
8711/*---------------------------------------------------------------------------
8712 * Logging mail box structure
8713 *-------------------------------------------------------------------------*/
8714
8715#define MAILBOX_VERSION_V1 0x1
8716
8717typedef PACKED_PRE struct PACKED_POST
8718{
8719 /* Logging mail box version */
8720 tANI_U8 logMbVersion;
8721 /* Current logging buffer address */
8722 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8723 /* Current logging buffer length */
8724 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8725 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
8726 tANI_U16 reasonCode;
8727 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
8728 tANI_U8 logType;
8729 /* Indicate if Last segment of log is received*/
8730 tANI_BOOLEAN done;
8731}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308732
Katya Nigamf0511f62015-05-05 16:40:57 +05308733/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05308734 *WLAN_HAL_FW_MEMORY_DUMP_REQ
8735 *--------------------------------------------------------------------------*/
8736typedef PACKED_PRE struct PACKED_POST
8737{
8738 tANI_U32 reserved;
8739}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
8740
8741typedef PACKED_PRE struct PACKED_POST
8742{
8743 tHalMsgHeader header;
8744 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
8745} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
8746
8747/*---------------------------------------------------------------------------
8748 * WLAN_HAL_FW_MEMORY_DUMP_RSP
8749 *-------------------------------------------------------------------------*/
8750typedef PACKED_PRE struct PACKED_POST
8751{
8752 tANI_U32 status;
8753} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
8754
8755typedef PACKED_PRE struct PACKED_POST
8756{
8757 tHalMsgHeader header;
8758 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
8759} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
8760
8761
8762/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05308763* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
8764*-------------------------------------------------------------------------*/
8765
8766/* only 1 filter is supported as of now */
8767#define NUM_FILTERS_SUPPORTED 1
8768
8769typedef PACKED_PRE struct PACKED_POST
8770{
8771 tSirMacAddr macAddr;
8772 tANI_U8 isA1filteringNeeded;
8773 tANI_U8 isA2filteringNeeded;
8774 tANI_U8 isA3filteringNeeded;
8775}tHalMacFilter, *tpHalMacFilter;
8776
8777typedef PACKED_PRE struct PACKED_POST
8778{
8779 tANI_U8 channelNumber;
8780 ePhyChanBondState cbState;
8781
8782 tANI_U32 maxAmpduLen;
8783 tANI_U32 maxMpduInAmpduLen;
8784
8785 tANI_U8 crcCheckEnabled;
8786
8787 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
8788 tANI_U8 numMacFilters;
8789 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
8790
8791 /* Each bit position maps to IEEE convention of typeSubtype */
8792 tANI_U64 typeSubtypeBitmap;
8793
8794 tANI_U64 reserved;
8795
8796}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
8797
8798typedef PACKED_PRE struct PACKED_POST
8799{
8800 tHalMsgHeader header;
8801 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
8802}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
8803
8804
8805/*---------------------------------------------------------------------------
8806* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
8807*-------------------------------------------------------------------------*/
8808
8809typedef PACKED_PRE struct PACKED_POST
8810{
8811 tANI_U32 status;
8812}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
8813
8814typedef PACKED_PRE struct PACKED_POST
8815{
8816 tHalMsgHeader header;
8817 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
8818}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
8819
8820/*---------------------------------------------------------------------------
8821* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
8822*-------------------------------------------------------------------------*/
8823
8824typedef PACKED_PRE struct PACKED_POST
8825{
8826 tHalMsgHeader header;
8827 tANI_U8 resetConfiguration;
8828}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
8829
8830/*---------------------------------------------------------------------------
8831* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
8832*-------------------------------------------------------------------------*/
8833
8834typedef PACKED_PRE struct PACKED_POST
8835{
8836 tANI_U32 status;
8837}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
8838
8839typedef PACKED_PRE struct PACKED_POST
8840{
8841 tHalMsgHeader header;
8842 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
8843}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
8844
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05308845typedef PACKED_PRE struct PACKED_POST
8846{
8847 tANI_U8 status;
8848}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
8849
Jeff Johnson295189b2012-06-20 16:38:30 -07008850#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8851#pragma pack(pop)
8852#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8853#else
8854#endif
8855
8856#endif /* _WLAN_HAL_MSG_H_ */