blob: 8c05f04c4ca07f02db1f8c3a064c064c86ebe045 [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,
804 HAL_PER_STA_STATS_INFO = 0x00000020
805}eHalStatsMask;
806
807/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530808typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700809{
810 BTAMP_EVENT_CONNECTION_START,
811 BTAMP_EVENT_CONNECTION_STOP,
812 BTAMP_EVENT_CONNECTION_TERMINATED,
813 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
814} tBtAmpEventType;
815
816//***************************************************************
817
818
819/*******************PE Statistics*************************/
820typedef enum
821{
822 PE_SUMMARY_STATS_INFO = 0x00000001,
823 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
824 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
825 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
826 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
827 PE_PER_STA_STATS_INFO = 0x00000020,
828 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
829}ePEStatsMask;
830
Sunil Dutt8377a382014-05-26 21:18:04 +0530831
832/******************************LINK LAYER Statitics**********************/
833
834typedef int wifi_radio;
835typedef int wifi_channel;
836typedef int wifi_tx_rate;
837
838/* channel operating width */
839typedef enum {
840 WIFI_CHAN_WIDTH_20 = 0,
841 WIFI_CHAN_WIDTH_40 = 1,
842 WIFI_CHAN_WIDTH_80 = 2,
843 WIFI_CHAN_WIDTH_160 = 3,
844 WIFI_CHAN_WIDTH_80P80 = 4,
845 WIFI_CHAN_WIDTH_5 = 5,
846 WIFI_CHAN_WIDTH_10 = 6,
847} wifi_channel_width;
848
849typedef enum {
850 WIFI_DISCONNECTED = 0,
851 WIFI_AUTHENTICATING = 1,
852 WIFI_ASSOCIATING = 2,
853 WIFI_ASSOCIATED = 3,
854 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
855 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
856} wifi_connection_state;
857
858typedef enum {
859 WIFI_ROAMING_IDLE = 0,
860 WIFI_ROAMING_ACTIVE = 1,
861} wifi_roam_state;
862
863typedef enum {
864 WIFI_INTERFACE_STA = 0,
865 WIFI_INTERFACE_SOFTAP = 1,
866 WIFI_INTERFACE_IBSS = 2,
867 WIFI_INTERFACE_P2P_CLIENT = 3,
868 WIFI_INTERFACE_P2P_GO = 4,
869 WIFI_INTERFACE_NAN = 5,
870 WIFI_INTERFACE_MESH = 6,
871 } wifi_interface_mode;
872
873#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
874#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
875#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
876#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
877#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
878#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
879
880typedef PACKED_PRE struct PACKED_POST
881{
882 wifi_interface_mode mode; // interface mode
883 tANI_U8 mac_addr[6]; // interface mac address (self)
884 wifi_connection_state state; // connection state (valid for STA, CLI only)
885 wifi_roam_state roaming; // roaming state
886 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
887 tANI_U8 ssid[33]; // null terminated SSID
888 tANI_U8 bssid[6]; // bssid
889 tANI_U8 ap_country_str[3]; // country string advertised by AP
890 tANI_U8 country_str[3]; // country string for this association
891} wifi_interface_info;
892
893/* channel information */
894typedef PACKED_PRE struct PACKED_POST
895{
896 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
897 wifi_channel center_freq; // primary 20 MHz channel
898 wifi_channel center_freq0; // center frequency (MHz) first segment
899 wifi_channel center_freq1; // center frequency (MHz) second segment
900} wifi_channel_info;
901
902/* wifi rate info */
903typedef PACKED_PRE struct PACKED_POST
904{
905 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
906 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
907 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
908 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
909 // HT/VHT it would be mcs index
910 tANI_U32 reserved :16; // reserved
911 tANI_U32 bitrate; // units of 100 Kbps
912} wifi_rate;
913
914/* channel statistics */
915typedef PACKED_PRE struct PACKED_POST
916{
917 wifi_channel_info channel; // channel
918 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
919 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
920} wifi_channel_stats;
921
922/* radio statistics */
923typedef PACKED_PRE struct PACKED_POST
924{
925 wifi_radio radio; // wifi radio (if multiple radio supported)
926 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
927 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
928 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
929 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
930 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
931 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
932 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
933 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
934 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
935 tANI_U32 num_channels; // number of channels
936 wifi_channel_stats channels[1]; // channel statistics
937} wifi_radio_stat;
938
939/* per rate statistics */
940typedef PACKED_PRE struct PACKED_POST
941{
942 wifi_rate rate; // rate information *
943 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
944 tANI_U32 rx_mpdu; // number of received data pkts
945 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
946 tANI_U32 retries; // total number of data pkt retries *
947 tANI_U32 retries_short; // number of short data pkt retries
948 tANI_U32 retries_long; // number of long data pkt retries
949} wifi_rate_stat;
950
951/* access categories */
952typedef enum {
953 WIFI_AC_VO = 0,
954 WIFI_AC_VI = 1,
955 WIFI_AC_BE = 2,
956 WIFI_AC_BK = 3,
957 WIFI_AC_MAX = 4,
958} wifi_traffic_ac;
959
960/* wifi peer type */
961typedef enum
962{
963 WIFI_PEER_STA,
964 WIFI_PEER_AP,
965 WIFI_PEER_P2P_GO,
966 WIFI_PEER_P2P_CLIENT,
967 WIFI_PEER_NAN,
968 WIFI_PEER_TDLS,
969 WIFI_PEER_INVALID,
970} wifi_peer_type;
971
972/* per peer statistics */
973typedef PACKED_PRE struct PACKED_POST
974{
975 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
976 tANI_U8 peer_mac_address[6]; // mac address
977 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
978 tANI_U32 num_rate; // number of rates
979 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
980} wifi_peer_info;
981
982/* per access category statistics */
983typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530984{
985 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
986 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
987 tANI_U32 rx_mpdu; // number of received unicast mpdus
988 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
989 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
990 tANI_U32 rx_mcast; // number of received multicast data packets
991 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
992 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
993 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
994 tANI_U32 retries; // total number of data pkt retries
995 tANI_U32 retries_short; // number of short data pkt retries
996 tANI_U32 retries_long; // number of long data pkt retries
997 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
998 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
999 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1000 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1001} wifi_wmm_ac_stat;
1002
1003/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1004typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301005{
1006 wifi_interface_info info; // current state of the interface
1007 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1008 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1009 tANI_U32 mgmt_action_rx; // action frames received count
1010 tANI_U32 mgmt_action_tx; // action frames transmit count
1011 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1012 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1013 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1014 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
1015} wifi_iface_stat;
1016
1017/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1018typedef PACKED_PRE struct PACKED_POST
1019{
1020 tANI_U32 num_peers; // number of peers
1021 wifi_peer_info peer_info[1]; // per peer statistics
1022} wifi_peer_stat;
1023
1024/* wifi statistics bitmap for getting statistics */
1025#define WMI_LINK_STATS_RADIO 0x00000001
1026#define WMI_LINK_STATS_IFACE 0x00000002
1027#define WMI_LINK_STATS_ALL_PEER 0x00000004
1028#define WMI_LINK_STATS_PER_PEER 0x00000008
1029
1030/* wifi statistics bitmap for clearing statistics */
1031#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1032#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1033#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1034#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1035#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1036#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1037#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1038#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1039
1040
Jeff Johnson295189b2012-06-20 16:38:30 -07001041/*---------------------------------------------------------------------------
1042 Message definitons - All the messages below need to be packed
1043 ---------------------------------------------------------------------------*/
1044
1045#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1046#pragma pack(push, 1)
1047#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1048#pragma pack(1)
1049#else
1050#endif
1051
1052/// Definition for HAL API Version.
1053typedef PACKED_PRE struct PACKED_POST
1054{
1055 tANI_U8 revision;
1056 tANI_U8 version;
1057 tANI_U8 minor;
1058 tANI_U8 major;
1059} tWcnssWlanVersion, *tpWcnssWlanVersion;
1060
1061/// Definition for Encryption Keys
1062typedef PACKED_PRE struct PACKED_POST
1063{
1064 tANI_U8 keyId;
1065 tANI_U8 unicast; // 0 for multicast
1066 tAniKeyDirection keyDirection;
1067 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1068 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1069 tANI_U16 keyLength;
1070 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1071} tSirKeys, *tpSirKeys;
1072
1073
1074//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1075typedef PACKED_PRE struct PACKED_POST
1076{
1077 /*STA Index*/
1078 tANI_U16 staIdx;
1079
1080 /*Encryption Type used with peer*/
1081 tAniEdType encType;
1082
1083 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301084 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001085
1086 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1087 tANI_U8 defWEPIdx;
1088
Jeff Johnson295189b2012-06-20 16:38:30 -07001089 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301090 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1091
Jeff Johnson295189b2012-06-20 16:38:30 -07001092 /*Control for Replay Count, 1= Single TID based replay count on Tx
1093 0 = Per TID based replay count on TX */
1094 tANI_U8 singleTidRc;
1095
1096} tSetStaKeyParams, *tpSetStaKeyParams;
1097
1098
1099
1100/* 4-byte control message header used by HAL*/
1101typedef PACKED_PRE struct PACKED_POST
1102{
Jeff Johnsone7245742012-09-05 17:12:55 -07001103 tHalHostMsgType msgType:16;
1104 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001105 tANI_U32 msgLen;
1106} tHalMsgHeader, *tpHalMsgHeader;
1107
1108/* Config format required by HAL for each CFG item*/
1109typedef PACKED_PRE struct PACKED_POST
1110{
1111 /* Cfg Id. The Id required by HAL is exported by HAL
1112 * in shared header file between UMAC and HAL.*/
1113 tANI_U16 uCfgId;
1114
Dino Mycle8afbac12014-07-04 22:06:17 +05301115 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001116 * in the TLV format.*/
1117 tANI_U16 uCfgLen;
1118
1119 /* Padding bytes for unaligned address's */
1120 tANI_U16 uCfgPadBytes;
1121
1122 /* Reserve bytes for making cfgVal to align address */
1123 tANI_U16 uCfgReserve;
1124
1125 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1126 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1127} tHalCfg, *tpHalCfg;
1128
1129/*---------------------------------------------------------------------------
1130 WLAN_HAL_START_REQ
1131---------------------------------------------------------------------------*/
1132
1133typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1134{
1135 /* Drive Type - Production or FTM etc */
1136 tDriverType driverType;
1137
1138 /*Length of the config buffer*/
1139 tANI_U32 uConfigBufferLen;
1140
Dino Mycle8afbac12014-07-04 22:06:17 +05301141 /* Following this there is a TLV formatted buffer of length
1142 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001143 * The TLV is expected to be formatted like this:
1144 * 0 15 31 31+CFG_LEN-1 length-1
1145 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1146 */
1147} tHalMacStartParameters, *tpHalMacStartParameters;
1148
1149typedef PACKED_PRE struct PACKED_POST
1150{
1151 /* Note: The length specified in tHalMacStartReqMsg messages should be
1152 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1153 tHalMsgHeader header;
1154 tHalMacStartParameters startReqParams;
1155} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1156
1157/*---------------------------------------------------------------------------
1158 WLAN_HAL_START_RSP
1159---------------------------------------------------------------------------*/
1160
1161typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1162{
1163 /*success or failure */
1164 tANI_U16 status;
1165
1166 /*Max number of STA supported by the device*/
1167 tANI_U8 ucMaxStations;
1168
1169 /*Max number of BSS supported by the device*/
1170 tANI_U8 ucMaxBssids;
1171
1172 /*API Version */
1173 tWcnssWlanVersion wcnssWlanVersion;
1174
1175 /*CRM build information */
1176 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1177
1178 /*hardware/chipset/misc version information */
1179 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1180
1181} tHalMacStartRspParams, *tpHalMacStartRspParams;
1182
1183typedef PACKED_PRE struct PACKED_POST
1184{
1185 tHalMsgHeader header;
1186 tHalMacStartRspParams startRspParams;
1187} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1188
1189/*---------------------------------------------------------------------------
1190 WLAN_HAL_STOP_REQ
1191---------------------------------------------------------------------------*/
1192
1193typedef PACKED_PRE struct PACKED_POST
1194{
1195 /*The reason for which the device is being stopped*/
1196 tHalStopType reason;
1197
1198}tHalMacStopReqParams, *tpHalMacStopReqParams;
1199
1200typedef PACKED_PRE struct PACKED_POST
1201{
1202 tHalMsgHeader header;
1203 tHalMacStopReqParams stopReqParams;
1204} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1205
1206/*---------------------------------------------------------------------------
1207 WLAN_HAL_STOP_RSP
1208---------------------------------------------------------------------------*/
1209
1210typedef PACKED_PRE struct PACKED_POST
1211{
1212 /*success or failure */
1213 tANI_U32 status;
1214
1215}tHalMacStopRspParams, *tpHalMacStopRspParams;
1216
1217typedef PACKED_PRE struct PACKED_POST
1218{
1219 tHalMsgHeader header;
1220 tHalMacStopRspParams stopRspParams;
1221} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1222
1223/*---------------------------------------------------------------------------
1224 WLAN_HAL_UPDATE_CFG_REQ
1225---------------------------------------------------------------------------*/
1226
1227typedef PACKED_PRE struct PACKED_POST
1228{
1229 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1230 tANI_U32 uConfigBufferLen;
1231
Dino Mycle8afbac12014-07-04 22:06:17 +05301232 /* Following this there is a TLV formatted buffer of length
1233 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001234 * The TLV is expected to be formatted like this:
1235 * 0 15 31 31+CFG_LEN-1 length-1
1236 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1237 */
1238} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1239
1240typedef PACKED_PRE struct PACKED_POST
1241{
1242 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1243 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1244 tHalMsgHeader header;
1245 tHalUpdateCfgReqParams updateCfgReqParams;
1246} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1247
1248/*---------------------------------------------------------------------------
1249 WLAN_HAL_UPDATE_CFG_RSP
1250---------------------------------------------------------------------------*/
1251
1252typedef PACKED_PRE struct PACKED_POST
1253{
1254 /* success or failure */
1255 tANI_U32 status;
1256
1257}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1258
1259typedef PACKED_PRE struct PACKED_POST
1260{
1261 tHalMsgHeader header;
1262 tHalUpdateCfgRspParams updateCfgRspParams;
1263} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1264
1265/*---------------------------------------------------------------------------
1266 WLAN_HAL_INIT_SCAN_REQ
1267---------------------------------------------------------------------------*/
1268
1269/// Frame control field format (2 bytes)
1270typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1271{
1272
1273#ifndef ANI_LITTLE_BIT_ENDIAN
1274
1275 tANI_U8 subType :4;
1276 tANI_U8 type :2;
1277 tANI_U8 protVer :2;
1278
1279 tANI_U8 order :1;
1280 tANI_U8 wep :1;
1281 tANI_U8 moreData :1;
1282 tANI_U8 powerMgmt :1;
1283 tANI_U8 retry :1;
1284 tANI_U8 moreFrag :1;
1285 tANI_U8 fromDS :1;
1286 tANI_U8 toDS :1;
1287
1288#else
1289
1290 tANI_U8 protVer :2;
1291 tANI_U8 type :2;
1292 tANI_U8 subType :4;
1293
1294 tANI_U8 toDS :1;
1295 tANI_U8 fromDS :1;
1296 tANI_U8 moreFrag :1;
1297 tANI_U8 retry :1;
1298 tANI_U8 powerMgmt :1;
1299 tANI_U8 moreData :1;
1300 tANI_U8 wep :1;
1301 tANI_U8 order :1;
1302
1303#endif
1304
1305} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1306
1307/// Sequence control field
1308typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1309{
1310 tANI_U8 fragNum : 4;
1311 tANI_U8 seqNumLo : 4;
1312 tANI_U8 seqNumHi : 8;
1313} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1314
1315/// Management header format
1316typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1317{
1318 tSirMacFrameCtl fc;
1319 tANI_U8 durationLo;
1320 tANI_U8 durationHi;
1321 tANI_U8 da[6];
1322 tANI_U8 sa[6];
1323 tANI_U8 bssId[6];
1324 tSirMacSeqCtl seqControl;
1325} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1326
1327/// Scan Entry to hold active BSS idx's
1328typedef __ani_attr_pre_packed struct sSirScanEntry
1329{
1330 tANI_U8 bssIdx[HAL_NUM_BSSID];
1331 tANI_U8 activeBSScnt;
1332}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1333
1334typedef PACKED_PRE struct PACKED_POST {
1335
1336 /*LEARN - AP Role
1337 SCAN - STA Role*/
1338 eHalSysMode scanMode;
1339
1340 /*BSSID of the BSS*/
1341 tSirMacAddr bssid;
1342
1343 /*Whether BSS needs to be notified*/
1344 tANI_U8 notifyBss;
1345
1346 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1347 CTS to Self). Must always be a valid frame type.*/
1348 tANI_U8 frameType;
1349
1350 /*UMAC has the option of passing the MAC frame to be used for notifying
1351 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1352 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1353 frameType.*/
1354 tANI_U8 frameLength;
1355
Dino Mycle8afbac12014-07-04 22:06:17 +05301356 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001357 is non-zero. */
1358 tSirMacMgmtHdr macMgmtHdr;
1359
1360 /*Entry to hold number of active BSS idx's*/
1361 tSirScanEntry scanEntry;
1362
1363} tInitScanParams, * tpInitScanParams;
1364
1365typedef PACKED_PRE struct PACKED_POST
1366{
1367 tHalMsgHeader header;
1368 tInitScanParams initScanParams;
1369} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1370
1371typedef PACKED_PRE struct PACKED_POST {
1372
1373 /*LEARN - AP Role
1374 SCAN - STA Role*/
1375 eHalSysMode scanMode;
1376
1377 /*BSSID of the BSS*/
1378 tSirMacAddr bssid;
1379
1380 /*Whether BSS needs to be notified*/
1381 tANI_U8 notifyBss;
1382
1383 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1384 CTS to Self). Must always be a valid frame type.*/
1385 tANI_U8 frameType;
1386
1387 /*UMAC has the option of passing the MAC frame to be used for notifying
1388 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1389 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1390 frameType.*/
1391 tANI_U8 frameLength;
1392
Dino Mycle8afbac12014-07-04 22:06:17 +05301393 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001394 is non-zero. */
1395 tSirMacMgmtHdr macMgmtHdr;
1396
1397 /*Entry to hold number of active BSS idx's*/
1398 tSirScanEntry scanEntry;
1399
1400 /* Single NoA usage in Scanning */
1401 tANI_U8 useNoA;
1402
1403 /* Indicates the scan duration (in ms) */
1404 tANI_U16 scanDuration;
1405
1406} tInitScanConParams, * tpInitScanConParams;
1407
1408typedef PACKED_PRE struct PACKED_POST
1409{
1410 tHalMsgHeader header;
1411 tInitScanConParams initScanParams;
1412} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1413
1414
1415/*---------------------------------------------------------------------------
1416 WLAN_HAL_INIT_SCAN_RSP
1417---------------------------------------------------------------------------*/
1418
1419typedef PACKED_PRE struct PACKED_POST
1420{
1421 /*success or failure */
1422 tANI_U32 status;
1423
1424}tHalInitScanRspParams, *tpHalInitScanRspParams;
1425
1426typedef PACKED_PRE struct PACKED_POST
1427{
1428 tHalMsgHeader header;
1429 tHalInitScanRspParams initScanRspParams;
1430} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1431
1432/*---------------------------------------------------------------------------
1433 WLAN_HAL_START_SCAN_REQ
1434---------------------------------------------------------------------------*/
1435
Dino Mycle8afbac12014-07-04 22:06:17 +05301436typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001437{
1438 /*Indicates the channel to scan*/
1439 tANI_U8 scanChannel;
1440
1441 } tStartScanParams, * tpStartScanParams;
1442
1443typedef PACKED_PRE struct PACKED_POST
1444{
1445 tHalMsgHeader header;
1446 tStartScanParams startScanParams;
1447} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1448
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001449typedef PACKED_PRE struct PACKED_POST
1450{
1451 tHalMsgHeader header;
1452} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1453
Jeff Johnson295189b2012-06-20 16:38:30 -07001454/*---------------------------------------------------------------------------
1455 WLAN_HAL_START_SCAN_RSP
1456---------------------------------------------------------------------------*/
1457
1458typedef PACKED_PRE struct PACKED_POST
1459{
1460 /*success or failure */
1461 tANI_U32 status;
1462
1463 tANI_U32 startTSF[2];
1464 tPowerdBm txMgmtPower;
1465
1466}tHalStartScanRspParams, *tpHalStartScanRspParams;
1467
1468typedef PACKED_PRE struct PACKED_POST
1469{
1470 tHalMsgHeader header;
1471 tHalStartScanRspParams startScanRspParams;
1472} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1473
1474/*---------------------------------------------------------------------------
1475 WLAN_HAL_END_SCAN_REQ
1476---------------------------------------------------------------------------*/
1477
1478typedef PACKED_PRE struct PACKED_POST
1479{
1480 /*Indicates the channel to stop scanning. Not used really. But retained
1481 for symmetry with "start Scan" message. It can also help in error
1482 check if needed.*/
1483 tANI_U8 scanChannel;
1484
1485} tEndScanParams, *tpEndScanParams;
1486
1487typedef PACKED_PRE struct PACKED_POST
1488{
1489 tHalMsgHeader header;
1490 tEndScanParams endScanParams;
1491} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1492
1493/*---------------------------------------------------------------------------
1494 WLAN_HAL_END_SCAN_RSP
1495---------------------------------------------------------------------------*/
1496
1497typedef PACKED_PRE struct PACKED_POST
1498{
1499 /*success or failure */
1500 tANI_U32 status;
1501
1502}tHalEndScanRspParams, *tpHalEndScanRspParams;
1503
1504typedef PACKED_PRE struct PACKED_POST
1505{
1506 tHalMsgHeader header;
1507 tHalEndScanRspParams endScanRspParams;
1508} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1509
1510/*---------------------------------------------------------------------------
1511 WLAN_HAL_FINISH_SCAN_REQ
1512---------------------------------------------------------------------------*/
1513
1514typedef PACKED_PRE struct PACKED_POST
1515{
1516 /* Identifies the operational state of the AP/STA
1517 * LEARN - AP Role SCAN - STA Role */
1518 eHalSysMode scanMode;
1519
1520 /*Operating channel to tune to.*/
1521 tANI_U8 currentOperChannel;
1522
1523 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1524 40 MHz extension channel in combination with the control channel*/
1525 ePhyChanBondState cbState;
1526
1527 /*BSSID of the BSS*/
1528 tSirMacAddr bssid;
1529
1530 /*Whether BSS needs to be notified*/
1531 tANI_U8 notifyBss;
1532
1533 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1534 CTS to Self). Must always be a valid frame type.*/
1535 tANI_U8 frameType;
1536
1537 /*UMAC has the option of passing the MAC frame to be used for notifying
1538 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1539 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1540 frameType.*/
1541 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301542
1543 /*Following the framelength there is a MAC frame buffer if frameLength
1544 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001545 tSirMacMgmtHdr macMgmtHdr;
1546
1547 /*Entry to hold number of active BSS idx's*/
1548 tSirScanEntry scanEntry;
1549
1550} tFinishScanParams, *tpFinishScanParams;
1551
1552typedef PACKED_PRE struct PACKED_POST
1553{
1554 tHalMsgHeader header;
1555 tFinishScanParams finishScanParams;
1556} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1557
1558/*---------------------------------------------------------------------------
1559 WLAN_HAL_FINISH_SCAN_RSP
1560---------------------------------------------------------------------------*/
1561
1562typedef PACKED_PRE struct PACKED_POST
1563{
1564 /*success or failure */
1565 tANI_U32 status;
1566
1567}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1568
1569typedef PACKED_PRE struct PACKED_POST
1570{
1571 tHalMsgHeader header;
1572 tHalFinishScanRspParams finishScanRspParams;
1573} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1574
Srinivas Dasari42584632014-11-26 20:37:19 +05301575typedef PACKED_PRE struct PACKED_POST
1576{
1577 tSetStaKeyParams keyParams;
1578 uint8 pn[6];
1579} tHalEncConfigParams;
1580
1581typedef PACKED_PRE struct PACKED_POST
1582{
1583 uint16 length;
1584 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1585} tHalDisaPayload;
1586
1587typedef PACKED_PRE struct PACKED_POST
1588{
1589#ifdef BYTE_ORDER_BIG_ENDIAN
1590 uint8 reserved1 : 1;
1591 uint8 ackpolicy : 2;
1592 uint8 eosp : 1;
1593 uint8 tid : 4;
1594
1595 uint8 appsbufferstate : 8;
1596#else
1597 uint8 appsbufferstate : 8;
1598
1599 uint8 tid : 4;
1600 uint8 eosp : 1;
1601 uint8 ackpolicy : 2;
1602 uint8 reserved1 : 1;
1603#endif
1604} tHalQosCtrlFieldType;
1605
1606typedef PACKED_PRE struct PACKED_POST
1607 {
1608#ifdef BYTE_ORDER_BIG_ENDIAN
1609 uint16 subtype : 4;
1610 uint16 type : 2;
1611 uint16 protocol : 2;
1612
1613 uint16 order : 1;
1614 uint16 wep : 1;
1615 uint16 moredata : 1;
1616 uint16 pm : 1;
1617 uint16 retry : 1;
1618 uint16 morefrag : 1;
1619 uint16 fromds : 1;
1620 uint16 tods : 1;
1621#else
1622
1623 uint16 tods : 1;
1624 uint16 fromds : 1;
1625 uint16 morefrag : 1;
1626 uint16 retry : 1;
1627 uint16 pm : 1;
1628 uint16 moredata : 1;
1629 uint16 wep : 1;
1630 uint16 order : 1;
1631
1632 uint16 protocol : 2;
1633 uint16 type : 2;
1634 uint16 subtype : 4;
1635#endif
1636} tHalFrmCtrlType;
1637
1638typedef PACKED_PRE struct PACKED_POST
1639{
1640 /* Frame control field */
1641 tHalFrmCtrlType fc;
1642 /* Duration ID */
1643 uint16 usDurationId;
1644 /* Address 1 field */
1645 uint8 vA1[HAL_MAC_ADDR_LEN];
1646 /* Address 2 field */
1647 uint8 vA2[HAL_MAC_ADDR_LEN];
1648 /* Address 3 field */
1649 uint8 vA3[HAL_MAC_ADDR_LEN];
1650 /* Sequence control field */
1651 uint16 seqNum;
1652 /* Optional A4 address */
1653 uint8 optvA4[HAL_MAC_ADDR_LEN];
1654 /* Optional QOS control field */
1655 tHalQosCtrlFieldType usQosCtrl;
1656} tHal80211Header;
1657
1658typedef PACKED_PRE struct PACKED_POST
1659{
1660 tHal80211Header macHeader;
1661 tHalEncConfigParams encParams;
1662 tHalDisaPayload data;
1663} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1664
1665typedef PACKED_PRE struct PACKED_POST
1666{
1667 tHalMsgHeader header;
1668 tSetEncryptedDataParams encryptedDataParams;
1669} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1670
1671typedef PACKED_PRE struct PACKED_POST
1672{
1673 tANI_U32 status;
1674 tHalDisaPayload encryptedPayload;
1675} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1676
1677typedef PACKED_PRE struct PACKED_POST
1678{
1679 tHalMsgHeader header;
1680 tSetEncryptedDataRspParams encryptedDataRspParams;
1681} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1682
Jeff Johnson295189b2012-06-20 16:38:30 -07001683/*---------------------------------------------------------------------------
1684 WLAN_HAL_CONFIG_STA_REQ
1685---------------------------------------------------------------------------*/
1686
1687typedef PACKED_PRE struct PACKED_POST {
1688 /*
1689 * For Self STA Entry: this represents Self Mode.
1690 * For Peer Stations, this represents the mode of the peer.
1691 * On Station:
1692 * --this mode is updated when PE adds the Self Entry.
1693 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1694 * ON AP:
1695 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1696 * to indicate the self mode of the AP.
1697 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1698 */
1699
1700 tStaRateMode opRateMode;
1701 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1702 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1703 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1704 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1705 tANI_U16 reserved;
1706
1707 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1708 //First 26 bits are reserved for those Titan rates and
1709 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1710 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1711
1712 /*
1713 * 0-76 bits used, remaining reserved
1714 * bits 0-15 and 32 should be set.
1715 */
1716 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1717
1718 /*
1719 * RX Highest Supported Data Rate defines the highest data
1720 * rate that the STA is able to receive, in unites of 1Mbps.
1721 * This value is derived from "Supported MCS Set field" inside
1722 * the HT capability element.
1723 */
1724 tANI_U16 rxHighestDataRate;
1725
1726} tSirSupportedRates, *tpSirSupportedRates;
1727
1728typedef PACKED_PRE struct PACKED_POST
1729{
1730 /*BSSID of STA*/
1731 tSirMacAddr bssId;
1732
1733 /*ASSOC ID, as assigned by UMAC*/
1734 tANI_U16 assocId;
1735
1736 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1737 tANI_U8 staType;
1738
1739 /*Short Preamble Supported.*/
1740 tANI_U8 shortPreambleSupported;
1741
1742 /*MAC Address of STA*/
1743 tSirMacAddr staMac;
1744
1745 /*Listen interval of the STA*/
1746 tANI_U16 listenInterval;
1747
1748 /*Support for 11e/WMM*/
1749 tANI_U8 wmmEnabled;
1750
1751 /*11n HT capable STA*/
1752 tANI_U8 htCapable;
1753
1754 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1755 tANI_U8 txChannelWidthSet;
1756
1757 /*RIFS mode 0 - NA, 1 - Allowed */
1758 tANI_U8 rifsMode;
1759
Dino Mycle8afbac12014-07-04 22:06:17 +05301760 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001761 0 - No Support, 1 - Supported
1762 SG - there is global field */
1763 tANI_U8 lsigTxopProtection;
1764
1765 /*Max Ampdu Size supported by STA. TPE programming.
1766 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1767 tANI_U8 maxAmpduSize;
1768
1769 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1770 tANI_U8 maxAmpduDensity;
1771
1772 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1773 tANI_U8 maxAmsduSize;
1774
1775 /*Short GI support for 40Mhz packets*/
1776 tANI_U8 fShortGI40Mhz;
1777
1778 /*Short GI support for 20Mhz packets*/
1779 tANI_U8 fShortGI20Mhz;
1780
Jeff Johnson295189b2012-06-20 16:38:30 -07001781 /*Robust Management Frame (RMF) enabled/disabled*/
1782 tANI_U8 rmfEnabled;
1783
1784 /* The unicast encryption type in the association */
1785 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001786
1787 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001788 will set this flag in case of RE-ASSOC, where we want to reuse the old
1789 STA ID. 0 = Add, 1 = Update*/
1790 tANI_U8 action;
1791
1792 /*U-APSD Flags: 1b per AC. Encoded as follows:
1793 b7 b6 b5 b4 b3 b2 b1 b0 =
1794 X X X X BE BK VI VO */
1795 tANI_U8 uAPSD;
1796
1797 /*Max SP Length*/
1798 tANI_U8 maxSPLen;
1799
1800 /*11n Green Field preamble support
1801 0 - Not supported, 1 - Supported */
1802 tANI_U8 greenFieldCapable;
1803
1804 /*MIMO Power Save mode*/
1805 tSirMacHTMIMOPowerSaveState mimoPS;
1806
1807 /*Delayed BA Support*/
1808 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001809
Jeff Johnson295189b2012-06-20 16:38:30 -07001810 /*Max AMPDU duration in 32us*/
1811 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001812
Jeff Johnson295189b2012-06-20 16:38:30 -07001813 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1814 it to 0 if AP does not support it. This indication is sent to HAL and
1815 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1816 tANI_U8 fDsssCckMode40Mhz;
1817
1818 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1819 Retained for backward compalibity with existing HAL code*/
1820 tANI_U8 staIdx;
1821
1822 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1823 Retained for backward compalibity with existing HAL code*/
1824 tANI_U8 bssIdx;
1825
1826 tANI_U8 p2pCapableSta;
1827
Jeff Johnsone7245742012-09-05 17:12:55 -07001828 /*Reserved to align next field on a dword boundary*/
1829 tANI_U8 reserved;
1830
1831 /*These rates are the intersection of peer and self capabilities.*/
1832 tSirSupportedRates supportedRates;
1833
Jeff Johnson295189b2012-06-20 16:38:30 -07001834} tConfigStaParams, *tpConfigStaParams;
1835
Jeff Johnsone7245742012-09-05 17:12:55 -07001836/*------------------------------------------------------------------------
1837 * WLAN_HAL_CONFIG_STA_REQ
1838 * ----------------------------------------------------------------------*/
1839
1840typedef PACKED_PRE struct PACKED_POST {
1841 /*
1842 * For Self STA Entry: this represents Self Mode.
1843 * For Peer Stations, this represents the mode of the peer.
1844 * On Station:
1845 * --this mode is updated when PE adds the Self Entry.
1846 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1847 * ON AP:
1848 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1849 * to indicate the self mode of the AP.
1850 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1851 */
1852
1853 tStaRateMode opRateMode;
1854 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1855 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1856 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1857 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1858 tANI_U16 reserved;
1859
1860 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1861 //First 26 bits are reserved for those Titan rates and
1862 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1863 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1864
1865 /*
1866 * 0-76 bits used, remaining reserved
1867 * bits 0-15 and 32 should be set.
1868 */
1869 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1870
1871 /*
1872 * RX Highest Supported Data Rate defines the highest data
1873 * rate that the STA is able to receive, in unites of 1Mbps.
1874 * This value is derived from "Supported MCS Set field" inside
1875 * the HT capability element.
1876 */
1877 tANI_U16 rxHighestDataRate;
1878
1879 /* Indicates the Maximum MCS that can be received for each number
1880 * of spacial streams */
1881 tANI_U16 vhtRxMCSMap;
1882
1883 /*Indicate the highest VHT data rate that the STA is able to receive*/
1884 tANI_U16 vhtRxHighestDataRate;
1885
1886 /* Indicates the Maximum MCS that can be transmitted for each number
1887 * of spacial streams */
1888 tANI_U16 vhtTxMCSMap;
1889
1890 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1891 tANI_U16 vhtTxHighestDataRate;
1892
1893} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1894
1895typedef PACKED_PRE struct PACKED_POST
1896{
1897 /*BSSID of STA*/
1898 tSirMacAddr bssId;
1899
1900 /*ASSOC ID, as assigned by UMAC*/
1901 tANI_U16 assocId;
1902
1903 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1904 tANI_U8 staType;
1905
1906 /*Short Preamble Supported.*/
1907 tANI_U8 shortPreambleSupported;
1908
1909 /*MAC Address of STA*/
1910 tSirMacAddr staMac;
1911
1912 /*Listen interval of the STA*/
1913 tANI_U16 listenInterval;
1914
1915 /*Support for 11e/WMM*/
1916 tANI_U8 wmmEnabled;
1917
1918 /*11n HT capable STA*/
1919 tANI_U8 htCapable;
1920
1921 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1922 tANI_U8 txChannelWidthSet;
1923
1924 /*RIFS mode 0 - NA, 1 - Allowed */
1925 tANI_U8 rifsMode;
1926
1927 /*L-SIG TXOP Protection mechanism
1928 0 - No Support, 1 - Supported
1929 SG - there is global field */
1930 tANI_U8 lsigTxopProtection;
1931
1932 /*Max Ampdu Size supported by STA. TPE programming.
1933 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1934 tANI_U8 maxAmpduSize;
1935
1936 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1937 tANI_U8 maxAmpduDensity;
1938
1939 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1940 tANI_U8 maxAmsduSize;
1941
1942 /*Short GI support for 40Mhz packets*/
1943 tANI_U8 fShortGI40Mhz;
1944
1945 /*Short GI support for 20Mhz packets*/
1946 tANI_U8 fShortGI20Mhz;
1947
1948 /*Robust Management Frame (RMF) enabled/disabled*/
1949 tANI_U8 rmfEnabled;
1950
1951 /* The unicast encryption type in the association */
1952 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301953
1954 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001955 will set this flag in case of RE-ASSOC, where we want to reuse the old
1956 STA ID. 0 = Add, 1 = Update*/
1957 tANI_U8 action;
1958
1959 /*U-APSD Flags: 1b per AC. Encoded as follows:
1960 b7 b6 b5 b4 b3 b2 b1 b0 =
1961 X X X X BE BK VI VO */
1962 tANI_U8 uAPSD;
1963
1964 /*Max SP Length*/
1965 tANI_U8 maxSPLen;
1966
1967 /*11n Green Field preamble support
1968 0 - Not supported, 1 - Supported */
1969 tANI_U8 greenFieldCapable;
1970
1971 /*MIMO Power Save mode*/
1972 tSirMacHTMIMOPowerSaveState mimoPS;
1973
1974 /*Delayed BA Support*/
1975 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301976
Jeff Johnsone7245742012-09-05 17:12:55 -07001977 /*Max AMPDU duration in 32us*/
1978 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301979
Jeff Johnsone7245742012-09-05 17:12:55 -07001980 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1981 it to 0 if AP does not support it. This indication is sent to HAL and
1982 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1983 tANI_U8 fDsssCckMode40Mhz;
1984
1985 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1986 Retained for backward compalibity with existing HAL code*/
1987 tANI_U8 staIdx;
1988
1989 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1990 Retained for backward compalibity with existing HAL code*/
1991 tANI_U8 bssIdx;
1992
1993 tANI_U8 p2pCapableSta;
1994
1995 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001996 tANI_U8 htLdpcEnabled:1;
1997 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001998 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05301999 tANI_U8 vhtTxMUBformeeCapable:1;
2000 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002001
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002002 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002003 tSirSupportedRates_V1 supportedRates;
2004
2005 tANI_U8 vhtCapable;
2006 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002007
Jeff Johnsone7245742012-09-05 17:12:55 -07002008} tConfigStaParams_V1, *tpConfigStaParams_V1;
2009
Jeff Johnson295189b2012-06-20 16:38:30 -07002010typedef PACKED_PRE struct PACKED_POST
2011{
2012 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002013 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002014 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002015 tConfigStaParams_V1 configStaParams_V1;
2016 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002017} tConfigStaReqMsg, *tpConfigStaReqMsg;
2018
2019/*---------------------------------------------------------------------------
2020 WLAN_HAL_CONFIG_STA_RSP
2021---------------------------------------------------------------------------*/
2022
2023typedef PACKED_PRE struct PACKED_POST
2024{
2025 /*success or failure */
2026 tANI_U32 status;
2027
2028 /* Station index; valid only when 'status' field value SUCCESS */
2029 tANI_U8 staIdx;
2030
2031 /* BSSID Index of BSS to which the station is associated */
2032 tANI_U8 bssIdx;
2033
2034 /* DPU Index for PTK */
2035 tANI_U8 dpuIndex;
2036
Dino Mycle8afbac12014-07-04 22:06:17 +05302037 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002038 tANI_U8 bcastDpuIndex;
2039
2040 /*DPU Index for IGTK */
2041 tANI_U8 bcastMgmtDpuIdx;
2042
2043 /*PTK DPU signature*/
2044 tANI_U8 ucUcastSig;
2045
2046 /*GTK DPU isignature*/
2047 tANI_U8 ucBcastSig;
2048
2049 /* IGTK DPU signature*/
2050 tANI_U8 ucMgmtSig;
2051
2052 tANI_U8 p2pCapableSta;
2053
2054}tConfigStaRspParams, *tpConfigStaRspParams;
2055
2056typedef PACKED_PRE struct PACKED_POST
2057{
2058 tHalMsgHeader header;
2059 tConfigStaRspParams configStaRspParams;
2060}tConfigStaRspMsg, *tpConfigStaRspMsg;
2061
2062/*---------------------------------------------------------------------------
2063 WLAN_HAL_DELETE_STA_REQ
2064---------------------------------------------------------------------------*/
2065
2066/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302067typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002068{
2069 /* Index of STA to delete */
2070 tANI_U8 staIdx;
2071} tDeleteStaParams, *tpDeleteStaParams;
2072
2073/* Delete STA Request message*/
2074typedef PACKED_PRE struct PACKED_POST
2075{
2076 tHalMsgHeader header;
2077 tDeleteStaParams delStaParams;
2078} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2079
2080/*---------------------------------------------------------------------------
2081 WLAN_HAL_DELETE_STA_RSP
2082---------------------------------------------------------------------------*/
2083
2084/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302085typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002086{
2087 /*success or failure */
2088 tANI_U32 status;
2089
2090 /* Index of STA deleted */
2091 tANI_U8 staId;
2092} tDeleteStaRspParams, *tpDeleteStaRspParams;
2093
2094/* Delete STA Response message*/
2095typedef PACKED_PRE struct PACKED_POST
2096{
2097 tHalMsgHeader header;
2098 tDeleteStaRspParams delStaRspParams;
2099} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2100
2101/*---------------------------------------------------------------------------
2102 WLAN_HAL_CONFIG_BSS_REQ
2103---------------------------------------------------------------------------*/
2104
2105//12 Bytes long because this structure can be used to represent rate
2106//and extended rate set IEs. The parser assume this to be at least 12
2107typedef __ani_attr_pre_packed struct sSirMacRateSet
2108{
2109 tANI_U8 numRates;
2110 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2111} __ani_attr_packed tSirMacRateSet;
2112
2113// access category record
2114typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2115{
2116#ifndef ANI_LITTLE_BIT_ENDIAN
2117 tANI_U8 rsvd : 1;
2118 tANI_U8 aci : 2;
2119 tANI_U8 acm : 1;
2120 tANI_U8 aifsn : 4;
2121#else
2122 tANI_U8 aifsn : 4;
2123 tANI_U8 acm : 1;
2124 tANI_U8 aci : 2;
2125 tANI_U8 rsvd : 1;
2126#endif
2127} __ani_attr_packed tSirMacAciAifsn;
2128
2129// contention window size
2130typedef __ani_attr_pre_packed struct sSirMacCW
2131{
2132#ifndef ANI_LITTLE_BIT_ENDIAN
2133 tANI_U8 max : 4;
2134 tANI_U8 min : 4;
2135#else
2136 tANI_U8 min : 4;
2137 tANI_U8 max : 4;
2138#endif
2139} __ani_attr_packed tSirMacCW;
2140
2141typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2142{
2143 tSirMacAciAifsn aci;
2144 tSirMacCW cw;
2145 tANI_U16 txoplimit;
2146} __ani_attr_packed tSirMacEdcaParamRecord;
2147
2148typedef __ani_attr_pre_packed struct sSirMacSSid
2149{
2150 tANI_U8 length;
2151 tANI_U8 ssId[32];
2152} __ani_attr_packed tSirMacSSid;
2153
2154// Concurrency role. These are generic IDs that identify the various roles
2155// in the software system.
2156typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302157 HAL_STA_MODE=0,
2158 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002159 HAL_P2P_CLIENT_MODE,
2160 HAL_P2P_GO_MODE,
2161 HAL_MONITOR_MODE,
2162} tHalConMode;
2163
2164//This is a bit pattern to be set for each mode
2165//bit 0 - sta mode
2166//bit 1 - ap mode
2167//bit 2 - p2p client mode
2168//bit 3 - p2p go mode
2169typedef enum
2170{
Dino Mycle8afbac12014-07-04 22:06:17 +05302171 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002172 HAL_SAP=2,
2173 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2174 HAL_P2P_CLIENT=4,
2175 HAL_P2P_GO=8,
2176 HAL_MAX_CONCURRENCY_PERSONA=4
2177} tHalConcurrencyMode;
2178
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002179// IFACE PERSONA for different Operating modes
2180typedef enum
2181{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002182 HAL_IFACE_UNKNOWN=0,
2183 HAL_IFACE_STA_MODE=1,
2184 HAL_IFACE_P2P_MODE=2,
2185 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002186} tHalIfacePersona;
2187
Jeff Johnson295189b2012-06-20 16:38:30 -07002188typedef PACKED_PRE struct PACKED_POST
2189{
2190 /* BSSID */
2191 tSirMacAddr bssId;
2192
Jeff Johnson295189b2012-06-20 16:38:30 -07002193 /* Self Mac Address */
2194 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002195
2196 /* BSS type */
2197 tSirBssType bssType;
2198
2199 /*Operational Mode: AP =0, STA = 1*/
2200 tANI_U8 operMode;
2201
2202 /*Network Type*/
2203 tSirNwType nwType;
2204
2205 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2206 tANI_U8 shortSlotTimeSupported;
2207
2208 /*Co-exist with 11a STA*/
2209 tANI_U8 llaCoexist;
2210
2211 /*Co-exist with 11b STA*/
2212 tANI_U8 llbCoexist;
2213
2214 /*Co-exist with 11g STA*/
2215 tANI_U8 llgCoexist;
2216
2217 /*Coexistence with 11n STA*/
2218 tANI_U8 ht20Coexist;
2219
2220 /*Non GF coexist flag*/
2221 tANI_U8 llnNonGFCoexist;
2222
2223 /*TXOP protection support*/
2224 tANI_U8 fLsigTXOPProtectionFullSupport;
2225
2226 /*RIFS mode*/
2227 tANI_U8 fRIFSMode;
2228
2229 /*Beacon Interval in TU*/
2230 tSirMacBeaconInterval beaconInterval;
2231
2232 /*DTIM period*/
2233 tANI_U8 dtimPeriod;
2234
2235 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2236 tANI_U8 txChannelWidthSet;
2237
2238 /*Operating channel*/
2239 tANI_U8 currentOperChannel;
2240
2241 /*Extension channel for channel bonding*/
2242 tANI_U8 currentExtChannel;
2243
2244 /*Reserved to align next field on a dword boundary*/
2245 tANI_U8 reserved;
2246
Jeff Johnsone7245742012-09-05 17:12:55 -07002247 /*SSID of the BSS*/
2248 tSirMacSSid ssId;
2249
2250 /*HAL should update the existing BSS entry, if this flag is set.
2251 UMAC will set this flag in case of reassoc, where we want to resue the
2252 the old BSSID and still return success 0 = Add, 1 = Update*/
2253 tANI_U8 action;
2254
2255 /* MAC Rate Set */
2256 tSirMacRateSet rateSet;
2257
2258 /*Enable/Disable HT capabilities of the BSS*/
2259 tANI_U8 htCapable;
2260
2261 // Enable/Disable OBSS protection
2262 tANI_U8 obssProtEnabled;
2263
2264 /*RMF enabled/disabled*/
2265 tANI_U8 rmfEnabled;
2266
2267 /*HT Operating Mode operating mode of the 802.11n STA*/
2268 tSirMacHTOperatingMode htOperMode;
2269
2270 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2271 tANI_U8 dualCTSProtection;
2272
2273 /* Probe Response Max retries */
2274 tANI_U8 ucMaxProbeRespRetryLimit;
2275
2276 /* To Enable Hidden ssid */
2277 tANI_U8 bHiddenSSIDEn;
2278
2279 /* To Enable Disable FW Proxy Probe Resp */
2280 tANI_U8 bProxyProbeRespEn;
2281
2282 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2283 EDCA params or might not desire to apply EDCA params during config BSS.
2284 0 implies Not Valid ; Non-Zero implies valid*/
2285 tANI_U8 edcaParamsValid;
2286
2287 /*EDCA Parameters for Best Effort Access Category*/
2288 tSirMacEdcaParamRecord acbe;
2289
2290 /*EDCA Parameters forBackground Access Category*/
2291 tSirMacEdcaParamRecord acbk;
2292
2293 /*EDCA Parameters for Video Access Category*/
2294 tSirMacEdcaParamRecord acvi;
2295
2296 /*EDCA Parameters for Voice Access Category*/
2297 tSirMacEdcaParamRecord acvo;
2298
2299#ifdef WLAN_FEATURE_VOWIFI_11R
2300 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2301 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2302#endif
2303
2304 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2305 tANI_U8 halPersona;
2306
2307 tANI_U8 bSpectrumMgtEnable;
2308
2309 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2310 tANI_S8 txMgmtPower;
2311 /*maxTxPower has max power to be used after applying the power constraint if any */
2312 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002313 /*Context of the station being added in HW
2314 Add a STA entry for "itself" -
2315 On AP - Add the AP itself in an "STA context"
2316 On STA - Add the AP to which this STA is joining in an "STA context" */
2317 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002318} tConfigBssParams, * tpConfigBssParams;
2319
2320
2321/*--------------------------------------------------------------------------
2322 * WLAN_HAL_CONFIG_BSS_REQ
2323 *--------------------------------------------------------------------------*/
2324typedef PACKED_PRE struct PACKED_POST
2325{
2326 /* BSSID */
2327 tSirMacAddr bssId;
2328
Jeff Johnsone7245742012-09-05 17:12:55 -07002329 /* Self Mac Address */
2330 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002331
2332 /* BSS type */
2333 tSirBssType bssType;
2334
2335 /*Operational Mode: AP =0, STA = 1*/
2336 tANI_U8 operMode;
2337
2338 /*Network Type*/
2339 tSirNwType nwType;
2340
2341 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2342 tANI_U8 shortSlotTimeSupported;
2343
2344 /*Co-exist with 11a STA*/
2345 tANI_U8 llaCoexist;
2346
2347 /*Co-exist with 11b STA*/
2348 tANI_U8 llbCoexist;
2349
2350 /*Co-exist with 11g STA*/
2351 tANI_U8 llgCoexist;
2352
2353 /*Coexistence with 11n STA*/
2354 tANI_U8 ht20Coexist;
2355
2356 /*Non GF coexist flag*/
2357 tANI_U8 llnNonGFCoexist;
2358
2359 /*TXOP protection support*/
2360 tANI_U8 fLsigTXOPProtectionFullSupport;
2361 /*RIFS mode*/
2362 tANI_U8 fRIFSMode;
2363
2364 /*Beacon Interval in TU*/
2365 tSirMacBeaconInterval beaconInterval;
2366
2367 /*DTIM period*/
2368 tANI_U8 dtimPeriod;
2369
2370 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2371 tANI_U8 txChannelWidthSet;
2372
2373 /*Operating channel*/
2374 tANI_U8 currentOperChannel;
2375
2376 /*Extension channel for channel bonding*/
2377 tANI_U8 currentExtChannel;
2378
2379 /*Reserved to align next field on a dword boundary*/
2380 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002381
2382 /*SSID of the BSS*/
2383 tSirMacSSid ssId;
2384
2385 /*HAL should update the existing BSS entry, if this flag is set.
2386 UMAC will set this flag in case of reassoc, where we want to resue the
2387 the old BSSID and still return success 0 = Add, 1 = Update*/
2388 tANI_U8 action;
2389
2390 /* MAC Rate Set */
2391 tSirMacRateSet rateSet;
2392
2393 /*Enable/Disable HT capabilities of the BSS*/
2394 tANI_U8 htCapable;
2395
2396 // Enable/Disable OBSS protection
2397 tANI_U8 obssProtEnabled;
2398
2399 /*RMF enabled/disabled*/
2400 tANI_U8 rmfEnabled;
2401
2402 /*HT Operating Mode operating mode of the 802.11n STA*/
2403 tSirMacHTOperatingMode htOperMode;
2404
2405 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2406 tANI_U8 dualCTSProtection;
2407
2408 /* Probe Response Max retries */
2409 tANI_U8 ucMaxProbeRespRetryLimit;
2410
2411 /* To Enable Hidden ssid */
2412 tANI_U8 bHiddenSSIDEn;
2413
2414 /* To Enable Disable FW Proxy Probe Resp */
2415 tANI_U8 bProxyProbeRespEn;
2416
Dino Mycle8afbac12014-07-04 22:06:17 +05302417 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2418 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002419 0 implies Not Valid ; Non-Zero implies valid*/
2420 tANI_U8 edcaParamsValid;
2421
2422 /*EDCA Parameters for Best Effort Access Category*/
2423 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302424
Jeff Johnson295189b2012-06-20 16:38:30 -07002425 /*EDCA Parameters forBackground Access Category*/
2426 tSirMacEdcaParamRecord acbk;
2427
2428 /*EDCA Parameters for Video Access Category*/
2429 tSirMacEdcaParamRecord acvi;
2430
2431 /*EDCA Parameters for Voice Access Category*/
2432 tSirMacEdcaParamRecord acvo;
2433
2434#ifdef WLAN_FEATURE_VOWIFI_11R
2435 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2436 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2437#endif
2438
Dino Mycle8afbac12014-07-04 22:06:17 +05302439 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002440 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302441
Jeff Johnson295189b2012-06-20 16:38:30 -07002442 tANI_U8 bSpectrumMgtEnable;
2443
2444 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2445 tANI_S8 txMgmtPower;
2446 /*maxTxPower has max power to be used after applying the power constraint if any */
2447 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002448 /*Context of the station being added in HW
2449 Add a STA entry for "itself" -
2450 On AP - Add the AP itself in an "STA context"
2451 On STA - Add the AP to which this STA is joining in an "STA context" */
2452 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302453
Jeff Johnsone7245742012-09-05 17:12:55 -07002454 tANI_U8 vhtCapable;
2455 tANI_U8 vhtTxChannelWidthSet;
2456} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002457
2458typedef PACKED_PRE struct PACKED_POST
2459{
2460 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002461 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002462 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002463 tConfigBssParams_V1 configBssParams_V1;
2464 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002465} tConfigBssReqMsg, *tpConfigBssReqMsg;
2466
2467/*---------------------------------------------------------------------------
2468 WLAN_HAL_CONFIG_BSS_RSP
2469---------------------------------------------------------------------------*/
2470
2471typedef PACKED_PRE struct PACKED_POST
2472{
2473 /* Success or Failure */
2474 tANI_U32 status;
2475
2476 /* BSS index allocated by HAL */
2477 tANI_U8 bssIdx;
2478
2479 /* DPU descriptor index for PTK */
2480 tANI_U8 dpuDescIndx;
2481
2482 /* PTK DPU signature */
2483 tANI_U8 ucastDpuSignature;
2484
2485 /* DPU descriptor index for GTK*/
2486 tANI_U8 bcastDpuDescIndx;
2487
2488 /* GTK DPU signature */
2489 tANI_U8 bcastDpuSignature;
2490
2491 /*DPU descriptor for IGTK*/
2492 tANI_U8 mgmtDpuDescIndx;
2493
2494 /* IGTK DPU signature */
2495 tANI_U8 mgmtDpuSignature;
2496
2497 /* Station Index for BSS entry*/
2498 tANI_U8 bssStaIdx;
2499
2500 /* Self station index for this BSS */
2501 tANI_U8 bssSelfStaIdx;
2502
2503 /* Bcast station for buffering bcast frames in AP role */
2504 tANI_U8 bssBcastStaIdx;
2505
2506 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2507 tSirMacAddr staMac;
2508
2509 /*HAL fills in the tx power used for mgmt frames in this field. */
2510 tANI_S8 txMgmtPower;
2511
2512} tConfigBssRspParams, * tpConfigBssRspParams;
2513
2514typedef PACKED_PRE struct PACKED_POST
2515{
2516 tHalMsgHeader header;
2517 tConfigBssRspParams configBssRspParams;
2518} tConfigBssRspMsg, *tpConfigBssRspMsg;
2519
2520/*---------------------------------------------------------------------------
2521 WLAN_HAL_DELETE_BSS_REQ
2522---------------------------------------------------------------------------*/
2523
2524typedef PACKED_PRE struct PACKED_POST
2525{
2526 /* BSS index to be deleted */
2527 tANI_U8 bssIdx;
2528
2529} tDeleteBssParams, *tpDeleteBssParams;
2530
2531typedef PACKED_PRE struct PACKED_POST
2532{
2533 tHalMsgHeader header;
2534 tDeleteBssParams deleteBssParams;
2535} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2536
2537/*---------------------------------------------------------------------------
2538 WLAN_HAL_DELETE_BSS_RSP
2539---------------------------------------------------------------------------*/
2540
2541typedef PACKED_PRE struct PACKED_POST
2542{
2543 /* Success or Failure */
2544 tANI_U32 status;
2545
2546 /* BSS index that has been deleted */
2547 tANI_U8 bssIdx;
2548
2549} tDeleteBssRspParams, *tpDeleteBssRspParams;
2550
2551typedef PACKED_PRE struct PACKED_POST
2552{
2553 tHalMsgHeader header;
2554 tDeleteBssRspParams deleteBssRspParams;
2555} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2556
2557/*---------------------------------------------------------------------------
2558 WLAN_HAL_JOIN_REQ
2559---------------------------------------------------------------------------*/
2560
2561typedef PACKED_PRE struct PACKED_POST
2562{
2563 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302564 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002565
2566 /*Indicates the channel to switch to.*/
2567 tANI_U8 ucChannel;
2568
2569 /* Self STA MAC */
2570 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302571
Jeff Johnson295189b2012-06-20 16:38:30 -07002572 /*Local power constraint*/
2573 tANI_U8 ucLocalPowerConstraint;
2574
2575 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002576 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002577
2578 /*link State*/
2579 tSirLinkState linkState;
2580
2581 /* Max TX power */
2582 tANI_S8 maxTxPower;
2583
2584} tHalJoinReqParams, *tpHalJoinReqParams;
2585
2586typedef PACKED_PRE struct PACKED_POST
2587{
2588 tHalMsgHeader header;
2589 tHalJoinReqParams joinReqParams;
2590} tHalJoinReqMsg, *tpHalJoinReqMsg;
2591
2592/*---------------------------------------------------------------------------
2593 WLAN_HAL_JOIN_RSP
2594---------------------------------------------------------------------------*/
2595
2596typedef PACKED_PRE struct PACKED_POST
2597{
2598 /*success or failure */
2599 tANI_U32 status;
2600
2601 /* HAL fills in the tx power used for mgmt frames in this field */
2602 tPowerdBm txMgmtPower;
2603
2604}tHalJoinRspParams, *tpHalJoinRspParams;
2605
2606typedef PACKED_PRE struct PACKED_POST
2607{
2608 tHalMsgHeader header;
2609 tHalJoinRspParams joinRspParams;
2610}tHalJoinRspMsg, *tpHalJoinRspMsg;
2611
2612/*---------------------------------------------------------------------------
2613 WLAN_HAL_POST_ASSOC_REQ
2614---------------------------------------------------------------------------*/
2615
2616typedef PACKED_PRE struct PACKED_POST
2617{
2618 tConfigStaParams configStaParams;
2619 tConfigBssParams configBssParams;
2620} tPostAssocReqParams, *tpPostAssocReqParams;
2621
2622typedef PACKED_PRE struct PACKED_POST
2623{
2624 tHalMsgHeader header;
2625 tPostAssocReqParams postAssocReqParams;
2626} tPostAssocReqMsg, *tpPostAssocReqMsg;
2627
2628/*---------------------------------------------------------------------------
2629 WLAN_HAL_POST_ASSOC_RSP
2630---------------------------------------------------------------------------*/
2631
2632typedef PACKED_PRE struct PACKED_POST
2633{
2634 tConfigStaRspParams configStaRspParams;
2635 tConfigBssRspParams configBssRspParams;
2636} tPostAssocRspParams, *tpPostAssocRspParams;
2637
2638typedef PACKED_PRE struct PACKED_POST
2639{
2640 tHalMsgHeader header;
2641 tPostAssocRspParams postAssocRspParams;
2642} tPostAssocRspMsg, *tpPostAssocRspMsg;
2643
2644/*---------------------------------------------------------------------------
2645 WLAN_HAL_SET_BSSKEY_REQ
2646---------------------------------------------------------------------------*/
2647
2648/*
2649 * This is used by PE to create a set of WEP keys for a given BSS.
2650 */
2651typedef PACKED_PRE struct PACKED_POST
2652{
2653 /*BSS Index of the BSS*/
2654 tANI_U8 bssIdx;
2655
2656 /*Encryption Type used with peer*/
2657 tAniEdType encType;
2658
2659 /*Number of keys*/
2660 tANI_U8 numKeys;
2661
2662 /*Array of keys.*/
2663 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302664
Jeff Johnson295189b2012-06-20 16:38:30 -07002665 /*Control for Replay Count, 1= Single TID based replay count on Tx
2666 0 = Per TID based replay count on TX */
2667 tANI_U8 singleTidRc;
2668} tSetBssKeyParams, *tpSetBssKeyParams;
2669
2670typedef PACKED_PRE struct PACKED_POST
2671{
2672 tHalMsgHeader header;
2673 tSetBssKeyParams setBssKeyParams;
2674} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2675
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002676/* tagged version of set bss key */
2677typedef PACKED_PRE struct PACKED_POST
2678{
2679 tSetBssKeyReqMsg Msg;
2680 uint32 Tag;
2681} tSetBssKeyReqMsgTagged;
2682
Jeff Johnson295189b2012-06-20 16:38:30 -07002683/*---------------------------------------------------------------------------
2684 WLAN_HAL_SET_BSSKEY_RSP
2685---------------------------------------------------------------------------*/
2686typedef PACKED_PRE struct PACKED_POST
2687{
2688 /*success or failure */
2689 tANI_U32 status;
2690
2691} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2692
2693typedef PACKED_PRE struct PACKED_POST
2694{
2695 tHalMsgHeader header;
2696 tSetBssKeyRspParams setBssKeyRspParams;
2697} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2698
2699/*---------------------------------------------------------------------------
2700 WLAN_HAL_SET_STAKEY_REQ,
2701---------------------------------------------------------------------------*/
2702
2703/*
2704 * This is used by PE to configure the key information on a given station.
2705 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2706 * a preconfigured key from a BSS the station assoicated with; otherwise
2707 * a new key descriptor is created based on the key field.
2708 */
2709
2710typedef PACKED_PRE struct PACKED_POST
2711{
2712 tHalMsgHeader header;
2713 tSetStaKeyParams setStaKeyParams;
2714} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2715
2716/*---------------------------------------------------------------------------
2717 WLAN_HAL_SET_STAKEY_RSP,
2718---------------------------------------------------------------------------*/
2719typedef PACKED_PRE struct PACKED_POST
2720{
2721 /*success or failure */
2722 tANI_U32 status;
2723
2724} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2725
2726typedef PACKED_PRE struct PACKED_POST
2727{
2728 tHalMsgHeader header;
2729 tSetStaKeyRspParams setStaKeyRspParams;
2730} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2731
2732/*---------------------------------------------------------------------------
2733 WLAN_HAL_RMV_BSSKEY_REQ,
2734---------------------------------------------------------------------------*/
2735/*
2736 * This is used by PE to remove keys for a given BSS.
2737 */
2738typedef PACKED_PRE struct PACKED_POST
2739
2740{
2741 /*BSS Index of the BSS*/
2742 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302743
Jeff Johnson295189b2012-06-20 16:38:30 -07002744 /*Encryption Type used with peer*/
2745 tAniEdType encType;
2746
2747 /*Key Id*/
2748 tANI_U8 keyId;
2749
2750 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2751 tAniWepType wepType;
2752
2753} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2754
2755typedef PACKED_PRE struct PACKED_POST
2756{
2757 tHalMsgHeader header;
2758 tRemoveBssKeyParams removeBssKeyParams;
2759} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2760
2761/*---------------------------------------------------------------------------
2762 WLAN_HAL_RMV_BSSKEY_RSP,
2763---------------------------------------------------------------------------*/
2764typedef PACKED_PRE struct PACKED_POST
2765{
2766 /*success or failure */
2767 tANI_U32 status;
2768
2769} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2770
2771typedef PACKED_PRE struct PACKED_POST
2772{
2773 tHalMsgHeader header;
2774 tRemoveBssKeyRspParams removeBssKeyRspParams;
2775} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2776
2777/*---------------------------------------------------------------------------
2778 WLAN_HAL_RMV_STAKEY_REQ,
2779---------------------------------------------------------------------------*/
2780/*
2781 * This is used by PE to Remove the key information on a given station.
2782 */
2783typedef PACKED_PRE struct PACKED_POST
2784{
2785 /*STA Index*/
2786 tANI_U16 staIdx;
2787
2788 /*Encryption Type used with peer*/
2789 tAniEdType encType;
2790
2791 /*Key Id*/
2792 tANI_U8 keyId;
2793
2794 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2795 the same key is used for both broadcast and unicast.*/
2796 tANI_BOOLEAN unicast;
2797
2798} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2799
2800typedef PACKED_PRE struct PACKED_POST
2801{
2802 tHalMsgHeader header;
2803 tRemoveStaKeyParams removeStaKeyParams;
2804} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2805
2806/*---------------------------------------------------------------------------
2807 WLAN_HAL_RMV_STAKEY_RSP,
2808---------------------------------------------------------------------------*/
2809typedef PACKED_PRE struct PACKED_POST
2810{
2811 /*success or failure */
2812 tANI_U32 status;
2813} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2814
2815typedef PACKED_PRE struct PACKED_POST
2816{
2817 tHalMsgHeader header;
2818 tRemoveStaKeyRspParams removeStaKeyRspParams;
2819} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2820
Jeff Johnsone7245742012-09-05 17:12:55 -07002821#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002822
Jeff Johnsone7245742012-09-05 17:12:55 -07002823#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002824#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002825#endif
2826
2827#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002828#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002829#endif
2830
2831/*-------------------------------------------------------------------------
2832WLAN_HAL_START_OEM_DATA_REQ
2833--------------------------------------------------------------------------*/
2834typedef PACKED_PRE struct PACKED_POST
2835{
2836 tANI_U32 status;
2837 tSirMacAddr selfMacAddr;
2838 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2839} tStartOemDataReqParams, *tpStartOemDataReqParams;
2840
2841typedef PACKED_PRE struct PACKED_POST
2842{
2843 tHalMsgHeader header;
2844 tStartOemDataReqParams startOemDataReqParams;
2845} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2846
2847/*-------------------------------------------------------------------------
2848WLAN_HAL_START_OEM_DATA_RSP
2849--------------------------------------------------------------------------*/
2850
2851typedef PACKED_PRE struct PACKED_POST
2852{
2853 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2854} tStartOemDataRspParams, *tpStartOemDataRspParams;
2855
2856typedef PACKED_PRE struct PACKED_POST
2857{
2858 tHalMsgHeader header;
2859 tStartOemDataRspParams startOemDataRspParams;
2860} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2861
2862#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002863
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002864/*---------------------------------------------------------------------------
2865WLAN_HAL_CH_SWITCH_V1_REQ
2866---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002867
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002868typedef PACKED_PRE struct PACKED_POST
2869{
2870 /* Channel number */
2871 tANI_U8 channelNumber;
2872
2873 /* Local power constraint */
2874 tANI_U8 localPowerConstraint;
2875
2876 /*Secondary channel offset */
2877 ePhyChanBondState secondaryChannelOffset;
2878
2879 //HAL fills in the tx power used for mgmt frames in this field.
2880 tPowerdBm txMgmtPower;
2881
2882 /* Max TX power */
2883 tPowerdBm maxTxPower;
2884
2885 /* Self STA MAC */
2886 tSirMacAddr selfStaMacAddr;
2887
2888 /*VO WIFI comment: BSSID needed to identify session. As the request has
2889 * power constraints, this should be applied only to that session
2890 * Since MTU timing and EDCA are sessionized, this struct needs to be
2891 * sessionized and bssid needs to be out of the VOWifi feature flag
2892 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002893 * mantain backward compatbility
2894 * by way of ignoring if using new host/old FW or old host/new FW since
2895 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002896 */
2897 tSirMacAddr bssId;
2898
2899 /* Source of Channel Switch */
2900 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002901
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002902} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2903
2904typedef PACKED_PRE struct PACKED_POST
2905{
2906 tHalMsgHeader header;
2907 tSwitchChannelParams_V1 switchChannelParams_V1;
2908} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2909
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002910/*---------------------------------------------------------------------------
2911WLAN_HAL_CH_SWITCH_V1_RSP
2912---------------------------------------------------------------------------*/
2913
2914typedef PACKED_PRE struct PACKED_POST
2915{
2916 /* Status */
2917 tANI_U32 status;
2918
2919 /* Channel number - same as in request*/
2920 tANI_U8 channelNumber;
2921
2922 /* HAL fills in the tx power used for mgmt frames in this field */
2923 tPowerdBm txMgmtPower;
2924
2925 /* BSSID needed to identify session - same as in request*/
2926 tSirMacAddr bssId;
2927
2928 /* Source of Channel Switch */
2929 eHalChanSwitchSource channelSwitchSrc;
2930
2931} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2932
2933typedef PACKED_PRE struct PACKED_POST
2934{
2935 tHalMsgHeader header;
2936 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2937} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002938
2939/*---------------------------------------------------------------------------
2940WLAN_HAL_CH_SWITCH_REQ
2941---------------------------------------------------------------------------*/
2942
2943typedef PACKED_PRE struct PACKED_POST
2944{
2945 /* Channel number */
2946 tANI_U8 channelNumber;
2947
2948 /* Local power constraint */
2949 tANI_U8 localPowerConstraint;
2950
2951 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002952 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002953
2954 //HAL fills in the tx power used for mgmt frames in this field.
2955 tPowerdBm txMgmtPower;
2956
2957 /* Max TX power */
2958 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302959
Jeff Johnson295189b2012-06-20 16:38:30 -07002960 /* Self STA MAC */
2961 tSirMacAddr selfStaMacAddr;
2962
2963 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2964 this should be applied only to that session*/
2965 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2966 * bssid needs to be out of the VOWifi feature flag */
2967 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2968 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2969 */
2970 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302971
Jeff Johnson295189b2012-06-20 16:38:30 -07002972}tSwitchChannelParams, *tpSwitchChannelParams;
2973
2974typedef PACKED_PRE struct PACKED_POST
2975{
2976 tHalMsgHeader header;
2977 tSwitchChannelParams switchChannelParams;
2978} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2979
2980/*---------------------------------------------------------------------------
2981WLAN_HAL_CH_SWITCH_RSP
2982---------------------------------------------------------------------------*/
2983
2984typedef PACKED_PRE struct PACKED_POST
2985{
2986 /* Status */
2987 tANI_U32 status;
2988
2989 /* Channel number - same as in request*/
2990 tANI_U8 channelNumber;
2991
2992 /* HAL fills in the tx power used for mgmt frames in this field */
2993 tPowerdBm txMgmtPower;
2994
2995 /* BSSID needed to identify session - same as in request*/
2996 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302997
Jeff Johnson295189b2012-06-20 16:38:30 -07002998}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2999
3000typedef PACKED_PRE struct PACKED_POST
3001{
3002 tHalMsgHeader header;
3003 tSwitchChannelRspParams switchChannelRspParams;
3004} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3005
3006/*---------------------------------------------------------------------------
3007WLAN_HAL_UPD_EDCA_PARAMS_REQ
3008---------------------------------------------------------------------------*/
3009
3010typedef PACKED_PRE struct PACKED_POST
3011{
3012 /*BSS Index*/
3013 tANI_U16 bssIdx;
3014
3015 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303016 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003017
3018 /* Background */
3019 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303020
Jeff Johnson295189b2012-06-20 16:38:30 -07003021 /* Video */
3022 tSirMacEdcaParamRecord acvi;
3023
3024 /* Voice */
3025 tSirMacEdcaParamRecord acvo;
3026
3027} tEdcaParams, *tpEdcaParams;
3028
3029typedef PACKED_PRE struct PACKED_POST
3030{
3031 tHalMsgHeader header;
3032 tEdcaParams edcaParams;
3033} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3034
3035/*---------------------------------------------------------------------------
3036WLAN_HAL_UPD_EDCA_PARAMS_RSP
3037---------------------------------------------------------------------------*/
3038typedef PACKED_PRE struct PACKED_POST
3039{
3040 /*success or failure */
3041 tANI_U32 status;
3042} tEdcaRspParams, *tpEdcaRspParams;
3043
3044typedef PACKED_PRE struct PACKED_POST
3045{
3046 tHalMsgHeader header;
3047 tEdcaRspParams edcaRspParams;
3048} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3049
3050
3051
3052/*---------------------------------------------------------------------------
3053 * WLAN_HAL_GET_STATS_REQ
3054 *--------------------------------------------------------------------------*/
3055typedef PACKED_PRE struct PACKED_POST
3056
3057{
3058 /* Index of STA to which the statistics */
3059 tANI_U16 staIdx;
3060
3061 /* Encryption mode */
3062 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303063
Jeff Johnson295189b2012-06-20 16:38:30 -07003064 /* status */
3065 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303066
Jeff Johnson295189b2012-06-20 16:38:30 -07003067 /* Statistics */
3068 tANI_U32 sendBlocks;
3069 tANI_U32 recvBlocks;
3070 tANI_U32 replays;
3071 tANI_U8 micErrorCnt;
3072 tANI_U32 protExclCnt;
3073 tANI_U16 formatErrCnt;
3074 tANI_U16 unDecryptableCnt;
3075 tANI_U32 decryptErrCnt;
3076 tANI_U32 decryptOkCnt;
3077} tDpuStatsParams, * tpDpuStatsParams;
3078
3079typedef PACKED_PRE struct PACKED_POST
3080{
3081 /* Valid STA Idx for per STA stats request */
3082 tANI_U32 staId;
3083
3084 /* Categories of stats requested as specified in eHalStatsMask*/
3085 tANI_U32 statsMask;
3086}tHalStatsReqParams, *tpHalStatsReqParams;
3087
3088typedef PACKED_PRE struct PACKED_POST
3089{
3090 tHalMsgHeader header;
3091 tHalStatsReqParams statsReqParams;
3092} tHalStatsReqMsg, *tpHalStatsReqMsg;
3093
3094/*---------------------------------------------------------------------------
3095 * WLAN_HAL_GET_STATS_RSP
3096 *--------------------------------------------------------------------------*/
3097
3098typedef PACKED_PRE struct PACKED_POST
3099{
3100 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3101 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3102 // station successfully transmitted after more than one retransmission attempt
3103
Dino Mycle8afbac12014-07-04 22:06:17 +05303104 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3105 //(with and without retries, including multi-cast, broadcast)
3106 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3107 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003108 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3109 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3110 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3111 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 +05303112 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3113 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 -07003114 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3115 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 +05303116 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3117 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003118 //to provide this.
3119}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3120
3121
3122// defines tx_rate_flags
3123typedef enum eTxRateInfo
3124{
3125 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3126 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3127 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3128 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003129 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3130 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3131 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3132 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3133 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3134 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3135} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003136
3137
3138typedef PACKED_PRE struct PACKED_POST
3139{
Dino Mycle8afbac12014-07-04 22:06:17 +05303140 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 -07003141 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303142 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 -07003143 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303144 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3145 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003146 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303147 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3148 //for eg: if it is 10.5dBm, the value would be 105
3149 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3150 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003151
Dino Mycle8afbac12014-07-04 22:06:17 +05303152 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3153 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003154 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303155 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3156 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003157}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3158
3159typedef PACKED_PRE struct PACKED_POST
3160{
Dino Mycle8afbac12014-07-04 22:06:17 +05303161 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3162 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003163 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303164 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 -07003165 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303166 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 -07003167 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303168 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 -07003169 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303170 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 -07003171 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303172 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 -07003173 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303174 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 -07003175 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303176 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 -07003177 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303178 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 -07003179 //decrypted
3180 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3181
3182}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303183
Jeff Johnson295189b2012-06-20 16:38:30 -07003184typedef PACKED_PRE struct PACKED_POST
3185{
3186 tAniGlobalSecurityStats ucStats;
3187 tAniGlobalSecurityStats mcbcStats;
3188}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3189
3190typedef PACKED_PRE struct PACKED_POST
3191{
Dino Mycle8afbac12014-07-04 22:06:17 +05303192 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3193 //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 -07003194 //address 1 field
3195 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 +05303196 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 -07003197 //primary channel
3198 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 +05303199 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 -07003200 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303201 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3202 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003203 //decoded correctly
3204}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3205
3206typedef PACKED_PRE struct PACKED_POST
3207{
Dino Mycle8afbac12014-07-04 22:06:17 +05303208 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 -07003209 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303210 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3211 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 -07003212 //is transmitted
3213}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3214
3215typedef PACKED_PRE struct PACKED_POST
3216{
3217 /* Success or Failure */
3218 tANI_U32 status;
3219
3220 /* STA Idx */
3221 tANI_U32 staId;
3222
3223 /* Categories of STATS being returned as per eHalStatsMask*/
3224 tANI_U32 statsMask;
3225
3226 /* message type is same as the request type */
3227 tANI_U16 msgType;
3228
3229 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303230 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003231
3232} tHalStatsRspParams, *tpHalStatsRspParams;
3233
3234
3235
3236typedef PACKED_PRE struct PACKED_POST
3237{
3238 tHalMsgHeader header;
3239 tHalStatsRspParams statsRspParams;
3240} tHalStatsRspMsg, *tpHalStatsRspMsg;
3241
Abhishek Singhbc310882015-05-22 15:17:02 +05303242 /*---------------------------------------------------------------------------
3243 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3244 *---------------------------------------------------------------------------*/
3245typedef PACKED_PRE struct PACKED_POST
3246{
3247 tANI_U32 rtsCtsValue;
3248}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3249
3250typedef PACKED_PRE struct PACKED_POST
3251{
3252 tHalMsgHeader header;
3253 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3254} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3255
Jeff Johnson295189b2012-06-20 16:38:30 -07003256/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303257 * WLAN_HAL_FW_STATS_REQ
3258 *---------------------------------------------------------------------------*/
3259 typedef PACKED_PRE struct PACKED_POST
3260{
3261 tANI_U32 type;
3262}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3263
3264typedef PACKED_PRE struct PACKED_POST
3265{
3266 tHalMsgHeader header;
3267 tHalfwStatsReqParams fwstatsReqParams;
3268} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3269
3270/*---------------------------------------------------------------------------
3271 * WLAN_HAL_FW_STATS_RSP
3272 *---------------------------------------------------------------------------*/
3273 typedef PACKED_PRE struct PACKED_POST
3274{
3275 tANI_U32 type;
3276 tANI_U32 length;
3277 tANI_U8 data[1];
3278
3279}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3280
3281typedef PACKED_PRE struct PACKED_POST
3282{
3283 tHalMsgHeader header;
3284 tHalfwStatsRspParams fwstatsRspParams;
3285} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3286
3287typedef enum
3288{
3289 FW_UBSP_STATS = 1,
3290} fwstatstype;
3291
3292
3293/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003294 * WLAN_HAL_SET_LINK_ST_REQ
3295 *--------------------------------------------------------------------------*/
3296typedef PACKED_PRE struct PACKED_POST
3297{
3298 tSirMacAddr bssid;
3299 tSirLinkState state;
3300 tSirMacAddr selfMacAddr;
3301} tLinkStateParams, *tpLinkStateParams;
3302
3303typedef PACKED_PRE struct PACKED_POST
3304{
3305 tHalMsgHeader header;
3306 tLinkStateParams linkStateParams;
3307} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3308
3309/*---------------------------------------------------------------------------
3310 * WLAN_HAL_SET_LINK_ST_RSP
3311 *--------------------------------------------------------------------------*/
3312
3313typedef PACKED_PRE struct PACKED_POST
3314{
3315 /*success or failure */
3316 tANI_U32 status;
3317} tLinkStateRspParams, *tpLinkStateRspParams;
3318
3319typedef PACKED_PRE struct PACKED_POST
3320{
3321 tHalMsgHeader header;
3322 tLinkStateRspParams linkStateRspParams;
3323} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3324
3325/*---------------------------------------------------------------------------
3326 * WLAN_HAL_ADD_TS_REQ
3327 *--------------------------------------------------------------------------*/
3328
3329/* TSPEC Params */
3330typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3331{
Jeff Johnson295189b2012-06-20 16:38:30 -07003332 tANI_U16 trafficType : 1;
3333 tANI_U16 tsid : 4;
3334 tANI_U16 direction : 2;
3335 tANI_U16 accessPolicy : 2;
3336 tANI_U16 aggregation : 1;
3337 tANI_U16 psb : 1;
3338 tANI_U16 userPrio : 3;
3339 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003340} __ani_attr_packed tSirMacTSInfoTfc;
3341
3342/* Flag to schedule the traffic type */
3343typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3344{
Jeff Johnson295189b2012-06-20 16:38:30 -07003345 tANI_U8 schedule : 1;
3346 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003347} __ani_attr_packed tSirMacTSInfoSch;
3348
3349/* Traffic and scheduling info */
3350typedef __ani_attr_pre_packed struct sSirMacTSInfo
3351{
3352 tSirMacTSInfoTfc traffic;
3353 tSirMacTSInfoSch schedule;
3354} __ani_attr_packed tSirMacTSInfo;
3355
3356/* Information elements */
3357typedef __ani_attr_pre_packed struct sSirMacTspecIE
3358{
3359 tANI_U8 type;
3360 tANI_U8 length;
3361 tSirMacTSInfo tsinfo;
3362 tANI_U16 nomMsduSz;
3363 tANI_U16 maxMsduSz;
3364 tANI_U32 minSvcInterval;
3365 tANI_U32 maxSvcInterval;
3366 tANI_U32 inactInterval;
3367 tANI_U32 suspendInterval;
3368 tANI_U32 svcStartTime;
3369 tANI_U32 minDataRate;
3370 tANI_U32 meanDataRate;
3371 tANI_U32 peakDataRate;
3372 tANI_U32 maxBurstSz;
3373 tANI_U32 delayBound;
3374 tANI_U32 minPhyRate;
3375 tANI_U16 surplusBw;
3376 tANI_U16 mediumTime;
3377}__ani_attr_packed tSirMacTspecIE;
3378
3379typedef PACKED_PRE struct PACKED_POST
3380{
3381 /* Station Index */
3382 tANI_U16 staIdx;
3383
3384 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3385 tANI_U16 tspecIdx;
3386
3387 /* To program TPE with required parameters */
3388 tSirMacTspecIE tspec;
3389
3390 /* U-APSD Flags: 1b per AC. Encoded as follows:
3391 b7 b6 b5 b4 b3 b2 b1 b0 =
3392 X X X X BE BK VI VO */
3393 tANI_U8 uAPSD;
3394
3395 /* These parameters are for all the access categories */
3396 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3397 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3398 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303399
Jeff Johnson295189b2012-06-20 16:38:30 -07003400} tAddTsParams, *tpAddTsParams;
3401
3402typedef PACKED_PRE struct PACKED_POST
3403{
3404 tHalMsgHeader header;
3405 tAddTsParams addTsParams;
3406} tAddTsReqMsg, *tpAddTsReqMsg;
3407
3408/*---------------------------------------------------------------------------
3409 * WLAN_HAL_ADD_TS_RSP
3410 *--------------------------------------------------------------------------*/
3411
3412typedef PACKED_PRE struct PACKED_POST
3413{
3414 /*success or failure */
3415 tANI_U32 status;
3416} tAddTsRspParams, *tpAddTsRspParams;
3417
3418typedef PACKED_PRE struct PACKED_POST
3419{
3420 tHalMsgHeader header;
3421 tAddTsRspParams addTsRspParams;
3422} tAddTsRspMsg, *tpAddTsRspMsg;
3423
3424
3425/*---------------------------------------------------------------------------
3426 * WLAN_HAL_DEL_TS_REQ
3427 *--------------------------------------------------------------------------*/
3428
3429typedef PACKED_PRE struct PACKED_POST
3430{
3431 /* Station Index */
3432 tANI_U16 staIdx;
3433
3434 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3435 tANI_U16 tspecIdx;
3436
3437 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303438 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003439
3440} tDelTsParams, *tpDelTsParams;
3441
3442typedef PACKED_PRE struct PACKED_POST
3443{
3444 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303445 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003446} tDelTsReqMsg, *tpDelTsReqMsg;
3447
3448/*---------------------------------------------------------------------------
3449 * WLAN_HAL_DEL_TS_RSP
3450 *--------------------------------------------------------------------------*/
3451
3452typedef PACKED_PRE struct PACKED_POST
3453{
3454 /*success or failure */
3455 tANI_U32 status;
3456} tDelTsRspParams, *tpDelTsRspParams;
3457
3458typedef PACKED_PRE struct PACKED_POST
3459{
3460 tHalMsgHeader header;
3461 tDelTsRspParams delTsRspParams;
3462} tDelTsRspMsg, *tpDelTsRspMsg;
3463
3464/* End of TSpec Parameters */
3465
3466/* Start of BLOCK ACK related Parameters */
3467
3468/*---------------------------------------------------------------------------
3469 * WLAN_HAL_ADD_BA_SESSION_REQ
3470 *--------------------------------------------------------------------------*/
3471
3472typedef PACKED_PRE struct PACKED_POST
3473{
3474 /* Station Index */
3475 tANI_U16 staIdx;
3476
3477 /* Peer MAC Address */
3478 tSirMacAddr peerMacAddr;
3479
3480 /* ADDBA Action Frame dialog token
3481 HAL will not interpret this object */
3482 tANI_U8 baDialogToken;
3483
3484 /* TID for which the BA is being setup
3485 This identifies the TC or TS of interest */
3486 tANI_U8 baTID;
3487
3488 /* 0 - Delayed BA (Not supported)
3489 1 - Immediate BA */
3490 tANI_U8 baPolicy;
3491
3492 /* Indicates the number of buffers for this TID (baTID)
3493 NOTE - This is the requested buffer size. When this
3494 is processed by HAL and subsequently by HDD, it is
3495 possible that HDD may change this buffer size. Any
3496 change in the buffer size should be noted by PE and
3497 advertized appropriately in the ADDBA response */
3498 tANI_U16 baBufferSize;
3499
3500 /* BA timeout in TU's 0 means no timeout will occur */
3501 tANI_U16 baTimeout;
3502
3503 /* b0..b3 - Fragment Number - Always set to 0
3504 b4..b15 - Starting Sequence Number of first MSDU
3505 for which this BA is setup */
3506 tANI_U16 baSSN;
3507
3508 /* ADDBA direction
3509 1 - Originator
3510 0 - Recipient */
3511 tANI_U8 baDirection;
3512} tAddBASessionParams, *tpAddBASessionParams;
3513
3514typedef PACKED_PRE struct PACKED_POST
3515{
3516 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303517 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003518}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3519
3520/*---------------------------------------------------------------------------
3521 * WLAN_HAL_ADD_BA_SESSION_RSP
3522 *--------------------------------------------------------------------------*/
3523
3524typedef PACKED_PRE struct PACKED_POST
3525{
3526 /*success or failure */
3527 tANI_U32 status;
3528
3529 /* Dialog token */
3530 tANI_U8 baDialogToken;
3531
3532 /* TID for which the BA session has been setup */
3533 tANI_U8 baTID;
3534
3535 /* BA Buffer Size allocated for the current BA session */
3536 tANI_U8 baBufferSize;
3537
3538 tANI_U8 baSessionID;
3539
3540 /* Reordering Window buffer */
3541 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303542
Jeff Johnson295189b2012-06-20 16:38:30 -07003543 /*Station Index to id the sta */
3544 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303545
Jeff Johnson295189b2012-06-20 16:38:30 -07003546 /* Starting Sequence Number */
3547 tANI_U16 SSN;
3548} tAddBASessionRspParams, *tpAddBASessionRspParams;
3549
3550typedef PACKED_PRE struct PACKED_POST
3551{
3552 tHalMsgHeader header;
3553 tAddBASessionRspParams addBASessionRspParams;
3554} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3555
3556/*---------------------------------------------------------------------------
3557 * WLAN_HAL_ADD_BA_REQ
3558 *--------------------------------------------------------------------------*/
3559
3560typedef PACKED_PRE struct PACKED_POST
3561{
3562 /* Session Id */
3563 tANI_U8 baSessionID;
3564
3565 /* Reorder Window Size */
3566 tANI_U8 winSize;
3567
3568#ifdef FEATURE_ON_CHIP_REORDERING
3569 tANI_BOOLEAN isReorderingDoneOnChip;
3570#endif
3571} tAddBAParams, *tpAddBAParams;
3572
3573typedef PACKED_PRE struct PACKED_POST
3574{
3575 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303576 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003577} tAddBAReqMsg, *tpAddBAReqMsg;
3578
3579
3580/*---------------------------------------------------------------------------
3581 * WLAN_HAL_ADD_BA_RSP
3582 *--------------------------------------------------------------------------*/
3583
3584typedef PACKED_PRE struct PACKED_POST
3585{
3586 /*success or failure */
3587 tANI_U32 status;
3588
3589 /* Dialog token */
3590 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303591
Jeff Johnson295189b2012-06-20 16:38:30 -07003592} tAddBARspParams, *tpAddBARspParams;
3593
3594typedef PACKED_PRE struct PACKED_POST
3595{
3596 tHalMsgHeader header;
3597 tAddBARspParams addBARspParams;
3598} tAddBARspMsg, *tpAddBARspMsg;
3599
3600
3601/*---------------------------------------------------------------------------
3602 * WLAN_HAL_TRIGGER_BA_REQ
3603 *--------------------------------------------------------------------------*/
3604
3605
3606typedef struct sAddBaInfo
3607{
3608 tANI_U16 fBaEnable : 1;
3609 tANI_U16 startingSeqNum: 12;
3610 tANI_U16 reserved : 3;
3611}tAddBaInfo, *tpAddBaInfo;
3612
3613typedef struct sTriggerBaRspCandidate
3614{
3615 tSirMacAddr staAddr;
3616 tAddBaInfo baInfo[STACFG_MAX_TC];
3617}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3618
3619typedef struct sTriggerBaCandidate
3620{
3621 tANI_U8 staIdx;
3622 tANI_U8 tidBitmap;
3623}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3624
3625typedef PACKED_PRE struct PACKED_POST
3626{
3627 /* Session Id */
3628 tANI_U8 baSessionID;
3629
Dino Mycle8afbac12014-07-04 22:06:17 +05303630 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003631 * Candidate List(tTriggerBaCandidate)
3632 */
3633 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303634
Jeff Johnson295189b2012-06-20 16:38:30 -07003635} tTriggerBAParams, *tpTriggerBAParams;
3636
3637typedef PACKED_PRE struct PACKED_POST
3638{
3639 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303640 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003641} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3642
3643
3644/*---------------------------------------------------------------------------
3645 * WLAN_HAL_TRIGGER_BA_RSP
3646 *--------------------------------------------------------------------------*/
3647
3648typedef PACKED_PRE struct PACKED_POST
3649{
Dino Mycle8afbac12014-07-04 22:06:17 +05303650
Jeff Johnson295189b2012-06-20 16:38:30 -07003651 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303652 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003653
3654 /* success or failure */
3655 tANI_U32 status;
3656
Dino Mycle8afbac12014-07-04 22:06:17 +05303657 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003658 * Rsp Candidate List(tTriggerRspBaCandidate)
3659 */
3660 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303661
Jeff Johnson295189b2012-06-20 16:38:30 -07003662
3663} tTriggerBARspParams, *tpTriggerBARspParams;
3664
3665typedef PACKED_PRE struct PACKED_POST
3666{
3667 tHalMsgHeader header;
3668 tTriggerBARspParams triggerBARspParams;
3669} tTriggerBARspMsg, *tpTriggerBARspMsg;
3670
3671/*---------------------------------------------------------------------------
3672 * WLAN_HAL_DEL_BA_REQ
3673 *--------------------------------------------------------------------------*/
3674
3675typedef PACKED_PRE struct PACKED_POST
3676{
3677 /* Station Index */
3678 tANI_U16 staIdx;
3679
3680 /* TID for which the BA session is being deleted */
3681 tANI_U8 baTID;
3682
3683 /* DELBA direction
3684 1 - Originator
3685 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303686 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003687} tDelBAParams, *tpDelBAParams;
3688
3689typedef PACKED_PRE struct PACKED_POST
3690{
3691 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303692 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003693} tDelBAReqMsg, *tpDelBAReqMsg;
3694
3695/*---------------------------------------------------------------------------
3696 * WLAN_HAL_DEL_BA_RSP
3697 *--------------------------------------------------------------------------*/
3698
3699typedef PACKED_PRE struct PACKED_POST
3700{
3701 /* success or failure */
3702 tANI_U32 status;
3703} tDelBARspParams, *tpDelBARspParams;
3704
3705typedef PACKED_PRE struct PACKED_POST
3706{
3707 tHalMsgHeader header;
3708 tDelBARspParams delBARspParams;
3709} tDelBARspMsg, *tpDelBARspMsg;
3710
3711
Jeff Johnson295189b2012-06-20 16:38:30 -07003712/*---------------------------------------------------------------------------
3713 * WLAN_HAL_TSM_STATS_REQ
3714 *--------------------------------------------------------------------------*/
3715typedef PACKED_PRE struct PACKED_POST
3716{
3717 /* Traffic Id */
3718 tANI_U8 tsmTID;
3719
3720 tSirMacAddr bssId;
3721} tTsmStatsParams, *tpTsmStatsParams;
3722
3723typedef PACKED_PRE struct PACKED_POST
3724{
3725 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303726 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003727} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3728
3729
3730/*---------------------------------------------------------------------------
3731 * WLAN_HAL_TSM_STATS_RSP
3732 *--------------------------------------------------------------------------*/
3733typedef PACKED_PRE struct PACKED_POST
3734{
3735 /*success or failure */
3736 tANI_U32 status;
3737
Dino Mycle8afbac12014-07-04 22:06:17 +05303738 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003739 tANI_U16 UplinkPktQueueDly;
3740
Dino Mycle8afbac12014-07-04 22:06:17 +05303741 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003742 tANI_U16 UplinkPktQueueDlyHist[4];
3743
Dino Mycle8afbac12014-07-04 22:06:17 +05303744 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003745 tANI_U32 UplinkPktTxDly;
3746
Dino Mycle8afbac12014-07-04 22:06:17 +05303747 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003748 tANI_U16 UplinkPktLoss;
3749
Dino Mycle8afbac12014-07-04 22:06:17 +05303750 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003751 tANI_U16 UplinkPktCount;
3752
Dino Mycle8afbac12014-07-04 22:06:17 +05303753 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003754 tANI_U8 RoamingCount;
3755
Dino Mycle8afbac12014-07-04 22:06:17 +05303756 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003757 tANI_U16 RoamingDly;
3758} tTsmStatsRspParams, *tpTsmStatsRspParams;
3759
3760typedef PACKED_PRE struct PACKED_POST
3761{
3762 tHalMsgHeader header;
3763 tTsmStatsRspParams tsmStatsRspParams;
3764} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3765
3766
Jeff Johnson295189b2012-06-20 16:38:30 -07003767/*---------------------------------------------------------------------------
3768 * WLAN_HAL_SET_KEYDONE_MSG
3769 *--------------------------------------------------------------------------*/
3770
3771typedef PACKED_PRE struct PACKED_POST
3772{
3773 /*bssid of the keys */
3774 tANI_U8 bssidx;
3775 tANI_U8 encType;
3776} tSetKeyDoneParams, *tpSetKeyDoneParams;
3777
3778typedef PACKED_PRE struct PACKED_POST
3779{
3780 tHalMsgHeader header;
3781 tSetKeyDoneParams setKeyDoneParams;
3782} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3783
3784/*---------------------------------------------------------------------------
3785 * WLAN_HAL_DOWNLOAD_NV_REQ
3786 *--------------------------------------------------------------------------*/
3787typedef PACKED_PRE struct PACKED_POST
3788{
3789 /* Fragment sequence number of the NV Image. Note that NV Image might not
3790 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303791 * can hence choose to chop the NV blob into multiple fragments starting with
3792 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003793 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3794 * concatenated together by HAL without any padding bytes in between.*/
3795 tANI_U16 fragNumber;
3796
3797 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303798 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003799 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3800 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3801 tANI_U16 isLastFragment;
3802
3803 /* NV Image size (number of bytes) */
3804 tANI_U32 nvImgBufferSize;
3805
3806 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3807 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3808} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3809
3810typedef PACKED_PRE struct PACKED_POST
3811{
3812 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3813 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3814 tHalMsgHeader header;
3815 tHalNvImgDownloadReqParams nvImageReqParams;
3816} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3817
3818/*---------------------------------------------------------------------------
3819 * WLAN_HAL_DOWNLOAD_NV_RSP
3820 *--------------------------------------------------------------------------*/
3821typedef PACKED_PRE struct PACKED_POST
3822{
3823 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3824 * after each fragment */
3825 tANI_U32 status;
3826} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3827
3828typedef PACKED_PRE struct PACKED_POST
3829{
3830 tHalMsgHeader header;
3831 tHalNvImgDownloadRspParams nvImageRspParams;
3832} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3833
3834/*---------------------------------------------------------------------------
3835 * WLAN_HAL_STORE_NV_IND
3836 *--------------------------------------------------------------------------*/
3837typedef PACKED_PRE struct PACKED_POST
3838{
3839 /* NV Item */
3840 eNvTable tableID;
3841
3842 /* Size of NV Blob */
3843 tANI_U32 nvBlobSize;
3844
Dino Mycle8afbac12014-07-04 22:06:17 +05303845 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003846 * NV blob i.e. uint8[nvBlobSize] */
3847} tHalNvStoreParams, *tpHalNvStoreParams;
3848
3849typedef PACKED_PRE struct PACKED_POST
3850{
3851 /* Note: The length specified in tHalNvStoreInd messages should be
3852 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3853 tHalMsgHeader header;
3854 tHalNvStoreParams nvStoreParams;
3855} tHalNvStoreInd, *tpHalNvStoreInd;
3856
3857/* End of Block Ack Related Parameters */
3858
3859/*---------------------------------------------------------------------------
3860 * WLAN_HAL_MIC_FAILURE_IND
3861 *--------------------------------------------------------------------------*/
3862
3863#define SIR_CIPHER_SEQ_CTR_SIZE 6
3864
3865typedef PACKED_PRE struct PACKED_POST
3866{
Dino Mycle8afbac12014-07-04 22:06:17 +05303867 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003868 tSirMacAddr taMacAddr; //transmitter address
3869 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303870 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003871 tANI_U8 IV1; // first byte of IV
3872 tANI_U8 keyId; // second byte of IV
3873 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3874 tSirMacAddr rxMacAddr; // receive address
3875} tSirMicFailureInfo, *tpSirMicFailureInfo;
3876
3877/* Definition for MIC failure indication
3878 MAC reports this each time a MIC failure occures on Rx TKIP packet
3879 */
3880typedef PACKED_PRE struct PACKED_POST
3881{
3882 tSirMacAddr bssId; // BSSID
3883 tSirMicFailureInfo info;
3884} tSirMicFailureInd, *tpSirMicFailureInd;
3885
3886typedef PACKED_PRE struct PACKED_POST
3887{
3888 tHalMsgHeader header;
3889 tSirMicFailureInd micFailureInd;
3890} tMicFailureIndMsg, *tpMicFailureIndMsg;
3891
Mohit Khanna4a70d262012-09-11 16:30:12 -07003892typedef PACKED_PRE struct PACKED_POST
3893{
3894 tANI_U16 opMode;
3895 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303896}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003897
3898typedef PACKED_PRE struct PACKED_POST
3899{
3900 tHalMsgHeader header;
3901 tUpdateVHTOpMode updateVhtOpMode;
3902} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3903
3904typedef PACKED_PRE struct PACKED_POST
3905{
3906 tANI_U32 status;
3907} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3908
3909typedef PACKED_PRE struct PACKED_POST
3910{
3911 tHalMsgHeader header;
3912 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3913} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3914
Jeff Johnson295189b2012-06-20 16:38:30 -07003915/*---------------------------------------------------------------------------
3916 * WLAN_HAL_UPDATE_BEACON_REQ
3917 *--------------------------------------------------------------------------*/
3918typedef PACKED_PRE struct PACKED_POST
3919{
3920
3921 tANI_U8 bssIdx;
3922
3923 //shortPreamble mode. HAL should update all the STA rates when it
3924 //receives this message
3925 tANI_U8 fShortPreamble;
3926 //short Slot time.
3927 tANI_U8 fShortSlotTime;
3928 //Beacon Interval
3929 tANI_U16 beaconInterval;
3930 //Protection related
3931 tANI_U8 llaCoexist;
3932 tANI_U8 llbCoexist;
3933 tANI_U8 llgCoexist;
3934 tANI_U8 ht20MhzCoexist;
3935 tANI_U8 llnNonGFCoexist;
3936 tANI_U8 fLsigTXOPProtectionFullSupport;
3937 tANI_U8 fRIFSMode;
3938
3939 tANI_U16 paramChangeBitmap;
3940}tUpdateBeaconParams, *tpUpdateBeaconParams;
3941
3942
3943typedef PACKED_PRE struct PACKED_POST
3944{
3945 tHalMsgHeader header;
3946 tUpdateBeaconParams updateBeaconParam;
3947} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3948
3949/*---------------------------------------------------------------------------
3950 * WLAN_HAL_UPDATE_BEACON_RSP
3951 *--------------------------------------------------------------------------*/
3952typedef PACKED_PRE struct PACKED_POST
3953{
3954 tANI_U32 status;
3955} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3956
3957typedef PACKED_PRE struct PACKED_POST
3958{
3959 tHalMsgHeader header;
3960 tUpdateBeaconRspParams updateBeaconRspParam;
3961} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3962
3963/*---------------------------------------------------------------------------
3964 * WLAN_HAL_SEND_BEACON_REQ
3965 *--------------------------------------------------------------------------*/
3966typedef PACKED_PRE struct PACKED_POST
3967{
3968 tANI_U32 beaconLength; //length of the template.
3969 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3970 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003971 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003972 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3973}tSendBeaconParams, *tpSendBeaconParams;
3974
3975
3976typedef PACKED_PRE struct PACKED_POST
3977{
3978 tHalMsgHeader header;
3979 tSendBeaconParams sendBeaconParam;
3980}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3981
3982/*---------------------------------------------------------------------------
3983 * WLAN_HAL_SEND_BEACON_RSP
3984 *--------------------------------------------------------------------------*/
3985typedef PACKED_PRE struct PACKED_POST
3986{
3987 tANI_U32 status;
3988} tSendBeaconRspParams, *tpSendBeaconRspParams;
3989
3990typedef PACKED_PRE struct PACKED_POST
3991{
3992 tHalMsgHeader header;
3993 tSendBeaconRspParams sendBeaconRspParam;
3994} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3995
3996#ifdef FEATURE_5GHZ_BAND
3997
3998/*---------------------------------------------------------------------------
3999 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4000 *--------------------------------------------------------------------------*/
4001typedef PACKED_PRE struct PACKED_POST
4002{
4003 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304004 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004005}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4006
4007
4008typedef PACKED_PRE struct PACKED_POST
4009{
4010 /* Link Parameters */
4011 tSirEnableRadarInfoType EnableRadarInfo;
4012}tEnableRadarReqParams, *tpEnableRadarReqParams;
4013
4014typedef PACKED_PRE struct PACKED_POST
4015{
4016 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304017 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004018}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4019
4020/*---------------------------------------------------------------------------
4021 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4022 *--------------------------------------------------------------------------*/
4023
4024typedef PACKED_PRE struct PACKED_POST
4025{
4026 /* Link Parameters */
4027 tSirMacAddr BSSID;
4028 /* success or failure */
4029 tANI_U32 status;
4030}tEnableRadarRspParams, *tpEnableRadarRspParams;
4031
4032typedef PACKED_PRE struct PACKED_POST
4033{
4034 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304035 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004036}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4037
4038/*---------------------------------------------------------------------------
4039 *WLAN_HAL_RADAR_DETECT_INTR_IND
4040 *--------------------------------------------------------------------------*/
4041
4042typedef PACKED_PRE struct PACKED_POST
4043{
4044 tANI_U8 radarDetChannel;
4045}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4046
4047typedef PACKED_PRE struct PACKED_POST
4048{
4049 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304050 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004051}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4052
4053/*---------------------------------------------------------------------------
4054 *WLAN_HAL_RADAR_DETECT_IND
4055 *-------------------------------------------------------------------------*/
4056typedef PACKED_PRE struct PACKED_POST
4057{
4058 /*channel number in which the RADAR detected*/
4059 tANI_U8 channelNumber;
4060
4061 /*RADAR pulse width*/
4062 tANI_U16 radarPulseWidth; // in usecond
4063
4064 /*Number of RADAR pulses */
4065 tANI_U16 numRadarPulse;
4066}tRadarDetectIndParams,*tpRadarDetectIndParams;
4067
4068typedef PACKED_PRE struct PACKED_POST
4069{
4070 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304071 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004072}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4073
4074
4075/*---------------------------------------------------------------------------
4076 *WLAN_HAL_GET_TPC_REPORT_REQ
4077 *-------------------------------------------------------------------------*/
4078typedef PACKED_PRE struct PACKED_POST
4079{
4080 tSirMacAddr sta;
4081 tANI_U8 dialogToken;
4082 tANI_U8 txpower;
4083}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4084
4085
4086typedef PACKED_PRE struct PACKED_POST
4087{
4088 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304089 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004090}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4091
4092/*---------------------------------------------------------------------------
4093 * WLAN_HAL_GET_TPC_REPORT_RSP
4094 *--------------------------------------------------------------------------*/
4095
4096typedef PACKED_PRE struct PACKED_POST
4097{
4098 /* success or failure */
4099 tANI_U32 status;
4100}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4101
4102typedef PACKED_PRE struct PACKED_POST
4103{
4104 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304105 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004106}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4107
4108#endif
4109
Jeff Johnson295189b2012-06-20 16:38:30 -07004110/*---------------------------------------------------------------------------
4111 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4112 *-------------------------------------------------------------------------*/
4113typedef PACKED_PRE struct PACKED_POST
4114{
4115 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4116 tANI_U32 probeRespTemplateLen;
4117 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4118 tSirMacAddr bssId;
4119
4120}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4121
4122typedef PACKED_PRE struct PACKED_POST
4123{
4124 tHalMsgHeader header;
4125 tSendProbeRespReqParams sendProbeRespReqParams ;
4126}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4127
4128/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304129 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004130 *--------------------------------------------------------------------------*/
4131
4132typedef PACKED_PRE struct PACKED_POST
4133{
4134 /* success or failure */
4135 tANI_U32 status;
4136}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4137
4138typedef PACKED_PRE struct PACKED_POST
4139{
4140 tHalMsgHeader header;
4141 tSendProbeRespRspParams sendProbeRespRspParams;
4142}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4143
4144
4145/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304146 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004147 *--------------------------------------------------------------------------*/
4148
4149typedef PACKED_PRE struct PACKED_POST
4150{
4151 /* success or failure */
4152 tANI_U32 status;
4153}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4154
4155typedef PACKED_PRE struct PACKED_POST
4156{
4157 tHalMsgHeader header;
4158 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4159}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4160
4161/*---------------------------------------------------------------------------
4162 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4163 *--------------------------------------------------------------------------*/
4164
4165typedef PACKED_PRE struct PACKED_POST
4166{
4167 tANI_U16 assocId;
4168 tANI_U16 staId;
4169 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4170 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004171 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304172 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004173
4174}tDeleteStaContextParams, *tpDeleteStaContextParams;
4175
4176
4177typedef PACKED_PRE struct PACKED_POST
4178{
4179 tHalMsgHeader header;
4180 tDeleteStaContextParams deleteStaContextParams;
4181}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4182
Anand Kumar012623a2013-01-11 17:00:00 -08004183typedef PACKED_PRE struct PACKED_POST
4184{
4185 tHalMsgHeader header;
4186 tANI_U8 assocId;
4187 tANI_U8 staIdx;
4188 tANI_U8 bssIdx;
4189 tANI_U8 uReasonCode;
4190 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004191#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4192 tANI_U8 staAddr[6];
4193 tANI_U8 bssId[6];
4194#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004195} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004196
4197/*---------------------------------------------------------------------------
4198 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4199 *--------------------------------------------------------------------------*/
4200
4201typedef PACKED_PRE struct PACKED_POST
4202{
4203 tBtAmpEventType btAmpEventType;
4204
4205}tBtAmpEventParams, *tpBtAmpEventParams;
4206
4207
4208
4209typedef PACKED_PRE struct PACKED_POST
4210{
4211 tHalMsgHeader header;
4212 tBtAmpEventParams btAmpEventParams;
4213}tBtAmpEventMsg, *tpBtAmpEventMsg;
4214
4215/*---------------------------------------------------------------------------
4216*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4217*--------------------------------------------------------------------------*/
4218
4219typedef PACKED_PRE struct PACKED_POST
4220{
4221 /* success or failure */
4222 tANI_U32 status;
4223}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4224
4225typedef PACKED_PRE struct PACKED_POST
4226{
4227 tHalMsgHeader header;
4228 tBtAmpEventRspParams btAmpEventRspParams;
4229}tBtAmpEventRsp, *tpBtAmpEventRsp;
4230
4231
4232/*---------------------------------------------------------------------------
4233 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4234 *--------------------------------------------------------------------------*/
4235
4236typedef PACKED_PRE struct PACKED_POST
4237{
4238 // Station Index. originates from HAL
4239 tANI_U8 ucSTAId;
4240
4241 // TID for which the transmit queue is being flushed
4242 tANI_U8 ucTid;
4243
4244}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4245
4246
4247typedef PACKED_PRE struct PACKED_POST
4248{
4249 tHalMsgHeader header;
4250 tTlHalFlushAcParams tlHalFlushAcParam;
4251}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4252
4253/*---------------------------------------------------------------------------
4254*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4255*--------------------------------------------------------------------------*/
4256
4257typedef PACKED_PRE struct PACKED_POST
4258{
4259 // Station Index. originates from HAL
4260 tANI_U8 ucSTAId;
4261
4262 // TID for which the transmit queue is being flushed
4263 tANI_U8 ucTid;
4264
4265 /* success or failure */
4266 tANI_U32 status;
4267}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4268
4269typedef PACKED_PRE struct PACKED_POST
4270{
4271 tHalMsgHeader header;
4272 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4273}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4274
4275/*---------------------------------------------------------------------------
4276 * WLAN_HAL_ENTER_IMPS_REQ
4277 *--------------------------------------------------------------------------*/
4278typedef PACKED_PRE struct PACKED_POST
4279{
4280 tHalMsgHeader header;
4281} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4282
4283/*---------------------------------------------------------------------------
4284 * WLAN_HAL_EXIT_IMPS_REQ
4285 *--------------------------------------------------------------------------*/
4286typedef PACKED_PRE struct PACKED_POST
4287{
4288 tHalMsgHeader header;
4289} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4290
4291/*---------------------------------------------------------------------------
4292 * WLAN_HAL_ENTER_BMPS_REQ
4293 *--------------------------------------------------------------------------*/
4294
4295typedef PACKED_PRE struct PACKED_POST
4296{
4297 tANI_U8 bssIdx;
4298 //TBTT value derived from the last beacon
4299#ifndef BUILD_QWPTTSTATIC
4300 tANI_U64 tbtt;
4301#endif
4302 tANI_U8 dtimCount;
4303 //DTIM period given to HAL during association may not be valid,
4304 //if association is based on ProbeRsp instead of beacon.
4305 tANI_U8 dtimPeriod;
4306
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004307 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004308 tANI_U32 rssiFilterPeriod;
4309 tANI_U32 numBeaconPerRssiAverage;
4310 tANI_U8 bRssiFilterEnable;
4311
4312} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4313
4314
4315typedef PACKED_PRE struct PACKED_POST
4316{
4317 tHalMsgHeader header;
4318 tHalEnterBmpsReqParams enterBmpsReq;
4319} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4320
4321/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304322 * WLAN_HAL_PRINT_REG_INFO_IND
4323 *--------------------------------------------------------------------------*/
4324typedef PACKED_PRE struct PACKED_POST
4325{
4326 uint32 regAddr;
4327 uint32 regValue;
4328} tHalRegDebugInfo, *tpRegDebugInfo;
4329
4330typedef PACKED_PRE struct PACKED_POST
4331{
4332 uint32 regCount;
4333 uint32 scenario;
4334 uint32 reasonCode;
4335} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4336
4337typedef PACKED_PRE struct PACKED_POST
4338{
4339 tHalMsgHeader header;
4340 tHalRegDebugInfoParams regParams;
4341} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4342
4343/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004344 * WLAN_HAL_EXIT_BMPS_REQ
4345 *--------------------------------------------------------------------------*/
4346typedef PACKED_PRE struct PACKED_POST
4347{
4348 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004349 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004350} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4351
4352typedef PACKED_PRE struct PACKED_POST
4353{
4354 tHalMsgHeader header;
4355 tHalExitBmpsReqParams exitBmpsReqParams;
4356} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4357
4358/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004359 * WLAN_HAL_MISSED_BEACON_IND
4360 *--------------------------------------------------------------------------*/
4361typedef PACKED_PRE struct PACKED_POST
4362{
4363 tANI_U8 bssIdx;
4364} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4365
4366typedef PACKED_PRE struct PACKED_POST
4367{
4368 tHalMsgHeader header;
4369 tHalMissedBeaconIndParams missedBeaconIndParams;
4370} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4371
4372/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004373 * WLAN_HAL_ADD_BCN_FILTER_REQ
4374 *--------------------------------------------------------------------------*/
4375/* Beacon Filtering data structures */
4376typedef PACKED_PRE struct PACKED_POST
4377{
4378 tANI_U8 offset;
4379 tANI_U8 value;
4380 tANI_U8 bitMask;
4381 tANI_U8 ref;
4382} tEidByteInfo, *tpEidByteInfo;
4383
Dino Mycle8afbac12014-07-04 22:06:17 +05304384typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004385{
4386 tANI_U16 capabilityInfo;
4387 tANI_U16 capabilityMask;
4388 tANI_U16 beaconInterval;
4389 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004390 tANI_U8 bssIdx;
4391 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004392} tBeaconFilterMsg, *tpBeaconFilterMsg;
4393
4394/* The above structure would be followed by multiple of below mentioned structure */
4395typedef PACKED_PRE struct PACKED_POST
4396{
4397 tANI_U8 elementId;
4398 tANI_U8 checkIePresence;
4399 tEidByteInfo byte;
4400} tBeaconFilterIe, *tpBeaconFilterIe;
4401
4402typedef PACKED_PRE struct PACKED_POST
4403{
4404 tHalMsgHeader header;
4405 tBeaconFilterMsg addBcnFilterParams;
4406} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4407
4408/*---------------------------------------------------------------------------
4409 * WLAN_HAL_REM_BCN_FILTER_REQ
4410 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304411typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004412{
4413 tANI_U8 ucIeCount;
4414 tANI_U8 ucRemIeId[1];
4415} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4416
4417typedef PACKED_PRE struct PACKED_POST
4418{
4419 tHalMsgHeader header;
4420 tRemBeaconFilterMsg remBcnFilterParams;
4421} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4422
4423/*---------------------------------------------------------------------------
4424 * WLAN_HAL_HOST_OFFLOAD_REQ
4425 *--------------------------------------------------------------------------*/
4426#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4427#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4428#define HAL_IPV6_NS_OFFLOAD 2
4429#define HAL_IPV6_ADDR_LEN 16
4430#define HAL_MAC_ADDR_LEN 6
4431#define HAL_OFFLOAD_DISABLE 0
4432#define HAL_OFFLOAD_ENABLE 1
4433#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004434#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004435#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004436#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004437
4438typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4439{
4440 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4441 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4442 //Only support 2 possible Network Advertisement IPv6 address
4443 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4444 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4445 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4446 tANI_U8 srcIPv6AddrValid : 1;
4447 tANI_U8 targetIPv6Addr1Valid : 1;
4448 tANI_U8 targetIPv6Addr2Valid : 1;
4449 tANI_U8 reserved1 : 5;
4450 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004451 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004452 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004453} tHalNSOffloadParams;
4454
4455typedef PACKED_PRE struct PACKED_POST
4456{
4457 tANI_U8 offloadType;
4458 tANI_U8 enableOrDisable;
4459 PACKED_PRE union PACKED_POST
4460 {
4461 tANI_U8 hostIpv4Addr [4];
4462 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4463 } params;
4464} tHalHostOffloadReq, *tpHalHostOffloadReq;
4465
4466typedef PACKED_PRE struct PACKED_POST
4467{
4468 tHalMsgHeader header;
4469 tHalHostOffloadReq hostOffloadParams;
4470 tHalNSOffloadParams nsOffloadParams;
4471} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4472
Leo Chang397deb72013-08-22 11:33:16 -07004473
4474#ifdef FEATURE_WLAN_LPHB
4475typedef enum
4476{
4477 WIFI_HB_SET_ENABLE = 0x0001,
4478 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4479 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4480 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4481 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4482 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4483}tLowPowerHeartBeatCmdType ;
4484
4485#define MAX_FLITER_SIZE 64
4486/*---------------------------------------------------------------------------
4487 *FEATURE_WLAN_LPHB REQ
4488 *--------------------------------------------------------------------------*/
4489typedef PACKED_PRE struct PACKED_POST
4490{
4491 uint32 hostIpv4Addr;
4492 uint32 destIpv4Addr;
4493 uint16 hostPort;
4494 uint16 destPort;
4495 uint16 timeOutSec; // in seconds
4496 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004497 uint16 timePeriodSec; // in seconds
4498 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004499} tlowPowerHeartBeatParamsTcpStruct;
4500
4501typedef PACKED_PRE struct PACKED_POST
4502{
4503 uint32 hostIpv4Addr;
4504 uint32 destIpv4Addr;
4505 uint16 hostPort;
4506 uint16 destPort;
4507 uint16 timePeriodSec;// in seconds
4508 uint16 timeOutSec; // in seconds
4509 tSirMacAddr gatewayMacAddr;
4510} tlowPowerHeartBeatParamsUdpStruct;
4511
4512typedef PACKED_PRE struct PACKED_POST
4513{
4514 uint32 offset;
4515 uint32 filterLength;
4516 uint8 filter[MAX_FLITER_SIZE];
4517} tlowPowerHeartBeatFilterStruct;
4518
4519typedef PACKED_PRE struct PACKED_POST
4520{
4521 uint8 heartBeatEnable;
4522 uint8 heartBeatType; //TCP or UDP
4523} tlowPowerHeartBeatEnableStruct;
4524
4525typedef PACKED_PRE struct PACKED_POST
4526{
4527 uint8 dummy;
4528} tlowPowerHeartBeatNetworkInfoStruct;
4529
4530
4531typedef PACKED_PRE struct PACKED_POST
4532{
4533 uint8 sessionIdx;
4534 uint16 lowPowerHeartBeatCmdType;
4535 PACKED_PRE union PACKED_PRO
4536 {
4537 tlowPowerHeartBeatEnableStruct control;
4538 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4539 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4540 tlowPowerHeartBeatParamsUdpStruct udpParams;
4541 tlowPowerHeartBeatNetworkInfoStruct info;
4542 }options;
4543} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4544
4545
4546typedef PACKED_PRE struct PACKED_POST
4547{
4548 tHalMsgHeader header;
4549 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4550} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4551
4552/*---------------------------------------------------------------------------
4553 * FEATURE_WLAN_LPHB RSP
4554 *--------------------------------------------------------------------------*/
4555
4556typedef PACKED_PRE struct PACKED_POST
4557{
4558 /* success or failure */
4559 uint8 sessionIdx;
4560 uint32 status;
4561 uint16 lowPowerHeartBeatCmdType;
4562}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4563
4564typedef PACKED_PRE struct PACKED_POST
4565{
4566 tHalMsgHeader header;
4567 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4568}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4569
4570
4571/*---------------------------------------------------------------------------
4572 * FEATURE_WLAN_LPHB IND
4573 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004574#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4575#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4576
4577#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4578#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004579#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004580
Kumar Anandea78e792013-10-10 23:47:01 -07004581
4582#define WIFI_LPHB_PROTO_UDP 0x01
4583#define WIFI_LPHB_PROTO_TCP 0x02
4584
Leo Chang397deb72013-08-22 11:33:16 -07004585typedef PACKED_PRE struct PACKED_POST
4586{
4587 uint8 bssIdx;
4588 uint8 sessionIdx;
4589 uint8 protocolType; /*TCP or UDP*/
4590 uint8 eventReason;
4591
4592}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4593
4594typedef PACKED_PRE struct PACKED_POST
4595{
4596 tHalMsgHeader header;
4597 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4598}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4599
4600#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004601
4602#ifdef FEATURE_WLAN_BATCH_SCAN
4603
4604/*---------------------------------------------------------------------------
4605 * WLAN_HAL_BATCHSCAN_SET_REQ
4606 *--------------------------------------------------------------------------*/
4607typedef PACKED_PRE struct PACKED_POST
4608{
4609 /* Scan Frerquency - default to 30Sec*/
4610 tANI_U32 scanInterval;
4611 tANI_U32 numScan2Batch;
4612 tANI_U32 bestNetworks;
4613 tANI_U8 rfBand;
4614 tANI_U8 rtt;
4615} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4616
4617typedef PACKED_PRE struct PACKED_POST
4618{
4619 tHalMsgHeader header;
4620 tHalBatchScanSetParams batchScanParams;
4621} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4622
4623/*---------------------------------------------------------------------------
4624 * WLAN_HAL_BATCHSCAN_SET_RSP
4625 *--------------------------------------------------------------------------*/
4626typedef PACKED_PRE struct PACKED_POST
4627{
4628 tANI_U32 supportedMscan;
4629} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4630
4631typedef PACKED_PRE struct PACKED_POST
4632{
4633 tHalMsgHeader header;
4634 tHalBatchScanSetRspParam setBatchScanRspParam;
4635} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4636
4637/*---------------------------------------------------------------------------
4638* WLAN_HAL_BATCHSCAN_STOP_IND
4639*--------------------------------------------------------------------------*/
4640typedef PACKED_PRE struct PACKED_POST
4641{
4642 tANI_U32 param;
4643} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4644
4645typedef PACKED_PRE struct PACKED_POST
4646{
4647 tHalMsgHeader header;
4648 tHalBatchScanStopIndParam param;
4649} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4650
4651/*---------------------------------------------------------------------------
4652* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4653*--------------------------------------------------------------------------*/
4654typedef PACKED_PRE struct PACKED_POST
4655{
4656 tANI_U32 param;
4657} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4658
4659typedef PACKED_PRE struct PACKED_POST
4660{
4661 tHalMsgHeader header;
4662 tHalBatchScanTriggerResultParam param;
4663} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4664
4665/*---------------------------------------------------------------------------
4666 * WLAN_HAL_BATCHSCAN_GET_RSP
4667 *--------------------------------------------------------------------------*/
4668typedef PACKED_PRE struct PACKED_POST
4669{
4670 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004671 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004672 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304673 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004674 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4675 tANI_U32 timestamp;
4676} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4677
4678typedef PACKED_PRE struct PACKED_POST
4679{
4680 tANI_U32 scanId; /* Scan List ID. */
4681 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4682 tANI_U32 numNetworksInScanList;
4683 /* Variable data ptr: Number of AP in Scan List */
4684 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4685 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4686 tANI_U8 scanList[1];
4687} tHalBatchScanList, *tpHalBatchScanList;
4688
4689typedef PACKED_PRE struct PACKED_POST
4690{
4691 tANI_U32 timestamp;
4692 tANI_U32 numScanLists;
4693 boolean isLastResult;
4694 /* Variable Data ptr: Number of Scan Lists*/
4695 /* following isLastResult is data of type tHalBatchScanList
4696 * of sizeof(tHalBatchScanList) * numScanLists*/
4697 tANI_U8 scanResults[1];
4698} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4699
4700typedef PACKED_PRE struct PACKED_POST
4701{
4702 tHalMsgHeader header;
4703 tHalBatchScanResultIndParam resultIndMsgParam;
4704} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4705
4706#endif
4707
Jeff Johnson295189b2012-06-20 16:38:30 -07004708/*---------------------------------------------------------------------------
4709 * WLAN_HAL_KEEP_ALIVE_REQ
4710 *--------------------------------------------------------------------------*/
4711/* Packet Types. */
4712#define HAL_KEEP_ALIVE_NULL_PKT 1
4713#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4714
4715/* Enable or disable keep alive */
4716#define HAL_KEEP_ALIVE_DISABLE 0
4717#define HAL_KEEP_ALIVE_ENABLE 1
4718
4719/* Keep Alive request. */
4720typedef PACKED_PRE struct PACKED_POST
4721{
4722 tANI_U8 packetType;
4723 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304724 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004725 tHalIpv4Addr destIpv4Addr;
4726 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004727 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004728} tHalKeepAliveReq, *tpHalKeepAliveReq;
4729
4730typedef PACKED_PRE struct PACKED_POST
4731{
4732 tHalMsgHeader header;
4733 tHalKeepAliveReq KeepAliveParams;
4734} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4735
4736/*---------------------------------------------------------------------------
4737 * WLAN_HAL_SET_RSSI_THRESH_REQ
4738 *--------------------------------------------------------------------------*/
4739typedef PACKED_PRE struct PACKED_POST
4740{
4741 tANI_S8 ucRssiThreshold1 : 8;
4742 tANI_S8 ucRssiThreshold2 : 8;
4743 tANI_S8 ucRssiThreshold3 : 8;
4744 tANI_U8 bRssiThres1PosNotify : 1;
4745 tANI_U8 bRssiThres1NegNotify : 1;
4746 tANI_U8 bRssiThres2PosNotify : 1;
4747 tANI_U8 bRssiThres2NegNotify : 1;
4748 tANI_U8 bRssiThres3PosNotify : 1;
4749 tANI_U8 bRssiThres3NegNotify : 1;
4750 tANI_U8 bReserved10 : 2;
4751} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304752
Jeff Johnson295189b2012-06-20 16:38:30 -07004753typedef PACKED_PRE struct PACKED_POST
4754{
4755 tHalMsgHeader header;
4756 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004757} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004758
4759/*---------------------------------------------------------------------------
4760 * WLAN_HAL_ENTER_UAPSD_REQ
4761 *--------------------------------------------------------------------------*/
4762typedef PACKED_PRE struct PACKED_POST
4763{
4764 tANI_U8 bkDeliveryEnabled:1;
4765 tANI_U8 beDeliveryEnabled:1;
4766 tANI_U8 viDeliveryEnabled:1;
4767 tANI_U8 voDeliveryEnabled:1;
4768 tANI_U8 bkTriggerEnabled:1;
4769 tANI_U8 beTriggerEnabled:1;
4770 tANI_U8 viTriggerEnabled:1;
4771 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004772 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004773} tUapsdReqParams, *tpUapsdReqParams;
4774
4775typedef PACKED_PRE struct PACKED_POST
4776{
4777 tHalMsgHeader header;
4778 tUapsdReqParams enterUapsdParams;
4779} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4780
4781/*---------------------------------------------------------------------------
4782 * WLAN_HAL_EXIT_UAPSD_REQ
4783 *--------------------------------------------------------------------------*/
4784typedef PACKED_PRE struct PACKED_POST
4785{
4786 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004787 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004788} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4789
Kumar Anandea78e792013-10-10 23:47:01 -07004790#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4791#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004792/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004793 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4794 *--------------------------------------------------------------------------*/
4795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tANI_U32 selfStaIdx:8;
4798 tANI_U32 ucPtrnId:8; // Pattern ID
4799 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4800 tANI_U32 uPtrnIntervalMs; // In msec
4801 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4802} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4803
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 tHalMsgHeader header;
4807 tHalAddPeriodicTxPtrn ptrnParams;
4808} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4809
4810/*---------------------------------------------------------------------------
4811 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4812 *--------------------------------------------------------------------------*/
4813typedef PACKED_PRE struct PACKED_POST
4814{
4815 tANI_U32 selfStaIdx:8;
4816 tANI_U32 rsvd:24;
4817 /* Bitmap of pattern IDs that needs to be deleted */
4818 tANI_U32 uPatternIdBitmap;
4819} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4820
4821typedef PACKED_PRE struct PACKED_POST
4822{
4823 tHalMsgHeader header;
4824 tHalDelPeriodicTxPtrn ptrnParams;
4825} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4826
4827/*---------------------------------------------------------------------------
4828 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4829 *--------------------------------------------------------------------------*/
4830typedef PACKED_PRE struct PACKED_POST
4831{
4832 /* Type of Failure indication */
4833 tANI_U32 bssIdx:8;
4834 tANI_U32 selfStaIdx:8;
4835 tANI_U32 rsvd:16;
4836 tANI_U32 status;
4837 tANI_U32 patternIdBitmap;
4838} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4839
4840typedef PACKED_PRE struct PACKED_POST
4841{
4842 tHalMsgHeader header;
4843 tHalPeriodicTxPtrnFwInd fwIndParams;
4844} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4845
4846/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004847 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4848 *--------------------------------------------------------------------------*/
4849#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4850#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4851
4852typedef PACKED_PRE struct PACKED_POST
4853{
4854 tANI_U8 ucPatternId; // Pattern ID
4855 // Pattern byte offset from beginning of the 802.11 packet to start of the
4856 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304857 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004858 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4859 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4860 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4861 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4862 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4863 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004864 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004865} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4866
4867typedef PACKED_PRE struct PACKED_POST
4868{
4869 tHalMsgHeader header;
4870 tHalWowlAddBcastPtrn ptrnParams;
4871} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304872
Jeff Johnsone7245742012-09-05 17:12:55 -07004873
4874
Jeff Johnson295189b2012-06-20 16:38:30 -07004875/*---------------------------------------------------------------------------
4876 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4877 *--------------------------------------------------------------------------*/
4878typedef PACKED_PRE struct PACKED_POST
4879{
4880 /* Pattern ID of the wakeup pattern to be deleted */
4881 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004882 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004883} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4884
4885typedef PACKED_PRE struct PACKED_POST
4886{
4887 tHalMsgHeader header;
4888 tHalWowlDelBcastPtrn ptrnParams;
4889} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4890
4891/*---------------------------------------------------------------------------
4892 * WLAN_HAL_ENTER_WOWL_REQ
4893 *--------------------------------------------------------------------------*/
4894typedef PACKED_PRE struct PACKED_POST
4895{
4896 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304897 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004898
4899 /* Magic pattern */
4900 tSirMacAddr magicPtrn;
4901
Dino Mycle8afbac12014-07-04 22:06:17 +05304902 /* Enables/disables packet pattern filtering in firmware.
4903 Enabling this flag enables broadcast pattern matching
4904 in Firmware. If unicast pattern matching is also desired,
4905 ucUcastPatternFilteringEnable flag must be set tot true
4906 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004907 */
4908 tANI_U8 ucPatternFilteringEnable;
4909
Dino Mycle8afbac12014-07-04 22:06:17 +05304910 /* Enables/disables unicast packet pattern filtering.
4911 This flag specifies whether we want to do pattern match
4912 on unicast packets as well and not just broadcast packets.
4913 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004914 (main controlling flag) is set to false
4915 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304916 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004917
Dino Mycle8afbac12014-07-04 22:06:17 +05304918 /* This configuration is valid only when magicPktEnable=1.
4919 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004920 * Channel Switch Action Frame.
4921 */
4922 tANI_U8 ucWowChnlSwitchRcv;
4923
Dino Mycle8afbac12014-07-04 22:06:17 +05304924 /* This configuration is valid only when magicPktEnable=1.
4925 * It requests hardware to wake up when it receives the
4926 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004927 */
4928 tANI_U8 ucWowDeauthRcv;
4929
Dino Mycle8afbac12014-07-04 22:06:17 +05304930 /* This configuration is valid only when magicPktEnable=1.
4931 * It requests hardware to wake up when it receives the
4932 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004933 */
4934 tANI_U8 ucWowDisassocRcv;
4935
Dino Mycle8afbac12014-07-04 22:06:17 +05304936 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004937 * It requests hardware to wake up when it has missed
4938 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304939 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004940 */
4941 tANI_U8 ucWowMaxMissedBeacons;
4942
Dino Mycle8afbac12014-07-04 22:06:17 +05304943 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004944 * This is a timeout value in units of microsec. It requests
4945 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304946 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004947 */
4948 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304949
Jeff Johnson295189b2012-06-20 16:38:30 -07004950 /* This configuration directs the WoW packet filtering to look for EAP-ID
4951 * requests embedded in EAPOL frames and use this as a wake source.
4952 */
4953 tANI_U8 ucWoWEAPIDRequestEnable;
4954
4955 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4956 * requests and use this as a wake source.
4957 */
4958 tANI_U8 ucWoWEAPOL4WayEnable;
4959
4960 /* This configuration allows a host wakeup on an network scan offload match.
4961 */
4962 tANI_U8 ucWowNetScanOffloadMatch;
4963
4964 /* This configuration allows a host wakeup on any GTK rekeying error.
4965 */
4966 tANI_U8 ucWowGTKRekeyError;
4967
4968 /* This configuration allows a host wakeup on BSS connection loss.
4969 */
4970 tANI_U8 ucWoWBSSConnLoss;
4971
Jeff Johnsone7245742012-09-05 17:12:55 -07004972 tANI_U8 bssIdx;
4973
Jeff Johnson295189b2012-06-20 16:38:30 -07004974} tHalWowlEnterParams, *tpHalWowlEnterParams;
4975
4976typedef PACKED_PRE struct PACKED_POST
4977{
4978 tHalMsgHeader header;
4979 tHalWowlEnterParams enterWowlParams;
4980} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4981
4982/*---------------------------------------------------------------------------
4983 * WLAN_HAL_EXIT_WOWL_REQ
4984 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004985
Jeff Johnson295189b2012-06-20 16:38:30 -07004986typedef PACKED_PRE struct PACKED_POST
4987{
Jeff Johnsone7245742012-09-05 17:12:55 -07004988 tANI_U8 bssIdx;
4989
4990} tHalWowlExitParams, *tpHalWowlExitParams;
4991
4992typedef PACKED_PRE struct PACKED_POST
4993{
4994 tHalMsgHeader header;
4995 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004996} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4997
4998/*---------------------------------------------------------------------------
4999 * WLAN_HAL_GET_RSSI_REQ
5000 *--------------------------------------------------------------------------*/
5001typedef PACKED_PRE struct PACKED_POST
5002{
5003 tHalMsgHeader header;
5004} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5005
Anand Kumar012623a2013-01-11 17:00:00 -08005006typedef PACKED_PRE struct PACKED_POST
5007{
5008 /* Valid STA Idx for per STA stats request */
5009 tANI_U32 staId;
5010
5011}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5012
5013
5014/*---------------------------------------------------------------------------
5015 * WLAN_HAL_GET_ROAM_RSSI_REQ
5016 *--------------------------------------------------------------------------*/
5017typedef PACKED_PRE struct PACKED_POST
5018{
5019 tHalMsgHeader header;
5020 tHalRoamRssiReqParams roamRssiReqParams;
5021} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5022
5023
Jeff Johnson295189b2012-06-20 16:38:30 -07005024/*---------------------------------------------------------------------------
5025 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5026 *--------------------------------------------------------------------------*/
5027typedef PACKED_PRE struct PACKED_POST {
5028 tANI_U8 staidx; // STA index
5029 tANI_U8 ac; // Access Category
5030 tANI_U8 up; // User Priority
5031 tANI_U32 srvInterval; // Service Interval
5032 tANI_U32 susInterval; // Suspend Interval
5033 tANI_U32 delayInterval; // Delay Interval
5034} tUapsdInfo, tpUapsdInfo;
5035
5036typedef PACKED_PRE struct PACKED_POST
5037{
5038 tHalMsgHeader header;
5039 tUapsdInfo enableUapsdAcParams;
5040} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5041
5042/*---------------------------------------------------------------------------
5043 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5044 *--------------------------------------------------------------------------*/
5045typedef PACKED_PRE struct PACKED_POST {
5046 tANI_U8 setMcstBcstFilterSetting;
5047 tANI_U8 setMcstBcstFilter;
5048} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5049
5050typedef PACKED_PRE struct PACKED_POST
5051{
5052 tHalMsgHeader header;
5053 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5054} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5055
5056/*---------------------------------------------------------------------------
5057 * WLAN_HAL_ENTER_IMPS_RSP
5058 *--------------------------------------------------------------------------*/
5059typedef PACKED_PRE struct PACKED_POST
5060{
5061 /* success or failure */
5062 tANI_U32 status;
5063} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5064
5065typedef PACKED_PRE struct PACKED_POST
5066{
5067 tHalMsgHeader header;
5068 tHalEnterImpsRspParams enterImpsRspParams;
5069} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5070
5071/*---------------------------------------------------------------------------
5072 * WLAN_HAL_EXIT_IMPS_RSP
5073 *--------------------------------------------------------------------------*/
5074typedef PACKED_PRE struct PACKED_POST
5075{
5076 /* success or failure */
5077 tANI_U32 status;
5078} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5079
5080typedef PACKED_PRE struct PACKED_POST
5081{
5082 tHalMsgHeader header;
5083 tHalExitImpsRspParams exitImpsRspParams;
5084} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5085
5086/*---------------------------------------------------------------------------
5087 * WLAN_HAL_ENTER_BMPS_RSP
5088 *--------------------------------------------------------------------------*/
5089typedef PACKED_PRE struct PACKED_POST
5090{
5091 /* success or failure */
5092 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005093 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005094} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5095
5096typedef PACKED_PRE struct PACKED_POST
5097{
5098 tHalMsgHeader header;
5099 tHalEnterBmpsRspParams enterBmpsRspParams;
5100} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5101
5102/*---------------------------------------------------------------------------
5103 * WLAN_HAL_EXIT_BMPS_RSP
5104 *--------------------------------------------------------------------------*/
5105typedef PACKED_PRE struct PACKED_POST
5106{
5107 /* success or failure */
5108 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005109 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005110} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5111
5112typedef PACKED_PRE struct PACKED_POST
5113{
5114 tHalMsgHeader header;
5115 tHalExitBmpsRspParams exitBmpsRspParams;
5116} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5117
5118/*---------------------------------------------------------------------------
5119 * WLAN_HAL_ENTER_UAPSD_RSP
5120 *--------------------------------------------------------------------------*/
5121typedef PACKED_PRE struct PACKED_POST
5122{
5123 /* success or failure */
5124 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005125 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005126}tUapsdRspParams, *tpUapsdRspParams;
5127
5128typedef PACKED_PRE struct PACKED_POST
5129{
5130 tHalMsgHeader header;
5131 tUapsdRspParams enterUapsdRspParams;
5132} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5133
5134/*---------------------------------------------------------------------------
5135 * WLAN_HAL_EXIT_UAPSD_RSP
5136 *--------------------------------------------------------------------------*/
5137typedef PACKED_PRE struct PACKED_POST
5138{
5139 /* success or failure */
5140 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005141 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005142} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5143
5144typedef PACKED_PRE struct PACKED_POST
5145{
5146 tHalMsgHeader header;
5147 tHalExitUapsdRspParams exitUapsdRspParams;
5148} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5149
5150/*---------------------------------------------------------------------------
5151 * WLAN_HAL_RSSI_NOTIFICATION_IND
5152 *--------------------------------------------------------------------------*/
5153typedef PACKED_PRE struct PACKED_POST
5154{
5155 tANI_U32 bRssiThres1PosCross : 1;
5156 tANI_U32 bRssiThres1NegCross : 1;
5157 tANI_U32 bRssiThres2PosCross : 1;
5158 tANI_U32 bRssiThres2NegCross : 1;
5159 tANI_U32 bRssiThres3PosCross : 1;
5160 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005161 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005162 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005163 tANI_U32 isBTCoexCompromise : 1;
5164 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005165 tANI_S8 refRssiThreshold1;
5166 tANI_S8 refRssiThreshold2;
5167 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005168} tHalRSSINotification, *tpHalRSSINotification;
5169
5170typedef PACKED_PRE struct PACKED_POST
5171{
5172 tHalMsgHeader header;
5173 tHalRSSINotification rssiNotificationParams;
5174} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5175
5176/*---------------------------------------------------------------------------
5177 * WLAN_HAL_GET_RSSI_RSP
5178 *--------------------------------------------------------------------------*/
5179typedef PACKED_PRE struct PACKED_POST
5180{
5181 /* success or failure */
5182 tANI_U32 status;
5183 tANI_S8 rssi;
5184} tHalGetRssiParams, *tpHalGetRspParams;
5185
5186typedef PACKED_PRE struct PACKED_POST
5187{
5188 tHalMsgHeader header;
5189 tHalGetRssiParams rssiRspParams;
5190} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5191
5192/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005193 * WLAN_HAL_GET_ROAM_RSSI_RSP
5194 *--------------------------------------------------------------------------*/
5195typedef PACKED_PRE struct PACKED_POST
5196{
5197 /* success or failure */
5198 tANI_U32 status;
5199
5200 tANI_U8 staId;
5201 tANI_S8 rssi;
5202} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5203
5204typedef PACKED_PRE struct PACKED_POST
5205{
5206 tHalMsgHeader header;
5207 tHalGetRoamRssiParams roamRssiRspParams;
5208} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5209
5210/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005211 * WLAN_HAL_ENTER_WOWL_RSP
5212 *--------------------------------------------------------------------------*/
5213typedef PACKED_PRE struct PACKED_POST
5214{
5215 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005216 tANI_U32 status;
5217 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005218} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5219
5220typedef PACKED_PRE struct PACKED_POST
5221{
5222 tHalMsgHeader header;
5223 tHalEnterWowlRspParams enterWowlRspParams;
5224} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5225
5226/*---------------------------------------------------------------------------
5227 * WLAN_HAL_EXIT_WOWL_RSP
5228 *--------------------------------------------------------------------------*/
5229typedef PACKED_PRE struct PACKED_POST
5230{
5231 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005232 tANI_U32 status;
5233 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005234} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5235
5236typedef PACKED_PRE struct PACKED_POST
5237{
5238 tHalMsgHeader header;
5239 tHalExitWowlRspParams exitWowlRspParams;
5240} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5241
5242/*---------------------------------------------------------------------------
5243 * WLAN_HAL_ADD_BCN_FILTER_RSP
5244 *--------------------------------------------------------------------------*/
5245typedef PACKED_PRE struct PACKED_POST
5246{
5247 /* success or failure */
5248 tANI_U32 status;
5249} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5250
5251typedef PACKED_PRE struct PACKED_POST
5252{
5253 tHalMsgHeader header;
5254 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5255} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5256
5257/*---------------------------------------------------------------------------
5258 * WLAN_HAL_REM_BCN_FILTER_RSP
5259 *--------------------------------------------------------------------------*/
5260typedef PACKED_PRE struct PACKED_POST
5261{
5262 /* success or failure */
5263 tANI_U32 status;
5264} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5265
5266typedef PACKED_PRE struct PACKED_POST
5267{
5268 tHalMsgHeader header;
5269 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5270} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5271
5272/*---------------------------------------------------------------------------
5273 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5274 *--------------------------------------------------------------------------*/
5275typedef PACKED_PRE struct PACKED_POST
5276{
5277 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005278 tANI_U32 status;
5279 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005280} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5281
5282typedef PACKED_PRE struct PACKED_POST
5283{
5284 tHalMsgHeader header;
5285 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5286} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5287
5288/*---------------------------------------------------------------------------
5289 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5290 *--------------------------------------------------------------------------*/
5291typedef PACKED_PRE struct PACKED_POST
5292{
5293 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005294 tANI_U32 status;
5295 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005296} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5297
5298typedef PACKED_PRE struct PACKED_POST
5299{
5300 tHalMsgHeader header;
5301 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5302} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5303
5304/*---------------------------------------------------------------------------
5305 * WLAN_HAL_HOST_OFFLOAD_RSP
5306 *--------------------------------------------------------------------------*/
5307typedef PACKED_PRE struct PACKED_POST
5308{
5309 /* success or failure */
5310 tANI_U32 status;
5311} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5312
5313typedef PACKED_PRE struct PACKED_POST
5314{
5315 tHalMsgHeader header;
5316 tHalHostOffloadRspParams hostOffloadRspParams;
5317} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5318
5319/*---------------------------------------------------------------------------
5320 * WLAN_HAL_KEEP_ALIVE_RSP
5321 *--------------------------------------------------------------------------*/
5322typedef PACKED_PRE struct PACKED_POST
5323{
5324 /* success or failure */
5325 tANI_U32 status;
5326} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5327
5328typedef PACKED_PRE struct PACKED_POST
5329{
5330 tHalMsgHeader header;
5331 tHalKeepAliveRspParams keepAliveRspParams;
5332} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5333
5334/*---------------------------------------------------------------------------
5335 * WLAN_HAL_SET_RSSI_THRESH_RSP
5336 *--------------------------------------------------------------------------*/
5337typedef PACKED_PRE struct PACKED_POST
5338{
5339 /* success or failure */
5340 tANI_U32 status;
5341} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5342
5343typedef PACKED_PRE struct PACKED_POST
5344{
5345 tHalMsgHeader header;
5346 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5347} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5348
5349/*---------------------------------------------------------------------------
5350 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5351 *--------------------------------------------------------------------------*/
5352typedef PACKED_PRE struct PACKED_POST
5353{
5354 /* success or failure */
5355 tANI_U32 status;
5356} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5357
5358typedef PACKED_PRE struct PACKED_POST
5359{
5360 tHalMsgHeader header;
5361 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5362} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5363
5364/*---------------------------------------------------------------------------
5365 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5366 *--------------------------------------------------------------------------*/
5367typedef PACKED_PRE struct PACKED_POST
5368{
5369 /* success or failure */
5370 tANI_U32 status;
5371} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5372
5373typedef PACKED_PRE struct PACKED_POST
5374{
5375 tHalMsgHeader header;
5376 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5377} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5378
5379/*---------------------------------------------------------------------------
5380 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5381 *--------------------------------------------------------------------------*/
5382
5383typedef PACKED_PRE struct PACKED_POST
5384{
5385 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5386 //the request has power constraints, this should be applied only to that session
5387 tSirMacAddr selfStaMacAddr;
5388 //In request,
5389 //power == MaxTx power to be used.
5390 tPowerdBm power;
5391
5392}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5393
5394
5395typedef PACKED_PRE struct PACKED_POST
5396{
5397 tHalMsgHeader header;
5398 tSetMaxTxPwrParams setMaxTxPwrParams;
5399}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5400
5401/*---------------------------------------------------------------------------
5402*WLAN_HAL_SET_MAX_TX_POWER_RSP
5403*--------------------------------------------------------------------------*/
5404
5405typedef PACKED_PRE struct PACKED_POST
5406{
5407 //power == tx power used for management frames.
5408 tPowerdBm power;
5409
5410 /* success or failure */
5411 tANI_U32 status;
5412}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5413
5414typedef PACKED_PRE struct PACKED_POST
5415{
5416 tHalMsgHeader header;
5417 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5418}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5419
Kumar Anandea78e792013-10-10 23:47:01 -07005420
Jeff Johnson295189b2012-06-20 16:38:30 -07005421/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005422 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5423 *--------------------------------------------------------------------------*/
5424
5425/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5426typedef enum
5427{
5428 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5429 // For 2.4GHz or 5GHz bands
5430 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5431 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5432 // End of valid enums
5433 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5434}tHalSetMaxTxPwrBandInfo;
5435
5436typedef PACKED_PRE struct PACKED_POST
5437{
5438 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005439 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005440}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5441
Kumar Anandea78e792013-10-10 23:47:01 -07005442
Arif Hussain36fda162013-08-30 14:46:57 -07005443typedef PACKED_PRE struct PACKED_POST
5444{
5445 tHalMsgHeader header;
5446 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5447}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5448
5449/*---------------------------------------------------------------------------
5450*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5451*--------------------------------------------------------------------------*/
5452
5453typedef PACKED_PRE struct PACKED_POST
5454{
5455 //power == tx power used for management frames.
5456 tPowerdBm power;
5457
5458 /* success or failure */
5459 tANI_U32 status;
5460}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5461
5462typedef PACKED_PRE struct PACKED_POST
5463{
5464 tHalMsgHeader header;
5465 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5466}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5467
5468/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005469 *WLAN_HAL_SET_TX_POWER_REQ
5470 *--------------------------------------------------------------------------*/
5471
5472typedef PACKED_PRE struct PACKED_POST
5473{
5474 /* TX Power in milli watts */
5475 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005476 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005477}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5478
5479
5480typedef PACKED_PRE struct PACKED_POST
5481{
5482 tHalMsgHeader header;
5483 tSetTxPwrReqParams setTxPwrReqParams;
5484}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5485
5486/*---------------------------------------------------------------------------
5487*WLAN_HAL_SET_TX_POWER_RSP
5488*--------------------------------------------------------------------------*/
5489
5490typedef PACKED_PRE struct PACKED_POST
5491{
5492 /* success or failure */
5493 tANI_U32 status;
5494}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5495
5496typedef PACKED_PRE struct PACKED_POST
5497{
5498 tHalMsgHeader header;
5499 tSetTxPwrRspParams setTxPwrRspParams;
5500}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5501
5502/*---------------------------------------------------------------------------
5503 *WLAN_HAL_GET_TX_POWER_REQ
5504 *--------------------------------------------------------------------------*/
5505
5506typedef PACKED_PRE struct PACKED_POST
5507{
5508 tANI_U8 staId;
5509}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5510
5511typedef PACKED_PRE struct PACKED_POST
5512{
5513 tHalMsgHeader header;
5514 tGetTxPwrReqParams getTxPwrReqParams;
5515}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5516
5517/*---------------------------------------------------------------------------
5518*WLAN_HAL_GET_TX_POWER_RSP
5519*--------------------------------------------------------------------------*/
5520
5521typedef PACKED_PRE struct PACKED_POST
5522{
5523 /* success or failure */
5524 tANI_U32 status;
5525
5526 /* TX Power in milli watts */
5527 tANI_U32 txPower;
5528}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5529
5530typedef PACKED_PRE struct PACKED_POST
5531{
5532 tHalMsgHeader header;
5533 tGetTxPwrRspParams getTxPwrRspParams;
5534}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5535
5536#ifdef WLAN_FEATURE_P2P
5537/*---------------------------------------------------------------------------
5538 *WLAN_HAL_SET_P2P_GONOA_REQ
5539 *--------------------------------------------------------------------------*/
5540
5541typedef PACKED_PRE struct PACKED_POST
5542{
5543 tANI_U8 opp_ps;
5544 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305545 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005546 tANI_U32 duration;
5547 tANI_U32 interval;
5548 tANI_U32 single_noa_duration;
5549 tANI_U8 psSelection;
5550}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5551
5552
5553typedef PACKED_PRE struct PACKED_POST
5554{
5555 tHalMsgHeader header;
5556 tSetP2PGONOAParams setP2PGONOAParams;
5557}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5558
5559/*---------------------------------------------------------------------------
5560*WLAN_HAL_SET_P2P_GONOA_RSP
5561*--------------------------------------------------------------------------*/
5562
5563typedef PACKED_PRE struct PACKED_POST
5564{
5565 /* success or failure */
5566 tANI_U32 status;
5567}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5568
5569typedef PACKED_PRE struct PACKED_POST
5570{
5571 tHalMsgHeader header;
5572 tSetP2PGONOARspParams setP2PGONOARspParams;
5573}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5574#endif
5575
5576/*---------------------------------------------------------------------------
5577 *WLAN_HAL_ADD_SELF_STA_REQ
5578 *--------------------------------------------------------------------------*/
5579
5580typedef PACKED_PRE struct PACKED_POST
5581{
5582 tSirMacAddr selfMacAddr;
5583 tANI_U32 status;
5584}tAddStaSelfParams, *tpAddStaSelfParams;
5585
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005586typedef PACKED_PRE struct PACKED_POST
5587{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005588 tHalMsgHeader header;
5589 tAddStaSelfParams addStaSelfParams;
5590}tAddStaSelfReq, *tpAddStaSelfReq;
5591
5592/* This V1 structure carries additionally the IFACE PERSONA
5593 of the interface as compared to the legacy control
5594 message */
5595typedef PACKED_PRE struct PACKED_POST
5596{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005597 tSirMacAddr selfMacAddr;
5598 tANI_U32 status;
5599 tHalIfacePersona iface_persona;
5600}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005601
5602typedef PACKED_PRE struct PACKED_POST
5603{
5604 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005605 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005606}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005607
5608/*---------------------------------------------------------------------------
5609*WLAN_HAL_ADD_SELF_STA_RSP
5610*--------------------------------------------------------------------------*/
5611
5612typedef PACKED_PRE struct PACKED_POST
5613{
5614 /* success or failure */
5615 tANI_U32 status;
5616
5617 /*Self STA Index */
5618 tANI_U8 selfStaIdx;
5619
5620 /* DPU Index (IGTK, PTK, GTK all same) */
5621 tANI_U8 dpuIdx;
5622
5623 /* DPU Signature */
5624 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305625
Jeff Johnson295189b2012-06-20 16:38:30 -07005626}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5627
5628typedef PACKED_PRE struct PACKED_POST
5629{
5630 tHalMsgHeader header;
5631 tAddStaSelfRspParams addStaSelfRspParams;
5632}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5633
5634
5635/*---------------------------------------------------------------------------
5636 WLAN_HAL_DEL_STA_SELF_REQ
5637---------------------------------------------------------------------------*/
5638
5639typedef PACKED_PRE struct PACKED_POST
5640{
5641 tSirMacAddr selfMacAddr;
5642
5643}tDelStaSelfParams, *tpDelStaSelfParams;
5644
5645typedef PACKED_PRE struct PACKED_POST
5646{
5647 tHalMsgHeader header;
5648 tDelStaSelfParams delStaSelfParams;
5649} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5650
5651
5652/*---------------------------------------------------------------------------
5653 WLAN_HAL_DEL_STA_SELF_RSP
5654---------------------------------------------------------------------------*/
5655
5656typedef PACKED_PRE struct PACKED_POST
5657{
5658 /*success or failure */
5659 tANI_U32 status;
5660
5661 tSirMacAddr selfMacAddr;
5662}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5663
5664typedef PACKED_PRE struct PACKED_POST
5665{
5666 tHalMsgHeader header;
5667 tDelStaSelfRspParams delStaSelfRspParams;
5668} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5669
5670
5671#ifdef WLAN_FEATURE_VOWIFI_11R
5672
5673/*---------------------------------------------------------------------------
5674 *WLAN_HAL_AGGR_ADD_TS_REQ
5675 *--------------------------------------------------------------------------*/
5676
5677typedef PACKED_PRE struct PACKED_POST
5678{
5679 /* Station Index */
5680 tANI_U16 staIdx;
5681
5682 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5683 /* This will carry the bitmap with the bit positions representing different AC.s*/
5684 tANI_U16 tspecIdx;
5685
5686 /* Tspec info per AC To program TPE with required parameters */
5687 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5688
5689 /* U-APSD Flags: 1b per AC. Encoded as follows:
5690 b7 b6 b5 b4 b3 b2 b1 b0 =
5691 X X X X BE BK VI VO */
5692 tANI_U8 uAPSD;
5693
5694 /* These parameters are for all the access categories */
5695 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5696 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5697 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5698
5699}tAggrAddTsParams, *tpAggrAddTsParams;
5700
5701
5702typedef PACKED_PRE struct PACKED_POST
5703{
5704 tHalMsgHeader header;
5705 tAggrAddTsParams aggrAddTsParam;
5706}tAggrAddTsReq, *tpAggrAddTsReq;
5707
5708/*---------------------------------------------------------------------------
5709*WLAN_HAL_AGGR_ADD_TS_RSP
5710*--------------------------------------------------------------------------*/
5711
5712typedef PACKED_PRE struct PACKED_POST
5713{
5714 /* success or failure */
5715 tANI_U32 status0;
5716 /* FIXME PRIMA for future use for 11R */
5717 tANI_U32 status1;
5718}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5719
5720typedef PACKED_PRE struct PACKED_POST
5721{
5722 tHalMsgHeader header;
5723 tAggrAddTsRspParams aggrAddTsRspParam;
5724}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5725
5726#endif
5727
5728/*---------------------------------------------------------------------------
5729 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5730 *--------------------------------------------------------------------------*/
5731typedef PACKED_PRE struct PACKED_POST
5732{
5733 tANI_U8 isAppsCpuAwake;
5734} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5735
5736typedef PACKED_PRE struct PACKED_POST
5737{
5738 tHalMsgHeader header;
5739 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5740} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5741
5742/*---------------------------------------------------------------------------
5743 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5744 *--------------------------------------------------------------------------*/
5745typedef PACKED_PRE struct PACKED_POST
5746{
5747 /* success or failure */
5748 tANI_U32 status;
5749} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5750
5751typedef PACKED_PRE struct PACKED_POST
5752{
5753 tHalMsgHeader header;
5754 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5755} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5756/*---------------------------------------------------------------------------
5757 * WLAN_HAL_DUMP_COMMAND_REQ
5758 *--------------------------------------------------------------------------*/
5759
5760typedef PACKED_PRE struct PACKED_POST
5761{
5762 tANI_U32 argument1;
5763 tANI_U32 argument2;
5764 tANI_U32 argument3;
5765 tANI_U32 argument4;
5766 tANI_U32 argument5;
5767
5768}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5769
5770typedef PACKED_PRE struct PACKED_POST
5771{
5772 tHalMsgHeader header;
5773 tHalDumpCmdReqParams dumpCmdReqParams;
5774} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5775
5776/*---------------------------------------------------------------------------
5777 * WLAN_HAL_DUMP_COMMAND_RSP
5778 *--------------------------------------------------------------------------*/
5779
5780typedef PACKED_PRE struct PACKED_POST
5781{
5782 /* success or failure */
5783 tANI_U32 status;
5784 /*Length of the responce message*/
5785 tANI_U32 rspLength;
5786 /*FiXME: Currently considering the the responce will be less than 100bytes */
5787 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305788
Jeff Johnson295189b2012-06-20 16:38:30 -07005789} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5790
5791typedef PACKED_PRE struct PACKED_POST
5792{
5793 tHalMsgHeader header;
5794 tHalDumpCmdRspParams dumpCmdRspParams;
5795} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5796
5797/*---------------------------------------------------------------------------
5798 *WLAN_HAL_COEX_IND
5799 *-------------------------------------------------------------------------*/
5800#define WLAN_COEX_IND_DATA_SIZE (4)
5801#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5802#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005803#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5804#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005805#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5806#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305807#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5808#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305809#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005810
5811typedef PACKED_PRE struct PACKED_POST
5812{
5813 /*Coex Indication Type*/
5814 tANI_U32 coexIndType;
5815
5816 /*Coex Indication Data*/
5817 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5818}tCoexIndParams,*tpCoexIndParams;
5819
5820typedef PACKED_PRE struct PACKED_POST
5821{
5822 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305823 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005824}tCoexIndMsg, *tpCoexIndMsg;
5825
5826/*---------------------------------------------------------------------------
5827 *WLAN_HAL_OTA_TX_COMPL_IND
5828 *-------------------------------------------------------------------------*/
5829
5830typedef PACKED_PRE struct PACKED_POST
5831{
5832 /*Tx Complete Indication Success or Failure*/
5833 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305834 /* Dialog token */
5835 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005836}tTxComplParams,*tpTxComplParams;
5837
5838typedef PACKED_PRE struct PACKED_POST
5839{
5840 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305841 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005842}tTxComplIndMsg, *tpTxComplIndMsg;
5843
5844/*---------------------------------------------------------------------------
5845 * WLAN_HAL_HOST_SUSPEND_IND
5846 *-------------------------------------------------------------------------*/
5847
5848typedef PACKED_PRE struct PACKED_POST
5849{
5850 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305851 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005852}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5853
5854typedef PACKED_PRE struct PACKED_POST
5855{
5856 tHalMsgHeader header;
5857 tHalWlanHostSuspendIndParam suspendIndParams;
5858}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5859
5860/*---------------------------------------------------------------------------
5861 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5862 *-------------------------------------------------------------------------*/
5863
5864typedef PACKED_PRE struct PACKED_POST
5865{
5866 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305867 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005868}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5869
5870typedef PACKED_PRE struct PACKED_POST
5871{
5872 tHalMsgHeader header;
5873 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5874}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5875
5876#ifdef WLAN_FEATURE_P2P
5877/*---------------------------------------------------------------------------
5878 *WLAN_HAL_NOA_ATTR_IND
5879 *-------------------------------------------------------------------------*/
5880
5881typedef PACKED_PRE struct PACKED_POST
5882{
5883 tANI_U8 index ;
5884 tANI_U8 oppPsFlag ;
5885 tANI_U16 ctWin ;
5886
5887 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005888 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005889 tANI_U32 uNoa1Duration;
5890 tANI_U32 uNoa1Interval;
5891 tANI_U32 uNoa1StartTime;
5892
5893 tANI_U16 uNoa2IntervalCnt;
5894 tANI_U16 rsvd2;
5895 tANI_U32 uNoa2Duration;
5896 tANI_U32 uNoa2Interval;
5897 tANI_U32 uNoa2StartTime;
5898
5899 tANI_U32 status;
5900}tNoaAttrIndParams, *tpNoaAttrIndParams;
5901
5902typedef PACKED_PRE struct PACKED_POST
5903{
5904 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305905 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005906}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005907
5908/*---------------------------------------------------------------------------
5909 *WLAN_HAL_NOA_START_IND
5910 *-------------------------------------------------------------------------*/
5911
5912typedef PACKED_PRE struct PACKED_POST
5913{
5914 tANI_U32 status;
5915 tANI_U32 bssIdx;
5916}tNoaStartIndParams, *tpNoaStartIndParams;
5917
5918typedef PACKED_PRE struct PACKED_POST
5919{
5920 tHalMsgHeader header;
5921 tNoaStartIndParams noaStartIndParams;
5922}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005923#endif
5924
5925/*---------------------------------------------------------------------------
5926 * WLAN_HAL_HOST_RESUME_REQ
5927 *-------------------------------------------------------------------------*/
5928
5929typedef PACKED_PRE struct PACKED_POST
5930{
5931 tANI_U8 configuredMcstBcstFilterSetting;
5932}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5933
5934typedef PACKED_PRE struct PACKED_POST
5935{
5936 tHalMsgHeader header;
5937 tHalWlanHostResumeReqParam resumeReqParams;
5938}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5939
5940/*---------------------------------------------------------------------------
5941 * WLAN_HAL_HOST_RESUME_RSP
5942 *--------------------------------------------------------------------------*/
5943typedef PACKED_PRE struct PACKED_POST
5944{
5945 /* success or failure */
5946 tANI_U32 status;
5947} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5948
5949typedef PACKED_PRE struct PACKED_POST
5950{
5951 tHalMsgHeader header;
5952 tHalHostResumeRspParams hostResumeRspParams;
5953} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5954
Anand Kumar012623a2013-01-11 17:00:00 -08005955typedef PACKED_PRE struct PACKED_POST
5956{
5957 tANI_U16 staIdx;
5958 // Peer MAC Address, whose BA session has timed out
5959 tSirMacAddr peerMacAddr;
5960 // TID for which a BA session timeout is being triggered
5961 tANI_U8 baTID;
5962 // DELBA direction
5963 // 1 - Originator
5964 // 0 - Recipient
5965 tANI_U8 baDirection;
5966 tANI_U32 reasonCode;
5967 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5968} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5969
5970typedef PACKED_PRE struct PACKED_POST
5971{
5972 tHalMsgHeader header;
5973 tHalWlanDelBaIndMsg hostdelBaParam;
5974} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5975
Jeff Johnson295189b2012-06-20 16:38:30 -07005976/*---------------------------------------------------------------------------
5977 *PNO Messages
5978 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005979/* Max number of channels that a network can be found on*/
5980/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5981 * be changed at same time
5982 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005983#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005984
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305985/*Max number of channels that a network can be found on*/
5986#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5987
Jeff Johnson295189b2012-06-20 16:38:30 -07005988/*Maximum numbers of networks supported by PNO*/
5989#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5990
5991/*The number of scan time intervals that can be programmed into PNO*/
5992#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5993
5994/*Maximum size of the probe template*/
5995#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5996
Dino Mycle8afbac12014-07-04 22:06:17 +05305997/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005998 Immediate - scanning will start immediately and PNO procedure will
5999 be repeated based on timer
6000 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006001 Resume - scanning will start on system resume
6002 Delay - start the scan timer to trigger PNO scan
6003 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006004typedef enum
6005{
6006 ePNO_MODE_IMMEDIATE,
6007 ePNO_MODE_ON_SUSPEND,
6008 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306009 ePNO_MODE_DELAY,
6010 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006011 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6012} ePNOMode;
6013
6014/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306015typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006016{
Dino Mycle8afbac12014-07-04 22:06:17 +05306017 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006018 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306019
Jeff Johnson295189b2012-06-20 16:38:30 -07006020 // Upper layer authentication types
6021 eAUTH_TYPE_WPA = 2,
6022 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306023
Jeff Johnson295189b2012-06-20 16:38:30 -07006024 eAUTH_TYPE_RSN = 4,
6025 eAUTH_TYPE_RSN_PSK = 5,
6026 eAUTH_TYPE_FT_RSN = 6,
6027 eAUTH_TYPE_FT_RSN_PSK = 7,
6028 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6029 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006030 eAUTH_TYPE_CCKM_WPA = 10,
6031 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306032 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6033 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306034
Jeff Johnson295189b2012-06-20 16:38:30 -07006035 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6036
6037}tAuthType;
6038
6039/* Encryption type */
6040typedef enum eEdType
6041{
6042 eED_ANY = 0,
6043 eED_NONE = 1,
6044 eED_WEP = 2,
6045 eED_TKIP = 3,
6046 eED_CCMP = 4,
6047 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306048
Jeff Johnson295189b2012-06-20 16:38:30 -07006049 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6050} tEdType;
6051
6052/* SSID broadcast type */
6053typedef enum eSSIDBcastType
6054{
6055 eBCAST_UNKNOWN = 0,
6056 eBCAST_NORMAL = 1,
6057 eBCAST_HIDDEN = 2,
6058
6059 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6060} tSSIDBcastType;
6061
Dino Mycle8afbac12014-07-04 22:06:17 +05306062/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006063 The network description for which PNO will have to look for
6064*/
6065typedef PACKED_PRE struct PACKED_POST
6066{
6067 /*SSID of the BSS*/
6068 tSirMacSSid ssId;
6069
6070 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306071 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006072
6073 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306074 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006075
Dino Mycle8afbac12014-07-04 22:06:17 +05306076 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006077 0 - if all channels */
6078 tANI_U8 ucChannelCount;
6079 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6080
6081 /*Indicates the RSSI threshold for the network to be considered*/
6082 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306083}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006084
6085typedef PACKED_PRE struct PACKED_POST
6086{
6087 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306088 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006089
Dino Mycle8afbac12014-07-04 22:06:17 +05306090 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006091 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306092 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006093
Dino Mycle8afbac12014-07-04 22:06:17 +05306094 /*e.g: 2 3
6095 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006096 - it will wait 2s between consecutive scans for 3 times
6097 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306098}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006099
Dino Mycle8afbac12014-07-04 22:06:17 +05306100/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006101 The network parameters to be sent to the PNO algorithm
6102*/
6103typedef PACKED_PRE struct PACKED_POST
6104{
6105 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306106 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006107
Dino Mycle8afbac12014-07-04 22:06:17 +05306108 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006109 two consecutive scan procedures
6110 If the desired is for a uniform timer that fires always at the exact same
6111 interval - one single value is to be set
6112 If there is a desire for a more complex - telescopic like timer multiple
6113 values can be set - once PNO reaches the end of the array it will
6114 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306115 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006116
6117}tScanTimersType;
6118
6119typedef PACKED_PRE struct PACKED_POST {
6120
6121 /*Enable PNO*/
6122 tANI_U32 enable;
6123
6124 /*Immediate, On Suspend, On Resume*/
6125 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306126
Jeff Johnson295189b2012-06-20 16:38:30 -07006127 /*Number of networks sent for PNO*/
6128 tANI_U32 ucNetworksCount;
6129
6130 /*The networks that PNO needs to look for*/
6131 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6132
6133 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306134 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006135
6136 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306137 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006138 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6139
6140 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306141 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006142 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6143
6144} tPrefNetwListParams, * tpPrefNetwListParams;
6145
6146/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306147 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006148*/
6149typedef PACKED_PRE struct PACKED_POST
6150{
6151 tHalMsgHeader header;
6152 tPrefNetwListParams prefNetwListParams;
6153} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6154
6155
Dino Mycle8afbac12014-07-04 22:06:17 +05306156/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006157 The network description for which PNO will have to look for
6158*/
6159typedef PACKED_PRE struct PACKED_POST
6160{
6161 /*SSID of the BSS*/
6162 tSirMacSSid ssId;
6163
6164 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306165 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006166
6167 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306168 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006169
6170 /*SSID broadcast type, normal, hidden or unknown*/
6171 tSSIDBcastType bcastNetworkType;
6172
Dino Mycle8afbac12014-07-04 22:06:17 +05306173 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006174 0 - if all channels */
6175 tANI_U8 ucChannelCount;
6176 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6177
6178 /*Indicates the RSSI threshold for the network to be considered*/
6179 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306180}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006181
6182typedef PACKED_PRE struct PACKED_POST {
6183
6184 /*Enable PNO*/
6185 tANI_U32 enable;
6186
6187 /*Immediate, On Suspend, On Resume*/
6188 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306189
Jeff Johnson295189b2012-06-20 16:38:30 -07006190 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306191 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006192
6193 /*The networks that PNO needs to look for*/
6194 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6195
6196 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306197 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006198
6199 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306200 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006201 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6202
6203 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306204 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006205 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6206
6207} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6208
6209/*
6210 Preferred network list request new
6211*/
6212typedef PACKED_PRE struct PACKED_POST
6213{
6214 tHalMsgHeader header;
6215 tPrefNetwListParamsNew prefNetwListParams;
6216} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6217
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006218#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6219typedef PACKED_PRE struct PACKED_POST
6220{
6221 tSirMacSSid ssId;
6222 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6223 tANI_U32 authentication;
6224 tEdType encryption;
6225 tEdType mcencryption;
6226 tANI_U8 ChannelCount;
6227 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6228}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006229
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006230typedef PACKED_PRE struct PACKED_POST
6231{
6232 tANI_U8 mdiePresent;
6233 tANI_U16 mobilityDomain;
6234}tMobilityDomainInfo;
6235
6236typedef PACKED_PRE struct PACKED_POST {
6237 eAniBoolean RoamScanOffloadEnabled;
6238 tANI_S8 LookupThreshold;
6239 tANI_U8 RoamRssiDiff;
6240 tANI_U8 ChannelCacheType;
6241 tANI_U8 Command;
6242 tANI_U8 StartScanReason;
6243 tANI_U16 NeighborScanTimerPeriod;
6244 tANI_U16 NeighborRoamScanRefreshPeriod;
6245 tANI_U16 NeighborScanChannelMinTime;
6246 tANI_U16 NeighborScanChannelMaxTime;
6247 tANI_U16 EmptyRefreshScanPeriod;
6248 tANI_U8 ValidChannelCount;
6249 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006250 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006251
6252 tANI_U16 us24GProbeSize;
6253 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6254 tANI_U16 us5GProbeSize;
6255 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6256 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006257 tANI_U8 nProbes;
6258 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006259 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006260 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006261 tANI_U8 RoamOffloadEnabled;
6262 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6263 tANI_U8 Prefer5GHz;
6264 tANI_U8 RoamRssiCatGap;
6265 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006266 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6267 tRoamNetworkType ConnectedNetwork;
6268 tMobilityDomainInfo MDID;
6269} tRoamCandidateListParams, * tpRoamCandidateListParams;
6270
6271typedef PACKED_PRE struct PACKED_POST
6272{
Kumar Anandea78e792013-10-10 23:47:01 -07006273 tHalMsgHeader header;
6274 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006275} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6276
6277typedef PACKED_PRE struct PACKED_POST
6278{
Kumar Anandea78e792013-10-10 23:47:01 -07006279 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006280
Kumar Anandea78e792013-10-10 23:47:01 -07006281 /* status of the request - just to indicate that PNO has acknowledged
6282 * the request and will start scanning */
6283 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006284} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6285#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006286
6287/*
6288 Preferred network list response
6289*/
6290typedef PACKED_PRE struct PACKED_POST
6291{
6292 tHalMsgHeader header;
6293
6294 /* status of the request - just to indicate that PNO has acknowledged
6295 * the request and will start scanning*/
6296 tANI_U32 status;
6297} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6298
6299/*
6300 Preferred network indication parameters
6301*/
6302typedef PACKED_PRE struct PACKED_POST {
6303
6304 /*Network that was found with the highest RSSI*/
6305 tSirMacSSid ssId;
6306
6307 /*Indicates the RSSI */
6308 tANI_U8 rssi;
6309
6310 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6311 tANI_U16 frameLength;
6312
6313} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6314
6315/*
6316 Preferred network found indication
6317*/
6318typedef PACKED_PRE struct PACKED_POST {
6319
6320 tHalMsgHeader header;
6321 tPrefNetwFoundParams prefNetwFoundParams;
6322} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6323
6324
6325typedef PACKED_PRE struct PACKED_POST {
6326
6327 /*RSSI Threshold*/
6328 tANI_U8 ucRssiThreshold;
6329
6330} tRssiFilterParams, * tpRssiFilterParams;
6331
Jeff Johnson295189b2012-06-20 16:38:30 -07006332/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306333 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006334*/
6335typedef PACKED_PRE struct PACKED_POST
6336{
6337 tHalMsgHeader header;
6338 tRssiFilterParams prefRSSIFilterParams;
6339} tSetRssiFilterReq, *tpSetRssiFilterReq;
6340
6341/*
6342 Set RSSI filter resp
6343*/
6344typedef PACKED_PRE struct PACKED_POST{
6345 tHalMsgHeader header;
6346 /*status of the request */
6347 tANI_U32 status;
6348} tSetRssiFilterResp, *tpSetRssiFilterResp;
6349/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306350 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006351*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306352typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006353{
6354
6355 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306356 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006357
6358 /*Lets PNO know that host has determined the regulatory domain*/
6359 tANI_U8 b11dResolved;
6360
6361 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306362 tANI_U8 ucChannelCount;
6363 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006364
6365 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306366 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006367
6368 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306369 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006370
6371 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306372 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006373
6374 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306375 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006376
6377 /*Cb State*/
6378 ePhyChanBondState cbState;
6379
6380} tUpdateScanParams, * tpUpdateScanParams;
6381
6382/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306383 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306384*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306385typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306386{
6387
6388 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306389 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306390
6391 /*Lets PNO know that host has determined the regulatory domain*/
6392 tANI_U8 b11dResolved;
6393
6394 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306395 tANI_U8 ucChannelCount;
6396 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306397
6398 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306399 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306400
6401 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306402 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306403
6404 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306405 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306406
6407 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306408 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306409
6410 /*Cb State*/
6411 ePhyChanBondState cbState;
6412
6413} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6414
6415/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006416 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306417 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006418*/
6419typedef PACKED_PRE struct PACKED_POST{
6420
6421 tHalMsgHeader header;
6422 tUpdateScanParams scanParams;
6423} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6424
6425/*
6426 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306427 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006428*/
6429typedef PACKED_PRE struct PACKED_POST{
6430
6431 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306432 tUpdateScanParamsEx scanParams;
6433} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6434
6435/*
6436 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306437 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306438*/
6439typedef PACKED_PRE struct PACKED_POST{
6440
6441 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006442
6443 /*status of the request */
6444 tANI_U32 status;
6445
6446} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6447
6448/*---------------------------------------------------------------------------
6449 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6450 *--------------------------------------------------------------------------*/
6451typedef PACKED_PRE struct PACKED_POST
6452{
6453 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6454 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6455 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6456 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6457} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6458
6459typedef PACKED_PRE struct PACKED_POST
6460{
6461 tHalMsgHeader header;
6462 tHalTxPerTrackingReqParam txPerTrackingParams;
6463} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6464
6465/*---------------------------------------------------------------------------
6466 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6467 *--------------------------------------------------------------------------*/
6468typedef PACKED_PRE struct PACKED_POST
6469{
6470 /* success or failure */
6471 tANI_U32 status;
6472} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6473
6474typedef PACKED_PRE struct PACKED_POST
6475{
6476 tHalMsgHeader header;
6477 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6478} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6479
6480/*---------------------------------------------------------------------------
6481 * WLAN_HAL_TX_PER_HIT_IND
6482 *--------------------------------------------------------------------------*/
6483typedef PACKED_PRE struct PACKED_POST
6484{
6485 tHalMsgHeader header;
6486}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6487
6488/*---------------------------------------------------------------------------
6489 *******************Packet Filtering Definitions Begin*******************
6490 *--------------------------------------------------------------------------*/
6491#define HAL_PROTOCOL_DATA_LEN 8
6492#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6493#define HAL_MAX_NUM_FILTERS 20
6494#define HAL_MAX_CMP_PER_FILTER 10
6495
6496typedef enum
6497{
6498 HAL_RCV_FILTER_TYPE_INVALID,
6499 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6500 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6501 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6502}tHalReceivePacketFilterType;
6503
Dino Mycle8afbac12014-07-04 22:06:17 +05306504typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006505{
6506 HAL_FILTER_PROTO_TYPE_INVALID,
6507 HAL_FILTER_PROTO_TYPE_MAC,
6508 HAL_FILTER_PROTO_TYPE_ARP,
6509 HAL_FILTER_PROTO_TYPE_IPV4,
6510 HAL_FILTER_PROTO_TYPE_IPV6,
6511 HAL_FILTER_PROTO_TYPE_UDP,
6512 HAL_FILTER_PROTO_TYPE_MAX
6513}tHalRcvPktFltProtocolType;
6514
Dino Mycle8afbac12014-07-04 22:06:17 +05306515typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006516{
6517 HAL_FILTER_CMP_TYPE_INVALID,
6518 HAL_FILTER_CMP_TYPE_EQUAL,
6519 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6520 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6521 HAL_FILTER_CMP_TYPE_MAX
6522}tHalRcvPktFltCmpFlagType;
6523
Dino Mycle8afbac12014-07-04 22:06:17 +05306524typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006525{
6526 tANI_U8 protocolLayer;
6527 tANI_U8 cmpFlag;
6528 tANI_U16 dataLength; /* Length of the data to compare */
6529 tANI_U8 dataOffset; /* from start of the respective frame header */
6530 tANI_U8 reserved; /* Reserved field */
6531 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6532 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6533}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6534
6535typedef PACKED_PRE struct PACKED_POST
6536{
6537 tANI_U8 filterId;
6538 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306539 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006540 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006541 tHalRcvPktFilterParams paramsData[1];
6542}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6543
6544typedef PACKED_PRE struct PACKED_POST
6545{
Jeff Johnsone7245742012-09-05 17:12:55 -07006546 tANI_U8 filterId;
6547 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306548 tANI_U8 numParams;
6549 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006550 tANI_U8 bssIdx;
6551 tHalRcvPktFilterParams paramsData[1];
6552}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6553
6554typedef PACKED_PRE struct PACKED_POST
6555{
Jeff Johnson295189b2012-06-20 16:38:30 -07006556 tHalMsgHeader header;
6557 tHalRcvPktFilterCfgType pktFilterCfg;
6558} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6559
Jeff Johnsone7245742012-09-05 17:12:55 -07006560typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006561{
6562 tANI_U8 dataOffset; /* from start of the respective frame header */
6563 tANI_U32 cMulticastAddr;
6564 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006565 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006566} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6567
6568typedef PACKED_PRE struct PACKED_POST
6569{
6570 /* success or failure */
6571 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006572 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006573} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6574
6575typedef PACKED_PRE struct PACKED_POST
6576{
6577 tHalMsgHeader header;
6578 tHalSetPktFilterRspParams pktFilterRspParams;
6579} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6580
Jeff Johnsone7245742012-09-05 17:12:55 -07006581typedef PACKED_PRE struct PACKED_POST
6582{
6583 tANI_U8 bssIdx;
6584} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006585
6586typedef PACKED_PRE struct PACKED_POST
6587{
6588 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006589 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006590} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6591
Jeff Johnsone7245742012-09-05 17:12:55 -07006592
Jeff Johnson295189b2012-06-20 16:38:30 -07006593typedef PACKED_PRE struct PACKED_POST
6594{
6595 tANI_U8 filterId;
6596 tANI_U32 matchCnt;
6597} tHalRcvFltPktMatchCnt;
6598typedef PACKED_PRE struct PACKED_POST
6599{
6600 /* Success or Failure */
6601 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306602 tANI_U32 matchCnt;
6603 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006604 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006605} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6606
6607typedef PACKED_PRE struct PACKED_POST
6608{
6609 tHalMsgHeader header;
6610 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6611} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6612
6613typedef PACKED_PRE struct PACKED_POST
6614{
6615 tANI_U32 status; /* only valid for response message */
6616 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006617 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006618}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6619
6620typedef PACKED_PRE struct PACKED_POST
6621{
6622 tHalMsgHeader header;
6623 tHalRcvFltPktClearParam filterClearParam;
6624} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6625
6626typedef PACKED_PRE struct PACKED_POST
6627{
6628 tHalMsgHeader header;
6629 tHalRcvFltPktClearParam filterClearParam;
6630} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6631
6632typedef PACKED_PRE struct PACKED_POST
6633{
Dino Mycle8afbac12014-07-04 22:06:17 +05306634 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006635 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006636}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6637
6638typedef PACKED_PRE struct PACKED_POST
6639{
6640 tHalMsgHeader header;
6641 tHalRcvFltMcAddrListType mcAddrList;
6642} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6643
6644typedef PACKED_PRE struct PACKED_POST
6645{
6646 tHalMsgHeader header;
6647 tHalRcvFltPktSetMcListRspType rspParam;
6648} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6649
6650
6651/*---------------------------------------------------------------------------
6652 *******************Packet Filtering Definitions End*******************
6653 *--------------------------------------------------------------------------*/
6654
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006655/*
6656 * There are two versions of this message
6657 * Version 1 : Base version
6658 * Current version : Base version + Max LI modulated DTIM
6659 */
6660typedef PACKED_PRE struct PACKED_POST
6661{
6662 /* Ignore DTIM */
6663 tANI_U32 uIgnoreDTIM;
6664
6665 /*DTIM Period*/
6666 tANI_U32 uDTIMPeriod;
6667
6668 /* Listen Interval */
6669 tANI_U32 uListenInterval;
6670
6671 /* Broadcast Multicast Filter */
6672 tANI_U32 uBcastMcastFilter;
6673
6674 /* Beacon Early Termination */
6675 tANI_U32 uEnableBET;
6676
6677 /* Beacon Early Termination Interval */
6678 tANI_U32 uBETInterval;
6679}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6680
6681typedef PACKED_PRE struct PACKED_POST
6682{
6683 tHalMsgHeader header;
6684 tSetPowerParamsVer1Type powerParams;
6685} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6686
Jeff Johnson295189b2012-06-20 16:38:30 -07006687typedef PACKED_PRE struct PACKED_POST
6688{
6689 /* Ignore DTIM */
6690 tANI_U32 uIgnoreDTIM;
6691
6692 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306693 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006694
6695 /* Listen Interval */
6696 tANI_U32 uListenInterval;
6697
6698 /* Broadcast Multicast Filter */
6699 tANI_U32 uBcastMcastFilter;
6700
6701 /* Beacon Early Termination */
6702 tANI_U32 uEnableBET;
6703
6704 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306705 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006706
6707 /* MAX LI for modulated DTIM */
6708 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006709}tSetPowerParamsType, *tpSetPowerParamsType;
6710
6711typedef PACKED_PRE struct PACKED_POST
6712{
6713 tHalMsgHeader header;
6714 tSetPowerParamsType powerParams;
6715} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6716
6717typedef PACKED_PRE struct PACKED_POST{
6718
6719 tHalMsgHeader header;
6720
6721 /*status of the request */
6722 tANI_U32 status;
6723
6724} tSetPowerParamsResp, *tpSetPowerParamsResp;
6725
6726/*---------------------------------------------------------------------------
6727 ****************Capability bitmap exchange definitions and macros starts*************
6728 *--------------------------------------------------------------------------*/
6729
Anand Kumar012623a2013-01-11 17:00:00 -08006730typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006731 MCC = 0,
6732 P2P = 1,
6733 DOT11AC = 2,
6734 SLM_SESSIONIZATION = 3,
6735 DOT11AC_OPMODE = 4,
6736 SAP32STA = 5,
6737 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006738 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006739 WLANACTIVE_OFFLOAD = 8,
6740 BEACON_OFFLOAD = 9,
6741 SCAN_OFFLOAD = 10,
6742 ROAM_OFFLOAD = 11,
6743 BCN_MISS_OFFLOAD = 12,
6744 STA_POWERSAVE = 13,
6745 STA_ADVANCED_PWRSAVE = 14,
6746 AP_UAPSD = 15,
6747 AP_DFS = 16,
6748 BLOCKACK = 17,
6749 PHY_ERR = 18,
6750 BCN_FILTER = 19,
6751 RTT = 20,
6752 RATECTRL = 21,
6753 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006754 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006755 SPECULATIVE_PS_POLL = 24,
6756 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006757 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006758 WLAN_SCAN_OFFLOAD = 27,
6759 WLAN_PERIODIC_TX_PTRN = 28,
6760 ADVANCE_TDLS = 29,
6761 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306762 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306763 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306764 CH_SWITCH_V1 = 33,
6765 HT40_OBSS_SCAN = 34,
6766 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006767 WLAN_MCADDR_FLT = 36,
6768 WLAN_CH144 = 37,
6769 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306770 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306771 LINK_LAYER_STATS_MEAS = 40,
6772 MU_MIMO = 41,
6773 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306774 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306775 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306776 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306777 DISA = 46,
6778 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306779 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306780 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306781 TDLS_OFF_CHANNEL = 51,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306782 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306783 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306784 LOGGING_ENHANCEMENT = 55,
Kumar Anandea78e792013-10-10 23:47:01 -07006785 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006786} placeHolderInCapBitmap;
6787
Jeff Johnson295189b2012-06-20 16:38:30 -07006788typedef PACKED_PRE struct PACKED_POST{
6789
6790 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006791} tWlanFeatCaps, *tpWlanFeatCaps;
6792
6793typedef PACKED_PRE struct PACKED_POST{
6794
Dino Mycle8afbac12014-07-04 22:06:17 +05306795 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006796 tWlanFeatCaps wlanFeatCaps;
6797
6798} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6799
Jeff Johnsone7245742012-09-05 17:12:55 -07006800#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6801#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006802#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006803#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006804#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006805#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006806#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006807#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306808#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306809#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306810#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306811#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306812#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006813
Jeff Johnsone7245742012-09-05 17:12:55 -07006814tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6815
Jeff Johnson295189b2012-06-20 16:38:30 -07006816#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006817 if ((b)<=127) { \
6818 arr_index = (b)/32; \
6819 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006820 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006821 (a)->featCaps[arr_index] |= (1<<bit_index); \
6822 } \
6823 }
6824#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006825 if ((b)<=127) { \
6826 arr_index = (b)/32; \
6827 bit_index = (b)%32; \
6828 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006829 } \
6830 }
6831#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006832 if ((b)<=127) { \
6833 arr_index = (b)/32; \
6834 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006835 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006836 } \
6837 }
6838
6839/*---------------------------------------------------------------------------
6840 * WLAN_HAL_WAKE_REASON_IND
6841 *--------------------------------------------------------------------------*/
6842
6843/* status codes to help debug rekey failures */
6844typedef enum
6845{
6846 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6847 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6848 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6849 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6850 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6851 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6852 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6853 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6854 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6855 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6856
6857 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6858} tGTKRekeyStatus;
6859
6860/* wake reason types */
6861typedef enum
6862{
6863 WLAN_HAL_WAKE_REASON_NONE = 0,
6864 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6865 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6866 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6867 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6868 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6869 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6870 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6871} tWakeReasonType;
6872
6873/*
6874 Wake Packet which is saved at tWakeReasonParams.DataStart
6875 This data is sent for any wake reasons that involve a packet-based wakeup :
6876
6877 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6878 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6879 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6880 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6881 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6882
6883 The information is provided to the host for auditing and debug purposes
6884
6885*/
6886
6887/*
6888 Wake reason indication parameters
6889*/
6890typedef PACKED_PRE struct PACKED_POST
6891{
6892 uint32 ulReason; /* see tWakeReasonType */
6893 uint32 ulReasonArg; /* argument specific to the reason type */
6894 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6895 HAL truncates the data (i.e. data packets) this length
6896 will be less than the actual length */
6897 uint32 ulActualDataLen; /* actual length of data */
6898 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6899 see specific wake type */
6900} tWakeReasonParams, *tpWakeReasonParams;
6901
6902/*
6903 Wake reason indication
6904*/
6905typedef PACKED_PRE struct PACKED_POST
6906{
6907 tHalMsgHeader header;
6908 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006909 tANI_U32 uBssIdx : 8;
6910 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006911} tHalWakeReasonInd, *tpHalWakeReasonInd;
6912
6913/*---------------------------------------------------------------------------
6914* WLAN_HAL_GTK_OFFLOAD_REQ
6915*--------------------------------------------------------------------------*/
6916
6917#define HAL_GTK_KEK_BYTES 16
6918#define HAL_GTK_KCK_BYTES 16
6919
6920#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6921
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006922#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6923
Jeff Johnson295189b2012-06-20 16:38:30 -07006924typedef PACKED_PRE struct PACKED_POST
6925{
6926 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306927 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006928 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6929 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006930 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006931} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6932
6933typedef PACKED_PRE struct PACKED_POST
6934{
6935 tHalMsgHeader header;
6936 tHalGtkOffloadReqParams gtkOffloadReqParams;
6937} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6938
6939/*---------------------------------------------------------------------------
6940* WLAN_HAL_GTK_OFFLOAD_RSP
6941*--------------------------------------------------------------------------*/
6942typedef PACKED_PRE struct PACKED_POST
6943{
6944 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006945 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006946} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6947
6948typedef PACKED_PRE struct PACKED_POST
6949{
6950 tHalMsgHeader header;
6951 tHalGtkOffloadRspParams gtkOffloadRspParams;
6952} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6953
6954
6955/*---------------------------------------------------------------------------
6956* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6957*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006958typedef PACKED_PRE struct PACKED_POST
6959{
6960 tANI_U8 bssIdx;
6961
6962} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006963
6964typedef PACKED_PRE struct PACKED_POST
6965{
6966 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006967 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006968} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6969
6970/*---------------------------------------------------------------------------
6971* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6972*--------------------------------------------------------------------------*/
6973typedef PACKED_PRE struct PACKED_POST
6974{
6975 tANI_U32 ulStatus; /* success or failure */
6976 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6977 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6978 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6979 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6980 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006981 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006982} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6983
6984typedef PACKED_PRE struct PACKED_POST
6985{
6986 tHalMsgHeader header;
6987 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6988} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6989
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006990/*---------------------------------------------------------------------------
6991* WLAN_HAL_DHCP_IND
6992*--------------------------------------------------------------------------*/
6993typedef PACKED_PRE struct PACKED_POST
6994{
6995 /*Indicates the device mode which indicates about the DHCP activity */
6996 tANI_U8 device_mode;
6997 tSirMacAddr macAddr;
6998} tDHCPInfo, *tpDHCPInfo;
6999
7000typedef PACKED_PRE struct PACKED_POST
7001{
7002 tHalMsgHeader header;
7003 tANI_U32 status; /* success or failure */
7004} tDHCPIndStatus, *tpDHCPIndstatus;
7005
Jeff Johnson295189b2012-06-20 16:38:30 -07007006/*
7007 Thermal Mitigation mode of operation.
7008 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7009 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7010 reducing transmit power
7011 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7012*/
7013typedef enum
7014{
7015 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7016 HAL_THERMAL_MITIGATION_MODE_0,
7017 HAL_THERMAL_MITIGATION_MODE_1,
7018 HAL_THERMAL_MITIGATION_MODE_2,
7019 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7020}tHalThermalMitigationModeType;
7021//typedef tANI_S16 tHalThermalMitigationModeType;
7022
7023/*
7024 Thermal Mitigation level.
7025 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7026 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7027
7028 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7029 level indicates normal mode of operation
7030 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7031 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7032 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7033 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7034*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307035typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007036{
7037 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7038 HAL_THERMAL_MITIGATION_LEVEL_0,
7039 HAL_THERMAL_MITIGATION_LEVEL_1,
7040 HAL_THERMAL_MITIGATION_LEVEL_2,
7041 HAL_THERMAL_MITIGATION_LEVEL_3,
7042 HAL_THERMAL_MITIGATION_LEVEL_4,
7043 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7044}tHalThermalMitigationLevelType;
7045//typedef tANI_S16 tHalThermalMitigationLevelType;
7046
7047typedef PACKED_PRE struct PACKED_POST
7048{
7049 /* Thermal Mitigation Operation Mode */
7050 tHalThermalMitigationModeType thermalMitMode;
7051
7052 /* Thermal Mitigation Level */
7053 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307054
Jeff Johnson295189b2012-06-20 16:38:30 -07007055}tSetThermalMitgationType, *tpSetThermalMitgationType;
7056
7057/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7058typedef PACKED_PRE struct PACKED_POST
7059{
7060 tHalMsgHeader header;
7061 tSetThermalMitgationType thermalMitParams;
7062} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7063
7064typedef PACKED_PRE struct PACKED_POST{
7065
7066 tHalMsgHeader header;
7067
7068 /*status of the request */
7069 tANI_U32 status;
7070
7071} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7072
Dino Mycle8afbac12014-07-04 22:06:17 +05307073/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007074provided to FW from Host via periodic messages */
7075typedef PACKED_PRE struct PACKED_POST {
7076 /* TX stats */
7077 uint32 txBytesPushed;
7078 uint32 txPacketsPushed;
7079
7080 /* RX stats */
7081 uint32 rxBytesRcvd;
7082 uint32 rxPacketsRcvd;
7083 uint32 rxTimeTotal;
7084} tStaStatsClassB, *tpStaStatsClassB;
7085
7086typedef PACKED_PRE struct PACKED_POST {
7087
7088 /* Duration over which this stats was collected */
7089 tANI_U32 duration;
7090
7091 /* Per STA Stats */
7092 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7093} tStatsClassBIndParams, *tpStatsClassBIndParams;
7094
7095typedef PACKED_PRE struct PACKED_POST {
7096
7097 tHalMsgHeader header;
7098
7099 /* Class B Stats */
7100 tStatsClassBIndParams statsClassBIndParams;
7101} tStatsClassBInd, *tpStatsClassBInd;
7102
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307103/*Wifi Proximity paramters in AP mode*/
7104#ifdef FEATURE_WIFI_PROXIMITY
7105
7106typedef PACKED_PRE struct PACKED_POST{
7107
7108 tANI_U8 wifiProximityChannel;
7109 tANI_U32 wifiProximityDuration;
7110 tANI_U32 wifiProximityInterval;
7111 tANI_U32 wifiProximityMode;
7112 tANI_U32 wifiProximityStatus;
7113 tSirMacAddr bssId;
7114 tSirMacSSid ssId;
7115
7116} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7117
7118typedef PACKED_PRE struct PACKED_POST
7119{
7120 tHalMsgHeader header;
7121
7122 tSetWifiProximityReqParam wifiProximityReqParams;
7123
7124}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7125
7126/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7127typedef PACKED_PRE struct PACKED_POST{
7128
7129 tHalMsgHeader header;
7130
7131 /*status of the request */
7132 tANI_U32 status;
7133
7134} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7135
7136#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007137
7138#ifdef FEATURE_SPECULATIVE_PS_POLL
7139/*---------------------------------------------------------------------------
7140 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7141 *--------------------------------------------------------------------------*/
7142typedef PACKED_PRE struct PACKED_POST
7143{
7144 tANI_U8 bssIdx;
7145 tANI_U16 serviceInterval;
7146 tANI_U16 suspendInterval;
7147 tANI_U8 acMask;
7148} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7149
7150typedef PACKED_PRE struct PACKED_POST
7151{
7152 tHalMsgHeader header;
7153 tHalStartSpecPsPollReqParams specPsPollReq;
7154} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7155
7156/*---------------------------------------------------------------------------
7157 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7158 *--------------------------------------------------------------------------*/
7159typedef PACKED_PRE struct PACKED_POST
7160{
7161 /* success or failure */
7162 tANI_U32 status;
7163 tANI_U8 bssIdx;
7164} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7165
7166typedef PACKED_PRE struct PACKED_POST
7167{
7168 tHalMsgHeader header;
7169 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7170} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7171
7172/*---------------------------------------------------------------------------
7173 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7174 *--------------------------------------------------------------------------*/
7175typedef PACKED_PRE struct PACKED_POST
7176{
7177 tHalMsgHeader header;
7178 tANI_U8 bssIdx;
7179} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7180#endif
7181
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307182#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307183#define HAL_MAX_SUPP_CHANNELS 128
7184#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307185/*---------------------------------------------------------------------------
7186 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7187 *-------------------------------------------------------------------------*/
7188typedef PACKED_PRE struct PACKED_POST
7189{
7190 /*STA Index*/
7191 tANI_U16 staIdx;
7192
7193 /* if this is 1, self is initiator and peer is reponder */
7194 tANI_U8 bIsResponder;
7195
7196 /* QoS Info */
7197 tANI_U8 acVOUAPSDFlag:1;
7198 tANI_U8 acVIUAPSDFlag:1;
7199 tANI_U8 acBKUAPSDFlag:1;
7200 tANI_U8 acBEUAPSDFlag:1;
7201 tANI_U8 aAck:1;
7202 tANI_U8 maxServicePeriodLength:2;
7203 tANI_U8 moreDataAck:1;
7204
7205 /*TDLS Peer U-APSD Buffer STA Support*/
7206 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007207
7208 /*TDLS off channel related params */
7209 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307210 tANI_U8 peerCurrOperClass;
7211 tANI_U8 selfCurrOperClass;
7212 tANI_U8 validChannelsLen;
7213 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7214 tANI_U8 validOperClassesLen;
7215 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307216}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7217
7218typedef PACKED_PRE struct PACKED_POST
7219{
7220 tHalMsgHeader header;
7221 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7222} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7223
7224/*---------------------------------------------------------------------------
7225 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7226 *-------------------------------------------------------------------------*/
7227
7228typedef PACKED_PRE struct PACKED_POST
7229{
7230 tANI_U32 status;
7231
7232 /*STA Index*/
7233 tANI_U16 staIdx;
7234} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7235
7236typedef PACKED_PRE struct PACKED_POST
7237{
7238 tHalMsgHeader header;
7239 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7240} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307241/*---------------------------------------------------------------------------
7242 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7243 + *-------------------------------------------------------------------------*/
7244typedef PACKED_PRE struct PACKED_POST
7245{
7246 /*STA Index*/
7247 tANI_U16 staIdx;
7248 /* if this is 1, self is initiator otherwise responder only*/
7249 tANI_U8 isOffchannelInitiator;
7250 /*TDLS off channel related params */
7251 tANI_U8 targetOperClass;
7252 tANI_U8 targetChannel;
7253 tANI_U8 secondaryChannelOffset;
7254 tANI_U8 reserved[32];
7255}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7256
7257typedef PACKED_PRE struct PACKED_POST
7258{
7259 tHalMsgHeader header;
7260 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7261} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7262/*---------------------------------------------------------------------------
7263 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7264 *-------------------------------------------------------------------------*/
7265
7266typedef PACKED_PRE struct PACKED_POST
7267{
7268 tANI_U32 status;
7269 /*STA Index*/
7270 tANI_U16 staIdx;
7271} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7272
7273typedef PACKED_PRE struct PACKED_POST
7274{
7275 tHalMsgHeader header;
7276 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7277} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7278
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307279
7280/*---------------------------------------------------------------------------
7281 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7282 *-------------------------------------------------------------------------*/
7283typedef PACKED_PRE struct PACKED_POST
7284{
7285 /*STA Index*/
7286 tANI_U16 staIdx;
7287}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7288
7289typedef PACKED_PRE struct PACKED_POST
7290{
7291 tHalMsgHeader header;
7292 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7293} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7294
7295/*---------------------------------------------------------------------------
7296 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7297 *-------------------------------------------------------------------------*/
7298
7299typedef PACKED_PRE struct PACKED_POST
7300{
7301 tANI_U32 status;
7302
7303 /*STA Index*/
7304 tANI_U16 staIdx;
7305} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7306
7307typedef PACKED_PRE struct PACKED_POST
7308{
7309 tHalMsgHeader header;
7310 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7311} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7312
7313/*---------------------------------------------------------------------------
7314 *WLAN_HAL_TDLS_IND
7315 *--------------------------------------------------------------------------*/
7316
7317typedef PACKED_PRE struct PACKED_POST
7318{
7319 tANI_U16 assocId;
7320 tANI_U16 staIdx;
7321 tANI_U16 status;
7322 tANI_U16 reasonCode;
7323}tTdlsIndParams, *tpTdlsIndParams;
7324
7325
7326typedef PACKED_PRE struct PACKED_POST
7327{
7328 tHalMsgHeader header;
7329 tTdlsIndParams tdlsIndParams;
7330}tTdlsIndMsg, *tpTdlsIndMsg;
7331
7332#endif
7333
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007334/*---------------------------------------------------------------------------
7335 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7336 *--------------------------------------------------------------------------*/
7337
7338typedef PACKED_PRE struct PACKED_POST
7339{
7340 tANI_U8 bssIdx;
7341 tANI_U8 staIdx;
7342 tSirMacAddr staAddr;
7343}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7344
7345
7346typedef PACKED_PRE struct PACKED_POST
7347{
7348 tHalMsgHeader header;
7349 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7350}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7351
7352
Kumar Anandea78e792013-10-10 23:47:01 -07007353/*********** Scan Offload Related Structures *************/
7354#define HAL_NUM_SCAN_SSID 10
7355#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007356
Kumar Anandea78e792013-10-10 23:47:01 -07007357/*
7358 * Enumetation to indicate scan type (active/passive)
7359 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007360typedef enum
7361{
Kumar Anandea78e792013-10-10 23:47:01 -07007362 eSIR_PASSIVE_SCAN,
7363 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7364} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007365
7366typedef PACKED_PRE struct PACKED_POST
7367{
Kumar Anandea78e792013-10-10 23:47:01 -07007368 tANI_U8 numBssid;
7369 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7370 tANI_U8 numSsid;
7371 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7372 tANI_BOOLEAN hiddenSsid;
7373 tSirMacAddr selfMacAddr;
7374 tSirBssType bssType;
7375 tSirScanType scanType;
7376 tANI_U32 minChannelTime;
7377 tANI_U32 maxChannelTime;
7378 tANI_BOOLEAN p2pSearch;
7379 tANI_U8 channelCount;
7380 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7381 tANI_U16 ieFieldLen;
7382 tANI_U8 ieField[1];
7383}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007384
7385/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007386 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007387 *-------------------------------------------------------------------------*/
7388typedef PACKED_PRE struct PACKED_POST
7389{
Kumar Anandf53016f2013-09-04 15:15:53 -07007390 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007391 tScanOffloadReqType scanOffloadParams;
7392} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007393
7394/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007395 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007396 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007397typedef PACKED_PRE struct PACKED_POST
7398{
7399 tHalMsgHeader header;
7400
7401 /*status of the request - just to indicate SO has acknowledged
7402 * * the request and will start scanning*/
7403 tANI_U32 status;
7404} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7405
7406/*---------------------------------------------------------------------------
7407 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7408 *-------------------------------------------------------------------------*/
7409typedef PACKED_PRE struct PACKED_POST
7410{
7411 tHalMsgHeader header;
7412} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7413
7414/*---------------------------------------------------------------------------
7415 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7416 *-------------------------------------------------------------------------*/
7417typedef PACKED_PRE struct PACKED_POST
7418{
7419 tHalMsgHeader header;
7420
7421 /*status of the request - just to indicate SO has acknowledged
7422 the request and will start scanning*/
7423 tANI_U32 status;
7424} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7425
7426/*
7427 * Enumetation of scan events indicated by firmware to the host
7428 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007429typedef enum
7430{
Kumar Anandea78e792013-10-10 23:47:01 -07007431 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7432 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7433 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7434 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7435 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7436 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7437 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7438 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7439 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7440} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007441
7442typedef PACKED_PRE struct PACKED_POST
7443{
Kumar Anandea78e792013-10-10 23:47:01 -07007444 tScanEventType event;
7445 tANI_U32 channel;
7446 tANI_U32 scanId;
7447} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007448
Kumar Anandea78e792013-10-10 23:47:01 -07007449/*---------------------------------------------------------------------------
7450 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7451 *-------------------------------------------------------------------------*/
7452typedef PACKED_PRE struct PACKED_POST
7453{
7454 tHalMsgHeader header;
7455 tScanOffloadEventInfo scanOffloadInd;
7456} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007457
Kumar Anandea78e792013-10-10 23:47:01 -07007458typedef PACKED_PRE struct PACKED_POST {
7459 /** primary 20 MHz channel frequency in mhz */
7460 tANI_U32 mhz;
7461 /** Center frequency 1 in MHz*/
7462 tANI_U32 band_center_freq1;
7463 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7464 tANI_U32 band_center_freq2;
7465 /* The first 26 bits are a bit mask to indicate any channel flags,
7466 (see WLAN_HAL_CHAN_FLAG*)
7467 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7468 tANI_U32 channel_info;
7469 /** contains min power, max power, reg power and reg class id. */
7470 tANI_U32 reg_info_1;
7471 /** contains antennamax */
7472 tANI_U32 reg_info_2;
7473} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007474
Kumar Anandf53016f2013-09-04 15:15:53 -07007475
Kumar Anandea78e792013-10-10 23:47:01 -07007476typedef enum {
7477 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7478 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7479 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7480 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7481 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7482 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7483 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7484 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7485 WLAN_HAL_MODE_11AC_VHT20 = 8,
7486 WLAN_HAL_MODE_11AC_VHT40 = 9,
7487 WLAN_HAL_MODE_11AC_VHT80 = 10,
7488 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7489 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7490 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7491 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007492
Kumar Anandea78e792013-10-10 23:47:01 -07007493} tChannelPhyModeType;
7494
7495#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7496#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7497#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7498#define WLAN_HAL_CHAN_AP_DISABLED 9
7499#define WLAN_HAL_CHAN_FLAG_DFS 10
7500#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7501#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007502#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7503
7504#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007505 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007506 } while(0)
7507
7508#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007509 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007510
7511#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7512 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7513 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7514 } while(0)
7515#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7516
7517#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7518 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7519 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7520 } while(0)
7521#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7522
7523#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7524 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7525 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7526 } while(0)
7527#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7528#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7529 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7530 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7531 } while(0)
7532#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7533
7534#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7535 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7536 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7537 } while(0)
7538#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7539
7540#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7541 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7542 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7543 } while(0)
7544#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 -07007545
7546typedef PACKED_PRE struct PACKED_POST
7547{
7548 tANI_U8 numChan;
7549 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7550} tUpdateChannelReqType;
7551
7552/*---------------------------------------------------------------------------
7553 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7554 *-------------------------------------------------------------------------*/
7555typedef PACKED_PRE struct PACKED_POST
7556{
7557 tHalMsgHeader header;
7558 tUpdateChannelReqType updateChannelParams;
7559} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7560
7561/*---------------------------------------------------------------------------
7562 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7563 *-------------------------------------------------------------------------*/
7564typedef PACKED_PRE struct PACKED_POST
7565{
7566 tHalMsgHeader header;
7567
7568 /*status of the request - just to indicate SO has acknowledged
7569 * * the request and will start scanning*/
7570 tANI_U32 status;
7571} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7572
7573
7574/*---------------------------------------------------------------------------
7575* WLAN_HAL_TX_FAIL_IND
7576*--------------------------------------------------------------------------*/
7577// Northbound indication from FW to host on weak link detection
7578typedef PACKED_PRE struct PACKED_POST
7579{
7580 // Sequence number increases by 1 whenever the device driver
7581 // sends a notification event. This is cleared as 0 when the
7582 // JOIN IBSS commamd is issued
7583 tANI_U16 seqNo;
7584 tANI_U16 staId;
7585 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7586} tHalTXFailIndParams, *tpHalTXFailIndParams;
7587
7588typedef PACKED_PRE struct PACKED_POST
7589{
7590 tHalMsgHeader header;
7591 tHalTXFailIndParams txFailIndParams;
7592} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7593
7594/*---------------------------------------------------------------------------
7595* WLAN_HAL_TX_FAIL_MONITOR_IND
7596*--------------------------------------------------------------------------*/
7597// Southbound message from Host to monitor the Tx failures
7598typedef PACKED_PRE struct PACKED_POST
7599{
7600 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7601 tANI_U8 tx_fail_count;
7602} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7603
7604typedef PACKED_PRE struct PACKED_POST
7605{
7606 tHalMsgHeader header;
7607 tTXFailMonitorInfo txFailMonitor;
7608} tTXFailMonitorInd, *tpTXFailMonitorInd;
7609
7610/*---------------------------------------------------------------------------
7611* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7612*--------------------------------------------------------------------------*/
7613typedef PACKED_PRE struct PACKED_POST
7614{
7615 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7616 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7617} tDestIpNextHopMacPair;
7618
7619typedef PACKED_PRE struct PACKED_POST
7620{
7621 tANI_U8 numEntries;
7622 tDestIpNextHopMacPair destIpMacPair[1];
7623} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007624
7625typedef PACKED_PRE struct PACKED_POST
7626{
7627 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007628 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7629} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007630
Kumar Anandf53016f2013-09-04 15:15:53 -07007631/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007632 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7633 *-------------------------------------------------------------------------*/
7634typedef enum
7635{
7636 /* reassociation is done, but couldn't finish security handshake */
7637 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7638
7639 /* roam has successfully completed by firmware */
7640 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7641
7642 /* UNKONW error */
7643 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7644}tHalRoamOffloadRoamAuthStatus;
7645
7646typedef enum
7647{
7648 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7649 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7650 WLAN_HAL_ROAM_TYPE_OKC,
7651 WLAN_HAL_ROAM_TYPE_CCKM,
7652 WLAN_HAL_ROAM_TYPE_FT,
7653 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7654} tHalRoamOffloadType;
7655
7656typedef PACKED_PRE struct PACKED_POST
7657{
7658 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7659 tANI_U16 beaconProbeRespOffset;
7660
7661 /* Length of beaon / probe resp. */
7662 tANI_U16 beaconProbeRespLength;
7663
7664 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7665 tANI_U16 reassocRespOffset;
7666
7667 /* Length of reassoc resp. */
7668 tANI_U16 reassocRespLength;
7669
7670 /* 0 for probe response frame, 1 for beacon frame, */
7671 tANI_U8 isBeacon;
7672
7673 /* staIdx of old AP */
7674 tANI_U8 oldStaIdx;
7675
7676 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7677 tConfigBssRspParams */
7678 /* bssIdx of new roamed AP */
7679 tANI_U8 bssIdx;
7680
7681 /* DPU descriptor index for PTK */
7682 tANI_U8 dpuDescIndx;
7683
7684 /* PTK DPU signature */
7685 tANI_U8 ucastDpuSignature;
7686
7687 /* DPU descriptor index for GTK*/
7688 tANI_U8 bcastDpuDescIndx;
7689
7690 /* GTK DPU signature */
7691 tANI_U8 bcastDpuSignature;
7692
7693 /*DPU descriptor for IGTK*/
7694 tANI_U8 mgmtDpuDescIndx;
7695
7696 /* IGTK DPU signature */
7697 tANI_U8 mgmtDpuSignature;
7698
7699 /* Station Index for BSS entry*/
7700 tANI_U8 staIdx;
7701
7702 /* Self station index for this BSS */
7703 tANI_U8 selfStaIdx;
7704
7705 /* Bcast station for buffering bcast frames in AP role */
7706 tANI_U8 bcastStaIdx;
7707
7708 /* MAC address of roamed AP */
7709 tSirMacAddr bssid;
7710
7711 /*HAL fills in the tx power used for mgmt frames in this field. */
7712 tANI_S8 txMgmtPower;
7713
7714 /* success or failure */
7715 tHalRoamOffloadRoamAuthStatus authStatus;
7716
7717 /* TODO : add more info as needed */
7718
7719 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7720 /* Beacon or probe resp from new AP. This is in 802.11
7721 frame format starting with MAC header. */
7722 /* Up to beaconProbeRespLength */
7723
7724 /* reassocRespOffset points to starting of reassoc resp frame */
7725 /* Reassoc resp from new AP. This is in 802.11
7726 frame format starting with MAC header. */
7727 /* Up to reassocRespLength */
7728
7729} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7730
7731
7732typedef PACKED_PRE struct PACKED_POST
7733{
7734 tHalMsgHeader header;
7735 tHalRoamOffloadSynchIndParams params;
7736} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7737
7738/*---------------------------------------------------------------------------
7739 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7740 *-------------------------------------------------------------------------*/
7741typedef PACKED_PRE struct PACKED_POST
7742{
7743 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7744 tSirMacAddr bssid;
7745} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7746
7747typedef PACKED_PRE struct PACKED_POST
7748{
7749 tHalMsgHeader header;
7750 tHalRoamOffloadSynchCnfParams params;
7751} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7752
7753
7754/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007755 WLAN_HAL_RATE_UPDATE_IND
7756 *-------------------------------------------------------------------------*/
7757
7758typedef PACKED_PRE struct PACKED_POST
7759{
7760 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7761 tANI_S32 ucastDataRate; //unit Mbpsx10
7762
7763 /* TX flag to differentiate between HT20, HT40 etc */
7764 tTxRateInfoFlags ucastDataRateTxFlag;
7765
7766 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7767 tSirMacAddr bssid;
7768
7769 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7770 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7771
7772 /* TX flag to differentiate between HT20, HT40 etc */
7773 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7774
7775 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7776 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7777
7778 /* TX flag to differentiate between HT20, HT40 etc */
7779 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7780
7781 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7782 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7783
7784 /* TX flag to differentiate between HT20, HT40 etc */
7785 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7786
7787} tHalRateUpdateParams, *tpHalRateUpdateParams;
7788
7789typedef PACKED_PRE struct PACKED_POST
7790{
7791 tHalMsgHeader header;
7792 tHalRateUpdateParams halRateUpdateParams;
7793} tHalRateUpdateInd, * tpHalRateUpdateInd;
7794
7795/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307796 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7797 *-------------------------------------------------------------------------*/
7798
Abhishek Singhe0443152015-06-18 10:07:43 +05307799#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307800
7801typedef PACKED_PRE struct PACKED_POST
7802{
7803 tANI_U32 startFreq;
7804 tANI_U32 endFreq;
7805} tHalFreqRange, *tpHalFreqRange;
7806
7807typedef PACKED_PRE struct PACKED_POST
7808{
7809 tANI_U32 avoidCnt;
7810 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7811} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7812
7813typedef PACKED_PRE struct PACKED_POST
7814{
7815 tHalMsgHeader header;
7816 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7817} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7818
7819/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307820 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007821 *-------------------------------------------------------------------------*/
7822
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307823typedef enum
7824{
7825 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7826 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7827 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7828}tHT40OBssScanCmdType;
7829
7830typedef PACKED_PRE struct PACKED_POST
7831{
7832 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007833
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307834 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007835 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7836 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7837 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7838 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7839 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7840 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7841 tANI_U16 OBSSScanActivityThreshold;
7842
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307843 tANI_U8 selfStaIdx;
7844 tANI_U8 bssIdx;
7845 tANI_U8 fortyMHZIntolerent;
7846 tANI_U8 channelCount;
7847 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7848 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007849
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307850 tANI_U16 ieFieldLen;
7851 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7852}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7853
7854typedef PACKED_PRE struct PACKED_POST
7855{
7856 tHalMsgHeader header;
7857 tHT40ObssScanIndType scanHT40ObssScanParams;
7858} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7859
7860/*---------------------------------------------------------------------------
7861 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7862 *-------------------------------------------------------------------------*/
7863typedef PACKED_PRE struct PACKED_POST
7864{
7865 tHalMsgHeader header;
7866 tANI_U8 bssIdx;
7867} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307868
7869/*---------------------------------------------------------------------------
7870 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7871 *-------------------------------------------------------------------------*/
7872
7873typedef PACKED_PRE struct PACKED_POST
7874{
7875 /* Valid BSS Idx for beacon miss rate */
7876 tANI_U8 bssIdx;
7877
7878}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7879
7880typedef PACKED_PRE struct PACKED_POST
7881{
7882 tHalMsgHeader header;
7883 tHalBcnMissRateReqParams bcnMissRateReqParams;
7884} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7885
7886/*---------------------------------------------------------------------------
7887 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7888 *-------------------------------------------------------------------------*/
7889
7890typedef PACKED_PRE struct PACKED_POST
7891{
7892 tANI_U32 status;
7893 tANI_U32 bcnMissCnt;
7894}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7895
7896typedef PACKED_PRE struct PACKED_POST
7897{
7898 tHalMsgHeader header;
7899 tHalBcnMissRateRspParams bcnMissRateRspParams;
7900}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7901
Sunil Dutt8377a382014-05-26 21:18:04 +05307902/*--------------------------------------------------------------------------
7903* WLAN_HAL_LL_SET_STATS_REQ
7904*---------------------------------------------------------------------------*/
7905
7906typedef PACKED_PRE struct PACKED_POST
7907{
7908 tANI_U32 req_id;
7909 tANI_U8 sta_id;
7910 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7911 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7912} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7913
7914typedef PACKED_PRE struct PACKED_POST
7915{
7916 tHalMsgHeader header;
7917 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7918} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7919
7920/*---------------------------------------------------------------------------
7921 WLAN_HAL_LL_SET_STATS_RSP
7922---------------------------------------------------------------------------*/
7923
7924typedef PACKED_PRE struct PACKED_POST
7925{
7926 tANI_U32 status;
7927 tANI_U32 resp_id;
7928 tANI_U8 iface_id;
7929} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7930
7931typedef PACKED_PRE struct PACKED_POST
7932{
7933 tHalMsgHeader header;
7934 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7935} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7936
7937/*---------------------------------------------------------------------------
7938 WLAN_HAL_LL_GET_STATS_REQ
7939---------------------------------------------------------------------------*/
7940
7941typedef PACKED_PRE struct PACKED_POST
7942{
7943 tANI_U32 req_id;
7944 tANI_U8 sta_id;
7945 tANI_U32 param_id_mask;
7946} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7947
7948typedef PACKED_PRE struct PACKED_POST
7949{
7950 tHalMsgHeader header;
7951 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7952} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7953
7954/*---------------------------------------------------------------------------
7955 WLAN_HAL_LL_GET_STATS_RSP
7956---------------------------------------------------------------------------*/
7957typedef PACKED_PRE struct PACKED_POST
7958{
7959 tANI_U32 status;
7960 tANI_U32 resp_id;
7961 tANI_U8 iface_id;
7962} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7963
7964typedef PACKED_PRE struct PACKED_POST
7965{
7966 tHalMsgHeader header;
7967 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7968} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7969
7970/*---------------------------------------------------------------------------
7971 WLAN_HAL_LL_CLEAR_STATS_REQ
7972---------------------------------------------------------------------------*/
7973typedef PACKED_PRE struct PACKED_POST
7974{
7975 tANI_U32 req_id;
7976 tANI_U8 sta_id;
7977 tANI_U32 stats_clear_req_mask;
7978 tANI_U8 stop_req;
7979} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7980
7981typedef PACKED_PRE struct PACKED_POST
7982{
7983 tHalMsgHeader header;
7984 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7985} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
7986
7987/*---------------------------------------------------------------------------
7988 WLAN_HAL_LL_CLEAR_STATS_RSP
7989---------------------------------------------------------------------------*/
7990typedef PACKED_PRE struct PACKED_POST
7991{
7992 tANI_U32 status;
7993 tANI_U8 sta_id;
7994 tANI_U32 resp_id;
7995 tANI_U32 stats_clear_rsp_mask;
7996 tANI_U8 stop_req_status;
7997} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
7998
7999typedef PACKED_PRE struct PACKED_POST
8000{
8001 tHalMsgHeader header;
8002 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8003} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8004
8005/*---------------------------------------------------------------------------
8006 WLAN_HAL_LL_NOTIFY_STATS
8007---------------------------------------------------------------------------*/
8008
8009typedef PACKED_PRE struct PACKED_POST
8010{
8011 tHalMsgHeader header;
8012 tANI_U32 param_id;
8013 tANI_U8 iface_id;
8014 tANI_U32 resp_id;
8015 tANI_U32 more_result_to_follow;
8016 tANI_U8 result[1];
8017} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008018
Dino Mycle108eff22014-06-10 09:36:44 +05308019/*---------------------------------------------------------------------------
8020 * WLAN_HAL_EXT_SCAN_START_REQ
8021 *-------------------------------------------------------------------------*/
8022
Dino Mycle8afbac12014-07-04 22:06:17 +05308023typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308024{
8025 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8026 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8027 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8028 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8029 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8030 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8031 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308032 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308033} tExtScanChannelBandMask;
8034
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308035#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8036#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8037
8038#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8039
8040#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8041#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8042#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8043#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8044
Dino Mycle108eff22014-06-10 09:36:44 +05308045typedef PACKED_PRE struct PACKED_POST
8046{
8047 tANI_U32 channel; // frequency
8048 tANI_U32 dwellTimeMs; // dwell time hint
8049 tANI_U8 passive; // 0 => active,
8050 // 1 => passive scan; ignored for DFS
8051}tExtScanChannelSpec, *tpExtScanChannelSpec;
8052
8053typedef PACKED_PRE struct PACKED_POST
8054 {
8055 /* bucket index, 0 based */
8056 tANI_U8 bucketId;
8057 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8058 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308059 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308060 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308061 /* This is a bit field; which defines following bits -
8062 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8063 is % full
8064 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8065 after scan
8066 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8067 (beacons/probe responses + IEs) in real time to HAL, in addition
8068 to completion events
8069 Note: To keep backward compatibility, fire completion events
8070 regardless of REPORT_EVENTS_EACH_SCAN.
8071 * REPORT_EVENTS_NO_BATCH => controls batching,
8072 0 => batching, 1 => no batching
8073 */
Dino Mycle108eff22014-06-10 09:36:44 +05308074 tANI_U8 reportEvents;
8075 /* number of channels */
8076 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308077 // new Exponential Scan params
8078 tANI_U32 max_period;
8079 tANI_U32 exponent;
8080 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308081 /* if channels to scan. In the TLV channelList[] */
8082 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8083}tExtScanBucketData, *tpExtScanBucketData;
8084
8085typedef PACKED_PRE struct PACKED_POST
8086{
8087 tANI_U32 requestId;
8088 tANI_U8 sessionId;
8089 /* Base period (milliseconds) used by scan buckets to define periodicity
8090 of the scans */
8091 tANI_U32 basePeriod;
8092 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8093 (keep the most significant, i.e. stronger RSSI) */
8094 tANI_U32 maxApPerScan;
8095 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308096 tANI_U32 reportThresholdPercent;
8097 /* in number of scans, wake up AP after these many scans */
8098 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308099 /* This will be off channel minimum time */
8100 tANI_U16 neighborScanChannelMinTime;
8101 /* This will be out off channel max time */
8102 tANI_U16 neighborScanChannelMaxTime;
8103 /* This will be the home (BSS) channel time */
8104 tANI_U16 homeAwayTime;
8105 /* number of buckets (maximum 8) */
8106 tANI_U8 numBuckets;
8107 /* Buckets data */
8108 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8109} tHalExtScanStartReq, *tpHalExtScanStartReq;
8110
8111typedef PACKED_PRE struct PACKED_POST
8112{
8113 tHalMsgHeader header;
8114 tHalExtScanStartReq extScanStartReq;
8115}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8116
8117/*---------------------------------------------------------------------------
8118 * WLAN_HAL_EXT_SCAN_START_RSP
8119 *-------------------------------------------------------------------------*/
8120
8121typedef PACKED_PRE struct PACKED_POST
8122{
8123 tANI_U32 requestId;
8124 tANI_U32 status;
8125}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8126
8127typedef PACKED_PRE struct PACKED_POST
8128{
8129 tHalMsgHeader header;
8130 tHalExtScanStartRsp extScanStartRsp;
8131}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8132
8133/*---------------------------------------------------------------------------
8134 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8135 *-------------------------------------------------------------------------*/
8136
8137typedef PACKED_PRE struct PACKED_POST
8138{
8139 tANI_U32 requestId;
8140 tANI_U8 sessionId;
8141}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8142
8143typedef PACKED_PRE struct PACKED_POST
8144{
8145 tHalMsgHeader header;
8146 tHalExtScanGetCapReq extScanGetCapReq;
8147}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8148
8149/*---------------------------------------------------------------------------
8150 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8151 *-------------------------------------------------------------------------*/
8152
8153typedef PACKED_PRE struct PACKED_POST
8154{
8155 tANI_U32 requestId;
8156 tANI_U32 status;
8157
8158 tANI_U32 scanCacheSize;
8159 tANI_U32 scanBuckets;
8160 tANI_U32 maxApPerScan;
8161 tANI_U32 maxRssiSampleSize;
8162 tANI_U32 maxScanReportingThreshold;
8163
8164 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308165 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308166
8167 tANI_U32 maxBssidHistoryEntries;
8168}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8169
8170typedef PACKED_PRE struct PACKED_POST
8171{
8172 tHalMsgHeader header;
8173 tHalExtScanGetCapRsp extScanGetCapRsp;
8174}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8175
8176/*---------------------------------------------------------------------------
8177 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8178 *-------------------------------------------------------------------------*/
8179
8180typedef PACKED_PRE struct PACKED_POST
8181{
8182 tANI_U32 requestId;
8183 tANI_U8 sessionId;
8184 /*
8185 * 1 return cached results and flush it
8186 * 0 return cached results and do not flush
8187 */
8188 tANI_BOOLEAN flush;
8189}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8190
8191typedef PACKED_PRE struct PACKED_POST
8192{
8193 tHalMsgHeader header;
8194 tHalExtScanGetScanReq getScanReq;
8195}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8196
8197/*---------------------------------------------------------------------------
8198 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8199 *-------------------------------------------------------------------------*/
8200
8201typedef PACKED_PRE struct PACKED_POST
8202{
8203 tANI_U32 requestId;
8204 tANI_U32 status;
8205}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8206
8207typedef PACKED_PRE struct PACKED_POST
8208{
8209 tHalMsgHeader header;
8210 tHalExtScanGetScanRsp getScanRsp;
8211}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8212
8213/*---------------------------------------------------------------------------
8214 * WLAN_HAL_EXT_SCAN_RESULT_IND
8215 *-------------------------------------------------------------------------*/
8216
8217typedef PACKED_PRE struct PACKED_POST
8218{
8219 tANI_U64 ts; // time of discovery
8220 tANI_U8 ssid[32+1]; // null terminated SSID
8221 tSirMacAddr bssid; // BSSID
8222 tANI_U32 channel; // channel frequency in MHz
8223 tANI_S32 rssi; // RSSI in dBm
8224 tANI_U32 rtt; // RTT in nanoseconds - not expected
8225 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308226 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308227 tANI_U16 capability; // capabilities advertised in the beacon
8228} tHalExtScanResultParams, *tpHalExtScanResultParams;
8229
8230typedef PACKED_PRE struct PACKED_POST
8231{
8232 tHalMsgHeader header;
8233 tANI_U32 requestId;
8234 tANI_U32 scanResultSize;
8235 tANI_BOOLEAN moreData;
8236 tANI_U8 extScanResult[1];
8237}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8238
8239/*---------------------------------------------------------------------------
8240 * WLAN_HAL_EXT_SCAN_STOP_REQ
8241 *-------------------------------------------------------------------------*/
8242
8243typedef PACKED_PRE struct PACKED_POST
8244{
8245 tANI_U32 requestId;
8246 tANI_U8 sessionId;
8247}tHalExtScanStopReq, *tpHalExtScanStopReq;
8248
8249typedef PACKED_PRE struct PACKED_POST
8250{
8251 tHalMsgHeader header;
8252 tHalExtScanStopReq extScanStopReq;
8253}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8254
8255/*---------------------------------------------------------------------------
8256 * WLAN_HAL_EXT_SCAN_STOP_RSP
8257 *-------------------------------------------------------------------------*/
8258
8259typedef PACKED_PRE struct PACKED_POST
8260{
8261 tANI_U32 requestId;
8262 tANI_U32 status;
8263}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8264
8265typedef PACKED_PRE struct PACKED_POST
8266{
8267 tHalMsgHeader header;
8268 tHalExtScanStopRsp extScanStopRsp;
8269}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8270
8271/*---------------------------------------------------------------------------
8272 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8273 *-------------------------------------------------------------------------*/
8274
Dino Mycle8afbac12014-07-04 22:06:17 +05308275typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308276{
8277 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8278 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308279 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308280} tHalExtScanProgressEventType;
8281
8282typedef PACKED_PRE struct PACKED_POST
8283{
8284 tANI_U32 requestId;
8285 tANI_U32 status;
8286 tHalExtScanProgressEventType extScanEventType;
8287}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8288
8289typedef PACKED_PRE struct PACKED_POST
8290{
8291 tHalMsgHeader header;
8292 tHalExtScanProgressInd extScanProgressInd;
8293}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8294
8295/*---------------------------------------------------------------------------
8296 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8297 *-------------------------------------------------------------------------*/
8298
8299typedef PACKED_PRE struct PACKED_POST
8300{
8301 tANI_U32 requestId;
8302 tANI_U32 numOfScanResAvailable;
8303}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8304
8305typedef PACKED_PRE struct PACKED_POST
8306{
8307 tHalMsgHeader header;
8308 tHalExtScanResAvailableInd extScanResAvailableInd;
8309}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8310
Dino Mycle108eff22014-06-10 09:36:44 +05308311typedef PACKED_PRE struct PACKED_POST
8312{
8313 /* AP BSSID */
8314 tSirMacAddr bssid;
8315 /* low threshold - used in L for significant_change - not used in L for
8316 hotlist*/
8317 tANI_S32 lowRssiThreshold;
8318 /* high threshold - used in L for significant rssi - used in L for hotlist */
8319 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308320} tApThresholdParams, *tpApThresholdParams;
8321
Dino Mycle108eff22014-06-10 09:36:44 +05308322/*---------------------------------------------------------------------------
8323 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8324 *-------------------------------------------------------------------------*/
8325
8326typedef PACKED_PRE struct PACKED_POST
8327{
8328 tANI_U32 requestId;
8329 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308330 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308331 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308332 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308333 // hotlist APs
8334 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8335} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8336
8337typedef PACKED_PRE struct PACKED_POST
8338{
8339 tHalMsgHeader header;
8340 tHalBssidHotlistSetReq bssidHotlistSetReq;
8341}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8342
8343/*---------------------------------------------------------------------------
8344 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8345 *-------------------------------------------------------------------------*/
8346
8347typedef PACKED_PRE struct PACKED_POST
8348{
8349 tANI_U32 requestId;
8350 tANI_U32 status;
8351}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8352
8353typedef PACKED_PRE struct PACKED_POST
8354{
8355 tHalMsgHeader header;
8356 tHalHotlistSetRsp hotlistSetRsp;
8357}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8358
8359/*---------------------------------------------------------------------------
8360 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8361 *-------------------------------------------------------------------------*/
8362
8363typedef PACKED_PRE struct PACKED_POST
8364{
8365 tANI_U32 requestId;
8366}tHalHotlistResetReq, *tpHalHotlistResetReq;
8367
8368typedef PACKED_PRE struct PACKED_POST
8369{
8370 tHalMsgHeader header;
8371 tHalHotlistResetReq hotlistResetReq;
8372}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8373
8374/*---------------------------------------------------------------------------
8375 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8376 *-------------------------------------------------------------------------*/
8377
8378typedef PACKED_PRE struct PACKED_POST
8379{
8380 tANI_U32 requestId;
8381 tANI_U32 status;
8382}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8383
8384typedef PACKED_PRE struct PACKED_POST
8385{
8386 tHalMsgHeader header;
8387 tHalHotlistResetRsp hotlistResetRsp;
8388}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8389
8390/*---------------------------------------------------------------------------
8391 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8392 *-------------------------------------------------------------------------*/
8393
8394typedef PACKED_PRE struct PACKED_POST
8395{
8396 tHalMsgHeader header;
8397 tANI_U32 requestId;
8398 tANI_U32 numHotlistBss;
8399 tANI_BOOLEAN moreData;
8400 tANI_U8 bssHotlist[1];
8401}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8402
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308403/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308404 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8405 *-------------------------------------------------------------------------*/
8406
8407typedef PACKED_PRE struct PACKED_POST
8408{
8409 /* SSID */
8410 char ssid [32+1];
8411 /* low threshold - used in L for significant_change - not used in L for
8412 hotlist*/
8413 tANI_S32 lowRssiThreshold;
8414 /* high threshold - used in L for significant rssi - used in L for hotlist */
8415 tANI_S32 highRssiThreshold;
8416 /* band */
8417 tANI_U32 band;
8418 } tSsidThresholdParams, *tpSsidThresholdParams;
8419
8420
8421typedef PACKED_PRE struct PACKED_POST
8422{
8423 tANI_U32 requestId;
8424 tANI_U8 sessionId;
8425 tANI_U32 lostSsidSampleSize;
8426 // number of hotlist SSIDs
8427 tANI_U32 numSsid;
8428 // hotlist SSIDs
8429 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8430} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8431
8432typedef PACKED_PRE struct PACKED_POST
8433{
8434 tHalMsgHeader header;
8435 tHalSsidHotlistSetReq ssidHotlistSetReq;
8436}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8437
8438/*---------------------------------------------------------------------------
8439 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8440 *-------------------------------------------------------------------------*/
8441typedef PACKED_PRE struct PACKED_POST
8442{
8443 tANI_U32 requestId;
8444 tANI_U32 status;
8445}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8446
8447typedef PACKED_PRE struct PACKED_POST
8448{
8449 tHalMsgHeader header;
8450 tHalSsidHotlistSetRsp hotlistSetRsp;
8451}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8452
8453/*---------------------------------------------------------------------------
8454 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8455 *-------------------------------------------------------------------------*/
8456
8457typedef PACKED_PRE struct PACKED_POST
8458{
8459 tANI_U32 requestId;
8460}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8461
8462typedef PACKED_PRE struct PACKED_POST
8463{
8464 tHalMsgHeader header;
8465 tHalSsidHotlistResetReq hotlistResetReq;
8466}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8467
8468/*---------------------------------------------------------------------------
8469 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8470 *-------------------------------------------------------------------------*/
8471
8472typedef PACKED_PRE struct PACKED_POST
8473{
8474 tANI_U32 requestId;
8475 tANI_U32 status;
8476}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8477
8478typedef PACKED_PRE struct PACKED_POST
8479{
8480 tHalMsgHeader header;
8481 tHalSsidHotlistResetRsp hotlistResetRsp;
8482}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8483
8484/*---------------------------------------------------------------------------
8485 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8486 *-------------------------------------------------------------------------*/
8487
8488typedef PACKED_PRE struct PACKED_POST
8489{
8490 tHalMsgHeader header;
8491 tANI_U32 requestId;
8492 tANI_BOOLEAN ssid_found;
8493 tANI_U32 numHotlistSsid;
8494 tANI_BOOLEAN moreData;
8495 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8496}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8497
8498/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308499 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8500 *--------------------------------------------------------------------------*/
8501typedef PACKED_PRE struct PACKED_POST
8502{
8503 tANI_U8 macAddr[6];
8504 tANI_U32 reserved1;
8505 tANI_U32 reserved2;
8506}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8507
8508typedef PACKED_PRE struct PACKED_POST
8509{
8510 tHalMsgHeader header;
8511 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8512} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8513
8514/*---------------------------------------------------------------------------
8515* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8516*-------------------------------------------------------------------------*/
8517
8518typedef PACKED_PRE struct PACKED_POST
8519{
8520 tANI_U32 status;
8521 tANI_U32 reserved1;
8522} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8523
8524typedef PACKED_PRE struct PACKED_POST
8525{
8526 tHalMsgHeader header;
8527 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8528} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308529/*---------------------------------------------------------------------------
8530 *WLAN_HAL_GET_FRAME_LOG_REQ
8531 *--------------------------------------------------------------------------*/
8532typedef PACKED_PRE struct PACKED_POST
8533{
8534 tANI_U8 flags;
8535}tGetFrameLogReqType, * tpGetFrameLogReqType;
8536
8537typedef PACKED_PRE struct PACKED_POST
8538{
8539 tHalMsgHeader header;
8540 tGetFrameLogReqType tGetFrameLogReqParams;
8541} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8542
8543/*---------------------------------------------------------------------------
8544 * WLAN_HAL_GET_FRAME_LOG_RSP
8545 *-------------------------------------------------------------------------*/
8546typedef PACKED_PRE struct PACKED_POST
8547{
8548 tANI_U32 status;
8549} tGetFrameLogResp, * tpGetFrameLogResp;
8550
8551typedef PACKED_PRE struct PACKED_POST
8552{
8553 tHalMsgHeader header;
8554 tGetFrameLogResp tGetFrameLogRespParams;
8555} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8556
8557/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308558 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8559 *-------------------------------------------------------------------------*/
8560typedef PACKED_PRE struct PACKED_POST
8561{
8562 tANI_U32 reasonCode;
8563}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8564
8565typedef PACKED_PRE struct PACKED_POST
8566{
8567 tHalMsgHeader header;
8568 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8569}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8570
8571/*---------------------------------------------------------------------------
8572 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8573 *-------------------------------------------------------------------------*/
8574typedef PACKED_PRE struct PACKED_POST
8575{ tANI_U32 status;
8576}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8577
8578typedef PACKED_PRE struct PACKED_POST
8579{
8580 tHalMsgHeader header;
8581 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8582}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8583
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308584/*---------------------------------------------------------------------------
8585 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8586 *-------------------------------------------------------------------------*/
8587typedef PACKED_PRE struct PACKED_POST
8588{
8589 tANI_U8 bssIdx;
8590 tANI_U8 rssi;
8591 tSirMacAddr selfMacAddr;
8592 tANI_U32 linkFlCnt;
8593 tANI_U32 linkFlTx;
8594 tANI_U32 lastDataRate;
8595 tANI_U32 rsvd1;
8596 tANI_U32 rsvd2;
8597}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8598
8599typedef PACKED_PRE struct PACKED_POST
8600{
8601 tHalMsgHeader header;
8602 tHalLostLinkParametersIndParams lostLinkParameters;
8603}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308604
8605
8606/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308607 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308608 *--------------------------------------------------------------------------*/
8609typedef PACKED_PRE struct PACKED_POST
8610{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308611 /* BIT0 - enable frame logging
8612 * BIT1 - enableBMUHWtracing
8613 * BIT2 - enableQXDMlogging
8614 * BIT3 - enableUElogDpuTxp
8615 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308616 tANI_U8 enableFlag;
8617 tANI_U8 frameType;
8618 tANI_U8 frameSize;
8619 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308620 /* Host mem address to be used as logmailbox */
8621 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308622 /* firmware will wakeup the host to send logs always */
8623 tANI_U8 continuousFrameLogging;
8624 /* Logging mail box version */
8625 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308626 /* Max ring size in firmware to log msgs when host is suspended state */
8627 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308628 /* when firmware log reaches this threshold and
8629 * if host is awake it will push the logs.
8630 */
8631 tANI_U8 minLogBuffSize;
8632 /* Reserved for future purpose */
8633 tANI_U32 reserved0;
8634 tANI_U32 reserved1;
8635 tANI_U32 reserved2;
8636}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308637
8638typedef PACKED_PRE struct PACKED_POST
8639{
8640 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308641 tFWLoggingInitReqType tFWLoggingInitReqParams;
8642} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308643
8644/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308645 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308646 *-------------------------------------------------------------------------*/
8647typedef PACKED_PRE struct PACKED_POST
8648{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308649 tANI_U32 status;
8650 /* FW mail box address */
8651 tANI_U64 logMailBoxAddr;
8652 /* Logging mail box version */
8653 tANI_U8 logMailBoxVer;
8654 /* Qshrink is enabled */
8655 tANI_BOOLEAN logCompressEnabled;
8656 /* Reserved for future purpose */
8657 tANI_U32 reserved0;
8658 tANI_U32 reserved1;
8659 tANI_U32 reserved2;
8660} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308661
8662typedef PACKED_PRE struct PACKED_POST
8663{
8664 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308665 tFWLoggingInitResp tFWLoggingInitRespParams;
8666} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
8667
8668/*---------------------------------------------------------------------------
8669 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
8670 *-------------------------------------------------------------------------*/
8671typedef PACKED_PRE struct PACKED_POST
8672{
8673 tANI_U32 status;
8674 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8675 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8676} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
8677
8678typedef PACKED_PRE struct PACKED_POST
8679{
8680 tHalMsgHeader header;
8681 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
8682} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
8683
8684/*---------------------------------------------------------------------------
8685 * Logging mail box structure
8686 *-------------------------------------------------------------------------*/
8687
8688#define MAILBOX_VERSION_V1 0x1
8689
8690typedef PACKED_PRE struct PACKED_POST
8691{
8692 /* Logging mail box version */
8693 tANI_U8 logMbVersion;
8694 /* Current logging buffer address */
8695 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8696 /* Current logging buffer length */
8697 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8698 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
8699 tANI_U16 reasonCode;
8700 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
8701 tANI_U8 logType;
8702 /* Indicate if Last segment of log is received*/
8703 tANI_BOOLEAN done;
8704}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308705
Katya Nigamf0511f62015-05-05 16:40:57 +05308706/*---------------------------------------------------------------------------
8707* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
8708*-------------------------------------------------------------------------*/
8709
8710/* only 1 filter is supported as of now */
8711#define NUM_FILTERS_SUPPORTED 1
8712
8713typedef PACKED_PRE struct PACKED_POST
8714{
8715 tSirMacAddr macAddr;
8716 tANI_U8 isA1filteringNeeded;
8717 tANI_U8 isA2filteringNeeded;
8718 tANI_U8 isA3filteringNeeded;
8719}tHalMacFilter, *tpHalMacFilter;
8720
8721typedef PACKED_PRE struct PACKED_POST
8722{
8723 tANI_U8 channelNumber;
8724 ePhyChanBondState cbState;
8725
8726 tANI_U32 maxAmpduLen;
8727 tANI_U32 maxMpduInAmpduLen;
8728
8729 tANI_U8 crcCheckEnabled;
8730
8731 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
8732 tANI_U8 numMacFilters;
8733 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
8734
8735 /* Each bit position maps to IEEE convention of typeSubtype */
8736 tANI_U64 typeSubtypeBitmap;
8737
8738 tANI_U64 reserved;
8739
8740}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
8741
8742typedef PACKED_PRE struct PACKED_POST
8743{
8744 tHalMsgHeader header;
8745 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
8746}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
8747
8748
8749/*---------------------------------------------------------------------------
8750* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
8751*-------------------------------------------------------------------------*/
8752
8753typedef PACKED_PRE struct PACKED_POST
8754{
8755 tANI_U32 status;
8756}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
8757
8758typedef PACKED_PRE struct PACKED_POST
8759{
8760 tHalMsgHeader header;
8761 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
8762}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
8763
8764/*---------------------------------------------------------------------------
8765* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
8766*-------------------------------------------------------------------------*/
8767
8768typedef PACKED_PRE struct PACKED_POST
8769{
8770 tHalMsgHeader header;
8771 tANI_U8 resetConfiguration;
8772}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
8773
8774/*---------------------------------------------------------------------------
8775* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
8776*-------------------------------------------------------------------------*/
8777
8778typedef PACKED_PRE struct PACKED_POST
8779{
8780 tANI_U32 status;
8781}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
8782
8783typedef PACKED_PRE struct PACKED_POST
8784{
8785 tHalMsgHeader header;
8786 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
8787}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
8788
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05308789typedef PACKED_PRE struct PACKED_POST
8790{
8791 tANI_U8 status;
8792}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
8793
Jeff Johnson295189b2012-06-20 16:38:30 -07008794#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8795#pragma pack(pop)
8796#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8797#else
8798#endif
8799
8800#endif /* _WLAN_HAL_MSG_H_ */