blob: ca61536d3a5c59a33345304d5ed95b1c0099839b [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,
Sachin Ahujac08f72a2015-09-22 15:25:47 +0530143 FW_MEMORY_DUMP = 2,
144 FATAL_EVENT = 3
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530145}tHalFrameLoggingType;
146
147/* Log size */
148typedef enum
149{
150 LOG_SIZE_4K = 0,
151 LOG_SIZE_8K = 1,
152 LOG_SIZE_12K = 2,
153 LOG_SIZE_16K = 3,
154 LOG_SIZE_32K = 4,
155 LOG_SIZE_64K = 5,
156 LOG_SIZE_96K = 6
157}tHalLogBuffSize;
158
Jeff Johnson295189b2012-06-20 16:38:30 -0700159/* Message types for messages exchanged between WDI and HAL */
Dino Mycle8afbac12014-07-04 22:06:17 +0530160typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700161{
162 //Init/De-Init
163 WLAN_HAL_START_REQ = 0,
164 WLAN_HAL_START_RSP = 1,
165 WLAN_HAL_STOP_REQ = 2,
166 WLAN_HAL_STOP_RSP = 3,
167
168 //Scan
169 WLAN_HAL_INIT_SCAN_REQ = 4,
170 WLAN_HAL_INIT_SCAN_RSP = 5,
171 WLAN_HAL_START_SCAN_REQ = 6,
172 WLAN_HAL_START_SCAN_RSP = 7 ,
173 WLAN_HAL_END_SCAN_REQ = 8,
174 WLAN_HAL_END_SCAN_RSP = 9,
175 WLAN_HAL_FINISH_SCAN_REQ = 10,
176 WLAN_HAL_FINISH_SCAN_RSP = 11,
177
178 // HW STA configuration/deconfiguration
179 WLAN_HAL_CONFIG_STA_REQ = 12,
180 WLAN_HAL_CONFIG_STA_RSP = 13,
181 WLAN_HAL_DELETE_STA_REQ = 14,
182 WLAN_HAL_DELETE_STA_RSP = 15,
183 WLAN_HAL_CONFIG_BSS_REQ = 16,
184 WLAN_HAL_CONFIG_BSS_RSP = 17,
185 WLAN_HAL_DELETE_BSS_REQ = 18,
186 WLAN_HAL_DELETE_BSS_RSP = 19,
187
188 //Infra STA asscoiation
189 WLAN_HAL_JOIN_REQ = 20,
190 WLAN_HAL_JOIN_RSP = 21,
191 WLAN_HAL_POST_ASSOC_REQ = 22,
192 WLAN_HAL_POST_ASSOC_RSP = 23,
193
194 //Security
195 WLAN_HAL_SET_BSSKEY_REQ = 24,
196 WLAN_HAL_SET_BSSKEY_RSP = 25,
197 WLAN_HAL_SET_STAKEY_REQ = 26,
198 WLAN_HAL_SET_STAKEY_RSP = 27,
199 WLAN_HAL_RMV_BSSKEY_REQ = 28,
200 WLAN_HAL_RMV_BSSKEY_RSP = 29,
201 WLAN_HAL_RMV_STAKEY_REQ = 30,
202 WLAN_HAL_RMV_STAKEY_RSP = 31,
203
204 //Qos Related
205 WLAN_HAL_ADD_TS_REQ = 32,
206 WLAN_HAL_ADD_TS_RSP = 33,
207 WLAN_HAL_DEL_TS_REQ = 34,
208 WLAN_HAL_DEL_TS_RSP = 35,
209 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
210 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
211 WLAN_HAL_ADD_BA_REQ = 38,
212 WLAN_HAL_ADD_BA_RSP = 39,
213 WLAN_HAL_DEL_BA_REQ = 40,
214 WLAN_HAL_DEL_BA_RSP = 41,
215
216 WLAN_HAL_CH_SWITCH_REQ = 42,
217 WLAN_HAL_CH_SWITCH_RSP = 43,
218 WLAN_HAL_SET_LINK_ST_REQ = 44,
219 WLAN_HAL_SET_LINK_ST_RSP = 45,
220 WLAN_HAL_GET_STATS_REQ = 46,
221 WLAN_HAL_GET_STATS_RSP = 47,
222 WLAN_HAL_UPDATE_CFG_REQ = 48,
223 WLAN_HAL_UPDATE_CFG_RSP = 49,
224
225 WLAN_HAL_MISSED_BEACON_IND = 50,
226 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
227 WLAN_HAL_MIC_FAILURE_IND = 52,
228 WLAN_HAL_FATAL_ERROR_IND = 53,
229 WLAN_HAL_SET_KEYDONE_MSG = 54,
Dino Mycle8afbac12014-07-04 22:06:17 +0530230
Jeff Johnson295189b2012-06-20 16:38:30 -0700231 //NV Interface
232 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
233 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
234
235 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
236 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
237 WLAN_HAL_TRIGGER_BA_REQ = 59,
238 WLAN_HAL_TRIGGER_BA_RSP = 60,
239 WLAN_HAL_UPDATE_BEACON_REQ = 61,
240 WLAN_HAL_UPDATE_BEACON_RSP = 62,
241 WLAN_HAL_SEND_BEACON_REQ = 63,
242 WLAN_HAL_SEND_BEACON_RSP = 64,
243
244 WLAN_HAL_SET_BCASTKEY_REQ = 65,
245 WLAN_HAL_SET_BCASTKEY_RSP = 66,
246 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
247 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
248 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Dino Mycle8afbac12014-07-04 22:06:17 +0530249
Jeff Johnson295189b2012-06-20 16:38:30 -0700250 // PTT interface support
251 WLAN_HAL_PROCESS_PTT_REQ = 70,
252 WLAN_HAL_PROCESS_PTT_RSP = 71,
Dino Mycle8afbac12014-07-04 22:06:17 +0530253
Jeff Johnson295189b2012-06-20 16:38:30 -0700254 // BTAMP related events
255 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
256 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
257 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
258 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
259
260 WLAN_HAL_ENTER_IMPS_REQ = 76,
261 WLAN_HAL_EXIT_IMPS_REQ = 77,
262 WLAN_HAL_ENTER_BMPS_REQ = 78,
263 WLAN_HAL_EXIT_BMPS_REQ = 79,
264 WLAN_HAL_ENTER_UAPSD_REQ = 80,
265 WLAN_HAL_EXIT_UAPSD_REQ = 81,
266 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
267 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
268 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
269 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
270 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
271 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
272 WLAN_HAL_ENTER_WOWL_REQ = 88,
273 WLAN_HAL_EXIT_WOWL_REQ = 89,
274 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
275 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
276 WLAN_HAL_GET_RSSI_REQ = 92,
277 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
278 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
279
280 WLAN_HAL_ENTER_IMPS_RSP = 95,
281 WLAN_HAL_EXIT_IMPS_RSP = 96,
282 WLAN_HAL_ENTER_BMPS_RSP = 97,
283 WLAN_HAL_EXIT_BMPS_RSP = 98,
284 WLAN_HAL_ENTER_UAPSD_RSP = 99,
285 WLAN_HAL_EXIT_UAPSD_RSP = 100,
286 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
287 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
288 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
289 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
290 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
291 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
292 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
293 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
294 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
295 WLAN_HAL_ENTER_WOWL_RSP = 110,
296 WLAN_HAL_EXIT_WOWL_RSP = 111,
297 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
298 WLAN_HAL_GET_RSSI_RSP = 113,
299 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
300
301 //11k related events
302 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
303 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
304
305 //11R related msgs
306 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
307 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
308
309 //P2P WLAN_FEATURE_P2P
310 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
311 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Dino Mycle8afbac12014-07-04 22:06:17 +0530312
Jeff Johnson295189b2012-06-20 16:38:30 -0700313 //WLAN Dump commands
314 WLAN_HAL_DUMP_COMMAND_REQ = 121,
315 WLAN_HAL_DUMP_COMMAND_RSP = 122,
316
Jeff Johnsone7245742012-09-05 17:12:55 -0700317 //OEM_DATA FEATURE SUPPORT
318 WLAN_HAL_START_OEM_DATA_REQ = 123,
319 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700320
321 //ADD SELF STA REQ and RSP
322 WLAN_HAL_ADD_STA_SELF_REQ = 125,
323 WLAN_HAL_ADD_STA_SELF_RSP = 126,
324
325 //DEL SELF STA SUPPORT
326 WLAN_HAL_DEL_STA_SELF_REQ = 127,
327 WLAN_HAL_DEL_STA_SELF_RSP = 128,
328
329 // Coex Indication
330 WLAN_HAL_COEX_IND = 129,
331
Dino Mycle8afbac12014-07-04 22:06:17 +0530332 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700333 WLAN_HAL_OTA_TX_COMPL_IND = 130,
334
335 //Host Suspend/resume messages
336 WLAN_HAL_HOST_SUSPEND_IND = 131,
337 WLAN_HAL_HOST_RESUME_REQ = 132,
338 WLAN_HAL_HOST_RESUME_RSP = 133,
339
340 WLAN_HAL_SET_TX_POWER_REQ = 134,
341 WLAN_HAL_SET_TX_POWER_RSP = 135,
342 WLAN_HAL_GET_TX_POWER_REQ = 136,
343 WLAN_HAL_GET_TX_POWER_RSP = 137,
344
345 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Dino Mycle8afbac12014-07-04 22:06:17 +0530346
Jeff Johnson295189b2012-06-20 16:38:30 -0700347 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
348 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
349 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
350 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
351 WLAN_HAL_RADAR_DETECT_IND = 143,
352 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
353 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Dino Mycle8afbac12014-07-04 22:06:17 +0530354 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700355
356 /*PNO messages*/
357 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
358 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
359 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
360 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
361 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
362 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Dino Mycle8afbac12014-07-04 22:06:17 +0530363 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700364
365 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
366 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
367 WLAN_HAL_TX_PER_HIT_IND = 156,
Dino Mycle8afbac12014-07-04 22:06:17 +0530368
Jeff Johnson295189b2012-06-20 16:38:30 -0700369 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Dino Mycle8afbac12014-07-04 22:06:17 +0530370 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700371
372 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Dino Mycle8afbac12014-07-04 22:06:17 +0530373 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700374 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Dino Mycle8afbac12014-07-04 22:06:17 +0530375 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700376 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Dino Mycle8afbac12014-07-04 22:06:17 +0530377 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
378 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700379 * Host and Riva code is in sync*/
380 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Dino Mycle8afbac12014-07-04 22:06:17 +0530381
Jeff Johnson295189b2012-06-20 16:38:30 -0700382 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
383 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
384
385 WLAN_HAL_TSM_STATS_REQ = 168,
386 WLAN_HAL_TSM_STATS_RSP = 169,
387
388 // wake reason indication (WOW)
389 WLAN_HAL_WAKE_REASON_IND = 170,
Dino Mycle8afbac12014-07-04 22:06:17 +0530390 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700391 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
392 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
393 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
394 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
395
396 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
397 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
398 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
399
400 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
401 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
402
Anand Kumar012623a2013-01-11 17:00:00 -0800403 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
404 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800405
Anand Kumar012623a2013-01-11 17:00:00 -0800406 WLAN_HAL_P2P_NOA_START_IND = 184,
407
408 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
409 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Dino Mycle8afbac12014-07-04 22:06:17 +0530410
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800411 WLAN_HAL_CLASS_B_STATS_IND = 187,
412 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800413 WLAN_HAL_DHCP_START_IND = 189,
414 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700415 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
416 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530417 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
418 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700419
420 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
421 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
422 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
423
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530424 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
425 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
426 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
427 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
428 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700429 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700430
Kumar Anandf53016f2013-09-04 15:15:53 -0700431 /* Scan Offload APIs */
432 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
433 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
434 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
435 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
436 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
437 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
438 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
439
Leo Chang397deb72013-08-22 11:33:16 -0700440 /* APIs to offload TCP/UDP Heartbeat handshakes */
441 WLAN_HAL_LPHB_CFG_REQ = 211,
442 WLAN_HAL_LPHB_CFG_RSP = 212,
443 WLAN_HAL_LPHB_IND = 213,
444
Yue Maab3ccfc2013-08-14 17:19:08 -0700445 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
446 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
447 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530448
Kumar Anandf53016f2013-09-04 15:15:53 -0700449 // Events to set Per-Band Tx Power Limit
450 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
451 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
452
453 /* Reliable Multicast using Leader Based Protocol */
454 WLAN_HAL_LBP_LEADER_REQ = 219,
455 WLAN_HAL_LBP_LEADER_RSP = 220,
456 WLAN_HAL_LBP_UPDATE_IND = 221,
457
krunal soni2a4728d2013-09-20 21:56:50 -0700458 /* Batchscan */
459 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
460 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
461 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
462 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
463 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
464
465 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
466 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
467
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700468 WLAN_HAL_RATE_UPDATE_IND = 229,
469
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530470 /* Tx Fail for weak link notification */
471 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
472 WLAN_HAL_TX_FAIL_IND = 231,
473
474 /* Multi-hop IP routing offload */
475 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
476
Amar Singhalb41c45b2014-03-21 14:44:14 -0700477 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530478 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800479
Amar Singhalb41c45b2014-03-21 14:44:14 -0700480 /* Fast Roam Offload Synchup request protocol */
481 /* TODO_LFR3 : change this value accordingly before final check-in */
482 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
483 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
484
485 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
486 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
487
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800488 /* Channel Switch Request version 1 */
489 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
490 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
491
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530492 /* 2G4 HT40 OBSS scan */
493 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700494 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
495
496 /* WLAN NAN Messages */
497 WLAN_HAL_NAN_FIRST = 256,
498 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
499 WLAN_HAL_NAN_RSP = 257,
500 WLAN_HAL_NAN_EVT = 258,
501 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
c_hpothu80c30472014-04-14 19:04:48 +0530502 WLAN_HAL_PRINT_REG_INFO_IND = 259,
503
c_hpothua047e572014-05-01 15:03:11 +0530504 WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
505 WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
506
Sunil Dutt8377a382014-05-26 21:18:04 +0530507 /* WLAN LINK LAYER STATS Messages */
508 WLAN_HAL_LL_SET_STATS_REQ = 262,
509 WLAN_HAL_LL_SET_STATS_RSP = 263,
510 WLAN_HAL_LL_GET_STATS_REQ = 264,
511 WLAN_HAL_LL_GET_STATS_RSP = 265,
512 WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
513 WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
514 WLAN_HAL_LL_NOTIFY_STATS = 268,
Dino Mycle8afbac12014-07-04 22:06:17 +0530515 WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
Dino Mycle108eff22014-06-10 09:36:44 +0530516
Dino Mycle8afbac12014-07-04 22:06:17 +0530517 /* WLAN EXT_SCAN Messages */
518 WLAN_HAL_EXT_SCAN_START_REQ = 269,
519 WLAN_HAL_EXT_SCAN_START_RSP = 270,
520 WLAN_HAL_EXT_SCAN_GET_CAP_REQ = 271,
521 WLAN_HAL_EXT_SCAN_GET_CAP_RSP = 272,
522 WLAN_HAL_EXT_SCAN_STOP_REQ = 273,
523 WLAN_HAL_EXT_SCAN_STOP_RSP = 274,
524 WLAN_HAL_EXT_SCAN_GET_SCAN_REQ = 275,
525 WLAN_HAL_EXT_SCAN_GET_SCAN_RSP = 276,
Dino Mycle108eff22014-06-10 09:36:44 +0530526
527 WLAN_HAL_BSSID_HOTLIST_SET_REQ = 277,
528 WLAN_HAL_BSSID_HOTLIST_SET_RSP = 278,
529 WLAN_HAL_BSSID_HOTLIST_RESET_REQ = 279,
530 WLAN_HAL_BSSID_HOTLIST_RESET_RSP = 280,
531
532 WLAN_HAL_SIG_RSSI_SET_REQ = 281,
533 WLAN_HAL_SIG_RSSI_SET_RSP = 282,
534 WLAN_HAL_SIG_RSSI_RESET_REQ = 283,
535 WLAN_HAL_SIG_RSSI_RESET_RSP = 284,
536
Dino Mycle8afbac12014-07-04 22:06:17 +0530537 WLAN_HAL_EXT_SCAN_RESULT_IND = 285,
Dino Mycle108eff22014-06-10 09:36:44 +0530538 WLAN_HAL_BSSID_HOTLIST_RESULT_IND = 286,
539 WLAN_HAL_SIG_RSSI_RESULT_IND = 287,
Dino Mycle8afbac12014-07-04 22:06:17 +0530540 WLAN_HAL_EXT_SCAN_PROGRESS_IND = 288,
541 WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND = 289,
Atul Mittal53419ed2014-08-03 19:41:23 +0530542 WLAN_HAL_TDLS_CHAN_SWITCH_REQ = 290,
543 WLAN_HAL_TDLS_CHAN_SWITCH_RSP = 291,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +0530544 WLAN_HAL_MAC_SPOOFED_SCAN_REQ = 292,
545 WLAN_HAL_MAC_SPOOFED_SCAN_RSP = 293,
Srinivas Dasari42584632014-11-26 20:37:19 +0530546 /* LGE DISA encrypt-decrypt Messages */
547 WLAN_HAL_ENCRYPT_DATA_REQ = 294,
548 WLAN_HAL_ENCRYPT_DATA_RSP = 295,
Sunil Dutt8377a382014-05-26 21:18:04 +0530549
Abhishek Singh725c1582014-11-24 11:47:48 +0530550 WLAN_HAL_FW_STATS_REQ = 296,
551 WLAN_HAL_FW_STATS_RSP = 297,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530552 WLAN_HAL_FW_LOGGING_INIT_REQ = 298,
553 WLAN_HAL_FW_LOGGING_INIT_RSP = 299,
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +0530554 WLAN_HAL_GET_FRAME_LOG_REQ = 300,
555 WLAN_HAL_GET_FRAME_LOG_RSP = 301,
Abhishek Singh725c1582014-11-24 11:47:48 +0530556
Abhishek Singhbc310882015-05-22 15:17:02 +0530557 /* Monitor Mode */
558 WLAN_HAL_ENABLE_MONITOR_MODE_REQ = 302,
559 WLAN_HAL_ENABLE_MONITOR_MODE_RSP = 303,
560
561 WLAN_HAL_DISABLE_MONITOR_MODE_REQ = 304,
562 WLAN_HAL_DISABLE_MONITOR_MODE_RSP = 305,
Katya Nigamf0511f62015-05-05 16:40:57 +0530563
Abhishek Singhbc310882015-05-22 15:17:02 +0530564 WLAN_HAL_SET_RTS_CTS_HTVHT_IND = 306,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530565 // FW Logging
566 WLAN_HAL_FATAL_EVENT_LOGGING_REQ = 307,
567 WLAN_HAL_FATAL_EVENT_LOGGING_RSP = 308,
568 WLAN_HAL_FW_MEMORY_DUMP_REQ = 309,
569 WLAN_HAL_FW_MEMORY_DUMP_RSP = 310,
570 WLAN_HAL_FW_LOGGING_DXE_DONE_IND = 311,
Sachin Ahuja75c1fd72015-08-28 15:46:46 +0530571 WLAN_HAL_LOST_LINK_PARAMETERS_IND = 312,
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +0530572 WLAN_HAL_SEND_FREQ_RANGE_CONTROL_IND = 313,
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +0530573
574 WLAN_HAL_SSID_HOTLIST_SET_REQ = 314,
575 WLAN_HAL_SSID_HOTLIST_SET_RSP = 315,
576 WLAN_HAL_SSID_HOTLIST_RESET_REQ = 316,
577 WLAN_HAL_SSID_HOTLIST_RESET_RSP = 317,
578
579 WLAN_HAL_SSID_HOTLIST_RESULT_IND = 318,
580
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +0530581 /* WFD Session Information to start/stop Scan */
582 WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ = 319,
583
Gupta, Kapil042e9fb2015-09-30 13:34:22 +0530584 WLAN_HAL_START_RSSI_MONITORING_REQ = 321,
585 WLAN_HAL_START_RSSI_MONITORING_RSP = 322,
586 WLAN_HAL_RSSI_MONITORING_IND = 323,
587 WLAN_HAL_STOP_RSSI_MONITORING_REQ = 324,
588 WLAN_HAL_STOP_RSSI_MONITORING_RSP = 325,
589
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +0530590 //RTT3 SUPPORT
591 WLAN_HAL_START_OEM_DATA_REQ_IND_NEW = 326,
592 WLAN_HAL_START_OEM_DATA_RSP_IND_NEW = 327,
593
Arun Khandavalliafc16432015-10-16 20:11:31 +0530594 WLAN_HAL_WIFI_CONFIG_SET_PARAMS_REQ = 328,
595 WLAN_HAL_WIFI_CONFIG_SET_PARAMS_RSP = 329,
596
Sunil Dutt8377a382014-05-26 21:18:04 +0530597 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700598}tHalHostMsgType;
599
Jeff Johnsone7245742012-09-05 17:12:55 -0700600/* Enumeration for Version */
601typedef enum
602{
603 WLAN_HAL_MSG_VERSION0 = 0,
604 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800605 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
606 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700607}tHalHostMsgVersion;
608
Jeff Johnson295189b2012-06-20 16:38:30 -0700609/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530610typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700611{
612 eANI_BOOLEAN_FALSE = 0,
613 eANI_BOOLEAN_TRUE,
614 eANI_BOOLEAN_OFF = 0,
615 eANI_BOOLEAN_ON = 1,
616 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
617} eAniBoolean;
618
619typedef enum
620{
621 eDRIVER_TYPE_PRODUCTION = 0,
622 eDRIVER_TYPE_MFG = 1,
623 eDRIVER_TYPE_DVT = 2,
624 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
625} tDriverType;
626
627typedef enum
628{
629 HAL_STOP_TYPE_SYS_RESET,
630 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
631 HAL_STOP_TYPE_RF_KILL,
632 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
633}tHalStopType;
634
635typedef enum
636{
637 eHAL_SYS_MODE_NORMAL,
638 eHAL_SYS_MODE_LEARN,
639 eHAL_SYS_MODE_SCAN,
640 eHAL_SYS_MODE_PROMISC,
641 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700642 eHAL_SYS_MODE_ROAM_SCAN,
643 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700644 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700645 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
646} eHalSysMode;
647
648typedef enum
649{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800650 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
651 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
652 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
653 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
654 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
655 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
656 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
657 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
658 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700659 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800660 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
661} eHalChanSwitchSource;
662
663typedef enum
664{
Jeff Johnson295189b2012-06-20 16:38:30 -0700665 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
666 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
667 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
668 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700669#ifdef WLAN_FEATURE_11AC
670 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
671 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
672 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
673 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
674 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
675 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
676 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
677#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700678 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
679}ePhyChanBondState;
680
681// Spatial Multiplexing(SM) Power Save mode
682typedef enum eSirMacHTMIMOPowerSaveState
683{
684 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
685 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
686 eSIR_HT_MIMO_PS_NA = 2, // reserved
687 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
688 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
689} tSirMacHTMIMOPowerSaveState;
690
691/* each station added has a rate mode which specifies the sta attributes */
692typedef enum eStaRateMode {
693 eSTA_TAURUS = 0,
694 eSTA_TITAN,
695 eSTA_POLARIS,
696 eSTA_11b,
697 eSTA_11bg,
698 eSTA_11a,
699 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700700#ifdef WLAN_FEATURE_11AC
701 eSTA_11ac,
702#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700703 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
704} tStaRateMode, *tpStaRateMode;
705
706#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
707#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
708#define SIR_NUM_POLARIS_RATES 3 //72,96,108
709
710#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
711
712
713typedef enum eSirBssType
714{
715 eSIR_INFRASTRUCTURE_MODE,
716 eSIR_INFRA_AP_MODE, //Added for softAP support
717 eSIR_IBSS_MODE,
718 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
719 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
720 eSIR_AUTO_MODE,
721 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
722} tSirBssType;
723
724typedef enum eSirNwType
725{
726 eSIR_11A_NW_TYPE,
727 eSIR_11B_NW_TYPE,
728 eSIR_11G_NW_TYPE,
729 eSIR_11N_NW_TYPE,
730 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
731} tSirNwType;
732
733typedef tANI_U16 tSirMacBeaconInterval;
734
735#define SIR_MAC_RATESET_EID_MAX 12
736
737typedef enum eSirMacHTOperatingMode
738{
739 eSIR_HT_OP_MODE_PURE, // No Protection
740 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
741 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
742 eSIR_HT_OP_MODE_MIXED, // Protection is required
743 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
744} tSirMacHTOperatingMode;
745
Jeff Johnson295189b2012-06-20 16:38:30 -0700746/// Encryption type enum used with peer
747typedef enum eAniEdType
748{
749 eSIR_ED_NONE,
750 eSIR_ED_WEP40,
751 eSIR_ED_WEP104,
752 eSIR_ED_TKIP,
753 eSIR_ED_CCMP,
754 eSIR_ED_WPI,
755 eSIR_ED_AES_128_CMAC,
756 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
757} tAniEdType;
758
759#define WLAN_MAX_KEY_RSC_LEN 16
760#define WLAN_WAPI_KEY_RSC_LEN 16
761
762/// MAX key length when ULA is used
763#define SIR_MAC_MAX_KEY_LENGTH 32
764#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
765
766/// Enum to specify whether key is used
767/// for TX only, RX only or both
768typedef enum eAniKeyDirection
769{
770 eSIR_TX_ONLY,
771 eSIR_RX_ONLY,
772 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700773 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700774 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
775} tAniKeyDirection;
776
777typedef enum eAniWepType
778{
779 eSIR_WEP_STATIC,
780 eSIR_WEP_DYNAMIC,
781 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
782} tAniWepType;
783
784typedef enum eSriLinkState {
785
786 eSIR_LINK_IDLE_STATE = 0,
787 eSIR_LINK_PREASSOC_STATE = 1,
788 eSIR_LINK_POSTASSOC_STATE = 2,
789 eSIR_LINK_AP_STATE = 3,
790 eSIR_LINK_IBSS_STATE = 4,
791
792 /* BT-AMP Case */
793 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
794 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
795 eSIR_LINK_BTAMP_AP_STATE = 7,
796 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530797
Jeff Johnson295189b2012-06-20 16:38:30 -0700798 /* Reserved for HAL Internal Use */
799 eSIR_LINK_LEARN_STATE = 9,
800 eSIR_LINK_SCAN_STATE = 10,
801 eSIR_LINK_FINISH_SCAN_STATE = 11,
802 eSIR_LINK_INIT_CAL_STATE = 12,
803 eSIR_LINK_FINISH_CAL_STATE = 13,
804#ifdef WLAN_FEATURE_P2P
805 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530806 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700807#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700808#ifdef WLAN_FEATURE_ROAM_OFFLOAD
809 eSIR_LINK_FT_PREASSOC_STATE = 16,
810#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700811 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
812} tSirLinkState;
813
814typedef enum
815{
816 HAL_SUMMARY_STATS_INFO = 0x00000001,
817 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
818 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
819 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
820 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530821 HAL_PER_STA_STATS_INFO = 0x00000020,
822 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700823}eHalStatsMask;
824
825/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530826typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700827{
828 BTAMP_EVENT_CONNECTION_START,
829 BTAMP_EVENT_CONNECTION_STOP,
830 BTAMP_EVENT_CONNECTION_TERMINATED,
831 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
832} tBtAmpEventType;
833
834//***************************************************************
835
836
837/*******************PE Statistics*************************/
838typedef enum
839{
840 PE_SUMMARY_STATS_INFO = 0x00000001,
841 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
842 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
843 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
844 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
845 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530846 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700847 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
848}ePEStatsMask;
849
Sunil Dutt8377a382014-05-26 21:18:04 +0530850
851/******************************LINK LAYER Statitics**********************/
852
853typedef int wifi_radio;
854typedef int wifi_channel;
855typedef int wifi_tx_rate;
856
857/* channel operating width */
858typedef enum {
859 WIFI_CHAN_WIDTH_20 = 0,
860 WIFI_CHAN_WIDTH_40 = 1,
861 WIFI_CHAN_WIDTH_80 = 2,
862 WIFI_CHAN_WIDTH_160 = 3,
863 WIFI_CHAN_WIDTH_80P80 = 4,
864 WIFI_CHAN_WIDTH_5 = 5,
865 WIFI_CHAN_WIDTH_10 = 6,
866} wifi_channel_width;
867
868typedef enum {
869 WIFI_DISCONNECTED = 0,
870 WIFI_AUTHENTICATING = 1,
871 WIFI_ASSOCIATING = 2,
872 WIFI_ASSOCIATED = 3,
873 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
874 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
875} wifi_connection_state;
876
877typedef enum {
878 WIFI_ROAMING_IDLE = 0,
879 WIFI_ROAMING_ACTIVE = 1,
880} wifi_roam_state;
881
882typedef enum {
883 WIFI_INTERFACE_STA = 0,
884 WIFI_INTERFACE_SOFTAP = 1,
885 WIFI_INTERFACE_IBSS = 2,
886 WIFI_INTERFACE_P2P_CLIENT = 3,
887 WIFI_INTERFACE_P2P_GO = 4,
888 WIFI_INTERFACE_NAN = 5,
889 WIFI_INTERFACE_MESH = 6,
890 } wifi_interface_mode;
891
892#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
893#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
894#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
895#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
896#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
897#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
898
899typedef PACKED_PRE struct PACKED_POST
900{
901 wifi_interface_mode mode; // interface mode
902 tANI_U8 mac_addr[6]; // interface mac address (self)
903 wifi_connection_state state; // connection state (valid for STA, CLI only)
904 wifi_roam_state roaming; // roaming state
905 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
906 tANI_U8 ssid[33]; // null terminated SSID
907 tANI_U8 bssid[6]; // bssid
908 tANI_U8 ap_country_str[3]; // country string advertised by AP
909 tANI_U8 country_str[3]; // country string for this association
910} wifi_interface_info;
911
912/* channel information */
913typedef PACKED_PRE struct PACKED_POST
914{
915 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
916 wifi_channel center_freq; // primary 20 MHz channel
917 wifi_channel center_freq0; // center frequency (MHz) first segment
918 wifi_channel center_freq1; // center frequency (MHz) second segment
919} wifi_channel_info;
920
921/* wifi rate info */
922typedef PACKED_PRE struct PACKED_POST
923{
924 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
925 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
926 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
927 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
928 // HT/VHT it would be mcs index
929 tANI_U32 reserved :16; // reserved
930 tANI_U32 bitrate; // units of 100 Kbps
931} wifi_rate;
932
933/* channel statistics */
934typedef PACKED_PRE struct PACKED_POST
935{
936 wifi_channel_info channel; // channel
937 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
938 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
939} wifi_channel_stats;
940
941/* radio statistics */
942typedef PACKED_PRE struct PACKED_POST
943{
944 wifi_radio radio; // wifi radio (if multiple radio supported)
945 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
946 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
947 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
948 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
949 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
950 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
951 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
952 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
953 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
954 tANI_U32 num_channels; // number of channels
955 wifi_channel_stats channels[1]; // channel statistics
956} wifi_radio_stat;
957
958/* per rate statistics */
959typedef PACKED_PRE struct PACKED_POST
960{
961 wifi_rate rate; // rate information *
962 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
963 tANI_U32 rx_mpdu; // number of received data pkts
964 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
965 tANI_U32 retries; // total number of data pkt retries *
966 tANI_U32 retries_short; // number of short data pkt retries
967 tANI_U32 retries_long; // number of long data pkt retries
968} wifi_rate_stat;
969
970/* access categories */
971typedef enum {
972 WIFI_AC_VO = 0,
973 WIFI_AC_VI = 1,
974 WIFI_AC_BE = 2,
975 WIFI_AC_BK = 3,
976 WIFI_AC_MAX = 4,
977} wifi_traffic_ac;
978
979/* wifi peer type */
980typedef enum
981{
982 WIFI_PEER_STA,
983 WIFI_PEER_AP,
984 WIFI_PEER_P2P_GO,
985 WIFI_PEER_P2P_CLIENT,
986 WIFI_PEER_NAN,
987 WIFI_PEER_TDLS,
988 WIFI_PEER_INVALID,
989} wifi_peer_type;
990
991/* per peer statistics */
992typedef PACKED_PRE struct PACKED_POST
993{
994 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
995 tANI_U8 peer_mac_address[6]; // mac address
996 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
997 tANI_U32 num_rate; // number of rates
998 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
999} wifi_peer_info;
1000
1001/* per access category statistics */
1002typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301003{
1004 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
1005 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
1006 tANI_U32 rx_mpdu; // number of received unicast mpdus
1007 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1008 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1009 tANI_U32 rx_mcast; // number of received multicast data packets
1010 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1011 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1012 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1013 tANI_U32 retries; // total number of data pkt retries
1014 tANI_U32 retries_short; // number of short data pkt retries
1015 tANI_U32 retries_long; // number of long data pkt retries
1016 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1017 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1018 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1019 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1020} wifi_wmm_ac_stat;
1021
Mukul Sharma03f86492015-10-20 16:10:13 +05301022typedef PACKED_PRE struct PACKED_POST
1023{
1024 tANI_U64 average_tsf_offset;
1025 tANI_U32 leaky_ap_avg_num_frames_leaked;
1026 tANI_U32 leaky_ap_guard_time;
1027 tANI_U32 leaky_ap_detected;
1028} wifi_iface_leaky_ap_info;
1029
Sunil Dutt8377a382014-05-26 21:18:04 +05301030/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1031typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301032{
1033 wifi_interface_info info; // current state of the interface
1034 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1035 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1036 tANI_U32 mgmt_action_rx; // action frames received count
1037 tANI_U32 mgmt_action_tx; // action frames transmit count
1038 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1039 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1040 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1041 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
Mukul Sharma03f86492015-10-20 16:10:13 +05301042 wifi_iface_leaky_ap_info leakyApInfo;
Sunil Dutt8377a382014-05-26 21:18:04 +05301043} wifi_iface_stat;
1044
1045/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1046typedef PACKED_PRE struct PACKED_POST
1047{
1048 tANI_U32 num_peers; // number of peers
1049 wifi_peer_info peer_info[1]; // per peer statistics
1050} wifi_peer_stat;
1051
1052/* wifi statistics bitmap for getting statistics */
1053#define WMI_LINK_STATS_RADIO 0x00000001
1054#define WMI_LINK_STATS_IFACE 0x00000002
1055#define WMI_LINK_STATS_ALL_PEER 0x00000004
1056#define WMI_LINK_STATS_PER_PEER 0x00000008
1057
1058/* wifi statistics bitmap for clearing statistics */
1059#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1060#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1061#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1062#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1063#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1064#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1065#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1066#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1067
1068
Jeff Johnson295189b2012-06-20 16:38:30 -07001069/*---------------------------------------------------------------------------
1070 Message definitons - All the messages below need to be packed
1071 ---------------------------------------------------------------------------*/
1072
1073#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1074#pragma pack(push, 1)
1075#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1076#pragma pack(1)
1077#else
1078#endif
1079
1080/// Definition for HAL API Version.
1081typedef PACKED_PRE struct PACKED_POST
1082{
1083 tANI_U8 revision;
1084 tANI_U8 version;
1085 tANI_U8 minor;
1086 tANI_U8 major;
1087} tWcnssWlanVersion, *tpWcnssWlanVersion;
1088
1089/// Definition for Encryption Keys
1090typedef PACKED_PRE struct PACKED_POST
1091{
1092 tANI_U8 keyId;
1093 tANI_U8 unicast; // 0 for multicast
1094 tAniKeyDirection keyDirection;
1095 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1096 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1097 tANI_U16 keyLength;
1098 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1099} tSirKeys, *tpSirKeys;
1100
1101
1102//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1103typedef PACKED_PRE struct PACKED_POST
1104{
1105 /*STA Index*/
1106 tANI_U16 staIdx;
1107
1108 /*Encryption Type used with peer*/
1109 tAniEdType encType;
1110
1111 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301112 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001113
1114 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1115 tANI_U8 defWEPIdx;
1116
Jeff Johnson295189b2012-06-20 16:38:30 -07001117 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301118 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1119
Jeff Johnson295189b2012-06-20 16:38:30 -07001120 /*Control for Replay Count, 1= Single TID based replay count on Tx
1121 0 = Per TID based replay count on TX */
1122 tANI_U8 singleTidRc;
1123
1124} tSetStaKeyParams, *tpSetStaKeyParams;
1125
1126
1127
1128/* 4-byte control message header used by HAL*/
1129typedef PACKED_PRE struct PACKED_POST
1130{
Jeff Johnsone7245742012-09-05 17:12:55 -07001131 tHalHostMsgType msgType:16;
1132 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001133 tANI_U32 msgLen;
1134} tHalMsgHeader, *tpHalMsgHeader;
1135
1136/* Config format required by HAL for each CFG item*/
1137typedef PACKED_PRE struct PACKED_POST
1138{
1139 /* Cfg Id. The Id required by HAL is exported by HAL
1140 * in shared header file between UMAC and HAL.*/
1141 tANI_U16 uCfgId;
1142
Dino Mycle8afbac12014-07-04 22:06:17 +05301143 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001144 * in the TLV format.*/
1145 tANI_U16 uCfgLen;
1146
1147 /* Padding bytes for unaligned address's */
1148 tANI_U16 uCfgPadBytes;
1149
1150 /* Reserve bytes for making cfgVal to align address */
1151 tANI_U16 uCfgReserve;
1152
1153 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1154 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1155} tHalCfg, *tpHalCfg;
1156
1157/*---------------------------------------------------------------------------
1158 WLAN_HAL_START_REQ
1159---------------------------------------------------------------------------*/
1160
1161typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1162{
1163 /* Drive Type - Production or FTM etc */
1164 tDriverType driverType;
1165
1166 /*Length of the config buffer*/
1167 tANI_U32 uConfigBufferLen;
1168
Dino Mycle8afbac12014-07-04 22:06:17 +05301169 /* Following this there is a TLV formatted buffer of length
1170 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001171 * The TLV is expected to be formatted like this:
1172 * 0 15 31 31+CFG_LEN-1 length-1
1173 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1174 */
1175} tHalMacStartParameters, *tpHalMacStartParameters;
1176
1177typedef PACKED_PRE struct PACKED_POST
1178{
1179 /* Note: The length specified in tHalMacStartReqMsg messages should be
1180 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1181 tHalMsgHeader header;
1182 tHalMacStartParameters startReqParams;
1183} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1184
1185/*---------------------------------------------------------------------------
1186 WLAN_HAL_START_RSP
1187---------------------------------------------------------------------------*/
1188
1189typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1190{
1191 /*success or failure */
1192 tANI_U16 status;
1193
1194 /*Max number of STA supported by the device*/
1195 tANI_U8 ucMaxStations;
1196
1197 /*Max number of BSS supported by the device*/
1198 tANI_U8 ucMaxBssids;
1199
1200 /*API Version */
1201 tWcnssWlanVersion wcnssWlanVersion;
1202
1203 /*CRM build information */
1204 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1205
1206 /*hardware/chipset/misc version information */
1207 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1208
1209} tHalMacStartRspParams, *tpHalMacStartRspParams;
1210
1211typedef PACKED_PRE struct PACKED_POST
1212{
1213 tHalMsgHeader header;
1214 tHalMacStartRspParams startRspParams;
1215} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1216
1217/*---------------------------------------------------------------------------
1218 WLAN_HAL_STOP_REQ
1219---------------------------------------------------------------------------*/
1220
1221typedef PACKED_PRE struct PACKED_POST
1222{
1223 /*The reason for which the device is being stopped*/
1224 tHalStopType reason;
1225
1226}tHalMacStopReqParams, *tpHalMacStopReqParams;
1227
1228typedef PACKED_PRE struct PACKED_POST
1229{
1230 tHalMsgHeader header;
1231 tHalMacStopReqParams stopReqParams;
1232} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1233
1234/*---------------------------------------------------------------------------
1235 WLAN_HAL_STOP_RSP
1236---------------------------------------------------------------------------*/
1237
1238typedef PACKED_PRE struct PACKED_POST
1239{
1240 /*success or failure */
1241 tANI_U32 status;
1242
1243}tHalMacStopRspParams, *tpHalMacStopRspParams;
1244
1245typedef PACKED_PRE struct PACKED_POST
1246{
1247 tHalMsgHeader header;
1248 tHalMacStopRspParams stopRspParams;
1249} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1250
1251/*---------------------------------------------------------------------------
1252 WLAN_HAL_UPDATE_CFG_REQ
1253---------------------------------------------------------------------------*/
1254
1255typedef PACKED_PRE struct PACKED_POST
1256{
1257 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1258 tANI_U32 uConfigBufferLen;
1259
Dino Mycle8afbac12014-07-04 22:06:17 +05301260 /* Following this there is a TLV formatted buffer of length
1261 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001262 * The TLV is expected to be formatted like this:
1263 * 0 15 31 31+CFG_LEN-1 length-1
1264 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1265 */
1266} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1267
1268typedef PACKED_PRE struct PACKED_POST
1269{
1270 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1271 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1272 tHalMsgHeader header;
1273 tHalUpdateCfgReqParams updateCfgReqParams;
1274} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1275
1276/*---------------------------------------------------------------------------
1277 WLAN_HAL_UPDATE_CFG_RSP
1278---------------------------------------------------------------------------*/
1279
1280typedef PACKED_PRE struct PACKED_POST
1281{
1282 /* success or failure */
1283 tANI_U32 status;
1284
1285}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1286
1287typedef PACKED_PRE struct PACKED_POST
1288{
1289 tHalMsgHeader header;
1290 tHalUpdateCfgRspParams updateCfgRspParams;
1291} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1292
1293/*---------------------------------------------------------------------------
1294 WLAN_HAL_INIT_SCAN_REQ
1295---------------------------------------------------------------------------*/
1296
1297/// Frame control field format (2 bytes)
1298typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1299{
1300
1301#ifndef ANI_LITTLE_BIT_ENDIAN
1302
1303 tANI_U8 subType :4;
1304 tANI_U8 type :2;
1305 tANI_U8 protVer :2;
1306
1307 tANI_U8 order :1;
1308 tANI_U8 wep :1;
1309 tANI_U8 moreData :1;
1310 tANI_U8 powerMgmt :1;
1311 tANI_U8 retry :1;
1312 tANI_U8 moreFrag :1;
1313 tANI_U8 fromDS :1;
1314 tANI_U8 toDS :1;
1315
1316#else
1317
1318 tANI_U8 protVer :2;
1319 tANI_U8 type :2;
1320 tANI_U8 subType :4;
1321
1322 tANI_U8 toDS :1;
1323 tANI_U8 fromDS :1;
1324 tANI_U8 moreFrag :1;
1325 tANI_U8 retry :1;
1326 tANI_U8 powerMgmt :1;
1327 tANI_U8 moreData :1;
1328 tANI_U8 wep :1;
1329 tANI_U8 order :1;
1330
1331#endif
1332
1333} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1334
1335/// Sequence control field
1336typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1337{
1338 tANI_U8 fragNum : 4;
1339 tANI_U8 seqNumLo : 4;
1340 tANI_U8 seqNumHi : 8;
1341} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1342
1343/// Management header format
1344typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1345{
1346 tSirMacFrameCtl fc;
1347 tANI_U8 durationLo;
1348 tANI_U8 durationHi;
1349 tANI_U8 da[6];
1350 tANI_U8 sa[6];
1351 tANI_U8 bssId[6];
1352 tSirMacSeqCtl seqControl;
1353} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1354
1355/// Scan Entry to hold active BSS idx's
1356typedef __ani_attr_pre_packed struct sSirScanEntry
1357{
1358 tANI_U8 bssIdx[HAL_NUM_BSSID];
1359 tANI_U8 activeBSScnt;
1360}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1361
1362typedef PACKED_PRE struct PACKED_POST {
1363
1364 /*LEARN - AP Role
1365 SCAN - STA Role*/
1366 eHalSysMode scanMode;
1367
1368 /*BSSID of the BSS*/
1369 tSirMacAddr bssid;
1370
1371 /*Whether BSS needs to be notified*/
1372 tANI_U8 notifyBss;
1373
1374 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1375 CTS to Self). Must always be a valid frame type.*/
1376 tANI_U8 frameType;
1377
1378 /*UMAC has the option of passing the MAC frame to be used for notifying
1379 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1380 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1381 frameType.*/
1382 tANI_U8 frameLength;
1383
Dino Mycle8afbac12014-07-04 22:06:17 +05301384 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001385 is non-zero. */
1386 tSirMacMgmtHdr macMgmtHdr;
1387
1388 /*Entry to hold number of active BSS idx's*/
1389 tSirScanEntry scanEntry;
1390
1391} tInitScanParams, * tpInitScanParams;
1392
1393typedef PACKED_PRE struct PACKED_POST
1394{
1395 tHalMsgHeader header;
1396 tInitScanParams initScanParams;
1397} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1398
1399typedef PACKED_PRE struct PACKED_POST {
1400
1401 /*LEARN - AP Role
1402 SCAN - STA Role*/
1403 eHalSysMode scanMode;
1404
1405 /*BSSID of the BSS*/
1406 tSirMacAddr bssid;
1407
1408 /*Whether BSS needs to be notified*/
1409 tANI_U8 notifyBss;
1410
1411 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1412 CTS to Self). Must always be a valid frame type.*/
1413 tANI_U8 frameType;
1414
1415 /*UMAC has the option of passing the MAC frame to be used for notifying
1416 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1417 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1418 frameType.*/
1419 tANI_U8 frameLength;
1420
Dino Mycle8afbac12014-07-04 22:06:17 +05301421 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001422 is non-zero. */
1423 tSirMacMgmtHdr macMgmtHdr;
1424
1425 /*Entry to hold number of active BSS idx's*/
1426 tSirScanEntry scanEntry;
1427
1428 /* Single NoA usage in Scanning */
1429 tANI_U8 useNoA;
1430
1431 /* Indicates the scan duration (in ms) */
1432 tANI_U16 scanDuration;
1433
1434} tInitScanConParams, * tpInitScanConParams;
1435
1436typedef PACKED_PRE struct PACKED_POST
1437{
1438 tHalMsgHeader header;
1439 tInitScanConParams initScanParams;
1440} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1441
1442
1443/*---------------------------------------------------------------------------
1444 WLAN_HAL_INIT_SCAN_RSP
1445---------------------------------------------------------------------------*/
1446
1447typedef PACKED_PRE struct PACKED_POST
1448{
1449 /*success or failure */
1450 tANI_U32 status;
1451
1452}tHalInitScanRspParams, *tpHalInitScanRspParams;
1453
1454typedef PACKED_PRE struct PACKED_POST
1455{
1456 tHalMsgHeader header;
1457 tHalInitScanRspParams initScanRspParams;
1458} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1459
1460/*---------------------------------------------------------------------------
1461 WLAN_HAL_START_SCAN_REQ
1462---------------------------------------------------------------------------*/
1463
Dino Mycle8afbac12014-07-04 22:06:17 +05301464typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001465{
1466 /*Indicates the channel to scan*/
1467 tANI_U8 scanChannel;
1468
1469 } tStartScanParams, * tpStartScanParams;
1470
1471typedef PACKED_PRE struct PACKED_POST
1472{
1473 tHalMsgHeader header;
1474 tStartScanParams startScanParams;
1475} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1476
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001477typedef PACKED_PRE struct PACKED_POST
1478{
1479 tHalMsgHeader header;
1480} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1481
Jeff Johnson295189b2012-06-20 16:38:30 -07001482/*---------------------------------------------------------------------------
1483 WLAN_HAL_START_SCAN_RSP
1484---------------------------------------------------------------------------*/
1485
1486typedef PACKED_PRE struct PACKED_POST
1487{
1488 /*success or failure */
1489 tANI_U32 status;
1490
1491 tANI_U32 startTSF[2];
1492 tPowerdBm txMgmtPower;
1493
1494}tHalStartScanRspParams, *tpHalStartScanRspParams;
1495
1496typedef PACKED_PRE struct PACKED_POST
1497{
1498 tHalMsgHeader header;
1499 tHalStartScanRspParams startScanRspParams;
1500} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1501
1502/*---------------------------------------------------------------------------
1503 WLAN_HAL_END_SCAN_REQ
1504---------------------------------------------------------------------------*/
1505
1506typedef PACKED_PRE struct PACKED_POST
1507{
1508 /*Indicates the channel to stop scanning. Not used really. But retained
1509 for symmetry with "start Scan" message. It can also help in error
1510 check if needed.*/
1511 tANI_U8 scanChannel;
1512
1513} tEndScanParams, *tpEndScanParams;
1514
1515typedef PACKED_PRE struct PACKED_POST
1516{
1517 tHalMsgHeader header;
1518 tEndScanParams endScanParams;
1519} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1520
1521/*---------------------------------------------------------------------------
1522 WLAN_HAL_END_SCAN_RSP
1523---------------------------------------------------------------------------*/
1524
1525typedef PACKED_PRE struct PACKED_POST
1526{
1527 /*success or failure */
1528 tANI_U32 status;
1529
1530}tHalEndScanRspParams, *tpHalEndScanRspParams;
1531
1532typedef PACKED_PRE struct PACKED_POST
1533{
1534 tHalMsgHeader header;
1535 tHalEndScanRspParams endScanRspParams;
1536} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1537
1538/*---------------------------------------------------------------------------
1539 WLAN_HAL_FINISH_SCAN_REQ
1540---------------------------------------------------------------------------*/
1541
1542typedef PACKED_PRE struct PACKED_POST
1543{
1544 /* Identifies the operational state of the AP/STA
1545 * LEARN - AP Role SCAN - STA Role */
1546 eHalSysMode scanMode;
1547
1548 /*Operating channel to tune to.*/
1549 tANI_U8 currentOperChannel;
1550
1551 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1552 40 MHz extension channel in combination with the control channel*/
1553 ePhyChanBondState cbState;
1554
1555 /*BSSID of the BSS*/
1556 tSirMacAddr bssid;
1557
1558 /*Whether BSS needs to be notified*/
1559 tANI_U8 notifyBss;
1560
1561 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1562 CTS to Self). Must always be a valid frame type.*/
1563 tANI_U8 frameType;
1564
1565 /*UMAC has the option of passing the MAC frame to be used for notifying
1566 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1567 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1568 frameType.*/
1569 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301570
1571 /*Following the framelength there is a MAC frame buffer if frameLength
1572 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001573 tSirMacMgmtHdr macMgmtHdr;
1574
1575 /*Entry to hold number of active BSS idx's*/
1576 tSirScanEntry scanEntry;
1577
1578} tFinishScanParams, *tpFinishScanParams;
1579
1580typedef PACKED_PRE struct PACKED_POST
1581{
1582 tHalMsgHeader header;
1583 tFinishScanParams finishScanParams;
1584} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1585
1586/*---------------------------------------------------------------------------
1587 WLAN_HAL_FINISH_SCAN_RSP
1588---------------------------------------------------------------------------*/
1589
1590typedef PACKED_PRE struct PACKED_POST
1591{
1592 /*success or failure */
1593 tANI_U32 status;
1594
1595}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1596
1597typedef PACKED_PRE struct PACKED_POST
1598{
1599 tHalMsgHeader header;
1600 tHalFinishScanRspParams finishScanRspParams;
1601} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1602
Srinivas Dasari42584632014-11-26 20:37:19 +05301603typedef PACKED_PRE struct PACKED_POST
1604{
1605 tSetStaKeyParams keyParams;
1606 uint8 pn[6];
1607} tHalEncConfigParams;
1608
1609typedef PACKED_PRE struct PACKED_POST
1610{
1611 uint16 length;
1612 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1613} tHalDisaPayload;
1614
1615typedef PACKED_PRE struct PACKED_POST
1616{
1617#ifdef BYTE_ORDER_BIG_ENDIAN
1618 uint8 reserved1 : 1;
1619 uint8 ackpolicy : 2;
1620 uint8 eosp : 1;
1621 uint8 tid : 4;
1622
1623 uint8 appsbufferstate : 8;
1624#else
1625 uint8 appsbufferstate : 8;
1626
1627 uint8 tid : 4;
1628 uint8 eosp : 1;
1629 uint8 ackpolicy : 2;
1630 uint8 reserved1 : 1;
1631#endif
1632} tHalQosCtrlFieldType;
1633
1634typedef PACKED_PRE struct PACKED_POST
1635 {
1636#ifdef BYTE_ORDER_BIG_ENDIAN
1637 uint16 subtype : 4;
1638 uint16 type : 2;
1639 uint16 protocol : 2;
1640
1641 uint16 order : 1;
1642 uint16 wep : 1;
1643 uint16 moredata : 1;
1644 uint16 pm : 1;
1645 uint16 retry : 1;
1646 uint16 morefrag : 1;
1647 uint16 fromds : 1;
1648 uint16 tods : 1;
1649#else
1650
1651 uint16 tods : 1;
1652 uint16 fromds : 1;
1653 uint16 morefrag : 1;
1654 uint16 retry : 1;
1655 uint16 pm : 1;
1656 uint16 moredata : 1;
1657 uint16 wep : 1;
1658 uint16 order : 1;
1659
1660 uint16 protocol : 2;
1661 uint16 type : 2;
1662 uint16 subtype : 4;
1663#endif
1664} tHalFrmCtrlType;
1665
1666typedef PACKED_PRE struct PACKED_POST
1667{
1668 /* Frame control field */
1669 tHalFrmCtrlType fc;
1670 /* Duration ID */
1671 uint16 usDurationId;
1672 /* Address 1 field */
1673 uint8 vA1[HAL_MAC_ADDR_LEN];
1674 /* Address 2 field */
1675 uint8 vA2[HAL_MAC_ADDR_LEN];
1676 /* Address 3 field */
1677 uint8 vA3[HAL_MAC_ADDR_LEN];
1678 /* Sequence control field */
1679 uint16 seqNum;
1680 /* Optional A4 address */
1681 uint8 optvA4[HAL_MAC_ADDR_LEN];
1682 /* Optional QOS control field */
1683 tHalQosCtrlFieldType usQosCtrl;
1684} tHal80211Header;
1685
1686typedef PACKED_PRE struct PACKED_POST
1687{
1688 tHal80211Header macHeader;
1689 tHalEncConfigParams encParams;
1690 tHalDisaPayload data;
1691} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1692
1693typedef PACKED_PRE struct PACKED_POST
1694{
1695 tHalMsgHeader header;
1696 tSetEncryptedDataParams encryptedDataParams;
1697} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1698
1699typedef PACKED_PRE struct PACKED_POST
1700{
1701 tANI_U32 status;
1702 tHalDisaPayload encryptedPayload;
1703} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1704
1705typedef PACKED_PRE struct PACKED_POST
1706{
1707 tHalMsgHeader header;
1708 tSetEncryptedDataRspParams encryptedDataRspParams;
1709} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1710
Jeff Johnson295189b2012-06-20 16:38:30 -07001711/*---------------------------------------------------------------------------
1712 WLAN_HAL_CONFIG_STA_REQ
1713---------------------------------------------------------------------------*/
1714
1715typedef PACKED_PRE struct PACKED_POST {
1716 /*
1717 * For Self STA Entry: this represents Self Mode.
1718 * For Peer Stations, this represents the mode of the peer.
1719 * On Station:
1720 * --this mode is updated when PE adds the Self Entry.
1721 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1722 * ON AP:
1723 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1724 * to indicate the self mode of the AP.
1725 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1726 */
1727
1728 tStaRateMode opRateMode;
1729 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1730 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1731 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1732 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1733 tANI_U16 reserved;
1734
1735 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1736 //First 26 bits are reserved for those Titan rates and
1737 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1738 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1739
1740 /*
1741 * 0-76 bits used, remaining reserved
1742 * bits 0-15 and 32 should be set.
1743 */
1744 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1745
1746 /*
1747 * RX Highest Supported Data Rate defines the highest data
1748 * rate that the STA is able to receive, in unites of 1Mbps.
1749 * This value is derived from "Supported MCS Set field" inside
1750 * the HT capability element.
1751 */
1752 tANI_U16 rxHighestDataRate;
1753
1754} tSirSupportedRates, *tpSirSupportedRates;
1755
1756typedef PACKED_PRE struct PACKED_POST
1757{
1758 /*BSSID of STA*/
1759 tSirMacAddr bssId;
1760
1761 /*ASSOC ID, as assigned by UMAC*/
1762 tANI_U16 assocId;
1763
1764 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1765 tANI_U8 staType;
1766
1767 /*Short Preamble Supported.*/
1768 tANI_U8 shortPreambleSupported;
1769
1770 /*MAC Address of STA*/
1771 tSirMacAddr staMac;
1772
1773 /*Listen interval of the STA*/
1774 tANI_U16 listenInterval;
1775
1776 /*Support for 11e/WMM*/
1777 tANI_U8 wmmEnabled;
1778
1779 /*11n HT capable STA*/
1780 tANI_U8 htCapable;
1781
1782 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1783 tANI_U8 txChannelWidthSet;
1784
1785 /*RIFS mode 0 - NA, 1 - Allowed */
1786 tANI_U8 rifsMode;
1787
Dino Mycle8afbac12014-07-04 22:06:17 +05301788 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001789 0 - No Support, 1 - Supported
1790 SG - there is global field */
1791 tANI_U8 lsigTxopProtection;
1792
1793 /*Max Ampdu Size supported by STA. TPE programming.
1794 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1795 tANI_U8 maxAmpduSize;
1796
1797 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1798 tANI_U8 maxAmpduDensity;
1799
1800 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1801 tANI_U8 maxAmsduSize;
1802
1803 /*Short GI support for 40Mhz packets*/
1804 tANI_U8 fShortGI40Mhz;
1805
1806 /*Short GI support for 20Mhz packets*/
1807 tANI_U8 fShortGI20Mhz;
1808
Jeff Johnson295189b2012-06-20 16:38:30 -07001809 /*Robust Management Frame (RMF) enabled/disabled*/
1810 tANI_U8 rmfEnabled;
1811
1812 /* The unicast encryption type in the association */
1813 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001814
1815 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001816 will set this flag in case of RE-ASSOC, where we want to reuse the old
1817 STA ID. 0 = Add, 1 = Update*/
1818 tANI_U8 action;
1819
1820 /*U-APSD Flags: 1b per AC. Encoded as follows:
1821 b7 b6 b5 b4 b3 b2 b1 b0 =
1822 X X X X BE BK VI VO */
1823 tANI_U8 uAPSD;
1824
1825 /*Max SP Length*/
1826 tANI_U8 maxSPLen;
1827
1828 /*11n Green Field preamble support
1829 0 - Not supported, 1 - Supported */
1830 tANI_U8 greenFieldCapable;
1831
1832 /*MIMO Power Save mode*/
1833 tSirMacHTMIMOPowerSaveState mimoPS;
1834
1835 /*Delayed BA Support*/
1836 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001837
Jeff Johnson295189b2012-06-20 16:38:30 -07001838 /*Max AMPDU duration in 32us*/
1839 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001840
Jeff Johnson295189b2012-06-20 16:38:30 -07001841 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1842 it to 0 if AP does not support it. This indication is sent to HAL and
1843 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1844 tANI_U8 fDsssCckMode40Mhz;
1845
1846 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1847 Retained for backward compalibity with existing HAL code*/
1848 tANI_U8 staIdx;
1849
1850 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1851 Retained for backward compalibity with existing HAL code*/
1852 tANI_U8 bssIdx;
1853
1854 tANI_U8 p2pCapableSta;
1855
Jeff Johnsone7245742012-09-05 17:12:55 -07001856 /*Reserved to align next field on a dword boundary*/
1857 tANI_U8 reserved;
1858
1859 /*These rates are the intersection of peer and self capabilities.*/
1860 tSirSupportedRates supportedRates;
1861
Jeff Johnson295189b2012-06-20 16:38:30 -07001862} tConfigStaParams, *tpConfigStaParams;
1863
Jeff Johnsone7245742012-09-05 17:12:55 -07001864/*------------------------------------------------------------------------
1865 * WLAN_HAL_CONFIG_STA_REQ
1866 * ----------------------------------------------------------------------*/
1867
1868typedef PACKED_PRE struct PACKED_POST {
1869 /*
1870 * For Self STA Entry: this represents Self Mode.
1871 * For Peer Stations, this represents the mode of the peer.
1872 * On Station:
1873 * --this mode is updated when PE adds the Self Entry.
1874 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1875 * ON AP:
1876 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1877 * to indicate the self mode of the AP.
1878 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1879 */
1880
1881 tStaRateMode opRateMode;
1882 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1883 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1884 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1885 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1886 tANI_U16 reserved;
1887
1888 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1889 //First 26 bits are reserved for those Titan rates and
1890 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1891 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1892
1893 /*
1894 * 0-76 bits used, remaining reserved
1895 * bits 0-15 and 32 should be set.
1896 */
1897 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1898
1899 /*
1900 * RX Highest Supported Data Rate defines the highest data
1901 * rate that the STA is able to receive, in unites of 1Mbps.
1902 * This value is derived from "Supported MCS Set field" inside
1903 * the HT capability element.
1904 */
1905 tANI_U16 rxHighestDataRate;
1906
1907 /* Indicates the Maximum MCS that can be received for each number
1908 * of spacial streams */
1909 tANI_U16 vhtRxMCSMap;
1910
1911 /*Indicate the highest VHT data rate that the STA is able to receive*/
1912 tANI_U16 vhtRxHighestDataRate;
1913
1914 /* Indicates the Maximum MCS that can be transmitted for each number
1915 * of spacial streams */
1916 tANI_U16 vhtTxMCSMap;
1917
1918 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1919 tANI_U16 vhtTxHighestDataRate;
1920
1921} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1922
1923typedef PACKED_PRE struct PACKED_POST
1924{
1925 /*BSSID of STA*/
1926 tSirMacAddr bssId;
1927
1928 /*ASSOC ID, as assigned by UMAC*/
1929 tANI_U16 assocId;
1930
1931 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1932 tANI_U8 staType;
1933
1934 /*Short Preamble Supported.*/
1935 tANI_U8 shortPreambleSupported;
1936
1937 /*MAC Address of STA*/
1938 tSirMacAddr staMac;
1939
1940 /*Listen interval of the STA*/
1941 tANI_U16 listenInterval;
1942
1943 /*Support for 11e/WMM*/
1944 tANI_U8 wmmEnabled;
1945
1946 /*11n HT capable STA*/
1947 tANI_U8 htCapable;
1948
1949 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1950 tANI_U8 txChannelWidthSet;
1951
1952 /*RIFS mode 0 - NA, 1 - Allowed */
1953 tANI_U8 rifsMode;
1954
1955 /*L-SIG TXOP Protection mechanism
1956 0 - No Support, 1 - Supported
1957 SG - there is global field */
1958 tANI_U8 lsigTxopProtection;
1959
1960 /*Max Ampdu Size supported by STA. TPE programming.
1961 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1962 tANI_U8 maxAmpduSize;
1963
1964 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1965 tANI_U8 maxAmpduDensity;
1966
1967 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1968 tANI_U8 maxAmsduSize;
1969
1970 /*Short GI support for 40Mhz packets*/
1971 tANI_U8 fShortGI40Mhz;
1972
1973 /*Short GI support for 20Mhz packets*/
1974 tANI_U8 fShortGI20Mhz;
1975
1976 /*Robust Management Frame (RMF) enabled/disabled*/
1977 tANI_U8 rmfEnabled;
1978
1979 /* The unicast encryption type in the association */
1980 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301981
1982 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001983 will set this flag in case of RE-ASSOC, where we want to reuse the old
1984 STA ID. 0 = Add, 1 = Update*/
1985 tANI_U8 action;
1986
1987 /*U-APSD Flags: 1b per AC. Encoded as follows:
1988 b7 b6 b5 b4 b3 b2 b1 b0 =
1989 X X X X BE BK VI VO */
1990 tANI_U8 uAPSD;
1991
1992 /*Max SP Length*/
1993 tANI_U8 maxSPLen;
1994
1995 /*11n Green Field preamble support
1996 0 - Not supported, 1 - Supported */
1997 tANI_U8 greenFieldCapable;
1998
1999 /*MIMO Power Save mode*/
2000 tSirMacHTMIMOPowerSaveState mimoPS;
2001
2002 /*Delayed BA Support*/
2003 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05302004
Jeff Johnsone7245742012-09-05 17:12:55 -07002005 /*Max AMPDU duration in 32us*/
2006 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05302007
Jeff Johnsone7245742012-09-05 17:12:55 -07002008 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
2009 it to 0 if AP does not support it. This indication is sent to HAL and
2010 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
2011 tANI_U8 fDsssCckMode40Mhz;
2012
2013 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
2014 Retained for backward compalibity with existing HAL code*/
2015 tANI_U8 staIdx;
2016
2017 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2018 Retained for backward compalibity with existing HAL code*/
2019 tANI_U8 bssIdx;
2020
2021 tANI_U8 p2pCapableSta;
2022
2023 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002024 tANI_U8 htLdpcEnabled:1;
2025 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002026 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302027 tANI_U8 vhtTxMUBformeeCapable:1;
2028 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002029
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002030 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002031 tSirSupportedRates_V1 supportedRates;
2032
2033 tANI_U8 vhtCapable;
2034 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002035
Jeff Johnsone7245742012-09-05 17:12:55 -07002036} tConfigStaParams_V1, *tpConfigStaParams_V1;
2037
Jeff Johnson295189b2012-06-20 16:38:30 -07002038typedef PACKED_PRE struct PACKED_POST
2039{
2040 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002041 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002042 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002043 tConfigStaParams_V1 configStaParams_V1;
2044 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002045} tConfigStaReqMsg, *tpConfigStaReqMsg;
2046
2047/*---------------------------------------------------------------------------
2048 WLAN_HAL_CONFIG_STA_RSP
2049---------------------------------------------------------------------------*/
2050
2051typedef PACKED_PRE struct PACKED_POST
2052{
2053 /*success or failure */
2054 tANI_U32 status;
2055
2056 /* Station index; valid only when 'status' field value SUCCESS */
2057 tANI_U8 staIdx;
2058
2059 /* BSSID Index of BSS to which the station is associated */
2060 tANI_U8 bssIdx;
2061
2062 /* DPU Index for PTK */
2063 tANI_U8 dpuIndex;
2064
Dino Mycle8afbac12014-07-04 22:06:17 +05302065 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002066 tANI_U8 bcastDpuIndex;
2067
2068 /*DPU Index for IGTK */
2069 tANI_U8 bcastMgmtDpuIdx;
2070
2071 /*PTK DPU signature*/
2072 tANI_U8 ucUcastSig;
2073
2074 /*GTK DPU isignature*/
2075 tANI_U8 ucBcastSig;
2076
2077 /* IGTK DPU signature*/
2078 tANI_U8 ucMgmtSig;
2079
2080 tANI_U8 p2pCapableSta;
2081
2082}tConfigStaRspParams, *tpConfigStaRspParams;
2083
2084typedef PACKED_PRE struct PACKED_POST
2085{
2086 tHalMsgHeader header;
2087 tConfigStaRspParams configStaRspParams;
2088}tConfigStaRspMsg, *tpConfigStaRspMsg;
2089
2090/*---------------------------------------------------------------------------
2091 WLAN_HAL_DELETE_STA_REQ
2092---------------------------------------------------------------------------*/
2093
2094/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302095typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002096{
2097 /* Index of STA to delete */
2098 tANI_U8 staIdx;
2099} tDeleteStaParams, *tpDeleteStaParams;
2100
2101/* Delete STA Request message*/
2102typedef PACKED_PRE struct PACKED_POST
2103{
2104 tHalMsgHeader header;
2105 tDeleteStaParams delStaParams;
2106} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2107
2108/*---------------------------------------------------------------------------
2109 WLAN_HAL_DELETE_STA_RSP
2110---------------------------------------------------------------------------*/
2111
2112/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302113typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002114{
2115 /*success or failure */
2116 tANI_U32 status;
2117
2118 /* Index of STA deleted */
2119 tANI_U8 staId;
2120} tDeleteStaRspParams, *tpDeleteStaRspParams;
2121
2122/* Delete STA Response message*/
2123typedef PACKED_PRE struct PACKED_POST
2124{
2125 tHalMsgHeader header;
2126 tDeleteStaRspParams delStaRspParams;
2127} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2128
2129/*---------------------------------------------------------------------------
2130 WLAN_HAL_CONFIG_BSS_REQ
2131---------------------------------------------------------------------------*/
2132
2133//12 Bytes long because this structure can be used to represent rate
2134//and extended rate set IEs. The parser assume this to be at least 12
2135typedef __ani_attr_pre_packed struct sSirMacRateSet
2136{
2137 tANI_U8 numRates;
2138 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2139} __ani_attr_packed tSirMacRateSet;
2140
2141// access category record
2142typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2143{
2144#ifndef ANI_LITTLE_BIT_ENDIAN
2145 tANI_U8 rsvd : 1;
2146 tANI_U8 aci : 2;
2147 tANI_U8 acm : 1;
2148 tANI_U8 aifsn : 4;
2149#else
2150 tANI_U8 aifsn : 4;
2151 tANI_U8 acm : 1;
2152 tANI_U8 aci : 2;
2153 tANI_U8 rsvd : 1;
2154#endif
2155} __ani_attr_packed tSirMacAciAifsn;
2156
2157// contention window size
2158typedef __ani_attr_pre_packed struct sSirMacCW
2159{
2160#ifndef ANI_LITTLE_BIT_ENDIAN
2161 tANI_U8 max : 4;
2162 tANI_U8 min : 4;
2163#else
2164 tANI_U8 min : 4;
2165 tANI_U8 max : 4;
2166#endif
2167} __ani_attr_packed tSirMacCW;
2168
2169typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2170{
2171 tSirMacAciAifsn aci;
2172 tSirMacCW cw;
2173 tANI_U16 txoplimit;
2174} __ani_attr_packed tSirMacEdcaParamRecord;
2175
2176typedef __ani_attr_pre_packed struct sSirMacSSid
2177{
2178 tANI_U8 length;
2179 tANI_U8 ssId[32];
2180} __ani_attr_packed tSirMacSSid;
2181
2182// Concurrency role. These are generic IDs that identify the various roles
2183// in the software system.
2184typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302185 HAL_STA_MODE=0,
2186 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002187 HAL_P2P_CLIENT_MODE,
2188 HAL_P2P_GO_MODE,
2189 HAL_MONITOR_MODE,
2190} tHalConMode;
2191
2192//This is a bit pattern to be set for each mode
2193//bit 0 - sta mode
2194//bit 1 - ap mode
2195//bit 2 - p2p client mode
2196//bit 3 - p2p go mode
2197typedef enum
2198{
Dino Mycle8afbac12014-07-04 22:06:17 +05302199 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002200 HAL_SAP=2,
2201 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2202 HAL_P2P_CLIENT=4,
2203 HAL_P2P_GO=8,
2204 HAL_MAX_CONCURRENCY_PERSONA=4
2205} tHalConcurrencyMode;
2206
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002207// IFACE PERSONA for different Operating modes
2208typedef enum
2209{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002210 HAL_IFACE_UNKNOWN=0,
2211 HAL_IFACE_STA_MODE=1,
2212 HAL_IFACE_P2P_MODE=2,
2213 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002214} tHalIfacePersona;
2215
Jeff Johnson295189b2012-06-20 16:38:30 -07002216typedef PACKED_PRE struct PACKED_POST
2217{
2218 /* BSSID */
2219 tSirMacAddr bssId;
2220
Jeff Johnson295189b2012-06-20 16:38:30 -07002221 /* Self Mac Address */
2222 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002223
2224 /* BSS type */
2225 tSirBssType bssType;
2226
2227 /*Operational Mode: AP =0, STA = 1*/
2228 tANI_U8 operMode;
2229
2230 /*Network Type*/
2231 tSirNwType nwType;
2232
2233 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2234 tANI_U8 shortSlotTimeSupported;
2235
2236 /*Co-exist with 11a STA*/
2237 tANI_U8 llaCoexist;
2238
2239 /*Co-exist with 11b STA*/
2240 tANI_U8 llbCoexist;
2241
2242 /*Co-exist with 11g STA*/
2243 tANI_U8 llgCoexist;
2244
2245 /*Coexistence with 11n STA*/
2246 tANI_U8 ht20Coexist;
2247
2248 /*Non GF coexist flag*/
2249 tANI_U8 llnNonGFCoexist;
2250
2251 /*TXOP protection support*/
2252 tANI_U8 fLsigTXOPProtectionFullSupport;
2253
2254 /*RIFS mode*/
2255 tANI_U8 fRIFSMode;
2256
2257 /*Beacon Interval in TU*/
2258 tSirMacBeaconInterval beaconInterval;
2259
2260 /*DTIM period*/
2261 tANI_U8 dtimPeriod;
2262
2263 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2264 tANI_U8 txChannelWidthSet;
2265
2266 /*Operating channel*/
2267 tANI_U8 currentOperChannel;
2268
2269 /*Extension channel for channel bonding*/
2270 tANI_U8 currentExtChannel;
2271
2272 /*Reserved to align next field on a dword boundary*/
2273 tANI_U8 reserved;
2274
Jeff Johnsone7245742012-09-05 17:12:55 -07002275 /*SSID of the BSS*/
2276 tSirMacSSid ssId;
2277
2278 /*HAL should update the existing BSS entry, if this flag is set.
2279 UMAC will set this flag in case of reassoc, where we want to resue the
2280 the old BSSID and still return success 0 = Add, 1 = Update*/
2281 tANI_U8 action;
2282
2283 /* MAC Rate Set */
2284 tSirMacRateSet rateSet;
2285
2286 /*Enable/Disable HT capabilities of the BSS*/
2287 tANI_U8 htCapable;
2288
2289 // Enable/Disable OBSS protection
2290 tANI_U8 obssProtEnabled;
2291
2292 /*RMF enabled/disabled*/
2293 tANI_U8 rmfEnabled;
2294
2295 /*HT Operating Mode operating mode of the 802.11n STA*/
2296 tSirMacHTOperatingMode htOperMode;
2297
2298 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2299 tANI_U8 dualCTSProtection;
2300
2301 /* Probe Response Max retries */
2302 tANI_U8 ucMaxProbeRespRetryLimit;
2303
2304 /* To Enable Hidden ssid */
2305 tANI_U8 bHiddenSSIDEn;
2306
2307 /* To Enable Disable FW Proxy Probe Resp */
2308 tANI_U8 bProxyProbeRespEn;
2309
2310 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2311 EDCA params or might not desire to apply EDCA params during config BSS.
2312 0 implies Not Valid ; Non-Zero implies valid*/
2313 tANI_U8 edcaParamsValid;
2314
2315 /*EDCA Parameters for Best Effort Access Category*/
2316 tSirMacEdcaParamRecord acbe;
2317
2318 /*EDCA Parameters forBackground Access Category*/
2319 tSirMacEdcaParamRecord acbk;
2320
2321 /*EDCA Parameters for Video Access Category*/
2322 tSirMacEdcaParamRecord acvi;
2323
2324 /*EDCA Parameters for Voice Access Category*/
2325 tSirMacEdcaParamRecord acvo;
2326
2327#ifdef WLAN_FEATURE_VOWIFI_11R
2328 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2329 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2330#endif
2331
2332 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2333 tANI_U8 halPersona;
2334
2335 tANI_U8 bSpectrumMgtEnable;
2336
2337 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2338 tANI_S8 txMgmtPower;
2339 /*maxTxPower has max power to be used after applying the power constraint if any */
2340 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002341 /*Context of the station being added in HW
2342 Add a STA entry for "itself" -
2343 On AP - Add the AP itself in an "STA context"
2344 On STA - Add the AP to which this STA is joining in an "STA context" */
2345 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002346} tConfigBssParams, * tpConfigBssParams;
2347
2348
2349/*--------------------------------------------------------------------------
2350 * WLAN_HAL_CONFIG_BSS_REQ
2351 *--------------------------------------------------------------------------*/
2352typedef PACKED_PRE struct PACKED_POST
2353{
2354 /* BSSID */
2355 tSirMacAddr bssId;
2356
Jeff Johnsone7245742012-09-05 17:12:55 -07002357 /* Self Mac Address */
2358 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002359
2360 /* BSS type */
2361 tSirBssType bssType;
2362
2363 /*Operational Mode: AP =0, STA = 1*/
2364 tANI_U8 operMode;
2365
2366 /*Network Type*/
2367 tSirNwType nwType;
2368
2369 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2370 tANI_U8 shortSlotTimeSupported;
2371
2372 /*Co-exist with 11a STA*/
2373 tANI_U8 llaCoexist;
2374
2375 /*Co-exist with 11b STA*/
2376 tANI_U8 llbCoexist;
2377
2378 /*Co-exist with 11g STA*/
2379 tANI_U8 llgCoexist;
2380
2381 /*Coexistence with 11n STA*/
2382 tANI_U8 ht20Coexist;
2383
2384 /*Non GF coexist flag*/
2385 tANI_U8 llnNonGFCoexist;
2386
2387 /*TXOP protection support*/
2388 tANI_U8 fLsigTXOPProtectionFullSupport;
2389 /*RIFS mode*/
2390 tANI_U8 fRIFSMode;
2391
2392 /*Beacon Interval in TU*/
2393 tSirMacBeaconInterval beaconInterval;
2394
2395 /*DTIM period*/
2396 tANI_U8 dtimPeriod;
2397
2398 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2399 tANI_U8 txChannelWidthSet;
2400
2401 /*Operating channel*/
2402 tANI_U8 currentOperChannel;
2403
2404 /*Extension channel for channel bonding*/
2405 tANI_U8 currentExtChannel;
2406
2407 /*Reserved to align next field on a dword boundary*/
2408 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002409
2410 /*SSID of the BSS*/
2411 tSirMacSSid ssId;
2412
2413 /*HAL should update the existing BSS entry, if this flag is set.
2414 UMAC will set this flag in case of reassoc, where we want to resue the
2415 the old BSSID and still return success 0 = Add, 1 = Update*/
2416 tANI_U8 action;
2417
2418 /* MAC Rate Set */
2419 tSirMacRateSet rateSet;
2420
2421 /*Enable/Disable HT capabilities of the BSS*/
2422 tANI_U8 htCapable;
2423
2424 // Enable/Disable OBSS protection
2425 tANI_U8 obssProtEnabled;
2426
2427 /*RMF enabled/disabled*/
2428 tANI_U8 rmfEnabled;
2429
2430 /*HT Operating Mode operating mode of the 802.11n STA*/
2431 tSirMacHTOperatingMode htOperMode;
2432
2433 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2434 tANI_U8 dualCTSProtection;
2435
2436 /* Probe Response Max retries */
2437 tANI_U8 ucMaxProbeRespRetryLimit;
2438
2439 /* To Enable Hidden ssid */
2440 tANI_U8 bHiddenSSIDEn;
2441
2442 /* To Enable Disable FW Proxy Probe Resp */
2443 tANI_U8 bProxyProbeRespEn;
2444
Dino Mycle8afbac12014-07-04 22:06:17 +05302445 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2446 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002447 0 implies Not Valid ; Non-Zero implies valid*/
2448 tANI_U8 edcaParamsValid;
2449
2450 /*EDCA Parameters for Best Effort Access Category*/
2451 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302452
Jeff Johnson295189b2012-06-20 16:38:30 -07002453 /*EDCA Parameters forBackground Access Category*/
2454 tSirMacEdcaParamRecord acbk;
2455
2456 /*EDCA Parameters for Video Access Category*/
2457 tSirMacEdcaParamRecord acvi;
2458
2459 /*EDCA Parameters for Voice Access Category*/
2460 tSirMacEdcaParamRecord acvo;
2461
2462#ifdef WLAN_FEATURE_VOWIFI_11R
2463 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2464 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2465#endif
2466
Dino Mycle8afbac12014-07-04 22:06:17 +05302467 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002468 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302469
Jeff Johnson295189b2012-06-20 16:38:30 -07002470 tANI_U8 bSpectrumMgtEnable;
2471
2472 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2473 tANI_S8 txMgmtPower;
2474 /*maxTxPower has max power to be used after applying the power constraint if any */
2475 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002476 /*Context of the station being added in HW
2477 Add a STA entry for "itself" -
2478 On AP - Add the AP itself in an "STA context"
2479 On STA - Add the AP to which this STA is joining in an "STA context" */
2480 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302481
Jeff Johnsone7245742012-09-05 17:12:55 -07002482 tANI_U8 vhtCapable;
2483 tANI_U8 vhtTxChannelWidthSet;
2484} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002485
2486typedef PACKED_PRE struct PACKED_POST
2487{
2488 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002489 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002490 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002491 tConfigBssParams_V1 configBssParams_V1;
2492 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002493} tConfigBssReqMsg, *tpConfigBssReqMsg;
2494
2495/*---------------------------------------------------------------------------
2496 WLAN_HAL_CONFIG_BSS_RSP
2497---------------------------------------------------------------------------*/
2498
2499typedef PACKED_PRE struct PACKED_POST
2500{
2501 /* Success or Failure */
2502 tANI_U32 status;
2503
2504 /* BSS index allocated by HAL */
2505 tANI_U8 bssIdx;
2506
2507 /* DPU descriptor index for PTK */
2508 tANI_U8 dpuDescIndx;
2509
2510 /* PTK DPU signature */
2511 tANI_U8 ucastDpuSignature;
2512
2513 /* DPU descriptor index for GTK*/
2514 tANI_U8 bcastDpuDescIndx;
2515
2516 /* GTK DPU signature */
2517 tANI_U8 bcastDpuSignature;
2518
2519 /*DPU descriptor for IGTK*/
2520 tANI_U8 mgmtDpuDescIndx;
2521
2522 /* IGTK DPU signature */
2523 tANI_U8 mgmtDpuSignature;
2524
2525 /* Station Index for BSS entry*/
2526 tANI_U8 bssStaIdx;
2527
2528 /* Self station index for this BSS */
2529 tANI_U8 bssSelfStaIdx;
2530
2531 /* Bcast station for buffering bcast frames in AP role */
2532 tANI_U8 bssBcastStaIdx;
2533
2534 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2535 tSirMacAddr staMac;
2536
2537 /*HAL fills in the tx power used for mgmt frames in this field. */
2538 tANI_S8 txMgmtPower;
2539
2540} tConfigBssRspParams, * tpConfigBssRspParams;
2541
2542typedef PACKED_PRE struct PACKED_POST
2543{
2544 tHalMsgHeader header;
2545 tConfigBssRspParams configBssRspParams;
2546} tConfigBssRspMsg, *tpConfigBssRspMsg;
2547
2548/*---------------------------------------------------------------------------
2549 WLAN_HAL_DELETE_BSS_REQ
2550---------------------------------------------------------------------------*/
2551
2552typedef PACKED_PRE struct PACKED_POST
2553{
2554 /* BSS index to be deleted */
2555 tANI_U8 bssIdx;
2556
2557} tDeleteBssParams, *tpDeleteBssParams;
2558
2559typedef PACKED_PRE struct PACKED_POST
2560{
2561 tHalMsgHeader header;
2562 tDeleteBssParams deleteBssParams;
2563} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2564
2565/*---------------------------------------------------------------------------
2566 WLAN_HAL_DELETE_BSS_RSP
2567---------------------------------------------------------------------------*/
2568
2569typedef PACKED_PRE struct PACKED_POST
2570{
2571 /* Success or Failure */
2572 tANI_U32 status;
2573
2574 /* BSS index that has been deleted */
2575 tANI_U8 bssIdx;
2576
2577} tDeleteBssRspParams, *tpDeleteBssRspParams;
2578
2579typedef PACKED_PRE struct PACKED_POST
2580{
2581 tHalMsgHeader header;
2582 tDeleteBssRspParams deleteBssRspParams;
2583} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2584
2585/*---------------------------------------------------------------------------
2586 WLAN_HAL_JOIN_REQ
2587---------------------------------------------------------------------------*/
2588
2589typedef PACKED_PRE struct PACKED_POST
2590{
2591 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302592 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002593
2594 /*Indicates the channel to switch to.*/
2595 tANI_U8 ucChannel;
2596
2597 /* Self STA MAC */
2598 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302599
Jeff Johnson295189b2012-06-20 16:38:30 -07002600 /*Local power constraint*/
2601 tANI_U8 ucLocalPowerConstraint;
2602
2603 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002604 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002605
2606 /*link State*/
2607 tSirLinkState linkState;
2608
2609 /* Max TX power */
2610 tANI_S8 maxTxPower;
2611
2612} tHalJoinReqParams, *tpHalJoinReqParams;
2613
2614typedef PACKED_PRE struct PACKED_POST
2615{
2616 tHalMsgHeader header;
2617 tHalJoinReqParams joinReqParams;
2618} tHalJoinReqMsg, *tpHalJoinReqMsg;
2619
2620/*---------------------------------------------------------------------------
2621 WLAN_HAL_JOIN_RSP
2622---------------------------------------------------------------------------*/
2623
2624typedef PACKED_PRE struct PACKED_POST
2625{
2626 /*success or failure */
2627 tANI_U32 status;
2628
2629 /* HAL fills in the tx power used for mgmt frames in this field */
2630 tPowerdBm txMgmtPower;
2631
2632}tHalJoinRspParams, *tpHalJoinRspParams;
2633
2634typedef PACKED_PRE struct PACKED_POST
2635{
2636 tHalMsgHeader header;
2637 tHalJoinRspParams joinRspParams;
2638}tHalJoinRspMsg, *tpHalJoinRspMsg;
2639
2640/*---------------------------------------------------------------------------
2641 WLAN_HAL_POST_ASSOC_REQ
2642---------------------------------------------------------------------------*/
2643
2644typedef PACKED_PRE struct PACKED_POST
2645{
2646 tConfigStaParams configStaParams;
2647 tConfigBssParams configBssParams;
2648} tPostAssocReqParams, *tpPostAssocReqParams;
2649
2650typedef PACKED_PRE struct PACKED_POST
2651{
2652 tHalMsgHeader header;
2653 tPostAssocReqParams postAssocReqParams;
2654} tPostAssocReqMsg, *tpPostAssocReqMsg;
2655
2656/*---------------------------------------------------------------------------
2657 WLAN_HAL_POST_ASSOC_RSP
2658---------------------------------------------------------------------------*/
2659
2660typedef PACKED_PRE struct PACKED_POST
2661{
2662 tConfigStaRspParams configStaRspParams;
2663 tConfigBssRspParams configBssRspParams;
2664} tPostAssocRspParams, *tpPostAssocRspParams;
2665
2666typedef PACKED_PRE struct PACKED_POST
2667{
2668 tHalMsgHeader header;
2669 tPostAssocRspParams postAssocRspParams;
2670} tPostAssocRspMsg, *tpPostAssocRspMsg;
2671
2672/*---------------------------------------------------------------------------
2673 WLAN_HAL_SET_BSSKEY_REQ
2674---------------------------------------------------------------------------*/
2675
2676/*
2677 * This is used by PE to create a set of WEP keys for a given BSS.
2678 */
2679typedef PACKED_PRE struct PACKED_POST
2680{
2681 /*BSS Index of the BSS*/
2682 tANI_U8 bssIdx;
2683
2684 /*Encryption Type used with peer*/
2685 tAniEdType encType;
2686
2687 /*Number of keys*/
2688 tANI_U8 numKeys;
2689
2690 /*Array of keys.*/
2691 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302692
Jeff Johnson295189b2012-06-20 16:38:30 -07002693 /*Control for Replay Count, 1= Single TID based replay count on Tx
2694 0 = Per TID based replay count on TX */
2695 tANI_U8 singleTidRc;
2696} tSetBssKeyParams, *tpSetBssKeyParams;
2697
2698typedef PACKED_PRE struct PACKED_POST
2699{
2700 tHalMsgHeader header;
2701 tSetBssKeyParams setBssKeyParams;
2702} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2703
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002704/* tagged version of set bss key */
2705typedef PACKED_PRE struct PACKED_POST
2706{
2707 tSetBssKeyReqMsg Msg;
2708 uint32 Tag;
2709} tSetBssKeyReqMsgTagged;
2710
Jeff Johnson295189b2012-06-20 16:38:30 -07002711/*---------------------------------------------------------------------------
2712 WLAN_HAL_SET_BSSKEY_RSP
2713---------------------------------------------------------------------------*/
2714typedef PACKED_PRE struct PACKED_POST
2715{
2716 /*success or failure */
2717 tANI_U32 status;
2718
2719} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2720
2721typedef PACKED_PRE struct PACKED_POST
2722{
2723 tHalMsgHeader header;
2724 tSetBssKeyRspParams setBssKeyRspParams;
2725} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2726
2727/*---------------------------------------------------------------------------
2728 WLAN_HAL_SET_STAKEY_REQ,
2729---------------------------------------------------------------------------*/
2730
2731/*
2732 * This is used by PE to configure the key information on a given station.
2733 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2734 * a preconfigured key from a BSS the station assoicated with; otherwise
2735 * a new key descriptor is created based on the key field.
2736 */
2737
2738typedef PACKED_PRE struct PACKED_POST
2739{
2740 tHalMsgHeader header;
2741 tSetStaKeyParams setStaKeyParams;
2742} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2743
2744/*---------------------------------------------------------------------------
2745 WLAN_HAL_SET_STAKEY_RSP,
2746---------------------------------------------------------------------------*/
2747typedef PACKED_PRE struct PACKED_POST
2748{
2749 /*success or failure */
2750 tANI_U32 status;
2751
2752} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2753
2754typedef PACKED_PRE struct PACKED_POST
2755{
2756 tHalMsgHeader header;
2757 tSetStaKeyRspParams setStaKeyRspParams;
2758} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2759
2760/*---------------------------------------------------------------------------
2761 WLAN_HAL_RMV_BSSKEY_REQ,
2762---------------------------------------------------------------------------*/
2763/*
2764 * This is used by PE to remove keys for a given BSS.
2765 */
2766typedef PACKED_PRE struct PACKED_POST
2767
2768{
2769 /*BSS Index of the BSS*/
2770 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302771
Jeff Johnson295189b2012-06-20 16:38:30 -07002772 /*Encryption Type used with peer*/
2773 tAniEdType encType;
2774
2775 /*Key Id*/
2776 tANI_U8 keyId;
2777
2778 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2779 tAniWepType wepType;
2780
2781} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2782
2783typedef PACKED_PRE struct PACKED_POST
2784{
2785 tHalMsgHeader header;
2786 tRemoveBssKeyParams removeBssKeyParams;
2787} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2788
2789/*---------------------------------------------------------------------------
2790 WLAN_HAL_RMV_BSSKEY_RSP,
2791---------------------------------------------------------------------------*/
2792typedef PACKED_PRE struct PACKED_POST
2793{
2794 /*success or failure */
2795 tANI_U32 status;
2796
2797} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2798
2799typedef PACKED_PRE struct PACKED_POST
2800{
2801 tHalMsgHeader header;
2802 tRemoveBssKeyRspParams removeBssKeyRspParams;
2803} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2804
2805/*---------------------------------------------------------------------------
2806 WLAN_HAL_RMV_STAKEY_REQ,
2807---------------------------------------------------------------------------*/
2808/*
2809 * This is used by PE to Remove the key information on a given station.
2810 */
2811typedef PACKED_PRE struct PACKED_POST
2812{
2813 /*STA Index*/
2814 tANI_U16 staIdx;
2815
2816 /*Encryption Type used with peer*/
2817 tAniEdType encType;
2818
2819 /*Key Id*/
2820 tANI_U8 keyId;
2821
2822 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2823 the same key is used for both broadcast and unicast.*/
2824 tANI_BOOLEAN unicast;
2825
2826} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2827
2828typedef PACKED_PRE struct PACKED_POST
2829{
2830 tHalMsgHeader header;
2831 tRemoveStaKeyParams removeStaKeyParams;
2832} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2833
2834/*---------------------------------------------------------------------------
2835 WLAN_HAL_RMV_STAKEY_RSP,
2836---------------------------------------------------------------------------*/
2837typedef PACKED_PRE struct PACKED_POST
2838{
2839 /*success or failure */
2840 tANI_U32 status;
2841} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2842
2843typedef PACKED_PRE struct PACKED_POST
2844{
2845 tHalMsgHeader header;
2846 tRemoveStaKeyRspParams removeStaKeyRspParams;
2847} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2848
Jeff Johnsone7245742012-09-05 17:12:55 -07002849#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002850
Jeff Johnsone7245742012-09-05 17:12:55 -07002851#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002852#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002853#endif
2854
2855#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002856#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002857#endif
2858
2859/*-------------------------------------------------------------------------
2860WLAN_HAL_START_OEM_DATA_REQ
2861--------------------------------------------------------------------------*/
2862typedef PACKED_PRE struct PACKED_POST
2863{
2864 tANI_U32 status;
2865 tSirMacAddr selfMacAddr;
2866 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2867} tStartOemDataReqParams, *tpStartOemDataReqParams;
2868
2869typedef PACKED_PRE struct PACKED_POST
2870{
2871 tHalMsgHeader header;
2872 tStartOemDataReqParams startOemDataReqParams;
2873} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2874
2875/*-------------------------------------------------------------------------
2876WLAN_HAL_START_OEM_DATA_RSP
2877--------------------------------------------------------------------------*/
2878
2879typedef PACKED_PRE struct PACKED_POST
2880{
2881 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2882} tStartOemDataRspParams, *tpStartOemDataRspParams;
2883
2884typedef PACKED_PRE struct PACKED_POST
2885{
2886 tHalMsgHeader header;
2887 tStartOemDataRspParams startOemDataRspParams;
2888} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2889
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302890#ifndef NEW_OEM_DATA_REQ_SIZE
2891#define NEW_OEM_DATA_REQ_SIZE 292
2892#endif
2893
2894#ifndef NEW_OEM_DATA_RSP_SIZE
2895#define NEW_OEM_DATA_RSP_SIZE 2100
2896#endif
2897
2898/*-------------------------------------------------------------------------
2899WLAN_HAL_START_OEM_DATA_REQ_IND_NEW------------------------------------
2900--------------------------------------------------------------------------*/
2901typedef PACKED_PRE struct PACKED_POST
2902{
2903 tANI_U8 oemDataReq[NEW_OEM_DATA_REQ_SIZE];
2904} tStartOemDataReqParamsNew, *tpStartOemDataReqParamsNew;
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 tHalMsgHeader header;
2909 tStartOemDataReqParamsNew startOemDataReqParams;
2910} tStartOemDataReqMsgNew, *tpStartOemDataReqMsgNew;
2911
2912/*-------------------------------------------------------------------------
2913WLAN_HAL_START_OEM_DATA_RSP_IND_NEW------------------------------------
2914--------------------------------------------------------------------------*/
2915typedef PACKED_PRE struct PACKED_POST
2916{
2917 tANI_U8 oemDataRsp[NEW_OEM_DATA_RSP_SIZE];
2918} tStartOemDataRspParamsNew, *tpStartOemDataRspParamsNew;
2919
2920typedef PACKED_PRE struct PACKED_POST
2921{
2922 tHalMsgHeader header;
2923 tStartOemDataRspParamsNew startOemDataReqParams;
2924} tStartOemDataRspMsgNew, *tpStartOemDataRspMsgNew;
2925
Jeff Johnsone7245742012-09-05 17:12:55 -07002926#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002927
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002928/*---------------------------------------------------------------------------
2929WLAN_HAL_CH_SWITCH_V1_REQ
2930---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002931
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002932typedef PACKED_PRE struct PACKED_POST
2933{
2934 /* Channel number */
2935 tANI_U8 channelNumber;
2936
2937 /* Local power constraint */
2938 tANI_U8 localPowerConstraint;
2939
2940 /*Secondary channel offset */
2941 ePhyChanBondState secondaryChannelOffset;
2942
2943 //HAL fills in the tx power used for mgmt frames in this field.
2944 tPowerdBm txMgmtPower;
2945
2946 /* Max TX power */
2947 tPowerdBm maxTxPower;
2948
2949 /* Self STA MAC */
2950 tSirMacAddr selfStaMacAddr;
2951
2952 /*VO WIFI comment: BSSID needed to identify session. As the request has
2953 * power constraints, this should be applied only to that session
2954 * Since MTU timing and EDCA are sessionized, this struct needs to be
2955 * sessionized and bssid needs to be out of the VOWifi feature flag
2956 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002957 * mantain backward compatbility
2958 * by way of ignoring if using new host/old FW or old host/new FW since
2959 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002960 */
2961 tSirMacAddr bssId;
2962
2963 /* Source of Channel Switch */
2964 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002965
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002966} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2967
2968typedef PACKED_PRE struct PACKED_POST
2969{
2970 tHalMsgHeader header;
2971 tSwitchChannelParams_V1 switchChannelParams_V1;
2972} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2973
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002974/*---------------------------------------------------------------------------
2975WLAN_HAL_CH_SWITCH_V1_RSP
2976---------------------------------------------------------------------------*/
2977
2978typedef PACKED_PRE struct PACKED_POST
2979{
2980 /* Status */
2981 tANI_U32 status;
2982
2983 /* Channel number - same as in request*/
2984 tANI_U8 channelNumber;
2985
2986 /* HAL fills in the tx power used for mgmt frames in this field */
2987 tPowerdBm txMgmtPower;
2988
2989 /* BSSID needed to identify session - same as in request*/
2990 tSirMacAddr bssId;
2991
2992 /* Source of Channel Switch */
2993 eHalChanSwitchSource channelSwitchSrc;
2994
2995} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2996
2997typedef PACKED_PRE struct PACKED_POST
2998{
2999 tHalMsgHeader header;
3000 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
3001} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07003002
3003/*---------------------------------------------------------------------------
3004WLAN_HAL_CH_SWITCH_REQ
3005---------------------------------------------------------------------------*/
3006
3007typedef PACKED_PRE struct PACKED_POST
3008{
3009 /* Channel number */
3010 tANI_U8 channelNumber;
3011
3012 /* Local power constraint */
3013 tANI_U8 localPowerConstraint;
3014
3015 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07003016 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003017
3018 //HAL fills in the tx power used for mgmt frames in this field.
3019 tPowerdBm txMgmtPower;
3020
3021 /* Max TX power */
3022 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05303023
Jeff Johnson295189b2012-06-20 16:38:30 -07003024 /* Self STA MAC */
3025 tSirMacAddr selfStaMacAddr;
3026
3027 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
3028 this should be applied only to that session*/
3029 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
3030 * bssid needs to be out of the VOWifi feature flag */
3031 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
3032 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
3033 */
3034 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303035
Jeff Johnson295189b2012-06-20 16:38:30 -07003036}tSwitchChannelParams, *tpSwitchChannelParams;
3037
3038typedef PACKED_PRE struct PACKED_POST
3039{
3040 tHalMsgHeader header;
3041 tSwitchChannelParams switchChannelParams;
3042} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
3043
3044/*---------------------------------------------------------------------------
3045WLAN_HAL_CH_SWITCH_RSP
3046---------------------------------------------------------------------------*/
3047
3048typedef PACKED_PRE struct PACKED_POST
3049{
3050 /* Status */
3051 tANI_U32 status;
3052
3053 /* Channel number - same as in request*/
3054 tANI_U8 channelNumber;
3055
3056 /* HAL fills in the tx power used for mgmt frames in this field */
3057 tPowerdBm txMgmtPower;
3058
3059 /* BSSID needed to identify session - same as in request*/
3060 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303061
Jeff Johnson295189b2012-06-20 16:38:30 -07003062}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3063
3064typedef PACKED_PRE struct PACKED_POST
3065{
3066 tHalMsgHeader header;
3067 tSwitchChannelRspParams switchChannelRspParams;
3068} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3069
3070/*---------------------------------------------------------------------------
3071WLAN_HAL_UPD_EDCA_PARAMS_REQ
3072---------------------------------------------------------------------------*/
3073
3074typedef PACKED_PRE struct PACKED_POST
3075{
3076 /*BSS Index*/
3077 tANI_U16 bssIdx;
3078
3079 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303080 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003081
3082 /* Background */
3083 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303084
Jeff Johnson295189b2012-06-20 16:38:30 -07003085 /* Video */
3086 tSirMacEdcaParamRecord acvi;
3087
3088 /* Voice */
3089 tSirMacEdcaParamRecord acvo;
3090
3091} tEdcaParams, *tpEdcaParams;
3092
3093typedef PACKED_PRE struct PACKED_POST
3094{
3095 tHalMsgHeader header;
3096 tEdcaParams edcaParams;
3097} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3098
3099/*---------------------------------------------------------------------------
3100WLAN_HAL_UPD_EDCA_PARAMS_RSP
3101---------------------------------------------------------------------------*/
3102typedef PACKED_PRE struct PACKED_POST
3103{
3104 /*success or failure */
3105 tANI_U32 status;
3106} tEdcaRspParams, *tpEdcaRspParams;
3107
3108typedef PACKED_PRE struct PACKED_POST
3109{
3110 tHalMsgHeader header;
3111 tEdcaRspParams edcaRspParams;
3112} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3113
3114
3115
3116/*---------------------------------------------------------------------------
3117 * WLAN_HAL_GET_STATS_REQ
3118 *--------------------------------------------------------------------------*/
3119typedef PACKED_PRE struct PACKED_POST
3120
3121{
3122 /* Index of STA to which the statistics */
3123 tANI_U16 staIdx;
3124
3125 /* Encryption mode */
3126 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303127
Jeff Johnson295189b2012-06-20 16:38:30 -07003128 /* status */
3129 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303130
Jeff Johnson295189b2012-06-20 16:38:30 -07003131 /* Statistics */
3132 tANI_U32 sendBlocks;
3133 tANI_U32 recvBlocks;
3134 tANI_U32 replays;
3135 tANI_U8 micErrorCnt;
3136 tANI_U32 protExclCnt;
3137 tANI_U16 formatErrCnt;
3138 tANI_U16 unDecryptableCnt;
3139 tANI_U32 decryptErrCnt;
3140 tANI_U32 decryptOkCnt;
3141} tDpuStatsParams, * tpDpuStatsParams;
3142
3143typedef PACKED_PRE struct PACKED_POST
3144{
3145 /* Valid STA Idx for per STA stats request */
3146 tANI_U32 staId;
3147
3148 /* Categories of stats requested as specified in eHalStatsMask*/
3149 tANI_U32 statsMask;
3150}tHalStatsReqParams, *tpHalStatsReqParams;
3151
3152typedef PACKED_PRE struct PACKED_POST
3153{
3154 tHalMsgHeader header;
3155 tHalStatsReqParams statsReqParams;
3156} tHalStatsReqMsg, *tpHalStatsReqMsg;
3157
3158/*---------------------------------------------------------------------------
3159 * WLAN_HAL_GET_STATS_RSP
3160 *--------------------------------------------------------------------------*/
3161
3162typedef PACKED_PRE struct PACKED_POST
3163{
3164 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3165 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3166 // station successfully transmitted after more than one retransmission attempt
3167
Dino Mycle8afbac12014-07-04 22:06:17 +05303168 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3169 //(with and without retries, including multi-cast, broadcast)
3170 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3171 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003172 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3173 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3174 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3175 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 +05303176 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3177 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 -07003178 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3179 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 +05303180 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3181 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003182 //to provide this.
3183}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3184
3185
3186// defines tx_rate_flags
3187typedef enum eTxRateInfo
3188{
3189 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3190 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3191 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3192 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003193 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3194 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3195 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3196 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3197 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3198 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3199} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003200
3201
3202typedef PACKED_PRE struct PACKED_POST
3203{
Dino Mycle8afbac12014-07-04 22:06:17 +05303204 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 -07003205 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303206 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 -07003207 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303208 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3209 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003210 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303211 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3212 //for eg: if it is 10.5dBm, the value would be 105
3213 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3214 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003215
Dino Mycle8afbac12014-07-04 22:06:17 +05303216 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3217 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003218 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303219 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3220 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003221}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3222
3223typedef PACKED_PRE struct PACKED_POST
3224{
Dino Mycle8afbac12014-07-04 22:06:17 +05303225 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3226 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003227 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303228 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 -07003229 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303230 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 -07003231 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303232 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 -07003233 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303234 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 -07003235 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303236 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 -07003237 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303238 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 -07003239 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303240 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 -07003241 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303242 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 -07003243 //decrypted
3244 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3245
3246}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303247
Jeff Johnson295189b2012-06-20 16:38:30 -07003248typedef PACKED_PRE struct PACKED_POST
3249{
3250 tAniGlobalSecurityStats ucStats;
3251 tAniGlobalSecurityStats mcbcStats;
3252}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3253
3254typedef PACKED_PRE struct PACKED_POST
3255{
Dino Mycle8afbac12014-07-04 22:06:17 +05303256 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3257 //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 -07003258 //address 1 field
3259 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 +05303260 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 -07003261 //primary channel
3262 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 +05303263 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 -07003264 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303265 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3266 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003267 //decoded correctly
3268}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3269
3270typedef PACKED_PRE struct PACKED_POST
3271{
Dino Mycle8afbac12014-07-04 22:06:17 +05303272 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 -07003273 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303274 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3275 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 -07003276 //is transmitted
3277}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3278
Sushant Kaushik33200572015-08-05 16:46:20 +05303279// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3280typedef PACKED_PRE struct PACKED_POST
3281{
3282 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303283 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303284 tANI_U32 reserved;
3285 tANI_U32 reserved1;
3286}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3287
Jeff Johnson295189b2012-06-20 16:38:30 -07003288typedef PACKED_PRE struct PACKED_POST
3289{
3290 /* Success or Failure */
3291 tANI_U32 status;
3292
3293 /* STA Idx */
3294 tANI_U32 staId;
3295
3296 /* Categories of STATS being returned as per eHalStatsMask*/
3297 tANI_U32 statsMask;
3298
3299 /* message type is same as the request type */
3300 tANI_U16 msgType;
3301
3302 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303303 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003304
3305} tHalStatsRspParams, *tpHalStatsRspParams;
3306
3307
3308
3309typedef PACKED_PRE struct PACKED_POST
3310{
3311 tHalMsgHeader header;
3312 tHalStatsRspParams statsRspParams;
3313} tHalStatsRspMsg, *tpHalStatsRspMsg;
3314
Abhishek Singhbc310882015-05-22 15:17:02 +05303315 /*---------------------------------------------------------------------------
3316 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3317 *---------------------------------------------------------------------------*/
3318typedef PACKED_PRE struct PACKED_POST
3319{
3320 tANI_U32 rtsCtsValue;
3321}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3322
3323typedef PACKED_PRE struct PACKED_POST
3324{
3325 tHalMsgHeader header;
3326 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3327} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3328
Jeff Johnson295189b2012-06-20 16:38:30 -07003329/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303330 * WLAN_HAL_FW_STATS_REQ
3331 *---------------------------------------------------------------------------*/
3332 typedef PACKED_PRE struct PACKED_POST
3333{
3334 tANI_U32 type;
3335}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3336
3337typedef PACKED_PRE struct PACKED_POST
3338{
3339 tHalMsgHeader header;
3340 tHalfwStatsReqParams fwstatsReqParams;
3341} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3342
3343/*---------------------------------------------------------------------------
3344 * WLAN_HAL_FW_STATS_RSP
3345 *---------------------------------------------------------------------------*/
3346 typedef PACKED_PRE struct PACKED_POST
3347{
3348 tANI_U32 type;
3349 tANI_U32 length;
3350 tANI_U8 data[1];
3351
3352}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3353
3354typedef PACKED_PRE struct PACKED_POST
3355{
3356 tHalMsgHeader header;
3357 tHalfwStatsRspParams fwstatsRspParams;
3358} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3359
3360typedef enum
3361{
3362 FW_UBSP_STATS = 1,
3363} fwstatstype;
3364
3365
3366/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003367 * WLAN_HAL_SET_LINK_ST_REQ
3368 *--------------------------------------------------------------------------*/
3369typedef PACKED_PRE struct PACKED_POST
3370{
3371 tSirMacAddr bssid;
3372 tSirLinkState state;
3373 tSirMacAddr selfMacAddr;
3374} tLinkStateParams, *tpLinkStateParams;
3375
3376typedef PACKED_PRE struct PACKED_POST
3377{
3378 tHalMsgHeader header;
3379 tLinkStateParams linkStateParams;
3380} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3381
3382/*---------------------------------------------------------------------------
3383 * WLAN_HAL_SET_LINK_ST_RSP
3384 *--------------------------------------------------------------------------*/
3385
3386typedef PACKED_PRE struct PACKED_POST
3387{
3388 /*success or failure */
3389 tANI_U32 status;
3390} tLinkStateRspParams, *tpLinkStateRspParams;
3391
3392typedef PACKED_PRE struct PACKED_POST
3393{
3394 tHalMsgHeader header;
3395 tLinkStateRspParams linkStateRspParams;
3396} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3397
3398/*---------------------------------------------------------------------------
3399 * WLAN_HAL_ADD_TS_REQ
3400 *--------------------------------------------------------------------------*/
3401
3402/* TSPEC Params */
3403typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3404{
Jeff Johnson295189b2012-06-20 16:38:30 -07003405 tANI_U16 trafficType : 1;
3406 tANI_U16 tsid : 4;
3407 tANI_U16 direction : 2;
3408 tANI_U16 accessPolicy : 2;
3409 tANI_U16 aggregation : 1;
3410 tANI_U16 psb : 1;
3411 tANI_U16 userPrio : 3;
3412 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003413} __ani_attr_packed tSirMacTSInfoTfc;
3414
3415/* Flag to schedule the traffic type */
3416typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3417{
Jeff Johnson295189b2012-06-20 16:38:30 -07003418 tANI_U8 schedule : 1;
3419 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003420} __ani_attr_packed tSirMacTSInfoSch;
3421
3422/* Traffic and scheduling info */
3423typedef __ani_attr_pre_packed struct sSirMacTSInfo
3424{
3425 tSirMacTSInfoTfc traffic;
3426 tSirMacTSInfoSch schedule;
3427} __ani_attr_packed tSirMacTSInfo;
3428
3429/* Information elements */
3430typedef __ani_attr_pre_packed struct sSirMacTspecIE
3431{
3432 tANI_U8 type;
3433 tANI_U8 length;
3434 tSirMacTSInfo tsinfo;
3435 tANI_U16 nomMsduSz;
3436 tANI_U16 maxMsduSz;
3437 tANI_U32 minSvcInterval;
3438 tANI_U32 maxSvcInterval;
3439 tANI_U32 inactInterval;
3440 tANI_U32 suspendInterval;
3441 tANI_U32 svcStartTime;
3442 tANI_U32 minDataRate;
3443 tANI_U32 meanDataRate;
3444 tANI_U32 peakDataRate;
3445 tANI_U32 maxBurstSz;
3446 tANI_U32 delayBound;
3447 tANI_U32 minPhyRate;
3448 tANI_U16 surplusBw;
3449 tANI_U16 mediumTime;
3450}__ani_attr_packed tSirMacTspecIE;
3451
3452typedef PACKED_PRE struct PACKED_POST
3453{
3454 /* Station Index */
3455 tANI_U16 staIdx;
3456
3457 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3458 tANI_U16 tspecIdx;
3459
3460 /* To program TPE with required parameters */
3461 tSirMacTspecIE tspec;
3462
3463 /* U-APSD Flags: 1b per AC. Encoded as follows:
3464 b7 b6 b5 b4 b3 b2 b1 b0 =
3465 X X X X BE BK VI VO */
3466 tANI_U8 uAPSD;
3467
3468 /* These parameters are for all the access categories */
3469 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3470 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3471 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303472
Jeff Johnson295189b2012-06-20 16:38:30 -07003473} tAddTsParams, *tpAddTsParams;
3474
3475typedef PACKED_PRE struct PACKED_POST
3476{
3477 tHalMsgHeader header;
3478 tAddTsParams addTsParams;
3479} tAddTsReqMsg, *tpAddTsReqMsg;
3480
3481/*---------------------------------------------------------------------------
3482 * WLAN_HAL_ADD_TS_RSP
3483 *--------------------------------------------------------------------------*/
3484
3485typedef PACKED_PRE struct PACKED_POST
3486{
3487 /*success or failure */
3488 tANI_U32 status;
3489} tAddTsRspParams, *tpAddTsRspParams;
3490
3491typedef PACKED_PRE struct PACKED_POST
3492{
3493 tHalMsgHeader header;
3494 tAddTsRspParams addTsRspParams;
3495} tAddTsRspMsg, *tpAddTsRspMsg;
3496
3497
3498/*---------------------------------------------------------------------------
3499 * WLAN_HAL_DEL_TS_REQ
3500 *--------------------------------------------------------------------------*/
3501
3502typedef PACKED_PRE struct PACKED_POST
3503{
3504 /* Station Index */
3505 tANI_U16 staIdx;
3506
3507 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3508 tANI_U16 tspecIdx;
3509
3510 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303511 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003512
3513} tDelTsParams, *tpDelTsParams;
3514
3515typedef PACKED_PRE struct PACKED_POST
3516{
3517 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303518 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003519} tDelTsReqMsg, *tpDelTsReqMsg;
3520
3521/*---------------------------------------------------------------------------
3522 * WLAN_HAL_DEL_TS_RSP
3523 *--------------------------------------------------------------------------*/
3524
3525typedef PACKED_PRE struct PACKED_POST
3526{
3527 /*success or failure */
3528 tANI_U32 status;
3529} tDelTsRspParams, *tpDelTsRspParams;
3530
3531typedef PACKED_PRE struct PACKED_POST
3532{
3533 tHalMsgHeader header;
3534 tDelTsRspParams delTsRspParams;
3535} tDelTsRspMsg, *tpDelTsRspMsg;
3536
3537/* End of TSpec Parameters */
3538
3539/* Start of BLOCK ACK related Parameters */
3540
3541/*---------------------------------------------------------------------------
3542 * WLAN_HAL_ADD_BA_SESSION_REQ
3543 *--------------------------------------------------------------------------*/
3544
3545typedef PACKED_PRE struct PACKED_POST
3546{
3547 /* Station Index */
3548 tANI_U16 staIdx;
3549
3550 /* Peer MAC Address */
3551 tSirMacAddr peerMacAddr;
3552
3553 /* ADDBA Action Frame dialog token
3554 HAL will not interpret this object */
3555 tANI_U8 baDialogToken;
3556
3557 /* TID for which the BA is being setup
3558 This identifies the TC or TS of interest */
3559 tANI_U8 baTID;
3560
3561 /* 0 - Delayed BA (Not supported)
3562 1 - Immediate BA */
3563 tANI_U8 baPolicy;
3564
3565 /* Indicates the number of buffers for this TID (baTID)
3566 NOTE - This is the requested buffer size. When this
3567 is processed by HAL and subsequently by HDD, it is
3568 possible that HDD may change this buffer size. Any
3569 change in the buffer size should be noted by PE and
3570 advertized appropriately in the ADDBA response */
3571 tANI_U16 baBufferSize;
3572
3573 /* BA timeout in TU's 0 means no timeout will occur */
3574 tANI_U16 baTimeout;
3575
3576 /* b0..b3 - Fragment Number - Always set to 0
3577 b4..b15 - Starting Sequence Number of first MSDU
3578 for which this BA is setup */
3579 tANI_U16 baSSN;
3580
3581 /* ADDBA direction
3582 1 - Originator
3583 0 - Recipient */
3584 tANI_U8 baDirection;
3585} tAddBASessionParams, *tpAddBASessionParams;
3586
3587typedef PACKED_PRE struct PACKED_POST
3588{
3589 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303590 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003591}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3592
3593/*---------------------------------------------------------------------------
3594 * WLAN_HAL_ADD_BA_SESSION_RSP
3595 *--------------------------------------------------------------------------*/
3596
3597typedef PACKED_PRE struct PACKED_POST
3598{
3599 /*success or failure */
3600 tANI_U32 status;
3601
3602 /* Dialog token */
3603 tANI_U8 baDialogToken;
3604
3605 /* TID for which the BA session has been setup */
3606 tANI_U8 baTID;
3607
3608 /* BA Buffer Size allocated for the current BA session */
3609 tANI_U8 baBufferSize;
3610
3611 tANI_U8 baSessionID;
3612
3613 /* Reordering Window buffer */
3614 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303615
Jeff Johnson295189b2012-06-20 16:38:30 -07003616 /*Station Index to id the sta */
3617 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303618
Jeff Johnson295189b2012-06-20 16:38:30 -07003619 /* Starting Sequence Number */
3620 tANI_U16 SSN;
3621} tAddBASessionRspParams, *tpAddBASessionRspParams;
3622
3623typedef PACKED_PRE struct PACKED_POST
3624{
3625 tHalMsgHeader header;
3626 tAddBASessionRspParams addBASessionRspParams;
3627} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3628
3629/*---------------------------------------------------------------------------
3630 * WLAN_HAL_ADD_BA_REQ
3631 *--------------------------------------------------------------------------*/
3632
3633typedef PACKED_PRE struct PACKED_POST
3634{
3635 /* Session Id */
3636 tANI_U8 baSessionID;
3637
3638 /* Reorder Window Size */
3639 tANI_U8 winSize;
3640
3641#ifdef FEATURE_ON_CHIP_REORDERING
3642 tANI_BOOLEAN isReorderingDoneOnChip;
3643#endif
3644} tAddBAParams, *tpAddBAParams;
3645
3646typedef PACKED_PRE struct PACKED_POST
3647{
3648 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303649 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003650} tAddBAReqMsg, *tpAddBAReqMsg;
3651
3652
3653/*---------------------------------------------------------------------------
3654 * WLAN_HAL_ADD_BA_RSP
3655 *--------------------------------------------------------------------------*/
3656
3657typedef PACKED_PRE struct PACKED_POST
3658{
3659 /*success or failure */
3660 tANI_U32 status;
3661
3662 /* Dialog token */
3663 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303664
Jeff Johnson295189b2012-06-20 16:38:30 -07003665} tAddBARspParams, *tpAddBARspParams;
3666
3667typedef PACKED_PRE struct PACKED_POST
3668{
3669 tHalMsgHeader header;
3670 tAddBARspParams addBARspParams;
3671} tAddBARspMsg, *tpAddBARspMsg;
3672
3673
3674/*---------------------------------------------------------------------------
3675 * WLAN_HAL_TRIGGER_BA_REQ
3676 *--------------------------------------------------------------------------*/
3677
3678
3679typedef struct sAddBaInfo
3680{
3681 tANI_U16 fBaEnable : 1;
3682 tANI_U16 startingSeqNum: 12;
3683 tANI_U16 reserved : 3;
3684}tAddBaInfo, *tpAddBaInfo;
3685
3686typedef struct sTriggerBaRspCandidate
3687{
3688 tSirMacAddr staAddr;
3689 tAddBaInfo baInfo[STACFG_MAX_TC];
3690}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3691
3692typedef struct sTriggerBaCandidate
3693{
3694 tANI_U8 staIdx;
3695 tANI_U8 tidBitmap;
3696}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3697
3698typedef PACKED_PRE struct PACKED_POST
3699{
3700 /* Session Id */
3701 tANI_U8 baSessionID;
3702
Dino Mycle8afbac12014-07-04 22:06:17 +05303703 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003704 * Candidate List(tTriggerBaCandidate)
3705 */
3706 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303707
Jeff Johnson295189b2012-06-20 16:38:30 -07003708} tTriggerBAParams, *tpTriggerBAParams;
3709
3710typedef PACKED_PRE struct PACKED_POST
3711{
3712 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303713 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003714} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3715
3716
3717/*---------------------------------------------------------------------------
3718 * WLAN_HAL_TRIGGER_BA_RSP
3719 *--------------------------------------------------------------------------*/
3720
3721typedef PACKED_PRE struct PACKED_POST
3722{
Dino Mycle8afbac12014-07-04 22:06:17 +05303723
Jeff Johnson295189b2012-06-20 16:38:30 -07003724 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303725 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003726
3727 /* success or failure */
3728 tANI_U32 status;
3729
Dino Mycle8afbac12014-07-04 22:06:17 +05303730 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003731 * Rsp Candidate List(tTriggerRspBaCandidate)
3732 */
3733 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303734
Jeff Johnson295189b2012-06-20 16:38:30 -07003735
3736} tTriggerBARspParams, *tpTriggerBARspParams;
3737
3738typedef PACKED_PRE struct PACKED_POST
3739{
3740 tHalMsgHeader header;
3741 tTriggerBARspParams triggerBARspParams;
3742} tTriggerBARspMsg, *tpTriggerBARspMsg;
3743
3744/*---------------------------------------------------------------------------
3745 * WLAN_HAL_DEL_BA_REQ
3746 *--------------------------------------------------------------------------*/
3747
3748typedef PACKED_PRE struct PACKED_POST
3749{
3750 /* Station Index */
3751 tANI_U16 staIdx;
3752
3753 /* TID for which the BA session is being deleted */
3754 tANI_U8 baTID;
3755
3756 /* DELBA direction
3757 1 - Originator
3758 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303759 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003760} tDelBAParams, *tpDelBAParams;
3761
3762typedef PACKED_PRE struct PACKED_POST
3763{
3764 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303765 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003766} tDelBAReqMsg, *tpDelBAReqMsg;
3767
3768/*---------------------------------------------------------------------------
3769 * WLAN_HAL_DEL_BA_RSP
3770 *--------------------------------------------------------------------------*/
3771
3772typedef PACKED_PRE struct PACKED_POST
3773{
3774 /* success or failure */
3775 tANI_U32 status;
3776} tDelBARspParams, *tpDelBARspParams;
3777
3778typedef PACKED_PRE struct PACKED_POST
3779{
3780 tHalMsgHeader header;
3781 tDelBARspParams delBARspParams;
3782} tDelBARspMsg, *tpDelBARspMsg;
3783
3784
Jeff Johnson295189b2012-06-20 16:38:30 -07003785/*---------------------------------------------------------------------------
3786 * WLAN_HAL_TSM_STATS_REQ
3787 *--------------------------------------------------------------------------*/
3788typedef PACKED_PRE struct PACKED_POST
3789{
3790 /* Traffic Id */
3791 tANI_U8 tsmTID;
3792
3793 tSirMacAddr bssId;
3794} tTsmStatsParams, *tpTsmStatsParams;
3795
3796typedef PACKED_PRE struct PACKED_POST
3797{
3798 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303799 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003800} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3801
3802
3803/*---------------------------------------------------------------------------
3804 * WLAN_HAL_TSM_STATS_RSP
3805 *--------------------------------------------------------------------------*/
3806typedef PACKED_PRE struct PACKED_POST
3807{
3808 /*success or failure */
3809 tANI_U32 status;
3810
Dino Mycle8afbac12014-07-04 22:06:17 +05303811 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003812 tANI_U16 UplinkPktQueueDly;
3813
Dino Mycle8afbac12014-07-04 22:06:17 +05303814 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003815 tANI_U16 UplinkPktQueueDlyHist[4];
3816
Dino Mycle8afbac12014-07-04 22:06:17 +05303817 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003818 tANI_U32 UplinkPktTxDly;
3819
Dino Mycle8afbac12014-07-04 22:06:17 +05303820 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003821 tANI_U16 UplinkPktLoss;
3822
Dino Mycle8afbac12014-07-04 22:06:17 +05303823 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003824 tANI_U16 UplinkPktCount;
3825
Dino Mycle8afbac12014-07-04 22:06:17 +05303826 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003827 tANI_U8 RoamingCount;
3828
Dino Mycle8afbac12014-07-04 22:06:17 +05303829 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003830 tANI_U16 RoamingDly;
3831} tTsmStatsRspParams, *tpTsmStatsRspParams;
3832
3833typedef PACKED_PRE struct PACKED_POST
3834{
3835 tHalMsgHeader header;
3836 tTsmStatsRspParams tsmStatsRspParams;
3837} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3838
3839
Jeff Johnson295189b2012-06-20 16:38:30 -07003840/*---------------------------------------------------------------------------
3841 * WLAN_HAL_SET_KEYDONE_MSG
3842 *--------------------------------------------------------------------------*/
3843
3844typedef PACKED_PRE struct PACKED_POST
3845{
3846 /*bssid of the keys */
3847 tANI_U8 bssidx;
3848 tANI_U8 encType;
3849} tSetKeyDoneParams, *tpSetKeyDoneParams;
3850
3851typedef PACKED_PRE struct PACKED_POST
3852{
3853 tHalMsgHeader header;
3854 tSetKeyDoneParams setKeyDoneParams;
3855} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3856
3857/*---------------------------------------------------------------------------
3858 * WLAN_HAL_DOWNLOAD_NV_REQ
3859 *--------------------------------------------------------------------------*/
3860typedef PACKED_PRE struct PACKED_POST
3861{
3862 /* Fragment sequence number of the NV Image. Note that NV Image might not
3863 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303864 * can hence choose to chop the NV blob into multiple fragments starting with
3865 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003866 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3867 * concatenated together by HAL without any padding bytes in between.*/
3868 tANI_U16 fragNumber;
3869
3870 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303871 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003872 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3873 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3874 tANI_U16 isLastFragment;
3875
3876 /* NV Image size (number of bytes) */
3877 tANI_U32 nvImgBufferSize;
3878
3879 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3880 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3881} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3882
3883typedef PACKED_PRE struct PACKED_POST
3884{
3885 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3886 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3887 tHalMsgHeader header;
3888 tHalNvImgDownloadReqParams nvImageReqParams;
3889} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3890
3891/*---------------------------------------------------------------------------
3892 * WLAN_HAL_DOWNLOAD_NV_RSP
3893 *--------------------------------------------------------------------------*/
3894typedef PACKED_PRE struct PACKED_POST
3895{
3896 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3897 * after each fragment */
3898 tANI_U32 status;
3899} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3900
3901typedef PACKED_PRE struct PACKED_POST
3902{
3903 tHalMsgHeader header;
3904 tHalNvImgDownloadRspParams nvImageRspParams;
3905} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3906
3907/*---------------------------------------------------------------------------
3908 * WLAN_HAL_STORE_NV_IND
3909 *--------------------------------------------------------------------------*/
3910typedef PACKED_PRE struct PACKED_POST
3911{
3912 /* NV Item */
3913 eNvTable tableID;
3914
3915 /* Size of NV Blob */
3916 tANI_U32 nvBlobSize;
3917
Dino Mycle8afbac12014-07-04 22:06:17 +05303918 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003919 * NV blob i.e. uint8[nvBlobSize] */
3920} tHalNvStoreParams, *tpHalNvStoreParams;
3921
3922typedef PACKED_PRE struct PACKED_POST
3923{
3924 /* Note: The length specified in tHalNvStoreInd messages should be
3925 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3926 tHalMsgHeader header;
3927 tHalNvStoreParams nvStoreParams;
3928} tHalNvStoreInd, *tpHalNvStoreInd;
3929
3930/* End of Block Ack Related Parameters */
3931
3932/*---------------------------------------------------------------------------
3933 * WLAN_HAL_MIC_FAILURE_IND
3934 *--------------------------------------------------------------------------*/
3935
3936#define SIR_CIPHER_SEQ_CTR_SIZE 6
3937
3938typedef PACKED_PRE struct PACKED_POST
3939{
Dino Mycle8afbac12014-07-04 22:06:17 +05303940 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003941 tSirMacAddr taMacAddr; //transmitter address
3942 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303943 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003944 tANI_U8 IV1; // first byte of IV
3945 tANI_U8 keyId; // second byte of IV
3946 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3947 tSirMacAddr rxMacAddr; // receive address
3948} tSirMicFailureInfo, *tpSirMicFailureInfo;
3949
3950/* Definition for MIC failure indication
3951 MAC reports this each time a MIC failure occures on Rx TKIP packet
3952 */
3953typedef PACKED_PRE struct PACKED_POST
3954{
3955 tSirMacAddr bssId; // BSSID
3956 tSirMicFailureInfo info;
3957} tSirMicFailureInd, *tpSirMicFailureInd;
3958
3959typedef PACKED_PRE struct PACKED_POST
3960{
3961 tHalMsgHeader header;
3962 tSirMicFailureInd micFailureInd;
3963} tMicFailureIndMsg, *tpMicFailureIndMsg;
3964
Mohit Khanna4a70d262012-09-11 16:30:12 -07003965typedef PACKED_PRE struct PACKED_POST
3966{
3967 tANI_U16 opMode;
3968 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303969}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003970
3971typedef PACKED_PRE struct PACKED_POST
3972{
3973 tHalMsgHeader header;
3974 tUpdateVHTOpMode updateVhtOpMode;
3975} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3976
3977typedef PACKED_PRE struct PACKED_POST
3978{
3979 tANI_U32 status;
3980} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3981
3982typedef PACKED_PRE struct PACKED_POST
3983{
3984 tHalMsgHeader header;
3985 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3986} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3987
Jeff Johnson295189b2012-06-20 16:38:30 -07003988/*---------------------------------------------------------------------------
3989 * WLAN_HAL_UPDATE_BEACON_REQ
3990 *--------------------------------------------------------------------------*/
3991typedef PACKED_PRE struct PACKED_POST
3992{
3993
3994 tANI_U8 bssIdx;
3995
3996 //shortPreamble mode. HAL should update all the STA rates when it
3997 //receives this message
3998 tANI_U8 fShortPreamble;
3999 //short Slot time.
4000 tANI_U8 fShortSlotTime;
4001 //Beacon Interval
4002 tANI_U16 beaconInterval;
4003 //Protection related
4004 tANI_U8 llaCoexist;
4005 tANI_U8 llbCoexist;
4006 tANI_U8 llgCoexist;
4007 tANI_U8 ht20MhzCoexist;
4008 tANI_U8 llnNonGFCoexist;
4009 tANI_U8 fLsigTXOPProtectionFullSupport;
4010 tANI_U8 fRIFSMode;
4011
4012 tANI_U16 paramChangeBitmap;
4013}tUpdateBeaconParams, *tpUpdateBeaconParams;
4014
4015
4016typedef PACKED_PRE struct PACKED_POST
4017{
4018 tHalMsgHeader header;
4019 tUpdateBeaconParams updateBeaconParam;
4020} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
4021
4022/*---------------------------------------------------------------------------
4023 * WLAN_HAL_UPDATE_BEACON_RSP
4024 *--------------------------------------------------------------------------*/
4025typedef PACKED_PRE struct PACKED_POST
4026{
4027 tANI_U32 status;
4028} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
4029
4030typedef PACKED_PRE struct PACKED_POST
4031{
4032 tHalMsgHeader header;
4033 tUpdateBeaconRspParams updateBeaconRspParam;
4034} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
4035
4036/*---------------------------------------------------------------------------
4037 * WLAN_HAL_SEND_BEACON_REQ
4038 *--------------------------------------------------------------------------*/
4039typedef PACKED_PRE struct PACKED_POST
4040{
4041 tANI_U32 beaconLength; //length of the template.
4042 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
4043 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004044 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07004045 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
4046}tSendBeaconParams, *tpSendBeaconParams;
4047
4048
4049typedef PACKED_PRE struct PACKED_POST
4050{
4051 tHalMsgHeader header;
4052 tSendBeaconParams sendBeaconParam;
4053}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4054
4055/*---------------------------------------------------------------------------
4056 * WLAN_HAL_SEND_BEACON_RSP
4057 *--------------------------------------------------------------------------*/
4058typedef PACKED_PRE struct PACKED_POST
4059{
4060 tANI_U32 status;
4061} tSendBeaconRspParams, *tpSendBeaconRspParams;
4062
4063typedef PACKED_PRE struct PACKED_POST
4064{
4065 tHalMsgHeader header;
4066 tSendBeaconRspParams sendBeaconRspParam;
4067} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4068
4069#ifdef FEATURE_5GHZ_BAND
4070
4071/*---------------------------------------------------------------------------
4072 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4073 *--------------------------------------------------------------------------*/
4074typedef PACKED_PRE struct PACKED_POST
4075{
4076 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304077 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004078}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4079
4080
4081typedef PACKED_PRE struct PACKED_POST
4082{
4083 /* Link Parameters */
4084 tSirEnableRadarInfoType EnableRadarInfo;
4085}tEnableRadarReqParams, *tpEnableRadarReqParams;
4086
4087typedef PACKED_PRE struct PACKED_POST
4088{
4089 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304090 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004091}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4092
4093/*---------------------------------------------------------------------------
4094 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4095 *--------------------------------------------------------------------------*/
4096
4097typedef PACKED_PRE struct PACKED_POST
4098{
4099 /* Link Parameters */
4100 tSirMacAddr BSSID;
4101 /* success or failure */
4102 tANI_U32 status;
4103}tEnableRadarRspParams, *tpEnableRadarRspParams;
4104
4105typedef PACKED_PRE struct PACKED_POST
4106{
4107 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304108 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004109}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4110
4111/*---------------------------------------------------------------------------
4112 *WLAN_HAL_RADAR_DETECT_INTR_IND
4113 *--------------------------------------------------------------------------*/
4114
4115typedef PACKED_PRE struct PACKED_POST
4116{
4117 tANI_U8 radarDetChannel;
4118}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4119
4120typedef PACKED_PRE struct PACKED_POST
4121{
4122 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304123 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004124}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4125
4126/*---------------------------------------------------------------------------
4127 *WLAN_HAL_RADAR_DETECT_IND
4128 *-------------------------------------------------------------------------*/
4129typedef PACKED_PRE struct PACKED_POST
4130{
4131 /*channel number in which the RADAR detected*/
4132 tANI_U8 channelNumber;
4133
4134 /*RADAR pulse width*/
4135 tANI_U16 radarPulseWidth; // in usecond
4136
4137 /*Number of RADAR pulses */
4138 tANI_U16 numRadarPulse;
4139}tRadarDetectIndParams,*tpRadarDetectIndParams;
4140
4141typedef PACKED_PRE struct PACKED_POST
4142{
4143 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304144 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004145}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4146
4147
4148/*---------------------------------------------------------------------------
4149 *WLAN_HAL_GET_TPC_REPORT_REQ
4150 *-------------------------------------------------------------------------*/
4151typedef PACKED_PRE struct PACKED_POST
4152{
4153 tSirMacAddr sta;
4154 tANI_U8 dialogToken;
4155 tANI_U8 txpower;
4156}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4157
4158
4159typedef PACKED_PRE struct PACKED_POST
4160{
4161 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304162 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004163}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4164
4165/*---------------------------------------------------------------------------
4166 * WLAN_HAL_GET_TPC_REPORT_RSP
4167 *--------------------------------------------------------------------------*/
4168
4169typedef PACKED_PRE struct PACKED_POST
4170{
4171 /* success or failure */
4172 tANI_U32 status;
4173}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4174
4175typedef PACKED_PRE struct PACKED_POST
4176{
4177 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304178 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004179}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4180
4181#endif
4182
Jeff Johnson295189b2012-06-20 16:38:30 -07004183/*---------------------------------------------------------------------------
4184 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4185 *-------------------------------------------------------------------------*/
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4189 tANI_U32 probeRespTemplateLen;
4190 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4191 tSirMacAddr bssId;
4192
4193}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4194
4195typedef PACKED_PRE struct PACKED_POST
4196{
4197 tHalMsgHeader header;
4198 tSendProbeRespReqParams sendProbeRespReqParams ;
4199}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4200
4201/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304202 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004203 *--------------------------------------------------------------------------*/
4204
4205typedef PACKED_PRE struct PACKED_POST
4206{
4207 /* success or failure */
4208 tANI_U32 status;
4209}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4210
4211typedef PACKED_PRE struct PACKED_POST
4212{
4213 tHalMsgHeader header;
4214 tSendProbeRespRspParams sendProbeRespRspParams;
4215}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4216
4217
4218/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304219 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004220 *--------------------------------------------------------------------------*/
4221
4222typedef PACKED_PRE struct PACKED_POST
4223{
4224 /* success or failure */
4225 tANI_U32 status;
4226}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4227
4228typedef PACKED_PRE struct PACKED_POST
4229{
4230 tHalMsgHeader header;
4231 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4232}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4233
4234/*---------------------------------------------------------------------------
4235 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4236 *--------------------------------------------------------------------------*/
4237
4238typedef PACKED_PRE struct PACKED_POST
4239{
4240 tANI_U16 assocId;
4241 tANI_U16 staId;
4242 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4243 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004244 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304245 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004246
4247}tDeleteStaContextParams, *tpDeleteStaContextParams;
4248
4249
4250typedef PACKED_PRE struct PACKED_POST
4251{
4252 tHalMsgHeader header;
4253 tDeleteStaContextParams deleteStaContextParams;
4254}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4255
Anand Kumar012623a2013-01-11 17:00:00 -08004256typedef PACKED_PRE struct PACKED_POST
4257{
4258 tHalMsgHeader header;
4259 tANI_U8 assocId;
4260 tANI_U8 staIdx;
4261 tANI_U8 bssIdx;
4262 tANI_U8 uReasonCode;
4263 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004264#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4265 tANI_U8 staAddr[6];
4266 tANI_U8 bssId[6];
4267#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004268} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004269
4270/*---------------------------------------------------------------------------
4271 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4272 *--------------------------------------------------------------------------*/
4273
4274typedef PACKED_PRE struct PACKED_POST
4275{
4276 tBtAmpEventType btAmpEventType;
4277
4278}tBtAmpEventParams, *tpBtAmpEventParams;
4279
4280
4281
4282typedef PACKED_PRE struct PACKED_POST
4283{
4284 tHalMsgHeader header;
4285 tBtAmpEventParams btAmpEventParams;
4286}tBtAmpEventMsg, *tpBtAmpEventMsg;
4287
4288/*---------------------------------------------------------------------------
4289*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4290*--------------------------------------------------------------------------*/
4291
4292typedef PACKED_PRE struct PACKED_POST
4293{
4294 /* success or failure */
4295 tANI_U32 status;
4296}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4297
4298typedef PACKED_PRE struct PACKED_POST
4299{
4300 tHalMsgHeader header;
4301 tBtAmpEventRspParams btAmpEventRspParams;
4302}tBtAmpEventRsp, *tpBtAmpEventRsp;
4303
4304
4305/*---------------------------------------------------------------------------
4306 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4307 *--------------------------------------------------------------------------*/
4308
4309typedef PACKED_PRE struct PACKED_POST
4310{
4311 // Station Index. originates from HAL
4312 tANI_U8 ucSTAId;
4313
4314 // TID for which the transmit queue is being flushed
4315 tANI_U8 ucTid;
4316
4317}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4318
4319
4320typedef PACKED_PRE struct PACKED_POST
4321{
4322 tHalMsgHeader header;
4323 tTlHalFlushAcParams tlHalFlushAcParam;
4324}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4325
4326/*---------------------------------------------------------------------------
4327*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4328*--------------------------------------------------------------------------*/
4329
4330typedef PACKED_PRE struct PACKED_POST
4331{
4332 // Station Index. originates from HAL
4333 tANI_U8 ucSTAId;
4334
4335 // TID for which the transmit queue is being flushed
4336 tANI_U8 ucTid;
4337
4338 /* success or failure */
4339 tANI_U32 status;
4340}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4341
4342typedef PACKED_PRE struct PACKED_POST
4343{
4344 tHalMsgHeader header;
4345 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4346}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4347
4348/*---------------------------------------------------------------------------
4349 * WLAN_HAL_ENTER_IMPS_REQ
4350 *--------------------------------------------------------------------------*/
4351typedef PACKED_PRE struct PACKED_POST
4352{
4353 tHalMsgHeader header;
4354} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4355
4356/*---------------------------------------------------------------------------
4357 * WLAN_HAL_EXIT_IMPS_REQ
4358 *--------------------------------------------------------------------------*/
4359typedef PACKED_PRE struct PACKED_POST
4360{
4361 tHalMsgHeader header;
4362} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4363
4364/*---------------------------------------------------------------------------
4365 * WLAN_HAL_ENTER_BMPS_REQ
4366 *--------------------------------------------------------------------------*/
4367
4368typedef PACKED_PRE struct PACKED_POST
4369{
4370 tANI_U8 bssIdx;
4371 //TBTT value derived from the last beacon
4372#ifndef BUILD_QWPTTSTATIC
4373 tANI_U64 tbtt;
4374#endif
4375 tANI_U8 dtimCount;
4376 //DTIM period given to HAL during association may not be valid,
4377 //if association is based on ProbeRsp instead of beacon.
4378 tANI_U8 dtimPeriod;
4379
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004380 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004381 tANI_U32 rssiFilterPeriod;
4382 tANI_U32 numBeaconPerRssiAverage;
4383 tANI_U8 bRssiFilterEnable;
4384
4385} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4386
4387
4388typedef PACKED_PRE struct PACKED_POST
4389{
4390 tHalMsgHeader header;
4391 tHalEnterBmpsReqParams enterBmpsReq;
4392} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4393
4394/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304395 * WLAN_HAL_PRINT_REG_INFO_IND
4396 *--------------------------------------------------------------------------*/
4397typedef PACKED_PRE struct PACKED_POST
4398{
4399 uint32 regAddr;
4400 uint32 regValue;
4401} tHalRegDebugInfo, *tpRegDebugInfo;
4402
4403typedef PACKED_PRE struct PACKED_POST
4404{
4405 uint32 regCount;
4406 uint32 scenario;
4407 uint32 reasonCode;
4408} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4409
4410typedef PACKED_PRE struct PACKED_POST
4411{
4412 tHalMsgHeader header;
4413 tHalRegDebugInfoParams regParams;
4414} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4415
4416/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004417 * WLAN_HAL_EXIT_BMPS_REQ
4418 *--------------------------------------------------------------------------*/
4419typedef PACKED_PRE struct PACKED_POST
4420{
4421 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004422 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004423} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4424
4425typedef PACKED_PRE struct PACKED_POST
4426{
4427 tHalMsgHeader header;
4428 tHalExitBmpsReqParams exitBmpsReqParams;
4429} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4430
4431/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004432 * WLAN_HAL_MISSED_BEACON_IND
4433 *--------------------------------------------------------------------------*/
4434typedef PACKED_PRE struct PACKED_POST
4435{
4436 tANI_U8 bssIdx;
4437} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4438
4439typedef PACKED_PRE struct PACKED_POST
4440{
4441 tHalMsgHeader header;
4442 tHalMissedBeaconIndParams missedBeaconIndParams;
4443} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4444
4445/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004446 * WLAN_HAL_ADD_BCN_FILTER_REQ
4447 *--------------------------------------------------------------------------*/
4448/* Beacon Filtering data structures */
4449typedef PACKED_PRE struct PACKED_POST
4450{
4451 tANI_U8 offset;
4452 tANI_U8 value;
4453 tANI_U8 bitMask;
4454 tANI_U8 ref;
4455} tEidByteInfo, *tpEidByteInfo;
4456
Dino Mycle8afbac12014-07-04 22:06:17 +05304457typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004458{
4459 tANI_U16 capabilityInfo;
4460 tANI_U16 capabilityMask;
4461 tANI_U16 beaconInterval;
4462 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004463 tANI_U8 bssIdx;
4464 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004465} tBeaconFilterMsg, *tpBeaconFilterMsg;
4466
4467/* The above structure would be followed by multiple of below mentioned structure */
4468typedef PACKED_PRE struct PACKED_POST
4469{
4470 tANI_U8 elementId;
4471 tANI_U8 checkIePresence;
4472 tEidByteInfo byte;
4473} tBeaconFilterIe, *tpBeaconFilterIe;
4474
4475typedef PACKED_PRE struct PACKED_POST
4476{
4477 tHalMsgHeader header;
4478 tBeaconFilterMsg addBcnFilterParams;
4479} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4480
4481/*---------------------------------------------------------------------------
4482 * WLAN_HAL_REM_BCN_FILTER_REQ
4483 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304484typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004485{
4486 tANI_U8 ucIeCount;
4487 tANI_U8 ucRemIeId[1];
4488} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4489
4490typedef PACKED_PRE struct PACKED_POST
4491{
4492 tHalMsgHeader header;
4493 tRemBeaconFilterMsg remBcnFilterParams;
4494} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4495
4496/*---------------------------------------------------------------------------
4497 * WLAN_HAL_HOST_OFFLOAD_REQ
4498 *--------------------------------------------------------------------------*/
4499#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4500#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4501#define HAL_IPV6_NS_OFFLOAD 2
4502#define HAL_IPV6_ADDR_LEN 16
4503#define HAL_MAC_ADDR_LEN 6
4504#define HAL_OFFLOAD_DISABLE 0
4505#define HAL_OFFLOAD_ENABLE 1
4506#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004507#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004508#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004509#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004510
4511typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4512{
4513 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4514 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4515 //Only support 2 possible Network Advertisement IPv6 address
4516 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4517 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4518 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4519 tANI_U8 srcIPv6AddrValid : 1;
4520 tANI_U8 targetIPv6Addr1Valid : 1;
4521 tANI_U8 targetIPv6Addr2Valid : 1;
4522 tANI_U8 reserved1 : 5;
4523 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004524 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004525 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004526} tHalNSOffloadParams;
4527
4528typedef PACKED_PRE struct PACKED_POST
4529{
4530 tANI_U8 offloadType;
4531 tANI_U8 enableOrDisable;
4532 PACKED_PRE union PACKED_POST
4533 {
4534 tANI_U8 hostIpv4Addr [4];
4535 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4536 } params;
4537} tHalHostOffloadReq, *tpHalHostOffloadReq;
4538
4539typedef PACKED_PRE struct PACKED_POST
4540{
4541 tHalMsgHeader header;
4542 tHalHostOffloadReq hostOffloadParams;
4543 tHalNSOffloadParams nsOffloadParams;
4544} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4545
Leo Chang397deb72013-08-22 11:33:16 -07004546
4547#ifdef FEATURE_WLAN_LPHB
4548typedef enum
4549{
4550 WIFI_HB_SET_ENABLE = 0x0001,
4551 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4552 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4553 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4554 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4555 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4556}tLowPowerHeartBeatCmdType ;
4557
4558#define MAX_FLITER_SIZE 64
4559/*---------------------------------------------------------------------------
4560 *FEATURE_WLAN_LPHB REQ
4561 *--------------------------------------------------------------------------*/
4562typedef PACKED_PRE struct PACKED_POST
4563{
4564 uint32 hostIpv4Addr;
4565 uint32 destIpv4Addr;
4566 uint16 hostPort;
4567 uint16 destPort;
4568 uint16 timeOutSec; // in seconds
4569 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004570 uint16 timePeriodSec; // in seconds
4571 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004572} tlowPowerHeartBeatParamsTcpStruct;
4573
4574typedef PACKED_PRE struct PACKED_POST
4575{
4576 uint32 hostIpv4Addr;
4577 uint32 destIpv4Addr;
4578 uint16 hostPort;
4579 uint16 destPort;
4580 uint16 timePeriodSec;// in seconds
4581 uint16 timeOutSec; // in seconds
4582 tSirMacAddr gatewayMacAddr;
4583} tlowPowerHeartBeatParamsUdpStruct;
4584
4585typedef PACKED_PRE struct PACKED_POST
4586{
4587 uint32 offset;
4588 uint32 filterLength;
4589 uint8 filter[MAX_FLITER_SIZE];
4590} tlowPowerHeartBeatFilterStruct;
4591
4592typedef PACKED_PRE struct PACKED_POST
4593{
4594 uint8 heartBeatEnable;
4595 uint8 heartBeatType; //TCP or UDP
4596} tlowPowerHeartBeatEnableStruct;
4597
4598typedef PACKED_PRE struct PACKED_POST
4599{
4600 uint8 dummy;
4601} tlowPowerHeartBeatNetworkInfoStruct;
4602
4603
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 uint8 sessionIdx;
4607 uint16 lowPowerHeartBeatCmdType;
4608 PACKED_PRE union PACKED_PRO
4609 {
4610 tlowPowerHeartBeatEnableStruct control;
4611 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4612 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4613 tlowPowerHeartBeatParamsUdpStruct udpParams;
4614 tlowPowerHeartBeatNetworkInfoStruct info;
4615 }options;
4616} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4617
4618
4619typedef PACKED_PRE struct PACKED_POST
4620{
4621 tHalMsgHeader header;
4622 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4623} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4624
4625/*---------------------------------------------------------------------------
4626 * FEATURE_WLAN_LPHB RSP
4627 *--------------------------------------------------------------------------*/
4628
4629typedef PACKED_PRE struct PACKED_POST
4630{
4631 /* success or failure */
4632 uint8 sessionIdx;
4633 uint32 status;
4634 uint16 lowPowerHeartBeatCmdType;
4635}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4636
4637typedef PACKED_PRE struct PACKED_POST
4638{
4639 tHalMsgHeader header;
4640 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4641}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4642
4643
4644/*---------------------------------------------------------------------------
4645 * FEATURE_WLAN_LPHB IND
4646 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004647#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4648#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4649
4650#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4651#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004652#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004653
Kumar Anandea78e792013-10-10 23:47:01 -07004654
4655#define WIFI_LPHB_PROTO_UDP 0x01
4656#define WIFI_LPHB_PROTO_TCP 0x02
4657
Leo Chang397deb72013-08-22 11:33:16 -07004658typedef PACKED_PRE struct PACKED_POST
4659{
4660 uint8 bssIdx;
4661 uint8 sessionIdx;
4662 uint8 protocolType; /*TCP or UDP*/
4663 uint8 eventReason;
4664
4665}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4666
4667typedef PACKED_PRE struct PACKED_POST
4668{
4669 tHalMsgHeader header;
4670 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4671}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4672
4673#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004674
4675#ifdef FEATURE_WLAN_BATCH_SCAN
4676
4677/*---------------------------------------------------------------------------
4678 * WLAN_HAL_BATCHSCAN_SET_REQ
4679 *--------------------------------------------------------------------------*/
4680typedef PACKED_PRE struct PACKED_POST
4681{
4682 /* Scan Frerquency - default to 30Sec*/
4683 tANI_U32 scanInterval;
4684 tANI_U32 numScan2Batch;
4685 tANI_U32 bestNetworks;
4686 tANI_U8 rfBand;
4687 tANI_U8 rtt;
4688} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4689
4690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tHalMsgHeader header;
4693 tHalBatchScanSetParams batchScanParams;
4694} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4695
4696/*---------------------------------------------------------------------------
4697 * WLAN_HAL_BATCHSCAN_SET_RSP
4698 *--------------------------------------------------------------------------*/
4699typedef PACKED_PRE struct PACKED_POST
4700{
4701 tANI_U32 supportedMscan;
4702} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4703
4704typedef PACKED_PRE struct PACKED_POST
4705{
4706 tHalMsgHeader header;
4707 tHalBatchScanSetRspParam setBatchScanRspParam;
4708} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4709
4710/*---------------------------------------------------------------------------
4711* WLAN_HAL_BATCHSCAN_STOP_IND
4712*--------------------------------------------------------------------------*/
4713typedef PACKED_PRE struct PACKED_POST
4714{
4715 tANI_U32 param;
4716} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4717
4718typedef PACKED_PRE struct PACKED_POST
4719{
4720 tHalMsgHeader header;
4721 tHalBatchScanStopIndParam param;
4722} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4723
4724/*---------------------------------------------------------------------------
4725* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4726*--------------------------------------------------------------------------*/
4727typedef PACKED_PRE struct PACKED_POST
4728{
4729 tANI_U32 param;
4730} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4731
4732typedef PACKED_PRE struct PACKED_POST
4733{
4734 tHalMsgHeader header;
4735 tHalBatchScanTriggerResultParam param;
4736} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4737
4738/*---------------------------------------------------------------------------
4739 * WLAN_HAL_BATCHSCAN_GET_RSP
4740 *--------------------------------------------------------------------------*/
4741typedef PACKED_PRE struct PACKED_POST
4742{
4743 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004744 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004745 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304746 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004747 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4748 tANI_U32 timestamp;
4749} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4750
4751typedef PACKED_PRE struct PACKED_POST
4752{
4753 tANI_U32 scanId; /* Scan List ID. */
4754 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4755 tANI_U32 numNetworksInScanList;
4756 /* Variable data ptr: Number of AP in Scan List */
4757 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4758 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4759 tANI_U8 scanList[1];
4760} tHalBatchScanList, *tpHalBatchScanList;
4761
4762typedef PACKED_PRE struct PACKED_POST
4763{
4764 tANI_U32 timestamp;
4765 tANI_U32 numScanLists;
4766 boolean isLastResult;
4767 /* Variable Data ptr: Number of Scan Lists*/
4768 /* following isLastResult is data of type tHalBatchScanList
4769 * of sizeof(tHalBatchScanList) * numScanLists*/
4770 tANI_U8 scanResults[1];
4771} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4772
4773typedef PACKED_PRE struct PACKED_POST
4774{
4775 tHalMsgHeader header;
4776 tHalBatchScanResultIndParam resultIndMsgParam;
4777} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4778
4779#endif
4780
Jeff Johnson295189b2012-06-20 16:38:30 -07004781/*---------------------------------------------------------------------------
4782 * WLAN_HAL_KEEP_ALIVE_REQ
4783 *--------------------------------------------------------------------------*/
4784/* Packet Types. */
4785#define HAL_KEEP_ALIVE_NULL_PKT 1
4786#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4787
4788/* Enable or disable keep alive */
4789#define HAL_KEEP_ALIVE_DISABLE 0
4790#define HAL_KEEP_ALIVE_ENABLE 1
4791
4792/* Keep Alive request. */
4793typedef PACKED_PRE struct PACKED_POST
4794{
4795 tANI_U8 packetType;
4796 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304797 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004798 tHalIpv4Addr destIpv4Addr;
4799 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004800 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004801} tHalKeepAliveReq, *tpHalKeepAliveReq;
4802
4803typedef PACKED_PRE struct PACKED_POST
4804{
4805 tHalMsgHeader header;
4806 tHalKeepAliveReq KeepAliveParams;
4807} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4808
4809/*---------------------------------------------------------------------------
4810 * WLAN_HAL_SET_RSSI_THRESH_REQ
4811 *--------------------------------------------------------------------------*/
4812typedef PACKED_PRE struct PACKED_POST
4813{
4814 tANI_S8 ucRssiThreshold1 : 8;
4815 tANI_S8 ucRssiThreshold2 : 8;
4816 tANI_S8 ucRssiThreshold3 : 8;
4817 tANI_U8 bRssiThres1PosNotify : 1;
4818 tANI_U8 bRssiThres1NegNotify : 1;
4819 tANI_U8 bRssiThres2PosNotify : 1;
4820 tANI_U8 bRssiThres2NegNotify : 1;
4821 tANI_U8 bRssiThres3PosNotify : 1;
4822 tANI_U8 bRssiThres3NegNotify : 1;
4823 tANI_U8 bReserved10 : 2;
4824} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304825
Jeff Johnson295189b2012-06-20 16:38:30 -07004826typedef PACKED_PRE struct PACKED_POST
4827{
4828 tHalMsgHeader header;
4829 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004830} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004831
4832/*---------------------------------------------------------------------------
4833 * WLAN_HAL_ENTER_UAPSD_REQ
4834 *--------------------------------------------------------------------------*/
4835typedef PACKED_PRE struct PACKED_POST
4836{
4837 tANI_U8 bkDeliveryEnabled:1;
4838 tANI_U8 beDeliveryEnabled:1;
4839 tANI_U8 viDeliveryEnabled:1;
4840 tANI_U8 voDeliveryEnabled:1;
4841 tANI_U8 bkTriggerEnabled:1;
4842 tANI_U8 beTriggerEnabled:1;
4843 tANI_U8 viTriggerEnabled:1;
4844 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004845 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004846} tUapsdReqParams, *tpUapsdReqParams;
4847
4848typedef PACKED_PRE struct PACKED_POST
4849{
4850 tHalMsgHeader header;
4851 tUapsdReqParams enterUapsdParams;
4852} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4853
4854/*---------------------------------------------------------------------------
4855 * WLAN_HAL_EXIT_UAPSD_REQ
4856 *--------------------------------------------------------------------------*/
4857typedef PACKED_PRE struct PACKED_POST
4858{
4859 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004860 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004861} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4862
Kumar Anandea78e792013-10-10 23:47:01 -07004863#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4864#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004865/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004866 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4867 *--------------------------------------------------------------------------*/
4868typedef PACKED_PRE struct PACKED_POST
4869{
4870 tANI_U32 selfStaIdx:8;
4871 tANI_U32 ucPtrnId:8; // Pattern ID
4872 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4873 tANI_U32 uPtrnIntervalMs; // In msec
4874 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4875} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4876
4877typedef PACKED_PRE struct PACKED_POST
4878{
4879 tHalMsgHeader header;
4880 tHalAddPeriodicTxPtrn ptrnParams;
4881} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4882
4883/*---------------------------------------------------------------------------
4884 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4885 *--------------------------------------------------------------------------*/
4886typedef PACKED_PRE struct PACKED_POST
4887{
4888 tANI_U32 selfStaIdx:8;
4889 tANI_U32 rsvd:24;
4890 /* Bitmap of pattern IDs that needs to be deleted */
4891 tANI_U32 uPatternIdBitmap;
4892} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4893
4894typedef PACKED_PRE struct PACKED_POST
4895{
4896 tHalMsgHeader header;
4897 tHalDelPeriodicTxPtrn ptrnParams;
4898} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4899
4900/*---------------------------------------------------------------------------
4901 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4902 *--------------------------------------------------------------------------*/
4903typedef PACKED_PRE struct PACKED_POST
4904{
4905 /* Type of Failure indication */
4906 tANI_U32 bssIdx:8;
4907 tANI_U32 selfStaIdx:8;
4908 tANI_U32 rsvd:16;
4909 tANI_U32 status;
4910 tANI_U32 patternIdBitmap;
4911} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4912
4913typedef PACKED_PRE struct PACKED_POST
4914{
4915 tHalMsgHeader header;
4916 tHalPeriodicTxPtrnFwInd fwIndParams;
4917} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4918
4919/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004920 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4921 *--------------------------------------------------------------------------*/
4922#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4923#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4924
4925typedef PACKED_PRE struct PACKED_POST
4926{
4927 tANI_U8 ucPatternId; // Pattern ID
4928 // Pattern byte offset from beginning of the 802.11 packet to start of the
4929 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304930 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004931 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4932 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4933 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4934 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4935 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4936 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004937 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004938} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4939
4940typedef PACKED_PRE struct PACKED_POST
4941{
4942 tHalMsgHeader header;
4943 tHalWowlAddBcastPtrn ptrnParams;
4944} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304945
Jeff Johnsone7245742012-09-05 17:12:55 -07004946
4947
Jeff Johnson295189b2012-06-20 16:38:30 -07004948/*---------------------------------------------------------------------------
4949 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4950 *--------------------------------------------------------------------------*/
4951typedef PACKED_PRE struct PACKED_POST
4952{
4953 /* Pattern ID of the wakeup pattern to be deleted */
4954 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004955 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004956} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4957
4958typedef PACKED_PRE struct PACKED_POST
4959{
4960 tHalMsgHeader header;
4961 tHalWowlDelBcastPtrn ptrnParams;
4962} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4963
4964/*---------------------------------------------------------------------------
4965 * WLAN_HAL_ENTER_WOWL_REQ
4966 *--------------------------------------------------------------------------*/
4967typedef PACKED_PRE struct PACKED_POST
4968{
4969 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304970 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004971
4972 /* Magic pattern */
4973 tSirMacAddr magicPtrn;
4974
Dino Mycle8afbac12014-07-04 22:06:17 +05304975 /* Enables/disables packet pattern filtering in firmware.
4976 Enabling this flag enables broadcast pattern matching
4977 in Firmware. If unicast pattern matching is also desired,
4978 ucUcastPatternFilteringEnable flag must be set tot true
4979 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004980 */
4981 tANI_U8 ucPatternFilteringEnable;
4982
Dino Mycle8afbac12014-07-04 22:06:17 +05304983 /* Enables/disables unicast packet pattern filtering.
4984 This flag specifies whether we want to do pattern match
4985 on unicast packets as well and not just broadcast packets.
4986 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004987 (main controlling flag) is set to false
4988 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304989 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004990
Dino Mycle8afbac12014-07-04 22:06:17 +05304991 /* This configuration is valid only when magicPktEnable=1.
4992 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004993 * Channel Switch Action Frame.
4994 */
4995 tANI_U8 ucWowChnlSwitchRcv;
4996
Dino Mycle8afbac12014-07-04 22:06:17 +05304997 /* This configuration is valid only when magicPktEnable=1.
4998 * It requests hardware to wake up when it receives the
4999 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005000 */
5001 tANI_U8 ucWowDeauthRcv;
5002
Dino Mycle8afbac12014-07-04 22:06:17 +05305003 /* This configuration is valid only when magicPktEnable=1.
5004 * It requests hardware to wake up when it receives the
5005 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005006 */
5007 tANI_U8 ucWowDisassocRcv;
5008
Dino Mycle8afbac12014-07-04 22:06:17 +05305009 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005010 * It requests hardware to wake up when it has missed
5011 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05305012 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07005013 */
5014 tANI_U8 ucWowMaxMissedBeacons;
5015
Dino Mycle8afbac12014-07-04 22:06:17 +05305016 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005017 * This is a timeout value in units of microsec. It requests
5018 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05305019 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07005020 */
5021 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05305022
Jeff Johnson295189b2012-06-20 16:38:30 -07005023 /* This configuration directs the WoW packet filtering to look for EAP-ID
5024 * requests embedded in EAPOL frames and use this as a wake source.
5025 */
5026 tANI_U8 ucWoWEAPIDRequestEnable;
5027
5028 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
5029 * requests and use this as a wake source.
5030 */
5031 tANI_U8 ucWoWEAPOL4WayEnable;
5032
5033 /* This configuration allows a host wakeup on an network scan offload match.
5034 */
5035 tANI_U8 ucWowNetScanOffloadMatch;
5036
5037 /* This configuration allows a host wakeup on any GTK rekeying error.
5038 */
5039 tANI_U8 ucWowGTKRekeyError;
5040
5041 /* This configuration allows a host wakeup on BSS connection loss.
5042 */
5043 tANI_U8 ucWoWBSSConnLoss;
5044
Jeff Johnsone7245742012-09-05 17:12:55 -07005045 tANI_U8 bssIdx;
5046
Jeff Johnson295189b2012-06-20 16:38:30 -07005047} tHalWowlEnterParams, *tpHalWowlEnterParams;
5048
5049typedef PACKED_PRE struct PACKED_POST
5050{
5051 tHalMsgHeader header;
5052 tHalWowlEnterParams enterWowlParams;
5053} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5054
5055/*---------------------------------------------------------------------------
5056 * WLAN_HAL_EXIT_WOWL_REQ
5057 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005058
Jeff Johnson295189b2012-06-20 16:38:30 -07005059typedef PACKED_PRE struct PACKED_POST
5060{
Jeff Johnsone7245742012-09-05 17:12:55 -07005061 tANI_U8 bssIdx;
5062
5063} tHalWowlExitParams, *tpHalWowlExitParams;
5064
5065typedef PACKED_PRE struct PACKED_POST
5066{
5067 tHalMsgHeader header;
5068 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005069} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5070
5071/*---------------------------------------------------------------------------
5072 * WLAN_HAL_GET_RSSI_REQ
5073 *--------------------------------------------------------------------------*/
5074typedef PACKED_PRE struct PACKED_POST
5075{
5076 tHalMsgHeader header;
5077} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5078
Anand Kumar012623a2013-01-11 17:00:00 -08005079typedef PACKED_PRE struct PACKED_POST
5080{
5081 /* Valid STA Idx for per STA stats request */
5082 tANI_U32 staId;
5083
5084}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5085
5086
5087/*---------------------------------------------------------------------------
5088 * WLAN_HAL_GET_ROAM_RSSI_REQ
5089 *--------------------------------------------------------------------------*/
5090typedef PACKED_PRE struct PACKED_POST
5091{
5092 tHalMsgHeader header;
5093 tHalRoamRssiReqParams roamRssiReqParams;
5094} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5095
5096
Jeff Johnson295189b2012-06-20 16:38:30 -07005097/*---------------------------------------------------------------------------
5098 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5099 *--------------------------------------------------------------------------*/
5100typedef PACKED_PRE struct PACKED_POST {
5101 tANI_U8 staidx; // STA index
5102 tANI_U8 ac; // Access Category
5103 tANI_U8 up; // User Priority
5104 tANI_U32 srvInterval; // Service Interval
5105 tANI_U32 susInterval; // Suspend Interval
5106 tANI_U32 delayInterval; // Delay Interval
5107} tUapsdInfo, tpUapsdInfo;
5108
5109typedef PACKED_PRE struct PACKED_POST
5110{
5111 tHalMsgHeader header;
5112 tUapsdInfo enableUapsdAcParams;
5113} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5114
5115/*---------------------------------------------------------------------------
5116 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5117 *--------------------------------------------------------------------------*/
5118typedef PACKED_PRE struct PACKED_POST {
5119 tANI_U8 setMcstBcstFilterSetting;
5120 tANI_U8 setMcstBcstFilter;
5121} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5122
5123typedef PACKED_PRE struct PACKED_POST
5124{
5125 tHalMsgHeader header;
5126 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5127} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5128
5129/*---------------------------------------------------------------------------
5130 * WLAN_HAL_ENTER_IMPS_RSP
5131 *--------------------------------------------------------------------------*/
5132typedef PACKED_PRE struct PACKED_POST
5133{
5134 /* success or failure */
5135 tANI_U32 status;
5136} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5137
5138typedef PACKED_PRE struct PACKED_POST
5139{
5140 tHalMsgHeader header;
5141 tHalEnterImpsRspParams enterImpsRspParams;
5142} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5143
5144/*---------------------------------------------------------------------------
5145 * WLAN_HAL_EXIT_IMPS_RSP
5146 *--------------------------------------------------------------------------*/
5147typedef PACKED_PRE struct PACKED_POST
5148{
5149 /* success or failure */
5150 tANI_U32 status;
5151} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5152
5153typedef PACKED_PRE struct PACKED_POST
5154{
5155 tHalMsgHeader header;
5156 tHalExitImpsRspParams exitImpsRspParams;
5157} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5158
5159/*---------------------------------------------------------------------------
5160 * WLAN_HAL_ENTER_BMPS_RSP
5161 *--------------------------------------------------------------------------*/
5162typedef PACKED_PRE struct PACKED_POST
5163{
5164 /* success or failure */
5165 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005166 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005167} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5168
5169typedef PACKED_PRE struct PACKED_POST
5170{
5171 tHalMsgHeader header;
5172 tHalEnterBmpsRspParams enterBmpsRspParams;
5173} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5174
5175/*---------------------------------------------------------------------------
5176 * WLAN_HAL_EXIT_BMPS_RSP
5177 *--------------------------------------------------------------------------*/
5178typedef PACKED_PRE struct PACKED_POST
5179{
5180 /* success or failure */
5181 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005182 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005183} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5184
5185typedef PACKED_PRE struct PACKED_POST
5186{
5187 tHalMsgHeader header;
5188 tHalExitBmpsRspParams exitBmpsRspParams;
5189} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5190
5191/*---------------------------------------------------------------------------
5192 * WLAN_HAL_ENTER_UAPSD_RSP
5193 *--------------------------------------------------------------------------*/
5194typedef PACKED_PRE struct PACKED_POST
5195{
5196 /* success or failure */
5197 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005198 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005199}tUapsdRspParams, *tpUapsdRspParams;
5200
5201typedef PACKED_PRE struct PACKED_POST
5202{
5203 tHalMsgHeader header;
5204 tUapsdRspParams enterUapsdRspParams;
5205} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5206
5207/*---------------------------------------------------------------------------
5208 * WLAN_HAL_EXIT_UAPSD_RSP
5209 *--------------------------------------------------------------------------*/
5210typedef PACKED_PRE struct PACKED_POST
5211{
5212 /* success or failure */
5213 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005214 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005215} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5216
5217typedef PACKED_PRE struct PACKED_POST
5218{
5219 tHalMsgHeader header;
5220 tHalExitUapsdRspParams exitUapsdRspParams;
5221} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5222
5223/*---------------------------------------------------------------------------
5224 * WLAN_HAL_RSSI_NOTIFICATION_IND
5225 *--------------------------------------------------------------------------*/
5226typedef PACKED_PRE struct PACKED_POST
5227{
5228 tANI_U32 bRssiThres1PosCross : 1;
5229 tANI_U32 bRssiThres1NegCross : 1;
5230 tANI_U32 bRssiThres2PosCross : 1;
5231 tANI_U32 bRssiThres2NegCross : 1;
5232 tANI_U32 bRssiThres3PosCross : 1;
5233 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005234 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005235 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005236 tANI_U32 isBTCoexCompromise : 1;
5237 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005238 tANI_S8 refRssiThreshold1;
5239 tANI_S8 refRssiThreshold2;
5240 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005241} tHalRSSINotification, *tpHalRSSINotification;
5242
5243typedef PACKED_PRE struct PACKED_POST
5244{
5245 tHalMsgHeader header;
5246 tHalRSSINotification rssiNotificationParams;
5247} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5248
5249/*---------------------------------------------------------------------------
5250 * WLAN_HAL_GET_RSSI_RSP
5251 *--------------------------------------------------------------------------*/
5252typedef PACKED_PRE struct PACKED_POST
5253{
5254 /* success or failure */
5255 tANI_U32 status;
5256 tANI_S8 rssi;
5257} tHalGetRssiParams, *tpHalGetRspParams;
5258
5259typedef PACKED_PRE struct PACKED_POST
5260{
5261 tHalMsgHeader header;
5262 tHalGetRssiParams rssiRspParams;
5263} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5264
5265/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005266 * WLAN_HAL_GET_ROAM_RSSI_RSP
5267 *--------------------------------------------------------------------------*/
5268typedef PACKED_PRE struct PACKED_POST
5269{
5270 /* success or failure */
5271 tANI_U32 status;
5272
5273 tANI_U8 staId;
5274 tANI_S8 rssi;
5275} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5276
5277typedef PACKED_PRE struct PACKED_POST
5278{
5279 tHalMsgHeader header;
5280 tHalGetRoamRssiParams roamRssiRspParams;
5281} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5282
5283/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005284 * WLAN_HAL_ENTER_WOWL_RSP
5285 *--------------------------------------------------------------------------*/
5286typedef PACKED_PRE struct PACKED_POST
5287{
5288 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005289 tANI_U32 status;
5290 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005291} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5292
5293typedef PACKED_PRE struct PACKED_POST
5294{
5295 tHalMsgHeader header;
5296 tHalEnterWowlRspParams enterWowlRspParams;
5297} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5298
5299/*---------------------------------------------------------------------------
5300 * WLAN_HAL_EXIT_WOWL_RSP
5301 *--------------------------------------------------------------------------*/
5302typedef PACKED_PRE struct PACKED_POST
5303{
5304 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005305 tANI_U32 status;
5306 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005307} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5308
5309typedef PACKED_PRE struct PACKED_POST
5310{
5311 tHalMsgHeader header;
5312 tHalExitWowlRspParams exitWowlRspParams;
5313} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5314
5315/*---------------------------------------------------------------------------
5316 * WLAN_HAL_ADD_BCN_FILTER_RSP
5317 *--------------------------------------------------------------------------*/
5318typedef PACKED_PRE struct PACKED_POST
5319{
5320 /* success or failure */
5321 tANI_U32 status;
5322} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5323
5324typedef PACKED_PRE struct PACKED_POST
5325{
5326 tHalMsgHeader header;
5327 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5328} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5329
5330/*---------------------------------------------------------------------------
5331 * WLAN_HAL_REM_BCN_FILTER_RSP
5332 *--------------------------------------------------------------------------*/
5333typedef PACKED_PRE struct PACKED_POST
5334{
5335 /* success or failure */
5336 tANI_U32 status;
5337} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5338
5339typedef PACKED_PRE struct PACKED_POST
5340{
5341 tHalMsgHeader header;
5342 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5343} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5344
5345/*---------------------------------------------------------------------------
5346 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5347 *--------------------------------------------------------------------------*/
5348typedef PACKED_PRE struct PACKED_POST
5349{
5350 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005351 tANI_U32 status;
5352 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005353} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5354
5355typedef PACKED_PRE struct PACKED_POST
5356{
5357 tHalMsgHeader header;
5358 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5359} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5360
5361/*---------------------------------------------------------------------------
5362 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5363 *--------------------------------------------------------------------------*/
5364typedef PACKED_PRE struct PACKED_POST
5365{
5366 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005367 tANI_U32 status;
5368 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005369} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5370
5371typedef PACKED_PRE struct PACKED_POST
5372{
5373 tHalMsgHeader header;
5374 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5375} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5376
5377/*---------------------------------------------------------------------------
5378 * WLAN_HAL_HOST_OFFLOAD_RSP
5379 *--------------------------------------------------------------------------*/
5380typedef PACKED_PRE struct PACKED_POST
5381{
5382 /* success or failure */
5383 tANI_U32 status;
5384} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5385
5386typedef PACKED_PRE struct PACKED_POST
5387{
5388 tHalMsgHeader header;
5389 tHalHostOffloadRspParams hostOffloadRspParams;
5390} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5391
5392/*---------------------------------------------------------------------------
5393 * WLAN_HAL_KEEP_ALIVE_RSP
5394 *--------------------------------------------------------------------------*/
5395typedef PACKED_PRE struct PACKED_POST
5396{
5397 /* success or failure */
5398 tANI_U32 status;
5399} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5400
5401typedef PACKED_PRE struct PACKED_POST
5402{
5403 tHalMsgHeader header;
5404 tHalKeepAliveRspParams keepAliveRspParams;
5405} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5406
5407/*---------------------------------------------------------------------------
5408 * WLAN_HAL_SET_RSSI_THRESH_RSP
5409 *--------------------------------------------------------------------------*/
5410typedef PACKED_PRE struct PACKED_POST
5411{
5412 /* success or failure */
5413 tANI_U32 status;
5414} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5415
5416typedef PACKED_PRE struct PACKED_POST
5417{
5418 tHalMsgHeader header;
5419 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5420} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5421
5422/*---------------------------------------------------------------------------
5423 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5424 *--------------------------------------------------------------------------*/
5425typedef PACKED_PRE struct PACKED_POST
5426{
5427 /* success or failure */
5428 tANI_U32 status;
5429} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5430
5431typedef PACKED_PRE struct PACKED_POST
5432{
5433 tHalMsgHeader header;
5434 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5435} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5436
5437/*---------------------------------------------------------------------------
5438 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5439 *--------------------------------------------------------------------------*/
5440typedef PACKED_PRE struct PACKED_POST
5441{
5442 /* success or failure */
5443 tANI_U32 status;
5444} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5445
5446typedef PACKED_PRE struct PACKED_POST
5447{
5448 tHalMsgHeader header;
5449 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5450} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5451
5452/*---------------------------------------------------------------------------
5453 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5454 *--------------------------------------------------------------------------*/
5455
5456typedef PACKED_PRE struct PACKED_POST
5457{
5458 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5459 //the request has power constraints, this should be applied only to that session
5460 tSirMacAddr selfStaMacAddr;
5461 //In request,
5462 //power == MaxTx power to be used.
5463 tPowerdBm power;
5464
5465}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5466
5467
5468typedef PACKED_PRE struct PACKED_POST
5469{
5470 tHalMsgHeader header;
5471 tSetMaxTxPwrParams setMaxTxPwrParams;
5472}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5473
5474/*---------------------------------------------------------------------------
5475*WLAN_HAL_SET_MAX_TX_POWER_RSP
5476*--------------------------------------------------------------------------*/
5477
5478typedef PACKED_PRE struct PACKED_POST
5479{
5480 //power == tx power used for management frames.
5481 tPowerdBm power;
5482
5483 /* success or failure */
5484 tANI_U32 status;
5485}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5486
5487typedef PACKED_PRE struct PACKED_POST
5488{
5489 tHalMsgHeader header;
5490 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5491}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5492
Kumar Anandea78e792013-10-10 23:47:01 -07005493
Jeff Johnson295189b2012-06-20 16:38:30 -07005494/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005495 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5496 *--------------------------------------------------------------------------*/
5497
5498/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5499typedef enum
5500{
5501 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5502 // For 2.4GHz or 5GHz bands
5503 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5504 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5505 // End of valid enums
5506 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5507}tHalSetMaxTxPwrBandInfo;
5508
5509typedef PACKED_PRE struct PACKED_POST
5510{
5511 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005512 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005513}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5514
Kumar Anandea78e792013-10-10 23:47:01 -07005515
Arif Hussain36fda162013-08-30 14:46:57 -07005516typedef PACKED_PRE struct PACKED_POST
5517{
5518 tHalMsgHeader header;
5519 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5520}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5521
5522/*---------------------------------------------------------------------------
5523*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5524*--------------------------------------------------------------------------*/
5525
5526typedef PACKED_PRE struct PACKED_POST
5527{
5528 //power == tx power used for management frames.
5529 tPowerdBm power;
5530
5531 /* success or failure */
5532 tANI_U32 status;
5533}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5534
5535typedef PACKED_PRE struct PACKED_POST
5536{
5537 tHalMsgHeader header;
5538 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5539}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5540
5541/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005542 *WLAN_HAL_SET_TX_POWER_REQ
5543 *--------------------------------------------------------------------------*/
5544
5545typedef PACKED_PRE struct PACKED_POST
5546{
5547 /* TX Power in milli watts */
5548 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005549 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005550}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5551
5552
5553typedef PACKED_PRE struct PACKED_POST
5554{
5555 tHalMsgHeader header;
5556 tSetTxPwrReqParams setTxPwrReqParams;
5557}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5558
5559/*---------------------------------------------------------------------------
5560*WLAN_HAL_SET_TX_POWER_RSP
5561*--------------------------------------------------------------------------*/
5562
5563typedef PACKED_PRE struct PACKED_POST
5564{
5565 /* success or failure */
5566 tANI_U32 status;
5567}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5568
5569typedef PACKED_PRE struct PACKED_POST
5570{
5571 tHalMsgHeader header;
5572 tSetTxPwrRspParams setTxPwrRspParams;
5573}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5574
5575/*---------------------------------------------------------------------------
5576 *WLAN_HAL_GET_TX_POWER_REQ
5577 *--------------------------------------------------------------------------*/
5578
5579typedef PACKED_PRE struct PACKED_POST
5580{
5581 tANI_U8 staId;
5582}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5583
5584typedef PACKED_PRE struct PACKED_POST
5585{
5586 tHalMsgHeader header;
5587 tGetTxPwrReqParams getTxPwrReqParams;
5588}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5589
5590/*---------------------------------------------------------------------------
5591*WLAN_HAL_GET_TX_POWER_RSP
5592*--------------------------------------------------------------------------*/
5593
5594typedef PACKED_PRE struct PACKED_POST
5595{
5596 /* success or failure */
5597 tANI_U32 status;
5598
5599 /* TX Power in milli watts */
5600 tANI_U32 txPower;
5601}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5602
5603typedef PACKED_PRE struct PACKED_POST
5604{
5605 tHalMsgHeader header;
5606 tGetTxPwrRspParams getTxPwrRspParams;
5607}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5608
5609#ifdef WLAN_FEATURE_P2P
5610/*---------------------------------------------------------------------------
5611 *WLAN_HAL_SET_P2P_GONOA_REQ
5612 *--------------------------------------------------------------------------*/
5613
5614typedef PACKED_PRE struct PACKED_POST
5615{
5616 tANI_U8 opp_ps;
5617 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305618 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005619 tANI_U32 duration;
5620 tANI_U32 interval;
5621 tANI_U32 single_noa_duration;
5622 tANI_U8 psSelection;
5623}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5624
5625
5626typedef PACKED_PRE struct PACKED_POST
5627{
5628 tHalMsgHeader header;
5629 tSetP2PGONOAParams setP2PGONOAParams;
5630}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5631
5632/*---------------------------------------------------------------------------
5633*WLAN_HAL_SET_P2P_GONOA_RSP
5634*--------------------------------------------------------------------------*/
5635
5636typedef PACKED_PRE struct PACKED_POST
5637{
5638 /* success or failure */
5639 tANI_U32 status;
5640}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5641
5642typedef PACKED_PRE struct PACKED_POST
5643{
5644 tHalMsgHeader header;
5645 tSetP2PGONOARspParams setP2PGONOARspParams;
5646}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5647#endif
5648
5649/*---------------------------------------------------------------------------
5650 *WLAN_HAL_ADD_SELF_STA_REQ
5651 *--------------------------------------------------------------------------*/
5652
5653typedef PACKED_PRE struct PACKED_POST
5654{
5655 tSirMacAddr selfMacAddr;
5656 tANI_U32 status;
5657}tAddStaSelfParams, *tpAddStaSelfParams;
5658
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005659typedef PACKED_PRE struct PACKED_POST
5660{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005661 tHalMsgHeader header;
5662 tAddStaSelfParams addStaSelfParams;
5663}tAddStaSelfReq, *tpAddStaSelfReq;
5664
5665/* This V1 structure carries additionally the IFACE PERSONA
5666 of the interface as compared to the legacy control
5667 message */
5668typedef PACKED_PRE struct PACKED_POST
5669{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005670 tSirMacAddr selfMacAddr;
5671 tANI_U32 status;
5672 tHalIfacePersona iface_persona;
5673}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005674
5675typedef PACKED_PRE struct PACKED_POST
5676{
5677 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005678 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005679}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005680
5681/*---------------------------------------------------------------------------
5682*WLAN_HAL_ADD_SELF_STA_RSP
5683*--------------------------------------------------------------------------*/
5684
5685typedef PACKED_PRE struct PACKED_POST
5686{
5687 /* success or failure */
5688 tANI_U32 status;
5689
5690 /*Self STA Index */
5691 tANI_U8 selfStaIdx;
5692
5693 /* DPU Index (IGTK, PTK, GTK all same) */
5694 tANI_U8 dpuIdx;
5695
5696 /* DPU Signature */
5697 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305698
Jeff Johnson295189b2012-06-20 16:38:30 -07005699}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5700
5701typedef PACKED_PRE struct PACKED_POST
5702{
5703 tHalMsgHeader header;
5704 tAddStaSelfRspParams addStaSelfRspParams;
5705}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5706
5707
5708/*---------------------------------------------------------------------------
5709 WLAN_HAL_DEL_STA_SELF_REQ
5710---------------------------------------------------------------------------*/
5711
5712typedef PACKED_PRE struct PACKED_POST
5713{
5714 tSirMacAddr selfMacAddr;
5715
5716}tDelStaSelfParams, *tpDelStaSelfParams;
5717
5718typedef PACKED_PRE struct PACKED_POST
5719{
5720 tHalMsgHeader header;
5721 tDelStaSelfParams delStaSelfParams;
5722} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5723
5724
5725/*---------------------------------------------------------------------------
5726 WLAN_HAL_DEL_STA_SELF_RSP
5727---------------------------------------------------------------------------*/
5728
5729typedef PACKED_PRE struct PACKED_POST
5730{
5731 /*success or failure */
5732 tANI_U32 status;
5733
5734 tSirMacAddr selfMacAddr;
5735}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5736
5737typedef PACKED_PRE struct PACKED_POST
5738{
5739 tHalMsgHeader header;
5740 tDelStaSelfRspParams delStaSelfRspParams;
5741} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5742
5743
5744#ifdef WLAN_FEATURE_VOWIFI_11R
5745
5746/*---------------------------------------------------------------------------
5747 *WLAN_HAL_AGGR_ADD_TS_REQ
5748 *--------------------------------------------------------------------------*/
5749
5750typedef PACKED_PRE struct PACKED_POST
5751{
5752 /* Station Index */
5753 tANI_U16 staIdx;
5754
5755 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5756 /* This will carry the bitmap with the bit positions representing different AC.s*/
5757 tANI_U16 tspecIdx;
5758
5759 /* Tspec info per AC To program TPE with required parameters */
5760 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5761
5762 /* U-APSD Flags: 1b per AC. Encoded as follows:
5763 b7 b6 b5 b4 b3 b2 b1 b0 =
5764 X X X X BE BK VI VO */
5765 tANI_U8 uAPSD;
5766
5767 /* These parameters are for all the access categories */
5768 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5769 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5770 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5771
5772}tAggrAddTsParams, *tpAggrAddTsParams;
5773
5774
5775typedef PACKED_PRE struct PACKED_POST
5776{
5777 tHalMsgHeader header;
5778 tAggrAddTsParams aggrAddTsParam;
5779}tAggrAddTsReq, *tpAggrAddTsReq;
5780
5781/*---------------------------------------------------------------------------
5782*WLAN_HAL_AGGR_ADD_TS_RSP
5783*--------------------------------------------------------------------------*/
5784
5785typedef PACKED_PRE struct PACKED_POST
5786{
5787 /* success or failure */
5788 tANI_U32 status0;
5789 /* FIXME PRIMA for future use for 11R */
5790 tANI_U32 status1;
5791}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5792
5793typedef PACKED_PRE struct PACKED_POST
5794{
5795 tHalMsgHeader header;
5796 tAggrAddTsRspParams aggrAddTsRspParam;
5797}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5798
5799#endif
5800
5801/*---------------------------------------------------------------------------
5802 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5803 *--------------------------------------------------------------------------*/
5804typedef PACKED_PRE struct PACKED_POST
5805{
5806 tANI_U8 isAppsCpuAwake;
5807} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5808
5809typedef PACKED_PRE struct PACKED_POST
5810{
5811 tHalMsgHeader header;
5812 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5813} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5814
5815/*---------------------------------------------------------------------------
5816 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5817 *--------------------------------------------------------------------------*/
5818typedef PACKED_PRE struct PACKED_POST
5819{
5820 /* success or failure */
5821 tANI_U32 status;
5822} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5823
5824typedef PACKED_PRE struct PACKED_POST
5825{
5826 tHalMsgHeader header;
5827 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5828} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5829/*---------------------------------------------------------------------------
5830 * WLAN_HAL_DUMP_COMMAND_REQ
5831 *--------------------------------------------------------------------------*/
5832
5833typedef PACKED_PRE struct PACKED_POST
5834{
5835 tANI_U32 argument1;
5836 tANI_U32 argument2;
5837 tANI_U32 argument3;
5838 tANI_U32 argument4;
5839 tANI_U32 argument5;
5840
5841}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5842
5843typedef PACKED_PRE struct PACKED_POST
5844{
5845 tHalMsgHeader header;
5846 tHalDumpCmdReqParams dumpCmdReqParams;
5847} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5848
5849/*---------------------------------------------------------------------------
5850 * WLAN_HAL_DUMP_COMMAND_RSP
5851 *--------------------------------------------------------------------------*/
5852
5853typedef PACKED_PRE struct PACKED_POST
5854{
5855 /* success or failure */
5856 tANI_U32 status;
5857 /*Length of the responce message*/
5858 tANI_U32 rspLength;
5859 /*FiXME: Currently considering the the responce will be less than 100bytes */
5860 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305861
Jeff Johnson295189b2012-06-20 16:38:30 -07005862} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5863
5864typedef PACKED_PRE struct PACKED_POST
5865{
5866 tHalMsgHeader header;
5867 tHalDumpCmdRspParams dumpCmdRspParams;
5868} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5869
5870/*---------------------------------------------------------------------------
5871 *WLAN_HAL_COEX_IND
5872 *-------------------------------------------------------------------------*/
5873#define WLAN_COEX_IND_DATA_SIZE (4)
5874#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5875#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005876#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5877#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005878#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5879#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305880#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5881#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305882#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005883
5884typedef PACKED_PRE struct PACKED_POST
5885{
5886 /*Coex Indication Type*/
5887 tANI_U32 coexIndType;
5888
5889 /*Coex Indication Data*/
5890 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5891}tCoexIndParams,*tpCoexIndParams;
5892
5893typedef PACKED_PRE struct PACKED_POST
5894{
5895 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305896 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005897}tCoexIndMsg, *tpCoexIndMsg;
5898
5899/*---------------------------------------------------------------------------
5900 *WLAN_HAL_OTA_TX_COMPL_IND
5901 *-------------------------------------------------------------------------*/
5902
5903typedef PACKED_PRE struct PACKED_POST
5904{
5905 /*Tx Complete Indication Success or Failure*/
5906 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305907 /* Dialog token */
5908 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005909}tTxComplParams,*tpTxComplParams;
5910
5911typedef PACKED_PRE struct PACKED_POST
5912{
5913 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305914 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005915}tTxComplIndMsg, *tpTxComplIndMsg;
5916
5917/*---------------------------------------------------------------------------
5918 * WLAN_HAL_HOST_SUSPEND_IND
5919 *-------------------------------------------------------------------------*/
5920
5921typedef PACKED_PRE struct PACKED_POST
5922{
5923 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305924 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005925}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5926
5927typedef PACKED_PRE struct PACKED_POST
5928{
5929 tHalMsgHeader header;
5930 tHalWlanHostSuspendIndParam suspendIndParams;
5931}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5932
5933/*---------------------------------------------------------------------------
5934 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5935 *-------------------------------------------------------------------------*/
5936
5937typedef PACKED_PRE struct PACKED_POST
5938{
5939 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305940 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005941}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5942
5943typedef PACKED_PRE struct PACKED_POST
5944{
5945 tHalMsgHeader header;
5946 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5947}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5948
5949#ifdef WLAN_FEATURE_P2P
5950/*---------------------------------------------------------------------------
5951 *WLAN_HAL_NOA_ATTR_IND
5952 *-------------------------------------------------------------------------*/
5953
5954typedef PACKED_PRE struct PACKED_POST
5955{
5956 tANI_U8 index ;
5957 tANI_U8 oppPsFlag ;
5958 tANI_U16 ctWin ;
5959
5960 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005961 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005962 tANI_U32 uNoa1Duration;
5963 tANI_U32 uNoa1Interval;
5964 tANI_U32 uNoa1StartTime;
5965
5966 tANI_U16 uNoa2IntervalCnt;
5967 tANI_U16 rsvd2;
5968 tANI_U32 uNoa2Duration;
5969 tANI_U32 uNoa2Interval;
5970 tANI_U32 uNoa2StartTime;
5971
5972 tANI_U32 status;
5973}tNoaAttrIndParams, *tpNoaAttrIndParams;
5974
5975typedef PACKED_PRE struct PACKED_POST
5976{
5977 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305978 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005979}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005980
5981/*---------------------------------------------------------------------------
5982 *WLAN_HAL_NOA_START_IND
5983 *-------------------------------------------------------------------------*/
5984
5985typedef PACKED_PRE struct PACKED_POST
5986{
5987 tANI_U32 status;
5988 tANI_U32 bssIdx;
5989}tNoaStartIndParams, *tpNoaStartIndParams;
5990
5991typedef PACKED_PRE struct PACKED_POST
5992{
5993 tHalMsgHeader header;
5994 tNoaStartIndParams noaStartIndParams;
5995}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005996#endif
5997
5998/*---------------------------------------------------------------------------
5999 * WLAN_HAL_HOST_RESUME_REQ
6000 *-------------------------------------------------------------------------*/
6001
6002typedef PACKED_PRE struct PACKED_POST
6003{
6004 tANI_U8 configuredMcstBcstFilterSetting;
6005}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
6006
6007typedef PACKED_PRE struct PACKED_POST
6008{
6009 tHalMsgHeader header;
6010 tHalWlanHostResumeReqParam resumeReqParams;
6011}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
6012
6013/*---------------------------------------------------------------------------
6014 * WLAN_HAL_HOST_RESUME_RSP
6015 *--------------------------------------------------------------------------*/
6016typedef PACKED_PRE struct PACKED_POST
6017{
6018 /* success or failure */
6019 tANI_U32 status;
6020} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
6021
6022typedef PACKED_PRE struct PACKED_POST
6023{
6024 tHalMsgHeader header;
6025 tHalHostResumeRspParams hostResumeRspParams;
6026} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
6027
Anand Kumar012623a2013-01-11 17:00:00 -08006028typedef PACKED_PRE struct PACKED_POST
6029{
6030 tANI_U16 staIdx;
6031 // Peer MAC Address, whose BA session has timed out
6032 tSirMacAddr peerMacAddr;
6033 // TID for which a BA session timeout is being triggered
6034 tANI_U8 baTID;
6035 // DELBA direction
6036 // 1 - Originator
6037 // 0 - Recipient
6038 tANI_U8 baDirection;
6039 tANI_U32 reasonCode;
6040 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6041} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6042
6043typedef PACKED_PRE struct PACKED_POST
6044{
6045 tHalMsgHeader header;
6046 tHalWlanDelBaIndMsg hostdelBaParam;
6047} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6048
Jeff Johnson295189b2012-06-20 16:38:30 -07006049/*---------------------------------------------------------------------------
6050 *PNO Messages
6051 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006052/* Max number of channels that a network can be found on*/
6053/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6054 * be changed at same time
6055 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006056#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006057
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306058/*Max number of channels that a network can be found on*/
6059#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6060
Jeff Johnson295189b2012-06-20 16:38:30 -07006061/*Maximum numbers of networks supported by PNO*/
6062#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6063
6064/*The number of scan time intervals that can be programmed into PNO*/
6065#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6066
6067/*Maximum size of the probe template*/
6068#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6069
Dino Mycle8afbac12014-07-04 22:06:17 +05306070/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006071 Immediate - scanning will start immediately and PNO procedure will
6072 be repeated based on timer
6073 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006074 Resume - scanning will start on system resume
6075 Delay - start the scan timer to trigger PNO scan
6076 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006077typedef enum
6078{
6079 ePNO_MODE_IMMEDIATE,
6080 ePNO_MODE_ON_SUSPEND,
6081 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306082 ePNO_MODE_DELAY,
6083 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006084 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6085} ePNOMode;
6086
6087/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306088typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006089{
Dino Mycle8afbac12014-07-04 22:06:17 +05306090 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006091 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306092
Jeff Johnson295189b2012-06-20 16:38:30 -07006093 // Upper layer authentication types
6094 eAUTH_TYPE_WPA = 2,
6095 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306096
Jeff Johnson295189b2012-06-20 16:38:30 -07006097 eAUTH_TYPE_RSN = 4,
6098 eAUTH_TYPE_RSN_PSK = 5,
6099 eAUTH_TYPE_FT_RSN = 6,
6100 eAUTH_TYPE_FT_RSN_PSK = 7,
6101 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6102 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006103 eAUTH_TYPE_CCKM_WPA = 10,
6104 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306105 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6106 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306107
Jeff Johnson295189b2012-06-20 16:38:30 -07006108 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6109
6110}tAuthType;
6111
6112/* Encryption type */
6113typedef enum eEdType
6114{
6115 eED_ANY = 0,
6116 eED_NONE = 1,
6117 eED_WEP = 2,
6118 eED_TKIP = 3,
6119 eED_CCMP = 4,
6120 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306121
Jeff Johnson295189b2012-06-20 16:38:30 -07006122 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6123} tEdType;
6124
6125/* SSID broadcast type */
6126typedef enum eSSIDBcastType
6127{
6128 eBCAST_UNKNOWN = 0,
6129 eBCAST_NORMAL = 1,
6130 eBCAST_HIDDEN = 2,
6131
6132 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6133} tSSIDBcastType;
6134
Dino Mycle8afbac12014-07-04 22:06:17 +05306135/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006136 The network description for which PNO will have to look for
6137*/
6138typedef PACKED_PRE struct PACKED_POST
6139{
6140 /*SSID of the BSS*/
6141 tSirMacSSid ssId;
6142
6143 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306144 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006145
6146 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306147 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006148
Dino Mycle8afbac12014-07-04 22:06:17 +05306149 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006150 0 - if all channels */
6151 tANI_U8 ucChannelCount;
6152 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6153
6154 /*Indicates the RSSI threshold for the network to be considered*/
6155 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306156}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006157
6158typedef PACKED_PRE struct PACKED_POST
6159{
6160 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306161 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006162
Dino Mycle8afbac12014-07-04 22:06:17 +05306163 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006164 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306165 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006166
Dino Mycle8afbac12014-07-04 22:06:17 +05306167 /*e.g: 2 3
6168 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006169 - it will wait 2s between consecutive scans for 3 times
6170 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306171}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006172
Dino Mycle8afbac12014-07-04 22:06:17 +05306173/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006174 The network parameters to be sent to the PNO algorithm
6175*/
6176typedef PACKED_PRE struct PACKED_POST
6177{
6178 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306179 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006180
Dino Mycle8afbac12014-07-04 22:06:17 +05306181 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006182 two consecutive scan procedures
6183 If the desired is for a uniform timer that fires always at the exact same
6184 interval - one single value is to be set
6185 If there is a desire for a more complex - telescopic like timer multiple
6186 values can be set - once PNO reaches the end of the array it will
6187 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306188 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006189
6190}tScanTimersType;
6191
6192typedef PACKED_PRE struct PACKED_POST {
6193
6194 /*Enable PNO*/
6195 tANI_U32 enable;
6196
6197 /*Immediate, On Suspend, On Resume*/
6198 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306199
Jeff Johnson295189b2012-06-20 16:38:30 -07006200 /*Number of networks sent for PNO*/
6201 tANI_U32 ucNetworksCount;
6202
6203 /*The networks that PNO needs to look for*/
6204 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6205
6206 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306207 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006208
6209 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306210 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006211 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6212
6213 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306214 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006215 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6216
6217} tPrefNetwListParams, * tpPrefNetwListParams;
6218
6219/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306220 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006221*/
6222typedef PACKED_PRE struct PACKED_POST
6223{
6224 tHalMsgHeader header;
6225 tPrefNetwListParams prefNetwListParams;
6226} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6227
6228
Dino Mycle8afbac12014-07-04 22:06:17 +05306229/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006230 The network description for which PNO will have to look for
6231*/
6232typedef PACKED_PRE struct PACKED_POST
6233{
6234 /*SSID of the BSS*/
6235 tSirMacSSid ssId;
6236
6237 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306238 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006239
6240 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306241 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006242
6243 /*SSID broadcast type, normal, hidden or unknown*/
6244 tSSIDBcastType bcastNetworkType;
6245
Dino Mycle8afbac12014-07-04 22:06:17 +05306246 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006247 0 - if all channels */
6248 tANI_U8 ucChannelCount;
6249 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6250
6251 /*Indicates the RSSI threshold for the network to be considered*/
6252 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306253}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006254
6255typedef PACKED_PRE struct PACKED_POST {
6256
6257 /*Enable PNO*/
6258 tANI_U32 enable;
6259
6260 /*Immediate, On Suspend, On Resume*/
6261 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306262
Jeff Johnson295189b2012-06-20 16:38:30 -07006263 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306264 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006265
6266 /*The networks that PNO needs to look for*/
6267 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6268
6269 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306270 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006271
6272 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306273 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006274 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6275
6276 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306277 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006278 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6279
6280} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6281
6282/*
6283 Preferred network list request new
6284*/
6285typedef PACKED_PRE struct PACKED_POST
6286{
6287 tHalMsgHeader header;
6288 tPrefNetwListParamsNew prefNetwListParams;
6289} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6290
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006291#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6292typedef PACKED_PRE struct PACKED_POST
6293{
6294 tSirMacSSid ssId;
6295 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6296 tANI_U32 authentication;
6297 tEdType encryption;
6298 tEdType mcencryption;
6299 tANI_U8 ChannelCount;
6300 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6301}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006302
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006303typedef PACKED_PRE struct PACKED_POST
6304{
6305 tANI_U8 mdiePresent;
6306 tANI_U16 mobilityDomain;
6307}tMobilityDomainInfo;
6308
6309typedef PACKED_PRE struct PACKED_POST {
6310 eAniBoolean RoamScanOffloadEnabled;
6311 tANI_S8 LookupThreshold;
6312 tANI_U8 RoamRssiDiff;
6313 tANI_U8 ChannelCacheType;
6314 tANI_U8 Command;
6315 tANI_U8 StartScanReason;
6316 tANI_U16 NeighborScanTimerPeriod;
6317 tANI_U16 NeighborRoamScanRefreshPeriod;
6318 tANI_U16 NeighborScanChannelMinTime;
6319 tANI_U16 NeighborScanChannelMaxTime;
6320 tANI_U16 EmptyRefreshScanPeriod;
6321 tANI_U8 ValidChannelCount;
6322 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006323 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006324
6325 tANI_U16 us24GProbeSize;
6326 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6327 tANI_U16 us5GProbeSize;
6328 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6329 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006330 tANI_U8 nProbes;
6331 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006332 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006333 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006334 tANI_U8 RoamOffloadEnabled;
6335 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6336 tANI_U8 Prefer5GHz;
6337 tANI_U8 RoamRssiCatGap;
6338 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006339 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6340 tRoamNetworkType ConnectedNetwork;
6341 tMobilityDomainInfo MDID;
6342} tRoamCandidateListParams, * tpRoamCandidateListParams;
6343
6344typedef PACKED_PRE struct PACKED_POST
6345{
Kumar Anandea78e792013-10-10 23:47:01 -07006346 tHalMsgHeader header;
6347 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006348} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6349
6350typedef PACKED_PRE struct PACKED_POST
6351{
Kumar Anandea78e792013-10-10 23:47:01 -07006352 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006353
Kumar Anandea78e792013-10-10 23:47:01 -07006354 /* status of the request - just to indicate that PNO has acknowledged
6355 * the request and will start scanning */
6356 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006357} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6358#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006359
6360/*
6361 Preferred network list response
6362*/
6363typedef PACKED_PRE struct PACKED_POST
6364{
6365 tHalMsgHeader header;
6366
6367 /* status of the request - just to indicate that PNO has acknowledged
6368 * the request and will start scanning*/
6369 tANI_U32 status;
6370} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6371
6372/*
6373 Preferred network indication parameters
6374*/
6375typedef PACKED_PRE struct PACKED_POST {
6376
6377 /*Network that was found with the highest RSSI*/
6378 tSirMacSSid ssId;
6379
6380 /*Indicates the RSSI */
6381 tANI_U8 rssi;
6382
6383 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6384 tANI_U16 frameLength;
6385
6386} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6387
6388/*
6389 Preferred network found indication
6390*/
6391typedef PACKED_PRE struct PACKED_POST {
6392
6393 tHalMsgHeader header;
6394 tPrefNetwFoundParams prefNetwFoundParams;
6395} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6396
6397
6398typedef PACKED_PRE struct PACKED_POST {
6399
6400 /*RSSI Threshold*/
6401 tANI_U8 ucRssiThreshold;
6402
6403} tRssiFilterParams, * tpRssiFilterParams;
6404
Jeff Johnson295189b2012-06-20 16:38:30 -07006405/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306406 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006407*/
6408typedef PACKED_PRE struct PACKED_POST
6409{
6410 tHalMsgHeader header;
6411 tRssiFilterParams prefRSSIFilterParams;
6412} tSetRssiFilterReq, *tpSetRssiFilterReq;
6413
6414/*
6415 Set RSSI filter resp
6416*/
6417typedef PACKED_PRE struct PACKED_POST{
6418 tHalMsgHeader header;
6419 /*status of the request */
6420 tANI_U32 status;
6421} tSetRssiFilterResp, *tpSetRssiFilterResp;
6422/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306423 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006424*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306425typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006426{
6427
6428 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306429 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006430
6431 /*Lets PNO know that host has determined the regulatory domain*/
6432 tANI_U8 b11dResolved;
6433
6434 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306435 tANI_U8 ucChannelCount;
6436 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006437
6438 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306439 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006440
6441 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306442 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006443
6444 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306445 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006446
6447 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306448 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006449
6450 /*Cb State*/
6451 ePhyChanBondState cbState;
6452
6453} tUpdateScanParams, * tpUpdateScanParams;
6454
6455/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306456 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306457*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306458typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306459{
6460
6461 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306462 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306463
6464 /*Lets PNO know that host has determined the regulatory domain*/
6465 tANI_U8 b11dResolved;
6466
6467 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306468 tANI_U8 ucChannelCount;
6469 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306470
6471 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306472 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306473
6474 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306475 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306476
6477 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306478 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306479
6480 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306481 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306482
6483 /*Cb State*/
6484 ePhyChanBondState cbState;
6485
6486} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6487
6488/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006489 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306490 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006491*/
6492typedef PACKED_PRE struct PACKED_POST{
6493
6494 tHalMsgHeader header;
6495 tUpdateScanParams scanParams;
6496} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6497
6498/*
6499 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306500 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006501*/
6502typedef PACKED_PRE struct PACKED_POST{
6503
6504 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306505 tUpdateScanParamsEx scanParams;
6506} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6507
6508/*
6509 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306510 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306511*/
6512typedef PACKED_PRE struct PACKED_POST{
6513
6514 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006515
6516 /*status of the request */
6517 tANI_U32 status;
6518
6519} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6520
6521/*---------------------------------------------------------------------------
6522 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6523 *--------------------------------------------------------------------------*/
6524typedef PACKED_PRE struct PACKED_POST
6525{
6526 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6527 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6528 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6529 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6530} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6531
6532typedef PACKED_PRE struct PACKED_POST
6533{
6534 tHalMsgHeader header;
6535 tHalTxPerTrackingReqParam txPerTrackingParams;
6536} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6537
6538/*---------------------------------------------------------------------------
6539 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6540 *--------------------------------------------------------------------------*/
6541typedef PACKED_PRE struct PACKED_POST
6542{
6543 /* success or failure */
6544 tANI_U32 status;
6545} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6546
6547typedef PACKED_PRE struct PACKED_POST
6548{
6549 tHalMsgHeader header;
6550 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6551} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6552
6553/*---------------------------------------------------------------------------
6554 * WLAN_HAL_TX_PER_HIT_IND
6555 *--------------------------------------------------------------------------*/
6556typedef PACKED_PRE struct PACKED_POST
6557{
6558 tHalMsgHeader header;
6559}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6560
6561/*---------------------------------------------------------------------------
6562 *******************Packet Filtering Definitions Begin*******************
6563 *--------------------------------------------------------------------------*/
6564#define HAL_PROTOCOL_DATA_LEN 8
6565#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6566#define HAL_MAX_NUM_FILTERS 20
6567#define HAL_MAX_CMP_PER_FILTER 10
6568
6569typedef enum
6570{
6571 HAL_RCV_FILTER_TYPE_INVALID,
6572 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6573 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6574 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6575}tHalReceivePacketFilterType;
6576
Dino Mycle8afbac12014-07-04 22:06:17 +05306577typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006578{
6579 HAL_FILTER_PROTO_TYPE_INVALID,
6580 HAL_FILTER_PROTO_TYPE_MAC,
6581 HAL_FILTER_PROTO_TYPE_ARP,
6582 HAL_FILTER_PROTO_TYPE_IPV4,
6583 HAL_FILTER_PROTO_TYPE_IPV6,
6584 HAL_FILTER_PROTO_TYPE_UDP,
6585 HAL_FILTER_PROTO_TYPE_MAX
6586}tHalRcvPktFltProtocolType;
6587
Dino Mycle8afbac12014-07-04 22:06:17 +05306588typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006589{
6590 HAL_FILTER_CMP_TYPE_INVALID,
6591 HAL_FILTER_CMP_TYPE_EQUAL,
6592 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6593 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6594 HAL_FILTER_CMP_TYPE_MAX
6595}tHalRcvPktFltCmpFlagType;
6596
Dino Mycle8afbac12014-07-04 22:06:17 +05306597typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006598{
6599 tANI_U8 protocolLayer;
6600 tANI_U8 cmpFlag;
6601 tANI_U16 dataLength; /* Length of the data to compare */
6602 tANI_U8 dataOffset; /* from start of the respective frame header */
6603 tANI_U8 reserved; /* Reserved field */
6604 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6605 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6606}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6607
6608typedef PACKED_PRE struct PACKED_POST
6609{
6610 tANI_U8 filterId;
6611 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306612 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006613 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006614 tHalRcvPktFilterParams paramsData[1];
6615}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6616
6617typedef PACKED_PRE struct PACKED_POST
6618{
Jeff Johnsone7245742012-09-05 17:12:55 -07006619 tANI_U8 filterId;
6620 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306621 tANI_U8 numParams;
6622 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006623 tANI_U8 bssIdx;
6624 tHalRcvPktFilterParams paramsData[1];
6625}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6626
6627typedef PACKED_PRE struct PACKED_POST
6628{
Jeff Johnson295189b2012-06-20 16:38:30 -07006629 tHalMsgHeader header;
6630 tHalRcvPktFilterCfgType pktFilterCfg;
6631} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6632
Jeff Johnsone7245742012-09-05 17:12:55 -07006633typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006634{
6635 tANI_U8 dataOffset; /* from start of the respective frame header */
6636 tANI_U32 cMulticastAddr;
6637 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006638 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006639} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6640
6641typedef PACKED_PRE struct PACKED_POST
6642{
6643 /* success or failure */
6644 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006645 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006646} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6647
6648typedef PACKED_PRE struct PACKED_POST
6649{
6650 tHalMsgHeader header;
6651 tHalSetPktFilterRspParams pktFilterRspParams;
6652} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6653
Jeff Johnsone7245742012-09-05 17:12:55 -07006654typedef PACKED_PRE struct PACKED_POST
6655{
6656 tANI_U8 bssIdx;
6657} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006658
6659typedef PACKED_PRE struct PACKED_POST
6660{
6661 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006662 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006663} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6664
Jeff Johnsone7245742012-09-05 17:12:55 -07006665
Jeff Johnson295189b2012-06-20 16:38:30 -07006666typedef PACKED_PRE struct PACKED_POST
6667{
6668 tANI_U8 filterId;
6669 tANI_U32 matchCnt;
6670} tHalRcvFltPktMatchCnt;
6671typedef PACKED_PRE struct PACKED_POST
6672{
6673 /* Success or Failure */
6674 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306675 tANI_U32 matchCnt;
6676 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006677 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006678} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6679
6680typedef PACKED_PRE struct PACKED_POST
6681{
6682 tHalMsgHeader header;
6683 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6684} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6685
6686typedef PACKED_PRE struct PACKED_POST
6687{
6688 tANI_U32 status; /* only valid for response message */
6689 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006690 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006691}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6692
6693typedef PACKED_PRE struct PACKED_POST
6694{
6695 tHalMsgHeader header;
6696 tHalRcvFltPktClearParam filterClearParam;
6697} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6698
6699typedef PACKED_PRE struct PACKED_POST
6700{
6701 tHalMsgHeader header;
6702 tHalRcvFltPktClearParam filterClearParam;
6703} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6704
6705typedef PACKED_PRE struct PACKED_POST
6706{
Dino Mycle8afbac12014-07-04 22:06:17 +05306707 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006708 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006709}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6710
6711typedef PACKED_PRE struct PACKED_POST
6712{
6713 tHalMsgHeader header;
6714 tHalRcvFltMcAddrListType mcAddrList;
6715} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6716
6717typedef PACKED_PRE struct PACKED_POST
6718{
6719 tHalMsgHeader header;
6720 tHalRcvFltPktSetMcListRspType rspParam;
6721} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6722
6723
6724/*---------------------------------------------------------------------------
6725 *******************Packet Filtering Definitions End*******************
6726 *--------------------------------------------------------------------------*/
6727
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006728/*
6729 * There are two versions of this message
6730 * Version 1 : Base version
6731 * Current version : Base version + Max LI modulated DTIM
6732 */
6733typedef PACKED_PRE struct PACKED_POST
6734{
6735 /* Ignore DTIM */
6736 tANI_U32 uIgnoreDTIM;
6737
6738 /*DTIM Period*/
6739 tANI_U32 uDTIMPeriod;
6740
6741 /* Listen Interval */
6742 tANI_U32 uListenInterval;
6743
6744 /* Broadcast Multicast Filter */
6745 tANI_U32 uBcastMcastFilter;
6746
6747 /* Beacon Early Termination */
6748 tANI_U32 uEnableBET;
6749
6750 /* Beacon Early Termination Interval */
6751 tANI_U32 uBETInterval;
6752}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6753
6754typedef PACKED_PRE struct PACKED_POST
6755{
6756 tHalMsgHeader header;
6757 tSetPowerParamsVer1Type powerParams;
6758} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6759
Jeff Johnson295189b2012-06-20 16:38:30 -07006760typedef PACKED_PRE struct PACKED_POST
6761{
6762 /* Ignore DTIM */
6763 tANI_U32 uIgnoreDTIM;
6764
6765 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306766 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006767
6768 /* Listen Interval */
6769 tANI_U32 uListenInterval;
6770
6771 /* Broadcast Multicast Filter */
6772 tANI_U32 uBcastMcastFilter;
6773
6774 /* Beacon Early Termination */
6775 tANI_U32 uEnableBET;
6776
6777 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306778 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006779
6780 /* MAX LI for modulated DTIM */
6781 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006782}tSetPowerParamsType, *tpSetPowerParamsType;
6783
6784typedef PACKED_PRE struct PACKED_POST
6785{
6786 tHalMsgHeader header;
6787 tSetPowerParamsType powerParams;
6788} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6789
6790typedef PACKED_PRE struct PACKED_POST{
6791
6792 tHalMsgHeader header;
6793
6794 /*status of the request */
6795 tANI_U32 status;
6796
6797} tSetPowerParamsResp, *tpSetPowerParamsResp;
6798
6799/*---------------------------------------------------------------------------
6800 ****************Capability bitmap exchange definitions and macros starts*************
6801 *--------------------------------------------------------------------------*/
6802
Anand Kumar012623a2013-01-11 17:00:00 -08006803typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006804 MCC = 0,
6805 P2P = 1,
6806 DOT11AC = 2,
6807 SLM_SESSIONIZATION = 3,
6808 DOT11AC_OPMODE = 4,
6809 SAP32STA = 5,
6810 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006811 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006812 WLANACTIVE_OFFLOAD = 8,
6813 BEACON_OFFLOAD = 9,
6814 SCAN_OFFLOAD = 10,
6815 ROAM_OFFLOAD = 11,
6816 BCN_MISS_OFFLOAD = 12,
6817 STA_POWERSAVE = 13,
6818 STA_ADVANCED_PWRSAVE = 14,
6819 AP_UAPSD = 15,
6820 AP_DFS = 16,
6821 BLOCKACK = 17,
6822 PHY_ERR = 18,
6823 BCN_FILTER = 19,
6824 RTT = 20,
6825 RATECTRL = 21,
6826 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006827 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006828 SPECULATIVE_PS_POLL = 24,
6829 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006830 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006831 WLAN_SCAN_OFFLOAD = 27,
6832 WLAN_PERIODIC_TX_PTRN = 28,
6833 ADVANCE_TDLS = 29,
6834 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306835 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306836 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306837 CH_SWITCH_V1 = 33,
6838 HT40_OBSS_SCAN = 34,
6839 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006840 WLAN_MCADDR_FLT = 36,
6841 WLAN_CH144 = 37,
6842 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306843 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306844 LINK_LAYER_STATS_MEAS = 40,
6845 MU_MIMO = 41,
6846 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306847 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306848 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306849 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306850 DISA = 46,
6851 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306852 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306853 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306854 TDLS_OFF_CHANNEL = 51,
Padma, Santhosh Kumarcfbcf942015-12-08 16:07:47 +05306855 RTT3 = 52,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306856 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306857 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306858 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306859 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306860 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306861 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306862 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306863 WIFI_CONFIG = 61,
Kumar Anandea78e792013-10-10 23:47:01 -07006864 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006865} placeHolderInCapBitmap;
6866
Jeff Johnson295189b2012-06-20 16:38:30 -07006867typedef PACKED_PRE struct PACKED_POST{
6868
6869 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006870} tWlanFeatCaps, *tpWlanFeatCaps;
6871
6872typedef PACKED_PRE struct PACKED_POST{
6873
Dino Mycle8afbac12014-07-04 22:06:17 +05306874 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006875 tWlanFeatCaps wlanFeatCaps;
6876
6877} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6878
Jeff Johnsone7245742012-09-05 17:12:55 -07006879#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6880#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006881#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006882#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006883#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006884#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006885#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006886#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306887#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306888#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306889#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306890#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306891#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006892
Jeff Johnsone7245742012-09-05 17:12:55 -07006893tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6894
Jeff Johnson295189b2012-06-20 16:38:30 -07006895#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006896 if ((b)<=127) { \
6897 arr_index = (b)/32; \
6898 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006899 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006900 (a)->featCaps[arr_index] |= (1<<bit_index); \
6901 } \
6902 }
6903#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006904 if ((b)<=127) { \
6905 arr_index = (b)/32; \
6906 bit_index = (b)%32; \
6907 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006908 } \
6909 }
6910#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006911 if ((b)<=127) { \
6912 arr_index = (b)/32; \
6913 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006914 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006915 } \
6916 }
6917
6918/*---------------------------------------------------------------------------
6919 * WLAN_HAL_WAKE_REASON_IND
6920 *--------------------------------------------------------------------------*/
6921
6922/* status codes to help debug rekey failures */
6923typedef enum
6924{
6925 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6926 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6927 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6928 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6929 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6930 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6931 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6932 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6933 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6934 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6935
6936 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6937} tGTKRekeyStatus;
6938
6939/* wake reason types */
6940typedef enum
6941{
6942 WLAN_HAL_WAKE_REASON_NONE = 0,
6943 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6944 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6945 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6946 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6947 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6948 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6949 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6950} tWakeReasonType;
6951
6952/*
6953 Wake Packet which is saved at tWakeReasonParams.DataStart
6954 This data is sent for any wake reasons that involve a packet-based wakeup :
6955
6956 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6957 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6958 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6959 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6960 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6961
6962 The information is provided to the host for auditing and debug purposes
6963
6964*/
6965
6966/*
6967 Wake reason indication parameters
6968*/
6969typedef PACKED_PRE struct PACKED_POST
6970{
6971 uint32 ulReason; /* see tWakeReasonType */
6972 uint32 ulReasonArg; /* argument specific to the reason type */
6973 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6974 HAL truncates the data (i.e. data packets) this length
6975 will be less than the actual length */
6976 uint32 ulActualDataLen; /* actual length of data */
6977 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6978 see specific wake type */
6979} tWakeReasonParams, *tpWakeReasonParams;
6980
6981/*
6982 Wake reason indication
6983*/
6984typedef PACKED_PRE struct PACKED_POST
6985{
6986 tHalMsgHeader header;
6987 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006988 tANI_U32 uBssIdx : 8;
6989 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006990} tHalWakeReasonInd, *tpHalWakeReasonInd;
6991
6992/*---------------------------------------------------------------------------
6993* WLAN_HAL_GTK_OFFLOAD_REQ
6994*--------------------------------------------------------------------------*/
6995
6996#define HAL_GTK_KEK_BYTES 16
6997#define HAL_GTK_KCK_BYTES 16
6998
6999#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
7000
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007001#define GTK_SET_BSS_KEY_TAG 0x1234AA55
7002
Jeff Johnson295189b2012-06-20 16:38:30 -07007003typedef PACKED_PRE struct PACKED_POST
7004{
7005 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05307006 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07007007 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
7008 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07007009 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007010} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
7011
7012typedef PACKED_PRE struct PACKED_POST
7013{
7014 tHalMsgHeader header;
7015 tHalGtkOffloadReqParams gtkOffloadReqParams;
7016} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
7017
7018/*---------------------------------------------------------------------------
7019* WLAN_HAL_GTK_OFFLOAD_RSP
7020*--------------------------------------------------------------------------*/
7021typedef PACKED_PRE struct PACKED_POST
7022{
7023 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07007024 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007025} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
7026
7027typedef PACKED_PRE struct PACKED_POST
7028{
7029 tHalMsgHeader header;
7030 tHalGtkOffloadRspParams gtkOffloadRspParams;
7031} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
7032
7033
7034/*---------------------------------------------------------------------------
7035* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
7036*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07007037typedef PACKED_PRE struct PACKED_POST
7038{
7039 tANI_U8 bssIdx;
7040
7041} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007042
7043typedef PACKED_PRE struct PACKED_POST
7044{
7045 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007046 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007047} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7048
7049/*---------------------------------------------------------------------------
7050* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7051*--------------------------------------------------------------------------*/
7052typedef PACKED_PRE struct PACKED_POST
7053{
7054 tANI_U32 ulStatus; /* success or failure */
7055 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7056 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7057 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7058 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7059 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007060 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007061} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7062
7063typedef PACKED_PRE struct PACKED_POST
7064{
7065 tHalMsgHeader header;
7066 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7067} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7068
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007069/*---------------------------------------------------------------------------
7070* WLAN_HAL_DHCP_IND
7071*--------------------------------------------------------------------------*/
7072typedef PACKED_PRE struct PACKED_POST
7073{
7074 /*Indicates the device mode which indicates about the DHCP activity */
7075 tANI_U8 device_mode;
7076 tSirMacAddr macAddr;
7077} tDHCPInfo, *tpDHCPInfo;
7078
7079typedef PACKED_PRE struct PACKED_POST
7080{
7081 tHalMsgHeader header;
7082 tANI_U32 status; /* success or failure */
7083} tDHCPIndStatus, *tpDHCPIndstatus;
7084
Jeff Johnson295189b2012-06-20 16:38:30 -07007085/*
7086 Thermal Mitigation mode of operation.
7087 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7088 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7089 reducing transmit power
7090 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7091*/
7092typedef enum
7093{
7094 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7095 HAL_THERMAL_MITIGATION_MODE_0,
7096 HAL_THERMAL_MITIGATION_MODE_1,
7097 HAL_THERMAL_MITIGATION_MODE_2,
7098 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7099}tHalThermalMitigationModeType;
7100//typedef tANI_S16 tHalThermalMitigationModeType;
7101
7102/*
7103 Thermal Mitigation level.
7104 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7105 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7106
7107 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7108 level indicates normal mode of operation
7109 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7110 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7111 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7112 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7113*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307114typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007115{
7116 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7117 HAL_THERMAL_MITIGATION_LEVEL_0,
7118 HAL_THERMAL_MITIGATION_LEVEL_1,
7119 HAL_THERMAL_MITIGATION_LEVEL_2,
7120 HAL_THERMAL_MITIGATION_LEVEL_3,
7121 HAL_THERMAL_MITIGATION_LEVEL_4,
7122 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7123}tHalThermalMitigationLevelType;
7124//typedef tANI_S16 tHalThermalMitigationLevelType;
7125
7126typedef PACKED_PRE struct PACKED_POST
7127{
7128 /* Thermal Mitigation Operation Mode */
7129 tHalThermalMitigationModeType thermalMitMode;
7130
7131 /* Thermal Mitigation Level */
7132 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307133
Jeff Johnson295189b2012-06-20 16:38:30 -07007134}tSetThermalMitgationType, *tpSetThermalMitgationType;
7135
7136/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7137typedef PACKED_PRE struct PACKED_POST
7138{
7139 tHalMsgHeader header;
7140 tSetThermalMitgationType thermalMitParams;
7141} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7142
7143typedef PACKED_PRE struct PACKED_POST{
7144
7145 tHalMsgHeader header;
7146
7147 /*status of the request */
7148 tANI_U32 status;
7149
7150} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7151
Dino Mycle8afbac12014-07-04 22:06:17 +05307152/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007153provided to FW from Host via periodic messages */
7154typedef PACKED_PRE struct PACKED_POST {
7155 /* TX stats */
7156 uint32 txBytesPushed;
7157 uint32 txPacketsPushed;
7158
7159 /* RX stats */
7160 uint32 rxBytesRcvd;
7161 uint32 rxPacketsRcvd;
7162 uint32 rxTimeTotal;
7163} tStaStatsClassB, *tpStaStatsClassB;
7164
7165typedef PACKED_PRE struct PACKED_POST {
7166
7167 /* Duration over which this stats was collected */
7168 tANI_U32 duration;
7169
7170 /* Per STA Stats */
7171 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7172} tStatsClassBIndParams, *tpStatsClassBIndParams;
7173
7174typedef PACKED_PRE struct PACKED_POST {
7175
7176 tHalMsgHeader header;
7177
7178 /* Class B Stats */
7179 tStatsClassBIndParams statsClassBIndParams;
7180} tStatsClassBInd, *tpStatsClassBInd;
7181
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307182/*Wifi Proximity paramters in AP mode*/
7183#ifdef FEATURE_WIFI_PROXIMITY
7184
7185typedef PACKED_PRE struct PACKED_POST{
7186
7187 tANI_U8 wifiProximityChannel;
7188 tANI_U32 wifiProximityDuration;
7189 tANI_U32 wifiProximityInterval;
7190 tANI_U32 wifiProximityMode;
7191 tANI_U32 wifiProximityStatus;
7192 tSirMacAddr bssId;
7193 tSirMacSSid ssId;
7194
7195} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7196
7197typedef PACKED_PRE struct PACKED_POST
7198{
7199 tHalMsgHeader header;
7200
7201 tSetWifiProximityReqParam wifiProximityReqParams;
7202
7203}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7204
7205/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7206typedef PACKED_PRE struct PACKED_POST{
7207
7208 tHalMsgHeader header;
7209
7210 /*status of the request */
7211 tANI_U32 status;
7212
7213} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7214
7215#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007216
7217#ifdef FEATURE_SPECULATIVE_PS_POLL
7218/*---------------------------------------------------------------------------
7219 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7220 *--------------------------------------------------------------------------*/
7221typedef PACKED_PRE struct PACKED_POST
7222{
7223 tANI_U8 bssIdx;
7224 tANI_U16 serviceInterval;
7225 tANI_U16 suspendInterval;
7226 tANI_U8 acMask;
7227} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7228
7229typedef PACKED_PRE struct PACKED_POST
7230{
7231 tHalMsgHeader header;
7232 tHalStartSpecPsPollReqParams specPsPollReq;
7233} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7234
7235/*---------------------------------------------------------------------------
7236 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7237 *--------------------------------------------------------------------------*/
7238typedef PACKED_PRE struct PACKED_POST
7239{
7240 /* success or failure */
7241 tANI_U32 status;
7242 tANI_U8 bssIdx;
7243} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7244
7245typedef PACKED_PRE struct PACKED_POST
7246{
7247 tHalMsgHeader header;
7248 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7249} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7250
7251/*---------------------------------------------------------------------------
7252 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7253 *--------------------------------------------------------------------------*/
7254typedef PACKED_PRE struct PACKED_POST
7255{
7256 tHalMsgHeader header;
7257 tANI_U8 bssIdx;
7258} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7259#endif
7260
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307261#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307262#define HAL_MAX_SUPP_CHANNELS 128
7263#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307264/*---------------------------------------------------------------------------
7265 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7266 *-------------------------------------------------------------------------*/
7267typedef PACKED_PRE struct PACKED_POST
7268{
7269 /*STA Index*/
7270 tANI_U16 staIdx;
7271
7272 /* if this is 1, self is initiator and peer is reponder */
7273 tANI_U8 bIsResponder;
7274
7275 /* QoS Info */
7276 tANI_U8 acVOUAPSDFlag:1;
7277 tANI_U8 acVIUAPSDFlag:1;
7278 tANI_U8 acBKUAPSDFlag:1;
7279 tANI_U8 acBEUAPSDFlag:1;
7280 tANI_U8 aAck:1;
7281 tANI_U8 maxServicePeriodLength:2;
7282 tANI_U8 moreDataAck:1;
7283
7284 /*TDLS Peer U-APSD Buffer STA Support*/
7285 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007286
7287 /*TDLS off channel related params */
7288 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307289 tANI_U8 peerCurrOperClass;
7290 tANI_U8 selfCurrOperClass;
7291 tANI_U8 validChannelsLen;
7292 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7293 tANI_U8 validOperClassesLen;
7294 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307295}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7296
7297typedef PACKED_PRE struct PACKED_POST
7298{
7299 tHalMsgHeader header;
7300 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7301} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7302
7303/*---------------------------------------------------------------------------
7304 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7305 *-------------------------------------------------------------------------*/
7306
7307typedef PACKED_PRE struct PACKED_POST
7308{
7309 tANI_U32 status;
7310
7311 /*STA Index*/
7312 tANI_U16 staIdx;
7313} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7314
7315typedef PACKED_PRE struct PACKED_POST
7316{
7317 tHalMsgHeader header;
7318 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7319} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307320/*---------------------------------------------------------------------------
7321 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7322 + *-------------------------------------------------------------------------*/
7323typedef PACKED_PRE struct PACKED_POST
7324{
7325 /*STA Index*/
7326 tANI_U16 staIdx;
7327 /* if this is 1, self is initiator otherwise responder only*/
7328 tANI_U8 isOffchannelInitiator;
7329 /*TDLS off channel related params */
7330 tANI_U8 targetOperClass;
7331 tANI_U8 targetChannel;
7332 tANI_U8 secondaryChannelOffset;
7333 tANI_U8 reserved[32];
7334}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7335
7336typedef PACKED_PRE struct PACKED_POST
7337{
7338 tHalMsgHeader header;
7339 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7340} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7341/*---------------------------------------------------------------------------
7342 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7343 *-------------------------------------------------------------------------*/
7344
7345typedef PACKED_PRE struct PACKED_POST
7346{
7347 tANI_U32 status;
7348 /*STA Index*/
7349 tANI_U16 staIdx;
7350} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7351
7352typedef PACKED_PRE struct PACKED_POST
7353{
7354 tHalMsgHeader header;
7355 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7356} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7357
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307358
7359/*---------------------------------------------------------------------------
7360 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7361 *-------------------------------------------------------------------------*/
7362typedef PACKED_PRE struct PACKED_POST
7363{
7364 /*STA Index*/
7365 tANI_U16 staIdx;
7366}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7367
7368typedef PACKED_PRE struct PACKED_POST
7369{
7370 tHalMsgHeader header;
7371 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7372} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7373
7374/*---------------------------------------------------------------------------
7375 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7376 *-------------------------------------------------------------------------*/
7377
7378typedef PACKED_PRE struct PACKED_POST
7379{
7380 tANI_U32 status;
7381
7382 /*STA Index*/
7383 tANI_U16 staIdx;
7384} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7385
7386typedef PACKED_PRE struct PACKED_POST
7387{
7388 tHalMsgHeader header;
7389 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7390} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7391
7392/*---------------------------------------------------------------------------
7393 *WLAN_HAL_TDLS_IND
7394 *--------------------------------------------------------------------------*/
7395
7396typedef PACKED_PRE struct PACKED_POST
7397{
7398 tANI_U16 assocId;
7399 tANI_U16 staIdx;
7400 tANI_U16 status;
7401 tANI_U16 reasonCode;
7402}tTdlsIndParams, *tpTdlsIndParams;
7403
7404
7405typedef PACKED_PRE struct PACKED_POST
7406{
7407 tHalMsgHeader header;
7408 tTdlsIndParams tdlsIndParams;
7409}tTdlsIndMsg, *tpTdlsIndMsg;
7410
7411#endif
7412
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007413/*---------------------------------------------------------------------------
7414 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7415 *--------------------------------------------------------------------------*/
7416
7417typedef PACKED_PRE struct PACKED_POST
7418{
7419 tANI_U8 bssIdx;
7420 tANI_U8 staIdx;
7421 tSirMacAddr staAddr;
7422}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7423
7424
7425typedef PACKED_PRE struct PACKED_POST
7426{
7427 tHalMsgHeader header;
7428 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7429}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7430
7431
Kumar Anandea78e792013-10-10 23:47:01 -07007432/*********** Scan Offload Related Structures *************/
7433#define HAL_NUM_SCAN_SSID 10
7434#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007435
Kumar Anandea78e792013-10-10 23:47:01 -07007436/*
7437 * Enumetation to indicate scan type (active/passive)
7438 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007439typedef enum
7440{
Kumar Anandea78e792013-10-10 23:47:01 -07007441 eSIR_PASSIVE_SCAN,
7442 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7443} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007444
7445typedef PACKED_PRE struct PACKED_POST
7446{
Kumar Anandea78e792013-10-10 23:47:01 -07007447 tANI_U8 numBssid;
7448 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7449 tANI_U8 numSsid;
7450 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7451 tANI_BOOLEAN hiddenSsid;
7452 tSirMacAddr selfMacAddr;
7453 tSirBssType bssType;
7454 tSirScanType scanType;
7455 tANI_U32 minChannelTime;
7456 tANI_U32 maxChannelTime;
7457 tANI_BOOLEAN p2pSearch;
7458 tANI_U8 channelCount;
7459 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7460 tANI_U16 ieFieldLen;
7461 tANI_U8 ieField[1];
7462}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007463
7464/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007465 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007466 *-------------------------------------------------------------------------*/
7467typedef PACKED_PRE struct PACKED_POST
7468{
Kumar Anandf53016f2013-09-04 15:15:53 -07007469 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007470 tScanOffloadReqType scanOffloadParams;
7471} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007472
7473/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007474 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007475 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007476typedef PACKED_PRE struct PACKED_POST
7477{
7478 tHalMsgHeader header;
7479
7480 /*status of the request - just to indicate SO has acknowledged
7481 * * the request and will start scanning*/
7482 tANI_U32 status;
7483} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7484
7485/*---------------------------------------------------------------------------
7486 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7487 *-------------------------------------------------------------------------*/
7488typedef PACKED_PRE struct PACKED_POST
7489{
7490 tHalMsgHeader header;
7491} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7492
7493/*---------------------------------------------------------------------------
7494 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7495 *-------------------------------------------------------------------------*/
7496typedef PACKED_PRE struct PACKED_POST
7497{
7498 tHalMsgHeader header;
7499
7500 /*status of the request - just to indicate SO has acknowledged
7501 the request and will start scanning*/
7502 tANI_U32 status;
7503} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7504
7505/*
7506 * Enumetation of scan events indicated by firmware to the host
7507 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007508typedef enum
7509{
Kumar Anandea78e792013-10-10 23:47:01 -07007510 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7511 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7512 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7513 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7514 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7515 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7516 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7517 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7518 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7519} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007520
7521typedef PACKED_PRE struct PACKED_POST
7522{
Kumar Anandea78e792013-10-10 23:47:01 -07007523 tScanEventType event;
7524 tANI_U32 channel;
7525 tANI_U32 scanId;
7526} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007527
Kumar Anandea78e792013-10-10 23:47:01 -07007528/*---------------------------------------------------------------------------
7529 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7530 *-------------------------------------------------------------------------*/
7531typedef PACKED_PRE struct PACKED_POST
7532{
7533 tHalMsgHeader header;
7534 tScanOffloadEventInfo scanOffloadInd;
7535} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007536
Kumar Anandea78e792013-10-10 23:47:01 -07007537typedef PACKED_PRE struct PACKED_POST {
7538 /** primary 20 MHz channel frequency in mhz */
7539 tANI_U32 mhz;
7540 /** Center frequency 1 in MHz*/
7541 tANI_U32 band_center_freq1;
7542 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7543 tANI_U32 band_center_freq2;
7544 /* The first 26 bits are a bit mask to indicate any channel flags,
7545 (see WLAN_HAL_CHAN_FLAG*)
7546 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7547 tANI_U32 channel_info;
7548 /** contains min power, max power, reg power and reg class id. */
7549 tANI_U32 reg_info_1;
7550 /** contains antennamax */
7551 tANI_U32 reg_info_2;
7552} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007553
Kumar Anandf53016f2013-09-04 15:15:53 -07007554
Kumar Anandea78e792013-10-10 23:47:01 -07007555typedef enum {
7556 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7557 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7558 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7559 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7560 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7561 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7562 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7563 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7564 WLAN_HAL_MODE_11AC_VHT20 = 8,
7565 WLAN_HAL_MODE_11AC_VHT40 = 9,
7566 WLAN_HAL_MODE_11AC_VHT80 = 10,
7567 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7568 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7569 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7570 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007571
Kumar Anandea78e792013-10-10 23:47:01 -07007572} tChannelPhyModeType;
7573
7574#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7575#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7576#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7577#define WLAN_HAL_CHAN_AP_DISABLED 9
7578#define WLAN_HAL_CHAN_FLAG_DFS 10
7579#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7580#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007581#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7582
7583#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007584 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007585 } while(0)
7586
7587#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007588 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007589
7590#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7591 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7592 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7593 } while(0)
7594#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7595
7596#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7597 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7598 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7599 } while(0)
7600#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7601
7602#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7603 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7604 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7605 } while(0)
7606#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7607#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7608 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7609 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7610 } while(0)
7611#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7612
7613#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7614 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7615 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7616 } while(0)
7617#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7618
7619#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7620 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7621 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7622 } while(0)
7623#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 -07007624
7625typedef PACKED_PRE struct PACKED_POST
7626{
7627 tANI_U8 numChan;
7628 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7629} tUpdateChannelReqType;
7630
7631/*---------------------------------------------------------------------------
7632 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7633 *-------------------------------------------------------------------------*/
7634typedef PACKED_PRE struct PACKED_POST
7635{
7636 tHalMsgHeader header;
7637 tUpdateChannelReqType updateChannelParams;
7638} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7639
7640/*---------------------------------------------------------------------------
7641 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7642 *-------------------------------------------------------------------------*/
7643typedef PACKED_PRE struct PACKED_POST
7644{
7645 tHalMsgHeader header;
7646
7647 /*status of the request - just to indicate SO has acknowledged
7648 * * the request and will start scanning*/
7649 tANI_U32 status;
7650} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7651
7652
7653/*---------------------------------------------------------------------------
7654* WLAN_HAL_TX_FAIL_IND
7655*--------------------------------------------------------------------------*/
7656// Northbound indication from FW to host on weak link detection
7657typedef PACKED_PRE struct PACKED_POST
7658{
7659 // Sequence number increases by 1 whenever the device driver
7660 // sends a notification event. This is cleared as 0 when the
7661 // JOIN IBSS commamd is issued
7662 tANI_U16 seqNo;
7663 tANI_U16 staId;
7664 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7665} tHalTXFailIndParams, *tpHalTXFailIndParams;
7666
7667typedef PACKED_PRE struct PACKED_POST
7668{
7669 tHalMsgHeader header;
7670 tHalTXFailIndParams txFailIndParams;
7671} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7672
7673/*---------------------------------------------------------------------------
7674* WLAN_HAL_TX_FAIL_MONITOR_IND
7675*--------------------------------------------------------------------------*/
7676// Southbound message from Host to monitor the Tx failures
7677typedef PACKED_PRE struct PACKED_POST
7678{
7679 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7680 tANI_U8 tx_fail_count;
7681} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7682
7683typedef PACKED_PRE struct PACKED_POST
7684{
7685 tHalMsgHeader header;
7686 tTXFailMonitorInfo txFailMonitor;
7687} tTXFailMonitorInd, *tpTXFailMonitorInd;
7688
7689/*---------------------------------------------------------------------------
7690* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7691*--------------------------------------------------------------------------*/
7692typedef PACKED_PRE struct PACKED_POST
7693{
7694 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7695 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7696} tDestIpNextHopMacPair;
7697
7698typedef PACKED_PRE struct PACKED_POST
7699{
7700 tANI_U8 numEntries;
7701 tDestIpNextHopMacPair destIpMacPair[1];
7702} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007703
7704typedef PACKED_PRE struct PACKED_POST
7705{
7706 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007707 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7708} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007709
Kumar Anandf53016f2013-09-04 15:15:53 -07007710/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007711 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7712 *-------------------------------------------------------------------------*/
7713typedef enum
7714{
7715 /* reassociation is done, but couldn't finish security handshake */
7716 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7717
7718 /* roam has successfully completed by firmware */
7719 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7720
7721 /* UNKONW error */
7722 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7723}tHalRoamOffloadRoamAuthStatus;
7724
7725typedef enum
7726{
7727 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7728 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7729 WLAN_HAL_ROAM_TYPE_OKC,
7730 WLAN_HAL_ROAM_TYPE_CCKM,
7731 WLAN_HAL_ROAM_TYPE_FT,
7732 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7733} tHalRoamOffloadType;
7734
7735typedef PACKED_PRE struct PACKED_POST
7736{
7737 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7738 tANI_U16 beaconProbeRespOffset;
7739
7740 /* Length of beaon / probe resp. */
7741 tANI_U16 beaconProbeRespLength;
7742
7743 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7744 tANI_U16 reassocRespOffset;
7745
7746 /* Length of reassoc resp. */
7747 tANI_U16 reassocRespLength;
7748
7749 /* 0 for probe response frame, 1 for beacon frame, */
7750 tANI_U8 isBeacon;
7751
7752 /* staIdx of old AP */
7753 tANI_U8 oldStaIdx;
7754
7755 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7756 tConfigBssRspParams */
7757 /* bssIdx of new roamed AP */
7758 tANI_U8 bssIdx;
7759
7760 /* DPU descriptor index for PTK */
7761 tANI_U8 dpuDescIndx;
7762
7763 /* PTK DPU signature */
7764 tANI_U8 ucastDpuSignature;
7765
7766 /* DPU descriptor index for GTK*/
7767 tANI_U8 bcastDpuDescIndx;
7768
7769 /* GTK DPU signature */
7770 tANI_U8 bcastDpuSignature;
7771
7772 /*DPU descriptor for IGTK*/
7773 tANI_U8 mgmtDpuDescIndx;
7774
7775 /* IGTK DPU signature */
7776 tANI_U8 mgmtDpuSignature;
7777
7778 /* Station Index for BSS entry*/
7779 tANI_U8 staIdx;
7780
7781 /* Self station index for this BSS */
7782 tANI_U8 selfStaIdx;
7783
7784 /* Bcast station for buffering bcast frames in AP role */
7785 tANI_U8 bcastStaIdx;
7786
7787 /* MAC address of roamed AP */
7788 tSirMacAddr bssid;
7789
7790 /*HAL fills in the tx power used for mgmt frames in this field. */
7791 tANI_S8 txMgmtPower;
7792
7793 /* success or failure */
7794 tHalRoamOffloadRoamAuthStatus authStatus;
7795
7796 /* TODO : add more info as needed */
7797
7798 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7799 /* Beacon or probe resp from new AP. This is in 802.11
7800 frame format starting with MAC header. */
7801 /* Up to beaconProbeRespLength */
7802
7803 /* reassocRespOffset points to starting of reassoc resp frame */
7804 /* Reassoc resp from new AP. This is in 802.11
7805 frame format starting with MAC header. */
7806 /* Up to reassocRespLength */
7807
7808} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7809
7810
7811typedef PACKED_PRE struct PACKED_POST
7812{
7813 tHalMsgHeader header;
7814 tHalRoamOffloadSynchIndParams params;
7815} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7816
7817/*---------------------------------------------------------------------------
7818 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7819 *-------------------------------------------------------------------------*/
7820typedef PACKED_PRE struct PACKED_POST
7821{
7822 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7823 tSirMacAddr bssid;
7824} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7825
7826typedef PACKED_PRE struct PACKED_POST
7827{
7828 tHalMsgHeader header;
7829 tHalRoamOffloadSynchCnfParams params;
7830} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7831
7832
7833/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007834 WLAN_HAL_RATE_UPDATE_IND
7835 *-------------------------------------------------------------------------*/
7836
7837typedef PACKED_PRE struct PACKED_POST
7838{
7839 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7840 tANI_S32 ucastDataRate; //unit Mbpsx10
7841
7842 /* TX flag to differentiate between HT20, HT40 etc */
7843 tTxRateInfoFlags ucastDataRateTxFlag;
7844
7845 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7846 tSirMacAddr bssid;
7847
7848 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7849 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7850
7851 /* TX flag to differentiate between HT20, HT40 etc */
7852 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7853
7854 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7855 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7856
7857 /* TX flag to differentiate between HT20, HT40 etc */
7858 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7859
7860 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7861 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7862
7863 /* TX flag to differentiate between HT20, HT40 etc */
7864 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7865
7866} tHalRateUpdateParams, *tpHalRateUpdateParams;
7867
7868typedef PACKED_PRE struct PACKED_POST
7869{
7870 tHalMsgHeader header;
7871 tHalRateUpdateParams halRateUpdateParams;
7872} tHalRateUpdateInd, * tpHalRateUpdateInd;
7873
7874/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307875 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7876 *-------------------------------------------------------------------------*/
7877
Abhishek Singhe0443152015-06-18 10:07:43 +05307878#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307879
7880typedef PACKED_PRE struct PACKED_POST
7881{
7882 tANI_U32 startFreq;
7883 tANI_U32 endFreq;
7884} tHalFreqRange, *tpHalFreqRange;
7885
7886typedef PACKED_PRE struct PACKED_POST
7887{
7888 tANI_U32 avoidCnt;
7889 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7890} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7891
7892typedef PACKED_PRE struct PACKED_POST
7893{
7894 tHalMsgHeader header;
7895 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7896} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7897
7898/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307899 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007900 *-------------------------------------------------------------------------*/
7901
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307902typedef enum
7903{
7904 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7905 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7906 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7907}tHT40OBssScanCmdType;
7908
7909typedef PACKED_PRE struct PACKED_POST
7910{
7911 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007912
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307913 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007914 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7915 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7916 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7917 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7918 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7919 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7920 tANI_U16 OBSSScanActivityThreshold;
7921
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307922 tANI_U8 selfStaIdx;
7923 tANI_U8 bssIdx;
7924 tANI_U8 fortyMHZIntolerent;
7925 tANI_U8 channelCount;
7926 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7927 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007928
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307929 tANI_U16 ieFieldLen;
7930 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7931}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7932
7933typedef PACKED_PRE struct PACKED_POST
7934{
7935 tHalMsgHeader header;
7936 tHT40ObssScanIndType scanHT40ObssScanParams;
7937} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7938
7939/*---------------------------------------------------------------------------
7940 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7941 *-------------------------------------------------------------------------*/
7942typedef PACKED_PRE struct PACKED_POST
7943{
7944 tHalMsgHeader header;
7945 tANI_U8 bssIdx;
7946} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307947
7948/*---------------------------------------------------------------------------
7949 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7950 *-------------------------------------------------------------------------*/
7951
7952typedef PACKED_PRE struct PACKED_POST
7953{
7954 /* Valid BSS Idx for beacon miss rate */
7955 tANI_U8 bssIdx;
7956
7957}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7958
7959typedef PACKED_PRE struct PACKED_POST
7960{
7961 tHalMsgHeader header;
7962 tHalBcnMissRateReqParams bcnMissRateReqParams;
7963} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7964
7965/*---------------------------------------------------------------------------
7966 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7967 *-------------------------------------------------------------------------*/
7968
7969typedef PACKED_PRE struct PACKED_POST
7970{
7971 tANI_U32 status;
7972 tANI_U32 bcnMissCnt;
7973}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7974
7975typedef PACKED_PRE struct PACKED_POST
7976{
7977 tHalMsgHeader header;
7978 tHalBcnMissRateRspParams bcnMissRateRspParams;
7979}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7980
Sunil Dutt8377a382014-05-26 21:18:04 +05307981/*--------------------------------------------------------------------------
7982* WLAN_HAL_LL_SET_STATS_REQ
7983*---------------------------------------------------------------------------*/
7984
7985typedef PACKED_PRE struct PACKED_POST
7986{
7987 tANI_U32 req_id;
7988 tANI_U8 sta_id;
7989 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7990 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7991} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7992
7993typedef PACKED_PRE struct PACKED_POST
7994{
7995 tHalMsgHeader header;
7996 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7997} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7998
7999/*---------------------------------------------------------------------------
8000 WLAN_HAL_LL_SET_STATS_RSP
8001---------------------------------------------------------------------------*/
8002
8003typedef PACKED_PRE struct PACKED_POST
8004{
8005 tANI_U32 status;
8006 tANI_U32 resp_id;
8007 tANI_U8 iface_id;
8008} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
8009
8010typedef PACKED_PRE struct PACKED_POST
8011{
8012 tHalMsgHeader header;
8013 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
8014} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
8015
8016/*---------------------------------------------------------------------------
8017 WLAN_HAL_LL_GET_STATS_REQ
8018---------------------------------------------------------------------------*/
8019
8020typedef PACKED_PRE struct PACKED_POST
8021{
8022 tANI_U32 req_id;
8023 tANI_U8 sta_id;
8024 tANI_U32 param_id_mask;
8025} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
8026
8027typedef PACKED_PRE struct PACKED_POST
8028{
8029 tHalMsgHeader header;
8030 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
8031} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
8032
8033/*---------------------------------------------------------------------------
8034 WLAN_HAL_LL_GET_STATS_RSP
8035---------------------------------------------------------------------------*/
8036typedef PACKED_PRE struct PACKED_POST
8037{
8038 tANI_U32 status;
8039 tANI_U32 resp_id;
8040 tANI_U8 iface_id;
8041} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8042
8043typedef PACKED_PRE struct PACKED_POST
8044{
8045 tHalMsgHeader header;
8046 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8047} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8048
8049/*---------------------------------------------------------------------------
8050 WLAN_HAL_LL_CLEAR_STATS_REQ
8051---------------------------------------------------------------------------*/
8052typedef PACKED_PRE struct PACKED_POST
8053{
8054 tANI_U32 req_id;
8055 tANI_U8 sta_id;
8056 tANI_U32 stats_clear_req_mask;
8057 tANI_U8 stop_req;
8058} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8059
8060typedef PACKED_PRE struct PACKED_POST
8061{
8062 tHalMsgHeader header;
8063 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8064} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8065
8066/*---------------------------------------------------------------------------
8067 WLAN_HAL_LL_CLEAR_STATS_RSP
8068---------------------------------------------------------------------------*/
8069typedef PACKED_PRE struct PACKED_POST
8070{
8071 tANI_U32 status;
8072 tANI_U8 sta_id;
8073 tANI_U32 resp_id;
8074 tANI_U32 stats_clear_rsp_mask;
8075 tANI_U8 stop_req_status;
8076} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8077
8078typedef PACKED_PRE struct PACKED_POST
8079{
8080 tHalMsgHeader header;
8081 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8082} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8083
8084/*---------------------------------------------------------------------------
8085 WLAN_HAL_LL_NOTIFY_STATS
8086---------------------------------------------------------------------------*/
8087
8088typedef PACKED_PRE struct PACKED_POST
8089{
8090 tHalMsgHeader header;
8091 tANI_U32 param_id;
8092 tANI_U8 iface_id;
8093 tANI_U32 resp_id;
8094 tANI_U32 more_result_to_follow;
8095 tANI_U8 result[1];
8096} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008097
Dino Mycle108eff22014-06-10 09:36:44 +05308098/*---------------------------------------------------------------------------
8099 * WLAN_HAL_EXT_SCAN_START_REQ
8100 *-------------------------------------------------------------------------*/
8101
Dino Mycle8afbac12014-07-04 22:06:17 +05308102typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308103{
8104 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8105 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8106 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8107 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8108 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8109 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8110 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308111 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308112} tExtScanChannelBandMask;
8113
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308114#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8115#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8116
8117#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8118
8119#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8120#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8121#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8122#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8123
Dino Mycle108eff22014-06-10 09:36:44 +05308124typedef PACKED_PRE struct PACKED_POST
8125{
8126 tANI_U32 channel; // frequency
8127 tANI_U32 dwellTimeMs; // dwell time hint
8128 tANI_U8 passive; // 0 => active,
8129 // 1 => passive scan; ignored for DFS
8130}tExtScanChannelSpec, *tpExtScanChannelSpec;
8131
8132typedef PACKED_PRE struct PACKED_POST
8133 {
8134 /* bucket index, 0 based */
8135 tANI_U8 bucketId;
8136 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8137 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308138 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308139 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308140 /* This is a bit field; which defines following bits -
8141 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8142 is % full
8143 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8144 after scan
8145 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8146 (beacons/probe responses + IEs) in real time to HAL, in addition
8147 to completion events
8148 Note: To keep backward compatibility, fire completion events
8149 regardless of REPORT_EVENTS_EACH_SCAN.
8150 * REPORT_EVENTS_NO_BATCH => controls batching,
8151 0 => batching, 1 => no batching
8152 */
Dino Mycle108eff22014-06-10 09:36:44 +05308153 tANI_U8 reportEvents;
8154 /* number of channels */
8155 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308156 // new Exponential Scan params
8157 tANI_U32 max_period;
8158 tANI_U32 exponent;
8159 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308160 /* if channels to scan. In the TLV channelList[] */
8161 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8162}tExtScanBucketData, *tpExtScanBucketData;
8163
8164typedef PACKED_PRE struct PACKED_POST
8165{
8166 tANI_U32 requestId;
8167 tANI_U8 sessionId;
8168 /* Base period (milliseconds) used by scan buckets to define periodicity
8169 of the scans */
8170 tANI_U32 basePeriod;
8171 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8172 (keep the most significant, i.e. stronger RSSI) */
8173 tANI_U32 maxApPerScan;
8174 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308175 tANI_U32 reportThresholdPercent;
8176 /* in number of scans, wake up AP after these many scans */
8177 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308178 /* This will be off channel minimum time */
8179 tANI_U16 neighborScanChannelMinTime;
8180 /* This will be out off channel max time */
8181 tANI_U16 neighborScanChannelMaxTime;
8182 /* This will be the home (BSS) channel time */
8183 tANI_U16 homeAwayTime;
8184 /* number of buckets (maximum 8) */
8185 tANI_U8 numBuckets;
8186 /* Buckets data */
8187 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8188} tHalExtScanStartReq, *tpHalExtScanStartReq;
8189
8190typedef PACKED_PRE struct PACKED_POST
8191{
8192 tHalMsgHeader header;
8193 tHalExtScanStartReq extScanStartReq;
8194}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8195
8196/*---------------------------------------------------------------------------
8197 * WLAN_HAL_EXT_SCAN_START_RSP
8198 *-------------------------------------------------------------------------*/
8199
8200typedef PACKED_PRE struct PACKED_POST
8201{
8202 tANI_U32 requestId;
8203 tANI_U32 status;
8204}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8205
8206typedef PACKED_PRE struct PACKED_POST
8207{
8208 tHalMsgHeader header;
8209 tHalExtScanStartRsp extScanStartRsp;
8210}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8211
8212/*---------------------------------------------------------------------------
8213 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8214 *-------------------------------------------------------------------------*/
8215
8216typedef PACKED_PRE struct PACKED_POST
8217{
8218 tANI_U32 requestId;
8219 tANI_U8 sessionId;
8220}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8221
8222typedef PACKED_PRE struct PACKED_POST
8223{
8224 tHalMsgHeader header;
8225 tHalExtScanGetCapReq extScanGetCapReq;
8226}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8227
8228/*---------------------------------------------------------------------------
8229 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8230 *-------------------------------------------------------------------------*/
8231
8232typedef PACKED_PRE struct PACKED_POST
8233{
8234 tANI_U32 requestId;
8235 tANI_U32 status;
8236
8237 tANI_U32 scanCacheSize;
8238 tANI_U32 scanBuckets;
8239 tANI_U32 maxApPerScan;
8240 tANI_U32 maxRssiSampleSize;
8241 tANI_U32 maxScanReportingThreshold;
8242
8243 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308244 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308245
8246 tANI_U32 maxBssidHistoryEntries;
8247}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8248
8249typedef PACKED_PRE struct PACKED_POST
8250{
8251 tHalMsgHeader header;
8252 tHalExtScanGetCapRsp extScanGetCapRsp;
8253}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8254
8255/*---------------------------------------------------------------------------
8256 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8257 *-------------------------------------------------------------------------*/
8258
8259typedef PACKED_PRE struct PACKED_POST
8260{
8261 tANI_U32 requestId;
8262 tANI_U8 sessionId;
8263 /*
8264 * 1 return cached results and flush it
8265 * 0 return cached results and do not flush
8266 */
8267 tANI_BOOLEAN flush;
8268}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8269
8270typedef PACKED_PRE struct PACKED_POST
8271{
8272 tHalMsgHeader header;
8273 tHalExtScanGetScanReq getScanReq;
8274}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8275
8276/*---------------------------------------------------------------------------
8277 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8278 *-------------------------------------------------------------------------*/
8279
8280typedef PACKED_PRE struct PACKED_POST
8281{
8282 tANI_U32 requestId;
8283 tANI_U32 status;
8284}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8285
8286typedef PACKED_PRE struct PACKED_POST
8287{
8288 tHalMsgHeader header;
8289 tHalExtScanGetScanRsp getScanRsp;
8290}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8291
8292/*---------------------------------------------------------------------------
8293 * WLAN_HAL_EXT_SCAN_RESULT_IND
8294 *-------------------------------------------------------------------------*/
8295
8296typedef PACKED_PRE struct PACKED_POST
8297{
8298 tANI_U64 ts; // time of discovery
8299 tANI_U8 ssid[32+1]; // null terminated SSID
8300 tSirMacAddr bssid; // BSSID
8301 tANI_U32 channel; // channel frequency in MHz
8302 tANI_S32 rssi; // RSSI in dBm
8303 tANI_U32 rtt; // RTT in nanoseconds - not expected
8304 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308305 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308306 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308307 tANI_U16 ieLength; // size of the ie_data blob
8308 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308309} tHalExtScanResultParams, *tpHalExtScanResultParams;
8310
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308311/* Get the GSCAN cached scan results */
8312typedef struct {
8313 tANI_U16 scan_id; // a unique identifier for the scan unit
8314 tANI_U8 flags; // a bitmask with additional
8315 // information about scan
8316 tANI_U8 num_results; // number of bssids retrieved by the scan
8317 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8318 // scan results - one for each bssid
8319} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8320
Dino Mycle108eff22014-06-10 09:36:44 +05308321typedef PACKED_PRE struct PACKED_POST
8322{
8323 tHalMsgHeader header;
8324 tANI_U32 requestId;
8325 tANI_U32 scanResultSize;
8326 tANI_BOOLEAN moreData;
8327 tANI_U8 extScanResult[1];
8328}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8329
8330/*---------------------------------------------------------------------------
8331 * WLAN_HAL_EXT_SCAN_STOP_REQ
8332 *-------------------------------------------------------------------------*/
8333
8334typedef PACKED_PRE struct PACKED_POST
8335{
8336 tANI_U32 requestId;
8337 tANI_U8 sessionId;
8338}tHalExtScanStopReq, *tpHalExtScanStopReq;
8339
8340typedef PACKED_PRE struct PACKED_POST
8341{
8342 tHalMsgHeader header;
8343 tHalExtScanStopReq extScanStopReq;
8344}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8345
8346/*---------------------------------------------------------------------------
8347 * WLAN_HAL_EXT_SCAN_STOP_RSP
8348 *-------------------------------------------------------------------------*/
8349
8350typedef PACKED_PRE struct PACKED_POST
8351{
8352 tANI_U32 requestId;
8353 tANI_U32 status;
8354}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8355
8356typedef PACKED_PRE struct PACKED_POST
8357{
8358 tHalMsgHeader header;
8359 tHalExtScanStopRsp extScanStopRsp;
8360}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8361
8362/*---------------------------------------------------------------------------
8363 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8364 *-------------------------------------------------------------------------*/
8365
Dino Mycle8afbac12014-07-04 22:06:17 +05308366typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308367{
8368 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8369 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308370 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308371} tHalExtScanProgressEventType;
8372
8373typedef PACKED_PRE struct PACKED_POST
8374{
8375 tANI_U32 requestId;
8376 tANI_U32 status;
8377 tHalExtScanProgressEventType extScanEventType;
8378}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8379
8380typedef PACKED_PRE struct PACKED_POST
8381{
8382 tHalMsgHeader header;
8383 tHalExtScanProgressInd extScanProgressInd;
8384}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8385
8386/*---------------------------------------------------------------------------
8387 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8388 *-------------------------------------------------------------------------*/
8389
8390typedef PACKED_PRE struct PACKED_POST
8391{
8392 tANI_U32 requestId;
8393 tANI_U32 numOfScanResAvailable;
8394}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8395
8396typedef PACKED_PRE struct PACKED_POST
8397{
8398 tHalMsgHeader header;
8399 tHalExtScanResAvailableInd extScanResAvailableInd;
8400}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8401
Dino Mycle108eff22014-06-10 09:36:44 +05308402typedef PACKED_PRE struct PACKED_POST
8403{
8404 /* AP BSSID */
8405 tSirMacAddr bssid;
8406 /* low threshold - used in L for significant_change - not used in L for
8407 hotlist*/
8408 tANI_S32 lowRssiThreshold;
8409 /* high threshold - used in L for significant rssi - used in L for hotlist */
8410 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308411} tApThresholdParams, *tpApThresholdParams;
8412
Dino Mycle108eff22014-06-10 09:36:44 +05308413/*---------------------------------------------------------------------------
8414 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8415 *-------------------------------------------------------------------------*/
8416
8417typedef PACKED_PRE struct PACKED_POST
8418{
8419 tANI_U32 requestId;
8420 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308421 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308422 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308423 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308424 // hotlist APs
8425 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8426} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8427
8428typedef PACKED_PRE struct PACKED_POST
8429{
8430 tHalMsgHeader header;
8431 tHalBssidHotlistSetReq bssidHotlistSetReq;
8432}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8433
8434/*---------------------------------------------------------------------------
8435 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8436 *-------------------------------------------------------------------------*/
8437
8438typedef PACKED_PRE struct PACKED_POST
8439{
8440 tANI_U32 requestId;
8441 tANI_U32 status;
8442}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8443
8444typedef PACKED_PRE struct PACKED_POST
8445{
8446 tHalMsgHeader header;
8447 tHalHotlistSetRsp hotlistSetRsp;
8448}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8449
8450/*---------------------------------------------------------------------------
8451 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8452 *-------------------------------------------------------------------------*/
8453
8454typedef PACKED_PRE struct PACKED_POST
8455{
8456 tANI_U32 requestId;
8457}tHalHotlistResetReq, *tpHalHotlistResetReq;
8458
8459typedef PACKED_PRE struct PACKED_POST
8460{
8461 tHalMsgHeader header;
8462 tHalHotlistResetReq hotlistResetReq;
8463}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8464
8465/*---------------------------------------------------------------------------
8466 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8467 *-------------------------------------------------------------------------*/
8468
8469typedef PACKED_PRE struct PACKED_POST
8470{
8471 tANI_U32 requestId;
8472 tANI_U32 status;
8473}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8474
8475typedef PACKED_PRE struct PACKED_POST
8476{
8477 tHalMsgHeader header;
8478 tHalHotlistResetRsp hotlistResetRsp;
8479}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8480
8481/*---------------------------------------------------------------------------
8482 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8483 *-------------------------------------------------------------------------*/
8484
8485typedef PACKED_PRE struct PACKED_POST
8486{
8487 tHalMsgHeader header;
8488 tANI_U32 requestId;
8489 tANI_U32 numHotlistBss;
8490 tANI_BOOLEAN moreData;
8491 tANI_U8 bssHotlist[1];
8492}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8493
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308494/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308495 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8496 *-------------------------------------------------------------------------*/
8497
8498typedef PACKED_PRE struct PACKED_POST
8499{
8500 /* SSID */
8501 char ssid [32+1];
8502 /* low threshold - used in L for significant_change - not used in L for
8503 hotlist*/
8504 tANI_S32 lowRssiThreshold;
8505 /* high threshold - used in L for significant rssi - used in L for hotlist */
8506 tANI_S32 highRssiThreshold;
8507 /* band */
8508 tANI_U32 band;
8509 } tSsidThresholdParams, *tpSsidThresholdParams;
8510
8511
8512typedef PACKED_PRE struct PACKED_POST
8513{
8514 tANI_U32 requestId;
8515 tANI_U8 sessionId;
8516 tANI_U32 lostSsidSampleSize;
8517 // number of hotlist SSIDs
8518 tANI_U32 numSsid;
8519 // hotlist SSIDs
8520 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8521} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8522
8523typedef PACKED_PRE struct PACKED_POST
8524{
8525 tHalMsgHeader header;
8526 tHalSsidHotlistSetReq ssidHotlistSetReq;
8527}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8528
8529/*---------------------------------------------------------------------------
8530 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8531 *-------------------------------------------------------------------------*/
8532typedef PACKED_PRE struct PACKED_POST
8533{
8534 tANI_U32 requestId;
8535 tANI_U32 status;
8536}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8537
8538typedef PACKED_PRE struct PACKED_POST
8539{
8540 tHalMsgHeader header;
8541 tHalSsidHotlistSetRsp hotlistSetRsp;
8542}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8543
8544/*---------------------------------------------------------------------------
8545 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8546 *-------------------------------------------------------------------------*/
8547
8548typedef PACKED_PRE struct PACKED_POST
8549{
8550 tANI_U32 requestId;
8551}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8552
8553typedef PACKED_PRE struct PACKED_POST
8554{
8555 tHalMsgHeader header;
8556 tHalSsidHotlistResetReq hotlistResetReq;
8557}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8558
8559/*---------------------------------------------------------------------------
8560 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8561 *-------------------------------------------------------------------------*/
8562
8563typedef PACKED_PRE struct PACKED_POST
8564{
8565 tANI_U32 requestId;
8566 tANI_U32 status;
8567}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8568
8569typedef PACKED_PRE struct PACKED_POST
8570{
8571 tHalMsgHeader header;
8572 tHalSsidHotlistResetRsp hotlistResetRsp;
8573}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8574
8575/*---------------------------------------------------------------------------
8576 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8577 *-------------------------------------------------------------------------*/
8578
8579typedef PACKED_PRE struct PACKED_POST
8580{
8581 tHalMsgHeader header;
8582 tANI_U32 requestId;
8583 tANI_BOOLEAN ssid_found;
8584 tANI_U32 numHotlistSsid;
8585 tANI_BOOLEAN moreData;
8586 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8587}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8588
8589/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308590 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8591 *-------------------------------------------------------------------------*/
8592
8593typedef PACKED_PRE struct PACKED_POST
8594{
8595 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8596 tANI_U32 reserved; //reserved for future use
8597}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8598
8599typedef PACKED_PRE struct PACKED_POST
8600{
8601 tHalMsgHeader header;
8602 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8603}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8604
8605/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308606 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8607 *--------------------------------------------------------------------------*/
8608typedef PACKED_PRE struct PACKED_POST
8609{
8610 tANI_U8 macAddr[6];
8611 tANI_U32 reserved1;
8612 tANI_U32 reserved2;
8613}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8614
8615typedef PACKED_PRE struct PACKED_POST
8616{
8617 tHalMsgHeader header;
8618 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8619} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8620
8621/*---------------------------------------------------------------------------
8622* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8623*-------------------------------------------------------------------------*/
8624
8625typedef PACKED_PRE struct PACKED_POST
8626{
8627 tANI_U32 status;
8628 tANI_U32 reserved1;
8629} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8630
8631typedef PACKED_PRE struct PACKED_POST
8632{
8633 tHalMsgHeader header;
8634 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8635} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308636/*---------------------------------------------------------------------------
8637 *WLAN_HAL_GET_FRAME_LOG_REQ
8638 *--------------------------------------------------------------------------*/
8639typedef PACKED_PRE struct PACKED_POST
8640{
8641 tANI_U8 flags;
8642}tGetFrameLogReqType, * tpGetFrameLogReqType;
8643
8644typedef PACKED_PRE struct PACKED_POST
8645{
8646 tHalMsgHeader header;
8647 tGetFrameLogReqType tGetFrameLogReqParams;
8648} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8649
8650/*---------------------------------------------------------------------------
8651 * WLAN_HAL_GET_FRAME_LOG_RSP
8652 *-------------------------------------------------------------------------*/
8653typedef PACKED_PRE struct PACKED_POST
8654{
8655 tANI_U32 status;
8656} tGetFrameLogResp, * tpGetFrameLogResp;
8657
8658typedef PACKED_PRE struct PACKED_POST
8659{
8660 tHalMsgHeader header;
8661 tGetFrameLogResp tGetFrameLogRespParams;
8662} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8663
8664/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308665 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8666 *-------------------------------------------------------------------------*/
8667typedef PACKED_PRE struct PACKED_POST
8668{
8669 tANI_U32 reasonCode;
8670}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8671
8672typedef PACKED_PRE struct PACKED_POST
8673{
8674 tHalMsgHeader header;
8675 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8676}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8677
8678/*---------------------------------------------------------------------------
8679 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8680 *-------------------------------------------------------------------------*/
8681typedef PACKED_PRE struct PACKED_POST
8682{ tANI_U32 status;
8683}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8684
8685typedef PACKED_PRE struct PACKED_POST
8686{
8687 tHalMsgHeader header;
8688 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8689}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8690
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308691/*---------------------------------------------------------------------------
8692 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8693 *-------------------------------------------------------------------------*/
8694typedef PACKED_PRE struct PACKED_POST
8695{
8696 tANI_U8 bssIdx;
8697 tANI_U8 rssi;
8698 tSirMacAddr selfMacAddr;
8699 tANI_U32 linkFlCnt;
8700 tANI_U32 linkFlTx;
8701 tANI_U32 lastDataRate;
8702 tANI_U32 rsvd1;
8703 tANI_U32 rsvd2;
8704}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8705
8706typedef PACKED_PRE struct PACKED_POST
8707{
8708 tHalMsgHeader header;
8709 tHalLostLinkParametersIndParams lostLinkParameters;
8710}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308711
8712
8713/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308714 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308715 *--------------------------------------------------------------------------*/
8716typedef PACKED_PRE struct PACKED_POST
8717{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308718 /* BIT0 - enable frame logging
8719 * BIT1 - enableBMUHWtracing
8720 * BIT2 - enableQXDMlogging
8721 * BIT3 - enableUElogDpuTxp
8722 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308723 tANI_U8 enableFlag;
8724 tANI_U8 frameType;
8725 tANI_U8 frameSize;
8726 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308727 /* Host mem address to be used as logmailbox */
8728 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308729 /* firmware will wakeup the host to send logs always */
8730 tANI_U8 continuousFrameLogging;
8731 /* Logging mail box version */
8732 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308733 /* Max ring size in firmware to log msgs when host is suspended state */
8734 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308735 /* when firmware log reaches this threshold and
8736 * if host is awake it will push the logs.
8737 */
8738 tANI_U8 minLogBuffSize;
8739 /* Reserved for future purpose */
8740 tANI_U32 reserved0;
8741 tANI_U32 reserved1;
8742 tANI_U32 reserved2;
8743}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308744
8745typedef PACKED_PRE struct PACKED_POST
8746{
8747 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308748 tFWLoggingInitReqType tFWLoggingInitReqParams;
8749} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308750
8751/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308752 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308753 *-------------------------------------------------------------------------*/
8754typedef PACKED_PRE struct PACKED_POST
8755{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308756 tANI_U32 status;
8757 /* FW mail box address */
8758 tANI_U64 logMailBoxAddr;
8759 /* Logging mail box version */
8760 tANI_U8 logMailBoxVer;
8761 /* Qshrink is enabled */
8762 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308763 /* fw_dump_max_size is used to tell fwr mem dump size */
8764 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308765 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308766 tANI_U32 reserved1;
8767 tANI_U32 reserved2;
8768} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308769
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05308770
8771typedef PACKED_PRE struct PACKED_POST {
8772 tANI_U32 request_id;
8773 tSirMacAddr bssId;
8774 tANI_S8 min_rssi;
8775 tANI_S8 max_rssi;
8776} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
8777
8778typedef PACKED_PRE struct PACKED_POST
8779{
8780 tHalMsgHeader header;
8781 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
8782}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
8783
8784//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
8785typedef PACKED_PRE struct PACKED_POST {
8786 tANI_U32 request_id;
8787 tANI_U32 status;
8788} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
8789
8790typedef PACKED_PRE struct PACKED_POST
8791{
8792 tHalMsgHeader header;
8793 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
8794}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
8795
8796//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
8797typedef PACKED_PRE struct PACKED_POST
8798{
8799 tANI_U32 request_id;
8800 tSirMacAddr bssId;
8801 tANI_S8 rssi;
8802} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
8803
8804typedef PACKED_PRE struct PACKED_POST
8805{
8806 tHalMsgHeader header;
8807 tHalRssiMonitorIndParams RssiMonitorIndParams;
8808}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
8809
8810
8811//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
8812typedef PACKED_PRE struct PACKED_POST {
8813 tANI_U32 request_id;
8814 tSirMacAddr bssId;
8815} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
8816
8817typedef PACKED_PRE struct PACKED_POST
8818{
8819 tHalMsgHeader header;
8820 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
8821}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
8822
8823//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
8824typedef PACKED_PRE struct PACKED_POST {
8825 tANI_U32 request_id;
8826 tANI_U32 status;
8827} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
8828
8829typedef PACKED_PRE struct PACKED_POST
8830{
8831 tHalMsgHeader header;
8832 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
8833}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
8834
8835
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308836typedef PACKED_PRE struct PACKED_POST
8837{
8838 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308839 tFWLoggingInitResp tFWLoggingInitRespParams;
8840} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
8841
8842/*---------------------------------------------------------------------------
8843 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
8844 *-------------------------------------------------------------------------*/
8845typedef PACKED_PRE struct PACKED_POST
8846{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05308847 tANI_U16 status;
8848 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308849 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8850 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8851} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
8852
8853typedef PACKED_PRE struct PACKED_POST
8854{
8855 tHalMsgHeader header;
8856 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
8857} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
8858
8859/*---------------------------------------------------------------------------
8860 * Logging mail box structure
8861 *-------------------------------------------------------------------------*/
8862
8863#define MAILBOX_VERSION_V1 0x1
8864
8865typedef PACKED_PRE struct PACKED_POST
8866{
8867 /* Logging mail box version */
8868 tANI_U8 logMbVersion;
8869 /* Current logging buffer address */
8870 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8871 /* Current logging buffer length */
8872 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8873 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
8874 tANI_U16 reasonCode;
8875 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
8876 tANI_U8 logType;
8877 /* Indicate if Last segment of log is received*/
8878 tANI_BOOLEAN done;
8879}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308880
Katya Nigamf0511f62015-05-05 16:40:57 +05308881/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05308882 *WLAN_HAL_FW_MEMORY_DUMP_REQ
8883 *--------------------------------------------------------------------------*/
8884typedef PACKED_PRE struct PACKED_POST
8885{
8886 tANI_U32 reserved;
8887}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
8888
8889typedef PACKED_PRE struct PACKED_POST
8890{
8891 tHalMsgHeader header;
8892 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
8893} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
8894
8895/*---------------------------------------------------------------------------
8896 * WLAN_HAL_FW_MEMORY_DUMP_RSP
8897 *-------------------------------------------------------------------------*/
8898typedef PACKED_PRE struct PACKED_POST
8899{
8900 tANI_U32 status;
8901} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
8902
8903typedef PACKED_PRE struct PACKED_POST
8904{
8905 tHalMsgHeader header;
8906 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
8907} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
8908
8909
8910/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05308911* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
8912*-------------------------------------------------------------------------*/
8913
8914/* only 1 filter is supported as of now */
8915#define NUM_FILTERS_SUPPORTED 1
8916
8917typedef PACKED_PRE struct PACKED_POST
8918{
8919 tSirMacAddr macAddr;
8920 tANI_U8 isA1filteringNeeded;
8921 tANI_U8 isA2filteringNeeded;
8922 tANI_U8 isA3filteringNeeded;
8923}tHalMacFilter, *tpHalMacFilter;
8924
8925typedef PACKED_PRE struct PACKED_POST
8926{
8927 tANI_U8 channelNumber;
8928 ePhyChanBondState cbState;
8929
8930 tANI_U32 maxAmpduLen;
8931 tANI_U32 maxMpduInAmpduLen;
8932
8933 tANI_U8 crcCheckEnabled;
8934
8935 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
8936 tANI_U8 numMacFilters;
8937 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
8938
8939 /* Each bit position maps to IEEE convention of typeSubtype */
8940 tANI_U64 typeSubtypeBitmap;
8941
8942 tANI_U64 reserved;
8943
8944}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
8945
8946typedef PACKED_PRE struct PACKED_POST
8947{
8948 tHalMsgHeader header;
8949 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
8950}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
8951
8952
8953/*---------------------------------------------------------------------------
8954* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
8955*-------------------------------------------------------------------------*/
8956
8957typedef PACKED_PRE struct PACKED_POST
8958{
8959 tANI_U32 status;
8960}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
8961
8962typedef PACKED_PRE struct PACKED_POST
8963{
8964 tHalMsgHeader header;
8965 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
8966}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
8967
8968/*---------------------------------------------------------------------------
8969* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
8970*-------------------------------------------------------------------------*/
8971
8972typedef PACKED_PRE struct PACKED_POST
8973{
8974 tHalMsgHeader header;
8975 tANI_U8 resetConfiguration;
8976}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
8977
8978/*---------------------------------------------------------------------------
8979* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
8980*-------------------------------------------------------------------------*/
8981
8982typedef PACKED_PRE struct PACKED_POST
8983{
8984 tANI_U32 status;
8985}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
8986
8987typedef PACKED_PRE struct PACKED_POST
8988{
8989 tHalMsgHeader header;
8990 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
8991}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
8992
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05308993typedef PACKED_PRE struct PACKED_POST
8994{
8995 tANI_U8 status;
8996}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
8997
Arun Khandavalliafc16432015-10-16 20:11:31 +05308998typedef PACKED_PRE struct PACKED_POST
8999{
9000 tANI_U8 paramType;
9001 tANI_U32 paramValue;
9002 tSirMacAddr bssid;
9003} tSetWifiConfigParams, *tpSetWifiConfigParams;
9004
9005typedef PACKED_PRE struct PACKED_POST
9006{
9007 tHalMsgHeader header;
9008 tSetWifiConfigParams wifiConfigParams;
9009} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
9010
9011typedef PACKED_PRE struct PACKED_POST {
9012 tANI_U32 status;
9013} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
9014
9015typedef PACKED_PRE struct PACKED_POST
9016{
9017 tHalMsgHeader header;
9018
9019 tHalSetWifiConfigRspParams setWifiConfigRspParams;
9020} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
9021
Jeff Johnson295189b2012-06-20 16:38:30 -07009022#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
9023#pragma pack(pop)
9024#elif defined(__ANI_COMPILER_PRAGMA_PACK)
9025#else
9026#endif
9027
9028#endif /* _WLAN_HAL_MSG_H_ */